ACE  6.3.3
Public Member Functions | Public Attributes | Protected Attributes | Private Member Functions | Private Attributes | List of all members
ACE_Activation_Queue Class Reference

Reifies a method into a request. Subclasses typically represent necessary state and behavior. More...

#include <Activation_Queue.h>

Collaboration diagram for ACE_Activation_Queue:
Collaboration graph
[legend]

Public Member Functions

 ACE_Activation_Queue (ACE_Message_Queue< ACE_SYNCH > *new_queue=0, ACE_Allocator *alloc=0, ACE_Allocator *db_alloc=0)
 Constructor. More...
 
virtual ~ACE_Activation_Queue (void)
 Destructor. More...
 
ACE_Method_Requestdequeue (ACE_Time_Value *tv=0)
 Dequeue the next available ACE_Method_Request. More...
 
int enqueue (ACE_Method_Request *new_method_request, ACE_Time_Value *tv=0)
 Enqueue the ACE_Method_Request in priority order. More...
 
size_t method_count (void) const
 Get the current number of method objects in the queue. More...
 
int is_empty (void) const
 Returns 1 if the queue is empty, 0 otherwise. More...
 
int is_full (void) const
 Returns 1 if the queue is full, 0 otherwise. More...
 
void dump (void) const
 Dump the state of an request. More...
 
ACE_Message_Queue< ACE_SYNCH > * queue (void) const
 Get a pointer to the underlying queue. More...
 
void queue (ACE_Message_Queue< ACE_SYNCH > *q)
 Set the pointer to the underlying queue. More...
 

Public Attributes

 ACE_ALLOC_HOOK_DECLARE
 Declare the dynamic allocation hooks. More...
 

Protected Attributes

ACE_Message_Queue< ACE_SYNCH > * queue_
 Stores the Method_Requests. More...
 
bool delete_queue_
 Keeps track of whether we need to delete the queue. More...
 

Private Member Functions

void operator= (const ACE_Activation_Queue &)
 
 ACE_Activation_Queue (const ACE_Activation_Queue &)
 

Private Attributes

ACE_Allocatorallocator_
 Allocation strategy of the queue. More...
 
ACE_Allocatordata_block_allocator_
 Allocation strategy of the message blocks. More...
 

Detailed Description

Reifies a method into a request. Subclasses typically represent necessary state and behavior.

Maintains a priority-ordered queue of ACE_Method_Request objects. A scheduler class (often derived from ACE_Task) subsequently removes each method request and invokes its call() method.

This class is discussed in depth in the Active Object chapter of POSA2. In that book, it is referred to as an Activation List.

See also
ACE_Method_Request

Constructor & Destructor Documentation

ACE_Activation_Queue::ACE_Activation_Queue ( ACE_Message_Queue< ACE_SYNCH > *  new_queue = 0,
ACE_Allocator alloc = 0,
ACE_Allocator db_alloc = 0 
)

Constructor.

Initializes a new activation queue.

Parameters
new_queueThe activation queue uses an ACE_Message_Queue to queue and order the method requests. If this argument is 0, a new ACE_Message_Queue is created for this object's use and will be deleted when this object is destroyed. If a non-zero pointer is supplied, the passed object will be used and will not be deleted when this object is destroyed. If an ACE_Task is being created to act as the scheduler, for instance, its ACE_Message_Queue pointer can be passed to this object.
allocOptional, the allocator to use when allocating ACE_Message_Block instances that wrap the method requests queued to this activation queue. Defaults to ACE_Allocator::instance().
db_allocOptional, the allocator to use when allocating data blocks for the ACE_Message_Block instances that wrap the method requests queued to this activation queue. Defaults to ACE_Allocator::instance().
ACE_Activation_Queue::~ACE_Activation_Queue ( void  )
virtual

Destructor.

ACE_Activation_Queue::ACE_Activation_Queue ( const ACE_Activation_Queue )
private

Member Function Documentation

ACE_Method_Request * ACE_Activation_Queue::dequeue ( ACE_Time_Value tv = 0)

Dequeue the next available ACE_Method_Request.

Parameters
tvIf 0, the method will block until a method request is available, else will wait until the absolute time specified in the referenced ACE_Time_Value. This method will return, earlier, however, if queue is closed, deactivated, or when a signal occurs.
Return values
Pointerto the dequeued ACE_Method_Request object.
0an error occurs; errno contains further information. If the specified timeout elapses, errno will be EWOULDBLOCK.
void ACE_Activation_Queue::dump ( void  ) const

Dump the state of an request.

int ACE_Activation_Queue::enqueue ( ACE_Method_Request new_method_request,
ACE_Time_Value tv = 0 
)

Enqueue the ACE_Method_Request in priority order.

The priority of the method request is obtained via the priority() method of the queued method request. Priority ordering is determined by the ACE_Message_Queue class; 0 is the lowest priority.

Parameters
new_method_requestPointer to the ACE_Method_Request object to queue. This object's priority() method is called to obtain the priority.
tvIf 0, the method will block until the method request can be queued, else will wait until the absolute time specified in the referenced ACE_Time_Value. This method will return, earlier, however, if queue is closed, deactivated, or when a signal occurs.
Return values
>0The number of method requests on the queue after adding the specified request.
-1if an error occurs; errno contains further information. If the specified timeout elapses, errno will be EWOULDBLOCK.
int ACE_Activation_Queue::is_empty ( void  ) const
inline

Returns 1 if the queue is empty, 0 otherwise.

int ACE_Activation_Queue::is_full ( void  ) const
inline

Returns 1 if the queue is full, 0 otherwise.

size_t ACE_Activation_Queue::method_count ( void  ) const
inline

Get the current number of method objects in the queue.

void ACE_Activation_Queue::operator= ( const ACE_Activation_Queue )
private
ACE_Message_Queue< ACE_SYNCH > * ACE_Activation_Queue::queue ( void  ) const
inline

Get a pointer to the underlying queue.

void ACE_Activation_Queue::queue ( ACE_Message_Queue< ACE_SYNCH > *  q)

Set the pointer to the underlying queue.

Member Data Documentation

ACE_Activation_Queue::ACE_ALLOC_HOOK_DECLARE

Declare the dynamic allocation hooks.

ACE_Allocator* ACE_Activation_Queue::allocator_
private

Allocation strategy of the queue.

ACE_Allocator* ACE_Activation_Queue::data_block_allocator_
private

Allocation strategy of the message blocks.

bool ACE_Activation_Queue::delete_queue_
protected

Keeps track of whether we need to delete the queue.

ACE_Message_Queue<ACE_SYNCH>* ACE_Activation_Queue::queue_
protected

Stores the Method_Requests.


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