/* * StoreCache.hh * * Created on: Jan 6, 2011 * Author: lamikr */ #ifndef STORECACHE_HH_ #define STORECACHE_HH_ #include #include #include "Data.hh" #include "Date.hh" #include "Store.hh" namespace plp { class StoreCache: public plp::Store { public: StoreCache(std::string device_id_param, plp::Date *date_time_param); virtual ~StoreCache(); plp::DataRange *get_sum(EnumSummaryPeriod period_type_param); plp::DataRange *get_mean(EnumSummaryPeriod period_type_param); plp::DataRange *get_delta(EnumSummaryPeriod period_type_param); plp::DataRange *get_max(EnumSummaryPeriod period_type_param); plp::DataRange *get_min(EnumSummaryPeriod period_type_param); static plp::Data *get_oldest_data(plp::Date *date_param, std::string device_id_param, EnumSummaryPeriod period_type_param); static plp::Data *get_latest_data(plp::Date *date_param, std::string device_id_param, EnumSummaryPeriod period_type_param); protected: static std::string get_dir_name(std::string device_id_param, Date *date_time_param, EnumSummaryPeriod period_type_param, EnumSummaryCalculationType calc_type_param); static std::string get_file_name(std::string device_id_param, Date *date_time_param, EnumSummaryPeriod period_type_param, EnumSummaryCalculationType calc_type_param); void save(std::string fname_param, plp::DataRange *datarange_param, int decimal_count_param); private: plp::Date *get_scanning_limit_date(EnumSummaryPeriod period_type_param); }; } #endif /* STORECACHE_HH_ */