repeal config prototype changes
[asterisk/asterisk.git] / include / asterisk / config_pvt.h
1 #ifndef _ASTERISK_CONFIG_PVT_H
2 #define _ASTERISK_CONFIG_PVT_H
3 #if defined(__cplusplus) || defined(c_plusplus)
4 extern "C" {
5 #endif
6
7 #include <stdarg.h>
8 #define CONFIG_KEYWORD_STRLEN 128
9 #define CONFIG_KEYWORD_ARRAYLEN 512
10 #include <asterisk/config.h>
11
12 #define MAX_INCLUDE_LEVEL 10
13
14 struct ast_category {
15         char name[80];
16         struct ast_variable *root;
17         struct ast_category *next;
18 };
19
20 struct ast_config {
21         /* Maybe this structure isn't necessary but we'll keep it
22            for now */
23         struct ast_category *root;
24         struct ast_category *prev;
25 };
26
27
28 struct ast_category;
29
30 struct ast_config_reg {
31         char name[CONFIG_KEYWORD_STRLEN];
32         struct ast_config *(*static_func)(const char *database, const char *table, const char *, struct ast_config *,struct ast_category **,struct ast_variable **,int);
33         struct ast_variable *(*realtime_func)(const char *database, const char *table, va_list ap);
34         struct ast_config *(*realtime_multi_func)(const char *database, const char *table, va_list ap);
35         int (*update_func)(const char *database, const char *table, const char *keyfield, const char *entity, va_list ap);
36         struct ast_config_reg *next;
37 };
38
39
40 int ast_config_register(struct ast_config_reg *new);
41 int ast_config_deregister(struct ast_config_reg *del);
42 void ast_cust_config_on(void);
43 void ast_cust_config_off(void);
44 int ast_cust_config_active(void);
45 void ast_config_destroy_all(void);
46
47
48 int ast_category_delete(struct ast_config *cfg, char *category);
49 int ast_variable_delete(struct ast_config *cfg, char *category, char *variable, char *value);
50 int ast_save(char *filename, struct ast_config *cfg, char *generator);
51
52 struct ast_config *ast_new_config(void);
53 struct ast_category *ast_new_category(char *name);
54 struct ast_variable *ast_new_variable(char *name,char *value);
55 void ast_category_append(struct ast_config *config, struct ast_category *cat);
56 void ast_category_destroy(struct ast_category *cat);
57 int ast_cust_config_register(struct ast_config_reg *new);
58 int ast_cust_config_deregister(struct ast_config_reg *new);
59 int register_config_cli(void);
60 int read_ast_cust_config(void);
61 struct ast_config *ast_internal_load(const char *configfile, struct ast_config *tmp, struct ast_category **_tmpc, struct ast_variable **_last, int includelevel);
62
63
64
65 #if defined(__cplusplus) || defined(c_plusplus)
66 }
67 #endif
68
69
70 #endif