Main Page Namespace List Class Hierarchy Alphabetical List Compound List File List Namespace Members Compound Members File Members Related Pages

# TAO_ClientRequestInterceptor_Adapter Class Reference

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

`#include <ClientInterceptorAdapter.h>`

Collaboration diagram for TAO_ClientRequestInterceptor_Adapter:

[legend]
List of all members.

## Public Methods
| TAO_ClientRequestInterceptor_Adapter (TAO_ClientRequestInterceptor_List::TYPE &interceptors, TAO_GIOP_Invocation *invocation, int &_invoke_status)
| ~TAO_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. Todo: The "send_poll()" and "receive_other()" (for AMI) PortableInterceptor interception points are missing.
void | send_request (TAO_ClientRequestInfo_i *ri ACE_ENV_ARG_DECL)
| This method implements one of the "starting" client side interception points. More...
void | receive_reply (TAO_ClientRequestInfo_i *ri ACE_ENV_ARG_DECL)
| This method implements one of the "ending" client side interception point. More...
void | receive_exception (TAO_ClientRequestInfo_i *ri ACE_ENV_ARG_DECL)
| This method implements one of the "ending" client side interception point. More...
void | receive_other (TAO_ClientRequestInfo_i *ri ACE_ENV_ARG_DECL)
| This method implements one of the "ending" client side interception point. More...
## Protected Methods
void | process_forward_request (TAO_ClientRequestInfo_i *ri, PortableInterceptor::ForwardRequest &exc ACE_ENV_ARG_DECL)
| 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. More...
## Private Attributes
TAO_ClientRequestInterceptor_List::TYPE & | interceptors_
| Reference to the list of registered interceptors. More...
TAO_GIOP_Invocation * | invocation_
| Pointer to the GIOP invocation object for the current request. More...
int & | invoke_status_
| Reference to the invocation status obtained from and returned to the stub. Needed to support the PortableInterceptor::ForwardRequest exception. More...
const size_t | len_
| Cache the length of the interceptor list so that we don't have to compute it at each stage of the current interception. More...
size_t | stack_size_
| The number of interceptors "pushed" onto the logical flow stack. This is used when unwinding the flow stack. More...
TAO_ClientRequestInfo * | info_
| Pointer to the PortableInterceptor::ClientRequestInfo implementation. More...

## Detailed Description

A convenient helper class to invoke registered client request interceptors in client stubs.

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::TAO_ClientRequestInterceptor_Adapter | ( | TAO_ClientRequestInterceptor_List::TYPE & | interceptors,
|  | TAO_GIOP_Invocation * | invocation,
|  | int & | invoke_status
| ) |

TAO_ClientRequestInterceptor_Adapter::~TAO_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]`

| Pointer to the PortableInterceptor::ClientRequestInfo implementation. 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.

TAO_GIOP_Invocation* TAO_ClientRequestInterceptor_Adapter::invocation_`[private]`

| Pointer to the GIOP invocation object for the current request.

int& TAO_ClientRequestInterceptor_Adapter::invoke_status_`[private]`

| Reference to the invocation status obtained from and returned to the stub. Needed to support the PortableInterceptor::ForwardRequest exception.

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:

- ClientInterceptorAdapter.h
- ClientInterceptorAdapter.cpp
- ClientInterceptorAdapter.inl