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();
} ;
};