diff options
author | Conlain Kelly <conlain.k@gmail.com> | 2018-06-18 11:43:53 -0400 |
---|---|---|
committer | Conlain Kelly <conlain.k@gmail.com> | 2018-06-18 11:43:53 -0400 |
commit | ccf9073578e5c43f99ca9c8db09a15382129e0bd (patch) | |
tree | 1827a599b8ee1f326013ecc017a110d33fbc43a3 /src/components/include/utils/messagemeter.h | |
parent | 0dec6ef21fdfd752e33b0364c9e50d27c736371e (diff) | |
download | sdl_core-ccf9073578e5c43f99ca9c8db09a15382129e0bd.tar.gz |
remove struct timeval and use boost time_duration instead
also cleans up date_time namespacing but maintains helper functions
Diffstat (limited to 'src/components/include/utils/messagemeter.h')
-rw-r--r-- | src/components/include/utils/messagemeter.h | 35 |
1 files changed, 14 insertions, 21 deletions
diff --git a/src/components/include/utils/messagemeter.h b/src/components/include/utils/messagemeter.h index 42b658ad6b..1148a65b57 100644 --- a/src/components/include/utils/messagemeter.h +++ b/src/components/include/utils/messagemeter.h @@ -34,8 +34,8 @@ #define SRC_COMPONENTS_INCLUDE_UTILS_MESSAGEMETER_H_ #include <cstddef> -#include <set> #include <map> +#include <set> #include "utils/date_time.h" namespace utils { @@ -82,20 +82,19 @@ class MessageMeter { void ClearIdentifiers(); void set_time_range(const size_t time_range_msecs); - void set_time_range(const TimevalStruct& time_range); - TimevalStruct time_range() const; + void set_time_range(const date_time::TimeDuration& time_range); + date_time::TimeDuration time_range() const; private: - TimevalStruct time_range_; - typedef std::multiset<TimevalStruct> Timings; + date_time::TimeDuration time_range_; + typedef std::multiset<date_time::TimeDuration> Timings; typedef std::map<Id, Timings> TimingMap; TimingMap timing_map_; }; template <class Id> -MessageMeter<Id>::MessageMeter() - : time_range_(TimevalStruct{0, 0}) { - time_range_.tv_sec = 1; +MessageMeter<Id>::MessageMeter() { + time_range_ = date_time::seconds(1); } template <class Id> @@ -106,7 +105,7 @@ size_t MessageMeter<Id>::TrackMessage(const Id& id) { template <class Id> size_t MessageMeter<Id>::TrackMessages(const Id& id, const size_t count) { Timings& timings = timing_map_[id]; - const TimevalStruct current_time = date_time::DateTime::getCurrentTime(); + const date_time::TimeDuration current_time = date_time::getCurrentTime(); for (size_t i = 0; i < count; ++i) { // Adding to the end is amortized constant timings.insert(timings.end(), current_time); @@ -124,8 +123,8 @@ size_t MessageMeter<Id>::Frequency(const Id& id) { if (timings.empty()) { return 0u; } - const TimevalStruct actual_begin_time = date_time::DateTime::Sub( - date_time::DateTime::getCurrentTime(), time_range_); + const date_time::TimeDuration actual_begin_time = + (date_time::getCurrentTime() - time_range_); timings.erase(timings.begin(), timings.upper_bound(actual_begin_time)); return timings.size(); } @@ -142,21 +141,15 @@ void MessageMeter<Id>::ClearIdentifiers() { template <class Id> void MessageMeter<Id>::set_time_range(const size_t time_range_msecs) { - // TODO(EZamakhov): move to date_time::DateTime - const size_t secs = - time_range_msecs / date_time::DateTime::MILLISECONDS_IN_SECOND; - time_range_.tv_sec = secs; - const size_t mSecs = - time_range_msecs % date_time::DateTime::MILLISECONDS_IN_SECOND; - time_range_.tv_usec = - mSecs * date_time::DateTime::MICROSECONDS_IN_MILLISECOND; + time_range_ = date_time::milliseconds(time_range_msecs); } template <class Id> -void MessageMeter<Id>::set_time_range(const TimevalStruct& time_range) { +void MessageMeter<Id>::set_time_range( + const date_time::TimeDuration& time_range) { time_range_ = time_range; } template <class Id> -TimevalStruct MessageMeter<Id>::time_range() const { +date_time::TimeDuration MessageMeter<Id>::time_range() const { return time_range_; } } // namespace utils |