16#include "smats/util/timer.h"
38 explicit Stats(
bool enabled, std::string class_name, std::string name_time =
"Time spent in Operations");
40 Stats &operator=(
const Stats &other) =
default;
41 virtual ~Stats() =
default;
62 [[nodiscard]]
virtual std::string
to_string()
const;
92 explicit IterationStats(
bool enabled, std::string class_name, std::string name_time =
"Time spent in Operations",
93 std::string iterations_name =
"Total # of Iterations");
102 [[nodiscard]] std::string
to_string()
const override;
110 [[nodiscard]]
unsigned int iterations()
const {
return iterations_.load(); }
113 void operator++(
int);
120std::ostream &operator<<(std::ostream &os,
const Stats &stats);
121std::ostream &operator<<(std::ostream &os,
const IterationStats &stats);
std::string to_string() const override
Definition stats.cpp:45
std::atomic< unsigned int > iterations_
Number of iterations.
Definition stats.h:116
void increase()
Definition stats.cpp:38
IterationStats(bool enabled, std::string class_name, std::string name_time="Time spent in Operations", std::string iterations_name="Total # of Iterations")
Definition stats.cpp:49
std::string to_segment_string() const override
Definition stats.cpp:42
std::string iterations_name_
Prompt to specify the number of iterations.
Definition stats.h:117
virtual std::string to_string() const
Definition stats.cpp:24
bool enabled() const
Definition stats.h:47
Stats(bool enabled, std::string class_name, std::string name_time="Time spent in Operations")
Definition stats.cpp:18
Timer timer_
Timer to measure the time spent in operations.
Definition stats.h:70
std::string operations_name_
Prompt to specify what operation the time has been measured of.
Definition stats.h:67
const Timer & timer() const
Definition stats.h:51
std::string class_name_
Name of the class the stats are measuring.
Definition stats.h:66
bool enabled_
Whether the stats measuring is enabled.
Definition stats.h:65
Timer & m_timer()
Definition stats.h:49
virtual std::string to_segment_string() const
Definition stats.cpp:21