Previous | Table of Contents | Next |
module GIOP { // IDL extended for version 1.1, 1.2, and 1.3
struct Version { octet major; octet minor;
};
#ifndef GIOP_1_1 // GIOP 1.0 enum MsgType_1_0{ // rename from MsgType
Request, Reply, CancelRequest,LocateRequest, LocateReply,CloseConnection, MessageError};
#else // GIOP 1.1 enum MsgType_1_1{
Request, Reply, CancelRequest,LocateRequest, LocateReply,CloseConnection, MessageError,Fragment // GIOP 1.1 addition
}; #endif
// GIOP 1.0
struct MessageHeader_1_0 {// Renamed from MessageHeader char magic [4]; Version GIOP_version; boolean byte_order; octet message_type;
unsigned long message_size;
};
// GIOP 1.1
struct MessageHeader_1_1 { char magic [4]; Version GIOP_version; octet flags; // GIOP 1.1 change octet message_type; unsigned
long message_size;
};
// GIOP 1.2 and 1.3typedef MessageHeader_1_1 MessageHeader_1_2;typedef MessageHeader_1_1 MessageHeader_1_3;
// GIOP 1.0
struct RequestHeader _1_0 {IOP::ServiceContextList service_context;unsigned long request_id;boolean response_expected;sequence <octet> object_key;string operation;CORBA::OctetSeq requesting_principal;
}; // GIOP 1.1
struct RequestHeader_1_1 { IOP::ServiceContextList service_context; unsigned long request_id; boolean response_expected; octet
reserved[3]; // Added in GIOP 1.1 sequence <octet> object_key; string operation; CORBA::OctetSeq requesting_principal;
};
// GIOP 1.2, and 1.3typedef short AddressingDisposition;const short KeyAddr = 0;const short ProfileAddr = 1;const short ReferenceAddr = 2;
struct IORAddressingInfo {unsigned long selected_profile_index;IOP::IOR ior;
};
union TargetAddress switch (AddressingDisposition) { case KeyAddr: sequence <octet> object_key; case ProfileAddr: IOP::TaggedProfile
profile; case ReferenceAddr: IORAddressingInfo ior;
};
struct RequestHeader_1_2 { unsigned long request_id; octet response_flags; octet reserved[3]; TargetAddress target; string
operation; // requesting_principal not in GIOP 1.2 and 1.3 IOP::ServiceContextList service_context; // 1.2 change
};
#ifndef GIOP_1_2 // GIOP 1.0 and 1.1 enum ReplyStatusType_1_0 {// Renamed from ReplyStatusType
NO_EXCEPTION,USER_EXCEPTION,SYSTEM_EXCEPTION,LOCATION_FORWARD
};
// GIOP 1.0
struct ReplyHeader_1_0 {// Renamed from ReplyHeaderIOP::ServiceContextList service_context;unsigned long request_id;
ReplyStatusType_1_0 reply_status;};
// GIOP 1.1typedef ReplyHeader_1_0 ReplyHeader_1_1;// Same Header contents for 1.0 and 1.1
#else // GIOP 1.2, and 1.3 enum ReplyStatusType_1_2 {
NO_EXCEPTION,USER_EXCEPTION,SYSTEM_EXCEPTION,LOCATION_FORWARD,LOCATION_FORWARD_PERM, // new value for 1.2NEEDS_ADDRESSING_MODE // new value for 1.2
};
struct ReplyHeader_1_2 { unsigned long request_id; ReplyStatusType_1_2 reply_status; IOP::ServiceContextList service_context;
// 1.2 change
};typedef ReplyHeader_1_2 ReplyHeader_1_3;
#endif // GIOP_1_2
struct SystemExceptionReplyBody {string exception_id;unsigned long minor_code_value;unsigned long completion_status;
};
struct CancelRequestHeader { unsigned long request_id;};
// GIOP 1.0struct LocateRequestHeader_1_0 {
// Renamed LocationRequestHeader unsigned long request_id; sequence <octet> object_key;
};
// GIOP 1.1 typedef LocateRequestHeader_1_0 LocateRequestHeader_1_1; // Same Header contents for 1.0 and 1.1
// GIOP 1.2 and 1.3
struct LocateRequestHeader_1_2 {unsigned long request_id;TargetAddress target;
};typedef LocateRequestHeader_1_2 LocateRequestHeader_1_3;
#ifndef GIOP_1_2 // GIOP 1.0 and 1.1 enum LocateStatusType_1_0 {// Renamed from LocateStatusType
UNKNOWN_OBJECT, OBJECT_HERE, OBJECT_FORWARD
};
// GIOP 1.0 struct LocateReplyHeader_1_0 {
// Renamed from LocateReplyHeader |
|||||
unsigned long | request_id; | ||||
LocateStatusType_1_0 | locate_status; | ||||
}; |
// GIOP 1.1 typedef LocateReplyHeader_1_0 LocateReplyHeader_1_1; // same Header contents for 1.0 and 1.1
#else // GIOP 1.2, and 1.3 enum LocateStatusType_1_2 {
UNKNOWN_OBJECT,OBJECT_HERE,OBJECT_FORWARD,OBJECT_FORWARD_PERM, // new value for GIOP 1.2LOC_SYSTEM_EXCEPTION, // new value for GIOP 1.2LOC_NEEDS_ADDRESSING_MODE // new value for GIOP 1.2
};
struct LocateReplyHeader_1_2 { unsigned long request_id; LocateStatusType_1_2 locate_status;
}; typedef LocateReplyHeader_1_2 LocateReplyHeader_1_3; #endif // GIOP_1_2
// GIOP 1.2, and 1.3 struct FragmentHeader_1_2 {
unsigned long request_id; }; typedef FragmentHeader_1_2 FragmentHeader_1_3;
};