summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/orbsvcs/CosTradingRepos.idl
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/CosTradingRepos.idl')
-rw-r--r--TAO/orbsvcs/orbsvcs/CosTradingRepos.idl159
1 files changed, 159 insertions, 0 deletions
diff --git a/TAO/orbsvcs/orbsvcs/CosTradingRepos.idl b/TAO/orbsvcs/orbsvcs/CosTradingRepos.idl
new file mode 100644
index 00000000000..0462030155e
--- /dev/null
+++ b/TAO/orbsvcs/orbsvcs/CosTradingRepos.idl
@@ -0,0 +1,159 @@
+/* -*- C++ -*- */
+
+// ========================================================================
+// $Id$
+//
+// = FILENAME
+// CosTradingRepos.idl
+//
+// = DESCRIPTION
+// Trader Service v1.0 described in CORBAservices: Common Object
+// Services Specification, chapter 16 OMG IDL for Trading Function
+// Module, p 16-74
+//
+// ========================================================================
+
+#ifndef TAO_TRADING_REPOS_IDL
+#define TAO_TRADING_REPOS_IDL
+
+#include <orb.idl>
+#include "CosTrading.idl"
+
+#pragma prefix "omg.org"
+
+// OMG IDL for Service Type Repository Module, p 16-89
+
+module CosTradingRepos
+{
+ interface ServiceTypeRepository
+ {
+ // local types
+ typedef sequence<CosTrading::ServiceTypeName> ServiceTypeNameSeq;
+ enum PropertyMode {
+ PROP_NORMAL, PROP_READONLY,
+ PROP_MANDATORY, PROP_MANDATORY_READONLY
+ };
+ struct PropStruct
+ {
+ CosTrading::PropertyName name;
+ CORBA::TypeCode value_type;
+ PropertyMode mode;
+ };
+ typedef sequence<PropStruct> PropStructSeq;
+
+ typedef CosTrading::Istring Identifier; // IR::Identifier
+
+ struct IncarnationNumber
+ {
+ unsigned long high;
+ unsigned long low;
+ };
+
+ struct TypeStruct
+ {
+ Identifier if_name;
+ PropStructSeq props;
+ ServiceTypeNameSeq super_types;
+ boolean masked;
+ IncarnationNumber incarnation;
+ };
+
+ enum ListOption { all, since };
+ union SpecifiedServiceTypes switch ( ListOption ) {
+ case all: boolean all_;
+ case since: IncarnationNumber incarnation;
+ };
+
+ // local exceptions
+ exception ServiceTypeExists {
+ CosTrading::ServiceTypeName name;
+ };
+
+ exception InterfaceTypeMismatch {
+ CosTrading::ServiceTypeName base_service;
+ Identifier base_if;
+ CosTrading::ServiceTypeName derived_service;
+ Identifier derived_if;
+ };
+
+ exception HasSubTypes {
+ CosTrading::ServiceTypeName the_type;
+ CosTrading::ServiceTypeName sub_type;
+ };
+
+ exception AlreadyMasked {
+ CosTrading::ServiceTypeName name;
+ };
+
+ exception NotMasked {
+ CosTrading::ServiceTypeName name;
+ };
+
+ exception ValueTypeRedefinition {
+ CosTrading::ServiceTypeName type_1;
+ PropStruct definition_1;
+ CosTrading::ServiceTypeName type_2;
+ PropStruct definition_2;
+ };
+
+ exception DuplicateServiceTypeName {
+ CosTrading::ServiceTypeName name;
+ };
+
+ // attributes
+ readonly attribute IncarnationNumber incarnation;
+
+ // operation signatures
+ IncarnationNumber add_type (in CosTrading::ServiceTypeName name,
+ in Identifier if_name,
+ in PropStructSeq props,
+ in ServiceTypeNameSeq super_types)
+ raises (CosTrading::IllegalServiceType,
+ ServiceTypeExists,
+ InterfaceTypeMismatch,
+ CosTrading::IllegalPropertyName,
+ CosTrading::DuplicatePropertyName,
+ ValueTypeRedefinition,
+ CosTrading::UnknownServiceType,
+ DuplicateServiceTypeName);
+
+ void remove_type (in CosTrading::ServiceTypeName name)
+ raises (CosTrading::IllegalServiceType,
+ CosTrading::UnknownServiceType,
+ HasSubTypes);
+
+ ServiceTypeNameSeq list_types (in SpecifiedServiceTypes which_types);
+
+ TypeStruct describe_type (in CosTrading::ServiceTypeName name)
+ raises (CosTrading::IllegalServiceType,
+ CosTrading::UnknownServiceType);
+
+ TypeStruct fully_describe_type (in CosTrading::ServiceTypeName name)
+ raises (CosTrading::IllegalServiceType,
+ CosTrading::UnknownServiceType);
+
+ void mask_type (in CosTrading::ServiceTypeName name)
+ raises (CosTrading::IllegalServiceType,
+ CosTrading::UnknownServiceType,
+ AlreadyMasked);
+
+ void unmask_type (in CosTrading::ServiceTypeName name)
+ raises (CosTrading::IllegalServiceType,
+ CosTrading::UnknownServiceType,
+ NotMasked);
+ };
+}; /* end module CosTradingRepos */
+
+module CosTradingSequences
+{
+ typedef sequence<short> ShortSeq;
+ typedef sequence<unsigned short> UShortSeq;
+ typedef sequence<long> LongSeq;
+ typedef sequence<unsigned long> ULongSeq;
+ typedef sequence<boolean> BooleanSeq;
+ typedef sequence<float> FloatSeq;
+ typedef sequence<double> DoubleSeq;
+ typedef sequence<string> StringSeq;
+};
+
+#endif /* TAO_TRADING_REPOS_IDL */