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

TAO_Muxed_TMS Class Reference

Using this strategy a single connection can have multiple outstanding requests. More...

#include <Muxed_TMS.h>

Inheritance diagram for TAO_Muxed_TMS:

Inheritance graph
[legend]
Collaboration diagram for TAO_Muxed_TMS:

Collaboration graph
[legend]
List of all members.

Public Methods

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

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

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 Types

typedef ACE_Hash_Map_Manager_Ex<
CORBA::ULong, TAO_Reply_Dispatcher *,
ACE_Hash< CORBA::ULong >,
ACE_Equal_To< CORBA::ULong >,
ACE_Null_Mutex
REQUEST_DISPATCHER_TABLE

Protected Attributes

TAO_SYNCH_MUTEX lock_
 Lock to protect the state of this class. More...

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

REQUEST_DISPATCHER_TABLE dispatcher_table_
 Table of <Request ID, Reply Dispatcher> pairs. More...

TAO_ORB_Coreorb_core_
 Keep track of the orb core pointer. We need to this to create the Reply Dispatchers. More...


Detailed Description

Using this strategy a single connection can have multiple outstanding requests.

@ Can the performance of the demuxer be made more predictable, for example, using the request id as an active demux key? NOTE: check the OMG resolutions about bidirectional connections, it is possible that the request ids can only assume even or odd values.


Member Typedef Documentation

typedef ACE_Hash_Map_Manager_Ex<CORBA::ULong, TAO_Reply_Dispatcher *, ACE_Hash <CORBA::ULong>, ACE_Equal_To <CORBA::ULong>, ACE_Null_Mutex> TAO_Muxed_TMS::REQUEST_DISPATCHER_TABLE [protected]
 


Constructor & Destructor Documentation

TAO_Muxed_TMS::TAO_Muxed_TMS TAO_Transport   transport
 

Constructor.

TAO_Muxed_TMS::~TAO_Muxed_TMS void    [virtual]
 

Destructor.


Member Function Documentation

int TAO_Muxed_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_Muxed_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_Muxed_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_Muxed_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_Muxed_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_Muxed_TMS::request_id void    [virtual]
 

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

Reimplemented from TAO_Transport_Mux_Strategy.

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

REQUEST_DISPATCHER_TABLE TAO_Muxed_TMS::dispatcher_table_ [protected]
 

Table of <Request ID, Reply Dispatcher> pairs.

TAO_SYNCH_MUTEX TAO_Muxed_TMS::lock_ [protected]
 

Lock to protect the state of this class.

TAO_ORB_Core* TAO_Muxed_TMS::orb_core_ [protected]
 

Keep track of the orb core pointer. We need to this to create the Reply Dispatchers.

CORBA::ULong TAO_Muxed_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:43:46 2002 for TAO by doxygen1.2.13.1 written by Dimitri van Heesch, © 1997-2001