Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

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, 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_
 = Data Members 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_Notify_Buffering_Strategy::TAO_Notify_Buffering_Strategy TAO_Notify_Message_Queue msg_queue,
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 TAO_Notify_Extensions::BlockingPolicy


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]
 

= Data Members 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 Sat Aug 6 03:35:18 2005 for TAO_CosNotification by  doxygen 1.3.9.1