μHAL (v2.8.17)
Part of the IPbus software repository
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
TimeIntervalStats.hpp
Go to the documentation of this file.
1
2#ifndef _uhal_TimeIntervalStats_hpp_
3#define _uhal_TimeIntervalStats_hpp_
4
5
6#include <chrono>
7#include <iosfwd> // for ostream
8#include <queue>
9#include <stddef.h> // for size_t
10
11
12namespace uhal {
13
15public:
16 typedef std::chrono::steady_clock Clock_t;
17
20
21 size_t size() const;
22
23 const Clock_t::duration& min() const;
24
25 const Clock_t::duration& max() const;
26
27 Clock_t::duration mean() const;
28
29 const std::queue<Clock_t::duration>& getLatestMeasurements() const;
30
31 void add(const Clock_t::time_point& aT1, const Clock_t::time_point& aT2);
32
33 void clear();
34
35private:
36 std::queue<Clock_t::duration> mLatestMeasurements;
37
38 Clock_t::duration mMin;
39 Clock_t::duration mMax;
40 Clock_t::duration mSum;
41
43};
44
45std::ostream& operator<<(std::ostream&, const TimeIntervalStats&);
46
47} // end ns uhal
48
49
50#endif
void add(const Clock_t::time_point &aT1, const Clock_t::time_point &aT2)
std::queue< Clock_t::duration > mLatestMeasurements
Clock_t::duration mean() const
std::chrono::steady_clock Clock_t
const Clock_t::duration & min() const
const Clock_t::duration & max() const
const std::queue< Clock_t::duration > & getLatestMeasurements() const
std::ostream & operator<<(std::ostream &aStr, const uhal::HttpResponseType &aHttpResponse)