Salome HOME
sources v1.2c
[modules/superv.git] / idl / SALOME_Session.idl
1 //  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
2 //  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
3 // 
4 //  This library is free software; you can redistribute it and/or 
5 //  modify it under the terms of the GNU Lesser General Public 
6 //  License as published by the Free Software Foundation; either 
7 //  version 2.1 of the License. 
8 // 
9 //  This library is distributed in the hope that it will be useful, 
10 //  but WITHOUT ANY WARRANTY; without even the implied warranty of 
11 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
12 //  Lesser General Public License for more details. 
13 // 
14 //  You should have received a copy of the GNU Lesser General Public 
15 //  License along with this library; if not, write to the Free Software 
16 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
17 // 
18 //  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
19 //
20 //
21 //
22 //  File   : SALOME_Session.idl
23 //  Author : Paul RASCLE, EDF
24 //  $Header$
25
26 #include "SALOME_Component.idl"
27 /*! \defgroup Kernel SALOME KERNEL module
28 */
29
30 /*!  \ingroup Kernel 
31    
32   This package contains interfaces used for management of the session in %SALOME application.
33 */
34 module SALOME
35 {
36 /*! \brief State of the session
37    
38    This enumeration contains values defining the state of the session
39   
40 */ 
41   enum SessionState {asleep, running} ;
42
43 /*! \brief %Session State and Statistics
44
45
46     This struct contains a field list with general information about the session 
47 */
48    
49   struct StatSession
50   {
51 /*! \brief State of the session
52   
53    It can be:
54    *     -# asleep  : no running study
55    *     -# running : one or more running studies
56 */
57     SessionState state ; 
58 /*! Number of running studies
59 */
60     short        runningStudies ;
61 /*! It is True if GUI is active in the session
62 */
63     boolean      activeGUI ;
64   } ;
65 /*! \brief Interface of the session
66
67     The %session Server launches and stops GUI (Graphical User Interface).
68     The %session can be active without GUI (It can contain one or more running studies)
69 */
70
71   interface Session
72   {
73 /*! 
74    This exception is raised when trying to stop the %session with active GUI
75 */
76     exception GUIActive {} ;
77 /*! 
78    This exception is raised when trying to stop the %session with a number of running studies.
79 */
80     exception RunningStudies {} ;  
81
82 /*! 
83    Launches GUI in the session
84 */
85     void GetInterface(); 
86     Engines::Component GetVisuGen();
87
88 /*! 
89   Stops the %Session (It must be idle)
90 */
91     void StopSession() raises(GUIActive, RunningStudies) ;
92
93 /*! 
94   Gets Session State
95 */
96     StatSession GetStatSession() ;
97 /*! 
98     Determines whether the server has already been loaded or not.
99 */ 
100     void ping();
101   } ;
102
103 } ;