X-Git-Url: http://pilppa.org/gitweb/?a=blobdiff_plain;f=src%2FW1Device.cc;h=4111dd9cb8c485e61733c7428e02ca7a6b230ba7;hb=cad6fd5749ae467e006bd3ae62666fe8c92cdf20;hp=22f555960dad5d9a9e1e7de48fd8f9560fe83b52;hpb=9e569babf7e271015fedac3b7153d9035ff17ee0;p=lib1wire.git diff --git a/src/W1Device.cc b/src/W1Device.cc index 22f5559..4111dd9 100644 --- a/src/W1Device.cc +++ b/src/W1Device.cc @@ -45,6 +45,7 @@ W1Device::W1Device(string device_id_param, } reader = new DataReader(id); name = ""; + _cfg = NULL; } W1Device::~W1Device() { @@ -56,28 +57,26 @@ 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) { - cfg->get_config_value(DEVICE_CONFIG_VALUE_KEY__NAME, 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, true); - 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); } } } @@ -168,6 +167,6 @@ void W1Device::save_and_clean_cache() { pthread_mutex_unlock(&plock); } -const DataReader *W1Device::get_device_data() { +const DataReader *W1Device::get_datareader() { return reader; }