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

# ACE_Priority_Reactor Class Reference

Implements priority based dispatching. More...

`#include <Priority_Reactor.h>`

Inheritance diagram for ACE_Priority_Reactor:

[legend]
Collaboration diagram for ACE_Priority_Reactor:

[legend]
List of all members.

## Public Member Functions
| ACE_Priority_Reactor (ACE_Sig_Handler *=0, ACE_Timer_Queue *=0)
| Initialize <ace_priority_reactor> with the default size.
| ACE_Priority_Reactor (size_t size, int restart=0, ACE_Sig_Handler *=0, ACE_Timer_Queue *=0)
| Initialize <ace_priority_reactor> with size <size>.
virtual | ~ACE_Priority_Reactor (void)
| Close down the select_reactor and release all of its resources.
void | dump (void) const
| Dump the state of an object.
## Public Attributes
| ACE_ALLOC_HOOK_DECLARE
| Declare the dynamic allocation hooks.
## Protected Member Functions
virtual int | dispatch_io_set (int number_of_active_handles, int &number_dispatched, int mask, ACE_Handle_Set &dispatch_mask, ACE_Handle_Set &ready_mask, ACE_EH_PTMF callback)
## Private Types
typedef ACE_Unbounded_Queue< ACE_Event_Tuple > | QUEUE
## Private Member Functions
void | init_bucket (void)
| A small helper to initialize the bucket.
void | build_bucket (ACE_Handle_Set &dispatch_mask, int &min_priority, int &max_priority)
| Build the bucket from the given dispatch_mask.
| ACE_Priority_Reactor (const ACE_Priority_Reactor &)
| Deny access since member-wise won't work...
ACE_Priority_Reactor & | operator= (const ACE_Priority_Reactor &)
## Private Attributes
QUEUE ** | bucket_
ACE_Allocator * | tuple_allocator_

## Detailed Description

Implements priority based dispatching.

This class refines the dispatching mechanism for the Select_Reactor by taking advantage of the priority method on ACE_Event_Handler.

## Member Typedef Documentation

typedef ACE_Unbounded_Queue<ACE_Event_Tuple> ACE_Priority_Reactor::QUEUE`[private]`

| There is a queue per-priority, which simply holds the Event_Handlers until we know who goes first.

## Constructor & Destructor Documentation

ACE_Priority_Reactor::ACE_Priority_Reactor | ( | ACE_Sig_Handler * | = `0`,
|  | ACE_Timer_Queue * | = `0`
| ) |

| Initialize <ace_priority_reactor> with the default size.

ACE_Priority_Reactor::ACE_Priority_Reactor | ( | size_t | size,
|  | int | restart = `0`,
|  | ACE_Sig_Handler * | = `0`,
|  | ACE_Timer_Queue * | = `0`
| ) |

| Initialize <ace_priority_reactor> with size <size>.

ACE_Priority_Reactor::~ACE_Priority_Reactor | ( | void |  | ) | `[virtual]`

| Close down the select_reactor and release all of its resources.

ACE_Priority_Reactor::ACE_Priority_Reactor | ( | const ACE_Priority_Reactor & |  | ) | `[private]`

| Deny access since member-wise won't work...

## Member Function Documentation

void ACE_Priority_Reactor::build_bucket | ( | ACE_Handle_Set & | dispatch_mask,
|  | int & | min_priority,
|  | int & | max_priority
| ) | `[private]`

| Build the bucket from the given dispatch_mask.

int ACE_Priority_Reactor::dispatch_io_set | ( | int | number_of_active_handles,
|  | int & | number_dispatched,
|  | int | mask,
|  | ACE_Handle_Set & | dispatch_mask,
|  | ACE_Handle_Set & | ready_mask,
|  | ACE_EH_PTMF | callback
| ) | `[protected, virtual]`

| We simply override this function to implement the priority dispatching. Reimplemented from ACE_Select_Reactor_T< ACE_SELECT_REACTOR_TOKEN >.

void ACE_Priority_Reactor::dump | ( | void |  | ) | const`[virtual]`

| Dump the state of an object. Reimplemented from ACE_Select_Reactor_T< ACE_SELECT_REACTOR_TOKEN >.

void ACE_Priority_Reactor::init_bucket | ( | void |  | ) | `[private]`

| A small helper to initialize the bucket.

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

## Member Data Documentation

ACE_Priority_Reactor::ACE_ALLOC_HOOK_DECLARE

| Declare the dynamic allocation hooks. Reimplemented from ACE_Select_Reactor_T< ACE_SELECT_REACTOR_TOKEN >.

QUEUE** ACE_Priority_Reactor::bucket_`[private]`

ACE_Allocator* ACE_Priority_Reactor::tuple_allocator_`[private]`

| The queues themselves use this allocator to minimize dynamic memory usage.

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

- Priority_Reactor.h
- Priority_Reactor.cpp