blob: 5ea0cb0c540744fbcf9c5df4fd5c2d81480d0f11 [file] [log] [blame]
#pragma once
#include <chrono> // NOLINT
namespace managedStore {
inline std::chrono::steady_clock::time_point clockNow() {
return std::chrono::steady_clock::now();
}
inline std::chrono::steady_clock::duration clockSince(
const std::chrono::steady_clock::time_point& tp,
const std::chrono::steady_clock::time_point& now = clockNow()) {
return (now - tp);
}
inline int64_t clockSinceMilliseconds(
const std::chrono::steady_clock::time_point& tp,
const std::chrono::steady_clock::time_point& now = clockNow()) {
auto since = std::chrono::duration_cast<std::chrono::milliseconds>(now - tp);
return since.count();
}
inline int64_t clockSecondsSince(
const std::chrono::steady_clock::time_point& tp,
const std::chrono::steady_clock::time_point& now = clockNow()) {
auto since = std::chrono::duration_cast<std::chrono::seconds>(now - tp);
return since.count();
}
inline int64_t clockMillisecondsEpoch(
const std::chrono::steady_clock::time_point& tp) {
auto since = std::chrono::duration_cast<std::chrono::milliseconds>(
tp.time_since_epoch());
return since.count();
}
inline int64_t clockSecondsEpoch(
const std::chrono::steady_clock::time_point& tp) {
auto since =
std::chrono::duration_cast<std::chrono::seconds>(tp.time_since_epoch());
return since.count();
}
inline int64_t clockDurationMilliseconds(
const std::chrono::steady_clock::duration& dt) {
auto since = std::chrono::duration_cast<std::chrono::milliseconds>(dt);
return since.count();
}
}; // namespace managedStore