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.*/
62 The list of the parameters of service.
65 typedef sequence<ServicesParameter> ListOfServicesParameter;
68 This struct contains fields completely defining each service.
73 string ServiceName; /*!<Name of the service.*/
74 ListOfServicesParameter ServiceinParameter; /*!< List of input parameters of the services.*/
75 ListOfServicesParameter ServiceoutParameter; /*!< List of output parameters of the services.*/
76 boolean Servicebydefault; /*!<True if the service is taken with its defult fields.*/
79 List of services of the interface.
81 typedef sequence<Service> ListOfInterfaceService;
85 typedef sequence<string> ListOfServices ;
87 This struct contains fields defining each interface.
89 struct DefinitionInterface
91 string interfacename ; /*!<Name of the interface.*/
92 ListOfInterfaceService interfaceservicelist ; /*!<List of services of the interface.*/
95 List of interface definitions.
97 typedef sequence<DefinitionInterface> ListOfDefInterface ;
99 List of names of interfaces.
101 typedef sequence<string> ListOfInterfaces ;
103 List of names of components.
105 typedef sequence<string> ListOfComponents ;
107 List of names of computers.
109 typedef sequence<string> ListOfComputers ;
111 This struct contains GUI elements used for representation of the module in %IAPP component.
115 string modulename; /*!<Name of the module.*/
116 string moduleusername; /*!<UserName of the module.*/
117 string moduleicone; /*!<Icone representing the module.*/
120 List of pair GUI elements (component name, component icone)
121 used for representation of the module in %IAPP component.
123 typedef sequence<IAPP_Affich> ListOfIAPP_Affich ;
126 This exception is raised when a %component, a %service or a % pathPrefix is not found.
130 string what ; /*!<Indicates if it's a %component, a %service or a % pathPrefix.*/
134 This interface provides the common funcionality information of corresponding component.
135 Information is loaded from specific xml files.
139 // GetInterfaceList : operation to get a list of the interfaces name of
142 Gets the list of names of interfaces of the component
143 \return a list of interfaces of the component
145 ListOfInterfaces GetInterfaceList() ;
147 // GetInterface : operation to get one interface of a component
150 Gets a definite interface of the component
151 \note <BR>If the specified interface doesn't exist, Notfound exception is thrown
152 \param interfacename Name of the interface
153 \return Required interface
155 DefinitionInterface GetInterface(in string interfacename) raises(NotFound);
157 // GetServiceList : operation to get a list of the services name of
158 // an interface of a component
160 Gets the list of names of services of a definite interface belonging to the component.
161 \note <BR>If the specified interface doesn't exist, Notfound exception is thrown.
162 \param interfacename Name of the interface
163 \return List of services of the required interface
165 ListOfServices GetServiceList(in string interfacename) raises(NotFound);
168 // GetService : operation to get one service of an interface of a component
171 Gets a definite 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 \param servicename Name of the service
175 \return Required service
178 Service GetService(in string interfacename,
179 in string servicename) raises(NotFound);
181 // GetDefaultService : operation to get the default service
182 // of an interface of a component
184 Gets the default service of an interface of the component.
185 \note <BR>If the required service or the specified interface don't exist, Notfound exception is thrown.
186 \param interfacename Name of the interface
187 \return Required service
190 Service GetDefaultService(in string interfacename) raises(NotFound);
192 // GetPathPrefix : operation to get the PathPrefix of a computer
194 Gets the prefix path of the computer containing the %component.
195 \note <BR>If the required computer doesn't exist, Notfound exception is thrown
196 \param machinename Name of the machine
200 string GetPathPrefix(in string machinename) raises(NotFound);
203 Sets/gets the constraint affected to the component
204 (to be resolved by LifeCycle for the computer choice)
206 readonly attribute string constraint ;
209 Sets/gets the name of the component
211 readonly attribute string componentname;
214 Sets/gets the user name of the component
216 readonly attribute string componentusername;
219 Defines whether the component is multistudy or not
221 readonly attribute boolean multistudy;
224 Defines the type of the component
226 readonly attribute ComponentType component_type ;
229 Sets/gets the icone of the component (for IAPP)
231 readonly attribute string component_icone;
233 /*! \brief %Module catalog interface
235 This interface is used for creation of the module catalog in %SALOME application.
237 interface ModuleCatalog
242 Gets a list of names of computers of the catalog
244 ListOfComputers GetComputerList();
247 Gets the %PathPrefix of a computer
249 string GetPathPrefix(in string machinename) raises(NotFound);
251 Gets a list of names of components of the catalog
253 ListOfComponents GetComponentList();
255 Gets a list of pair GUI elements (component name, component icone)
256 used for representation of the module in %IAPP component.
259 ListOfIAPP_Affich GetComponentIconeList();
261 Gets a list of names of components of a particular type, which belong to this catalog.
263 // GetComponentList : operation to get a list of the components name of
264 // a particular type of the catalog
265 ListOfComponents GetTypedComponentList(in ComponentType _component_type);
268 Gets one component of the catalog.
270 Acomponent GetComponent(in string componentname) raises(NotFound);