38#include "xtc_export.h"
45typedef enum xtc_cfg_kind {
54typedef int (*xtc_cfg_validator_fn)(
const void *new_val,
void *user);
55typedef void (*xtc_cfg_changed_fn)(
const char *name,
const void *old_val,
56 const void *new_val,
void *user);
59typedef struct xtc_cfg_spec {
61 const char *short_desc;
82 const char *
const *enum_labels;
86 xtc_cfg_validator_fn validator;
87 xtc_cfg_changed_fn on_change;
116XTC_API
int xtc_cfg_unregister(
const char *name);
118XTC_API
int xtc_cfg_get_bool(
const char *name,
int *out);
119XTC_API
int xtc_cfg_get_int(
const char *name,
int *out);
120XTC_API
int xtc_cfg_get_int64(
const char *name, int64_t *out);
121XTC_API
int xtc_cfg_get_double(
const char *name,
double *out);
122XTC_API
int xtc_cfg_get_string(
const char *name,
const char **out);
123XTC_API
int xtc_cfg_get_enum(
const char *name,
int *out);
125XTC_API
int xtc_cfg_set_bool(
const char *name,
int v);
126XTC_API
int xtc_cfg_set_int(
const char *name,
int v);
127XTC_API
int xtc_cfg_set_int64(
const char *name, int64_t v);
128XTC_API
int xtc_cfg_set_double(
const char *name,
double v);
129XTC_API
int xtc_cfg_set_string(
const char *name,
const char *v);
130XTC_API
int xtc_cfg_set_enum(
const char *name,
int v);
132XTC_API
int xtc_cfg_count(
void);
133XTC_API
int xtc_cfg_kind(
const char *name, xtc_cfg_kind_t *out);
141XTC_API
int xtc_cfg_load_file(
const char *path);
148XTC_API
int xtc_cfg_reload(
void);