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