diff options
Diffstat (limited to 'ace/Timer_Queue.h')
-rw-r--r-- | ace/Timer_Queue.h | 167 |
1 files changed, 0 insertions, 167 deletions
diff --git a/ace/Timer_Queue.h b/ace/Timer_Queue.h deleted file mode 100644 index 86f97b43696..00000000000 --- a/ace/Timer_Queue.h +++ /dev/null @@ -1,167 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// ace -// -// = FILENAME -// Timer_Queue.h -// -// = AUTHOR -// Doug Schmidt -// -// ============================================================================ - -#if !defined (ACE_TIMER_QUEUE_H) -#define ACE_TIMER_QUEUE_H - -#include "ace/Event_Handler.h" -#include "ace/Time_Value.h" -#include "ace/Synch.h" - -// This should be nested within the ACE_Timer_Queue class but some C++ -// compilers still don't like this... - -struct ACE_Timer_Node - // = TITLE - // Maintains the state associated with a Timer entry. -{ -friend class ACE_Timer_Queue; -private: - ACE_Timer_Node (ACE_Event_Handler *h, - const void *a, - const ACE_Time_Value &t, - const ACE_Time_Value &i, - ACE_Timer_Node *n, - int timer_id); - // Constructor. - - ACE_Event_Handler *handler_; - // Handler to invoke <handle_timeout> on when a timeout occurs. - - const void *arg_; - // Argument to pass to <handle_timeout>. - - ACE_Time_Value timer_value_; - // Time until the timer expires. - - ACE_Time_Value interval_; - // If this is a periodic timer this holds the time until the next - // timeout. - - ACE_Timer_Node *next_; - // Pointer to next timer. - - int timer_id_; - // Id of this timer (used to cancel timers before they expire). - - ACE_ALLOC_HOOK_DECLARE; - // Declare the dynamic allocation hooks. - - void dump (void) const; - // Dump the state of an object. -}; - -class ACE_Export ACE_Timer_Queue - // = TITLE - // Provides an interface to timers. - // - // = DESCRIPTION - // This is a simple implementation that uses a linked list of - // absolute times. A more clever implementation would use a - // delta-list, a heap, or timing wheels, etc. -{ -public: - // = Initialization and termination methods. - ACE_Timer_Queue (void); - // Default constructor. - - virtual ~ACE_Timer_Queue (void); - - int is_empty (void) const; - // True if queue is empty, else false. - - const ACE_Time_Value &earliest_time (void) const; - // Returns the time of the earlier node in the Timer_Queue. - - // = Set/get the timer skew for the Timer_Queue. - void timer_skew (const ACE_Time_Value &skew); - const ACE_Time_Value &timer_skew (void) const; - - virtual int schedule (ACE_Event_Handler *event_handler, - const void *arg, - const ACE_Time_Value &delay, - const ACE_Time_Value &interval = ACE_Time_Value::zero); - // Schedule an <event_handler> that will expire after <delay> amount - // of time. If it expires then <arg> is passed in as the value to - // the <event_handler>'s <handle_timeout> callback method. If - // <interval> is != to <ACE_Time_Value::zero> then it is used to - // reschedule the <event_handler> automatically. This method - // returns a timer handle that uniquely identifies the - // <event_handler> in an internal list. This timer handle can be - // used to cancel an <event_handler> 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. - - virtual int cancel (ACE_Event_Handler *event_handler); - // Cancel all <event_handlers> that match the address of - // <event_handler>. - - virtual int cancel (int timer_id, const void **arg = 0); - // Cancel the single <ACE_Event_Handler> that matches the <timer_id> - // value (which was returned from the <schedule> method). If arg is - // non-NULL then it will be set to point to the ``magic cookie'' - // argument passed in when the <Event_Handler> was registered. This - // makes it possible to free up the memory and avoid memory leaks. - - virtual int expire (void); - // Expires all pending timers whose values are <= - // ACE_OS::gettimeofday. Also accounts for timer_skew_. - - virtual int expire (const ACE_Time_Value ¤t_time); - // Run the <handle_timeout> method for all Timers whose values are - // <= <cur_time>. - - virtual ACE_Time_Value *calculate_timeout (ACE_Time_Value *max); - // Determine the next event to timeout. Returns <max> if there are - // no pending timers or if all pending timers are longer than max. - - void dump (void) const; - // Dump the state of an object. - - ACE_ALLOC_HOOK_DECLARE; - // Declare the dynamic allocation hooks. - -private: - ACE_Time_Value timeout_; - // Returned by calculate_timeout. - - virtual void reschedule (ACE_Timer_Node *); - // Reschedule a "period" Timer_Node. - - ACE_Timer_Node *head_; - // Pointer to linked list of ACE_Timer_Handles. - - int timer_id_; - // Keeps track of the timer id that uniquely identifies each timer. - // This id can be used to cancel a timer via the <cancel (int)> - // method. - - ACE_Time_Value timer_skew_; - // Adjusts for timer skew in various clocks. - -#if defined (ACE_MT_SAFE) - ACE_Recursive_Thread_Mutex lock_; - // Synchronization variable for the MT_SAFE ACE_Reactor -#endif /* ACE_MT_SAFE */ -}; - -#if defined (__ACE_INLINE__) -#include "ace/Timer_Queue.i" -#endif /* __ACE_INLINE__ */ - -#endif /* ACE_TIMER_QUEUE_H */ |