|
| | ACE_Timer_List_T (FUNCTOR *upcall_functor=0, FreeList *freelist=0, TIME_POLICY const &time_policy=TIME_POLICY()) |
| |
| virtual | ~ACE_Timer_List_T (void) |
| | Destructor. More...
|
| |
| virtual bool | is_empty (void) const |
| | True if queue is empty, else false. More...
|
| |
| virtual const ACE_Time_Value & | earliest_time (void) const |
| |
| virtual int | reset_interval (long timer_id, const ACE_Time_Value &interval) |
| |
| virtual int | cancel (const TYPE &type, int dont_call_handle_close=1) |
| |
| virtual int | cancel (long timer_id, const void **act=0, int dont_call_handle_close=1) |
| |
| virtual int | close (void) |
| |
| virtual ACE_Timer_Queue_Iterator_T< TYPE > & | iter (void) |
| | Returns a pointer to this ACE_Timer_Queue's iterator. More...
|
| |
| virtual ACE_Timer_Node_T< TYPE > * | remove_first (void) |
| | Removes the earliest node from the queue and returns it. More...
|
| |
| virtual void | dump (void) const |
| | Dump the state of an object. More...
|
| |
| virtual void | reschedule (ACE_Timer_Node_T< TYPE > *) |
| |
| virtual ACE_Timer_Node_T< TYPE > * | get_first (void) |
| | Reads the earliest node from the queue and returns it. More...
|
| |
| | 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 | 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...
|
| |
template<class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY = ACE_Default_Time_Policy>
class ACE_Timer_List_T< TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY >
Provides a simple implementation of timers.
This implementation uses a linked list of absolute times. Therefore, in the average case, scheduling and canceling timers is O(N) (where N is the total number of timers) and expiring timers is O(K) (where K is the total number of timers that are < the current time of day). More clever implementations could use a delta-list, a heap, or timing wheels, etc. For instance, ACE_Timer_Heap is a subclass of ACE_Timer_List that implements a heap-based callout queue. For most applications, the ACE_Timer_Heap will perform substantially faster than the ACE_Timer_List.
template<class TYPE , class FUNCTOR , class ACE_LOCK , typename TIME_POLICY >
Default constructor. upcall_functor is the instance of the FUNCTOR to be used by the list. If upcall_functor is 0, a default FUNCTOR will be created. freelist is the freelist of timer nodes. If 0, then a default freelist will be created.
template<class TYPE , class FUNCTOR , class ACE_LOCK , typename TIME_POLICY >
| int ACE_Timer_List_T< TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY >::cancel |
( |
long |
timer_id, |
|
|
const void ** |
act = 0, |
|
|
int |
dont_call_handle_close = 1 |
|
) |
| |
|
virtual |
Cancel the single timer that matches the timer_id value (which was returned from the <schedule> method). If act is non-NULL then it will be set to point to the ``magic cookie'' argument passed in when the timer was registered. This makes it possible to free up the memory and avoid memory leaks. If <dont_call> is 0 then the <functor> will be invoked. Returns 1 if cancellation succeeded and 0 if the timer_id wasn't found.
Implements ACE_Abstract_Timer_Queue< TYPE >.
template<class TYPE , class FUNCTOR , class ACE_LOCK , typename TIME_POLICY >
Resets the interval of the timer represented by timer_id to interval, which is specified in relative time to the current <gettimeofday>. If interval is equal to ACE_Time_Value::zero, the timer will become a non-rescheduling timer. Returns 0 if successful, -1 if not.
Implements ACE_Abstract_Timer_Queue< TYPE >.
template<class TYPE , class FUNCTOR , class ACE_LOCK , typename TIME_POLICY >
Schedule type that will expire at future_time, which is specified in absolute time. If it expires then act is passed in as the value to the <functor>. If interval is != to ACE_Time_Value::zero then it is used to reschedule the type automatically, using relative time to the current <gettimeofday>. This method returns a timer_id that uniquely identifies the the type entry in an internal list. This timer_id can be used to cancel the timer before it expires. The cancellation ensures that <timer_ids> are unique up to values of greater than 2 billion timers. As long as timers don't stay around longer than this there should be no problems with accidentally deleting the wrong timer. Returns -1 on failure (which is guaranteed never to be a valid <timer_id>).
Implements ACE_Timer_Queue_T< TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY >.