Un-revert in preparation for actual fix

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@4880 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Mark Spencer
2005-01-22 22:13:11 +00:00
parent 28efa96e0d
commit 17c311c9b9
4 changed files with 217 additions and 230 deletions

View File

@@ -96,6 +96,13 @@ int ast_true(const char *val);
*/
int ast_false(const char *val);
/*! Retrieve a category if it exists
* \param config which config to use
* \param category_name name of the category you're looking for
* This will search through the categories within a given config file and search for a match. The passed category_name can be a regular string.
* Returns pointer to category if found, NULL if not. */
struct ast_category *ast_category_get(const struct ast_config *config, const char *category_name);
/*! Check for category duplicates */
/*!
* \param config which config to use

View File

@@ -14,53 +14,49 @@ extern "C" {
struct ast_category {
char name[80];
struct ast_variable *root;
struct ast_variable *last;
struct ast_category *next;
};
struct ast_config {
/* Maybe this structure isn't necessary but we'll keep it
for now */
struct ast_category *root;
struct ast_category *prev;
struct ast_category *last;
};
struct ast_category;
typedef struct ast_config *config_static_func(const char *database, const char *table, const char *configfile, struct ast_config *config, struct ast_category **cat, int includelevel);
struct ast_config_reg {
char name[CONFIG_KEYWORD_STRLEN];
struct ast_config *(*static_func)(const char *database, const char *table, const char *, struct ast_config *,struct ast_category **,struct ast_variable **,int);
config_static_func *static_func;
struct ast_variable *(*realtime_func)(const char *database, const char *table, va_list ap);
struct ast_config *(*realtime_multi_func)(const char *database, const char *table, va_list ap);
int (*update_func)(const char *database, const char *table, const char *keyfield, const char *entity, va_list ap);
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);
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);
void ast_category_append(struct ast_config *config, struct ast_category *cat);
void ast_category_destroy(struct ast_category *cat);
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);
struct ast_config *ast_internal_load(const char *configfile, struct ast_config *tmp, struct ast_category **_tmpc, struct ast_variable **_last, int includelevel);
struct ast_config *ast_new_config(void);
struct ast_category *ast_new_category(char *name);
void ast_category_append(struct ast_config *config, struct ast_category *cat);
int ast_category_delete(struct ast_config *cfg, char *category);
void ast_category_destroy(struct ast_category *cat);
struct ast_variable *ast_new_variable(char *name,char *value);
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_internal_load(const char *configfile, struct ast_config *tmp, struct ast_category **cat, int includelevel);
#if defined(__cplusplus) || defined(c_plusplus)
}