1 /*
2  * ini.h
3  */
4 
5 #ifndef _lub_ini_h
6 #define _lub_ini_h
7 
8 #include "lub/c_decl.h"
9 #include "lub/list.h"
10 
11 typedef struct lub_pair_s lub_pair_t;
12 typedef struct lub_ini_s lub_ini_t;
13 typedef lub_list_node_t lub_ini_node_t;
14 
15 _BEGIN_C_DECL
16 
17 /* Pair */
18 int lub_pair_compare(const void *first, const void *second);
19 void lub_pair_init(lub_pair_t *instance, const char *name, const char *value);
20 lub_pair_t *lub_pair_new(const char *name, const char *value);
21 void lub_pair_fini(lub_pair_t *instance);
22 void lub_pair_free(lub_pair_t *instance);
23 const char *lub_pair__get_name(const lub_pair_t *instance);
24 void lub_pair__set_name(lub_pair_t *instance, const char *name);
25 const char *lub_pair__get_value(const lub_pair_t *instance);
26 void lub_pair__set_value(lub_pair_t *instance, const char *value);
27 
28 /* Ini */
29 void lub_ini_init(lub_ini_t *instance);
30 lub_ini_t *lub_ini_new(void);
31 void lub_ini_fini(lub_ini_t *instance);
32 void lub_ini_free(lub_ini_t *instance);
33 lub_pair_t *lub_ini_find_pair(const lub_ini_t *instance, const char *name);
34 const char *lub_ini_find(const lub_ini_t *instance, const char *name);
35 void lub_ini_add(lub_ini_t *instance, lub_pair_t *pair);
36 int lub_ini_parse_str(lub_ini_t *instance, const char *ini);
37 int lub_ini_parse_file(lub_ini_t *instance, const char *fn);
38 lub_ini_node_t *lub_ini__get_head(lub_ini_t *instance);
39 lub_ini_node_t *lub_ini__get_tail(lub_ini_t *instance);
40 lub_ini_node_t *lub_ini__get_next(lub_ini_node_t *node);
41 lub_ini_node_t *lub_ini__get_prev(lub_ini_node_t *node);
42 lub_pair_t *lub_ini__iter_data(lub_ini_node_t *node);
43 
44 _END_C_DECL
45 
46 #endif				/* _lub_ini_h */
47