1 // Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
2 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
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.
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.
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
18 // See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
22 // File : SALOME_ModuleCatalog.idl
23 // Author : Estelle Deville
26 /*! \file SALOME_ModuleCatalog.idl This file conatins a set of interfaces used for
27 creation of the catalog of components in %SALOME application
31 The main package of interfaces used for creation of the module catalog in %SALOME application.
32 Module catalog allows to manage components of %SALOME application, to call specified in the
33 xml files interfaces with the help of AComponent interface.
35 module SALOME_ModuleCatalog
39 This enumeration contains a current set of definitions of the components integrated
40 into %SALOME application.
42 enum ComponentType { GEOM, /*!<Module %GEOM */
43 MESH, /*!<Module %MESH */
44 Med, /*!<Module %Med*/
45 SOLVER, /*!<Module of %SOLVER type */
46 DATA, /*!<Module %DATA */
47 VISU, /*!<Module %VISU */
48 SUPERV, /*!<Module %SUPERVISION */
49 OTHER /*!<Any other type of module */
52 This struct contains fields defining the parameter of the service.
55 struct ServicesParameter
57 string Parametertype; /*!<Type of the parameter.*/
58 string Parametername; /*!<Name of the parameter.*/
61 enum DataStreamDependency {
76 struct ServicesDataStreamParameter
78 DataStreamType Parametertype; /*!<Type of the parameter.*/
79 string Parametername; /*!<Name of the parameter.*/
80 DataStreamDependency Parameterdependency; /*!<Temporal or iterative dependency.*/
84 The list of the parameters of service.
87 typedef sequence<ServicesParameter> ListOfServicesParameter;
88 typedef sequence<ServicesDataStreamParameter> ListOfServicesDataStreamParameter;
91 This struct contains fields completely defining each service.
96 string ServiceName; /*!<Name of the service.*/
97 ListOfServicesParameter ServiceinParameter; /*!< List of input parameters of the services.*/
98 ListOfServicesParameter ServiceoutParameter; /*!< List of output parameters of the services.*/
99 ListOfServicesDataStreamParameter ServiceinDataStreamParameter; /*!< List of input parameters of the services.*/
100 ListOfServicesDataStreamParameter ServiceoutDataStreamParameter; /*!< List of output parameters of the services.*/
101 boolean Servicebydefault; /*!<True if the service is taken with its default fields.*/
102 boolean TypeOfNode; /*!<True is the service is a factory node. Otherwise, it's a compute node.*/
105 List of services of the interface.
107 typedef sequence<Service> ListOfInterfaceService;
111 typedef sequence<string> ListOfServices ;
113 This struct contains fields defining each interface.
115 struct DefinitionInterface
117 string interfacename ; /*!<Name of the interface.*/
118 ListOfInterfaceService interfaceservicelist ; /*!<List of services of the interface.*/
121 List of interface definitions.
123 typedef sequence<DefinitionInterface> ListOfDefInterface ;
125 List of names of interfaces.
127 typedef sequence<string> ListOfInterfaces ;
130 PathPrefix : association of a machine name and
131 a path to a component
139 List of path prefixes
141 typedef sequence<PathPrefix> PathPrefixes;
144 Description of a component
152 boolean implementationType;
155 ListOfDefInterface interfaces;
160 List of names of components.
162 typedef sequence<string> ListOfComponents ;
164 List of names of computers.
166 typedef sequence<string> ListOfComputers ;
168 This struct contains GUI elements used for representation of the module in %IAPP component.
172 string modulename; /*!<Name of the module.*/
173 string moduleusername; /*!<UserName of the module.*/
174 string moduleicone; /*!<Icone representing the module.*/
175 string moduleversion; /*!<Version of the module.*/
176 string modulecomment; /*!<Comment to the module.*/
179 List of pair GUI elements (component name, component icone)
180 used for representation of the module in %IAPP component.
182 typedef sequence<IAPP_Affich> ListOfIAPP_Affich ;
185 This exception is raised when a %component, a %service or a % pathPrefix is not found.
189 string what ; /*!<Indicates if it's a %component, a %service or a % pathPrefix.*/
193 This interface provides the common funcionality information of corresponding component.
194 Information is loaded from specific xml files.
198 // GetInterfaceList : operation to get a list of the interfaces name of
201 Gets the list of names of interfaces of the component
202 \return a list of interfaces of the component
204 ListOfInterfaces GetInterfaceList() ;
206 // GetInterface : operation to get one interface of a component
209 Gets a definite interface of the component
210 \note <BR>If the specified interface doesn't exist, Notfound exception is thrown
211 \param interfacename Name of the interface
212 \return Required interface
214 DefinitionInterface GetInterface(in string interfacename) raises(NotFound);
216 // GetServiceList : operation to get a list of the services name of
217 // an interface of a component
219 Gets the list of names of services of a definite interface belonging to the component.
220 \note <BR>If the specified interface doesn't exist, Notfound exception is thrown.
221 \param interfacename Name of the interface
222 \return List of services of the required interface
224 ListOfServices GetServiceList(in string interfacename) raises(NotFound);
227 // GetService : operation to get one service of an interface of a component
230 Gets a definite service of an interface of the component.
231 \note <BR>If the required service or the specified interface don't exist, Notfound exception is thrown.
232 \param interfacename Name of the interface
233 \param servicename Name of the service
234 \return Required service
237 Service GetService(in string interfacename,
238 in string servicename) raises(NotFound);
240 // GetDefaultService : operation to get the default service
241 // of an interface of a component
243 Gets the default service of an interface of the component.
244 \note <BR>If the required service or the specified interface don't exist, Notfound exception is thrown.
245 \param interfacename Name of the interface
246 \return Required service
249 Service GetDefaultService(in string interfacename) raises(NotFound);
251 // GetPathPrefix : operation to get the PathPrefix of a computer
253 Gets the prefix path of the computer containing the %component.
254 \note <BR>If the required computer doesn't exist, Notfound exception is thrown
255 \param machinename Name of the machine
259 string GetPathPrefix(in string machinename) raises(NotFound);
262 Get the constraint affected to the component
263 (to be resolved by LifeCycle for the computer choice)
265 readonly attribute string constraint ;
268 Get the name of the component
270 readonly attribute string componentname;
273 Get the user name of the component
275 readonly attribute string componentusername;
278 Ask whether the component is multistudy or not
280 readonly attribute boolean multistudy;
283 Ask the type of the component
285 readonly attribute ComponentType component_type ;
288 Gets the icone of the component (for IAPP)
290 readonly attribute string component_icone;
293 Gets the implementation type of the component : C++ or Python (for IAPP)
295 readonly attribute boolean implementation_type;
298 /*! \brief %Module catalog interface
300 This interface is used for creation of the module catalog in %SALOME application.
302 interface ModuleCatalog
307 Gets a list of names of computers of the catalog
309 ListOfComputers GetComputerList();
312 Gets the %PathPrefix of a computer
314 string GetPathPrefix(in string machinename) raises(NotFound);
316 Gets a list of names of components of the catalog
318 ListOfComponents GetComponentList();
320 Gets a list of pair GUI elements (component name, component icone)
321 used for representation of the module in %IAPP component.
324 ListOfIAPP_Affich GetComponentIconeList();
326 Gets a list of names of components of a particular type, which belong to this catalog.
328 // GetComponentList : operation to get a list of the components name of
329 // a particular type of the catalog
330 ListOfComponents GetTypedComponentList(in ComponentType _component_type);
333 Gets one component of the catalog.
335 Acomponent GetComponent(in string componentname) raises(NotFound);
338 Gets the description of a component of the catalog.
340 Component GetComponentInfo(in string componentName) raises(NotFound);
343 Reads a xml file and imports new components from this file.
344 New components replace existing components with the same name.
346 void ImportXmlCatalogFile(in string filename) raises(NotFound);