Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'base/timer.cpp')
-rw-r--r--base/timer.cpp63
1 files changed, 3 insertions, 60 deletions
diff --git a/base/timer.cpp b/base/timer.cpp
index cf69719581..56b0d63811 100644
--- a/base/timer.cpp
+++ b/base/timer.cpp
@@ -1,4 +1,5 @@
#include "base/assert.hpp"
+#include "base/get_time.hpp"
#include "base/macros.hpp"
#include "base/timegm.hpp"
#include "base/timer.hpp"
@@ -13,64 +14,6 @@
#include <sys/time.h>
-#ifndef OMIM_OS_LINUX
-using std::get_time;
-using std::put_time;
-#else
-#include <cassert>
-
-namespace detail
-{
- template <class _CharT> struct get_time_manip
- {
- tm* __tm_;
- const _CharT* __fmt_;
-
- get_time_manip(tm* __tm, const _CharT* __fmt)
- : __tm_(__tm), __fmt_(__fmt) {}
- };
-
- template <class _CharT, class _Traits>
- class stream_buf_impl : public std::basic_streambuf<_CharT, _Traits>
- {
- typedef std::basic_streambuf<_CharT, _Traits> base_t;
- public:
- bool parse(const get_time_manip<_CharT>& __x)
- {
- // Workaround works only for a stream buffer under null-terminated string.
- assert(*base_t::egptr() == 0);
-
- char * res = ::strptime(base_t::gptr(), __x.__fmt_, __x.__tm_);
- if (res == 0)
- return false;
- else
- {
- base_t::setg(base_t::eback(), res, base_t::egptr());
- return true;
- }
- }
- };
-
- template <class _CharT, class _Traits>
- std::basic_istream<_CharT, _Traits>&
- operator>>(std::basic_istream<_CharT, _Traits>& __is, const get_time_manip<_CharT>& __x)
- {
- if (!reinterpret_cast<stream_buf_impl<_CharT, _Traits>*>(__is.rdbuf())->parse(__x))
- __is.setstate(std::ios_base::failbit);
- return __is;
- }
-}
-
-template <class _CharT>
-detail::get_time_manip<_CharT> get_time(tm* __tm, const _CharT* __fmt)
-{
- return detail::get_time_manip<_CharT>(__tm, __fmt);
-}
-
-#endif
-
-
-
namespace my
{
@@ -162,7 +105,7 @@ time_t StringToTimestamp(std::string const & s)
// Parse UTC format: 1970-01-01T00:00:00Z
tm t{};
std::istringstream ss(s);
- ss >> get_time(&t, "%Y-%m-%dT%H:%M:%SZ");
+ ss >> base::get_time(&t, "%Y-%m-%dT%H:%M:%SZ");
if (!ss.fail() && IsValid(t))
res = base::TimeGM(t);
@@ -173,7 +116,7 @@ time_t StringToTimestamp(std::string const & s)
tm t1{}, t2{};
char sign;
std::istringstream ss(s);
- ss >> get_time(&t1, "%Y-%m-%dT%H:%M:%S") >> sign >> get_time(&t2, "%H:%M");
+ ss >> base::get_time(&t1, "%Y-%m-%dT%H:%M:%S") >> sign >> base::get_time(&t2, "%H:%M");
if (!ss.fail() && IsValid(t1))
{