blob: 8e16625c65c136e9161e20c940f3a4e32a6d3da8 [file] [log] [blame]
#pragma once
#include <chrono>
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