blob: 9185e14ede5567dd7b9d848d0967c3ec88ad2434 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
/*
INI LIBRARY
Header for the internal structures used by INI interface.
Copyright (C) Dmitri Pal <dpal@redhat.com> 2010
INI Library is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
INI Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with INI Library. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef INI_CONFIG_PRIV_H
#define INI_CONFIG_PRIV_H
#include "collection.h"
/* Configuration object */
struct ini_cfgobj {
/* For now just a collection */
struct collection_item *cfg;
/* Boundary */
uint32_t boundary;
/*... */
/* Statistics? Timestamps? When created? Modified? - TBD */
/*... */
};
/* Configuration file object */
struct ini_cfgfile {
/***********************************/
/* Externally controlled variables */
/***********************************/
/* File name for the configuration file */
char *filename;
/* File stream */
FILE *file;
/* File descriptor that is passed in */
int fd;
/* Error level */
int error_level;
/* Collision flags - define how to merge things */
uint32_t collision_flags;
/* Collision flags - define how to merge things */
uint32_t metadata_flags;
/**********************/
/* Internal variables */
/**********************/
/* Collection of errors detected during parsing */
struct collection_item *error_list;
/* Metadata about the file */
struct collection_item *metadata;
/* Count of error lines */
unsigned count;
};
/* Parsing error */
struct ini_parse_error {
unsigned line;
int error;
};
/* Internal cleanup callback */
void ini_cleanup_cb(const char *property,
int property_len,
int type,
void *data,
int length,
void *custom_data);
#endif
|