定时器的使用

原文地址:http://blog.163.com/xiaohuan0614@126/blog/static/4808431320124319380547/

在ns中自定义一个定时器的方法

过程应该是下面的6步,但是由于是实现了好多天之后才写的总结,所以不保证不缺少步骤

(1)       定义一个定时器类,定时器类重载

class CClearRouteTimer : public Handler {

public:

        CClearRouteTimer(CAODV* a) : agent(a) {}

        void    handle(Event*);

private:

        CAODV    *agent;

   Event        intr;

};

(2)       定时事件执行

void

CClearRouteTimer::handle(Event*) {

   agent->clearRoute();

   #define ClearInterval 5

   Scheduler::instance().schedule(this, &intr, ClearInterval);

}

(3)       在要使用定期器类(CClearRouteTimer)的类(CAODV)中声明定时器类为该类的友元

class CAODV: public Tap, public Agent {

  friend class caodv_rt_entry;

          friend class CClearRouteTimer;//add

(4)       在类(CAODV)中定义定时器变量

CClearRouteTimer crtimer;//add

(5)       在类(CAODV)的构造函数中初始化定时器变量

CAODV::CAODV(nsaddr_t id) : Agent(PT_CAODV),

                       crtimer(this),btimer(this), htimer(this), ntimer(this),

                       rtimer(this), lrtimer(this), rqueue() {

(6)       定时器开启

在command函数中添加

if(strncasecmp(argv[1], "start", 2) == 0) {

      btimer.handle((Event*) 0);

                      crtimer.handle((Event *)0);

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值