diff options
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/CosTrading.idl')
-rw-r--r-- | TAO/orbsvcs/orbsvcs/CosTrading.idl | 163 |
1 files changed, 163 insertions, 0 deletions
diff --git a/TAO/orbsvcs/orbsvcs/CosTrading.idl b/TAO/orbsvcs/orbsvcs/CosTrading.idl index 066d150ca0f..3b8beedb491 100644 --- a/TAO/orbsvcs/orbsvcs/CosTrading.idl +++ b/TAO/orbsvcs/orbsvcs/CosTrading.idl @@ -521,4 +521,167 @@ module CosTrading }; /* end module CosTrading */ + +// OMG IDL for Dynamic Property Module, p 16-88 + +module CosTradingDynamic +{ + + exception DPEvalFailure { + CosTrading::PropertyName name; + TypeCode returned_type; + any extra_info; + }; + + interface DynamicPropEval + { + any evalDP (in CosTrading::PropertyName name, + in TypeCode returned_type, + in any extra_info) + raises (DPEvalFailure); + }; + + struct DynamicProp { + DynamicPropEval eval_if; + TypeCode returned_type; + any extra_info; + }; +}; /* end module CosTradingDynamic */ + + +// 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; + 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_IDL */ |