TAO  2.3.3
Public Member Functions | Protected Attributes | List of all members
TAO_Wait_Strategy Class Referenceabstract

Strategy for waiting for the reply. More...

#include <Wait_Strategy.h>

Inheritance diagram for TAO_Wait_Strategy:
Inheritance graph
[legend]
Collaboration diagram for TAO_Wait_Strategy:
Collaboration graph
[legend]

Public Member Functions

 TAO_Wait_Strategy (TAO_Transport *transport)
 Constructor. More...
 
virtual ~TAO_Wait_Strategy (void)
 Destructor. More...
 
virtual int sending_request (TAO_ORB_Core *orb_core, TAO_Message_Semantics msg_semantics)
 
virtual void finished_request ()
 
virtual int wait (ACE_Time_Value *max_wait_time, TAO_Synch_Reply_Dispatcher &rd)=0
 
virtual int register_handler (void)=0
 
virtual bool non_blocking (void) const =0
 
virtual bool can_process_upcalls (void) const =0
 
virtual int defer_upcall (ACE_Event_Handler *)
 
bool is_registered (void) const
 Get method for the flag. More...
 
void is_registered (bool flag)
 Set method for the flag. More...
 

Protected Attributes

TAO_Transporttransport_
 Transport object. More...
 
bool is_registered_
 

Detailed Description

Strategy for waiting for the reply.

Constructor & Destructor Documentation

TAO_Wait_Strategy::TAO_Wait_Strategy ( TAO_Transport transport)
explicit

Constructor.

TAO_Wait_Strategy::~TAO_Wait_Strategy ( void  )
virtual

Destructor.

Member Function Documentation

virtual bool TAO_Wait_Strategy::can_process_upcalls ( void  ) const
pure virtual

Flag that indicates whether we can process requests while waiting for the reply. This flag is to check whether the thread can process upcalls while waiting for the reply. Some wait strategies, like Wait_On_LF_No_Upcall does not allow the client threads to process requests while waiting for the reply.

Implemented in TAO_Wait_On_Leader_Follower, TAO_Wait_On_Read, TAO::Wait_On_LF_No_Upcall, and TAO_Wait_On_Reactor.

int TAO_Wait_Strategy::defer_upcall ( ACE_Event_Handler )
virtual

Method to support deffering an upcall event till later in cases where can_process_upcalls() returns false. Some wait strategies like Wait_On_LF_No_Upcall allow an event to be deferred at the Leader_Follower which resumes the upcall at an opportune moment (when a new leader thread is activated).

Reimplemented in TAO::Wait_On_LF_No_Upcall.

void TAO_Wait_Strategy::finished_request ( )
virtual

Reimplemented in TAO_Wait_On_Read.

bool TAO_Wait_Strategy::is_registered ( void  ) const

Get method for the flag.

void TAO_Wait_Strategy::is_registered ( bool  flag)

Set method for the flag.

virtual bool TAO_Wait_Strategy::non_blocking ( void  ) const
pure virtual

Returns a value to indicate whether the transport needs to set the socket on which it is waiting to non-blocking mode or not.

Implemented in TAO_Wait_On_Leader_Follower, TAO_Wait_On_Read, and TAO_Wait_On_Reactor.

virtual int TAO_Wait_Strategy::register_handler ( void  )
pure virtual

Register the handler needs with the reactor provided that it makes sense for the strategy.

Implemented in TAO_Wait_On_Leader_Follower, TAO_Wait_On_Read, and TAO_Wait_On_Reactor.

int TAO_Wait_Strategy::sending_request ( TAO_ORB_Core orb_core,
TAO_Message_Semantics  msg_semantics 
)
virtual

The user is going to send a request, prepare any internal variables because the reply may arrive before the user calls wait.

Reimplemented in TAO_Wait_On_Leader_Follower, and TAO_Wait_On_Read.

virtual int TAO_Wait_Strategy::wait ( ACE_Time_Value max_wait_time,
TAO_Synch_Reply_Dispatcher rd 
)
pure virtual

Base class virtual method. Wait till the reply_received flag is true or the time expires.

Implemented in TAO_Wait_On_Leader_Follower, TAO::Wait_On_LF_No_Upcall, TAO_Wait_On_Read, and TAO_Wait_On_Reactor.

Member Data Documentation

bool TAO_Wait_Strategy::is_registered_
protected

Flag to indicate whether the service handler that created the above transport has been registered with the reactor or not. The default is false.

TAO_Transport* TAO_Wait_Strategy::transport_
protected

Transport object.


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