TAO 4.0.0
Loading...
Searching...
No Matches
Public Member Functions | List of all members
TAO_Wait_On_Leader_Follower Class Reference

Wait according to the Leader-Follower model. Leader does the event loop of the Reactor and the Followers wait on the condition variable. More...

#include <Wait_On_Leader_Follower.h>

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

Public Member Functions

 TAO_Wait_On_Leader_Follower (TAO_Transport *transport)
 Constructor.
 
 ~TAO_Wait_On_Leader_Follower () override=default
 Destructor.
 
int sending_request (TAO_ORB_Core *orb_core, TAO_Message_Semantics msg_semantics) override
 
int wait (ACE_Time_Value *max_wait_time, TAO_Synch_Reply_Dispatcher &rd) override
 
int register_handler () override
 
bool non_blocking () const override
 
bool can_process_upcalls () const override
 
- Public Member Functions inherited from TAO_Wait_Strategy
 TAO_Wait_Strategy (TAO_Transport *transport)
 Constructor.
 
virtual ~TAO_Wait_Strategy ()=default
 Destructor.
 
virtual void finished_request ()
 
virtual int defer_upcall (ACE_Event_Handler *)
 
bool is_registered () const
 Get method for the flag.
 
void is_registered (bool flag)
 Set method for the flag.
 

Additional Inherited Members

- Protected Attributes inherited from TAO_Wait_Strategy
TAO_Transporttransport_
 Transport object.
 
bool is_registered_
 

Detailed Description

Wait according to the Leader-Follower model. Leader does the event loop of the Reactor and the Followers wait on the condition variable.

This implementation is to work with the Muxed Transport Mechanism. Here the state variables such as <Condition Variable> etc cannot be kept in the Wait Strategy, since the Wait Strategy is per Transport object and here the Transport is Muxed and hence there are multiple threads running in the same Transport context.

Constructor & Destructor Documentation

◆ TAO_Wait_On_Leader_Follower()

TAO_Wait_On_Leader_Follower::TAO_Wait_On_Leader_Follower ( TAO_Transport * transport)
explicit

Constructor.

◆ ~TAO_Wait_On_Leader_Follower()

TAO_Wait_On_Leader_Follower::~TAO_Wait_On_Leader_Follower ( )
overridedefault

Destructor.

Member Function Documentation

◆ can_process_upcalls()

bool TAO_Wait_On_Leader_Follower::can_process_upcalls ( ) const
overridevirtual

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.

Implements TAO_Wait_Strategy.

Reimplemented in TAO::Wait_On_LF_No_Upcall.

◆ non_blocking()

bool TAO_Wait_On_Leader_Follower::non_blocking ( ) const
overridevirtual

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

Implements TAO_Wait_Strategy.

◆ register_handler()

int TAO_Wait_On_Leader_Follower::register_handler ( )
overridevirtual

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

Implements TAO_Wait_Strategy.

◆ sending_request()

int TAO_Wait_On_Leader_Follower::sending_request ( TAO_ORB_Core * orb_core,
TAO_Message_Semantics msg_semantics )
overridevirtual

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

Reimplemented from TAO_Wait_Strategy.

◆ wait()

int TAO_Wait_On_Leader_Follower::wait ( ACE_Time_Value * max_wait_time,
TAO_Synch_Reply_Dispatcher & rd )
overridevirtual

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

Implements TAO_Wait_Strategy.

Reimplemented in TAO::Wait_On_LF_No_Upcall.


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