Back to index

salome-kernel  6.5.0
SALOME_ModuleCatalog.idl
Go to the documentation of this file.
00001 // Copyright (C) 2007-2012  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 
00023 //  File   : SALOME_ModuleCatalog.idl
00024 //  Author : Estelle Deville
00025 //  $Header: /home/server/cvs/KERNEL/KERNEL_SRC/idl/SALOME_ModuleCatalog.idl,v 1.11.2.1.22.2.12.1 2012-04-12 14:04:58 vsr Exp $
00026 //
00037 module SALOME_ModuleCatalog
00038 {
00042   enum ComponentType {  GEOM,  
00043                         MESH,  
00044                          Med,  
00045                       SOLVER,  
00046                         DATA,  
00047                         VISU,  
00048                       SUPERV,  
00049                        OTHER   
00050                      } ;
00052   struct ServicesParameter
00053   {
00054     string Parametertype; 
00055     string Parametername; 
00056   } ;
00057 
00059   enum DataStreamDependency {
00060     DATASTREAM_UNDEFINED, 
00061     DATASTREAM_TEMPORAL, 
00062     DATASTREAM_ITERATIVE 
00063   } ;
00064 
00066   struct ServicesDataStreamParameter
00067   {
00068     string Parametertype;                     
00069     string Parametername;                     
00070     DataStreamDependency Parameterdependency; 
00071   } ;
00072 
00074   typedef sequence<ServicesParameter> ListOfServicesParameter;
00076   typedef sequence<ServicesDataStreamParameter> ListOfServicesDataStreamParameter;
00077 
00079   typedef sequence<string> ListOfString;
00080 
00082   enum TypeKind 
00083   {
00084     NONE     ,
00085     Dble   , 
00086     Int      , 
00087     Str   , 
00088     Bool     , 
00089     Objref   , 
00090     Seq , 
00091     Array    , 
00092     Struc  
00093   };
00094 
00096   struct MemberDefinition
00097   {
00098     string name; 
00099     string type; 
00100   };
00102   typedef sequence<MemberDefinition> ListOfMemberDefinition;
00103 
00105   struct TypeDefinition
00106   {
00107     string name; 
00108     TypeKind kind; 
00109     string id; 
00110     string content; 
00111     ListOfString bases; 
00112     ListOfMemberDefinition members; 
00113   };
00114 
00116   typedef sequence<TypeDefinition> ListOfTypeDefinition;
00117 
00119   struct Service
00120   {
00121     string                            ServiceName; 
00122     ListOfServicesParameter           ServiceinParameter; 
00123     ListOfServicesParameter           ServiceoutParameter; 
00124     ListOfServicesDataStreamParameter ServiceinDataStreamParameter; 
00125     ListOfServicesDataStreamParameter ServiceoutDataStreamParameter; 
00126     boolean                           Servicebydefault; 
00127     boolean                           TypeOfNode; 
00128   } ;
00130   typedef sequence<Service> ListOfInterfaceService;
00132   typedef sequence<string> ListOfServices ;
00134   struct DefinitionInterface
00135   {
00136     string                 interfacename ; 
00137     ListOfInterfaceService interfaceservicelist ; 
00138   } ;
00140   typedef sequence<DefinitionInterface> ListOfDefInterface ;
00142   typedef sequence<string> ListOfInterfaces ;
00143 
00147   struct PathPrefix {
00148     string             machine;
00149     string             path;
00150   };
00151 
00153   typedef sequence<PathPrefix> PathPrefixes;
00154 
00156   enum ImplType {
00157     SO,                       
00158     PY,                       
00159     EXE,                      
00160     CEXE                      
00161   } ;
00162 
00164   struct ComponentDef
00165   {
00166     ComponentType      type;
00167     string             name;
00168     string             username;
00169     boolean            multistudy;
00170     ImplType           implementationType;
00171     string             implname;
00172     string             icon;
00173     string             constraint;
00174     ListOfDefInterface interfaces;
00175     PathPrefixes       paths;
00176   };
00177 
00179   typedef sequence<string> ListOfComponents ;
00181   typedef sequence<string> ListOfComputers ;
00183   struct IAPP_Affich
00184   {
00185     string modulename;     
00186     string moduleusername; 
00187     string moduleicone;    
00188     string moduleversion;  
00189     string modulecomment;  
00190   };
00195   typedef sequence<IAPP_Affich> ListOfIAPP_Affich ;
00196 
00198   exception NotFound
00199   {
00200     string what ; 
00201   } ;
00202 
00207   interface Acomponent
00208   {
00213     ListOfInterfaces GetInterfaceList() ;
00214 
00221     DefinitionInterface GetInterface(in string interfacename) raises(NotFound);
00222 
00229     ListOfServices GetServiceList(in string interfacename) raises(NotFound);
00230 
00231     
00239     Service GetService(in string interfacename, 
00240                      in string servicename) raises(NotFound);
00241 
00248     Service GetDefaultService(in string interfacename) raises(NotFound);
00249 
00256     string GetPathPrefix(in string machinename) raises(NotFound);
00257 
00262     readonly attribute string constraint ;
00263 
00266     readonly attribute string componentname;
00267 
00270     readonly attribute string componentusername;
00271 
00274     readonly attribute boolean multistudy;
00275 
00278     readonly attribute ComponentType component_type ;
00279 
00282     readonly attribute string component_icone;
00283 
00288     readonly attribute ImplType implementation_type;
00294     readonly attribute string implementation_name;
00295   } ;
00296 
00301   interface ModuleCatalog
00302   {
00305     void ping();
00306 
00309     long getPID();
00310 
00313     oneway void ShutdownWithExit();
00314 
00317     ListOfTypeDefinition GetTypes();
00318 
00321     ListOfComputers GetComputerList();
00322 
00324     string GetPathPrefix(in string machinename) raises(NotFound);
00325 
00327     ListOfComponents GetComponentList();
00328 
00332     ListOfIAPP_Affich GetComponentIconeList();
00333 
00336     ListOfComponents GetTypedComponentList(in ComponentType _component_type);
00337 
00340     Acomponent GetComponent(in string componentname) raises(NotFound);
00341 
00344     ComponentDef GetComponentInfo(in string componentName) raises(NotFound);
00345 
00350     void ImportXmlCatalogFile(in string filename) raises(NotFound);
00351 
00354     void shutdown();
00355   } ;
00356 };