-// File: SALOME_ModuleCatalog.idl
-// Created: Tue June 25 2001
-// Author: Estelle Deville
-// Project: SALOME
-// Copyright : CEA/DEN/DMSS/LGLS
-// $Header$
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : SALOME_ModuleCatalog.idl
+// Author : Estelle Deville
+// $Header$
/*! \file SALOME_ModuleCatalog.idl This file conatins a set of interfaces used for
creation of the catalog of components in %SALOME application
*/
-/*! \ingroup Kernel
+/*!
The main package of interfaces used for creation of the module catalog in %SALOME application.
+Module catalog allows to manage components of %SALOME application, to call specified in the
+xml files interfaces with the help of AComponent interface.
*/
module SALOME_ModuleCatalog
{
// Type Definitions
/*!
-This enumeration contains a set of definitions of %SALOME modules.
+This enumeration contains a current set of definitions of the components integrated
+into %SALOME application.
*/
enum ComponentType { GEOM, /*!<Module %GEOM */
MESH, /*!<Module %MESH */
OTHER /*!<Any other type of module */
} ;
/*!
-This struct contains fields defining the parameters of the services.
+This struct contains fields defining the parameter of the service.
*/
struct ServicesParameter
string Parametername; /*!<Name of the parameter.*/
} ;
+ enum DataStreamDependency {
+ DATASTREAM_UNDEFINED,
+ DATASTREAM_TEMPORAL,
+ DATASTREAM_ITERATIVE
+ } ;
+
+ enum DataStreamType {
+ DATASTREAM_UNKNOWN,
+ DATASTREAM_INTEGER,
+ DATASTREAM_FLOAT,
+ DATASTREAM_DOUBLE,
+ DATASTREAM_STRING,
+ DATASTREAM_BOOLEAN
+ } ;
+
+ struct ServicesDataStreamParameter
+ {
+ DataStreamType Parametertype; /*!<Type of the parameter.*/
+ string Parametername; /*!<Name of the parameter.*/
+ DataStreamDependency Parameterdependency; /*!<Temporal or iterative dependency.*/
+ } ;
+
+/*!
+The list of the parameters of service.
+*/
+
typedef sequence<ServicesParameter> ListOfServicesParameter;
+ typedef sequence<ServicesDataStreamParameter> ListOfServicesDataStreamParameter;
+
/*!
This struct contains fields completely defining each service.
*/
struct Service
{
- string ServiceName; /*!<Name of the service.*/
- ListOfServicesParameter ServiceinParameter; /*!< List of input parameters of the services.*/
- ListOfServicesParameter ServiceoutParameter; /*!< List of input parameters of the services.*/
- boolean Servicebydefault; /*!<True if the service is taken with its defult fields.*/
+ string ServiceName; /*!<Name of the service.*/
+ ListOfServicesParameter ServiceinParameter; /*!< List of input parameters of the services.*/
+ ListOfServicesParameter ServiceoutParameter; /*!< List of output parameters of the services.*/
+ ListOfServicesDataStreamParameter ServiceinDataStreamParameter; /*!< List of input parameters of the services.*/
+ ListOfServicesDataStreamParameter ServiceoutDataStreamParameter; /*!< List of output parameters of the services.*/
+ boolean Servicebydefault; /*!<True if the service is taken with its default fields.*/
+ boolean TypeOfNode; /*!<True is the service is a factory node. Otherwise, it's a compute node.*/
} ;
/*!
List of services of the interface.
*/
typedef sequence<DefinitionInterface> ListOfDefInterface ;
/*!
-List of interfaces.
+List of names of interfaces.
*/
typedef sequence<string> ListOfInterfaces ;
+
+/*!
+PathPrefix : association of a machine name and
+a path to a component
+*/
+ struct PathPrefix {
+ string machine;
+ string path;
+ };
+
+/*!
+List of path prefixes
+*/
+ typedef sequence<PathPrefix> PathPrefixes;
+
+/*!
+Description of a component
+*/
+ struct Component
+ {
+ ComponentType type;
+ string name;
+ string username;
+ boolean multistudy;
+ boolean implementationType;
+ string icon;
+ string constraint;
+ ListOfDefInterface interfaces;
+ PathPrefixes paths;
+ };
+
/*!
List of names of components.
*/
*/
struct IAPP_Affich
{
- string modulename; /*!<Name of the module.*/
- string moduleicone; /*!<Icone representing the module.*/
+ string modulename; /*!<Name of the module.*/
+ string moduleusername; /*!<UserName of the module.*/
+ string moduleicone; /*!<Icone representing the module.*/
+ string moduleversion; /*!<Version of the module.*/
+ string modulecomment; /*!<Comment to the module.*/
};
/*!
List of pair GUI elements (component name, component icone)
string what ; /*!<Indicates if it's a %component, a %service or a % pathPrefix.*/
} ;
+ /*!
+ This interface provides the common funcionality information of corresponding component.
+ Information is loaded from specific xml files.
+ */
interface Acomponent
{
// GetInterfaceList : operation to get a list of the interfaces name of
// a component
/*!
- Gets a list of names of interfaces of the component
+ Gets the list of names of interfaces of the component
\return a list of interfaces of the component
*/
ListOfInterfaces GetInterfaceList() ;
// GetServiceList : operation to get a list of the services name of
// an interface of a component
/*!
- Gets a list of names of services of a definite interface belonging to the component.
+ Gets the list of names of services of a definite interface belonging to the component.
\note <BR>If the specified interface doesn't exist, Notfound exception is thrown.
\param interfacename Name of the interface
\return List of services of the required interface
string GetPathPrefix(in string machinename) raises(NotFound);
/*!
- Sets/gets the constraint affected to the component
+ Get the constraint affected to the component
(to be resolved by LifeCycle for the computer choice)
*/
readonly attribute string constraint ;
/*!
-Sets/gets the name of the component
+Get the name of the component
*/
readonly attribute string componentname;
+/*!
+Get the user name of the component
+*/
+ readonly attribute string componentusername;
+
/*!
-Defines whether the component can be multistudy or not
+Ask whether the component is multistudy or not
*/
readonly attribute boolean multistudy;
/*!
-Defines the type of the component
+Ask the type of the component
*/
readonly attribute ComponentType component_type ;
/*!
-Sets/gets the icone of the component (for IAPP)
+Gets the icone of the component (for IAPP)
*/
readonly attribute string component_icone;
+
+/*!
+Gets the implementation type of the component : C++ or Python (for IAPP)
+*/
+ readonly attribute boolean implementation_type;
} ;
+
/*! \brief %Module catalog interface
This interface is used for creation of the module catalog in %SALOME application.
Gets one component of the catalog.
*/
Acomponent GetComponent(in string componentname) raises(NotFound);
+
+/*!
+Gets the description of a component of the catalog.
+*/
+ Component GetComponentInfo(in string componentName) raises(NotFound);
+
+/*!
+Reads a xml file and imports new components from this file.
+New components replace existing components with the same name.
+*/
+ void ImportXmlCatalogFile(in string filename) raises(NotFound);
+
+ void shutdown();
} ;
};