summaryrefslogtreecommitdiff
path: root/TAO/tao/IFR_Client/IFR_Basic.pidl
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tao/IFR_Client/IFR_Basic.pidl')
-rw-r--r--TAO/tao/IFR_Client/IFR_Basic.pidl83
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_ */