]> pilppa.org Git - lib1wire.git/blobdiff - src/DeviceData.hh
Implemented yearly calculations for min, max, mean, delta and sum
[lib1wire.git] / src / DeviceData.hh
index 33629714972c978b5ff3695430bdad3b7eb6bc56..a85bf1476c739f7db65e7ca147be6668b7050401 100644 (file)
 
 #include <time.h>
 
-namespace w1 {
+namespace plp {
        class DeviceData {
                public:
                        DeviceData(std::string device_id);
                        virtual ~DeviceData();
-                       DataRange *get_data_range();
+                       plp::DataRange *get_data_range();
                        /**
-                        * Get summary data calculated from the daily data items that is meaning full.
+                        * Get monthly summary data.
                         * Depending from the device type, it may be daily mean value, daily delta, highest value, etc...
                         */
-                       Data *get_daily_summary(plp::Date *date);
-                       DataRange *get_daily_summary(plp::Date *start_date, plp::Date *end_date);
-                       DataRange *get_data(plp::Date *start_date, plp::Date *end_date);
+                       plp::DataRange *get_yearly_summary(plp::Date *date, EnumSummaryCalculationType calc_type);
+                       plp::DataRange *get_yearly_summary(plp::Date *date);
+                       plp::DataRange *get_yearly_summary(plp::Date *start_date, plp::Date *end_date);
+                       /**
+                        * Get monthly summary data.
+                        * Depending from the device type, it may be daily mean value, daily delta, highest value, etc...
+                        */
+                       plp::DataRange *get_monthly_summary(plp::Date *date, EnumSummaryCalculationType calc_type);
+                       plp::DataRange *get_monthly_summary(plp::Date *date);
+                       plp::DataRange *get_monthly_summary(plp::Date *start_date, plp::Date *end_date);
+                       /**
+                        * Get daily summary data calculated from the daily data items.
+                        * Depending from the device type, it may be daily mean value, daily delta, highest value, etc...
+                        */
+                       plp::DataRange *get_daily_summary(plp::Date *date, EnumSummaryCalculationType calc_type);
+                       plp::DataRange *get_daily_summary(plp::Date *date);
+                       plp::DataRange *get_daily_summary(plp::Date *start_date, plp::Date *end_date);
+                       plp::DataRange *get_hourly_summary(plp::Date *date, EnumSummaryCalculationType calc_type);
+                       plp::DataRange *get_hourly_summary(plp::Date *date);
+                       plp::DataRange *get_hourly_summary(plp::Date *start_date, plp::Date *end_date);
+                       plp::DataRange *get_data(plp::Date *start_date, plp::Date *end_date);
+                       plp::Data *find_newest_data(std::string year_name_param);
+                       plp::Data *find_oldest_data(std::string year_name_param);
                protected:
                        std::string                     device_id;
                        std::string                     device_dir;
                        std::string                     device_ch_dir;
                        w1::DeviceConfig                *device_config;
-                       enum_summary_calculation        summary_calc_type;
-                       Data *find_oldest_data(std::vector<std::string> year_vector);
-                       Data *find_newest_data(std::vector<std::string> year_vector);
+                       EnumSummaryCalculationType      summary_calc_type;
+                       plp::Data *find_oldest_data(std::vector<std::string> year_vector);
+                       plp::Data *find_newest_data(std::vector<std::string> year_vector);
+                       plp::DataRange *get_summary(plp::Date *date_param,
+                                       EnumSummaryCalculationType calc_type_param,
+                                       EnumSummaryPeriod period_type_param);
        };
 }