| #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 |