From 31fd2822f516337f084f85db7e369d0633113b73 Mon Sep 17 00:00:00 2001 From: Bruno de Oliveira Abinader Date: Wed, 25 Nov 2015 13:30:32 +0200 Subject: [core] Replace time_t with std::chrono::seconds Added aliases for std::chrono typedefs (eg. 'Seconds' for std::chrono::seconds). These aliases are used together with templated helper functions to replace time_t with std::chrono::seconds for most cases, in particular for 'modified' and 'expires' values in Response. --- include/mbgl/util/chrono.hpp | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'include/mbgl/util/chrono.hpp') diff --git a/include/mbgl/util/chrono.hpp b/include/mbgl/util/chrono.hpp index df8c5e6234..9c99c7bcdf 100644 --- a/include/mbgl/util/chrono.hpp +++ b/include/mbgl/util/chrono.hpp @@ -8,9 +8,40 @@ namespace mbgl { using Clock = std::chrono::steady_clock; using SystemClock = std::chrono::system_clock; +using Seconds = std::chrono::seconds; +using Milliseconds = std::chrono::milliseconds; + using TimePoint = Clock::time_point; using Duration = Clock::duration; +using SystemTimePoint = SystemClock::time_point; +using SystemDuration = SystemClock::duration; + +template +_Duration toDuration(std::chrono::time_point<_Clock, _Duration> time_point) { + return time_point.time_since_epoch(); +} + +template +Seconds asSeconds(_Duration duration) { + return std::chrono::duration_cast(duration); +} + +template +Seconds toSeconds(std::chrono::time_point<_Clock, _Duration> time_point) { + return asSeconds(toDuration<_Clock, _Duration>(time_point)); +} + +template +Milliseconds asMilliseconds(_Duration duration) { + return std::chrono::duration_cast(duration); +} + +template +Milliseconds toMilliseconds(std::chrono::time_point<_Clock, _Duration> time_point) { + return asMilliseconds(toDuration<_Clock, _Duration>(time_point)); +} + } #endif -- cgit v1.2.1