]> pilppa.org Git - libplp.git/blob - src/StoreDay.hh
1b416e5fbb78c9c4cd782a7bf5aa58d6c2eedb97
[libplp.git] / src / StoreDay.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 #include "Store.hh"
20
21 namespace plp {
22         class StoreDay: public plp::Store {
23                 public:
24                         StoreDay(std::string device_id_param,
25                                 plp::Date *date_time_param);
26                         StoreDay(std::string file_name_param);
27                         virtual ~StoreDay();
28                         static void save(std::string device_id, std::list<plp::Data *> *data_list, int dec_precision);
29                         plp::DataRange *get_sum(EnumSummaryPeriod period_type_param);
30                         plp::DataRange *get_mean(EnumSummaryPeriod period_type_param);
31                         plp::DataRange *get_delta(EnumSummaryPeriod period_type_param);
32                         plp::DataRange *get_max(EnumSummaryPeriod period_type_param);
33                         plp::DataRange *get_min(EnumSummaryPeriod period_type_param);
34                         plp::Data *get_oldest_data();
35                         plp::Data *get_latest_data();
36                         plp::DataRange *get_oldest_and_latest_data();
37                         /*
38                          * Checks whether store file exist.
39                          */
40                         bool exist();
41                 protected:
42                         std::string     store_fname;
43                         bool load();
44                         plp::DataRange *get_max_or_min(EnumSummaryPeriod period_type_param, bool max);
45                         static std::string get_dir_name(std::string device_id,
46                                                         plp::Date *date_time_param);
47                         static std::string get_file_name(std::string device_id,
48                                                         plp::Date *date_time_param);
49                         plp::DataRange *get_oldest_and_latest_data(std::string fname_param);
50                         bool exist(std::string fname_param);
51         };
52 }
53
54 #endif /* W1STORE_HH_ */