diff options
Diffstat (limited to 'TAO/tao/IFR_Client/IFR_Basic.pidl')
-rw-r--r-- | TAO/tao/IFR_Client/IFR_Basic.pidl | 83 |
1 files changed, 69 insertions, 14 deletions
diff --git a/TAO/tao/IFR_Client/IFR_Basic.pidl b/TAO/tao/IFR_Client/IFR_Basic.pidl index 8269a64a187..ca87f284a62 100644 --- a/TAO/tao/IFR_Client/IFR_Basic.pidl +++ b/TAO/tao/IFR_Client/IFR_Basic.pidl @@ -55,9 +55,6 @@ #define _IFR_BASIC_IDL_ #include "IFR_Base.pidl" -#include "orb.idl" - -#pragma prefix "omg.org" module CORBA { @@ -217,17 +214,7 @@ module CORBA attribute StructMemberSeq members; }; - struct ExceptionDescription - { - Identifier name; - RepositoryId id; - RepositoryId defined_in; - VersionSpec version; - TypeCode type; - }; - typedef sequence <ExceptionDef> ExceptionDefSeq; - typedef sequence <ExceptionDescription> ExcDescriptionSeq; enum AttributeMode { @@ -252,6 +239,27 @@ module CORBA AttributeMode mode; }; + struct ExtAttributeDescription + { + Identifier name; + RepositoryId id; + RepositoryId defined_in; + VersionSpec version; + TypeCode type; + AttributeMode mode; + ExcDescriptionSeq get_exceptions; + ExcDescriptionSeq put_exceptions; + }; + + interface ExtAttributeDef : AttributeDef + { + // read/write interface + attribute ExcDescriptionSeq get_exceptions; + attribute ExcDescriptionSeq set_exceptions; + // read interface + ExtAttributeDescription describe_attribute (); + }; + enum OperationMode { OP_NORMAL, @@ -305,8 +313,11 @@ module CORBA typedef sequence <RepositoryId> RepositoryIdSeq; typedef sequence <OperationDescription> OpDescriptionSeq; typedef sequence <AttributeDescription> AttrDescriptionSeq; + typedef sequence <ExtAttributeDescription> ExtAttrDescriptionSeq; - interface InterfaceDef : Container, Contained, IDLType + interface InterfaceDef : Container, + Contained, + IDLType { // read/write interface attribute InterfaceDefSeq base_interfaces; @@ -358,13 +369,57 @@ module CORBA RepositoryIdSeq base_interfaces; }; + interface InterfaceAttrExtension + { + // read interface + struct ExtFullInterfaceDescription + { + Identifier name; + RepositoryId id; + RepositoryId defined_in; + VersionSpec version; + OpDescriptionSeq operations; + ExtAttrDescriptionSeq attributes; + RepositoryIdSeq base_interfaces; + TypeCode type; + }; + + ExtFullInterfaceDescription describe_ext_interface (); + + // write interface + ExtAttributeDef create_ext_attribute ( + in RepositoryId id, + in Identifier name, + in VersionSpec version, + in IDLType type, + in AttributeMode mode, + in ExceptionDefSeq get_exceptions, + in ExceptionDefSeq set_exceptions + ); + }; + + interface ExtInterfaceDef : InterfaceDef, + InterfaceAttrExtension + { + }; + interface AbstractInterfaceDef : InterfaceDef { }; + interface ExtAbstractInterfaceDef : AbstractInterfaceDef, + InterfaceAttrExtension + { + }; + interface LocalInterfaceDef : InterfaceDef { }; + + interface ExtLocalInterfaceDef : LocalInterfaceDef, + InterfaceAttrExtension + { + }; }; #endif /* _IFR_BASIC_IDL_ */ |