SALOME documentation central

idl/SALOME_ModuleCatalog.idl

Go to the documentation of this file.
00001 //  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
00002 //
00003 //  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
00004 //  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
00005 //
00006 //  This library is free software; you can redistribute it and/or
00007 //  modify it under the terms of the GNU Lesser General Public
00008 //  License as published by the Free Software Foundation; either
00009 //  version 2.1 of the License.
00010 //
00011 //  This library is distributed in the hope that it will be useful,
00012 //  but WITHOUT ANY WARRANTY; without even the implied warranty of
00013 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00014 //  Lesser General Public License for more details.
00015 //
00016 //  You should have received a copy of the GNU Lesser General Public
00017 //  License along with this library; if not, write to the Free Software
00018 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
00019 //
00020 //  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
00021 //
00022 //  File   : SALOME_ModuleCatalog.idl
00023 //  Author : Estelle Deville
00024 //  $Header$
00025 //
00036 module SALOME_ModuleCatalog
00037 {
00041   enum ComponentType {  GEOM,  
00042                         MESH,  
00043                          Med,  
00044                       SOLVER,  
00045                         DATA,  
00046                         VISU,  
00047                       SUPERV,  
00048                        OTHER   
00049                      } ;
00051   struct ServicesParameter
00052   {
00053     string Parametertype; 
00054     string Parametername; 
00055   } ;
00056 
00058   enum DataStreamDependency {
00059     DATASTREAM_UNDEFINED, 
00060     DATASTREAM_TEMPORAL, 
00061     DATASTREAM_ITERATIVE 
00062   } ;
00063 
00065   struct ServicesDataStreamParameter
00066   {
00067     string Parametertype;                     
00068     string Parametername;                     
00069     DataStreamDependency Parameterdependency; 
00070   } ;
00071 
00073   typedef sequence<ServicesParameter> ListOfServicesParameter;
00075   typedef sequence<ServicesDataStreamParameter> ListOfServicesDataStreamParameter;
00076 
00078   typedef sequence<string> ListOfString;
00079 
00081   enum TypeKind 
00082   {
00083     NONE     ,
00084     Dble   , 
00085     Int      , 
00086     Str   , 
00087     Bool     , 
00088     Objref   , 
00089     Seq , 
00090     Array    , 
00091     Struc  
00092   };
00093 
00095   struct MemberDefinition
00096   {
00097     string name; 
00098     string type; 
00099   };
00101   typedef sequence<MemberDefinition> ListOfMemberDefinition;
00102 
00104   struct TypeDefinition
00105   {
00106     string name; 
00107     TypeKind kind; 
00108     string id; 
00109     string content; 
00110     ListOfString bases; 
00111     ListOfMemberDefinition members; 
00112   };
00113 
00115   typedef sequence<TypeDefinition> ListOfTypeDefinition;
00116 
00118   struct Service
00119   {
00120     string                            ServiceName; 
00121     ListOfServicesParameter           ServiceinParameter; 
00122     ListOfServicesParameter           ServiceoutParameter; 
00123     ListOfServicesDataStreamParameter ServiceinDataStreamParameter; 
00124     ListOfServicesDataStreamParameter ServiceoutDataStreamParameter; 
00125     boolean                           Servicebydefault; 
00126     boolean                           TypeOfNode; 
00127   } ;
00129   typedef sequence<Service> ListOfInterfaceService;
00131   typedef sequence<string> ListOfServices ;
00133   struct DefinitionInterface
00134   {
00135     string                 interfacename ; 
00136     ListOfInterfaceService interfaceservicelist ; 
00137   } ;
00139   typedef sequence<DefinitionInterface> ListOfDefInterface ;
00141   typedef sequence<string> ListOfInterfaces ;
00142 
00146   struct PathPrefix {
00147     string             machine;
00148     string             path;
00149   };
00150 
00152   typedef sequence<PathPrefix> PathPrefixes;
00153 
00155   enum ImplType {
00156     SO,                       
00157     PY,                       
00158     EXE,                      
00159     CEXE                      
00160   } ;
00161 
00163   struct ComponentDef
00164   {
00165     ComponentType      type;
00166     string             name;
00167     string             username;
00168     boolean            multistudy;
00169     ImplType           implementationType;
00170     string             implname;
00171     string             icon;
00172     string             constraint;
00173     ListOfDefInterface interfaces;
00174     PathPrefixes       paths;
00175   };
00176 
00178   typedef sequence<string> ListOfComponents ;
00180   typedef sequence<string> ListOfComputers ;
00182   struct IAPP_Affich
00183   {
00184     string modulename;     
00185     string moduleusername; 
00186     string moduleicone;    
00187     string moduleversion;  
00188     string modulecomment;  
00189   };
00194   typedef sequence<IAPP_Affich> ListOfIAPP_Affich ;
00195 
00197   exception NotFound
00198   {
00199     string what ; 
00200   } ;
00201 
00206   interface Acomponent
00207   {
00212     ListOfInterfaces GetInterfaceList() ;
00213 
00220     DefinitionInterface GetInterface(in string interfacename) raises(NotFound);
00221 
00228     ListOfServices GetServiceList(in string interfacename) raises(NotFound);
00229 
00230     
00238     Service GetService(in string interfacename, 
00239                  in string servicename) raises(NotFound);
00240 
00247     Service GetDefaultService(in string interfacename) raises(NotFound);
00248 
00255     string GetPathPrefix(in string machinename) raises(NotFound);
00256 
00261     readonly attribute string constraint ;
00262 
00265     readonly attribute string componentname;
00266 
00269     readonly attribute string componentusername;
00270 
00273     readonly attribute boolean multistudy;
00274 
00277     readonly attribute ComponentType component_type ;
00278 
00281     readonly attribute string component_icone;
00282 
00287     readonly attribute ImplType implementation_type;
00293     readonly attribute string implementation_name;
00294   } ;
00295 
00300   interface ModuleCatalog
00301   {
00304     void ping();
00305 
00308     long getPID();
00309 
00312     oneway void ShutdownWithExit();
00313 
00316     ListOfTypeDefinition GetTypes();
00317 
00320     ListOfComputers GetComputerList();
00321 
00323     string GetPathPrefix(in string machinename) raises(NotFound);
00324 
00326     ListOfComponents GetComponentList();
00327 
00331     ListOfIAPP_Affich GetComponentIconeList();
00332 
00335     ListOfComponents GetTypedComponentList(in ComponentType _component_type);
00336 
00339     Acomponent GetComponent(in string componentname) raises(NotFound);
00340 
00343     ComponentDef GetComponentInfo(in string componentName) raises(NotFound);
00344 
00349     void ImportXmlCatalogFile(in string filename) raises(NotFound);
00350 
00353     void shutdown();
00354   } ;
00355 };