• TimeVal类——Live555源码阅读(一)基本组件类


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

    TimeVal类

    TimeVal类定义在live555sourcecontrolBasicUsageEnvironmentincludeDelayQueue.hh文件中。其实质上是对struct timeval的封装。
    先来看看TimeVal类的组成。
    其只有一个数据成员,就是一个timeval的结构体fTv。TimeVal类封装的所有方法都是对其的操作。
    TimeVal类的uml图
    TimeVal类的uml图

    struct timeval结构体

    再来看看这个 struct timeval结构体的定义

    struct timeval {
            long    tv_sec;         /* seconds 秒*/
            long    tv_usec;        /* and microseconds 微秒*/
    };
    

    下面是TimeVal类的定义。

    TimeVal类的定义很简单,就不详述了。TimeVal类还有两个派生类。在另外的文章中来说。

    class Timeval {
    public:
      time_base_seconds seconds() const {
        return fTv.tv_sec;
      }
      time_base_seconds seconds() {
        return fTv.tv_sec;
      }
      time_base_seconds useconds() const {
        return fTv.tv_usec;
      }
      time_base_seconds useconds() {
        return fTv.tv_usec;
      }
    
      int operator>=(Timeval const& arg2) const;
      int operator<=(Timeval const& arg2) const {
        return arg2 >= *this;
      }
      int operator<(Timeval const& arg2) const {
        return !(*this >= arg2);
      }
      int operator>(Timeval const& arg2) const {
        return arg2 < *this;
      }
      int operator==(Timeval const& arg2) const {
        return *this >= arg2 && arg2 >= *this;
      }
      int operator!=(Timeval const& arg2) const {
        return !(*this == arg2);
      }
    
      void operator+=(class DelayInterval const& arg2);
      void operator-=(class DelayInterval const& arg2);
      // returns ZERO iff arg2 >= arg1
    
    protected:
      Timeval(time_base_seconds seconds, time_base_seconds useconds) {
        fTv.tv_sec = seconds; fTv.tv_usec = useconds;
      }
    
    private:
      time_base_seconds& secs() {
        return (time_base_seconds&)fTv.tv_sec;
      }
      time_base_seconds& usecs() {
        return (time_base_seconds&)fTv.tv_usec;
      }
    
      struct timeval fTv;
    };
    
  • 相关阅读:
    2014年第五届蓝桥杯省赛试题(JavaA组)
    2013年第四届蓝桥杯省赛试题(JavaA组)
    2013蓝桥杯JavaA组T10 大臣的旅费(树的直径)
    CodeForces
    天梯赛 L2-006 树的遍历(序列建树)
    PAT甲 1095 解码PAT准考证/1153 Decode Registration Card of PAT(优化技巧)
    2015年第六届蓝桥杯省赛T10 生命之树(树形dp+Java模拟vector)
    ZOJ
    SPOJ
    HDU
  • 原文地址:https://www.cnblogs.com/oloroso/p/4596812.html
Copyright © 2020-2023  润新知