]> SALOME platform Git repositories - modules/kernel.git/blob - idl/SALOME_Component.idl
Salome HOME
ad9be3b06762bab1e8daa8ac0d13ed580da310e1
[modules/kernel.git] / idl / SALOME_Component.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_Component.idl
23 //  Author : Paul RASCLE, EDF
24 //  $Header: /dn05/salome/CVS/SALOME_ROOT/idl/SALOME_Component.idl
25
26 #ifndef _SALOME_COMPONENT_IDL_
27 #define _SALOME_COMPONENT_IDL_
28 /*!  
29
30 This is a package of interfaces used for connecting new components to %SALOME application. It also contains a set of interfaces used
31 for management of %MED component in %SALOME application.
32 */
33 module Engines
34 {
35   interface Component ;
36
37 /*! \brief Interface of the %Container
38
39    This interface defines the process of loading and registration
40     of new components in %SALOME application
41 */
42   interface Container
43   {
44 /*!
45     Initializes the %container with a definite name.
46     \param ContainerName Name of the container
47     \return an initialized container
48 */
49     Container start_impl( in string ContainerName ) ;
50
51 /*!
52     Loads into the container a new component, registers it and starts it's CORBA servant.
53     \param nameToRegister     Name of the component which will be registered in Registry (or Name Service)
54     \param componentName     Name of the constructed library of the %component
55     \return a loaded component
56 */
57     Component load_impl(in string nameToRegister, in string componentName);
58
59 /*!
60     Stops the component servant, and deletes all related objects
61     \param component_i     Component to be removed
62 */
63     void remove_impl(in Component component_i);
64
65 /*!
66     Discharges all components from the container.
67 */
68     void finalize_removal() ;
69 /*!
70      Determines whether the server has been loaded or not.
71 */
72
73     void ping();
74 /*!
75    Name of the %container
76 */
77     readonly attribute string name ;
78 /*!
79    Name of the machine containing this container (location of the container).
80 */
81     readonly attribute string machineName ;
82 /*!
83    Returns True if the %container has been killed
84 */
85     boolean Kill_impl() ;
86   };
87 /*! \brief Interface of the %component
88
89     This interface is used for interaction between the %container and the %component and between
90     the components inside the container.
91 */
92   interface Component
93   {
94 /*!
95    The name of the instance of the %Component
96 */
97     readonly attribute string instanceName ;
98 /*!
99    The name of the interface of the %Component
100 */
101     readonly attribute string interfaceName ;
102 /*!
103     Determines whether the server has already been loaded or not.
104 */
105     void ping();
106 /*!
107     Deactivates the %Component.
108 */
109     void destroy() ;
110 /*!
111     Returns the container that the %Component refers to.
112 */
113     Container GetContainerRef() ;
114 /*!
115    This method is used by the %SUPERVISOR component. It sets the names of the graph and of the node.
116    \param aGraphName Name of graph
117    \param aNodeName Name of node
118 */
119     void Names( in string aGraphName , in string aNodeName ) ;
120 /*!
121    Returns True if the %Component has been killed.
122 */
123     boolean Kill_impl() ;
124 /*!
125    Returns True if the activity of the %Component has been stopped. (It's action can't be resumed)
126 */
127     boolean Stop_impl() ;
128 /*!
129    Returns True if the activity of the %Component has been suspended. (It's action can be resumed)
130 */
131     boolean Suspend_impl() ;
132 /*!
133    Returns True if the activity of the %Component has been resumed.
134 */
135     boolean Resume_impl() ;
136 /*!
137    Returns the Cpu used (long does not run with python !...)
138 */
139     long CpuUsed_impl() ;
140   } ;
141 } ;
142
143 #endif