1 #ifndef CRYPTOPP_HRTIMER_H
2 #define CRYPTOPP_HRTIMER_H
6 #if !defined(HIGHRES_TIMER_AVAILABLE) || (defined(CRYPTOPP_WIN32_AVAILABLE) && !defined(THREAD_TIMER_AVAILABLE))
10 NAMESPACE_BEGIN(CryptoPP)
12 #ifdef HIGHRES_TIMER_AVAILABLE
13 typedef word64 TimerWord;
15 typedef clock_t TimerWord;
23 enum Unit {SECONDS = 0, MILLISECONDS, MICROSECONDS, NANOSECONDS};
25 : m_timerUnit(unit), m_stuckAtZero(stuckAtZero), m_started(
false)
26 , m_start(0), m_last(0) {}
28 virtual TimerWord GetCurrentTimerValue() =0;
29 virtual TimerWord TicksPerSecond() =0;
32 double ElapsedTimeAsDouble();
33 unsigned long ElapsedTime();
36 double ConvertTo(TimerWord t, Unit unit);
39 bool m_stuckAtZero, m_started;
40 TimerWord m_start, m_last;
52 TimerWord GetCurrentTimerValue();
53 TimerWord TicksPerSecond();
60 Timer(Unit unit = TimerBase::SECONDS,
bool stuckAtZero =
false) :
TimerBase(unit, stuckAtZero) {}
61 TimerWord GetCurrentTimerValue();
62 TimerWord TicksPerSecond();
Library configuration file.
Measure CPU time spent executing instructions of this thread (if supported by OS) ...