00001
00002
00003
00004
00005 #ifndef _U_CONFIG_H_
00006 #define _U_CONFIG_H_
00007 #include "libu_conf.h"
00008
00009 #ifdef __cplusplus
00010 extern "C" {
00011 #endif
00012
00013 struct u_config_s;
00014 typedef struct u_config_s u_config_t;
00015
00016 int u_config_create(u_config_t **pc);
00017 int u_config_free(u_config_t *c);
00018 int u_config_load(u_config_t *c, int fd, int overwrite);
00019
00020 typedef char* (*u_config_gets_t)(void *arg, char *buf, size_t size);
00021 int u_config_load_from(u_config_t *c, u_config_gets_t cb,
00022 void *arg, int overwrite);
00023
00024 const char* u_config_get_key(u_config_t *c);
00025 const char* u_config_get_value(u_config_t *c);
00026
00027 int u_config_get_subkey(u_config_t *c, const char *subkey, u_config_t **pc);
00028 int u_config_get_subkey_nth(u_config_t *c,const char *subkey, int n,
00029 u_config_t **pc);
00030
00031 const char* u_config_get_subkey_value(u_config_t *c, const char *subkey);
00032
00033 int u_config_get_subkey_value_b(u_config_t *c, const char *subkey, int def,
00034 int *out);
00035 int u_config_get_subkey_value_i(u_config_t *c, const char *subkey, int def,
00036 int *out);
00037
00038 int u_config_add_key(u_config_t *c, const char *key, const char *val);
00039 int u_config_set_key(u_config_t *c, const char *key, const char *val);
00040
00041 int u_config_add_child(u_config_t *c, const char *key, u_config_t **pc);
00042 u_config_t* u_config_get_child_n(u_config_t *c, const char *key, int n);
00043 u_config_t* u_config_get_child(u_config_t *c, const char *key);
00044
00045 void u_config_print(u_config_t *c, int lev);
00046
00047 #ifdef __cplusplus
00048 }
00049 #endif
00050
00051 #endif