24#ifndef _UTILS_TIME_TRACKER_H_
25#define _UTILS_TIME_TRACKER_H_
41 TimeTracker(
const char *filename,
bool add_default_class =
false);
48 void ping(
unsigned int cls);
53 void ping(std::string comment =
"");
54 void reset(std::string comment =
"");
60 void average_and_deviation(std::vector<struct timeval *> &values,
63 double & deviation_sec,
64 double & deviation_ms);
69 std::vector<std::vector<struct timeval *>> class_times_;
70 std::vector<std::string> class_names_;
71 std::vector<struct timeval *> times_;
72 std::map<unsigned int, std::string> comments_;
73 std::vector<struct timeval *>::iterator time_it_;
74 std::map<unsigned int, std::string>::iterator comment_it_;
75 std::string tracker_comment_;
77 unsigned int write_cycle_;
Scoped time tracking for specific item.
~ScopedClassItemTracker()
Destructor.
ScopedClassItemTracker(TimeTracker &tt, unsigned int cls)
Constructor.
void print_to_stdout()
Print results to stdout.
void print_to_file()
Print data to file suitable for gnuplot.
TimeTracker(const char *filename, bool add_default_class=false)
Constructor for file logging.
unsigned int add_class(std::string name)
Add a new class.
void reset(std::string comment="")
Reset times.
void ping_end(unsigned int cls)
End of given class task.
void remove_class(unsigned int cls)
Remove a class.
void ping(unsigned int cls)
Ping class.
void ping_abort(unsigned int cls)
End of given class task without recording.
void ping_start(unsigned int cls)
Start of given class task.
~TimeTracker()
Destructor.
static const unsigned int DEFAULT_CLASS
The default tracking class.
Fawkes library namespace.