TAO_Notify::Routing_Slip_Queue Class Reference
A queue of Routing_Slips waiting to be persisted.
More...
#include <Routing_Slip_Queue.h>
Collaboration diagram for TAO_Notify::Routing_Slip_Queue:
[legend]List of all members.
Detailed Description
A queue of Routing_Slips waiting to be persisted.
The Routing_Slip_Queue keeps a queue of Routing_Slips waiting to be written to persistent storage. The "allowed" parameter determines how many Routing_Slips can be handled simultaneously by the persistent storage. Until this threshold is reached, Routing_Slips are not held in the queue, but pass straight through.
Once the allowe number of Routing_Slips are being handled, any additional requests are held in the queue until persistence is complete for another Routing_Slips.
Having Routing_Slips waiting in the queue is "a good thing" [TM] because it allows delivery completions to be applied to the routing slip before it is written -- thereby reducing or completely eliminating the number of actual writes to persistent storage.
Experimentation indicates that a good value for "allowed" is 1.
Allowed == 0 is treated as a special case meaning pass all Routing_Slips through the queue immediately. Setting it a good way to test how well your storage device withstands continuous beating.
Member Typedef Documentation
Constructor & Destructor Documentation
TAO_Notify::Routing_Slip_Queue::Routing_Slip_Queue |
( |
size_t |
allowed = 1 |
) |
|
|
|
Construct setting "allowed".
- Parameters:
-
| allowed | the number of Routing_Slips that can be handled simultaneously by the persistent store. |
|
TAO_Notify::Routing_Slip_Queue::Routing_Slip_Queue |
( |
const Routing_Slip_Queue & |
rhs |
) |
[private] |
|
Member Function Documentation
void TAO_Notify::Routing_Slip_Queue::add |
( |
const Routing_Slip_Ptr & |
routing_slip |
) |
|
|
|
Add a routing slip to the tail of the queue and dispatch if necessary.
|
void TAO_Notify::Routing_Slip_Queue::complete |
( |
|
) |
|
|
|
A call back to indicate that processing is complete for a previously-queued Routing_Slip.
|
void TAO_Notify::Routing_Slip_Queue::dispatch |
( |
Guard & |
guard |
) |
[private] |
|
bool TAO_Notify::Routing_Slip_Queue::dispatch_one |
( |
Guard & |
guard |
) |
[private] |
|
void TAO_Notify::Routing_Slip_Queue::set_allowed |
( |
size_t |
allowed |
) |
|
|
|
/brief Adjust the "allowed" value on-the-fly (not recommended, but it works.) |
Member Data Documentation
|
Protection for internal information.
|
The documentation for this class was generated from the following files:
Generated on Sat Aug 6 03:35:53 2005 for TAO_CosNotification by
1.3.9.1