/* * Data.hh * * Created on: Dec 8, 2010 * Author: lamikr */ #ifndef DATA_HH_ #define DATA_HH_ #include #include #include #include "Date.hh" namespace w1 { class Data { public: Data(int size); Data(int size, double default_value, std::string unit_param); Data(std::vector *val_vector_param); Data(std::vector *val_vector_param, std::string unit_param); Data(std::vector *val_vector_param, plp::Date *date_param, std::string unit_param); Data(std::valarray *val_arr_param, plp::Date *date_param); virtual ~Data(); Data *clone(); void printout(); 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); std::string get_unit(); std::valarray value_arr; private: plp::Date date_time; std::string unit; }; class DataRange { public: DataRange(Data *data); 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(); std::string get_unit(); void printout(); protected: double *val_matrix; std::vector date_list; int row_count; int column_count; std::string unit; }; } #endif /* DATA_HH_ */