+//! The list of datastream parameters of service.
+ typedef sequence<ServicesDataStreamParameter> ListOfServicesDataStreamParameter;
+
+//! a string list
+ typedef sequence<string> ListOfString;
+
+//! enumeration to define data types used by services
+ enum TypeKind
+ {
+ NONE ,
+ Dble , /*!< a double */
+ Int , /*!< an integer */
+ Str , /*!< a string */
+ Bool , /*!< a boolean */
+ Objref , /*!< an object reference */
+ Seq , /*!< a sequence of a content type */
+ Array , /*!< an array */
+ Struc /*!< a structure with named members */
+ };
+
+//! struct to define members of a Struc TypeKind
+ struct MemberDefinition
+ {
+ string name; /*!< Member name */
+ string type; /*!< Member type name */
+ };
+//! List of member definitions in a structure
+ typedef sequence<MemberDefinition> ListOfMemberDefinition;
+
+//! Struct to get the definition of types used in Salome catalogs
+ struct TypeDefinition
+ {
+ string name; /*!< Type name*/
+ TypeKind kind; /*!< Type kind.*/
+ string id; /*!< id (if needed) */
+ string content; /*!< Content type (if needed) */
+ ListOfString bases; /*!< base types (if needed) */
+ ListOfMemberDefinition members; /*!< Member types (if needed) */
+ };