diff options
Diffstat (limited to 'trunk/ACE/apps/JAWS3/jaws3/Task_Timer.h')
-rw-r--r-- | trunk/ACE/apps/JAWS3/jaws3/Task_Timer.h | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/trunk/ACE/apps/JAWS3/jaws3/Task_Timer.h b/trunk/ACE/apps/JAWS3/jaws3/Task_Timer.h new file mode 100644 index 00000000000..a31781a922a --- /dev/null +++ b/trunk/ACE/apps/JAWS3/jaws3/Task_Timer.h @@ -0,0 +1,56 @@ +/* -*- c++ -*- */ +// $Id$ + +#ifndef JAWS_TASK_TIMER_H +#define JAWS_TASK_TIMER_H + +#include "ace/Singleton.h" +#include "ace/Timer_Wheel.h" +#include "ace/Timer_Queue_Adapters.h" + +#include "jaws3/Export.h" +#include "jaws3/Timer.h" + +class JAWS_Task_Timer; + +class JAWS_Export JAWS_Task_Timer : public JAWS_Timer_Impl +{ +public: + + JAWS_Task_Timer (void); + + static JAWS_Timer_Impl * instance (void) + { + return ACE_Singleton<JAWS_Task_Timer, ACE_SYNCH_MUTEX>::instance (); + } + + void schedule_timer ( long *timer_id + , const ACE_Time_Value &delta + , JAWS_Event_Completer *completer + , void *act = 0 + ); + + void schedule_absolute_timer ( long *timer_id + , const ACE_Time_Value &tv + , JAWS_Event_Completer *completer + , void *act = 0 + ); + + void schedule_interval_timer ( long *timer_id + , const ACE_Time_Value &interval + , JAWS_Event_Completer *completer + , void *act = 0 + ); + + void cancel_timer (long timer_id); + // NOTE: Cancelling the timer causes handle_close to be called, but + // not handle_timeout (of couse, I mean in the ACE_Event_Handler that + // is being used as the timer helper). + +private: + + ACE_Thread_Timer_Queue_Adapter<ACE_Timer_Wheel> timer_queue_; + +}; + +#endif /* JAWS_TASK_TIMER_H */ |