]> pilppa.org Git - lib1wire.git/blobdiff - src/W1Store.hh
support for sum, min and max queryes from the collected data.
[lib1wire.git] / src / W1Store.hh
index 528b19a996503677ae4af2486b2c2058c5d374ed..b4a6b1a1a6f4426d0f74971fbb9502d56a576858 100644 (file)
@@ -10,6 +10,9 @@
 
 #include <string>
 #include <list>
+#include <vector>
+
+#include <stdbool.h>
 
 #include "Data.hh"
 #include "Date.hh"
@@ -21,20 +24,28 @@ namespace w1 {
                                plp::Date *date_time);
                        W1Store(std::string file_name_param);
                        virtual ~W1Store();
-                       static std::string get_store_base_dir();
-                       static void set_store_base_dir(std::string store_param);
-                       static std::string get_store_dir_name(std::string device_id, plp::Date *ltime);
-                       static std::string get_store_file_name(std::string device_id, plp::Date *ltime);
-                       static void store(std::string device_id, std::list<std::string> *string_list);
-                       void load();
+                       static std::string get_dir_name(std::string device_id, plp::Date *ltime);
+                       static std::string get_file_name(std::string device_id, plp::Date *ltime);
+                       static void save(std::string device_id, std::list<Data *> *data_list, int dec_precision);
+                       bool load();
                        Data *get_sum();
+                       Data *get_delta();
                        Data *get_mean();
-                       w1::Data *load_first_data_row();
-                       w1::Data *load_last_data_row();
+                       Data *get_max();
+                       Data *get_min();
+                       std::vector<w1::Data *> *get_sum(int freq_sec);
+                       std::vector<w1::Data *> *get_mean(int freq_sec);
+                       std::vector<w1::Data *> *get_delta(int freq_sec);
+                       std::vector<w1::Data *> *get_max(int freq_sec);
+                       std::vector<w1::Data *> *get_min(int freq_sec);
+                       w1::Data *get_oldest_data();
+                       w1::Data *get_newest_data();
+                       w1::DataRange *get_oldest_and_newest_data();
                protected:
-                       static std::string store_base_dir;
-                       std::string store_file_name;
-                       DataRange *data_range;
+                       std::string             store_file_name;
+                       DataRange               *store_data;
+                       DataRange               *range_data;
+                       std::vector<Data *> *get_max_or_min(int freq_sec, bool max);
        };
 }