}
reader = new DataReader(id);
name = "";
+ _cfg = NULL;
}
W1Device::~W1Device() {
}
}
-string W1Device::get_name() {
- DeviceConfig *cfg;
-
+string Device::get_name() {
if (name.empty() == true) {
- cfg = DeviceConfig::get_device_config(id);
- if (cfg != NULL) {
- name = cfg->get_config_value(DEVICE_CONFIG_VALUE_KEY__NAME);
- delete(cfg);
+ if (_cfg == NULL) {
+ _cfg = DeviceConfig::get_device_config(id);
+ }
+ if (_cfg != NULL) {
+ _cfg->get_config_value(DEVICE_CONFIG_VALUE_KEY__NAME, name);
}
}
return name;
}
-void W1Device::set_name(string name_param) {
- DeviceConfig *cfg;
-
+void Device::set_name(string name_param) {
if (name.compare(name_param) != 0) {
name = name_param;
- cfg = DeviceConfig::get_device_config(id);
- if (cfg != NULL) {
- cfg->set_config_value(DEVICE_CONFIG_VALUE_KEY__NAME, name_param);
- delete(cfg);
+ if (_cfg == NULL) {
+ _cfg = DeviceConfig::get_device_config(id);
+ }
+ if (_cfg != NULL) {
+ _cfg->set_config_value(DEVICE_CONFIG_VALUE_KEY__NAME, name_param, true);
}
}
}
pthread_mutex_unlock(&plock);
}
-const DataReader *W1Device::get_device_data() {
+const DataReader *W1Device::get_datareader() {
return reader;
}