1. 类说明
1. 功能
- 时间戳的一些功能,获得当前时间等
2. 继承
-
muduo::copyable
- 这是个空类,就是为了声明 继承这个类的子类 是可复制的类.
- 但是没什么限制,只是声明一下.让使用的人却可以很直白的知道子类是否可以拷贝。这种类称为标签类
-
boost::equality_comparable
- 类只要实现对operator==就会自动实现!=
-
boost::less_than_comparable
- 继承使用此类可以只重写operator< ,剩下的<= ,>会自动生成
2. 成员变量说明
- microSecondsSinceEpoch_
- 表示从1970.1.1到现在一共有多少微秒
- kMicroSecondsPerSecond
- 表示每秒有多少微秒 1s=10^6微秒
- 静态常量,此值不会修改
3. 成员函数说明
1. 非静态
-
两个构造函数很简单
- explicit是阻止隐式转换,什么是隐式转换呢:我的理解是当构造函数参数只有一个时,可以直接使用=,用该参数类型构造此对象,具体自己搜吧.
- 构造函数的参数只能是微秒数
-
swap()
- 调用std的swap,简单
-
toString()
- 将微秒转换成秒,返回字符串
- 注意toString()不代表重写<<
-
toFormattedString()
- 根据秒数获得tm结构体,包含年月日时分秒并返回格式化字符串
- gmtime_r()是线程安全的
-
valid()
- 看当前微秒数是否大于0,即当前对象是否使用吧
-
microSecondsSinceEpoch()
- 返回微秒数.
-
secondsSinceEpoch()
- 返回秒数
-
static_assert(bool,string)
- 编译期断言
2. 静态
-
now()
- 利用timeval结构体,获得当前秒数,从而获得微秒数并返回Timestamp类型
-
invalid()
- 返回一个微秒数为0的Timestamp对象
-
fromUnixTime(time_t)
- 返回一个指定微秒数的Timestamp对象
3. 内联
- operator<(Timestamp,Timestamp)
- 重载<运算符
- operator==(Timestamp,Timestamp)
- 重载==运算符
- timeDifference(Timestamp,Timestamp)
- 返回两个Timestamp对象的差,单位为秒
- addTime(Timestamp,double)
- 给一个Timestamp对象加double微秒