文档章节

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

乌合之众
 乌合之众
发布于 2015/06/04 09:14
字数 380
阅读 52
收藏 0

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

#时间相关类 [TOC]

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

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;
};

© 著作权归作者所有

乌合之众
粉丝 13
博文 90
码字总数 79438
作品 1
海淀
程序员
私信 提问
taobao-pamirs-schedule-2.0源码分析——类设计

使用方法 首先学习一个开源项目,一定要先学习该开源项目的使用方法。该项目的使用方法本文不再详述。请参考博文: http://pinsir.iteye.com/blog/882275 http://pinsir.iteye.com/blog/882...

杨武兵
2016/03/02
956
8
南漂一卒/EasyWebUI

EasyWebUI 【概述】 EasyWebUI 是一个普适而轻巧的 HTML/CSS 开发框架 —— 支持 IE 8+ 的 CSS 2/3 国际标准及主流厂商的专用属性(不使用 IE CSS Hack),通用于桌面端、移动端的各种网页、...

南漂一卒
2014/12/09
0
0
基于Live555实现RtspServer及高清高码率视频传输优化

基于Live555实现RtspServer及高清高码率视频传输优化 最近做了一些pc和嵌入式平台的RTSP服务器项目,大多数的要求是简单但是功能全面,并且性能还要强劲。综合考虑后,基本都是在基于live555...

haibindev
2018/08/20
0
0