timeouts.cpp

来自「ace开发环境 用来开发网络程序 其运用了设计模式、多平台、C++等多种知识」· C++ 代码 · 共 84 行

CPP
84
字号
// $Id: Timeouts.cpp 56422 2004-03-14 15:42:14Z jwillemsen $//// ============================================================================//// = LIBRARY//    examples//// = FILENAME//    Timeouts.cpp//// = DESCRIPTION////    This example application shows how to write Reactor event//    loops that handle events for some fixed amount of time.////    Run this example (without arguments) to see the timers//    expire. The order should be:////    foo, bar, foo, bar, foo, foo, bar, foo, bar, foo//// = AUTHOR//    Tim Harrison//    Irfan Pyarali//// ============================================================================#include "ace/Reactor.h"#include "ace/Service_Config.h"#include "ace/OS_main.h"ACE_RCSID(WFMO_Reactor, Timeouts, "$Id: Timeouts.cpp 56422 2004-03-14 15:42:14Z jwillemsen $")class Timeout_Handler : public ACE_Event_Handler// = TITLE//     Generic timeout handler.{public:  Timeout_Handler (void)    : count_ (0) {}  virtual int handle_timeout (const ACE_Time_Value &tv,                              const void *arg)    // Print out when timeouts occur.    {      ACE_UNUSED_ARG(tv);      ACE_DEBUG ((LM_DEBUG,                  "%d timeout occurred for %s.\n",                  ++count_,                  (char *) arg));      return 0;    }private:  int count_;};intACE_TMAIN (int, ACE_TCHAR *[]){  Timeout_Handler handler;  // Register a 3 second timer.  ACE_Time_Value bar_tv (3);  ACE_Reactor::instance ()->schedule_timer (&handler,                                            (void *) "Bar",                                            bar_tv,                                            bar_tv);  // Register a 2 second timer.  ACE_Time_Value foo_tv (2);  ACE_Reactor::instance ()->schedule_timer (&handler,                                            (void *) "Foo",                                            foo_tv,                                            foo_tv);  // Handle events for 12 seconds.  ACE_Time_Value run_time (12);  if (ACE_Reactor::run_event_loop(run_time) == -1)    ACE_ERROR_RETURN ((LM_ERROR, "%p.\n", "main"), -1);  ACE_Reactor::instance ()->cancel_timer(&handler);  return 0;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?