Aktualizr
C++ SOTA Client
All Classes Namespaces Files Functions Variables Enumerations Enumerator Pages
stats.h
1 #ifndef LT_STATS_H
2 #define LT_STATS_H
3 
4 #include <hdr_histogram.h>
5 #include <chrono>
6 
7 class Histogram {
8  hdr_histogram* histogram;
9 
10  public:
11  Histogram();
12  ~Histogram();
13  void record(const std::chrono::milliseconds& duration) { hdr_record_value(histogram, duration.count()); };
14 
15  Histogram& operator+=(const Histogram& rhs);
16  void print();
17  int64_t totalCount();
18 };
19 
20 class Statistics {
21  using clock = std::chrono::steady_clock;
22  clock::time_point startedAt;
23  clock::time_point finishedAt;
24  Histogram successDurations;
25  Histogram errorDurations;
26 
27  public:
28  Statistics() : successDurations{}, errorDurations{} {}
29 
30  void recordSuccess(const std::chrono::milliseconds& duration);
31  void recordFailure(const std::chrono::milliseconds& durarion);
32  void start();
33  void stop();
34  void print();
35  Statistics& operator+=(const Statistics& rhs);
36 };
37 
38 #endif
Statistics
Definition: stats.h:20
Histogram
Definition: stats.h:7