Salome HOME
sources v1.2
[modules/kernel.git] / idl / SALOME_Component.idl
1 //=============================================================================
2 // File      : SALOME_Component.idl
3 // Created   : jeu jui 12 08:11:23 CEST 2001
4 // Author    : Paul RASCLE, EDF
5 // Project   : SALOME
6 // Copyright : EDF 2001
7 // $Header: /dn05/salome/CVS/SALOME_ROOT/idl/SALOME_Component.idl
8 //=============================================================================
9
10 #ifndef _SALOME_COMPONENT_IDL_
11 #define _SALOME_COMPONENT_IDL_
12 /*!  \ingroup Kernel 
13
14 This is a package of interfaces used for connecting new components to %SALOME application. It also contains a set of interfaces used
15 for management of %MED component in %SALOME application.
16 */
17 module Engines
18 {
19   interface Component ;
20
21 /*! \brief Interface of the %Container
22
23    This interface defines the process of loading and registration
24     of new components in SALOME application
25 */
26   interface Container
27   {
28 /*!
29     Initializes the %container with a definite name.
30 */
31     Container start_impl( in string ContainerName ) ;
32
33 /*!
34     Loads into the container a new component, registers it and starts it's CORBA servant.
35     \param nameToRegister     Name of the component which will be registered in Registry (or Name Service)
36     \param componentName     Name of the constructed library of the %component
37 */
38     Component load_impl(in string nameToRegister, in string componentName);
39
40 /*!
41        Stops the component servant, and deletes all related objects
42 */
43     void remove_impl(in Component component_i);
44
45 /*!
46     Discharges all components from the container.
47 */
48     void finalize_removal() ;
49 /*!
50      Determines whether the server has been loaded or not.
51 */
52
53     void ping();
54 /*!
55    Name of the %container
56 */
57     readonly attribute string name ;
58 /*!
59    Name of the machine containing this container (location of the container).
60 */
61     readonly attribute string machineName ;
62 /*!
63    Returns True if the %container has been killed
64 */
65     boolean Kill_impl() ;
66   };
67 /*! \brief Interface of the %component
68
69     This interface is used for interaction between the %container and the %component and between
70     the components inside the container.
71 */
72   interface Component
73   {
74 /*!
75    The name of the instance of the %Component
76 */
77     readonly attribute string instanceName ;
78 /*!
79    The name of the interface of the %Component
80 */
81     readonly attribute string interfaceName ;
82 /*!
83     Determines whether the server has already been loaded or not.
84 */
85     void ping();
86 /*!
87     Deactivates the %Component.
88 */
89     void destroy() ;
90 /*!
91     Returns the container that the %Component refers to.
92 */
93     Container GetContainerRef() ;
94 /*!
95    This method is used by the %SUPERVISOR component. It sets the names of the graph and of the node.
96 */
97     void Names( in string aGraphName , in string aNodeName ) ;
98 /*!
99    Returns True if the %Component has been killed.
100 */
101     boolean Kill_impl() ;
102 /*!
103    Returns True if the activity of the %Component has been stopped. (It's action can't be resumed)
104 */
105     boolean Stop_impl() ;
106 /*!
107    Returns True if the activity of the %Component has been suspended. (It's action can be resumed)
108 */
109     boolean Suspend_impl() ;
110 /*!
111    Returns True if the activity of the %Component has been resumed.
112 */
113     boolean Resume_impl() ;
114   } ;
115 } ;
116
117 #endif