Previous | Table of Contents | Next |
DCE-CIOP invoke request messages encode CORBA object requests, including attribute accessor operations and CORBA::Object operations
such as get_interface and get_implementation. Invoke requests are passed from client to server as the request_message parameter
of an invoke RPC.
A DCE-CIOP invoke request message is made up of a header and a body. The header has a fixed format, while the format of the
body is determined by the operation’s IDL definition.
16.4.1.1 Invoke request header
DCE-CIOP request headers have the following structure:
module DCE_CIOP { // IDL
struct InvokeRequestHeader { boolean byte_order; IOP::ServiceContextList service_context; sequence <octet> object_key; string
operation; CORBA::Principal principal;
// in and inout parameters follow }; };
The members have the following definitions:
• byte_order indicates the byte ordering used in the representation of the remainder of the message. A value of FALSE indicates big-endian byte ordering, and TRUE indicates little-endian byte ordering.
• service_context contains any ORB service data that needs to be sent from the client to the server.
• object_key contains opaque data used to identify the object that is the target of the operation5. Its value is obtained
from the object_key field of the TAG_INTERNET_IOP profile or the TAG_COMPLETE_OBJECT_KEY component of the TAG_MULTIPLE_COMPONENTS
profile.
• operation contains the name of the CORBA operation being invoked. The case of the operation name must match the case of
the operation name specified in the OMG IDL source for the interface being used.
Attribute accessors have names as follows:
• Attribute selector: operation name is “_get_<attribute>?
• Attribute mutator: operation name is “_set_<attribute>?
CORBA::Object pseudo-operations have operation names as follows:
• get_interface -operation name is “_interface?
• get_implementation -operation name is “_implementation?
•is_a -operation name is “_is_a?
• non_existent - operation name is “_non_existent?
• Principal contains a value identifying the requesting principal. No particular meaning or semantics are associated with
this value. It is provided to support the BOA::get_principal operation.
16.4.1.2 Invoke request body
The invoke request body contains the following items encoded in this order:
• All in and inout parameters, in the order in which they are specified in the operation’s OMG IDL definition, from left to right.
• An optional Context pseudo object, encoded as described in Section 15.3.5.4, “Context,? on page 15-29 6. This item is only included if the operation’s OMG IDL definition includes a context expression, and only includes context members as defined in that expression.