设为首页 加入收藏

TOP

基于ACE的定时器模板类(一)
2014-07-19 23:03:58 来源: 作者: 【 】 浏览:133
Tags:基于 ACE 定时器 模板

  基于ACE的定时器模板类

  1 ACETimerClockGenerator.h

  2 ClockGeneratorIF.h

  3 在类中定义一个结构体,在结构体中定义一个函数。

  4 在结构体中定义一个函数,这样做有什么好呢

  5

  6 TimerHandler.h

  7 用了模板的方法去构造定时器类。有助于底层调用上层。在构造的时候就初始化一个类中最大的定时器个数,及模板类(也就是parent)。

  8 TimerHandler(T *parent, int numTimers) : timers(numTimers, -1)

  9 { //初始化向量,赋值给私有的成员变量。

  10 this->parent = parent;

  11 this->numTimers = numTimers;

  12 }

  13

  14

  15 用到了STL向量:

  16 std::vector timers;

  17

  18 ACE中

  19 1. startTimer(int timerType, const ACE_Time_Value &delay)

  20 ACE_Reactor::instance()->schedule_timer()

  21 2. stopTimer(int timerType)

  22 ACE_Reactor::instance()->cancel_timer(timers[timerType]);

  23 3. showTimers(bool showAll)

  24 ACE_Timer_Queue *reactor_timerQ = ACE_Reactor::instance()->timer_queue();

  25 ACE_Timer_Queue_Iterator &iter = reactor_timerQ->iter();

  26

  27

  28

  29

  30

  31 #ifndef _TimerHandler_h

  32 #define _TimerHandler_h

  33

  34 #include

  35 #include "ace/Timer_Queue.h"

  36 #include "ace/Date_Time.h"

  37 #include "ace/Event_Handler.h"

  38 #include "ace/Reactor.h"

  39

  40 #include "TraceUtils.h"

  41

  42 template

  43 class TimerHandler : public ACE_Event_Handler

  44 {

  45 std::vector timers;

  46 T *parent;

  47 int numTimers;

  48 public:

  49 TimerHandler(T *parent, int numTimers) : timers(numTimers, -1)

  50 {

  51 this->parent = parent;

  52 this->numTimers = numTimers;

  53 }

  54

  55 ~TimerHandler()

  56 {

  57 for (unsigned int i = 0; i < timers.size(); i++)

  58 {

  59 if (timers[i] != -1)

  60 ACE_Reactor::instance()->cancel_timer(timers[i]);

  61 }

  62 }

  63

   

首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C++ 类模板和模板类的深入解.. 下一篇STL中map与hash_map的比较

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·CPython是什么?PyPy (2025-12-26 06:50:09)
·Python|如何安装seab (2025-12-26 06:50:06)
·python要学习数据分 (2025-12-26 06:50:03)
·每日一道面试题-多线 (2025-12-26 06:20:17)
·java项目中哪些地方 (2025-12-26 06:20:14)