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)
| Constructor. More...
virtual | ~ACE_Activation_Queue (void)
| Destructor. More...
ACE_Method_Request * | dequeue (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...
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
| ) |

  | Constructor. Initializes a new activation queue. Parameters:
  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 | ) |

  | Dequeue the next available ACE_Method_Request. Parameters:
  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
| ) |

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