5#include "libxr_assert.hpp"
6#include "libxr_def.hpp"
18inline uint64_t libxr_timebase_max_valid_us = UINT64_MAX;
30inline uint32_t libxr_timebase_max_valid_ms = UINT32_MAX;
56 operator uint64_t()
const {
return microsecond_; }
74 operator uint64_t()
const {
return diff_; }
82 return static_cast<double>(diff_) / 1000000.0;
91 return static_cast<float>(diff_) / 1000000.0f;
123 uint64_t elapsed = 0;
125 if (microsecond_ >= old_timestamp.microsecond_)
127 elapsed = microsecond_ - old_timestamp.microsecond_;
131 elapsed = microsecond_ + (libxr_timebase_max_valid_us - old_timestamp.microsecond_) +
135 ASSERT(elapsed <= libxr_timebase_max_valid_us);
148 uint64_t microsecond_ = 0;
172 operator uint32_t()
const {
return millisecond_; }
190 operator uint32_t()
const {
return diff_; }
198 return static_cast<double>(diff_) / 1000.0;
207 return static_cast<float>(diff_) / 1000.0f;
222 return static_cast<uint64_t
>(diff_) * 1000u;
242 uint32_t elapsed = 0;
244 if (millisecond_ >= old_timestamp.millisecond_)
246 elapsed = millisecond_ - old_timestamp.millisecond_;
251 millisecond_ + (libxr_timebase_max_valid_ms - old_timestamp.millisecond_) + 1U;
254 ASSERT(elapsed <= libxr_timebase_max_valid_ms);
260 uint32_t millisecond_ = 0;
微秒时长 / Duration in microseconds
uint64_t ToMicrosecond() const
转换为微秒 / Convert the duration to microseconds
float ToSecondf() const
转换为单精度秒 / Convert the duration to seconds in single precision
double ToSecond() const
转换为秒 / Convert the duration to seconds
Duration(uint64_t diff)
从微秒差值构造时长 / Construct a duration from a microsecond delta
uint32_t ToMillisecond() const
转换为毫秒 / Convert the duration to milliseconds
微秒时间戳 / Microsecond timestamp
MicrosecondTimestamp()=default
创建零值微秒时间戳 / Construct a zero microsecond timestamp
Duration operator-(const MicrosecondTimestamp &old_timestamp) const
计算时间差,支持时间基准回绕 / Compute elapsed time with timebase wraparound
MicrosecondTimestamp(uint64_t microsecond)
从微秒计数构造时间戳 / Construct a timestamp from microsecond ticks
MicrosecondTimestamp & operator=(const MicrosecondTimestamp &other)=default
复制赋值 / Copy-assign from another timestamp
毫秒时长 / Duration in milliseconds
uint64_t ToMicrosecond() const
转换为微秒 / Convert the duration to microseconds
Duration(uint32_t diff)
从毫秒差值构造时长 / Construct a duration from a millisecond delta
float ToSecondf() const
转换为单精度秒 / Convert the duration to seconds in single precision
uint32_t ToMillisecond() const
转换为毫秒 / Convert the duration to milliseconds
double ToSecond() const
转换为秒 / Convert the duration to seconds
毫秒时间戳 / Millisecond timestamp
MillisecondTimestamp()=default
创建零值毫秒时间戳 / Construct a zero millisecond timestamp
MillisecondTimestamp(uint32_t millisecond)
从毫秒计数构造时间戳 / Construct a timestamp from millisecond ticks
Duration operator-(const MillisecondTimestamp &old_timestamp) const
计算时间差,支持时间基准回绕 / Compute elapsed time with timebase wraparound