|
ACE
6.0.7
|
Adapts an ACE timer queue to be driven asynchronously using signals. More...
#include <Timer_Queue_Adapters.h>


Public Types | |
| typedef TQ | TIMER_QUEUE |
Public Member Functions | |
| ACE_Async_Timer_Queue_Adapter (ACE_Sig_Set *mask=0) | |
| Constructor. | |
| long | schedule (TYPE type, const void *act, const ACE_Time_Value &future_time, const ACE_Time_Value &interval=ACE_Time_Value::zero) |
| int | cancel (long timer_id, const void **act=0) |
| int | expire (void) |
| TQ & | timer_queue (void) |
| Return a reference to the underlying timer queue. | |
Private Member Functions | |
| virtual int | schedule_ualarm (void) |
| Perform the logic to compute the new ualarm(2) setting. | |
| virtual int | handle_signal (int signum, siginfo_t *, ucontext_t *) |
Called back by SIGALRM handler. | |
Private Attributes | |
| ACE_Sig_Handler | sig_handler_ |
| TQ | timer_queue_ |
| ACE_Sig_Set | mask_ |
Mask of signals to be blocked when we're servicing SIGALRM. | |
Adapts an ACE timer queue to be driven asynchronously using signals.
This implementation uses the ACE_OS::ualarm call, to generate the SIGARLM signal that is caught by this class.
| typedef TQ ACE_Async_Timer_Queue_Adapter::TIMER_QUEUE |
| ACE_Async_Timer_Queue_Adapter::ACE_Async_Timer_Queue_Adapter | ( | ACE_Sig_Set * | mask = 0 | ) |
Constructor.
Register the SIGALRM handler. If mask == 0 then block all signals when SIGALRM is run. Otherwise, just block the signals indicated in mask.
| int ACE_Async_Timer_Queue_Adapter::cancel | ( | long | timer_id, |
| const void ** | act = 0 |
||
| ) |
Cancel the timer_id and pass back the act if an address is passed in.
| int ACE_Async_Timer_Queue_Adapter::expire | ( | void | ) |
Dispatch all timers with expiry time at or before the current time. Returns the number of timers expired.
| int ACE_Async_Timer_Queue_Adapter::handle_signal | ( | int | signum, |
| siginfo_t * | , | ||
| ucontext_t * | |||
| ) | [private, virtual] |
Called back by SIGALRM handler.
Reimplemented from ACE_Event_Handler.
| long ACE_Async_Timer_Queue_Adapter::schedule | ( | TYPE | type, |
| const void * | act, | ||
| const ACE_Time_Value & | future_time, | ||
| const ACE_Time_Value & | interval = ACE_Time_Value::zero |
||
| ) |
Schedule the timer according to the semantics of the ACE_Timer_List. This timer gets dispatched via a signal, rather than by a user calling expire(). Note that interval timers are not implemented yet.
| int ACE_Async_Timer_Queue_Adapter::schedule_ualarm | ( | void | ) | [private, virtual] |
Perform the logic to compute the new ualarm(2) setting.
| TQ & ACE_Async_Timer_Queue_Adapter::timer_queue | ( | void | ) |
Return a reference to the underlying timer queue.
Mask of signals to be blocked when we're servicing SIGALRM.
Handler for the SIGALRM signal, so that we can access our state without requiring any global variables.
TQ ACE_Async_Timer_Queue_Adapter::timer_queue_ [private] |
Implementation of the timer queue (e.g., ACE_Timer_List, ACE_Timer_Heap, etc.).
1.7.5