40 #ifndef __OPENFLUID_TOOLS_TIMER_HPP__
41 #define __OPENFLUID_TOOLS_TIMER_HPP__
61 typedef std::chrono::system_clock TimerClock;
63 std::chrono::time_point<TimerClock> m_StartTime;
64 std::chrono::time_point<TimerClock> m_EndTime;
92 m_StartTime = TimerClock::now();
104 m_EndTime = TimerClock::now();
116 m_EndTime = std::chrono::time_point<TimerClock>();
117 m_StartTime = TimerClock::now();
126 m_StartTime = std::chrono::time_point<TimerClock>();
127 m_EndTime = std::chrono::time_point<TimerClock>();
150 std::chrono::time_point<TimerClock> EndTime;
154 EndTime = TimerClock::now();
161 return std::chrono::duration_cast<std::chrono::milliseconds>(EndTime - m_StartTime).count();
184 static void splitDuration(
long int MSecsDuration,
int& Days,
int& Hours,
int& Minutes,
int& Seconds,
int& MSecs)
186 MSecs = (int) (MSecsDuration % 1000);
187 Seconds = (int) (MSecsDuration / 1000) % 60;
188 Minutes = (int) ((MSecsDuration / (1000*60)) % 60);
189 Hours = (int) ((MSecsDuration / (1000*60*60)) % 24);
190 Days = (int) (MSecsDuration / (1000*60*60*24));
202 int MSecs, Seconds, Minutes, Hours, Days = 0;
204 splitDuration(MSecsDuration,Days,Hours,Minutes,Seconds,MSecs);
206 std::stringstream MSecsSS;
207 MSecsSS << std::setw(3) << std::setfill(
'0') << MSecs;
209 std::string TmpStr = MSecsSS.str()+
"s";
224 TmpStr = std::to_string(Seconds)+
"."
230 TmpStr = std::to_string(Minutes)+
"m "+std::to_string(Seconds)+
"."
236 TmpStr = std::to_string(Hours)+
"h "+std::to_string(Minutes)+
"m "+std::to_string(Seconds)+
"."
242 TmpStr = std::to_string(Days)+
"d "+std::to_string(Hours)+
"h "+
243 std::to_string(Minutes)+
"m "+
244 std::to_string(Seconds)+
"."
Definition: ApplicationException.hpp:47