Electroneum
timings.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <stdint.h>
4 #include <string>
5 #include <vector>
6 #include <map>
7 
9 {
10 public:
11  struct instance
12  {
13  time_t t;
14  size_t npoints;
15  double min, max, mean, median, stddev, npskew;
16  std::vector<uint64_t> deciles;
17  };
18 
19 public:
21  TimingsDatabase(const std::string &filename);
23 
24  std::vector<instance> get(const char *name) const;
25  void add(const char *name, const instance &data);
26 
27 private:
28  bool load();
29  bool save();
30 
31 private:
32  std::string filename;
33  std::multimap<std::string, instance> instances;
34 };
Definition: timings.h:9
~TimingsDatabase()
Definition: timings.cc:21
bool save()
Definition: timings.cc:82
std::string filename
Definition: timings.h:32
void add(const char *name, const instance &data)
Definition: timings.cc:122
TimingsDatabase()
Definition: timings.cc:11
std::vector< instance > get(const char *name) const
Definition: timings.cc:112
std::multimap< std::string, instance > instances
Definition: timings.h:33
bool load()
Definition: timings.cc:26
const char * name
Definition: simplewallet.cpp:400
Definition: timings.h:12
double mean
Definition: timings.h:15
double min
Definition: timings.h:15
double max
Definition: timings.h:15
std::vector< uint64_t > deciles
Definition: timings.h:16
size_t npoints
Definition: timings.h:14
double median
Definition: timings.h:15
double stddev
Definition: timings.h:15
double npskew
Definition: timings.h:15
time_t t
Definition: timings.h:13