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

Using this strategy only one request can be pending at a time in a connection. More...

#include <Exclusive_TMS.h>

Inheritance diagram for TAO_Exclusive_TMS:

Inheritance graph
[legend]
Collaboration diagram for TAO_Exclusive_TMS:

Collaboration graph
[legend]
List of all members.

Public Methods

 TAO_Exclusive_TMS (TAO_Transport *transport)
 Constructor. More...

virtual ~TAO_Exclusive_TMS (void)
 Destructor. More...

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)
 Generate and return an unique request id for the current invocation. More...

virtual int bind_dispatcher (CORBA::ULong request_id, TAO_Reply_Dispatcher *rh)
 Bind the dispatcher with the request id. Commonalities in the derived class implementations is kept here. More...

virtual void unbind_dispatcher (CORBA::ULong request_id)
 Unbind the dispatcher, the client is no longer waiting for the request, for example, because the request timedout. More...

virtual int dispatch_reply (TAO_Pluggable_Reply_Params &params)
 Dispatch the reply for <request_id>, cleanup any resources allocated for that request. More...

virtual int idle_after_send (void)
 Request has been just sent, but the reply is not received. Idle the transport now. More...

virtual int idle_after_reply (void)
 Request is sent and the reply is received. Idle the transport now. More...

virtual void connection_closed (void)
 The transport object has closed the connection, inform all Reply dispatchers and waiting strategies. More...


Protected Attributes

CORBA::ULong request_id_generator_
 Used to generate a different request_id on each call to request_id(). More...

int has_request_
 If 0 then the request id and reply dispatcher below are meaningless. More...

CORBA::ULong request_id_
 Request id for the current request. More...

TAO_Reply_Dispatcherrd_
 Reply Dispatcher corresponding to the request. More...


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   rd
[virtual]
 

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

Reimplemented from 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.

Reimplemented from 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.

Reimplemented from TAO_Transport_Mux_Strategy.

int TAO_Exclusive_TMS::idle_after_reply void    [virtual]
 

Request is sent and the reply is received. Idle the transport now.

Reimplemented from TAO_Transport_Mux_Strategy.

int TAO_Exclusive_TMS::idle_after_send void    [virtual]
 

Request has been just sent, but the reply is not received. Idle the transport now.

Reimplemented from TAO_Transport_Mux_Strategy.

CORBA::ULong TAO_Exclusive_TMS::request_id void    [virtual]
 

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

Reimplemented from TAO_Transport_Mux_Strategy.

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

Reimplemented from 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:
Generated on Thu Oct 10 18:31:59 2002 for TAO by doxygen1.2.13.1 written by Dimitri van Heesch, © 1997-2001