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

# TAO_Exclusive_TMS Class Reference

`#include <Exclusive_TMS.h>`

Inheritance diagram for TAO_Exclusive_TMS:

[legend]
Collaboration diagram for TAO_Exclusive_TMS:

[legend]
List of all members.

## Public Methods

| TAO_Exclusive_TMS (TAO_Transport *transport)
| Constructor.
virtual | ~TAO_Exclusive_TMS (void)
| Destructor.
The TAO_Transport_Mux_Strategy overrided methods
Please read the documentation in the TAO_Transport_Mux_Strategy class for details.
virtual CORBA::ULong | request_id (void)
virtual int | bind_dispatcher (CORBA::ULong request_id, TAO_Reply_Dispatcher *rh)
virtual int | unbind_dispatcher (CORBA::ULong request_id)
virtual int | dispatch_reply (TAO_Pluggable_Reply_Params &params)
virtual bool | idle_after_send (void)
virtual bool | idle_after_reply (void)
virtual void | connection_closed (void)

## Protected Attributes

CORBA::ULong | request_id_generator_
int | has_request_
CORBA::ULong | request_id_
| Request id for the current request.
TAO_Reply_Dispatcher * | rd_
| Reply Dispatcher corresponding to the request.

## Detailed Description

Using this strategy only one request can be pending at a time in a connection. This improves performance because the client does not have to demux the reply, and there is less need for synchronization. On the other hand, it does not scale well when you have multiple client threads or asynchronous messaging.

## Constructor & Destructor Documentation

TAO_Exclusive_TMS::TAO_Exclusive_TMS | ( | TAO_Transport * | transport | ) |

| Constructor.

TAO_Exclusive_TMS::~TAO_Exclusive_TMS | ( | void |  | ) | `[virtual]`

| Destructor.

## Member Function Documentation

int TAO_Exclusive_TMS::bind_dispatcher | ( | CORBA::ULong | request_id,
|  | TAO_Reply_Dispatcher * | rh
| ) | `[virtual]`

| Bind the dispatcher with the request id. Commonalities in the derived class implementations is kept here. Implements TAO_Transport_Mux_Strategy.

void TAO_Exclusive_TMS::connection_closed | ( | void |  | ) | `[virtual]`

| The transport object has closed the connection, inform all Reply dispatchers and waiting strategies. Implements TAO_Transport_Mux_Strategy.

int TAO_Exclusive_TMS::dispatch_reply | ( | TAO_Pluggable_Reply_Params & | params | ) | `[virtual]`

| Dispatch the reply for <request_id>, cleanup any resources allocated for that request. Implements TAO_Transport_Mux_Strategy.

bool TAO_Exclusive_TMS::idle_after_reply | ( | void |  | ) | `[virtual]`

| Request is sent and the reply is received. Idle the transport now. The return value indicates whether idling was successful or not. Implements TAO_Transport_Mux_Strategy.

bool TAO_Exclusive_TMS::idle_after_send | ( | void |  | ) | `[virtual]`

| Request has been just sent, but the reply is not received. Idle the transport now. The return value indicates whether idling was successful or not. Implements TAO_Transport_Mux_Strategy.

CORBA::ULong TAO_Exclusive_TMS::request_id | ( | void |  | ) | `[virtual]`

| Generate and return an unique request id for the current invocation. Implements TAO_Transport_Mux_Strategy.

int TAO_Exclusive_TMS::unbind_dispatcher | ( | CORBA::ULong | request_id | ) | `[virtual]`

| Unbind the dispatcher, the client is no longer waiting for the request, for example, because the request timedout. The strategy can (must) cleanup any resources associated with the request. A later reply for that request should be ignored. Implements TAO_Transport_Mux_Strategy.

## Member Data Documentation

int TAO_Exclusive_TMS::has_request_`[protected]`

| If 0 then the request id and reply dispatcher below are meaningless

TAO_Reply_Dispatcher* TAO_Exclusive_TMS::rd_`[protected]`

| Reply Dispatcher corresponding to the request.

CORBA::ULong TAO_Exclusive_TMS::request_id_`[protected]`

| Request id for the current request.

CORBA::ULong TAO_Exclusive_TMS::request_id_generator_`[protected]`

| Used to generate a different request_id on each call to request_id().

The documentation for this class was generated from the following files:

- Exclusive_TMS.h
- Exclusive_TMS.cpp