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

# ACE_Async_Timer_Queue_Adapter< TQ > Class Template Reference

Adapts a <tq> to be run asynchronously. More...

`#include <Timer_Queue_Adapters.h>`

Inheritance diagram for ACE_Async_Timer_Queue_Adapter< TQ >:

[legend]
Collaboration diagram for ACE_Async_Timer_Queue_Adapter< TQ >:

[legend]
List of all members.

## Public Types
typedef TQ | TIMER_QUEUE
## Public Member Functions
| ACE_Async_Timer_Queue_Adapter (ACE_Sig_Set *mask=0)
| Constructor.
long | schedule (ACE_Event_Handler *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)
| Access 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>.

## Detailed Description

### template<class TQ>
class ACE_Async_Timer_Queue_Adapter< TQ >

Adapts a <tq> to be run asynchronously.

This implementation uses the <ualarm> call, which generates the SIGARLM signal that is caught by this class.

## Member Typedef Documentation

template<class TQ>
typedef TQ ACE_Async_Timer_Queue_Adapter< TQ >::TIMER_QUEUE

## Constructor & Destructor Documentation

template<class TQ>
ACE_Async_Timer_Queue_Adapter< TQ >::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.

## Member Function Documentation

template<class TQ>
int ACE_Async_Timer_Queue_Adapter< TQ >::cancel | ( | long | timer_id,
|  | const void ** | act = `0`
| ) |

| Cancel the timer_id and pass back the act if an address is passed in.

template<class TQ>
int ACE_Async_Timer_Queue_Adapter< TQ >::expire | ( | void |  | ) |

| Dispatch all timers whose values are <= cur_time. Returns the number of timers canceled.

template<class TQ>
int ACE_Async_Timer_Queue_Adapter< TQ >::handle_signal | ( | int | signum,
|  | siginfo_t * | ,
|  | ucontext_t * |
| ) | `[private, virtual]`

| Called back by <sigalrm> handler. Reimplemented from ACE_Event_Handler.

template<class TQ>
long ACE_Async_Timer_Queue_Adapter< TQ >::schedule | ( | ACE_Event_Handler * | type,
|  | const void * | act,
|  | const ACE_Time_Value & | future_time,
|  | const ACE_Time_Value & | interval = `ACE_Time_Value::zero`
| ) |

| This timer gets dispatched via a signal, rather than by a user calling expire(). Note that interval timers are not implemented yet.

template<class TQ>
int ACE_Async_Timer_Queue_Adapter< TQ >::schedule_ualarm | ( | void |  | ) | `[private, virtual]`

| Perform the logic to compute the new ualarm(2) setting.

template<class TQ>
ACE_BEGIN_VERSIONED_NAMESPACE_DECL TQ & ACE_Async_Timer_Queue_Adapter< TQ >::timer_queue | ( | void |  | ) |

| Access the underlying <timer_queue>.

## Member Data Documentation

template<class TQ>
ACE_Sig_Set ACE_Async_Timer_Queue_Adapter< TQ >::mask_`[private]`

| Mask of signals to be blocked when we're servicing <sigalrm>.

template<class TQ>
ACE_Sig_Handler ACE_Async_Timer_Queue_Adapter< TQ >::sig_handler_`[private]`

| Handler for the <sigalrm> signal, so that we can access our state without requiring any global variables.

template<class TQ>
TQ ACE_Async_Timer_Queue_Adapter< TQ >::timer_queue_`[private]`

| Implementation of the timer queue (e.g., <ace_timer_list>, <ace_timer_heap>, etc.).

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

- Timer_Queue_Adapters.h
- Timer_Queue_Adapters.cpp