#include <Buffering_Strategy.h>
Collaboration diagram for TAO_Notify_Buffering_Strategy:
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. | |
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_ |
The local Message Queue. | |
TAO_Notify_AdminProperties::Ptr | admin_properties_ |
Reference to the properties per event channel. | |
ACE_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. |
TAO_BEGIN_VERSIONED_NAMESPACE_DECL 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 | ( | ) |
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
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.
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).
void TAO_Notify_Buffering_Strategy::shutdown | ( | void | ) |
Shutdown.
int TAO_Notify_Buffering_Strategy::queue | ( | TAO_Notify_Method_Request_Queueable * | method_request | ) | [private] |
Apply the Order Policy and queue. return -1 on error.
bool TAO_Notify_Buffering_Strategy::discard | ( | TAO_Notify_Method_Request_Queueable * | method_request | ) | [private] |
Discard as per the Discard Policy.
The local Message Queue.
Reference to the properties per event channel.
ACE_SYNCH_MUTEX& TAO_Notify_Buffering_Strategy::global_queue_lock_ [private] |
The shared global lock used by all the queues.
The global queue length - queue length accross all the queues.
const TAO_Notify_Property_Long& TAO_Notify_Buffering_Strategy::max_queue_length_ [private] |
The maximum events that can be queued overall.
Order of events in internal buffers.
Policy to discard when buffers are full.
TAO_SYNCH_CONDITION& TAO_Notify_Buffering_Strategy::global_not_full_ [private] |
TAO_SYNCH_CONDITION TAO_Notify_Buffering_Strategy::local_not_full_ [private] |
TAO_SYNCH_CONDITION TAO_Notify_Buffering_Strategy::local_not_empty_ [private] |
Condition that batch size reached.
bool TAO_Notify_Buffering_Strategy::shutdown_ [private] |
Flag to shutdown.