]> pilppa.org Git - lib1wire.git/blob - src/StoreCache.hh
Optimization for year and monthly data calculation.
[lib1wire.git] / src / StoreCache.hh
1 /*
2  * StoreCache.hh
3  *
4  *  Created on: Jan 6, 2011
5  *      Author: lamikr
6  */
7
8 #ifndef STORECACHE_HH_
9 #define STORECACHE_HH_
10
11 #include <vector>
12 #include <list>
13
14 #include "Data.hh"
15 #include "Date.hh"
16 #include "Store.hh"
17 #include "W1Configure.hh"
18
19 namespace plp {
20         class StoreCache: public plp::Store {
21                 public:
22                         StoreCache(std::string device_id_param,
23                                 plp::Date *date_time_param);
24                         virtual ~StoreCache();
25                         plp::DataRange *get_sum(EnumSummaryPeriod period_type_param);
26                         plp::DataRange *get_mean(EnumSummaryPeriod period_type_param);
27                         plp::DataRange *get_delta(EnumSummaryPeriod period_type_param);
28                         plp::DataRange *get_max(EnumSummaryPeriod period_type_param);
29                         plp::DataRange *get_min(EnumSummaryPeriod period_type_param);
30                         static plp::Data *get_oldest_data(plp::Date *date_param, std::string device_id_param, EnumSummaryPeriod period_type_param);
31                         static plp::Data *get_newest_data(plp::Date *date_param, std::string device_id_param, EnumSummaryPeriod period_type_param);
32                 protected:
33                         static std::string get_dir_name(std::string device_id_param,
34                                                 Date *date_time_param,
35                                                 EnumSummaryPeriod period_type_param,
36                                                 EnumSummaryCalculationType calc_type_param);
37                         static std::string get_file_name(std::string device_id_param,
38                                                 Date *date_time_param,
39                                                 EnumSummaryPeriod period_type_param,
40                                                 EnumSummaryCalculationType calc_type_param);
41                         void save(std::string fname_param, plp::DataRange *datarange_param, int decimal_count_param);
42                 private:
43                         plp::Date *get_scanning_limit_date(EnumSummaryPeriod period_type_param);
44         };
45 }
46
47 #endif /* STORECACHE_HH_ */