aboutsummaryrefslogtreecommitdiffstats
path: root/include/asterisk/config_pvt.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/asterisk/config_pvt.h')
-rwxr-xr-xinclude/asterisk/config_pvt.h88
1 files changed, 88 insertions, 0 deletions
diff --git a/include/asterisk/config_pvt.h b/include/asterisk/config_pvt.h
new file mode 100755
index 000000000..f87189d31
--- /dev/null
+++ b/include/asterisk/config_pvt.h
@@ -0,0 +1,88 @@
+#ifndef _ASTERISK_CONFIG_PVT_H
+#define _ASTERISK_CONFIG_PVT_H
+#if defined(__cplusplus) || defined(c_plusplus)
+extern "C" {
+#endif
+
+#define CONFIG_KEYWORD_STRLEN 128
+#define CONFIG_KEYWORD_ARRAYLEN 512
+#include <asterisk/config.h>
+
+#define MAX_INCLUDE_LEVEL 10
+
+struct ast_category {
+ char name[80];
+ struct ast_variable *root;
+ struct ast_category *next;
+#ifdef PRESERVE_COMMENTS
+ struct ast_comment *precomments;
+ struct ast_comment *sameline;
+#endif
+};
+
+struct ast_config {
+ /* Maybe this structure isn't necessary but we'll keep it
+ for now */
+ struct ast_category *root;
+ struct ast_category *prev;
+#ifdef PRESERVE_COMMENTS
+ struct ast_comment *trailingcomments;
+#endif
+};
+
+#ifdef PRESERVE_COMMENTS
+struct ast_comment_struct
+{
+ struct ast_comment *root;
+ struct ast_comment *prev;
+};
+#endif
+
+struct ast_category;
+
+struct ast_config_reg {
+ char name[CONFIG_KEYWORD_STRLEN];
+ struct ast_config *(*func)(char *, struct ast_config *,struct ast_category **,struct ast_variable **,int
+#ifdef PRESERVE_COMMENTS
+,struct ast_comment_struct *
+#endif
+);
+ char keywords[CONFIG_KEYWORD_STRLEN][CONFIG_KEYWORD_ARRAYLEN];
+ int keycount;
+ struct ast_config_reg *next;
+};
+
+
+
+int ast_config_register(struct ast_config_reg *new);
+int ast_config_deregister(struct ast_config_reg *del);
+void ast_cust_config_on(void);
+void ast_cust_config_off(void);
+int ast_cust_config_active(void);
+struct ast_config_reg *get_config_registrations(void);
+struct ast_config_reg *get_ast_cust_config(char *name);
+struct ast_config_reg *get_ast_cust_config_keyword(char *name);
+void ast_config_destroy_all(void);
+
+
+int ast_category_delete(struct ast_config *cfg, char *category);
+int ast_variable_delete(struct ast_config *cfg, char *category, char *variable, char *value);
+int ast_save(char *filename, struct ast_config *cfg, char *generator);
+
+struct ast_config *ast_new_config(void);
+struct ast_category *ast_new_category(char *name);
+struct ast_variable *ast_new_variable(char *name,char *value);
+int ast_cust_config_register(struct ast_config_reg *new);
+int ast_cust_config_deregister(struct ast_config_reg *new);
+int register_config_cli(void);
+int read_ast_cust_config(void);
+
+
+
+
+#if defined(__cplusplus) || defined(c_plusplus)
+}
+#endif
+
+
+#endif