diff options
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/CosTradingRepos.idl')
-rw-r--r-- | TAO/orbsvcs/orbsvcs/CosTradingRepos.idl | 159 |
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 */ |