TAO_CosNotification
2.0.8
|
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. | |
ACE_Time_Value | oldest_event (void) |
Provide the time value of the oldest event in the queue. | |
void | set_tracker (Tracker *tracker) |
Set the tracker object. This strategy does not own the tracker. | |
Private Member Functions | |
int | queue (TAO_Notify_Method_Request_Queueable *method_request) |
Apply the Order Policy and queue. return -1 on error. | |
bool | discard (TAO_Notify_Method_Request_Queueable *method_request) |
Discard as per the Discard Policy. | |
Private Attributes | |
TAO_Notify_Message_Queue & | msg_queue_ |
= Data Members | |
TAO_Notify_AdminProperties::Ptr | admin_properties_ |
Reference to the properties per event channel. | |
TAO_SYNCH_MUTEX & | global_queue_lock_ |
The shared global lock used by all the queues. | |
CORBA::Long & | global_queue_length_ |
The global queue length - queue length accross all the queues. | |
const TAO_Notify_Property_Long & | max_queue_length_ |
The maximum events that can be queued overall. | |
TAO_Notify_Property_Short | order_policy_ |
Order of events in internal buffers. | |
TAO_Notify_Property_Short | discard_policy_ |
Policy to discard when buffers are full. | |
TAO_Notify_Property_Long | max_events_per_consumer_ |
TAO_Notify_Property_Time | blocking_policy_ |
TAO_SYNCH_CONDITION & | global_not_full_ |
TAO_SYNCH_CONDITION | local_not_full_ |
TAO_SYNCH_CONDITION | local_not_empty_ |
Condition that batch size reached. | |
bool | shutdown_ |
Flag to shutdown. | |
Tracker * | tracker_ |
Optional queue tracker. |
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).
bool TAO_Notify_Buffering_Strategy::discard | ( | TAO_Notify_Method_Request_Queueable * | method_request | ) | [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.
int TAO_Notify_Buffering_Strategy::queue | ( | TAO_Notify_Method_Request_Queueable * | method_request | ) | [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
Reference to the properties per event channel.
Policy to discard when buffers are full.
The global queue length - queue length accross all the queues.
The shared global lock used by all the queues.
Condition that batch size reached.
const TAO_Notify_Property_Long& TAO_Notify_Buffering_Strategy::max_queue_length_ [private] |
The maximum events that can be queued overall.
= Data Members
The local Message Queue
Order of events in internal buffers.
bool TAO_Notify_Buffering_Strategy::shutdown_ [private] |
Flag to shutdown.
Tracker* TAO_Notify_Buffering_Strategy::tracker_ [private] |
Optional queue tracker.