#include <TimingProfile.h>

Classes

struct  Timer
 

Public Types

enum class  State { Ready , Running , Ran }
 

Public Member Functions

 TimingProfile ()
 
virtual ~TimingProfile ()
 
void Clear ()
 
TimerGetTimer (const std::string &label)
 
void Reset (Timer &timer)
 
void Reset (const std::string &label)
 
void Start (Timer &timer)
 
TimerStart (const std::string &label)
 
void Stop (Timer &timer)
 
void Stop (const std::string &label)
 
Clock::duration GetDuration (Timer &timer)
 
Clock::duration GetDuration (const std::string &label)
 
double GetElapsedTime_s (Timer &timer)
 
double GetElapsedTime_s (const std::string &label)
 
template<typename Duration >
Duration::rep GetElapsedTime (const Timer &timer)
 
template<typename Duration >
Duration::rep GetElapsedTime (const std::string &label)
 

Private Types

using Clock = std::chrono::high_resolution_clock
 

Private Attributes

std::map< std::string, Timerm_timers
 

Member Typedef Documentation

◆ Clock

using TimingProfile::Clock = std::chrono::high_resolution_clock
private

Member Enumeration Documentation

◆ State

enum class TimingProfile::State
strong
Enumerator
Ready 
Running 
Ran 

Constructor & Destructor Documentation

◆ TimingProfile()

TimingProfile::TimingProfile ( )
inline

◆ ~TimingProfile()

virtual TimingProfile::~TimingProfile ( )
inlinevirtual

Member Function Documentation

◆ Clear()

void TimingProfile::Clear ( )

◆ GetDuration() [1/2]

Clock::duration TimingProfile::GetDuration ( const std::string &  label)
inline

◆ GetDuration() [2/2]

TimingProfile::Clock::duration TimingProfile::GetDuration ( Timer timer)

Returns the time point difference

◆ GetElapsedTime() [1/2]

template<typename Duration >
Duration::rep TimingProfile::GetElapsedTime ( const std::string &  label)
inline

◆ GetElapsedTime() [2/2]

template<typename Duration >
Duration::rep TimingProfile::GetElapsedTime ( const Timer timer)
inline

Returns the elapsed time for a particular timer

◆ GetElapsedTime_s() [1/2]

double TimingProfile::GetElapsedTime_s ( const std::string &  label)
inline

◆ GetElapsedTime_s() [2/2]

double TimingProfile::GetElapsedTime_s ( Timer timer)

Returns the total elapsed time in seconds to three decimal places. If the timer is running, this function returns the elapsed time up until now. If the timer has been stopped, this function returns the elapsed time between the start and stop. If the timer hasn't been run yet (Ready state), this function returns 0.

◆ GetTimer()

TimingProfile::Timer & TimingProfile::GetTimer ( const std::string &  label)

◆ Reset() [1/2]

void TimingProfile::Reset ( const std::string &  label)
inline

◆ Reset() [2/2]

void TimingProfile::Reset ( Timer timer)

Resets the timer, this can have different effects based on the state of the timer: 1) Ready - No effect 2) Running - Resets the elapsed time to zero and continues running 3) Ran - Resets the elapsed time to zero and places the timer back into the Ready state

◆ Start() [1/2]

Timer & TimingProfile::Start ( const std::string &  label)
inline

◆ Start() [2/2]

void TimingProfile::Start ( Timer timer)

Starts the timer. Calling Start while the timer is running will reset its elapsed time. Calling Start after the timer has been started and stopped will reset its elapsed time, it does not pause and unpause the running elapsed time.

◆ Stop() [1/2]

void TimingProfile::Stop ( const std::string &  label)
inline

◆ Stop() [2/2]

void TimingProfile::Stop ( Timer timer)

Stops the timer, elapsed time will remain constant until calling Reset or Start

Member Data Documentation

◆ m_timers

std::map<std::string, Timer> TimingProfile::m_timers
private

Distributed under the Apache License, Version 2.0.

See accompanying NOTICE file for details.