All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Private Types | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
SurgSim::Framework::Timer Class Reference

Timer class, measures execution times. More...

#include <SurgSim/Framework/Timer.h>

Collaboration diagram for SurgSim::Framework::Timer:
Collaboration graph
[legend]

Public Member Functions

 Timer ()
 Instantiate a TimerClock and start a timing run. More...
 
void start ()
 Begin a timing run by clearing out any stored frames and beginning a frame. More...
 
void beginFrame ()
 Begin a frame (storing the current time). More...
 
void endFrame ()
 End this frame by storing the duration since the current frame was begun. More...
 
void markFrame ()
 End the current frame and begin a new frame. More...
 
double getCumulativeTime () const
 Return the sum of the durations over all the stored frames. More...
 
double getAverageFramePeriod () const
 Return the average duration across all stored frames. More...
 
double getAverageFrameRate () const
 Return the inverse of the average duration across all stored frames. More...
 
double getLastFramePeriod () const
 Return the duration of the most-recent frame (time between last endFrame and the previous start, beginFrame, or endFrame ). More...
 
double getLastFrameRate () const
 Return the inverse of the duration of the most-recent frame. More...
 
void setMaxNumberOfFrames (size_t numberOfFrames)
 Set the maximum number of frames to store. More...
 
size_t getCurrentNumberOfFrames () const
 
size_t getNumberOfClockFails () const
 
double getMaxFramePeriod () const
 
double getMinFramePeriod () const
 

Private Types

typedef boost::chrono::steady_clock TimerClock
 The Clock used by the Timer class. More...
 
typedef
boost::chrono::duration
< double > 
TimerDuration
 Durations used by the Timer class. More...
 
typedef
boost::chrono::time_point
< TimerClock, TimerDuration
TimerTimePoint
 Time points used by the Timer class. More...
 

Private Member Functions

TimerTimePoint now ()
 Get the current time. More...
 

Private Attributes

TimerTimePoint m_lastTime
 The time at last start, beginFrame, or markFrame. More...
 
size_t m_maxNumberOfFrames
 Maximum number of frames to store. More...
 
std::deque< TimerDurationm_frameDurations
 Durations of the frames, i.e., the "stored frames". More...
 
size_t m_clockFails
 Number of clock errors since last start. More...
 

Static Private Attributes

static const TimerClock m_clock
 The clock used to get the time. More...
 

Detailed Description

Timer class, measures execution times.

Multiple times can be stored as "frames" to provide an average rate or period.

Member Typedef Documentation

typedef boost::chrono::steady_clock SurgSim::Framework::Timer::TimerClock
private

The Clock used by the Timer class.

typedef boost::chrono::duration<double> SurgSim::Framework::Timer::TimerDuration
private

Durations used by the Timer class.

typedef boost::chrono::time_point<TimerClock, TimerDuration> SurgSim::Framework::Timer::TimerTimePoint
private

Time points used by the Timer class.

Constructor & Destructor Documentation

SurgSim::Framework::Timer::Timer ( )

Instantiate a TimerClock and start a timing run.

Member Function Documentation

void SurgSim::Framework::Timer::beginFrame ( )

Begin a frame (storing the current time).

void SurgSim::Framework::Timer::endFrame ( )

End this frame by storing the duration since the current frame was begun.

Note
endFrame does not start a new frame, call beginFrame to do so.
See also
Timer::markFrame
double SurgSim::Framework::Timer::getAverageFramePeriod ( ) const

Return the average duration across all stored frames.

Asserts if there are no frames.

Returns
Average period in seconds.
double SurgSim::Framework::Timer::getAverageFrameRate ( ) const

Return the inverse of the average duration across all stored frames.

Asserts if there are no frames.

Returns
The average frequency in Hz.
double SurgSim::Framework::Timer::getCumulativeTime ( ) const

Return the sum of the durations over all the stored frames.

Asserts if there are no frames.

Returns
Sum of stored frame durations in seconds.
size_t SurgSim::Framework::Timer::getCurrentNumberOfFrames ( ) const
Returns
Number of frames currently stored (not the maximum number of frames).
double SurgSim::Framework::Timer::getLastFramePeriod ( ) const

Return the duration of the most-recent frame (time between last endFrame and the previous start, beginFrame, or endFrame ).

Asserts if there are no frames.

Returns
Most-recent period in seconds.
double SurgSim::Framework::Timer::getLastFrameRate ( ) const

Return the inverse of the duration of the most-recent frame.

Asserts if there are no frames.

Returns
Most-recent frequency in Hz.
double SurgSim::Framework::Timer::getMaxFramePeriod ( ) const
Returns
The maximum duration across all the stored frames. Asserts if there are no frames.
double SurgSim::Framework::Timer::getMinFramePeriod ( ) const
Returns
The minimum duration across all the stored frames. Asserts if there are no frames.
size_t SurgSim::Framework::Timer::getNumberOfClockFails ( ) const
Returns
Number of times the clock returned an error code since start. If this is non-zero, the frame durations may be incorrect.
void SurgSim::Framework::Timer::markFrame ( )

End the current frame and begin a new frame.

Timer::TimerTimePoint SurgSim::Framework::Timer::now ( )
private

Get the current time.

Checks for any error code from the clock.

Returns
Current time.
void SurgSim::Framework::Timer::setMaxNumberOfFrames ( size_t  numberOfFrames)

Set the maximum number of frames to store.

void SurgSim::Framework::Timer::start ( )

Begin a timing run by clearing out any stored frames and beginning a frame.

Member Data Documentation

const TimerClock SurgSim::Framework::Timer::m_clock
staticprivate

The clock used to get the time.

size_t SurgSim::Framework::Timer::m_clockFails
private

Number of clock errors since last start.

std::deque<TimerDuration> SurgSim::Framework::Timer::m_frameDurations
private

Durations of the frames, i.e., the "stored frames".

TimerTimePoint SurgSim::Framework::Timer::m_lastTime
private

The time at last start, beginFrame, or markFrame.

size_t SurgSim::Framework::Timer::m_maxNumberOfFrames
private

Maximum number of frames to store.


The documentation for this class was generated from the following files: