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
|
#ifndef CONFIG_REQUEST_H
#define CONFIG_REQUEST_H
#include "settings-parser.h"
#include "config-filter.h"
struct master_service_settings_output;
enum config_dump_scope {
/* Dump all settings, including hidden settings */
CONFIG_DUMP_SCOPE_ALL_WITH_HIDDEN,
/* Dump all non-hidden settings */
CONFIG_DUMP_SCOPE_ALL_WITHOUT_HIDDEN,
/* Dump all that have explicitly been set */
CONFIG_DUMP_SCOPE_SET,
/* Dump only settings that differ from defaults */
CONFIG_DUMP_SCOPE_CHANGED
};
enum config_dump_flags {
CONFIG_DUMP_FLAG_CHECK_SETTINGS = 0x01,
CONFIG_DUMP_FLAG_HIDE_LIST_DEFAULTS = 0x02,
/* Errors are reported using callback and they don't stop handling */
CONFIG_DUMP_FLAG_CALLBACK_ERRORS = 0x04,
/* Set if dumping a section and not top level config */
CONFIG_DUMP_FLAG_IN_SECTION = 0x08,
};
enum config_key_type {
CONFIG_KEY_NORMAL,
CONFIG_KEY_LIST,
CONFIG_KEY_UNIQUE_KEY,
/* error message is in value */
CONFIG_KEY_ERROR
};
typedef void config_request_callback_t(const char *key, const char *value,
enum config_key_type type, void *context);
bool config_export_type(string_t *str, const void *value,
const void *default_value,
enum setting_type type, bool dump_default,
bool *dump_r) ATTR_NULL(3);
struct config_export_context *
config_export_init(const char *const *modules,
const char *const *exclude_settings,
enum config_dump_scope scope,
enum config_dump_flags flags,
config_request_callback_t *callback, void *context)
ATTR_NULL(1, 5);
void config_export_by_filter(struct config_export_context *ctx,
const struct config_filter *filter);
void config_export_parsers(struct config_export_context *ctx,
const struct config_module_parser *parsers);
void config_export_get_output(struct config_export_context *ctx,
struct master_service_settings_output *output_r);
const char *
config_export_get_import_environment(struct config_export_context *ctx);
int config_export_finish(struct config_export_context **ctx);
#endif
|