⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 task_timer.cpp

📁 ACE自适配通信环境(ADAPTIVE Communication Environment)是可以自由使用、开放源码的面向对象(OO)框架(Framework)
💻 CPP
字号:
// Task_Timer.cpp,v 1.3 2004/09/01 21:19:19 shuston Exp#ifndef JAWS_BUILD_DLL#define JAWS_BUILD_DLL#endif#include "ace/OS_NS_sys_time.h"#include "jaws3/Task_Timer.h"#include "jaws3/Timer_Helpers.h"JAWS_Task_Timer::JAWS_Task_Timer (void){  this->timer_queue_.activate ();}void JAWS_Task_Timer::schedule_timer ( long *timer_id                                , const ACE_Time_Value &delta                                , JAWS_Event_Completer *completer                                , void *act                                ){  JAWS_Timer_EH *eh = new JAWS_Timer_EH (completer, act);  if (eh == 0      || (*timer_id =            this->timer_queue_.schedule ( eh                                        , 0                                        , delta + ACE_OS::gettimeofday ()))         == -1)    {      JAWS_Event_Result timer_result ( 0                                     , JAWS_Event_Result::JE_ERROR                                     , JAWS_Event_Result::JE_TIMER_FAIL                                     );      if (completer)        completer->timer_complete (timer_result, act);      delete eh;    }}void JAWS_Task_Timer::schedule_absolute_timer ( long *timer_id                                         , const ACE_Time_Value &tv                                         , JAWS_Event_Completer *completer                                         , void *act                                         ){  JAWS_Timer_EH *eh = new JAWS_Timer_EH (completer, act);  if (eh == 0      || (*timer_id = this->timer_queue_.schedule (eh, 0, tv)) == -1)    {      JAWS_Event_Result timer_result ( 0                                     , JAWS_Event_Result::JE_ERROR                                     , JAWS_Event_Result::JE_TIMER_FAIL                                     );      if (completer)        completer->timer_complete (timer_result, act);      delete eh;    }}voidJAWS_Task_Timer::schedule_interval_timer ( long *timer_id                                         , const ACE_Time_Value &interval                                         , JAWS_Event_Completer *completer                                         , void *act                                         ){  JAWS_Timer_EH *eh = new JAWS_Timer_EH (completer, act);  if (eh == 0      || (*timer_id =            this->timer_queue_.schedule ( eh                                        , 0                                        , interval + ACE_OS::gettimeofday ()                                        , interval                                        ))          == -1)    {      JAWS_Event_Result timer_result ( 0                                     , JAWS_Event_Result::JE_ERROR                                     , JAWS_Event_Result::JE_TIMER_FAIL                                     );      if (completer)        completer->timer_complete (timer_result, act);      delete eh;    }}voidJAWS_Task_Timer::cancel_timer (long timer_id){  this->timer_queue_.cancel (timer_id);}

⌨️ 快捷键说明

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