zoukankan      html  css  js  c++  java
  • 11 AlarmHandler定时处理类——Live555源码阅读(一)基本组件类

    这是Live555源码阅读的第一部分,包括了时间类,延时队列类,处理程序描述类,哈希表类这四个大类。

    本文由乌合之众 lym瞎编,欢迎转载 http://www.cnblogs.com/oloroso/
    本文由乌合之众 lym瞎编,欢迎转载 my.oschina.net/oloroso

    AlarmHandler定时处理类

    这个类定义在 live555sourcecontrolBasicUsageEnvironmentBasicTaskScheduler0.cpp文件中。

    AlarmHandler继承自DelayQueueEntry 其是用来作为DelayQueued 的节点的。其和HanlerDescriptor有点像。其有在DelayQueueEntry的基础上又增加了两个数据成员,一个函数指针TaskFunc* fProc和一个数据地址void* fClientData(这个在使用的时候会是调用函数的对象。即函数指针是对象的成员函数地址,数据地址就是对象的地址)。回想一下DelayQueueEntry是链表的节点,有前驱和后继指针,延时剩余时间,token标识。

    ////////// A subclass of DelayQueueEntry,
    //////////     used to implement BasicTaskScheduler0::scheduleDelayedTask()
    class AlarmHandler: public DelayQueueEntry {
    public:
      AlarmHandler(TaskFunc* proc, void* clientData, DelayInterval timeToDelay)
        : DelayQueueEntry(timeToDelay), fProc(proc), fClientData(clientData) {
      }
    
    private: // redefined virtual functions
      virtual void handleTimeout() {
        (*fProc)(fClientData);
        DelayQueueEntry::handleTimeout();
      }
    
    private:
      TaskFunc* fProc;
      void* fClientData;
    };
    
  • 相关阅读:
    括号匹配
    超级阶梯问题
    进制问题
    rwkj 1423
    next_permutation
    rwkj 1420
    uva-10392-因数分解
    uva-10305-水题-拓扑排序
    uva-10194-排序
    uva-10152-乌龟排序
  • 原文地址:https://www.cnblogs.com/oloroso/p/4596870.html
Copyright © 2011-2022 走看看