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.

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_Queuemsg_queue_
 The local Message Queue.
TAO_Notify_AdminProperties::Ptr admin_properties_
 Reference to the properties per event channel.
ACE_SYNCH_MUTEXglobal_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_CONDITIONglobal_not_full_
TAO_SYNCH_CONDITION local_not_full_
TAO_SYNCH_CONDITION local_not_empty_
 Condition that batch size reached.
bool shutdown_
 Flag to shutdown.

Detailed Description

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


Constructor & Destructor Documentation

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


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.

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::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

TAO_Notify_AdminProperties::Ptr TAO_Notify_Buffering_Strategy::admin_properties_ [private]

Reference to the properties per event channel.

TAO_Notify_Property_Time TAO_Notify_Buffering_Strategy::blocking_policy_ [private]

TAO_Notify_Property_Short TAO_Notify_Buffering_Strategy::discard_policy_ [private]

Policy to discard when buffers are full.

TAO_SYNCH_CONDITION& TAO_Notify_Buffering_Strategy::global_not_full_ [private]

CORBA::Long& TAO_Notify_Buffering_Strategy::global_queue_length_ [private]

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

ACE_SYNCH_MUTEX& TAO_Notify_Buffering_Strategy::global_queue_lock_ [private]

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]

TAO_Notify_Property_Long TAO_Notify_Buffering_Strategy::max_events_per_consumer_ [private]

const TAO_Notify_Property_Long& TAO_Notify_Buffering_Strategy::max_queue_length_ [private]

The maximum events that can be queued overall.

TAO_Notify_Message_Queue& TAO_Notify_Buffering_Strategy::msg_queue_ [private]

The local Message Queue.

TAO_Notify_Property_Short TAO_Notify_Buffering_Strategy::order_policy_ [private]

Order of events in internal buffers.

bool TAO_Notify_Buffering_Strategy::shutdown_ [private]

Flag to shutdown.


The documentation for this class was generated from the following files:
Generated on Thu Mar 22 07:52:52 2007 for TAO_CosNotification by  doxygen 1.4.7-1