fpmas 1.6
perf.h
Go to the documentation of this file.
1#ifndef FPMAS_PERF_API_H
2#define FPMAS_PERF_API_H
3
8#include <chrono>
9#include <string>
10#include <vector>
11
12namespace fpmas { namespace api { namespace utils { namespace perf {
13
17 typedef std::chrono::steady_clock Clock;
21 typedef std::chrono::steady_clock::duration Duration;
25 typedef std::chrono::steady_clock::time_point ClockTime;
26
53 class Probe {
54 public:
63 virtual std::string label() const = 0;
73 virtual std::vector<Duration>& durations() = 0;
74
81 virtual const std::vector<Duration>& durations() const = 0;
82
90 virtual void start() = 0;
101 virtual void stop() = 0;
102
103 virtual ~Probe() {}
104 };
105
112 class Monitor {
113 public:
129 virtual void commit(Probe& probe) = 0;
143 virtual std::size_t callCount(std::string probe_label) const = 0;
144
167 virtual Duration totalDuration(std::string probe_label) const = 0;
168
172 virtual void clear() = 0;
173
174 virtual ~Monitor() {}
175 };
176}}}}
177#endif
Definition: perf.h:112
virtual Duration totalDuration(std::string probe_label) const =0
virtual void commit(Probe &probe)=0
virtual std::size_t callCount(std::string probe_label) const =0
Definition: perf.h:53
virtual const std::vector< Duration > & durations() const =0
virtual std::string label() const =0
virtual std::vector< Duration > & durations()=0
std::chrono::steady_clock Clock
Definition: perf.h:17
std::chrono::steady_clock::duration Duration
Definition: perf.h:21
std::chrono::steady_clock::time_point ClockTime
Definition: perf.h:25
Definition: fpmas.cpp:3