ACE
6.1.0
|
Implements priority based dispatching. More...
#include <Priority_Reactor.h>
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, bool restart=false, 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. | |
int | build_bucket (ACE_Handle_Set &dispatch_mask, int &min_priority, int &max_priority) |
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_ |
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.
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.
ACE_Priority_Reactor::ACE_Priority_Reactor | ( | ACE_Sig_Handler * | sh = 0 , |
ACE_Timer_Queue * | tq = 0 |
||
) |
Initialize ACE_Priority_Reactor with the default size.
ACE_Priority_Reactor::ACE_Priority_Reactor | ( | size_t | size, |
bool | restart = false , |
||
ACE_Sig_Handler * | sh = 0 , |
||
ACE_Timer_Queue * | tq = 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...
int 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. Return -1 on failure, 0 otherwise.
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] |
Declare the dynamic allocation hooks.
Reimplemented from ACE_Select_Reactor_T< ACE_Select_Reactor_Token >.
QUEUE** ACE_Priority_Reactor::bucket_ [private] |
The queues themselves use this allocator to minimize dynamic memory usage.