TAO
2.3.3
|
#include <Muxed_TMS.h>
Public Member Functions | |
TAO_Muxed_TMS (TAO_Transport *transport) | |
Constructor. More... | |
virtual | ~TAO_Muxed_TMS (void) |
Destructor. More... | |
virtual CORBA::ULong | request_id (void) |
virtual int | bind_dispatcher (CORBA::ULong request_id, ACE_Intrusive_Auto_Ptr< TAO_Reply_Dispatcher > rd) |
Bind the dispatcher with the request id. More... | |
virtual int | unbind_dispatcher (CORBA::ULong request_id) |
virtual int | dispatch_reply (TAO_Pluggable_Reply_Params ¶ms) |
virtual int | reply_timed_out (CORBA::ULong request_id) |
virtual bool | idle_after_send (void) |
virtual bool | idle_after_reply (void) |
virtual void | connection_closed (void) |
virtual bool | has_request (void) |
Do we have a request pending. More... | |
Public Member Functions inherited from TAO_Transport_Mux_Strategy | |
TAO_Transport_Mux_Strategy (TAO_Transport *transport) | |
Base class constructor. More... | |
virtual | ~TAO_Transport_Mux_Strategy (void) |
Base class destructor. More... | |
Private Types | |
typedef ACE_Hash_Map_Manager_Ex< CORBA::ULong, ACE_Intrusive_Auto_Ptr< TAO_Reply_Dispatcher >, ACE_Hash< CORBA::ULong >, ACE_Equal_To< CORBA::ULong >, ACE_Null_Mutex > | REQUEST_DISPATCHER_TABLE |
Private Member Functions | |
void | operator= (const TAO_Muxed_TMS &) |
TAO_Muxed_TMS (const TAO_Muxed_TMS &) | |
int | clear_cache_i (void) |
Private Attributes | |
ACE_Lock * | lock_ |
Lock to protect the state of the object. More... | |
CORBA::ULong | request_id_generator_ |
TAO_ORB_Core *const | orb_core_ |
REQUEST_DISPATCHER_TABLE | dispatcher_table_ |
Table of <Request ID, Reply Dispatcher> pairs. More... | |
Additional Inherited Members | |
Protected Attributes inherited from TAO_Transport_Mux_Strategy | |
TAO_Transport * | transport_ |
Cache the transport reference. More... | |
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?
TAO_Muxed_TMS::TAO_Muxed_TMS | ( | TAO_Transport * | transport | ) |
Constructor.
|
virtual |
Destructor.
|
private |
|
virtual |
Bind the dispatcher with the request id.
Implements TAO_Transport_Mux_Strategy.
|
private |
|
virtual |
The transport object has closed the connection, inform all Reply dispatchers and waiting strategies.
Implements TAO_Transport_Mux_Strategy.
|
virtual |
Dispatch the reply for request_id, cleanup any resources allocated for that request.
Implements TAO_Transport_Mux_Strategy.
|
virtual |
Do we have a request pending.
Implements TAO_Transport_Mux_Strategy.
|
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.
|
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.
|
private |
|
virtual |
Dispatch a reply timeout for request request_id
Implements TAO_Transport_Mux_Strategy.
|
virtual |
Generate and return an unique request id for the current invocation.
Implements TAO_Transport_Mux_Strategy.
|
virtual |
Unbind the dispatcher, the client is no longer waiting for the request, for example, because the request timed out. 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.
|
private |
Table of <Request ID, Reply Dispatcher> pairs.
|
private |
Lock to protect the state of the object.
|
private |
Keep track of the orb core pointer. We need to this to create the Reply Dispatchers.
|
private |
Used to generate a different request_id on each call to request_id().