X-Git-Url: http://pilppa.org/gitweb/?p=libplp.git;a=blobdiff_plain;f=src%2FDataReader.cc;fp=src%2FDataReader.cc;h=c1dfb489c65ecd51b9388e616916f437e71f64e0;hp=e6f184a050637fec945d9363924ebc0a7c9a9bea;hb=fb1be129d4304d68e42f3e30710968a0899e5482;hpb=88183ebdd35a2bd340d949382f593466dfc887de diff --git a/src/DataReader.cc b/src/DataReader.cc index e6f184a..c1dfb48 100644 --- a/src/DataReader.cc +++ b/src/DataReader.cc @@ -194,11 +194,15 @@ DataRange *DataReader::get_summary(Date *date_param, ret_val->printout(); } else { - log_error("Could not read data log for device: %s\n", device_id.c_str()); + log_error("%s: Could not read data log for device %s. Data not found.\n", + date_param->to_string().c_str(), + device_id.c_str()); } } else { - log_error("Could not read data log for device: %s\n", device_id.c_str()); + log_error("%s: Could not read data log for device: %s. Memory allocation error..\n", + date_param->to_string().c_str(), + device_id.c_str()); } delete(store); return ret_val; @@ -229,15 +233,17 @@ DataRange *DataReader::get_yearly_summary(Date *start_date, ret_val = NULL; date = start_date->clone(); while(date->before_or_equal_year(end_date)) { - data = get_yearly_summary(date); - if (data != NULL) { - if (ret_val == NULL) { - ret_val = new DataRange(data); - } - else { - ret_val->add(data); + if (StoreDay::exist_in_year(device_id, date, false)) { + data = get_yearly_summary(date); + if (data != NULL) { + if (ret_val == NULL) { + ret_val = new DataRange(data); + } + else { + ret_val->add(data); + } + delete(data); } - delete(data); } date->next_year(); } @@ -270,17 +276,19 @@ DataRange *DataReader::get_monthly_summary(Date *start_date, ret_val = NULL; date = start_date->clone(); while(date->before_or_equal_month(end_date)) { - data = get_monthly_summary(date); - if (data != NULL) { - if (ret_val == NULL) { - ret_val = new DataRange(data); - } - else { - ret_val->add(data); + if (StoreDay::exist_in_month(device_id, date, false)) { + data = get_monthly_summary(date); + if (data != NULL) { + if (ret_val == NULL) { + ret_val = new DataRange(data); + } + else { + ret_val->add(data); + } + delete(data); } - delete(data); + date->next_month(); } - date->next_month(); } delete(date); return ret_val; @@ -340,15 +348,17 @@ DataRange *DataReader::get_daily_summary(Date *start_date, ret_val = NULL; date = start_date->clone(); while(date->before_or_equal_day(end_date)) { - data = get_daily_summary(date); - if (data != NULL) { - if (ret_val == NULL) { - ret_val = new DataRange(data); - } - else { - ret_val->add(data); + if (StoreDay::exist(device_id, date, false)) { + data = get_daily_summary(date); + if (data != NULL) { + if (ret_val == NULL) { + ret_val = new DataRange(data); + } + else { + ret_val->add(data); + } + delete(data); } - delete(data); } date->next_day(); }