TAO  2.2.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | Public Member Functions | List of all members
TAO_Flushing_Strategy Class Referenceabstract

Define the interface for the flushing strategy, i.e. the algorithm that controls how does the ORB flush outgoing data. More...

#include <Flushing_Strategy.h>

Inheritance diagram for TAO_Flushing_Strategy:
Inheritance graph
Collaboration diagram for TAO_Flushing_Strategy:
Collaboration graph

Public Types

enum  SCHEDULE_OUTPUT_RETURN { MUST_FLUSH = -2 }
 

Public Member Functions

virtual ~TAO_Flushing_Strategy (void)
 Destructor. More...
 
virtual int schedule_output (TAO_Transport *transport)=0
 
virtual int cancel_output (TAO_Transport *transport)=0
 Cancel all scheduled output for the transport argument. More...
 
virtual int flush_message (TAO_Transport *transport, TAO_Queued_Message *msg, ACE_Time_Value *max_wait_time)=0
 
virtual int flush_transport (TAO_Transport *transport, ACE_Time_Value *max_wait_time)=0
 Wait until the transport has no messages queued. More...
 

Detailed Description

Define the interface for the flushing strategy, i.e. the algorithm that controls how does the ORB flush outgoing data.

Please read the documentation in the TAO_Transport class to find out more about the design of the outgoing data path.

Some applications can block the current thread whenever they are sending out data. In those cases they can obtain better performance by blocking in calls to write() than by participating in the Leader/Followers protocol to shared the ORB Reactor.

This strategy controls how does the ORB schedule and cancel reactive I/O, if there is no reactive I/O the strategy is just a no-op.

Member Enumeration Documentation

Enumerator
MUST_FLUSH 

Constructor & Destructor Documentation

TAO_Flushing_Strategy::~TAO_Flushing_Strategy ( void  )
virtual

Destructor.

Member Function Documentation

virtual int TAO_Flushing_Strategy::cancel_output ( TAO_Transport transport)
pure virtual

Cancel all scheduled output for the transport argument.

Implemented in TAO_Block_Flushing_Strategy, TAO_Leader_Follower_Flushing_Strategy, and TAO_Reactive_Flushing_Strategy.

virtual int TAO_Flushing_Strategy::flush_message ( TAO_Transport transport,
TAO_Queued_Message msg,
ACE_Time_Value max_wait_time 
)
pure virtual

Wait until msg is sent out. Potentially other messages are flushed too, for example, because there are ahead in the queue.

Implemented in TAO_Block_Flushing_Strategy, TAO_Leader_Follower_Flushing_Strategy, and TAO_Reactive_Flushing_Strategy.

virtual int TAO_Flushing_Strategy::flush_transport ( TAO_Transport transport,
ACE_Time_Value max_wait_time 
)
pure virtual

Wait until the transport has no messages queued.

Implemented in TAO_Block_Flushing_Strategy, TAO_Leader_Follower_Flushing_Strategy, and TAO_Reactive_Flushing_Strategy.

virtual int TAO_Flushing_Strategy::schedule_output ( TAO_Transport transport)
pure virtual

Schedule the transport argument to be flushed If -2 is returned then the caller must call one of the flush_* methods. If -1 is returned then there was an error. If 0 is returned then the flush was scheduled successfully.

Implemented in TAO_Block_Flushing_Strategy, TAO_Leader_Follower_Flushing_Strategy, and TAO_Reactive_Flushing_Strategy.


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