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. More...

`#include <ClientRequestInterceptor_Adapter.h>`

Collaboration diagram for TAO::ClientRequestInterceptor_Adapter:

[legend]
List of all members.

## Public Methods

| 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 Methods

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

## Private Attributes

TAO_ClientRequestInterceptor_List::TYPE & | interceptors_
| Reference to the list of registered interceptors.
Invocation_Base * | invocation_
| Pointer to the GIOP invocation object for the current request.
const size_t | len_
size_t | stack_size_
TAO_ClientRequestInfo * | info_

## 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:

- ClientRequestInterceptor_Adapter.h
- ClientRequestInterceptor_Adapter.cpp
- ClientRequestInterceptor_Adapter.inl