summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Firebaugh <john.firebaugh@gmail.com>2016-01-19 18:32:33 -0800
committerJohn Firebaugh <john.firebaugh@gmail.com>2016-01-22 18:41:54 -0800
commitcef5c331fe6ab827e71aed1e4e0387983083c88e (patch)
tree47c71da0e81f25678640032d5708212ef022072e
parent5cd123422ed026912c53c44a393f141f990a09df (diff)
downloadqtlocation-mapboxgl-cef5c331fe6ab827e71aed1e4e0387983083c88e.tar.gz
[core] Merge rfc1123, iso8601, and parse_date into chrono.hpp and fix their API
-rw-r--r--include/mbgl/util/chrono.hpp13
-rw-r--r--include/mbgl/util/time.hpp24
-rw-r--r--platform/android/src/http_request_android.cpp8
-rw-r--r--platform/darwin/http_request_nsurl.mm8
-rw-r--r--platform/default/http_request_curl.cpp3
-rw-r--r--src/mbgl/renderer/debug_bucket.cpp5
-rw-r--r--src/mbgl/util/chrono.cpp35
-rw-r--r--src/mbgl/util/time.cpp30
-rw-r--r--src/parsedate/parsedate.c (renamed from src/mbgl/util/parsedate.c)2
-rw-r--r--src/parsedate/parsedate.h (renamed from include/mbgl/util/parsedate.h)0
-rw-r--r--test/storage/cache_size.cpp1
11 files changed, 58 insertions, 71 deletions
diff --git a/include/mbgl/util/chrono.hpp b/include/mbgl/util/chrono.hpp
index ce005485bc..dd228df977 100644
--- a/include/mbgl/util/chrono.hpp
+++ b/include/mbgl/util/chrono.hpp
@@ -2,6 +2,7 @@
#define MBGL_UTIL_CHRONO
#include <chrono>
+#include <string>
namespace mbgl {
@@ -42,6 +43,18 @@ Milliseconds toMilliseconds(std::chrono::time_point<_Clock, _Duration> time_poin
return asMilliseconds(toDuration<_Clock, _Duration>(time_point));
}
+namespace util {
+
+// Returns the RFC1123 formatted date. E.g. "Tue, 04 Nov 2014 02:13:24 GMT"
+std::string rfc1123(SystemTimePoint);
+
+// YYYY-mm-dd HH:MM:SS e.g. "2015-11-26 16:11:23"
+std::string iso8601(SystemTimePoint);
+
+SystemTimePoint parseTimePoint(const char *);
+
+} // namespace util
+
} // namespace mbgl
#endif
diff --git a/include/mbgl/util/time.hpp b/include/mbgl/util/time.hpp
deleted file mode 100644
index 181c961ab2..0000000000
--- a/include/mbgl/util/time.hpp
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef MBGL_UTIL_TIME
-#define MBGL_UTIL_TIME
-
-#include <mbgl/util/chrono.hpp>
-
-#include <string>
-#include <cstdint>
-#include <ctime>
-
-namespace mbgl {
-
-namespace util {
-
-// Returns the RFC1123 formatted date. E.g. "Tue, 04 Nov 2014 02:13:24 GMT"
-std::string rfc1123(std::time_t time);
-
-// YYYY-mm-dd HH:MM:SS e.g. "2015-11-26 16:11:23"
-std::string iso8601(std::time_t time);
-
-} // namespace util
-
-} // namespace mbgl
-
-#endif
diff --git a/platform/android/src/http_request_android.cpp b/platform/android/src/http_request_android.cpp
index d30d1572ff..7a234a609c 100644
--- a/platform/android/src/http_request_android.cpp
+++ b/platform/android/src/http_request_android.cpp
@@ -5,10 +5,8 @@
#include "jni.hpp"
#include <mbgl/util/async_task.hpp>
-#include <mbgl/util/time.hpp>
#include <mbgl/util/util.hpp>
#include <mbgl/util/string.hpp>
-#include <mbgl/util/parsedate.h>
#include <jni.h>
@@ -127,7 +125,7 @@ HTTPAndroidRequest::HTTPAndroidRequest(HTTPAndroidContext* context_, const std::
if (existingResponse->etag) {
etagStr = *existingResponse->etag;
} else if (existingResponse->modified) {
- modifiedStr = util::rfc1123(SystemClock::to_time_t(*existingResponse->modified));
+ modifiedStr = util::rfc1123(*existingResponse->modified);
}
}
@@ -197,7 +195,7 @@ void HTTPAndroidRequest::onResponse(JNIEnv* env, int code, jstring /* message */
}
if (modified != nullptr) {
- response->modified = SystemClock::from_time_t(parse_date(mbgl::android::std_string_from_jstring(env, modified).c_str()));
+ response->modified = util::parseTimePoint(mbgl::android::std_string_from_jstring(env, modified).c_str());
}
if (cacheControl != nullptr) {
@@ -205,7 +203,7 @@ void HTTPAndroidRequest::onResponse(JNIEnv* env, int code, jstring /* message */
}
if (expires != nullptr) {
- response->expires = SystemClock::from_time_t(parse_date(mbgl::android::std_string_from_jstring(env, expires).c_str()));
+ response->expires = util::parseTimePoint(mbgl::android::std_string_from_jstring(env, expires).c_str());
}
if (body != nullptr) {
diff --git a/platform/darwin/http_request_nsurl.mm b/platform/darwin/http_request_nsurl.mm
index 68b9863f74..2421c69c66 100644
--- a/platform/darwin/http_request_nsurl.mm
+++ b/platform/darwin/http_request_nsurl.mm
@@ -3,8 +3,6 @@
#include <mbgl/storage/response.hpp>
#include <mbgl/util/async_task.hpp>
-#include <mbgl/util/time.hpp>
-#include <mbgl/util/parsedate.h>
#include <mbgl/util/run_loop.hpp>
#import <Foundation/Foundation.h>
@@ -117,7 +115,7 @@ HTTPNSURLRequest::HTTPNSURLRequest(HTTPNSURLContext* context_,
[req addValue:@((*existingResponse->etag).c_str())
forHTTPHeaderField:@"If-None-Match"];
} else if (existingResponse->modified) {
- [req addValue:@(util::rfc1123(SystemClock::to_time_t(*existingResponse->modified)).c_str())
+ [req addValue:@(util::rfc1123(*existingResponse->modified).c_str())
forHTTPHeaderField:@"If-Modified-Since"];
}
}
@@ -217,12 +215,12 @@ void HTTPNSURLRequest::handleResult(NSData *data, NSURLResponse *res, NSError *e
NSString *expires = [headers objectForKey:@"Expires"];
if (expires) {
- response->expires = SystemClock::from_time_t(parse_date([expires UTF8String]));
+ response->expires = util::parseTimePoint([expires UTF8String]);
}
NSString *last_modified = [headers objectForKey:@"Last-Modified"];
if (last_modified) {
- response->modified = SystemClock::from_time_t(parse_date([last_modified UTF8String]));
+ response->modified = util::parseTimePoint([last_modified UTF8String]);
}
NSString *etag = [headers objectForKey:@"ETag"];
diff --git a/platform/default/http_request_curl.cpp b/platform/default/http_request_curl.cpp
index 078a172c2b..3129dc7a94 100644
--- a/platform/default/http_request_curl.cpp
+++ b/platform/default/http_request_curl.cpp
@@ -3,7 +3,6 @@
#include <mbgl/storage/response.hpp>
#include <mbgl/platform/log.hpp>
-#include <mbgl/util/time.hpp>
#include <mbgl/util/util.hpp>
#include <mbgl/util/run_loop.hpp>
#include <mbgl/util/string.hpp>
@@ -368,7 +367,7 @@ HTTPCURLRequest::HTTPCURLRequest(HTTPCURLContext* context_, const std::string& u
headers = curl_slist_append(headers, header.c_str());
} else if (existingResponse->modified) {
const std::string time =
- std::string("If-Modified-Since: ") + util::rfc1123(SystemClock::to_time_t(*existingResponse->modified));
+ std::string("If-Modified-Since: ") + util::rfc1123(*existingResponse->modified);
headers = curl_slist_append(headers, time.c_str());
}
}
diff --git a/src/mbgl/renderer/debug_bucket.cpp b/src/mbgl/renderer/debug_bucket.cpp
index a6663b35c3..2d0590c56b 100644
--- a/src/mbgl/renderer/debug_bucket.cpp
+++ b/src/mbgl/renderer/debug_bucket.cpp
@@ -1,7 +1,6 @@
#include <mbgl/renderer/debug_bucket.hpp>
#include <mbgl/renderer/painter.hpp>
#include <mbgl/shader/plain_shader.hpp>
-#include <mbgl/util/time.hpp>
#include <mbgl/platform/gl.hpp>
@@ -23,10 +22,10 @@ DebugBucket::DebugBucket(const TileID id, const TileData::State state_, optional
}
if (debugMode & MapDebugOptions::Timestamps && modified && expires) {
- const std::string modifiedText = "modified: " + util::iso8601(SystemClock::to_time_t(*modified));
+ const std::string modifiedText = "modified: " + util::iso8601(*modified);
fontBuffer.addText(modifiedText.c_str(), 50, baseline, 5);
- const std::string expiresText = "expires: " + util::iso8601(SystemClock::to_time_t(*expires));
+ const std::string expiresText = "expires: " + util::iso8601(*expires);
fontBuffer.addText(expiresText.c_str(), 50, baseline + 200, 5);
}
}
diff --git a/src/mbgl/util/chrono.cpp b/src/mbgl/util/chrono.cpp
index ca8ebca953..f0b3f88192 100644
--- a/src/mbgl/util/chrono.cpp
+++ b/src/mbgl/util/chrono.cpp
@@ -1,5 +1,9 @@
#include <mbgl/util/chrono.hpp>
+#include <parsedate/parsedate.h>
+
+#include <cstdio>
+
namespace mbgl {
template Duration toDuration<Clock, Duration>(TimePoint);
@@ -17,4 +21,35 @@ template Milliseconds asMilliseconds<Seconds>(Seconds);
template Milliseconds toMilliseconds<Clock, Duration>(TimePoint);
template Milliseconds toMilliseconds<SystemClock, SystemDuration>(SystemTimePoint);
+namespace util {
+
+static const char *week[] = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};
+static const char *months[] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun",
+ "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};
+
+std::string rfc1123(SystemTimePoint timePoint) {
+ std::time_t time = SystemClock::to_time_t(timePoint);
+ std::tm info;
+ gmtime_r(&time, &info);
+ char buffer[30];
+ snprintf(buffer, 30, "%s, %02d %s %4d %02d:%02d:%02d GMT", week[info.tm_wday], info.tm_mday,
+ months[info.tm_mon], 1900 + info.tm_year, info.tm_hour, info.tm_min, info.tm_sec);
+ return buffer;
+}
+
+std::string iso8601(SystemTimePoint timePoint) {
+ std::time_t time = SystemClock::to_time_t(timePoint);
+ std::tm info;
+ gmtime_r(&time, &info);
+ char buffer[30];
+ std::strftime(buffer, sizeof(buffer), "%F %T", &info);
+ return buffer;
+}
+
+SystemTimePoint parseTimePoint(const char * timePoint) {
+ return SystemClock::from_time_t(parse_date(timePoint));
+}
+
+} // namespace util
+
} // namespace mbgl
diff --git a/src/mbgl/util/time.cpp b/src/mbgl/util/time.cpp
deleted file mode 100644
index 575ed47e1a..0000000000
--- a/src/mbgl/util/time.cpp
+++ /dev/null
@@ -1,30 +0,0 @@
-#include <mbgl/util/time.hpp>
-
-#include <cstdio>
-
-namespace mbgl {
-namespace util {
-
-static const char *week[] = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};
-static const char *months[] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun",
- "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};
-
-std::string rfc1123(std::time_t time) {
- std::tm info;
- gmtime_r(&time, &info);
- char buffer[30];
- snprintf(buffer, 30, "%s, %02d %s %4d %02d:%02d:%02d GMT", week[info.tm_wday], info.tm_mday,
- months[info.tm_mon], 1900 + info.tm_year, info.tm_hour, info.tm_min, info.tm_sec);
- return buffer;
-}
-
-std::string iso8601(std::time_t time) {
- std::tm info;
- gmtime_r(&time, &info);
- char buffer[30];
- std::strftime(buffer, sizeof(buffer), "%F %T", &info);
- return buffer;
-}
-
-} // namespace util
-} // namespace mbgl
diff --git a/src/mbgl/util/parsedate.c b/src/parsedate/parsedate.c
index f888def853..46acceed75 100644
--- a/src/mbgl/util/parsedate.c
+++ b/src/parsedate/parsedate.c
@@ -73,7 +73,7 @@
*/
-#include <mbgl/util/parsedate.h>
+#include "parsedate.h"
diff --git a/include/mbgl/util/parsedate.h b/src/parsedate/parsedate.h
index 6905e361d4..6905e361d4 100644
--- a/include/mbgl/util/parsedate.h
+++ b/src/parsedate/parsedate.h
diff --git a/test/storage/cache_size.cpp b/test/storage/cache_size.cpp
index 78e3697790..7a98e1c835 100644
--- a/test/storage/cache_size.cpp
+++ b/test/storage/cache_size.cpp
@@ -5,7 +5,6 @@
#include <mbgl/storage/sqlite_cache.hpp>
#include <mbgl/util/run_loop.hpp>
#include <mbgl/util/string.hpp>
-#include <mbgl/util/time.hpp>
#include <mbgl/util/timer.hpp>
#include <memory>