1 // Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE
3 // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
6 // This library is free software; you can redistribute it and/or
7 // modify it under the terms of the GNU Lesser General Public
8 // License as published by the Free Software Foundation; either
9 // version 2.1 of the License.
11 // This library is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 // Lesser General Public License for more details.
16 // You should have received a copy of the GNU Lesser General Public
17 // License along with this library; if not, write to the Free Software
18 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
22 // File : SALOME_Session.idl
23 // Author : Paul RASCLE, EDF
25 #include "SALOME_Component.idl"
27 /*! \file SALOME_Session.idl \brief file that contains interface of the session
32 /*! \brief State of the session
34 This enumeration contains values defining the state of the session
37 enum SessionState {asleep, /*!< Session is inactive */
38 running, /*!< Session is running */
39 shutdown /*!< Session is shutting down */
42 /*! \brief %Session State and Statistics
44 This struct contains a field list with general information about the session
49 /*! \brief State of the session
52 -# asleep : no running study
53 -# running : one or more running studies
56 //! Number of running studies
57 short runningStudies ;
58 //! It is True if GUI is active in the session
62 /*! \brief Interface of the session
64 The %session Server launches and stops GUI (Graphical User Interface).
65 The %session can be active without GUI (It can contain one or more running studies)
70 //! This exception is raised when trying to stop the %session with active GUI
71 exception GUIActive {} ;
72 //! This exception is raised when trying to stop the %session with a number of running studies.
73 exception RunningStudies {} ;
75 //! Launches GUI in the session
78 //! Returns a standalone component
79 Engines::EngineComponent GetComponent(in string theLibraryName);
81 //! Stops the %Session (It must be idle)
82 void StopSession() raises(GUIActive, RunningStudies) ;
84 //! Gets Session State
85 StatSession GetStatSession() ;
87 //! Shutdowns Session server
90 //! Determines whether the server has already been loaded or not.
92 //! Returns the PID of the server
96 //! Get Active study ID
97 long GetActiveStudyId();
98 //! Restores a state of the study at theSavePoint
99 boolean restoreVisualState(in long theSavePoint);
101 //! Send a message to the session GUI desktop that will emit a qt signal
103 This method can be used to send a message to the GUI from the standalone
105 Caution: this method can block the Session and the calling container
106 if it is called when container processes some request from the GUI
107 (mutual lock takes place).
108 In such a case it is recommended to use oneway method.
110 void emitMessage(in string theMessage);
112 //! same as emitMessage but in a non blocking way
114 Emit a qt signal from the session GUI desktop window.
115 This method can be used to send a message to the GUI from the standalone
117 This method never blocks the Session and the calling container.
119 oneway void emitMessageOneWay(in string theMessage);