Main Page Class Hierarchy Alphabetical List Compound List File List Compound Members File Members Related Pages

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

[legend]
List of all members.

## Public Methods
| ACE_Activation_Queue (ACE_Message_Queue< ACE_SYNCH > *new_queue=0, ACE_Allocator *alloc=0, ACE_Allocator *db_alloc=0)
| Initializes a new activation queue. More...
virtual | ~ACE_Activation_Queue (void)
| Destructor. More...
ACE_Method_Request * | dequeue (ACE_Time_Value *tv=0)
| tv If 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. More...
int | enqueue (ACE_Method_Request *new_method_request, ACE_Time_Value *tv=0)
| The priority of the method request is obtained via the `priority()` method of the queued method request. 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...
int | delete_queue_
| Keeps track of whether we need to delete the queue. More...
## Private Methods
void | operator= (const ACE_Activation_Queue &)
| ACE_Activation_Queue (const ACE_Activation_Queue &)
## Private Attributes
ACE_Allocator * | allocator_
| Allocation strategy of the queue. More...
ACE_Allocator * | data_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
| ) |

| Initializes a new activation queue. new_queue The 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. alloc Optional, 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_alloc Optional, 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 | ) |

  | tv If 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:
  Pointer | to the dequeued ACE_Method_Request object.
  0 | an 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 * | mr,
|  | ACE_Time_Value * | tv = 0
| ) |

  | 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. new_method_request Pointer to the ACE_Method_Request object to queue. This object's `priority()` method is called to obtain the priority. tv If 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:
  0 | on success.
  -1 | if an error occurs; errno contains further information. If the specified timeout elapses, errno will be `EWOULDBLOCK`.

ACE_INLINE int ACE_Activation_Queue::is_empty | ( | void |  | ) | const

| Returns 1 if the queue is empty, 0 otherwise.

ACE_INLINE int ACE_Activation_Queue::is_full | ( | void |  | ) | const

| Returns 1 if the queue is full, 0 otherwise.

ACE_INLINE size_t ACE_Activation_Queue::method_count | ( | void |  | ) | const

| Get the current number of method objects in the queue.

void ACE_Activation_Queue::operator= | ( | const ACE_Activation_Queue & |  | ) | `[private]`

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

| Set the pointer to the underlying queue.

ACE_INLINE ACE_Message_Queue< ACE_SYNCH > * ACE_Activation_Queue::queue | ( | void |  | ) | const

| Get a 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.

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

- Activation_Queue.h
- Activation_Queue.cpp
- Activation_Queue.i