From 627d135bf5108f514161e1d37acf6b97c4b3c4a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roman=20Smr=C5=BE?= Date: Wed, 18 Mar 2020 22:53:40 +0100 Subject: Move UUID and time definitions to separate modules --- src/storage.cpp | 52 ---------------------------------------------------- 1 file changed, 52 deletions(-) (limited to 'src/storage.cpp') diff --git a/src/storage.cpp b/src/storage.cpp index 49bac54..81a70e1 100644 --- a/src/storage.cpp +++ b/src/storage.cpp @@ -535,58 +535,6 @@ const Storage & Ref::storage() const } -ZonedTime::ZonedTime(string str) -{ - intmax_t t; - unsigned int h, m; - char sign[2]; - if (sscanf(str.c_str(), "%jd %1[+-]%2u%2u", &t, sign, &h, &m) != 4) - throw runtime_error("invalid zoned time"); - - time = std::chrono::system_clock::time_point(std::chrono::seconds(t)); - zone = std::chrono::minutes((sign[0] == '-' ? -1 : 1) * (60 * h + m)); -} - -ZonedTime::operator string() const -{ - char buf[32]; - unsigned int az = std::chrono::abs(zone).count(); - snprintf(buf, sizeof(buf), "%jd %c%02u%02u", - (intmax_t) std::chrono::duration_cast(time.time_since_epoch()).count(), - zone < decltype(zone)::zero() ? '-' : '+', az / 60, az % 60); - return string(buf); -} - -ZonedTime ZonedTime::now() -{ - return ZonedTime(std::chrono::system_clock::now()); -} - - -UUID::UUID(string str) -{ - if (uuid_parse(str.c_str(), uuid) != 0) - throw runtime_error("invalid UUID"); -} - -UUID::operator string() const -{ - string str(UUID_STR_LEN - 1, '\0'); - uuid_unparse_lower(uuid, str.data()); - return str; -} - -bool UUID::operator==(const UUID & other) const -{ - return std::equal(std::begin(uuid), std::end(uuid), std::begin(other.uuid)); -} - -bool UUID::operator!=(const UUID & other) const -{ - return !(*this == other); -} - - template RecordT::Item::operator bool() const { -- cgit v1.2.3