General KERNEL Documentation     End User KERNEL Services  


idl/SALOME_ModuleCatalog.idl

Go to the documentation of this file.
00001 //  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
00002 //  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
00003 // 
00004 //  This library is free software; you can redistribute it and/or 
00005 //  modify it under the terms of the GNU Lesser General Public 
00006 //  License as published by the Free Software Foundation; either 
00007 //  version 2.1 of the License. 
00008 // 
00009 //  This library is distributed in the hope that it will be useful, 
00010 //  but WITHOUT ANY WARRANTY; without even the implied warranty of 
00011 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
00012 //  Lesser General Public License for more details. 
00013 // 
00014 //  You should have received a copy of the GNU Lesser General Public 
00015 //  License along with this library; if not, write to the Free Software 
00016 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
00017 // 
00018 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
00019 //
00020 //
00021 //
00022 //  File   : SALOME_ModuleCatalog.idl
00023 //  Author : Estelle Deville
00024 //  $Header: /home/server/cvs/KERNEL/KERNEL_SRC/idl/SALOME_ModuleCatalog.idl,v 1.9 2006/06/01 11:15:15 jfa Exp $
00025 
00035 module SALOME_ModuleCatalog
00036 {
00037   // Type Definitions
00042   enum ComponentType {  GEOM,  
00043                         MESH,  
00044                          Med,  
00045                       SOLVER,  
00046                         DATA,  
00047                         VISU,  
00048                       SUPERV,  
00049                        OTHER   
00050                      } ;
00055   struct ServicesParameter
00056   {
00057     string Parametertype; 
00058     string Parametername; 
00059   } ;
00060 
00061   enum DataStreamDependency {
00062     DATASTREAM_UNDEFINED,
00063     DATASTREAM_TEMPORAL,
00064     DATASTREAM_ITERATIVE
00065   } ;
00066 
00067   enum DataStreamType {
00068     DATASTREAM_UNKNOWN,
00069     DATASTREAM_INTEGER,
00070     DATASTREAM_FLOAT,
00071     DATASTREAM_DOUBLE,
00072     DATASTREAM_STRING,
00073     DATASTREAM_BOOLEAN
00074   } ;
00075 
00076   struct ServicesDataStreamParameter
00077   {
00078     DataStreamType Parametertype; 
00079     string Parametername;         
00080     DataStreamDependency Parameterdependency; 
00081   } ;
00082 
00087   typedef sequence<ServicesParameter> ListOfServicesParameter;
00088   typedef sequence<ServicesDataStreamParameter> ListOfServicesDataStreamParameter;
00089 
00094   struct Service
00095   {
00096     string                            ServiceName; 
00097     ListOfServicesParameter           ServiceinParameter; 
00098     ListOfServicesParameter           ServiceoutParameter; 
00099     ListOfServicesDataStreamParameter ServiceinDataStreamParameter; 
00100     ListOfServicesDataStreamParameter ServiceoutDataStreamParameter; 
00101     boolean                           Servicebydefault; 
00102     boolean                           TypeOfNode; 
00103   } ;
00107   typedef sequence<Service> ListOfInterfaceService;
00111   typedef sequence<string> ListOfServices ;
00115   struct DefinitionInterface
00116   {
00117     string                 interfacename ; 
00118     ListOfInterfaceService interfaceservicelist ; 
00119   } ;
00123   typedef sequence<DefinitionInterface> ListOfDefInterface ;
00127   typedef sequence<string> ListOfInterfaces ;
00128 
00133   struct PathPrefix {
00134     string             machine;
00135     string             path;
00136   };
00137 
00141   typedef sequence<PathPrefix> PathPrefixes;
00142 
00146   struct Component
00147   {
00148     ComponentType      type;
00149     string             name;
00150     string             username;
00151     boolean            multistudy;
00152     boolean            implementationType;
00153     string             icon;
00154     string             constraint;
00155     ListOfDefInterface interfaces;
00156     PathPrefixes       paths;
00157   };
00158 
00162   typedef sequence<string> ListOfComponents ;
00166   typedef sequence<string> ListOfComputers ;
00170   struct IAPP_Affich
00171   {
00172     string modulename;     
00173     string moduleusername; 
00174     string moduleicone;    
00175     string moduleversion;  
00176     string modulecomment;  
00177   };
00182   typedef sequence<IAPP_Affich> ListOfIAPP_Affich ;
00183 
00187   exception NotFound
00188   {
00189     string what ; 
00190   } ;
00191 
00196   interface Acomponent
00197   {
00198     // GetInterfaceList : operation to get a list of the interfaces name of
00199     //                    a component
00204     ListOfInterfaces GetInterfaceList() ;
00205 
00206     // GetInterface : operation to get one interface of a component
00207   
00214     DefinitionInterface GetInterface(in string interfacename) raises(NotFound);
00215 
00216     // GetServiceList : operation to get a list of the services name of
00217     //                  an interface of a component
00224     ListOfServices GetServiceList(in string interfacename) raises(NotFound);
00225 
00226     
00227     // GetService : operation to get one service of an interface of a component
00228   
00237     Service GetService(in string interfacename, 
00238                  in string servicename) raises(NotFound);
00239 
00240     // GetDefaultService : operation to get the default service
00241     //                     of an interface of a component
00249     Service GetDefaultService(in string interfacename) raises(NotFound);
00250 
00251     // GetPathPrefix : operation to get the PathPrefix of a computer
00259     string GetPathPrefix(in string machinename) raises(NotFound);
00260 
00265     readonly attribute string constraint ;
00266 
00270     readonly attribute string componentname;
00271 
00275     readonly attribute string componentusername;
00276 
00280     readonly attribute boolean multistudy;
00281 
00285     readonly attribute ComponentType component_type ;
00286 
00290     readonly attribute string component_icone;
00291 
00295     readonly attribute boolean implementation_type;
00296   } ;
00297 
00302   interface ModuleCatalog
00303   {
00304     void ping();
00305 
00309     ListOfComputers GetComputerList();
00310 
00314     string GetPathPrefix(in string machinename) raises(NotFound);
00318     ListOfComponents GetComponentList();
00324     ListOfIAPP_Affich GetComponentIconeList();
00328     // GetComponentList : operation to get a list of the components name of
00329     //                    a particular type of the catalog   
00330     ListOfComponents GetTypedComponentList(in ComponentType _component_type);
00331 
00335     Acomponent GetComponent(in string componentname) raises(NotFound);
00336 
00340     Component GetComponentInfo(in string componentName) raises(NotFound);
00341 
00346     void ImportXmlCatalogFile(in string filename) raises(NotFound);
00347 
00348     void shutdown();
00349   } ;
00350 };