Imported Upstream version 3.5.1
[platform/upstream/ccache.git] / src / confitems.h
1 #ifndef CONFITEMS_H
2 #define CONFITEMS_H
3
4 #include "system.h"
5
6 typedef bool (*conf_item_parser)(const char *str, void *result, char **errmsg);
7 typedef bool (*conf_item_verifier)(void *value, char **errmsg);
8 typedef char *(*conf_item_formatter)(void *value);
9
10 struct conf_item {
11         const char *name;
12         size_t number;
13         size_t offset;
14         conf_item_parser parser;
15         conf_item_formatter formatter;
16         conf_item_verifier verifier;
17 };
18
19 bool confitem_parse_bool(const char *str, void *result, char **errmsg);
20 char *confitem_format_bool(void *value);
21
22 bool confitem_parse_env_string(const char *str, void *result, char **errmsg);
23 char *confitem_format_env_string(void *value);
24
25 bool confitem_parse_double(const char *str, void *result, char **errmsg);
26 char *confitem_format_double(void *value);
27
28 bool confitem_parse_size(const char *str, void *result, char **errmsg);
29 char *confitem_format_size(void *value);
30
31 bool confitem_parse_sloppiness(const char *str, void *result, char **errmsg);
32 char *confitem_format_sloppiness(void *value);
33
34 bool confitem_parse_string(const char *str, void *result, char **errmsg);
35 char *confitem_format_string(void *value);
36
37 bool confitem_parse_umask(const char *str, void *result, char **errmsg);
38 char *confitem_format_umask(void *value);
39
40 bool confitem_parse_unsigned(const char *str, void *result, char **errmsg);
41 char *confitem_format_unsigned(void *value);
42
43 bool confitem_verify_absolute_path(void *value, char **errmsg);
44 bool confitem_verify_dir_levels(void *value, char **errmsg);
45
46 const struct conf_item *confitems_get(const char *str, size_t len);
47 size_t confitems_count(void);
48
49 #endif