5 #ifndef COAL_TIMINGS_FWD_H
6 #define COAL_TIMINGS_FWD_H
37 Timer(
const bool start_on_construction =
true) : m_is_stopped(true) {
42 if (m_is_stopped)
return m_times;
45 std::chrono::time_point<std::chrono::steady_clock> current_clock =
46 std::chrono::steady_clock::now();
47 current.
user +=
static_cast<double>(
48 std::chrono::duration_cast<std::chrono::nanoseconds>(
49 current_clock - m_start)
62 m_start = std::chrono::steady_clock::now();
67 if (m_is_stopped)
return;
70 m_end = std::chrono::steady_clock::now();
71 m_times.user +=
static_cast<double>(
72 std::chrono::duration_cast<std::chrono::nanoseconds>(
80 m_start = std::chrono::steady_clock::now();
91 std::chrono::time_point<std::chrono::steady_clock> m_start,
m_end;
#define COAL_DLLAPI
Definition: config.hh:88
Main namespace.
Definition: broadphase_bruteforce.h:44
double user
Definition: timings.h:16
double wall
Definition: timings.h:15
CPUTimes()
Definition: timings.h:19
double system
Definition: timings.h:17
void clear()
Definition: timings.h:21
This class mimics the way "boost/timer/timer.hpp" operates while using the modern std::chrono library...
Definition: timings.h:29
void resume()
Definition: timings.h:78
std::chrono::time_point< std::chrono::steady_clock > m_end
Definition: timings.h:91
duration_type duration() const
Definition: timings.h:55
Timer(const bool start_on_construction=true)
Default constructor for the timer.
Definition: timings.h:37
clock_type::duration duration_type
Definition: timings.h:31
void stop()
Definition: timings.h:66
bool m_is_stopped
Definition: timings.h:89
CPUTimes m_times
Definition: timings.h:88
bool is_stopped() const
Definition: timings.h:85
void start()
Definition: timings.h:57
std::chrono::steady_clock clock_type
Definition: timings.h:30
CPUTimes elapsed() const
Definition: timings.h:41