summaryrefslogtreecommitdiff
path: root/trunk/ACE/apps/JAWS3/jaws3/Task_Timer.h
diff options
context:
space:
mode:
Diffstat (limited to 'trunk/ACE/apps/JAWS3/jaws3/Task_Timer.h')
-rw-r--r--trunk/ACE/apps/JAWS3/jaws3/Task_Timer.h56
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 */