TAO_CosNotification
2.2.5
|
Base Strategy to enqueue and dequeue items from a Message Queue. More...
#include <Buffering_Strategy.h>
Classes | |
class | Tracker |
This interface allows tracking of the queue size. More... | |
Public Member Functions | |
TAO_Notify_Buffering_Strategy (TAO_Notify_Message_Queue &msg_queue, const TAO_Notify_AdminProperties::Ptr &admin_properties) | |
~TAO_Notify_Buffering_Strategy () | |
void | update_qos_properties (const TAO_Notify_QoSProperties &qos_properties) |
int | enqueue (TAO_Notify_Method_Request_Queueable *method_request) |
int | dequeue (TAO_Notify_Method_Request_Queueable *&method_request, const ACE_Time_Value *abstime) |
void | shutdown (void) |
Shutdown. More... | |
ACE_Time_Value | oldest_event (void) |
Provide the time value of the oldest event in the queue. More... | |
void | set_tracker (Tracker *tracker) |
Set the tracker object. This strategy does not own the tracker. More... | |
Private Member Functions | |
int | queue (TAO_Notify_Method_Request_Queueable *method_request) |
Apply the Order Policy and queue. return -1 on error. More... | |
bool | discard (TAO_Notify_Method_Request_Queueable *method_request) |
Discard as per the Discard Policy. More... | |
Base Strategy to enqueue and dequeue items from a Message Queue.
TAO_Notify_Buffering_Strategy::TAO_Notify_Buffering_Strategy | ( | TAO_Notify_Message_Queue & | msg_queue, |
const TAO_Notify_AdminProperties::Ptr & | admin_properties | ||
) |
TAO_Notify_Buffering_Strategy::~TAO_Notify_Buffering_Strategy | ( | ) |
int TAO_Notify_Buffering_Strategy::dequeue | ( | TAO_Notify_Method_Request_Queueable *& | method_request, |
const ACE_Time_Value * | abstime | ||
) |
Dequeue batch. This method will block for abstime if non-zero or else blocks till an item is available. Return -1 on error or if nothing is available, else the number of items actually dequeued (1).
|
private |
Discard as per the Discard Policy.
int TAO_Notify_Buffering_Strategy::enqueue | ( | TAO_Notify_Method_Request_Queueable * | method_request | ) |
Enqueue according the enqueing strategy. Return -1 on error else the number of items in the queue.
ACE_Time_Value TAO_Notify_Buffering_Strategy::oldest_event | ( | void | ) |
Provide the time value of the oldest event in the queue.
|
private |
Apply the Order Policy and queue. return -1 on error.
void TAO_Notify_Buffering_Strategy::set_tracker | ( | TAO_Notify_Buffering_Strategy::Tracker * | tracker | ) |
Set the tracker object. This strategy does not own the tracker.
void TAO_Notify_Buffering_Strategy::shutdown | ( | void | ) |
Shutdown.
void TAO_Notify_Buffering_Strategy::update_qos_properties | ( | const TAO_Notify_QoSProperties & | qos_properties | ) |
Update state with the following QoS Properties: Order Policy Discard Policy MaxEventsPerConsumer
|
private |
Reference to the properties per event channel.
|
private |
|
private |
Policy to discard when buffers are full.
|
private |
|
private |
The global queue length - queue length accross all the queues.
|
private |
The shared global lock used by all the queues.
|
private |
Condition that batch size reached.
|
private |
|
private |
|
private |
The maximum events that can be queued overall.
|
private |
= Data Members
The local Message Queue
|
private |
Order of events in internal buffers.
|
private |
Flag to shutdown.
|
private |
Optional queue tracker.