/* * Data.hh * * Created on: Dec 8, 2010 * Author: lamikr */ #ifndef DATA_HH_ #define DATA_HH_ #include #include #include #include "Date.hh" namespace plp { 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); int get_value_count(); double get(int indx); std::string get_unit(); std::valarray value_arr; private: plp::Date date_time; std::string unit; }; class DataRange { public: DataRange(); DataRange(Data *data); DataRange(DataRange *datarange); DataRange(int item_count_per_value, std::string unit_param); virtual ~DataRange(); 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 date_list; int row_count; int column_count; std::string unit; }; } #endif /* DATA_HH_ */