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

 


TargetRequestInterceptor::target_invoke

Synopsis

Is called by the target-side ORB anytime an invocation is being received by a target object.

C++ Binding

virtual Interceptors::InvokeReturnStatus 
target_invoke(
const RequestContext & request_context,
ServiceContextList_ptr service_context,
CORBA::DataInputStream_ptr request_arg_stream,
CORBA::DataOutputStream_ptr reply_arg_stream,
CORBA::Exception_ptr & excep_val ) = 0;

Parameters

request_context

A reference to a RequestContext that contains information about the context in which the request is being performed.

service_context

A pointer to a ServiceContextList containing service context information received as part of the request to the target object.

In BEA Tuxedo 8.0, the value of this parameter is always a nil object.

request_arg_stream

A pointer to a DataInputStream that can be used by the interceptor implementation to retrieve the value of the parameter of the operation.

The DataInputStream contains all in and inout parameters, in the order in which they are specified in the operation's IDL definition, from left to right. A nil DataInputStream indicates that no arguments exist.

reply_arg_stream

A pointer to a DataOutputStream that can be used to populate the parameters to be returned to the initiator of the invocation as a reply. The use of this parameter is only valid if a status of REPLY_NO_EXCEPTION is returned.

In BEA Tuxedo 8.0, the value of this parameter is always a nil object.

excep_val

A reference to a location in which the interceptor can return an exception in order to report an error. The use of this parameter is only valid if a status of REPLY_EXCEPTION is returned. Note that the ORB is responsible for the memory management for the excep_val parameter.

Exceptions

None.

Description

The target_invoke operation is called on an interceptor implementation that supports the RequestLevelInterceptor::TargetRequestInterceptor interface. The operation is called by the ORB anytime that an invocation is being received by a target object, regardless of whether the target object is in a different address space or the same address space as the target object.

Return Values

INVOKE_NO_EXCEPTION

Indicates that the interceptor successfully performed any processing required and that the ORB should continue processing the invocation in order to deliver it to the target object.

REPLY_NO_EXCEPTION

Indicates that the interceptor successfully performed any processing required to totally satisfy the request. The ORB should consider the request completed and begins processing any information in the reply_arg_stream, if any, as the return parameter values for the request.

Note: In BEA Tuxedo 8.0, an interceptor cannot return this status value.

REPLY_EXCEPTION

Indicates that the interceptor encountered an error that should result in the discontinued processing of the request in order to deliver it to the target object. The parameter excep_val is used to report the exception to the ORB. The ORB calls interceptors on the way back to the client with the exception_occurred operation, rather than with the target_response operation. Note that the ORB is responsible for the memory management for the excep_val parameter.

 

Skip navigation bar  Back to Top Previous Next