/* This file contains OMG IDL from CORBA V2.3.1 | |
* $Id: GIOP.idl,v 1.2 2001/09/22 14:51:13 jso Exp $ | |
*/ | |
#ifndef __GIOP_IDL | |
#define __GIOP_IDL | |
#include <IOP.idl> | |
#include <orb.idl> | |
#pragma prefix "omg.org" | |
#define GIOP_1_0 | |
#define GIOP_1_1 | |
#define GIOP_1_2 | |
module GIOP { | |
// IDL extended for version 1.1 | |
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 | |
typedef MessageHeader_1_1 MessageHeader_1_2; | |
// 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::Principal 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::Principal requesting_principal; | |
}; | |
// GIOP 1.2 | |
typedef 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; | |
// Principal not in GIOP 1.2 | |
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 | |
}; | |
#endif | |
// GIOP 1.2 | |
enum ReplyStatusType_1_2 { | |
NO_EXCEPTION,USER_EXCEPTION, | |
SYSTEM_EXCEPTION, | |
LOCATION_FORWARD, | |
LOCATION_FORWARD_PERM, // new value for 1.2 | |
NEEDS_ADDRESSING_MODE // new value for 1.2 | |
}; | |
// GIOP 1.0 | |
struct ReplyHeader_1_0 {// Renamed from ReplyHeader | |
IOP::ServiceContextList service_context; | |
unsigned long request_id; | |
ReplyStatusType_1_2 reply_status; | |
}; | |
// GIOP 1.1 | |
typedef ReplyHeader_1_0 ReplyHeader_1_1; | |
// Same Header contents for 1.0 and 1.1 | |
struct ReplyHeader_1_2 { | |
unsigned long request_id; | |
ReplyStatusType_1_2 reply_status; | |
IOP::ServiceContextList service_context; // 1.2 change | |
}; | |
struct SystemExceptionReplyBody { | |
string exception_id; | |
unsigned long minor_code_value; | |
unsigned long completion_status; | |
}; | |
struct CancelRequestHeader { | |
unsigned long request_id; | |
}; | |
// GIOP 1.0 | |
struct 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 | |
struct LocateRequestHeader_1_2 { | |
unsigned long request_id; | |
TargetAddress target; | |
}; | |
#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 | |
enum LocateStatusType_1_2 { | |
UNKNOWN_OBJECT, | |
OBJECT_HERE, | |
OBJECT_FORWARD, | |
OBJECT_FORWARD_PERM, // new value for GIOP 1.2 | |
LOC_SYSTEM_EXCEPTION, // new value for GIOP 1.2 | |
LOC_NEEDS_ADDRESSING_MODE // new value for GIOP 1.2 | |
}; | |
struct LocateReplyHeader_1_2 { | |
unsigned long request_id; | |
LocateStatusType_1_2 locate_status; | |
}; | |
#endif // GIOP_1_2 | |
// GIOP 1.2 | |
struct FragmentHeader_1_2 { | |
unsigned long request_id; | |
}; | |
}; | |
#endif |