ROSE
0.11.96.11
|
Simple elapsed time.
All times are returned as floating point number of seconds. The underlying data structure has nanosecond resolution although accuracy is probably nowhere near that.
A stopwatch can be started and stopped as often as desired and it will accumulate the total amount of time it has been in the running state (the clear() method resets the stopwatch by stopping it and zeroing the total). Starting an already running stopwatch does nothing, and neither does stopping an already stopped stopwatch.
When a stopwatch is copied the destination stopwatch inherits the accumulated time and running state of the source. Both instances are then completely independent of one another.
Thread safety: These functions are not thread-safe, although multiple threads can invoke the methods concurrently on different objects. It is permissible for different threads to invoke methods on the same object provided that synchronization occurs above the method calls.
Definition at line 41 of file Stopwatch.h.
#include <Stopwatch.h>
Public Types | |
typedef double | TimePoint |
typedef double | Duration |
Public Member Functions | |
Stopwatch (bool start=true) | |
Construct and optionally start a timer. More... | |
double | clear (double value=0.0) |
Stop and reset the timer to the specified value. More... | |
double | restart () |
Restart the timer. More... | |
double | stop (bool clear=false) |
Stop the timer and report accumulated time. More... | |
double | report (bool clear=false) const |
Report current accumulated time without stopping or starting. More... | |
bool | isRunning () const |
Query state of stopwatch. More... | |
std::string | toString () const |
Convert a stopwatch to a human-readalbe string. | |
double | start () |
Start the timer and report accumulated time. More... | |
double | start (double value) |
Start the timer and report accumulated time. More... | |
Static Public Member Functions | |
static std::string | toString (double seconds) |
Format time in human readable manner. | |
|
inlineexplicit |
Construct and optionally start a timer.
The timer is started immediately unless the constructor is invoked with a false argument.
Definition at line 62 of file Stopwatch.h.
double Sawyer::Stopwatch::clear | ( | double | value = 0.0 | ) |
Stop and reset the timer to the specified value.
The timer is stopped if it is running. Returns the accumulated time before resetting it to the specified value.
double Sawyer::Stopwatch::start | ( | ) |
Start the timer and report accumulated time.
Reports the time accumulated as of this call and makes sure the clock is running. If a value is specified then the stopwatch starts with that much time accumulated.
double Sawyer::Stopwatch::start | ( | double | value | ) |
Start the timer and report accumulated time.
Reports the time accumulated as of this call and makes sure the clock is running. If a value is specified then the stopwatch starts with that much time accumulated.
double Sawyer::Stopwatch::restart | ( | ) |
Restart the timer.
Reports the accumulated time as of this call, then resets it to zero and starts or restarts the clock running.
double Sawyer::Stopwatch::stop | ( | bool | clear = false | ) |
Stop the timer and report accumulated time.
If the timer is running then it is stopped and the elapsed time is accumulated, otherwise the timer remains in the stopped state and no additional time is accumulated. If clear
is set, then the accumlated time is reset to zero. In any case, the return value is the accumulated time before being optionally reset to zero.
double Sawyer::Stopwatch::report | ( | bool | clear = false | ) | const |
Report current accumulated time without stopping or starting.
If clear
is set then the accumulated time is reset to zero without affecting the return value or the running state, and the stopwatch starts reaccumulating time as of this call.
|
inline |
Query state of stopwatch.
Returns true if and only if the stopwatch is running.
Definition at line 102 of file Stopwatch.h.