From 78259c712310d2f3dd71f12f631de52c480adde5 Mon Sep 17 00:00:00 2001 From: malte_langkabel Date: Tue, 3 Nov 2015 16:48:55 +0100 Subject: [PATCH] src: refactoring TimePoint * removed typedef utility::TimePoint and replaced all its usages by using the class TimePoint instead. --- src/lib/data/TaskCleanStorage.cpp | 1 + src/lib/data/TaskCleanStorage.h | 4 ++-- src/lib/data/parser/cxx/TaskParseCxx.cpp | 4 ++-- src/lib/data/parser/cxx/TaskParseCxx.h | 4 ++-- src/lib/utility/TimePoint.cpp | 10 ++++++++++ src/lib/utility/TimePoint.h | 4 ++++ src/lib/utility/utility.cpp | 17 ++++++----------- src/lib/utility/utility.h | 4 +--- 8 files changed, 28 insertions(+), 20 deletions(-) diff --git a/src/lib/data/TaskCleanStorage.cpp b/src/lib/data/TaskCleanStorage.cpp index 96f3154a..9e1afbf7 100644 --- a/src/lib/data/TaskCleanStorage.cpp +++ b/src/lib/data/TaskCleanStorage.cpp @@ -2,6 +2,7 @@ #include "data/Storage.h" #include "utility/messaging/type/MessageStatus.h" +#include "utility/utility.h" TaskCleanStorage::TaskCleanStorage(Storage* storage, const std::vector& filePaths) : m_storage(storage) diff --git a/src/lib/data/TaskCleanStorage.h b/src/lib/data/TaskCleanStorage.h index 1bbf092f..7242dfd3 100644 --- a/src/lib/data/TaskCleanStorage.h +++ b/src/lib/data/TaskCleanStorage.h @@ -5,7 +5,7 @@ #include "utility/file/FilePath.h" #include "utility/scheduling/Task.h" -#include "utility/utility.h" +#include "utility/TimePoint.h" class Storage; @@ -30,7 +30,7 @@ private: std::vector m_filePaths; const size_t m_fileCount; - utility::TimePoint m_start; + TimePoint m_start; }; #endif // TASK_PARSE_CXX_H diff --git a/src/lib/data/parser/cxx/TaskParseCxx.cpp b/src/lib/data/parser/cxx/TaskParseCxx.cpp index 27f0bf22..b0b93a72 100644 --- a/src/lib/data/parser/cxx/TaskParseCxx.cpp +++ b/src/lib/data/parser/cxx/TaskParseCxx.cpp @@ -2,11 +2,11 @@ #include +#include "data/parser/ParserClient.h" #include "utility/file/FileRegister.h" #include "utility/messaging/type/MessageFinishedParsing.h" #include "utility/messaging/type/MessageStatus.h" - -#include "data/parser/ParserClient.h" +#include "utility/utility.h" TaskParseCxx::TaskParseCxx( ParserClient* client, diff --git a/src/lib/data/parser/cxx/TaskParseCxx.h b/src/lib/data/parser/cxx/TaskParseCxx.h index b084300b..024e68cb 100644 --- a/src/lib/data/parser/cxx/TaskParseCxx.h +++ b/src/lib/data/parser/cxx/TaskParseCxx.h @@ -4,7 +4,7 @@ #include #include "utility/scheduling/Task.h" -#include "utility/utility.h" +#include "utility/TimePoint.h" #include "data/parser/cxx/CxxParser.h" @@ -34,7 +34,7 @@ private: std::queue m_sourcePaths; - utility::TimePoint m_start; + TimePoint m_start; }; #endif // TASK_PARSE_CXX_H diff --git a/src/lib/utility/TimePoint.cpp b/src/lib/utility/TimePoint.cpp index 9d7e37aa..2c685a22 100644 --- a/src/lib/utility/TimePoint.cpp +++ b/src/lib/utility/TimePoint.cpp @@ -19,3 +19,13 @@ TimePoint::TimePoint(std::string s) { m_time = boost::posix_time::time_from_string(s); } + +std::string TimePoint::toString() const +{ + std::stringstream stream; + boost::posix_time::time_facet* facet = new boost::posix_time::time_facet(); + facet->format("%Y-%m-%d %H:%M:%S"); + stream.imbue(std::locale(std::locale::classic(), facet)); + stream << m_time; + return stream.str(); +} \ No newline at end of file diff --git a/src/lib/utility/TimePoint.h b/src/lib/utility/TimePoint.h index 53086a6c..b0acf6e0 100644 --- a/src/lib/utility/TimePoint.h +++ b/src/lib/utility/TimePoint.h @@ -11,6 +11,8 @@ public: //TimePoint(time_t t); TimePoint(std::string s); + std::string toString() const; + inline bool operator==(const TimePoint& rhs){ return m_time == rhs.m_time; } inline bool operator!=(const TimePoint& rhs){ return m_time != rhs.m_time; } inline bool operator<(const TimePoint& rhs){ return m_time < rhs.m_time; } @@ -18,6 +20,8 @@ public: inline bool operator<=(const TimePoint& rhs){ return m_time <= rhs.m_time; } inline bool operator>=(const TimePoint& rhs){ return m_time >= rhs.m_time; } + inline float operator-(const TimePoint& rhs){ return (m_time - rhs.m_time).total_milliseconds() / 1000.0f; } + private: boost::posix_time::ptime m_time; }; diff --git a/src/lib/utility/utility.cpp b/src/lib/utility/utility.cpp index 672cb3c9..59ae3123 100644 --- a/src/lib/utility/utility.cpp +++ b/src/lib/utility/utility.cpp @@ -1,15 +1,15 @@ #include "utility/utility.h" +#include "boost/date_time/time_clock.hpp" -utility::TimePoint utility::durationStart() +TimePoint utility::durationStart() { - return std::chrono::system_clock::now(); + return TimePoint(boost::posix_time::microsec_clock::local_time()); } float utility::duration(const TimePoint& start) { - std::chrono::duration duration = - std::chrono::duration_cast(std::chrono::system_clock::now() - start); - return duration.count(); + TimePoint now = durationStart(); + return now - start; } float utility::duration(std::function func) @@ -30,12 +30,7 @@ std::string utility::timeToString(const time_t time) std::string utility::timeToString(const boost::posix_time::ptime time) { - std::stringstream stream; - boost::posix_time::time_facet* facet = new boost::posix_time::time_facet(); - facet->format("%Y-%m-%d %H:%M:%S"); - stream.imbue(std::locale(std::locale::classic(), facet)); - stream << time; - return stream.str(); + return TimePoint(time).toString(); } bool utility::intersectionPoint(Vec2f a1, Vec2f b1, Vec2f a2, Vec2f b2, Vec2f* i) diff --git a/src/lib/utility/utility.h b/src/lib/utility/utility.h index 24b689dd..df8dfb8f 100644 --- a/src/lib/utility/utility.h +++ b/src/lib/utility/utility.h @@ -2,18 +2,16 @@ #define UTILITY_H #include -#include #include #include #include "boost/date_time/posix_time/posix_time.hpp" #include "utility/math/Vector2.h" +#include "utility/TimePoint.h" namespace utility { - typedef std::chrono::time_point TimePoint; - TimePoint durationStart(); float duration(const TimePoint& start); float duration(std::function func);