summaryrefslogtreecommitdiff
path: root/examples/APG/Timers/CB.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'examples/APG/Timers/CB.cpp')
-rw-r--r--examples/APG/Timers/CB.cpp67
1 files changed, 67 insertions, 0 deletions
diff --git a/examples/APG/Timers/CB.cpp b/examples/APG/Timers/CB.cpp
new file mode 100644
index 00000000000..c8c41687698
--- /dev/null
+++ b/examples/APG/Timers/CB.cpp
@@ -0,0 +1,67 @@
+// $Id$
+
+#include "ace/Log_Msg.h"
+#include "CB.h"
+#include "TimerDispatcher.h"
+
+CB::CB () : count_(0)
+{
+ ACE_TRACE (ACE_TEXT ("CB::CB"));
+}
+
+// Listing 1 code/ch20
+int CB::handle_timeout (const ACE_Time_Value &,
+ const void *arg)
+{
+ ACE_TRACE (ACE_TEXT ("CB::handle_timeout"));
+
+ const int *val = ACE_static_cast (const int*, arg);
+ ACE_ASSERT ((*val) == timerID_);
+
+ ACE_UNUSED_ARG (val);
+
+ if (count_ == 5)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("Reseting interval for timer %d\n"),
+ timerID_));
+
+ // New interval is 10 ms.
+ ACE_Time_Value interval (0L, 1000L);
+ ACE_ASSERT (Timer::instance ()->reset_interval
+ (timerID_, interval) != -1);
+
+ ACE_UNUSED_ARG (interval);
+ }
+
+ if (count_++ == 10)
+ {
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Canceling %d\n"),
+ timerID_));
+ ACE_ASSERT ((Timer::instance ()->cancel (this)) != 0);
+ }
+
+ return 0;
+}
+// Listing 1
+
+void
+CB::setID (long timerID)
+{
+ ACE_TRACE (ACE_TEXT ("CB::setID"));
+ timerID_ = timerID;
+}
+
+long
+CB::getID (void)
+{
+ ACE_TRACE (ACE_TEXT ("CB::getID"));
+ return timerID_;
+}
+
+int
+CB::handle_close (ACE_HANDLE, ACE_Reactor_Mask)
+{
+ ACE_TRACE (ACE_TEXT ("CB::handle_close"));
+ return 0;
+}