ACE
6.3.1
|
Provides an interface to timers. More...
#include <Timer_Queue_T.h>
Public Member Functions | |
ACE_Timer_Queue_T (FUNCTOR *upcall_functor=0, ACE_Free_List< ACE_Timer_Node_T< TYPE > > *freelist=0, TIME_POLICY const &time_policy=TIME_POLICY()) | |
virtual | ~ACE_Timer_Queue_T (void) |
virtual long | schedule (const TYPE &type, const void *act, const ACE_Time_Value &future_time, const ACE_Time_Value &interval=ACE_Time_Value::zero) |
virtual int | dispatch_info (const ACE_Time_Value ¤t_time, ACE_Timer_Node_Dispatch_Info_T< TYPE > &info) |
virtual void | gettimeofday (ACE_Time_Value(*gettimeofday)(void)) |
ACE_Time_Value | gettimeofday_static () |
void | set_time_policy (TIME_POLICY const &time_policy) |
void | timer_skew (const ACE_Time_Value &skew) |
Set the timer skew for the Timer_Queue. More... | |
const ACE_Time_Value & | timer_skew (void) const |
Get the timer skew for the Timer_Queue. More... | |
ACE_LOCK & | mutex (void) |
Synchronization variable used by the queue. More... | |
virtual void | dump (void) const |
Dump the state of a object. More... | |
virtual void | return_node (ACE_Timer_Node_T< TYPE > *) |
void | preinvoke (ACE_Timer_Node_Dispatch_Info_T< TYPE > &info, const ACE_Time_Value &cur_time, const void *&upcall_act) |
This method will call the preinvoke() on <functor>. More... | |
void | upcall (ACE_Timer_Node_Dispatch_Info_T< TYPE > &info, const ACE_Time_Value &cur_time) |
This method will call the timeout() on <functor>. More... | |
void | postinvoke (ACE_Timer_Node_Dispatch_Info_T< TYPE > &info, const ACE_Time_Value &cur_time, const void *upcall_act) |
This method will call the postinvoke() on <functor>. More... | |
virtual int | expire (const ACE_Time_Value ¤t_time) |
virtual int | expire (void) |
virtual int | expire_single (ACE_Command_Base &pre_dispatch_command) |
virtual ACE_Time_Value | gettimeofday (void) |
virtual ACE_Time_Value * | calculate_timeout (ACE_Time_Value *max) |
virtual ACE_Time_Value * | calculate_timeout (ACE_Time_Value *max, ACE_Time_Value *the_timeout) |
virtual ACE_Time_Value | current_time () |
![]() | |
ACE_Timer_Queue_Upcall_Base (FUNCTOR *upcall_functor=0) | |
virtual | ~ACE_Timer_Queue_Upcall_Base (void) |
Destructor. More... | |
FUNCTOR & | upcall_functor (void) |
Accessor to the upcall functor. More... | |
![]() | |
virtual | ~ACE_Abstract_Timer_Queue (void)=0 |
Destructor. More... | |
virtual bool | is_empty (void) const =0 |
True if queue is empty, else false. More... | |
virtual const ACE_Time_Value & | earliest_time (void) const =0 |
virtual int | reset_interval (long timer_id, const ACE_Time_Value &interval)=0 |
virtual int | cancel (const TYPE &type, int dont_call_handle_close=1)=0 |
virtual int | cancel (long timer_id, const void **act=0, int dont_call_handle_close=1)=0 |
virtual int | close (void)=0 |
virtual ITERATOR & | iter (void)=0 |
Returns a pointer to this ACE_Timer_Queue's iterator. More... | |
virtual ACE_Timer_Node_T< TYPE > * | remove_first (void)=0 |
Removes the earliest node from the queue and returns it. More... | |
virtual ACE_Timer_Node_T< TYPE > * | get_first (void)=0 |
Reads the earliest node from the queue and returns it. More... | |
Protected Member Functions | |
virtual long | schedule_i (const TYPE &type, const void *act, const ACE_Time_Value &future_time, const ACE_Time_Value &interval)=0 |
Schedule a timer. More... | |
virtual void | reschedule (ACE_Timer_Node_T< TYPE > *)=0 |
Reschedule an "interval" ACE_Timer_Node. More... | |
virtual ACE_Timer_Node_T< TYPE > * | alloc_node (void) |
Factory method that allocates a new node. More... | |
virtual void | free_node (ACE_Timer_Node_T< TYPE > *) |
Factory method that frees a previously allocated node. More... | |
virtual int | dispatch_info_i (const ACE_Time_Value ¤t_time, ACE_Timer_Node_Dispatch_Info_T< TYPE > &info) |
Non-locking version of dispatch_info () More... | |
void | recompute_next_abs_interval_time (ACE_Timer_Node_T< TYPE > *expired, const ACE_Time_Value &cur_time) |
Recompute when the next time is that this interval timer should fire. More... | |
Protected Attributes | |
ACE_LOCK | mutex_ |
ACE_Free_List < ACE_Timer_Node_T< TYPE > > * | free_list_ |
Class that implements a free list. More... | |
TIME_POLICY | time_policy_ |
The policy to return the current time of day. More... | |
bool const | delete_free_list_ |
Flag to delete only if the class created the <free_list_> More... | |
![]() | |
FUNCTOR * | upcall_functor_ |
Upcall functor. More... | |
bool const | delete_upcall_functor_ |
To delete or not to delete is the question? More... | |
Private Attributes | |
ACE_Time_Value | timeout_ |
Returned by <calculate_timeout>. More... | |
ACE_Time_Value | timer_skew_ |
Adjusts for timer skew in various clocks. More... | |
Additional Inherited Members | |
![]() | |
typedef ACE_Timer_Queue_Iterator_T < TYPE > | ITERATOR |
Type of Iterator. More... | |
Provides an interface to timers.
This is an abstract base class that provides hook for implementing specialized policies such as ACE_Timer_List and ACE_Timer_Heap.
ACE_Timer_Queue_T< TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY >::ACE_Timer_Queue_T | ( | FUNCTOR * | upcall_functor = 0 , |
ACE_Free_List< ACE_Timer_Node_T< TYPE > > * | freelist = 0 , |
||
TIME_POLICY const & | time_policy = TIME_POLICY() |
||
) |
Default constructor. upcall_functor is the instance of the FUNCTOR to be used by the queue. If upcall_functor is 0, Timer Queue will create a default FUNCTOR. freelist the freelist of timer nodes. If 0, then a default freelist will be created.
|
virtual |
Destructor - make virtual for proper destruction of inherited classes.
|
protectedvirtual |
Factory method that allocates a new node.
Reimplemented in ACE_Timer_Heap_T< TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY >.
|
virtual |
Determine the next event to timeout. Returns max if there are no pending timers or if all pending timers are longer than max. This method acquires a lock internally since it modifies internal state. Implement calculate_timeout() using the right locking policy
Implements ACE_Abstract_Timer_Queue< TYPE >.
|
virtual |
Determine the next event to timeout. Returns max if there are no pending timers or if all pending timers are longer than max. This method acquires a lock internally since it modifies internal state. Implement calculate_timeout() using the right locking policy
Implements ACE_Abstract_Timer_Queue< TYPE >.
|
virtual |
Determine the next event to timeout. Returns max if there are no pending timers or if all pending timers are longer than max. This method acquires a lock internally since it modifies internal state. Implement calculate_timeout() using the right locking policy
Implements ACE_Abstract_Timer_Queue< TYPE >.
|
virtual |
Get the dispatch information for a timer whose value is <= current_time. This does not account for <timer_skew>. Returns 1 if there is a node whose value <= current_time else returns a 0.
|
protectedvirtual |
Non-locking version of dispatch_info ()
Reimplemented in ACE_Timer_Hash_T< TYPE, FUNCTOR, ACE_LOCK, BUCKET, TIME_POLICY >.
|
virtual |
Dump the state of a object.
Implements ACE_Abstract_Timer_Queue< TYPE >.
Reimplemented in ACE_Timer_Hash_T< TYPE, FUNCTOR, ACE_LOCK, BUCKET, TIME_POLICY >, ACE_Timer_Heap_T< TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY >, ACE_Timer_Wheel_T< TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY >, and ACE_Timer_List_T< TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY >.
|
virtual |
Implement ACE_Abstract_Timer_Queue<TYPE>::expire () with the right locking strategy.
Implements ACE_Abstract_Timer_Queue< TYPE >.
Reimplemented in ACE_Timer_Hash_T< TYPE, FUNCTOR, ACE_LOCK, BUCKET, TIME_POLICY >, and ACE_Timer_Wheel_T< TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY >.
|
virtual |
Implement ACE_Abstract_Timer_Queue<TYPE>::expire () with the right locking strategy.
Implements ACE_Abstract_Timer_Queue< TYPE >.
Reimplemented in ACE_Timer_Hash_T< TYPE, FUNCTOR, ACE_LOCK, BUCKET, TIME_POLICY >, and ACE_Timer_Wheel_T< TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY >.
|
virtual |
Implement ACE_Abstract_Timer_Queue<TYPE>::expire () with the right locking strategy.
Implements ACE_Abstract_Timer_Queue< TYPE >.
|
protectedvirtual |
Factory method that frees a previously allocated node.
Reimplemented in ACE_Timer_Hash_T< TYPE, FUNCTOR, ACE_LOCK, BUCKET, TIME_POLICY >, and ACE_Timer_Heap_T< TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY >.
|
virtual |
Implement the gettimeofday() virtual function
Implements ACE_Abstract_Timer_Queue< TYPE >.
|
virtual |
Allows applications to control how the timer queue gets the time of day.
Implements ACE_Abstract_Timer_Queue< TYPE >.
|
inline |
Implement an inlined, non-abstract version of gettimeofday(), through this member function the internals of the class can make calls to ACE_OS::gettimeofday() with zero overhead.
ACE_LOCK & ACE_Timer_Queue_T< TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY >::mutex | ( | void | ) |
Synchronization variable used by the queue.
|
inline |
This method will call the postinvoke() on <functor>.
|
inline |
This method will call the preinvoke() on <functor>.
|
protected |
Recompute when the next time is that this interval timer should fire.
|
protectedpure virtual |
Reschedule an "interval" ACE_Timer_Node.
Implemented in ACE_Timer_Hash_T< TYPE, FUNCTOR, ACE_LOCK, BUCKET, TIME_POLICY >, ACE_Timer_Heap_T< TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY >, ACE_Timer_Wheel_T< TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY >, and ACE_Timer_List_T< TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY >.
|
virtual |
Method used to return a timer node to the queue's ownership after it is returned by a method like <remove_first>.
|
virtual |
Implement ACE_Abstract_Timer_Queue<TYPE>::schedule () with the right locking strategy.
Implements ACE_Abstract_Timer_Queue< TYPE >.
|
protectedpure virtual |
|
inline |
Allows applications to control how the timer queue gets the time of day.
|
inline |
Set the timer skew for the Timer_Queue.
|
inline |
Get the timer skew for the Timer_Queue.
|
inline |
This method will call the timeout() on <functor>.
|
protected |
Flag to delete only if the class created the <free_list_>
|
protected |
Class that implements a free list.
|
protected |
Synchronization variable for ACE_Timer_Queue.
|
protected |
The policy to return the current time of day.
|
private |
Returned by <calculate_timeout>.
|
private |
Adjusts for timer skew in various clocks.