]> pilppa.org Git - lib1wire.git/blobdiff - src/Data.hh
Added support for cacheing monthly data.
[lib1wire.git] / src / Data.hh
index 8a8a28a831dc6ff13dc945a1daf63f10d424f302..07bea1aa4a5872fd4bfebe61741482b1911d7756 100644 (file)
 
 #include "Date.hh"
 
-namespace w1 {
+namespace plp {
        class Data {
                public:
                        Data(int size);
-                       Data(int size, double default_value);
-                       Data(std::vector<double> vector_param, plp::Date *date_param);
-                       Data(std::valarray<double> value_arr_param, plp::Date *date_param);
+                       Data(int size, double default_value, std::string unit_param);
+                       Data(std::vector<double> *val_vector_param);
+                       Data(std::vector<double> *val_vector_param, std::string unit_param);
+                       Data(std::vector<double> *val_vector_param, plp::Date *date_param, std::string unit_param);
+                       Data(std::valarray<double> *val_arr_param, plp::Date *date_param);
                        virtual ~Data();
                        Data *clone();
-                       plp::Date get_date();
-                       void set_date(plp::Date date);
                        void printout();
-                       static Data *parse_data_string(const std::string& dataline);
+                       std::string to_string(int dec_precision);
+                       std::string to_string();
+                       static Data *parse_string(const std::string& data_str);
+                       plp::Date get_date();
+                       void set_date(plp::Date *date_param);
+                       int get_value_count();
+                       double get(int indx);
+                       std::string get_unit();
                        std::valarray<double>   value_arr;
                private:
-                       plp::Date               date_time;
+                       plp::Date       date_time;
+                       std::string     unit;
        };
 
        class DataRange {
                public:
-                       DataRange(Data data);
-                       DataRange(int value_count_per_data_item);
+                       DataRange();
+                       DataRange(Data *data);
+                       DataRange(DataRange *datarange);
+                       DataRange(int item_count_per_value, std::string unit_param);
                        virtual ~DataRange();
-                       void add_data(Data data);
-                       Data *get_data(int row_index);
-                       Data *get_first_data();
-                       Data *get_last_data();
-                       int get_data_row_count();
-                       int get_data_column_count();
+                       void add(Data *data);
+                       void add(DataRange *datarange);
+                       Data *get(int row_index);
+                       Data *get_first();
+                       Data *get_last();
+                       int get_count();
+                       int get_data_item_value_count();
+                       std::string get_unit();
                        void printout();
                protected:
                        double                          *val_matrix;
                        std::vector<plp::Date *>        date_list;
                        int                             row_count;
                        int                             column_count;
+                       std::string                     unit;
        };
 }