Salome HOME
This commit was generated by cvs2git to track changes on a CVS vendor
[modules/yacs.git] / idl / SALOME_ModuleCatalog.idl
1 // File: SALOME_ModuleCatalog.idl
2 // Created: Tue June 25 2001
3 // Author: Estelle Deville
4 // Project: SALOME
5 // Copyright : CEA/DEN/DMSS/LGLS
6 // $Header$
7
8 /*! \file SALOME_ModuleCatalog.idl This file conatins a set of interfaces used for  
9   creation of the catalog of components in %SALOME application
10 */
11
12 /*! \ingroup Kernel 
13 The main package of interfaces used for creation of the module catalog in %SALOME application.
14 */
15 module SALOME_ModuleCatalog
16 {
17   // Type Definitions
18 /*! 
19 This enumeration contains a set of definitions of %SALOME modules.
20 */
21   enum ComponentType {  GEOM,  /*!<Module %GEOM */
22                         MESH,  /*!<Module %MESH */
23                          Med,  /*!<Module %Med*/
24                       SOLVER,  /*!<Module of %SOLVER type */
25                         DATA,  /*!<Module %DATA */
26                         VISU,  /*!<Module %VISU */
27                       SUPERV,  /*!<Module %SUPERVISION */
28                        OTHER   /*!<Any other type of module */
29                      } ;
30 /*! 
31 This struct contains fields defining the parameters of the services.
32 */
33
34   struct ServicesParameter
35   {
36     string Parametertype; /*!<Type of the parameter.*/
37     string Parametername; /*!<Name of the parameter.*/
38   } ;
39
40   typedef sequence<ServicesParameter> ListOfServicesParameter;
41 /*! 
42 This struct contains fields completely defining each service.
43 */
44
45   struct Service
46   {
47     string                  ServiceName; /*!<Name of the service.*/
48     ListOfServicesParameter ServiceinParameter; /*!< List of input parameters of the services.*/
49     ListOfServicesParameter ServiceoutParameter; /*!< List of input parameters of the services.*/
50     boolean                 Servicebydefault; /*!<True if the service is taken with its defult fields.*/
51   } ;
52 /*! 
53 List of services of the interface.
54 */
55   typedef sequence<Service> ListOfInterfaceService;
56 /*! 
57 List of services.
58 */
59   typedef sequence<string> ListOfServices ;
60 /*! 
61 This struct contains fields defining each interface.
62 */
63   struct DefinitionInterface
64   {
65     string                 interfacename ; /*!<Name of the interface.*/
66     ListOfInterfaceService interfaceservicelist ; /*!<List of services of the interface.*/
67   } ;
68 /*! 
69 List of interface definitions.
70 */
71   typedef sequence<DefinitionInterface> ListOfDefInterface ;
72 /*! 
73 List of interfaces.
74 */
75   typedef sequence<string> ListOfInterfaces ;
76 /*! 
77 List of names of components.
78 */
79   typedef sequence<string> ListOfComponents ;
80 /*! 
81 List of names of computers.
82 */
83   typedef sequence<string> ListOfComputers ;
84 /*! 
85 This struct contains GUI elements used for representation of the module in %IAPP component.
86 */
87   struct IAPP_Affich
88   {
89     string modulename; /*!<Name of the module.*/
90     string moduleicone; /*!<Icone representing the module.*/
91   };
92 /*!
93 List of pair GUI elements (component name, component icone)
94  used for representation of the module in %IAPP component.
95 */
96   typedef sequence<IAPP_Affich> ListOfIAPP_Affich ;
97
98 /*! 
99  This exception is raised when a %component, a %service or a % pathPrefix is not found.
100 */
101   exception NotFound
102   {
103     string what ; /*!<Indicates if it's a %component, a %service or a % pathPrefix.*/
104   } ;
105
106   interface Acomponent
107   {
108     // GetInterfaceList : operation to get a list of the interfaces name of
109     //                    a component
110   /*!
111    Gets a list of names of interfaces of the component
112     \return a list of interfaces of the component 
113   */
114     ListOfInterfaces GetInterfaceList() ;
115
116     // GetInterface : operation to get one interface of a component
117   
118   /*! 
119     Gets a definite interface of the component
120     \note <BR>If the specified interface doesn't exist, Notfound exception is thrown
121     \param interfacename  Name of the interface 
122     \return Required interface
123   */
124     DefinitionInterface GetInterface(in string interfacename) raises(NotFound);
125
126     // GetServiceList : operation to get a list of the services name of
127     //                  an interface of a component
128  /*! 
129    Gets a list of names of services of a definite interface belonging to the component.
130    \note <BR>If the specified interface doesn't exist, Notfound exception is thrown.
131    \param interfacename Name of the interface 
132    \return List of services of the required interface
133  */
134     ListOfServices GetServiceList(in string interfacename) raises(NotFound);
135
136     
137     // GetService : operation to get one service of an interface of a component
138   
139  /*! 
140    Gets a definite service of an interface of the component.
141    \note <BR>If the required service or the specified interface don't exist, Notfound exception is thrown.
142    \param interfacename Name of the interface
143    \param servicename Name of the service
144    \return Required service
145  */
146
147     Service GetService(in string interfacename, 
148                        in string servicename) raises(NotFound);
149
150     // GetDefaultService : operation to get the default service
151     //                     of an interface of a component
152 /*! 
153    Gets the default service of an interface of the component.
154    \note <BR>If the required service or the specified interface don't exist, Notfound exception is thrown.
155    \param interfacename Name of the interface
156    \return Required service
157  */
158
159     Service GetDefaultService(in string interfacename) raises(NotFound);
160
161     // GetPathPrefix : operation to get the PathPrefix of a computer
162  /*!  
163    Gets the prefix path of the computer containing the %component.
164    \note <BR>If the required computer doesn't exist, Notfound exception is thrown
165    \param machinename Name of the machine 
166    \return Prefix path
167  */
168
169     string GetPathPrefix(in string machinename) raises(NotFound);
170
171 /*! 
172     Sets/gets the constraint affected to the component 
173     (to be resolved by LifeCycle for the computer choice)
174 */
175     readonly attribute string constraint ;
176
177 /*! 
178 Sets/gets the name of the component
179 */
180     readonly attribute string componentname;
181
182 /*! 
183 Defines whether the component can be multistudy or not
184 */
185     readonly attribute boolean multistudy;
186
187 /*! 
188 Defines the type of the component
189 */
190     readonly attribute ComponentType component_type ;
191
192 /*! 
193 Sets/gets the icone of the component (for IAPP)
194 */
195     readonly attribute string component_icone;
196   } ;
197 /*! \brief %Module catalog interface
198
199 This interface is used for creation of the module catalog in %SALOME application.
200 */
201   interface ModuleCatalog
202   {
203     void ping();
204
205 /*! 
206  Gets a list of names of computers of the catalog 
207 */   
208     ListOfComputers GetComputerList();
209
210 /*! 
211 Gets the %PathPrefix of a computer
212 */
213     string GetPathPrefix(in string machinename) raises(NotFound);
214 /*! 
215  Gets a list of names of components of the catalog 
216 */   
217     ListOfComponents GetComponentList();
218 /*! 
219 Gets a list of pair GUI elements (component name, component icone) 
220 used for representation of the module in %IAPP component.
221 */
222
223     ListOfIAPP_Affich GetComponentIconeList();
224 /*! 
225 Gets a list of names of components of a particular type, which belong to this catalog.
226 */  
227     // GetComponentList : operation to get a list of the components name of
228     //                    a particular type of the catalog   
229     ListOfComponents GetTypedComponentList(in ComponentType _component_type);
230
231 /*! 
232 Gets one component of the catalog.
233 */
234     Acomponent GetComponent(in string componentname) raises(NotFound);
235   } ;
236 };