]> pilppa.org Git - lib1wire.git/blobdiff - src/Factory.cc
configuration data related changes
[lib1wire.git] / src / Factory.cc
index 9d704b59e32b620489bd1174df32458a68e1c375..76f1a1381ec2e626e1b5a8b4081d3ac03dab2d17 100644 (file)
@@ -78,7 +78,7 @@ string Factory::get_device_type_by_family_code(int family_code_param) {
        return ret_val;
 }
 
-Device *Factory::create_w1_device(int family_code_param,
+Device *Factory::create_device(int family_code_param,
                        string device_id_param,
                        dirent *direntry_param) {
        Device          *ret_val;
@@ -87,7 +87,7 @@ Device *Factory::create_w1_device(int family_code_param,
        ret_val = NULL;
        type    = get_device_type_by_family_code(family_code_param);
        if (type.empty() == false) {
-               ret_val = create_w1_device(family_code_param,
+               ret_val = create_device(family_code_param,
                                        type,
                                        device_id_param,
                                        direntry_param);
@@ -95,12 +95,13 @@ Device *Factory::create_w1_device(int family_code_param,
        return ret_val;
 }
 
-Device *Factory::create_w1_device(int device_w1_family_code_param,
+Device *Factory::create_device(int device_w1_family_code_param,
                        string device_type_param,
                        string device_id_param,
                        dirent *direntry_param) {
        Device          *ret_val;
        DeviceConfig    *config;
+       bool            succ;
 
        ret_val = NULL;
        if (device_type_param.empty() == false) {
@@ -124,11 +125,11 @@ Device *Factory::create_w1_device(int device_w1_family_code_param,
                        config  = DeviceConfig::get_device_config(device_id_param);
                        if (config != NULL) {
                                // if not, create default device config
-                               device_type_param       = config->get_config_value(DEVICE_CONFIG_VALUE_KEY__TYPE);
-                               if (device_type_param.empty() == true) {
+                               succ    = config->get_config_value(DEVICE_CONFIG_VALUE_KEY__TYPE, device_type_param);
+                               if (succ == false) {
                                        device_type_param       = ret_val->get_type();
-                                       config->set_config_value(DEVICE_CONFIG_VALUE_KEY__TYPE, device_type_param);
-                                       config->set_config_value(DEVICE_CONFIG_VALUE_KEY__ID, ret_val->get_id());
+                                       config->set_config_value(DEVICE_CONFIG_VALUE_KEY__TYPE, device_type_param, false);
+                                       config->set_config_value(DEVICE_CONFIG_VALUE_KEY__ID, ret_val->get_id(), true);
                                }
                                delete(config);
                        }
@@ -137,7 +138,7 @@ Device *Factory::create_w1_device(int device_w1_family_code_param,
        return ret_val;
 }
 
-Device *Factory::create_w1_device(string device_type_param,
+Device *Factory::create_device(string device_type_param,
                        string device_id_param) {
        int     family_code;
        Device  *ret_val;
@@ -146,13 +147,13 @@ Device *Factory::create_w1_device(string device_type_param,
        if (device_type_param.empty() == false) {
                family_code     = get_family_code_by_device_type(device_type_param);
                if (family_code != -1) {
-                       ret_val = create_w1_device(family_code, device_type_param, device_id_param, NULL);
+                       ret_val = create_device(family_code, device_type_param, device_id_param, NULL);
                }
        }
        return ret_val;
 }
 
-Device *Factory::create_w1_device(dirent *direntry_param,
+Device *Factory::create_device(dirent *direntry_param,
                                int *err_code_param) {
        string  folder_name;
        string  tmp_str;
@@ -175,7 +176,7 @@ Device *Factory::create_w1_device(dirent *direntry_param,
                        if (suc_flg == true) {
                                log_debug("1-wire device family code: %#x\n", family_code);
                                device_id       = folder_name.substr(pos + 1, folder_name.length() - pos);
-                               ret_val         = Factory::create_w1_device(family_code,
+                               ret_val         = Factory::create_device(family_code,
                                                                device_id,
                                                                direntry_param);
                                if ((ret_val == NULL) &&
@@ -213,7 +214,7 @@ list<Device *> Factory::get_device_list() {
                        is_subdir       = FileUtil::is_subdirectory(W1_SCAN_ROOTDIR, direntry);
                        if (is_subdir == true) {
                                err_flg = 0;
-                               device  = create_w1_device(direntry, &err_flg);
+                               device  = create_device(direntry, &err_flg);
                                if (device != NULL) {
                                        ret_val.push_back(device);
                                }
@@ -246,9 +247,9 @@ list<Device *> Factory::get_device_list() {
                }
                if (found == false) {
                        // reader device is not in the list of active devices. create and add it to list as in-active one...
-                       type    = reader->get_device_type();
-                       if (type.empty() == false) {
-                               device  = create_w1_device(type, id1);
+                       found   = reader->get_device_type(type);
+                       if (found == true) {
+                               device  = create_device(type, id1);
                                if (device != NULL) {
                                        ret_val.push_back(device);
                                }