From cd65a43855f33555eca5f3e3ad5d37661253209f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Konstantin=20K=C3=A4fer?= Date: Fri, 13 May 2016 15:41:22 +0200 Subject: [core] move from microsecond precision timestamp to integer second precision --- include/mbgl/storage/resource.hpp | 16 ++++++++++++---- include/mbgl/storage/response.hpp | 4 ++-- include/mbgl/util/chrono.hpp | 15 +++++++++------ include/mbgl/util/constants.hpp | 2 +- 4 files changed, 24 insertions(+), 13 deletions(-) (limited to 'include/mbgl') diff --git a/include/mbgl/storage/resource.hpp b/include/mbgl/storage/resource.hpp index 296dff7f3d..01c2ee4e39 100644 --- a/include/mbgl/storage/resource.hpp +++ b/include/mbgl/storage/resource.hpp @@ -29,8 +29,14 @@ public: int8_t z; }; - Resource(Kind kind_, const std::string& url_, optional tileData_ = {}) + enum Necessity : bool { + Optional = false, + Required = true, + }; + + Resource(Kind kind_, const std::string& url_, optional tileData_ = {}, Necessity necessity_ = Required) : kind(kind_), + necessity(necessity_), url(url_), tileData(std::move(tileData_)) { } @@ -41,7 +47,8 @@ public: float pixelRatio, int32_t x, int32_t y, - int8_t z); + int8_t z, + Necessity = Required); static Resource glyphs(const std::string& urlTemplate, const FontStack& fontStack, const std::pair& glyphRange); @@ -49,13 +56,14 @@ public: static Resource spriteJSON(const std::string& base, float pixelRatio); Kind kind; + Necessity necessity; std::string url; // Includes auxiliary data if this is a tile request. optional tileData; - optional priorModified = {}; - optional priorExpires = {}; + optional priorModified = {}; + optional priorExpires = {}; optional priorEtag = {}; }; diff --git a/include/mbgl/storage/response.hpp b/include/mbgl/storage/response.hpp index bec1efe6b1..f140e42b02 100644 --- a/include/mbgl/storage/response.hpp +++ b/include/mbgl/storage/response.hpp @@ -30,8 +30,8 @@ public: // The actual data of the response. Present only for non-error, non-notModified responses. std::shared_ptr data; - optional modified; - optional expires; + optional modified; + optional expires; optional etag; }; diff --git a/include/mbgl/util/chrono.hpp b/include/mbgl/util/chrono.hpp index 8e0da1419a..81f05d610d 100644 --- a/include/mbgl/util/chrono.hpp +++ b/include/mbgl/util/chrono.hpp @@ -7,7 +7,6 @@ namespace mbgl { using Clock = std::chrono::steady_clock; -using SystemClock = std::chrono::system_clock; using Seconds = std::chrono::seconds; using Milliseconds = std::chrono::milliseconds; @@ -15,18 +14,22 @@ using Milliseconds = std::chrono::milliseconds; using TimePoint = Clock::time_point; using Duration = Clock::duration; -using SystemTimePoint = SystemClock::time_point; -using SystemDuration = SystemClock::duration; +// Used to measure second-precision times, such as times gathered from HTTP responses. +using Timestamp = std::chrono::time_point; namespace util { +inline Timestamp now() { + return std::chrono::time_point_cast(std::chrono::system_clock::now()); +} + // Returns the RFC1123 formatted date. E.g. "Tue, 04 Nov 2014 02:13:24 GMT" -std::string rfc1123(SystemTimePoint); +std::string rfc1123(Timestamp); // YYYY-mm-dd HH:MM:SS e.g. "2015-11-26 16:11:23" -std::string iso8601(SystemTimePoint); +std::string iso8601(Timestamp); -SystemTimePoint parseTimePoint(const char *); +Timestamp parseTimestamp(const char *); // C++17 polyfill template