69 lines
3.1 KiB
Text
69 lines
3.1 KiB
Text
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
|
/*
|
|
* This file is part of the LibreOffice project.
|
|
*
|
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
*
|
|
* This file incorporates work covered by the following license notice:
|
|
*
|
|
* Licensed to the Apache Software Foundation (ASF) under one or more
|
|
* contributor license agreements. See the NOTICE file distributed
|
|
* with this work for additional information regarding copyright
|
|
* ownership. The ASF licenses this file to you under the Apache
|
|
* License, Version 2.0 (the "License"); you may not use this file
|
|
* except in compliance with the License. You may obtain a copy of
|
|
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
|
|
*/
|
|
|
|
|
|
module com { module sun { module star { module frame {
|
|
|
|
/** The SessionManager service provides an interface to the session manager
|
|
of the desktop. A session manager keeps track of applications that are
|
|
running when the desktop shuts down and starts them again in the same
|
|
state they were left when the desktop starts up the next time. To be able
|
|
to do this the session manager needs cooperation from applications;
|
|
applications have to provide sufficient information to be started again as
|
|
well as restore the state they were left in. The normal flow of operation
|
|
looks like this:
|
|
|
|
<ol>
|
|
<li>The user starts the desktop shutdown.</li>
|
|
<li>The session manager informs all its connected applications
|
|
about the pending shutdown.</li>
|
|
<li>Each application saves its current state; while doing this it may
|
|
<ul>
|
|
<li>The application may request to interact with the user (e.g. to ask
|
|
where to save documents). This request is necessary because at any one
|
|
time only one application can interact with the user. The session manager
|
|
coordinates these requests and grants every application in need of user
|
|
interaction a timeslot in which it may interact with the user</li>
|
|
<li>try to cancel the whole shutdown; the session manager may or may
|
|
not honor that request.</li>
|
|
</ul>
|
|
</li>
|
|
<li>After saving is done the session manager signals all applications
|
|
to exit.</li>
|
|
<li>Applications answer the exit message by disconnecting from the
|
|
session manager.</li>
|
|
<li>After all applications have exited or a reasonable timeout the
|
|
session manager kills all remaining applications and finally lets the
|
|
desktop shut down.</li>
|
|
</ol>
|
|
*/
|
|
service SessionManager
|
|
{
|
|
/** XSessionManagerClient (of which there can only be one instance per
|
|
process) provides an application's interface to the session manager.
|
|
It keeps track of every listener inside the application and multiplexes
|
|
the session manager's signals as well as requests to the session manager.
|
|
*/
|
|
interface XSessionManagerClient;
|
|
|
|
};
|
|
|
|
}; }; }; };
|
|
|
|
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|