1
#include <QCoreApplication>
5
void resetStartTime(std::chrono::nanoseconds timestamp);
6
std::chrono::nanoseconds getStartTime(std::chrono::nanoseconds timestamp, bool allowReset = true);
12
T compressTimestamp(std::chrono::nanoseconds timestamp)
14
std::chrono::nanoseconds startTime = getStartTime(timestamp);
15
std::chrono::nanoseconds result = timestamp - startTime;
17
if (std::numeric_limits<std::chrono::nanoseconds::rep>::max() > std::numeric_limits<T>::max() &&
18
result > std::chrono::nanoseconds(std::numeric_limits<T>::max())) {
19
// we've overflowed the boundaries of the millisecond type.
20
resetStartTime(timestamp);
24
return result.count();
28
std::chrono::nanoseconds uncompressTimestamp(T timestamp)
30
auto tsNS = std::chrono::nanoseconds(timestamp);
31
return getStartTime(tsNS, false) + std::chrono::nanoseconds(tsNS);
b'\\ No newline at end of file'