Main Page Namespace List Class Hierarchy Alphabetical List Compound List File List Namespace Members Compound Members File Members Related Pages

# TAO_Flushing_Strategy Class Reference

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

[legend]
List of all members.

## Public Methods
virtual | ~TAO_Flushing_Strategy (void)
| Destructor.
virtual int | schedule_output (TAO_Transport *transport) = 0
| Schedule the transport argument to be flushed.
virtual int | cancel_output (TAO_Transport *transport) = 0
| Cancel all scheduled output for the transport argument.
virtual int | flush_message (TAO_Transport *transport, TAO_Queued_Message *msg, ACE_Time_Value *max_wait_time) = 0
| Wait until msg is sent out. Potentially other messages are flushed too, for example, because there are ahead in the queue.
virtual int | flush_transport (TAO_Transport *transport) = 0
| Wait until the transport has no messages queued.

## 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.

## Constructor & Destructor Documentation

TAO_Flushing_Strategy::~TAO_Flushing_Strategy ( | void )`[virtual]`

| Destructor.

## Member Function Documentation

int TAO_Flushing_Strategy::cancel_output ( | TAO_Transport * transport )`[pure virtual]`

| Cancel all scheduled output for the transport argument. Reimplemented in TAO_Block_Flushing_Strategy, TAO_Leader_Follower_Flushing_Strategy, and TAO_Reactive_Flushing_Strategy.

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. Reimplemented in TAO_Block_Flushing_Strategy, TAO_Leader_Follower_Flushing_Strategy, and TAO_Reactive_Flushing_Strategy.

int TAO_Flushing_Strategy::flush_transport ( | TAO_Transport * transport )`[pure virtual]`

| Wait until the transport has no messages queued. Reimplemented in TAO_Block_Flushing_Strategy, TAO_Leader_Follower_Flushing_Strategy, and TAO_Reactive_Flushing_Strategy.

int TAO_Flushing_Strategy::schedule_output ( | TAO_Transport * transport )`[pure virtual]`

| Schedule the transport argument to be flushed. Reimplemented 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 file:

- Flushing_Strategy.h