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