Previous | Table of Contents | Next |
This section shows the DCE_CIOP module and DCE_CIOP additions to the IOP module.
module DCE_CIOP {
struct InvokeRequestHeader { boolean byte_order; IOP::ServiceContextList service_context; sequence <octet> object_key; string
operation; CORBA::Principal principal;
// in and inout parameters follow };
enum InvokeResponseStatus { INVOKE_NO_EXCEPTION, INVOKE_USER_EXCEPTION, INVOKE_SYSTEM_EXCEPTION, INVOKE_LOCATION_FORWARD,
INVOKE_TRY_AGAIN
};
struct InvokeResponseHeader { boolean byte_order; IOP::ServiceContextList service_context; InvokeResponseStatus status;
// if status = INVOKE_NO_EXCEPTION,
// result then inouts and outs follow
// if status = INVOKE_USER_EXCEPTION or // INVOKE_SYSTEM_EXCEPTION, an exception follows
// if status = INVOKE_LOCATION_FORWARD, an
// IOP::IOR follows }; struct LocateRequestHeader {
boolean byte_order; sequence <octet> object_key; string operation;
// no body follows };
enum LocateResponseStatus { LOCATE_UNKNOWN_OBJECT, LOCATE_OBJECT_HERE, LOCATE_LOCATION_FORWARD, LOCATE_TRY_AGAIN };
struct LocateResponseHeader { boolean byte_order; LocateResponseStatus status;
// if status = LOCATE_LOCATION_FORWARD, an // IOP::IOR follows };
const IOP::ComponentId TAG_DCE_STRING_BINDING = 100;
const IOP::ComponentId TAG_DCE_BINDING_NAME = 101;
struct BindingNameComponent { unsigned long entry_name_syntax; string entry_name; string object_uuid;
};
const IOP::ComponentId TAG_DCE_NO_PIPES = 102; };
module IOP { const ComponentId TAG_COMPLETE_OBJECT_KEY = 5;
const ComponentId TAG_ENDPOINT_ID_POSITION = 6;
struct EndpointIdPositionComponent { unsigned short begin; unsigned short end;
};
const ComponentId TAG_LOCATION_POLICY = 12;
// IDL does not support octet constants #define LOCATE_NEVER 0 #define LOCATE_OBJECT 1 #define LOCATE_OPERATION 2 #define
LOCATE_ALWAYS 3
};