Skip navigation.

Using CORBA Request-Level Interceptors

  Previous Next vertical dots separating previous/next from contents/index/pdf Contents Index View as PDF   Get Adobe Reader

 


RequestContext Structure

Synopsis

Contains the information that represents the context in which a request is to be processed.

C++ Binding

struct  RequestContext 
{
Interceptors::Version struct_version;
CORBA::ULong request_id;
CORBA::Octet response_flags;
GIOP::TargetAddress target;
CORBA::String_var interface_id;
CORBA::String_var operation;
RequestContext &operator=(const RequestContext &_obj);
};

Members

struct_version

An indication of the version of the RequestContext that provides an indication of the format and members. The version information is separated into the following two pieces:

Version Member

Description

major_version

Indicates the major version value. The value of this member is incremented anytime a change is made to the contents or layout of a RequestContext that is not backward compatible with previous versions.

minor_version

Indicates the minor version value. The value of this member is incremented anytime a change is made to the contents or layout of a RequestContext that is backward compatible with previous versions.


 

request_id

An unsigned long value that specifies the identifier assigned to a request by the initiating ORB.

response_flags

The lowest order bit of response_flags is set to 1 if a reply message is expected for this request. If the operation is not defined as oneway, and the request is not invoked via the DII with the INV_NO_RESPONSE flag set, response_flags will be set to \x03.

If the operation is defined as oneway, or the request is invoked via the DII with the INV_NO_RESPONSE flag set, response_flags may be set to \x00 or \x01.

When this flag is set to \x01 for a oneway operation, receipt of a reply does not imply that the operation has necessarily completed.

target

A discriminated union that identifies the object that is the target of the invocation. The discriminator indicates the format in which the target addressing is presented. The possible discriminator values are:

Discriminator

Description

KeyAddr

The object_key field from the transport-specific GIOP profile (for example, from the encapsulated IIOP profile of the IOR for the target object). This value is meaningful only to the server and is not interpreted or modified by the client.

ProfileAddr

The transport-specific GIOP profile selected for the target's IOR by the client ORB.

Note: In the BEA Tuxedo 8.0 product, this discriminator value is not supported, but is provided for future support of GIOP 1.2.

ReferenceAddr

The full IOR of the target object. The selected_profile_index indicates the transport-specific GIOP profile that was selected by the client ORB.

Note: In the BEA Tuxedo 8.0 product, this discriminator value is not supported, but is provided for future support of GIOP 1.2.


 

interface_id

A NULL-terminated string that specifies the repository identifier assigned to the interface of the object.

operation

A NULL-terminated string that specifies the name of the operation being requested on the target object indicated by the target member and that supports the interface specified by the value of the interface_id member.

Description

The RequestContext data object contains the information that represents the context in which a request is to be processed. The context information contained in the RequestContext provides information necessary to coordinate between the processing of a given request and its corresponding reply.

The context information in the RequestContext structure cannot be modified by the interceptor implementation. The ORB maintains ownership of the RequestContext and is responsible for freeing any resources associated with the RequestContext when it has completed using it.

 

Skip navigation bar  Back to Top Previous Next