DataReader::DataReader(string device_id_param) {
string base_dir;
- device_config = NULL;
- device_id = device_id_param;
- base_dir = DeviceConfig::get_base_dir_name();
- device_dir = FileUtil::concat_paths(base_dir, device_id);
- device_ch_dir = FileUtil::concat_paths(base_dir, "cache");
- device_ch_dir = FileUtil::concat_paths(device_ch_dir, device_id);
+ log_debug("device_id: %s\n", device_id_param.c_str());
+ summary_calc_type = MEAN;
+ device_config = NULL;
+ device_id = device_id_param;
+ base_dir = DeviceConfig::get_base_dir_name();
+ device_dir = FileUtil::concat_paths(base_dir, device_id);
+ device_ch_dir = FileUtil::concat_paths(base_dir, "cache");
+ device_ch_dir = FileUtil::concat_paths(device_ch_dir, device_id);
}
DataReader::~DataReader() {
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;
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();
}
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;
if (data != NULL) {
date = data->get_date();
ret_val = get_daily_summary(&date, calc_type_param);
+ delete(data);
}
return ret_val;
}
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();
}
}
/**
- * Read device type from the device specific config file
+ * Read device type from the device specific config file.
+ *
+ * @rerurn string representing device type.
+ * In the case of error, an empty string is returned.
*/
-string DataReader::get_device_type() {
- string ret_val;
+bool DataReader::get_device_type(string& type_param) {
+ bool ret_val;
+ ret_val = false;
if (device_config == NULL) {
device_config = DeviceConfig::get_device_config(device_id);
- ret_val = device_config->get_cfg_value(DEVICE_CONFIG_VALUE_KEY__TYPE);
+ }
+ if (device_config != NULL) {
+ ret_val = device_config->get_config_value(DEVICE_CONFIG_VALUE_KEY__TYPE, type_param);
}
return ret_val;
}