TAO::ClientRequestInterceptor_Adapter Class Reference

A convenient helper class to invoke registered client request interceptors. More...

#include <ClientRequestInterceptor_Adapter.h>

Collaboration diagram for TAO::ClientRequestInterceptor_Adapter:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 ClientRequestInterceptor_Adapter (TAO_ClientRequestInterceptor_List::TYPE &interceptors, Invocation_Base *invocation)
 ~ClientRequestInterceptor_Adapter (void)
PortableInterceptor Client Side Interception Points
Each of these methods corresponds to a client side interception point. There are no "intermediate" interception points on the client side, only "starting" and "ending" interception points.

void send_request (TAO_ClientRequestInfo_i *ri ACE_ENV_ARG_DECL)
void receive_reply (TAO_ClientRequestInfo_i *ri ACE_ENV_ARG_DECL)
void receive_exception (TAO_ClientRequestInfo_i *ri ACE_ENV_ARG_DECL)
void receive_other (TAO_ClientRequestInfo_i *ri ACE_ENV_ARG_DECL)

Protected Member Functions

void process_forward_request (TAO_ClientRequestInfo_i *ri, PortableInterceptor::ForwardRequest &exc ACE_ENV_ARG_DECL)

Private Attributes

TAO_ClientRequestInterceptor_List::TYPEinterceptors_
 Reference to the list of registered interceptors.
Invocation_Baseinvocation_
 Pointer to the GIOP invocation object for the current request.
const size_t len_
size_t stack_size_
TAO_ClientRequestInfoinfo_

Detailed Description

A convenient helper class to invoke registered client request interceptors.

This class invokes all registered interceptors at interception point, and enforces flow rules dictated by the Portable Interceptor specification/chapter.


Constructor & Destructor Documentation

ACE_INLINE TAO::ClientRequestInterceptor_Adapter::ClientRequestInterceptor_Adapter TAO_ClientRequestInterceptor_List::TYPE interceptors,
Invocation_Base invocation
 

TAO::ClientRequestInterceptor_Adapter::~ClientRequestInterceptor_Adapter void   ) 
 


Member Function Documentation

void TAO::ClientRequestInterceptor_Adapter::process_forward_request TAO_ClientRequestInfo_i ri,
PortableInterceptor::ForwardRequest &exc  ACE_ENV_ARG_DECL
[protected]
 

Process the given PortableInterceptor::ForwardRequest exception, i.e. invoke the receive_other() interception point, in addition to notifying the Invocation object of the LOCATION_FORWARD.

void TAO::ClientRequestInterceptor_Adapter::receive_exception TAO_ClientRequestInfo_i *ri  ACE_ENV_ARG_DECL  ) 
 

This method implements one of the "ending" client side interception point.

void TAO::ClientRequestInterceptor_Adapter::receive_other TAO_ClientRequestInfo_i *ri  ACE_ENV_ARG_DECL  ) 
 

This method implements one of the "ending" client side interception point.

void TAO::ClientRequestInterceptor_Adapter::receive_reply TAO_ClientRequestInfo_i *ri  ACE_ENV_ARG_DECL  ) 
 

This method implements one of the "ending" client side interception point.

void TAO::ClientRequestInterceptor_Adapter::send_request TAO_ClientRequestInfo_i *ri  ACE_ENV_ARG_DECL  ) 
 

This method implements one of the "starting" client side interception points.


Member Data Documentation

TAO_ClientRequestInfo* TAO::ClientRequestInterceptor_Adapter::info_ [private]
 

Note:
The fact that a pointer to the PortableInterceptor::ClientRequestInfo object in TSS is cached here assumes that all client side interception points are invoked in the same thread. This may not be the case for AMI! In that case, we'll have to perform a TSS access in each interception point.

TAO_ClientRequestInterceptor_List::TYPE& TAO::ClientRequestInterceptor_Adapter::interceptors_ [private]
 

Reference to the list of registered interceptors.

Invocation_Base* TAO::ClientRequestInterceptor_Adapter::invocation_ [private]
 

Pointer to the GIOP invocation object for the current request.

const size_t TAO::ClientRequestInterceptor_Adapter::len_ [private]
 

Cache the length of the interceptor list so that we don't have to compute it at each stage of the current interception.

size_t TAO::ClientRequestInterceptor_Adapter::stack_size_ [private]
 

The number of interceptors "pushed" onto the logical flow stack. This is used when unwinding the flow stack.


The documentation for this class was generated from the following files:
Generated on Wed Nov 23 16:05:09 2005 for TAO by  doxygen 1.4.5