utils: Clean up duration helpers

This commit is contained in:
Dirk-Jan C. Binnema 2020-06-27 11:51:34 +03:00
parent 63a8c72b74
commit 6061898c2b
1 changed files with 10 additions and 7 deletions

View File

@ -1,5 +1,5 @@
/*
** Copyright (C) 2017 Dirk-Jan C. Binnema <djcb@djcbsoftware.nl>
** Copyright (C) 2020 Dirk-Jan C. Binnema <djcb@djcbsoftware.nl>
**
** This library is free software; you can redistribute it and/or
** modify it under the terms of the GNU Lesser General Public License
@ -119,15 +119,18 @@ std::string date_to_time_t_string (const std::string& date, bool first);
*/
std::string date_to_time_t_string (int64_t t);
using SteadyClock = std::chrono::steady_clock;
using Clock = std::chrono::steady_clock;
using Duration = Clock::duration;
static inline int64_t to_ms (SteadyClock::duration dur) {
return std::chrono::duration_cast<std::chrono::milliseconds>(dur).count();
}
static inline int64_t to_us (SteadyClock::duration dur) {
return std::chrono::duration_cast<std::chrono::microseconds>(dur).count();
template <typename Unit> constexpr int64_t to_unit (Duration d) {
using namespace std::chrono;
return duration_cast<Unit>(d).count();
}
constexpr int64_t to_s (Duration d) { return to_unit<std::chrono::seconds>(d); }
constexpr int64_t to_ms (Duration d) { return to_unit<std::chrono::milliseconds>(d); }
constexpr int64_t to_us (Duration d) { return to_unit<std::chrono::microseconds>(d); }
/**
* Convert a size string to a size in bytes
*