#include <Muxed_TMS.h>
Inheritance diagram for TAO_Muxed_TMS:
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 ¶ms) |
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_Core * | orb_core_ |
Keep track of the orb core pointer. We need to this to create the Reply Dispatchers. More... |
@ 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.
|
|
|
Constructor.
|
|
Destructor.
|
|
Bind the dispatcher with the request id. Commonalities in the derived class implementations is kept here.
Reimplemented from TAO_Transport_Mux_Strategy. |
|
The transport object has closed the connection, inform all Reply dispatchers and waiting strategies.
Reimplemented from TAO_Transport_Mux_Strategy. |
|
Dispatch the reply for <request_id>, cleanup any resources allocated for that request.
Reimplemented from TAO_Transport_Mux_Strategy. |
|
Request is sent and the reply is received. Idle the transport now.
Reimplemented from TAO_Transport_Mux_Strategy. |
|
Request has been just sent, but the reply is not received. Idle the transport now.
Reimplemented from TAO_Transport_Mux_Strategy. |
|
Generate and return an unique request id for the current invocation.
Reimplemented from TAO_Transport_Mux_Strategy. |
|
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. |
|
Table of <Request ID, Reply Dispatcher> pairs.
|
|
Lock to protect the state of this class.
|
|
Keep track of the orb core pointer. We need to this to create the Reply Dispatchers.
|
|
Used to generate a different request_id on each call to request_id().
|