22 #ifndef INI_CONFIGOBJ_H
23 #define INI_CONFIGOBJ_H
25 #include <sys/types.h>
30 #include "simplebuffer.h"
42 #define INI_STOP_ON_ANY 0
44 #define INI_STOP_ON_NONE 1
46 #define INI_STOP_ON_ERROR 2
58 #define ERR_LONGDATA 1
60 #define ERR_NOCLOSESEC 2
62 #define ERR_NOSECTION 3
64 #define ERR_SECTIONLONG 4
78 #define ERR_DUPKEYSEC 11
80 #define ERR_DUPSECTION 12
83 #define ERR_MAXPARSE ERR_DUPSECTION
98 #define INI_META_NONE 0
100 #define INI_META_STATS 1
119 #define INI_ACCESS_CHECK_MODE 0x00000001
127 #define INI_ACCESS_CHECK_UID 0x00000002
135 #define INI_ACCESS_CHECK_GID 0x00000004
159 #define INI_MV1S_OVERWRITE 0x0000
161 #define INI_MV1S_ERROR 0x0001
163 #define INI_MV1S_PRESERVE 0x0002
165 #define INI_MV1S_ALLOW 0x0003
167 #define INI_MV1S_DETECT 0x0004
186 #define INI_MV2S_OVERWRITE 0x0000
188 #define INI_MV2S_ERROR 0x0010
190 #define INI_MV2S_PRESERVE 0x0020
192 #define INI_MV2S_ALLOW 0x0030
194 #define INI_MV2S_DETECT 0x0040
212 #define INI_MS_MERGE 0x0000
214 #define INI_MS_ERROR 0x0100
216 #define INI_MS_OVERWRITE 0x0200
218 #define INI_MS_PRESERVE 0x0300
220 #define INI_MS_ALLOW 0x0400
222 #define INI_MS_DETECT 0x0500
244 struct ini_parse_error;
259 int ini_config_create(
struct ini_cfgobj **ini_config);
262 void ini_config_destroy(
struct ini_cfgobj *ini_config);
265 int ini_config_file_open(
const char *filename,
267 uint32_t collision_flags,
268 uint32_t metadata_flags,
269 struct ini_cfgfile **file_ctx);
272 int ini_config_file_reopen(
struct ini_cfgfile *file_ctx_in,
273 struct ini_cfgfile **file_ctx_out);
276 void ini_config_file_close(
struct ini_cfgfile *file_ctx);
279 void ini_config_file_destroy(
struct ini_cfgfile *file_ctx);
282 unsigned ini_config_error_count(
struct ini_cfgfile *file_ctx);
285 int ini_config_get_errors(
struct ini_cfgfile *file_ctx,
289 const char *ini_config_get_filename(
struct ini_cfgfile *file_ctx);
292 void ini_config_free_errors(
char **errors);
295 int ini_config_parse(
struct ini_cfgfile *file_ctx,
296 struct ini_cfgobj *ini_config);
299 int ini_config_copy(
struct ini_cfgobj *ini_config,
300 struct ini_cfgobj **ini_new);
303 void ini_config_print_errors(FILE *file,
char **error_list);
306 int ini_config_merge(
struct ini_cfgobj *first,
307 struct ini_cfgobj *second,
308 uint32_t collision_flags,
309 struct ini_cfgobj **result);
315 int ini_config_set_wrap(
struct ini_cfgobj *ini_config,
319 int ini_config_serialize(
struct ini_cfgobj *ini_config,
320 struct simplebuffer *sbobj);
323 int ini_config_access_check(
struct ini_cfgfile *file_ctx,
335 int ini_config_changed(
struct ini_cfgfile *file_ctx1,
336 struct ini_cfgfile *file_ctx2,
475 unsigned long *value);
483 #ifdef THE_PART_I_HAVE_PROCESSED
unsigned char get_bool_config_value(struct collection_item *item, unsigned char def, int *error)
Convert item value into a logical value.
Definition: ini_get_value.c:406
char ** get_section_list(struct collection_item *ini_config, int *size, int *error)
Get list of sections.
Definition: ini_list.c:66
double * get_double_config_array(struct collection_item *item, int *size, int *error)
Convert value to an array of floating point values.
Definition: ini_get_array.c:274
void free_double_config_array(double *array)
Free array of floating pointer values.
Definition: ini_get_array.c:353
char * get_bin_config_value(struct collection_item *item, int *length, int *error)
Convert item value into a binary sequence.
Definition: ini_get_value.c:502
unsigned long get_ulong_config_value(struct collection_item *item, int strict, unsigned long def, int *error)
Convert item value to unsigned long number.
Definition: ini_get_value.c:269
const char * get_const_string_config_value(struct collection_item *item, int *error)
Function returns the string stored in the item.
Definition: ini_get_value.c:474
char ** get_attribute_list(struct collection_item *ini_config, const char *section, int *size, int *error)
Get list of attributes.
Definition: ini_list.c:90
long * get_long_config_array(struct collection_item *item, int *size, int *error)
Convert value to an array of long values.
Definition: ini_get_array.c:204
int32_t get_int32_config_value(struct collection_item *item, int strict, int32_t def, int *error)
Convert item value to integer number.
Definition: ini_get_value.c:295
uint32_t get_uint32_config_value(struct collection_item *item, int strict, uint32_t def, int *error)
Convert item value to integer number.
Definition: ini_get_value.c:311
char * get_string_config_value(struct collection_item *item, int *error)
Get string configuration value.
Definition: ini_get_value.c:445
int64_t get_int64_config_value(struct collection_item *item, int strict, int64_t def, int *error)
Convert item value to integer number.
Definition: ini_get_value.c:327
void free_section_list(char **section_list)
Free list of sections.
Definition: ini_list.c:43
double get_double_config_value(struct collection_item *item, int strict, double def, int *error)
Convert item value to floating point number.
Definition: ini_get_value.c:362
void free_attribute_list(char **attr_list)
Free list of attributes.
Definition: ini_list.c:53
void free_string_config_array(char **str_config)
Free array of string values.
Definition: ini_get_array.c:187
int get_int_config_value(struct collection_item *item, int strict, int def, int *error)
Convert item value to integer number.
Definition: ini_get_value.c:192
uint64_t get_uint64_config_value(struct collection_item *item, int strict, uint64_t def, int *error)
Convert item value to integer number.
Definition: ini_get_value.c:343
unsigned get_unsigned_config_value(struct collection_item *item, int strict, unsigned def, int *error)
Convert item value to unsigned integer number.
Definition: ini_get_value.c:217
void free_bin_config_value(char *bin)
Free binary buffer.
Definition: ini_get_value.c:586
void free_long_config_array(long *array)
Free array of long values.
Definition: ini_get_array.c:347
long get_long_config_value(struct collection_item *item, int strict, long def, int *error)
Convert item value to long number.
Definition: ini_get_value.c:243
char ** get_string_config_array(struct collection_item *item, const char *sep, int *size, int *error)
Convert value to an array of strings.
Definition: ini_get_array.c:172
char ** get_raw_string_config_array(struct collection_item *item, const char *sep, int *size, int *error)
Convert value to an array of strings.
Definition: ini_get_array.c:179