diff options
author | Corey Farrell <git@cfware.com> | 2016-07-14 14:51:42 -0400 |
---|---|---|
committer | Corey Farrell <git@cfware.com> | 2016-07-15 05:34:29 -0400 |
commit | be36bd7ca565531c09ca444e59b6d057131a9ab0 (patch) | |
tree | 85595a26df4bbfcfc39a78c5c2474984c8c894ce /main/pbx_private.h | |
parent | 273052f40498378d3f2d3548347a243df68ee9a4 (diff) |
pbx: Create pbx_include.c for management of 'struct ast_include'.
This changes context includes from a linked list to a vector, makes
'struct ast_include' opaque to pbx.c.
Although ast_walk_context_includes is maintained the procedure is no
longer efficient except for the first call (inc==NULL). This
functionality is replaced by two new functions implemented by vector
macros.
* ast_context_includes_count (AST_VECTOR_SIZE)
* ast_context_includes_get (AST_VECTOR_GET)
As with ast_walk_context_includes callers of these functions are
expected to have locked contexts. Only a few places in Asterisk walked
the includes, they have been converted to use the new functions.
const have been applied where possible to parameters for ast_include
functions.
Change-Id: Ib5c882e27cf96fb2aec67a39c18b4c71c9c83b60
Diffstat (limited to 'main/pbx_private.h')
-rw-r--r-- | main/pbx_private.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/main/pbx_private.h b/main/pbx_private.h index e09194188..22d454ad0 100644 --- a/main/pbx_private.h +++ b/main/pbx_private.h @@ -31,6 +31,17 @@ void set_ext_pri(struct ast_channel *c, const char *exten, int pri); /*! pbx.c function needed by pbx_app.c */ void unreference_cached_app(struct ast_app *app); +/*! pbx_includes.c */ +struct ast_include; +AST_VECTOR(ast_includes, struct ast_include *); + +/*! Allocate and initialize an ast_include. */ +struct ast_include *include_alloc(const char *value, const char *registrar); +/*! Free an ast_include and associated data. */ +void include_free(struct ast_include *inc); +int include_valid(const struct ast_include *inc); +const char *include_rname(const struct ast_include *inc); + /*! pbx_builtins.c functions needed by pbx.c */ int indicate_congestion(struct ast_channel *, const char *); int indicate_busy(struct ast_channel *, const char *); |