IDL documentation for the CORBA specification.
IDLs pertaining to IIOP
// IOP module described in chap 10 CORBA V2, 7-95
module IOP { // IDL
//
// Standard Protocol Profile tag values
//
typedef unsigned long ProfileId;
const ProfileId TAG_INTERNET_IOP = 0;
const ProfileId TAG_MULTIPLE_COMPONENTS = 1;
struct TaggedProfile {
ProfileId tag;
sequence profile_data;
};
//
// an Interoperable Object Reference is a sequence of
// object-specific protocol profiles, plus a type ID.
//
struct IOR {
string type_id;
sequence profiles;
};
//
// Standard way of representing multicomponent profiles.
// This would be encapsulated in a TaggedProfile.
//
typedef unsigned long ComponentId;
struct TaggedComponent {
ComponentId tag;
sequence component_data;
};
typedef sequence MultipleComponentProfile;
typedef unsigned long ServiceID;
struct ServiceContext {
ServiceID context_id;
sequence context_data;
};
typedef sequence ServiceContextList;
const ServiceID TransactionService = 0;
};
// GIOP module described in CORBA V2, 7-95 chap 12
// Complete IDL for GIOP module in CORBA
// V2.0, 7-95 p 10-29
// GIOP message header: CORBA V2, 7-95 p 12-16
// GIOP request header: CORBA V2, 7-95 p 12-17
// GIOP reply header: CORBA V2, 7-95 p 12-19
// GIOP cancel request and locate request: CORBA V2, 7-95 pp 12-20 -- 12-21
// GIOP locate reply: CORBA V2, 7-95 p 12-22
module GIOP { // IDL
enum MsgType {
Request, Reply, CancelRequest,
LocateRequest, LocateReply,
CloseConnection, MessageError
};
struct Version {
char major;
char minor;
};
struct MessageHeader {
char magic [4];
Version GIOP_version;
boolean byte_order;
octet message_type;
unsigned long message_size;
};
struct RequestHeader {
::IOP::ServiceContextList service_context;
unsigned long request_id;
boolean response_expected;
sequence object_key;
string operation;
/*
* ::CORBA:: added for correct scope
*/
::CORBA::Principal requesting_principal;
};
enum ReplyStatusType {
NO_EXCEPTION,
USER_EXCEPTION,
SYSTEM_EXCEPTION,
LOCATION_FORWARD
};
struct ReplyHeader {
::IOP::ServiceContextList service_context;
unsigned long request_id;
ReplyStatusType reply_status;
};
struct CancelRequestHeader {
unsigned long request_id;
};
struct LocateRequestHeader {
unsigned long request_id;
sequence object_key;
};
enum LocateStatusType {
UNKNOWN_OBJECT,
OBJECT_HERE,
OBJECT_FORWARD
};
struct LocateReplyHeader {
unsigned long request_id;
LocateStatusType locate_status;
};
};
// IIOP module described in CORBA V2, 7-95 chap 12
// Complete IDL for IIOP module: CORBA V2, 7-95 p 12-31
module IIOP { // IDL
struct Version {
char major;
char minor;
};
struct ProfileBody {
Version iiop_version;
string host;
unsigned short port;
sequence object_key;
};
};