2525#include < utility>
2626#include < vector>
2727
28+ constexpr char Timer::OVERALL[];
29+
2830namespace {
2931 using dataElementType = std::pair<std::string, TimerResultsData>;
3032 bool more_second_sec (const dataElementType& lhs, const dataElementType& rhs)
@@ -38,9 +40,9 @@ namespace {
3840
3941// TODO: this does not include any file context when SHOWTIME_FILE thus rendering it useless - should we include the logging with the progress logging?
4042// that could also get rid of the broader locking
41- void TimerResults::showResults (SHOWTIME_MODES mode) const
43+ void TimerResults::showResults (ShowTime mode) const
4244{
43- if (mode == SHOWTIME_MODES::SHOWTIME_NONE || mode == SHOWTIME_MODES::SHOWTIME_FILE_TOTAL )
45+ if (mode == ShowTime::NONE || mode == ShowTime::FILE_TOTAL )
4446 return ;
4547 std::vector<dataElementType> data;
4648
@@ -61,14 +63,14 @@ void TimerResults::showResults(SHOWTIME_MODES mode) const
6163 for (auto iter=data.cbegin (); iter!=data.cend (); ++iter) {
6264 const double sec = iter->second .getSeconds ().count ();
6365 const double secAverage = sec / static_cast <double >(iter->second .mNumberOfResults );
64- if ((mode != SHOWTIME_MODES::SHOWTIME_TOP5_FILE && mode != SHOWTIME_MODES::SHOWTIME_TOP5_SUMMARY ) || (ordinal<=5 )) {
66+ if ((mode != ShowTime::TOP5_FILE && mode != ShowTime::TOP5_SUMMARY ) || (ordinal<=5 )) {
6567 std::cout << iter->first << " : " << sec << " s (avg. " << secAverage << " s - " << iter->second .mNumberOfResults << " result(s))" << std::endl;
6668 }
6769 ++ordinal;
6870 }
6971}
7072
71- void TimerResults::addResults (const std::string& str, Duration duration)
73+ void TimerResults::addResults (const std::string& str, std::chrono::milliseconds duration)
7274{
7375 std::lock_guard<std::mutex> l (mResultsSync );
7476
@@ -82,7 +84,7 @@ void TimerResults::reset()
8284 mResults .clear ();
8385}
8486
85- Timer::Timer (std::string str, SHOWTIME_MODES showtimeMode, TimerResultsIntf* timerResults)
87+ Timer::Timer (std::string str, ShowTime showtimeMode, TimerResultsIntf* timerResults)
8688 : mStr(std::move(str))
8789 , mTimerResults(timerResults)
8890 , mShowTimeMode(showtimeMode)
@@ -96,24 +98,25 @@ Timer::~Timer()
9698
9799void Timer::stop ()
98100{
99- if ((mShowTimeMode != SHOWTIME_MODES::SHOWTIME_NONE ) && mStartTimePoint != TimePoint{}) {
100- Duration diff = std::chrono::duration_cast<Duration >(Clock::now () - mStartTimePoint );
101+ if ((mShowTimeMode != ShowTime::NONE ) && mStartTimePoint != TimePoint{}) {
102+ auto diff = std::chrono::duration_cast<std::chrono::milliseconds >(Clock::now () - mStartTimePoint );
101103 if (!mTimerResults ) {
102- if (mStr == OVERALL_TIMER
103- && (mShowTimeMode != SHOWTIME_MODES::SHOWTIME_TOP5_SUMMARY && mShowTimeMode != SHOWTIME_MODES::SHOWTIME_TOP5_FILE && mShowTimeMode != SHOWTIME_MODES::SHOWTIME_SUMMARY ))
104+ if (mStr == OVERALL
105+ && (mShowTimeMode != ShowTime::TOP5_SUMMARY && mShowTimeMode != ShowTime::TOP5_FILE && mShowTimeMode != ShowTime::SUMMARY ))
104106 return ;
105- if (mStr != OVERALL_TIMER
106- && (mShowTimeMode != SHOWTIME_MODES::SHOWTIME_FILE && mShowTimeMode != SHOWTIME_MODES::SHOWTIME_FILE_TOTAL ))
107+ if (mStr != OVERALL
108+ && (mShowTimeMode != ShowTime::FILE && mShowTimeMode != ShowTime::FILE_TOTAL ))
107109 return ;
108110 std::lock_guard<std::mutex> l (stdCoutLock);
109- std::cout << (mStr == OVERALL_TIMER ? " Overall time: " : " Check time: " + mStr + " : " )<< durationToString (diff) << std::endl;
111+ std::cout << (mStr == OVERALL ? " Overall time: " : " Check time: " + mStr + " : " )<< TimerResultsData:: durationToString (diff) << std::endl;
110112 } else {
111113 mTimerResults ->addResults (mStr , diff);
112114 }
113115 }
116+ mShowTimeMode = ShowTime::NONE; // prevent multiple stops
114117}
115118
116- std::string Timer ::durationToString (Duration duration)
119+ std::string TimerResultsData ::durationToString (std::chrono::milliseconds duration)
117120{
118121 // Extract hours
119122 auto hours = std::chrono::duration_cast<std::chrono::hours>(duration);
0 commit comments