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 output parameters of the services.*/
- boolean Servicebydefault; /*!<True if the service is taken with its defult fields.*/
- boolean TypeOfNode; /*!<True is the service is a factory node. Otherwise, it's a compute node.*/
+ 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.
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;
+ string icon;
+ string constraint;
+ ListOfDefInterface interfaces;
+ PathPrefixes paths;
+ };
+
/*!
List of names of components.
*/
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;
/*!
-Sets/gets the user name of the component
+Get the user name of the component
*/
readonly attribute string componentusername;
/*!
-Defines whether the component is 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;
/*!
-Sets/gets the implementation type of the component : C++ or Python (for IAPP)
+Gets the implementation type of the component : C++ or Python (for IAPP)
*/
readonly attribute boolean implementation_type;
} ;
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();
} ;
};
--- /dev/null
+// 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_TestModuleCatalog.idl
+// Author :
+
+#ifndef _TestModuleCatalog_IDL
+#define _TestModuleCatalog_IDL
+
+#include "SALOME_Component.idl"
+
+module SuperVisionTest {
+
+ interface Adder ;
+
+ interface AddComponent : Engines::Component {
+
+// DataStreamPorts Addition istream(INTEGER, in, T), ostream(STRING, out, I)
+// DataStreamPorts Addition Ostream(FLOAT, out, T)
+ Adder Addition() ;
+ double Add( in double x , in double y , out double z ) ;
+ long Sigma( in long n ) ;
+ double LastResult() ;
+ };
+
+ interface Adder : Engines::Component {
+ double Add( in double x , in double y , out double z ) ;
+ double AddAndCompare( in double x , in double y , in Adder anOtherAdder,
+ out double z ) ;
+ void SetLastResult( in double z ) ;
+ void LastResult( out double z ) ;
+ };
+
+} ;
+
+#endif