TAO_Notify_Buffering_Strategy Class Reference

Base Strategy to enqueue and dequeue items from a Message Queue. More...

#include <Buffering_Strategy.h>

Collaboration diagram for TAO_Notify_Buffering_Strategy:

Collaboration graph
[legend]

List of all members.

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_Queuemsg_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::Longglobal_queue_length_
 The global queue length - queue length accross all the queues.
const TAO_Notify_Property_Longmax_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.
Trackertracker_
 Optional queue tracker.


Detailed Description

Base Strategy to enqueue and dequeue items from a Message Queue.

Constructor & Destructor Documentation

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 (  ) 


Member Function Documentation

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


Member Data Documentation

Reference to the properties per event channel.

Policy to discard when buffers are full.

TAO_SYNCH_CONDITION& TAO_Notify_Buffering_Strategy::global_not_full_ [private]

The global queue length - queue length accross all the queues.

The shared global lock used by all the queues.

TAO_SYNCH_CONDITION TAO_Notify_Buffering_Strategy::local_not_empty_ [private]

Condition that batch size reached.

TAO_SYNCH_CONDITION TAO_Notify_Buffering_Strategy::local_not_full_ [private]

The maximum events that can be queued overall.

= Data Members

The local Message Queue

Order of events in internal buffers.

Flag to shutdown.

Optional queue tracker.


The documentation for this class was generated from the following files:

Generated on Mon Jul 13 16:52:21 2009 for TAO_CosNotification by  doxygen 1.5.8