42#ifndef _ACFUTILS_CONF_H_
43#define _ACFUTILS_CONF_H_
48#if __STDC_VERSION__ >= 199901L
60typedef struct conf conf_t;
66API_EXPORT conf_t *
conf_read_file(
const char *filename,
int *errline);
67API_EXPORT conf_t *
conf_read(FILE *fp,
int *errline);
68API_EXPORT conf_t *
conf_read2(
void *fp,
int *errline, bool_t compressed);
69API_EXPORT conf_t *
conf_read_buf(
const void *buf,
size_t cap,
int *errline);
77API_EXPORT
void conf_merge(
const conf_t *conf_from, conf_t *conf_to);
81API_EXPORT bool_t conf_get_i(
const conf_t *
conf,
const char *key,
94 void *buf,
size_t cap);
96API_EXPORT
void conf_set_str(conf_t *
conf,
const char *key,
const char *value);
97API_EXPORT
void conf_set_i(conf_t *
conf,
const char *key,
int value);
99API_EXPORT
void conf_set_f(conf_t *
conf,
const char *key,
float value);
100API_EXPORT
void conf_set_d(conf_t *
conf,
const char *key,
double value);
101API_EXPORT
void conf_set_da(conf_t *
conf,
const char *key,
double value);
102API_EXPORT
void conf_set_b(conf_t *
conf,
const char *key, bool_t value);
104 const void *buf,
size_t sz);
107 PRINTF_FORMAT(
const char *fmt),
const char **value, ...) PRINTF_ATTR2(2, 4);
109 PRINTF_FORMAT(const
char *fmt),
int *value, ...) PRINTF_ATTR2(2, 4);
111 PRINTF_FORMAT(const
char *fmt),
long long *value, ...) PRINTF_ATTR2(2, 4);
113 PRINTF_FORMAT(const
char *fmt),
float *value, ...) PRINTF_ATTR2(2, 4);
115 PRINTF_FORMAT(const
char *fmt),
double *value, ...) PRINTF_ATTR2(2, 4);
117 PRINTF_FORMAT(const
char *fmt),
double *value, ...) PRINTF_ATTR2(2, 4);
119 PRINTF_FORMAT(const
char *fmt), bool_t *value, ...) PRINTF_ATTR2(2, 4);
121 PRINTF_FORMAT(const
char *fmt),
void *buf,
size_t cap, ...)
124API_EXPORT PRINTF_ATTR2(2, 4)
void conf_set_str_v(conf_t *
conf, PRINTF_FORMAT(const
char *fmt),
125 const
char *value, ...);
126API_EXPORT PRINTF_ATTR2(2, 4)
void conf_set_i_v(conf_t *
conf, PRINTF_FORMAT(const
char *fmt),
128API_EXPORT PRINTF_ATTR2(2, 4)
void conf_set_lli_v(conf_t *
conf, PRINTF_FORMAT(const
char *fmt),
129 long long value, ...);
130API_EXPORT PRINTF_ATTR2(2, 4)
void conf_set_f_v(conf_t *
conf, PRINTF_FORMAT(const
char *fmt),
132API_EXPORT PRINTF_ATTR2(2, 4)
void conf_set_d_v(conf_t *
conf, PRINTF_FORMAT(const
char *fmt),
134API_EXPORT PRINTF_ATTR2(2, 4)
void conf_set_da_v(conf_t *
conf, PRINTF_FORMAT(const
char *fmt),
137 PRINTF_FORMAT(const
char *fmt), bool_t value, ...);
139 PRINTF_FORMAT(const
char *fmt), const
void *buf,
size_t sz, ...);
141#if __STDC_VERSION__ >= 199901L || defined(__cplusplus)
142API_EXPORT
bool conf_get_b2(
const conf_t *
conf,
const char *key,
144API_EXPORT
void conf_set_b2(conf_t *
conf,
const char *key,
bool value);
145API_EXPORT PRINTF_ATTR2(2, 4) bool conf_get_b2_v(const conf_t *
conf,
146 PRINTF_FORMAT(const
char *fmt),
bool *value, ...);
152#define conf_set_b2_v conf_set_b_v
155API_EXPORT bool_t
conf_walk(
const conf_t *
conf,
const char **key,
156 const char **value,
void **cookie);
bool_t conf_get_da(const conf_t *conf, const char *key, double *value)
void conf_set_b(conf_t *conf, const char *key, bool_t value)
bool_t conf_get_lli_v(const conf_t *conf, const char *fmt, long long *value,...)
bool_t conf_get_d_v(const conf_t *conf, const char *fmt, double *value,...)
void conf_set_data_v(conf_t *conf, const char *fmt, const void *buf, size_t sz,...)
void conf_set_f(conf_t *conf, const char *key, float value)
bool_t conf_get_i_v(const conf_t *conf, const char *fmt, int *value,...)
bool_t conf_get_lli(const conf_t *conf, const char *key, long long *value)
void conf_set_da(conf_t *conf, const char *key, double value)
void conf_set_str(conf_t *conf, const char *key, const char *value)
void conf_set_data(conf_t *conf, const char *key, const void *buf, size_t sz)
bool_t conf_get_da_v(const conf_t *conf, const char *fmt, double *value,...)
bool_t conf_get_d(const conf_t *conf, const char *key, double *value)
bool_t conf_write(const conf_t *conf, FILE *fp)
void conf_set_d_v(conf_t *conf, const char *fmt, double value,...)
bool_t conf_get_b(const conf_t *conf, const char *key, bool_t *value)
void conf_set_lli_v(conf_t *conf, const char *fmt, long long value,...)
bool_t conf_walk(const conf_t *conf, const char **key, const char **value, void **cookie)
void conf_set_i_v(conf_t *conf, const char *fmt, int value,...)
conf_t * conf_read2(void *fp, int *errline, bool_t compressed)
conf_t * conf_read_buf(const void *buf, size_t cap, int *errline)
void conf_merge(const conf_t *conf_from, conf_t *conf_to)
bool_t conf_get_b_v(const conf_t *conf, const char *fmt, bool_t *value,...)
void conf_set_da_v(conf_t *conf, const char *fmt, double value,...)
conf_t * conf_read_file(const char *filename, int *errline)
void conf_set_f_v(conf_t *conf, const char *fmt, double value,...)
bool_t conf_get_str_v(const conf_t *conf, const char *fmt, const char **value,...)
conf_t * conf_read(FILE *fp, int *errline)
size_t conf_get_data_v(const conf_t *conf, const char *fmt, void *buf, size_t cap,...)
bool_t conf_get_f(const conf_t *conf, const char *key, float *value)
void conf_free(conf_t *conf)
void conf_set_i(conf_t *conf, const char *key, int value)
bool_t conf_get_f_v(const conf_t *conf, const char *fmt, float *value,...)
bool_t conf_write_file(const conf_t *conf, const char *filename)
void conf_set_b_v(conf_t *conf, const char *fmt, bool_t value,...)
bool_t conf_write_file2(const conf_t *conf, const char *filename, bool_t compressed)
bool_t conf_get_str(const conf_t *conf, const char *key, const char **value)
conf_t * conf_create_empty(void)
void conf_set_d(conf_t *conf, const char *key, double value)
size_t conf_get_data(const conf_t *conf, const char *key, void *buf, size_t cap)
size_t conf_write_buf(const conf_t *conf, void *buf, size_t cap)
conf_t * conf_create_copy(const conf_t *conf2)
void conf_set_lli(conf_t *conf, const char *key, long long value)