]> pilppa.org Git - lib1wire.git/blob - src/Store.hh
11218f2439f84630f2e73e65e2ce4997e10a00f1
[lib1wire.git] / src / Store.hh
1 /*
2  * Store.hh
3  *
4  *  Created on: Oct 31, 2010
5  *      Author: lamikr
6  */
7
8 #ifndef W1STORE_HH_
9 #define W1STORE_HH_
10
11 #include <string>
12 #include <list>
13 #include <vector>
14
15 #include <stdbool.h>
16
17 #include "Data.hh"
18 #include "Date.hh"
19
20 namespace plp {
21         class Store {
22                 public:
23                         Store(std::string device_id,
24                                 plp::Date *date_time);
25                         Store(std::string file_name_param);
26                         virtual ~Store();
27                         static std::string get_dir_name(std::string device_id, plp::Date *ltime);
28                         static std::string get_file_name(std::string device_id, plp::Date *ltime);
29                         static void save(std::string device_id, std::list<plp::Data *> *data_list, int dec_precision);
30                         bool load();
31                         plp::Data *get_sum();
32                         plp::Data *get_delta();
33                         plp::Data *get_mean();
34                         plp::Data *get_max();
35                         plp::Data *get_min();
36                         std::vector<plp::Data *> *get_sum(int freq_sec);
37                         std::vector<plp::Data *> *get_mean(int freq_sec);
38                         std::vector<plp::Data *> *get_delta(int freq_sec);
39                         std::vector<plp::Data *> *get_max(int freq_sec);
40                         std::vector<plp::Data *> *get_min(int freq_sec);
41                         plp::Data *get_oldest_data();
42                         plp::Data *get_newest_data();
43                         plp::DataRange *get_oldest_and_newest_data();
44                 protected:
45                         std::string     store_file_name;
46                         plp::DataRange  *store_data;
47                         plp::DataRange  *range_data;
48                         std::vector<plp::Data *> *get_max_or_min(int freq_sec, bool max);
49         };
50 }
51
52 #endif /* W1STORE_HH_ */