Using CORBA Request-Level Interceptors
ReplyContext Structure
Synopsis
Contains the information that represents the context in which a reply is to be processed.
C++ Binding
struct ReplyContext
{
Interceptors::Version struct_version;
CORBA::ULong request_id;
ReplyStatus reply_status;
};
Members
struct_version
An indication of the version of the ReplyContext
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 ReplyContext 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 ReplyContext 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.
reply_status
Indicates the completion status of the associated request, and also determines part of the reply body contents.
Status Value
|
Description
|
NO_EXCEPTION
|
Indicates that the requested operation completed successfully and that the value of the arg_stream parameter contains the return values of the operation.
|
USER_EXCEPTION
|
Indicates that the requested operation failed because of an exception reported by the target object.
|
SYSTEM_EXCEPTION
|
Indicates that the request operation failed because of an exception reported either by the target object or by the infrastructure.
|
LOCATION_FORWARD
|
Indicates that the body contains an object reference (IOR). The client ORB is responsible for resending the original request to that (different) object. This resending is transparent to the client program making the request, but the resending is not transparent to the interceptor.
|
LOCATION_FORWARD_PERM
|
Indicates that the body contains an object reference. The usage is similar to LOCATION_FORWARD , but when used by a server, this value also provides an indication to the client that the client may replace the old IOR with the new IOR. Both the old IOR and the new IOR are valid, but the new IOR is preferred for future use. This resending is transparent to the client program making the request, but the resending is not transparent to the interceptor.
|
NEEDS_ADDRESSING_MODE
|
Indicates that the body contains a GIOP::AddressingDisposition . The client ORB is responsible for resending the original request using the requested addressing mode. This resending is transparent to the client program making the request, but the resending is not transparent to the interceptor.
|
Description
The ReplyContext
data object contains the information that represents the context in which a reply is to be processed. The context information contained in ReplyContext
provides information necessary to coordinate between the processing of a given request and its corresponding reply.
The context information in ReplyContext
cannot be modified by the interceptor implementation. The ORB maintains ownership of ReplyContext
and is responsible for freeing any resources associated with ReplyContext
when it has completed using it.