/* * Store.cc * * Created on: Jan 20, 2011 * Author: lamikr */ #include #include #include "log.h" #include "Store.hh" using namespace std; using namespace plp; Store::Store(string device_id_param, Date *date_param) { device_id = device_id_param; if (date_param != NULL) { date = date_param->clone(); } else { date = NULL; } store_data = NULL; range_data = NULL; } Store::~Store() { if (store_data != NULL) { delete(store_data); store_data = NULL; } if (date != NULL) { delete(date); } } bool Store::load(string fname_param) { Data *data; ifstream in; string data_str; bool ret_val; ret_val = false; if (store_data != NULL) { delete(store_data); store_data = NULL; } if (access(fname_param.c_str(), R_OK) == 0) { //log_debug("opening file: %s\n", fname_param.c_str()); in.open(fname_param.c_str()); if (in.is_open() == true) { while (in.eof() == false) { getline(in, data_str); if (data_str.empty() == false) { data = Data::parse_string(data_str); if (data != NULL) { if (store_data == NULL) { store_data = new DataRange(data); } else { store_data->add(data); } delete(data); } } } ret_val = true; } else { log_error("Could not open data file: %s\n", fname_param.c_str()); } } else { log_error("Could not find file: %s\n", fname_param.c_str()); } return ret_val; }