X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=src%2Fecoli_config.c;h=c8cd316678a40ba2b5d40e09ebadd6dc4f1b6b72;hb=a83942778fc85ad92db9082cf0d7c2d958d98aaf;hp=66d92325589f432e4dc1685b1eab7a1fd1870bb4;hpb=18d03456d96f7a086a2ccc82ce97fcf056848d90;p=protos%2Flibecoli.git diff --git a/src/ecoli_config.c b/src/ecoli_config.c index 66d9232..c8cd316 100644 --- a/src/ecoli_config.c +++ b/src/ecoli_config.c @@ -10,7 +10,7 @@ #include #include -#include +#include #include #include #include @@ -29,7 +29,7 @@ static int __ec_config_dump(FILE *out, const char *key, const struct ec_config *config, size_t indent); static int -ec_config_dict_validate(const struct ec_keyval *dict, +ec_config_dict_validate(const struct ec_dict *dict, const struct ec_config_schema *schema); bool @@ -324,9 +324,9 @@ struct ec_config * ec_config_dict(void) { struct ec_config *value = NULL; - struct ec_keyval *dict = NULL; + struct ec_dict *dict = NULL; - dict = ec_keyval(); + dict = ec_dict(); if (dict == NULL) goto fail; @@ -340,7 +340,7 @@ ec_config_dict(void) return value; fail: - ec_keyval_free(dict); + ec_dict_free(dict); ec_free(value); return NULL; } @@ -428,7 +428,7 @@ ec_config_free(struct ec_config *value) } break; case EC_CONFIG_TYPE_DICT: - ec_keyval_free(value->dict); + ec_dict_free(value->dict); break; default: break; @@ -455,34 +455,32 @@ ec_config_list_cmp(const struct ec_config_list *list1, return 0; } -/* XXX -> ec_keyval_cmp() */ +/* XXX -> ec_dict_cmp() */ static int -ec_config_dict_cmp(const struct ec_keyval *d1, - const struct ec_keyval *d2) +ec_config_dict_cmp(const struct ec_dict *d1, + const struct ec_dict *d2) { const struct ec_config *v1, *v2; - struct ec_keyval_iter *iter = NULL; + struct ec_dict_elt_ref *iter = NULL; const char *key; - if (ec_keyval_len(d1) != ec_keyval_len(d2)) + if (ec_dict_len(d1) != ec_dict_len(d2)) return -1; - for (iter = ec_keyval_iter(d1); - ec_keyval_iter_valid(iter); - ec_keyval_iter_next(iter)) { - key = ec_keyval_iter_get_key(iter); - v1 = ec_keyval_iter_get_val(iter); - v2 = ec_keyval_get(d2, key); + for (iter = ec_dict_iter(d1); + iter != NULL; + iter = ec_dict_iter_next(iter)) { + key = ec_dict_iter_get_key(iter); + v1 = ec_dict_iter_get_val(iter); + v2 = ec_dict_get(d2, key); if (ec_config_cmp(v1, v2)) goto fail; } - ec_keyval_iter_free(iter); return 0; fail: - ec_keyval_iter_free(iter); return -1; } @@ -552,20 +550,20 @@ ec_config_list_validate(const struct ec_config_list *list, } static int -ec_config_dict_validate(const struct ec_keyval *dict, +ec_config_dict_validate(const struct ec_dict *dict, const struct ec_config_schema *schema) { const struct ec_config *value; - struct ec_keyval_iter *iter = NULL; + struct ec_dict_elt_ref *iter = NULL; const struct ec_config_schema *sch; const char *key; - for (iter = ec_keyval_iter(dict); - ec_keyval_iter_valid(iter); - ec_keyval_iter_next(iter)) { + for (iter = ec_dict_iter(dict); + iter != NULL; + iter = ec_dict_iter_next(iter)) { - key = ec_keyval_iter_get_key(iter); - value = ec_keyval_iter_get_val(iter); + key = ec_dict_iter_get_key(iter); + value = ec_dict_iter_get_val(iter); sch = ec_config_schema_lookup(schema, key); if (sch == NULL || sch->type != value->type) { errno = EBADMSG; @@ -582,11 +580,9 @@ ec_config_dict_validate(const struct ec_keyval *dict, } } - ec_keyval_iter_free(iter); return 0; fail: - ec_keyval_iter_free(iter); return -1; } @@ -621,7 +617,7 @@ ec_config_dict_get(const struct ec_config *config, const char *key) return NULL; } - return ec_keyval_get(config->dict, key); + return ec_dict_get(config->dict, key); } struct ec_config * @@ -657,7 +653,7 @@ int ec_config_dict_set(struct ec_config *config, const char *key, goto fail; } - return ec_keyval_set(config->dict, key, value, + return ec_dict_set(config->dict, key, value, (void (*)(void *))free_cb); fail: @@ -676,7 +672,7 @@ int ec_config_dict_del(struct ec_config *config, const char *key) return -1; } - return ec_keyval_del(config->dict, key); + return ec_dict_del(config->dict, key); } /* value is consumed */ @@ -735,33 +731,31 @@ fail: } static struct ec_config * -ec_config_dict_dup(const struct ec_keyval *dict) +ec_config_dict_dup(const struct ec_dict *dict) { struct ec_config *dup = NULL, *value; - struct ec_keyval_iter *iter = NULL; + struct ec_dict_elt_ref *iter = NULL; const char *key; dup = ec_config_dict(); if (dup == NULL) goto fail; - for (iter = ec_keyval_iter(dict); - ec_keyval_iter_valid(iter); - ec_keyval_iter_next(iter)) { - key = ec_keyval_iter_get_key(iter); - value = ec_config_dup(ec_keyval_iter_get_val(iter)); + for (iter = ec_dict_iter(dict); + iter != NULL; + iter = ec_dict_iter_next(iter)) { + key = ec_dict_iter_get_key(iter); + value = ec_config_dup(ec_dict_iter_get_val(iter)); if (value == NULL) goto fail; if (ec_config_dict_set(dup, key, value) < 0) goto fail; } - ec_keyval_iter_free(iter); return dup; fail: ec_config_free(dup); - ec_keyval_iter_free(iter); return NULL; } @@ -816,11 +810,11 @@ ec_config_list_dump(FILE *out, const char *key, } static int -ec_config_dict_dump(FILE *out, const char *key, const struct ec_keyval *dict, +ec_config_dict_dump(FILE *out, const char *key, const struct ec_dict *dict, size_t indent) { const struct ec_config *value; - struct ec_keyval_iter *iter; + struct ec_dict_elt_ref *iter; const char *k; fprintf(out, "%*s" "%s%s%stype=dict\n", (int)indent * 4, "", @@ -828,19 +822,17 @@ ec_config_dict_dump(FILE *out, const char *key, const struct ec_keyval *dict, key ? key: "", key ? " ": ""); - for (iter = ec_keyval_iter(dict); - ec_keyval_iter_valid(iter); - ec_keyval_iter_next(iter)) { - k = ec_keyval_iter_get_key(iter); - value = ec_keyval_iter_get_val(iter); + for (iter = ec_dict_iter(dict); + iter != NULL; + iter = ec_dict_iter_next(iter)) { + k = ec_dict_iter_get_key(iter); + value = ec_dict_iter_get_val(iter); if (__ec_config_dump(out, k, value, indent + 1) < 0) goto fail; } - ec_keyval_iter_free(iter); return 0; fail: - ec_keyval_iter_free(iter); return -1; } @@ -989,7 +981,7 @@ static const struct ec_config_schema sch_baseconfig[] = { static int ec_config_testcase(void) { struct ec_node *node = NULL; - struct ec_keyval *dict = NULL; + struct ec_dict *dict = NULL; const struct ec_config *value = NULL; struct ec_config *config = NULL, *config2 = NULL; struct ec_config *list = NULL, *subconfig = NULL; @@ -1147,7 +1139,7 @@ static int ec_config_testcase(void) ec_config_free(list); ec_config_free(subconfig); ec_config_free(config); - ec_keyval_free(dict); + ec_dict_free(dict); ec_node_free(node); return testres; @@ -1157,7 +1149,7 @@ fail: ec_config_free(subconfig); ec_config_free(config); ec_config_free(config2); - ec_keyval_free(dict); + ec_dict_free(dict); ec_node_free(node); return -1;