Data retrieval API. More...
#include "asterisk.h"
#include "asterisk/_private.h"
#include <regex.h>
#include "asterisk/module.h"
#include "asterisk/utils.h"
#include "asterisk/lock.h"
#include "asterisk/data.h"
#include "asterisk/astobj2.h"
#include "asterisk/xml.h"
#include "asterisk/cli.h"
#include "asterisk/term.h"
#include "asterisk/manager.h"
#include "asterisk/test.h"
#include "asterisk/frame.h"
Go to the source code of this file.
Data Structures | |
struct | ast_data |
The data tree to be returned by the callbacks and managed by functions local to this file. More... | |
struct | ast_data_iterator |
This structure is used by the iterator. More... | |
struct | ast_data_search |
The list of nodes with their search requirement. More... | |
struct | data_filter |
The filter node. More... | |
struct | data_provider |
A data container node pointing to the registered handler. More... | |
struct | data_filter::glob_list_t |
glob list More... | |
Macros | |
#define | data_read_lock() ast_rwlock_rdlock(&root_data.lock) |
#define | data_unlock() ast_rwlock_unlock(&root_data.lock) |
#define | data_write_lock() ast_rwlock_wrlock(&root_data.lock) |
#define | NUM_DATA_FILTER_BUCKETS 59 |
#define | NUM_DATA_NODE_BUCKETS 59 |
#define | NUM_DATA_RESULT_BUCKETS 59 |
#define | NUM_DATA_SEARCH_BUCKETS 59 |
Enumerations | |
enum | data_search_comparison { DATA_CMP_UNKNOWN, DATA_CMP_EQ, DATA_CMP_NEQ, DATA_CMP_GT, DATA_CMP_GE, DATA_CMP_LT, DATA_CMP_LE } |
Type of comparisons allow in the search string. More... | |
Functions | |
static struct ast_data * | __ast_data_add (struct ast_data *root, const char *name, enum ast_data_type type, void *ptr) |
int | __ast_data_add_structure (struct ast_data *root, const struct ast_data_mapping_structure *mapping, size_t mapping_len, void *structure) |
Add a complete structure to a node. More... | |
int | __ast_data_register (const char *path, const struct ast_data_handler *handler, const char *registrar, struct ast_module *mod) |
Register a data provider. More... | |
int | __ast_data_register_multiple (const struct ast_data_entry *data_entries, size_t entries, const char *registrar, struct ast_module *mod) |
Register multiple data providers at once. More... | |
int | __ast_data_search_cmp_structure (const struct ast_data_search *search, const struct ast_data_mapping_structure *mapping, size_t mapping_len, void *structure, const char *structure_name) |
Based on a search tree, evaluate every member of a structure against it. More... | |
int | __ast_data_unregister (const char *path, const char *registrar) |
Unregister a data provider. More... | |
static void | __data_result_print_cli (int fd, const struct ast_data *root, uint32_t depth) |
struct ast_data * | ast_data_add_bool (struct ast_data *root, const char *childname, unsigned int boolean) |
Add a boolean node type. More... | |
struct ast_data * | ast_data_add_char (struct ast_data *root, const char *name, char value) |
Add a char node type. More... | |
int | ast_data_add_codecs (struct ast_data *root, const char *node_name, format_t capability) |
Add the list of codecs in the root node based on the capability parameter. More... | |
struct ast_data * | ast_data_add_dbl (struct ast_data *root, const char *childname, double dbl) |
Add a floating point node type. More... | |
struct ast_data * | ast_data_add_int (struct ast_data *root, const char *name, int value) |
Add an integer node type. More... | |
struct ast_data * | ast_data_add_ipaddr (struct ast_data *root, const char *childname, struct in_addr addr) |
Add a ipv4 address type. More... | |
struct ast_data * | ast_data_add_milliseconds (struct ast_data *root, const char *childname, unsigned int milliseconds) |
Add a milliseconds node type. More... | |
struct ast_data * | ast_data_add_node (struct ast_data *root, const char *name) |
Add a container child. More... | |
struct ast_data * | ast_data_add_password (struct ast_data *root, const char *childname, const char *value) |
Add a password node type. More... | |
struct ast_data * | ast_data_add_ptr (struct ast_data *root, const char *childname, void *ptr) |
Add a ptr node type. More... | |
struct ast_data * | ast_data_add_seconds (struct ast_data *root, const char *childname, unsigned int seconds) |
Add a seconds node type. More... | |
struct ast_data * | ast_data_add_str (struct ast_data *root, const char *childname, const char *value) |
Add a string node type. More... | |
struct ast_data * | ast_data_add_timestamp (struct ast_data *root, const char *childname, unsigned int timestamp) |
Add a timestamp node type. More... | |
struct ast_data * | ast_data_add_uint (struct ast_data *root, const char *name, unsigned int value) |
Add an unsigned integer node type. More... | |
void | ast_data_free (struct ast_data *root) |
Release the allocated memory of a tree. More... | |
struct ast_data * | ast_data_get (const struct ast_data_query *query) |
Retrieve a subtree from the asterisk data API. More... | |
struct ast_xml_doc * | ast_data_get_xml (const struct ast_data_query *query) |
Retrieve a subtree from the asterisk data API in XML format.. More... | |
int | ast_data_init (void) |
void | ast_data_iterator_end (struct ast_data_iterator *iterator) |
Release (stop using) an iterator. More... | |
struct ast_data_iterator * | ast_data_iterator_init (struct ast_data *tree, const char *elements) |
Initialize an iterator. More... | |
struct ast_data * | ast_data_iterator_next (struct ast_data_iterator *iterator) |
Get the next node of the tree. More... | |
void | ast_data_remove_node (struct ast_data *root, struct ast_data *child) |
Remove a node that was added using ast_data_add_. More... | |
int | ast_data_retrieve (struct ast_data *tree, const char *path, struct ast_data_retrieve *content) |
Retrieve a value from a node in the tree. More... | |
char * | ast_data_retrieve_name (struct ast_data *node) |
Get the node name. More... | |
enum ast_data_type | ast_data_retrieve_type (struct ast_data *node, const char *path) |
Get a node type. More... | |
int | ast_data_search_match (const struct ast_data_search *search, struct ast_data *data) |
Check the current generated node to know if it matches the search condition. More... | |
static struct data_filter * | data_filter_add_child (struct ao2_container *root, char *name) |
static int | data_filter_add_nodes (struct ao2_container *root, char *path) |
static struct data_filter * | data_filter_alloc (const char *name) |
static int | data_filter_cmp (void *obj, void *arg, int flags) |
static void | data_filter_destructor (void *obj) |
static struct data_filter * | data_filter_find (struct ao2_container *parent, const char *name) |
static struct data_filter * | data_filter_generate (const char *constfilter) |
static int | data_filter_hash (const void *obj, const int flags) |
static void | data_filter_release (struct data_filter *filter) |
static void | data_get_xml_add_child (struct ast_data *parent_data, struct ast_xml_node *parent_xml) |
static struct data_provider * | data_provider_add_child (struct ao2_container *parent, const char *name, const struct ast_data_handler *handler, const char *registrar) |
static int | data_provider_cmp (void *obj1, void *obj2, int flags) |
static struct data_provider * | data_provider_create (struct ao2_container *parent, const char *path, const char *registrar) |
static void | data_provider_destructor (void *obj) |
static struct data_provider * | data_provider_find (struct ao2_container *parent, const char *name, const char *registrar) |
static int | data_provider_hash (const void *obj, const int flags) |
static struct data_provider * | data_provider_new (const char *name, const struct ast_data_handler *handler, const char *registrar) |
static void | data_provider_print_cli (int fd, const char *name, struct ao2_container *container, struct ast_str *path) |
static int | data_provider_release (struct ao2_container *parent, const char *path, const char *registrar) |
static void | data_provider_release_all (struct ao2_container *parent, const char *registrar) |
static void | data_result_add_child (struct ast_data *root, struct ast_data *child) |
static int | data_result_cmp (void *obj, void *arg, int flags) |
static struct ast_data * | data_result_create (const char *name) |
static void | data_result_destructor (void *obj) |
static struct ast_data * | data_result_find_child (struct ast_data *root, const char *name) |
static struct ast_data * | data_result_generate (const struct ast_data_query *query, const char *search_path) |
static struct ast_data * | data_result_generate_node (const struct ast_data_query *query, const struct data_provider *root_provider, const char *parent_node_name, const struct ast_data_search *search, const struct data_filter *filter) |
static int | data_result_get_color (enum ast_data_type type) |
static struct ast_data * | data_result_get_node (struct ast_data *node, const char *path) |
static int | data_result_hash (const void *obj, const int flags) |
static void | data_result_manager_output (struct mansession *s, const char *name, struct ao2_container *container, struct ast_str *path, int id) |
static void | data_result_print_cli (int fd, const struct ast_data *root) |
static void | data_result_print_cli_node (int fd, const struct ast_data *node, uint32_t depth) |
static struct ast_data_search * | data_search_add_child (struct ao2_container *parent, const char *name) |
static struct ast_data_search * | data_search_alloc (const char *name) |
static int | data_search_cmp (void *obj, void *arg, int flags) |
static int | data_search_cmp_bool (const struct ast_data_search *root, const char *name, unsigned int value) |
static int | data_search_cmp_char (const struct ast_data_search *root, const char *name, char value) |
static int | data_search_cmp_dbl (const struct ast_data_search *root, const char *name, double value) |
static int | data_search_cmp_int (const struct ast_data_search *root, const char *name, int value) |
static int | data_search_cmp_ipaddr (const struct ast_data_search *root, const char *name, struct in_addr addr) |
static int | data_search_cmp_ptr (const struct ast_data_search *root, const char *name, void *ptr) |
static int | data_search_cmp_string (const struct ast_data_search *root, const char *name, char *value) |
static int | data_search_cmp_uint (const struct ast_data_search *root, const char *name, unsigned int value) |
static int | data_search_comparison_char (char a) |
static int | data_search_comparison_result (int cmpval, enum data_search_comparison comparison_type) |
static enum data_search_comparison | data_search_comparison_type (const char *comparison) |
static struct ast_data_search * | data_search_create (struct ao2_container *parent, const char *path) |
static void | data_search_destructor (void *obj) |
static struct ast_data_search * | data_search_find (struct ao2_container *parent, const char *name) |
static struct ast_data_search * | data_search_generate (const char *search_string) |
static struct ast_data_search * | data_search_get_node (const struct ast_data_search *node, const char *path) |
static int | data_search_hash (const void *obj, const int flags) |
static int | data_search_mapping_find (const struct ast_data_mapping_structure *map, size_t mapping_len, const char *member_name) |
static void | data_search_release (struct ast_data_search *search) |
static void | data_shutdown (void) |
static int | data_structure_compatible (int structure_version, uint32_t latest_compatible, uint32_t current) |
static char * | handle_cli_data_get (struct ast_cli_entry *e, int cmd, struct ast_cli_args *a) |
static char * | handle_cli_data_show_providers (struct ast_cli_entry *e, int cmd, struct ast_cli_args *a) |
static int | manager_data_get (struct mansession *s, const struct message *m) |
static char * | next_node_name (char **path) |
Variables | |
static struct ast_cli_entry | cli_data [] |
static const uint32_t | current_handler_version = AST_DATA_HANDLER_VERSION |
Current handler structure version. More... | |
static const uint32_t | current_query_version = AST_DATA_QUERY_VERSION |
Current query structure version. More... | |
struct { | |
int color | |
enum ast_data_type type | |
} | data_result_color [] |
static const uint32_t | latest_handler_compatible_version = 0 |
The last compatible version. More... | |
static const uint32_t | latest_query_compatible_version = 0 |
The last compatible version. More... | |
struct { | |
struct ao2_container * container | |
The asterisk data main content structure. More... | |
ast_rwlock_t lock | |
asterisk data locking mechanism. More... | |
} | root_data |
Data retrieval API.
Definition in file data.c.
#define data_read_lock | ( | ) | ast_rwlock_rdlock(&root_data.lock) |
Definition at line 238 of file data.c.
Referenced by ast_data_get(), and handle_cli_data_show_providers().
#define data_unlock | ( | ) | ast_rwlock_unlock(&root_data.lock) |
Definition at line 244 of file data.c.
Referenced by __ast_data_register(), __ast_data_unregister(), ast_data_get(), and handle_cli_data_show_providers().
#define data_write_lock | ( | ) | ast_rwlock_wrlock(&root_data.lock) |
Definition at line 231 of file data.c.
Referenced by __ast_data_register(), and __ast_data_unregister().
#define NUM_DATA_FILTER_BUCKETS 59 |
Definition at line 69 of file data.c.
Referenced by data_filter_alloc().
#define NUM_DATA_NODE_BUCKETS 59 |
Definition at line 66 of file data.c.
Referenced by ast_data_init(), and data_provider_new().
#define NUM_DATA_RESULT_BUCKETS 59 |
Definition at line 67 of file data.c.
Referenced by data_result_create().
#define NUM_DATA_SEARCH_BUCKETS 59 |
Definition at line 68 of file data.c.
Referenced by data_search_alloc().
Type of comparisons allow in the search string.
Enumerator | |
---|---|
DATA_CMP_UNKNOWN | |
DATA_CMP_EQ | |
DATA_CMP_NEQ | |
DATA_CMP_GT | |
DATA_CMP_GE | |
DATA_CMP_LT | |
DATA_CMP_LE |
Definition at line 111 of file data.c.
|
static |
Definition at line 2240 of file data.c.
References ao2_ref, AST_DATA_BOOLEAN, AST_DATA_CHARACTER, AST_DATA_CONTAINER, AST_DATA_DOUBLE, AST_DATA_INTEGER, AST_DATA_IPADDR, AST_DATA_MILLISECONDS, AST_DATA_PASSWORD, AST_DATA_POINTER, AST_DATA_SECONDS, AST_DATA_STRING, AST_DATA_TIMESTAMP, AST_DATA_UNSIGNED_INTEGER, ast_data::boolean, ast_data::character, ast_data::children, data_filter::children, data_filter_find(), data_result_add_child(), data_result_create(), ast_data::dbl, ast_data::filter, filter(), ast_data::ipaddr, ast_data::payload, ast_data::ptr, ast_data::sint, ast_data::str, type, ast_data::type, and ast_data::uint.
Referenced by ast_data_add_bool(), ast_data_add_char(), ast_data_add_dbl(), ast_data_add_int(), ast_data_add_ipaddr(), ast_data_add_milliseconds(), ast_data_add_node(), ast_data_add_password(), ast_data_add_ptr(), ast_data_add_seconds(), ast_data_add_str(), ast_data_add_timestamp(), and ast_data_add_uint().
int __ast_data_add_structure | ( | struct ast_data * | root, |
const struct ast_data_mapping_structure * | mapping, | ||
size_t | mapping_len, | ||
void * | structure | ||
) |
Add a complete structure to a node.
[in] | root | Where to add the structure. |
[in] | mapping | The structure mapping array. |
[in] | mapping_len | The lenght of the mapping array. |
[in] | structure | The structure pointer. |
0 | on success. |
1 | on error. |
Definition at line 2422 of file data.c.
References ast_data_add_bool(), ast_data_add_char(), ast_data_add_dbl(), ast_data_add_int(), ast_data_add_ipaddr(), ast_data_add_milliseconds(), ast_data_add_password(), ast_data_add_ptr(), ast_data_add_seconds(), ast_data_add_str(), ast_data_add_timestamp(), ast_data_add_uint(), AST_DATA_BOOLEAN, AST_DATA_CHARACTER, AST_DATA_CONTAINER, AST_DATA_DOUBLE, AST_DATA_INTEGER, AST_DATA_IPADDR, AST_DATA_MILLISECONDS, AST_DATA_PASSWORD, AST_DATA_POINTER, AST_DATA_SECONDS, AST_DATA_STRING, AST_DATA_TIMESTAMP, AST_DATA_UNSIGNED_INTEGER, data_filter::name, and type.
int __ast_data_register | ( | const char * | path, |
const struct ast_data_handler * | handler, | ||
const char * | registrar, | ||
struct ast_module * | mod | ||
) |
Register a data provider.
[in] | path | The path of the node to register. |
[in] | handler | The structure defining this node handler. |
[in] | registrar | Who is registering this node. |
[in] | mod | The module registering this handler. |
<0 | on error. |
0 | on success. |
Definition at line 518 of file data.c.
References ao2_container_count(), ao2_ref, ast_log(), data_provider::children, data_provider_create(), data_structure_compatible(), data_unlock, data_write_lock, data_provider::handler, LOG_ERROR, data_provider::module, data_provider::name, root_data, and ast_data_handler::version.
Referenced by __ast_data_register_multiple().
int __ast_data_register_multiple | ( | const struct ast_data_entry * | data_entries, |
size_t | entries, | ||
const char * | registrar, | ||
struct ast_module * | mod | ||
) |
Register multiple data providers at once.
[in] | data_entries | An array of data_entries structures. |
[in] | entries | The number of entries in the data_entries array. |
[in] | registrar | Who is registering this nodes. |
[in] | mod | The module registering this handlers. |
<0 | on error (none of the nodes are being registered on error). |
0 | on success. |
Definition at line 565 of file data.c.
References __ast_data_register(), __ast_data_unregister(), and data_provider::handler.
int __ast_data_search_cmp_structure | ( | const struct ast_data_search * | search, |
const struct ast_data_mapping_structure * | mapping, | ||
size_t | mapping_len, | ||
void * | structure, | ||
const char * | structure_name | ||
) |
Based on a search tree, evaluate every member of a structure against it.
[in] | search | The search tree. |
[in] | mapping | The structure mapping. |
[in] | mapping_len | The lenght of the structure mapping. |
[in] | structure | The structure pointer. |
[in] | structure_name | The name of the structure to compare. |
0 | If the structure matches. |
1 | If the structure doesn't match. |
Definition at line 1272 of file data.c.
References ao2_iterator_destroy(), ao2_iterator_init(), ao2_iterator_next, ao2_ref, AST_DATA_BOOLEAN, ast_data_mapping_structure::AST_DATA_BOOLEAN, AST_DATA_CHARACTER, ast_data_mapping_structure::AST_DATA_CHARACTER, AST_DATA_CONTAINER, AST_DATA_DOUBLE, ast_data_mapping_structure::AST_DATA_DOUBLE, AST_DATA_INTEGER, ast_data_mapping_structure::AST_DATA_INTEGER, AST_DATA_IPADDR, ast_data_mapping_structure::AST_DATA_IPADDR, AST_DATA_MILLISECONDS, ast_data_mapping_structure::AST_DATA_MILLISECONDS, AST_DATA_PASSWORD, ast_data_mapping_structure::AST_DATA_PASSWORD, AST_DATA_POINTER, ast_data_mapping_structure::AST_DATA_POINTER, AST_DATA_SECONDS, ast_data_mapping_structure::AST_DATA_SECONDS, AST_DATA_STRING, ast_data_mapping_structure::AST_DATA_STRING, AST_DATA_TIMESTAMP, ast_data_mapping_structure::AST_DATA_TIMESTAMP, AST_DATA_UNSIGNED_INTEGER, ast_data_mapping_structure::AST_DATA_UNSIGNED_INTEGER, ast_data_search::children, data_search_cmp_bool(), data_search_cmp_char(), data_search_cmp_dbl(), data_search_cmp_int(), data_search_cmp_ipaddr(), data_search_cmp_ptr(), data_search_cmp_string(), data_search_cmp_uint(), data_search_get_node(), data_search_mapping_find(), ast_data_mapping_structure::get, ast_data_search::name, and type.
int __ast_data_unregister | ( | const char * | path, |
const char * | registrar | ||
) |
Unregister a data provider.
[in] | path | Which node to unregister, if path is NULL unregister every node registered by the passed 'registrar'. |
[in] | registrar | Who is trying to unregister this node, only the owner (the one who registered the node) will be able to unregister it. |
<0 | on error. |
0 | on success. |
Definition at line 586 of file data.c.
References ast_log(), data_provider_release(), data_provider_release_all(), data_unlock, data_write_lock, LOG_ERROR, and root_data.
Referenced by __ast_data_register_multiple().
|
static |
Definition at line 2819 of file data.c.
References ao2_iterator_destroy(), ao2_iterator_init(), ao2_iterator_next, ao2_ref, AST_DATA_CONTAINER, ast_data::children, data_result_print_cli_node(), and ast_data::type.
Referenced by data_result_print_cli(), and data_result_print_cli_node().
struct ast_data* ast_data_add_bool | ( | struct ast_data * | root, |
const char * | childname, | ||
unsigned int | boolean | ||
) |
Add a boolean node type.
[in] | root | The root of the ast_data to insert into. |
[in] | childname | The name of the child element to be added. |
[in] | boolean | The value for the new node. |
NULL | on error (memory exhaustion only). |
non-NULL | a newly allocated node. |
Definition at line 2344 of file data.c.
References __ast_data_add(), and AST_DATA_BOOLEAN.
Referenced by __ast_data_add_structure(), agents_data_provider_get(), ast_channel_data_add_structure(), channel_data_add_flags(), dahdi_status_data_provider_get(), data_channeltypes_provider_handler(), data_odbc_provider_handler(), peers_data_provider_get(), and users_data_provider_get().
Add a char node type.
[in] | root | The root of the ast_data to insert into. |
[in] | childname | The name of the child element to be added. |
[in] | value | The value for the new node. |
NULL | on error (memory exhaustion only). |
non-NULL | a newly allocated node. |
Definition at line 2327 of file data.c.
References __ast_data_add(), and AST_DATA_CHARACTER.
Referenced by __ast_data_add_structure().
Add the list of codecs in the root node based on the capability parameter.
[in] | root | The astdata root node where to add the codecs node. |
[in] | node_name | The name of the node where we are going to add the list of codecs. |
[in] | capability | The codecs allowed. |
Definition at line 3112 of file data.c.
References ast_data_add_int(), ast_data_add_node(), ast_data_add_str(), ast_get_format_list(), ast_format_list::bits, desc, ast_format_list::fr_len, data_filter::name, and ast_format_list::samplespersecond.
Referenced by ast_channel_data_add_structure(), data_channeltypes_provider_handler(), peers_data_provider_get(), and users_data_provider_get().
Add a floating point node type.
[in] | root | The root of the ast_data to insert into. |
[in] | childname | The name of the child element to be added. |
[in] | dbl | The value for the new node. |
NULL | on error (memory exhaustion only). |
non-NULL | a newly allocated node. |
Definition at line 2338 of file data.c.
References __ast_data_add(), and AST_DATA_DOUBLE.
Referenced by __ast_data_add_structure().
Add an integer node type.
[in] | root | The root of the ast_data to insert into. |
[in] | childname | The name of the child element to be added. |
[in] | value | The value for the new node. |
NULL | on error (memory exhaustion only). |
non-NULL | a newly allocated node. |
Definition at line 2322 of file data.c.
References __ast_data_add(), and AST_DATA_INTEGER.
Referenced by __ast_data_add_structure(), ast_cdr_data_add_structure(), ast_channel_data_add_structure(), ast_data_add_codecs(), dahdi_status_data_provider_get(), data_odbc_provider_handler(), hints_data_provider_get(), peers_data_provider_get(), queues_data_provider_get_helper(), user_add_provider_cb(), users_data_provider_get(), and vm_users_data_provider_get_helper().
struct ast_data* ast_data_add_ipaddr | ( | struct ast_data * | root, |
const char * | childname, | ||
struct in_addr | addr | ||
) |
Add a ipv4 address type.
[in] | root | The root of the ast_data to insert into. |
[in] | childname | The name of the child element to be added. |
[in] | addr | The ipv4 address value. |
NULL | on error (memory exhaustion only). |
non-NULL | a newly allocated node. |
Definition at line 2350 of file data.c.
References __ast_data_add(), and AST_DATA_IPADDR.
Referenced by __ast_data_add_structure().
struct ast_data* ast_data_add_milliseconds | ( | struct ast_data * | root, |
const char * | childname, | ||
unsigned int | milliseconds | ||
) |
Add a milliseconds node type.
[in] | root | The root of the ast_data to insert into. |
[in] | childname | The name of the child element to be added. |
[in] | milliseconds | The value for the new node. |
NULL | on error (memory exhaustion only). |
non-NULL | a newly allocated node. |
Definition at line 2374 of file data.c.
References __ast_data_add(), and AST_DATA_MILLISECONDS.
Referenced by __ast_data_add_structure().
Add a container child.
[in] | root | The root of the ast_data to insert into. |
[in] | childname | The name of the child element to be added. |
NULL | on error (memory exhaustion only). |
non-NULL | a newly allocated node. |
Definition at line 2317 of file data.c.
References __ast_data_add(), and AST_DATA_CONTAINER.
Referenced by agents_data_provider_get(), ast_cdr_data_add_structure(), ast_channel_data_add_structure(), ast_data_add_codecs(), ast_tone_zone_data_add_structure(), dahdi_channels_data_provider_get(), dahdi_status_data_provider_get(), data_channels_provider_handler(), data_channeltypes_provider_handler(), data_odbc_provider_handler(), hints_data_provider_get(), meetme_data_provider_get(), peers_data_provider_get(), queues_data_provider_get_helper(), user_add_provider_cb(), users_data_provider_get(), and vm_users_data_provider_get_helper().
struct ast_data* ast_data_add_password | ( | struct ast_data * | root, |
const char * | childname, | ||
const char * | string | ||
) |
Add a password node type.
[in] | root | The root of the ast_data to insert into. |
[in] | childname | The name of the child element to be added. |
[in] | string | The value for the new node. |
NULL | on error (memory exhaustion only). |
non-NULL | a newly allocated node. |
Definition at line 2380 of file data.c.
References __ast_data_add(), AST_DATA_PASSWORD, ast_free, ast_malloc, ast_strlen_zero(), and data_filter::name.
Referenced by __ast_data_add_structure(), and users_data_provider_get().
Add a ptr node type.
[in] | root | The root of the ast_data to insert into. |
[in] | childname | The name of the child element to be added. |
[in] | ptr | The pointer value to add. |
NULL | on error (memory exhaustion only). |
non-NULL | a newly allocated node. |
Definition at line 2356 of file data.c.
References __ast_data_add(), and AST_DATA_POINTER.
Referenced by __ast_data_add_structure().
struct ast_data* ast_data_add_seconds | ( | struct ast_data * | root, |
const char * | childname, | ||
unsigned int | seconds | ||
) |
Add a seconds node type.
[in] | root | The root of the ast_data to insert into. |
[in] | childname | The name of the child element to be added. |
[in] | seconds | The value for the new node. |
NULL | on error (memory exhaustion only). |
non-NULL | a newly allocated node. |
Definition at line 2368 of file data.c.
References __ast_data_add(), and AST_DATA_SECONDS.
Referenced by __ast_data_add_structure().
struct ast_data* ast_data_add_str | ( | struct ast_data * | root, |
const char * | childname, | ||
const char * | string | ||
) |
Add a string node type.
[in] | root | The root of the ast_data to insert into. |
[in] | childname | The name of the child element to be added. |
[in] | string | The value for the new node. |
NULL | on error (memory exhaustion only). |
non-NULL | a newly allocated node. |
Definition at line 2401 of file data.c.
References __ast_data_add(), AST_DATA_STRING, ast_free, ast_malloc, ast_strlen_zero(), and data_filter::name.
Referenced by __ast_data_add_structure(), agents_data_provider_get(), ast_cdr_data_add_structure(), ast_channel_data_add_structure(), ast_data_add_codecs(), dahdi_status_data_provider_get(), dahdi_version_data_provider_get(), data_channeltypes_provider_handler(), data_odbc_provider_handler(), hints_data_provider_get(), peers_data_provider_get(), queues_data_provider_get_helper(), and users_data_provider_get().
struct ast_data* ast_data_add_timestamp | ( | struct ast_data * | root, |
const char * | childname, | ||
unsigned int | timestamp | ||
) |
Add a timestamp node type.
[in] | root | The root of the ast_data to insert into. |
[in] | childname | The name of the child element to be added. |
[in] | timestamp | The value for the new node. |
NULL | on error (memory exhaustion only). |
non-NULL | a newly allocated node. |
Definition at line 2362 of file data.c.
References __ast_data_add(), and AST_DATA_TIMESTAMP.
Referenced by __ast_data_add_structure().
struct ast_data* ast_data_add_uint | ( | struct ast_data * | root, |
const char * | childname, | ||
unsigned int | value | ||
) |
Add an unsigned integer node type.
[in] | root | The root of the ast_data to insert into. |
[in] | childname | The name of the child element to be added. |
[in] | value | The value for the new node. |
NULL | on error (memory exhaustion only). |
non-NULL | a newly allocated node. |
Definition at line 2332 of file data.c.
References __ast_data_add(), and AST_DATA_UNSIGNED_INTEGER.
Referenced by __ast_data_add_structure(), and ast_channel_data_add_structure().
void ast_data_free | ( | struct ast_data * | root | ) |
Release the allocated memory of a tree.
[in] | root | The sub-tree pointer returned by a call to ast_data_get. |
Definition at line 2491 of file data.c.
References ao2_ref.
Referenced by ast_data_get_xml(), handle_cli_data_get(), and manager_data_get().
struct ast_data* ast_data_get | ( | const struct ast_data_query * | query | ) |
Retrieve a subtree from the asterisk data API.
[in] | query | The query structure specifying what nodes to retrieve. |
NULL | on error. |
non-NULL | The dynamically allocated requested sub-tree (it needs to be released using ast_data_free. |
Definition at line 2065 of file data.c.
References ast_log(), data_read_lock, data_result_generate(), data_structure_compatible(), data_unlock, LOG_ERROR, ast_data_query::path, and ast_data_query::version.
Referenced by ast_data_get_xml(), handle_cli_data_get(), and manager_data_get().
struct ast_xml_doc* ast_data_get_xml | ( | const struct ast_data_query * | query | ) |
Retrieve a subtree from the asterisk data API in XML format..
[in] | query | The query structure specifying what nodes to retrieve. |
NULL | on error. |
non-NULL | The dynamically allocated requested sub-tree (it needs to be released using ast_data_free. |
Definition at line 2181 of file data.c.
References ast_data_free(), ast_data_get(), ast_xml_close(), ast_xml_new(), ast_xml_new_node(), ast_xml_set_root(), data_get_xml_add_child(), and ast_data::name.
int ast_data_init | ( | void | ) |
Provided by data.c
Definition at line 3297 of file data.c.
References ao2_container_alloc, ARRAY_LEN, ast_cli_register_multiple(), ast_manager_register_xml, ast_register_atexit(), ast_rwlock_init, AST_TEST_REGISTER, cli_data, data_provider_cmp(), data_provider_hash(), data_shutdown(), manager_data_get(), NUM_DATA_NODE_BUCKETS, and root_data.
Referenced by main().
void ast_data_iterator_end | ( | struct ast_data_iterator * | iterator | ) |
Release (stop using) an iterator.
[in] | iterator | The iterator created by ast_data_iterator_start. |
Definition at line 2542 of file data.c.
References ao2_iterator_destroy(), ao2_ref, ast_free, ast_data_iterator::internal_iterator, ast_data_iterator::is_pattern, ast_data_iterator::last, and ast_data_iterator::regex_pattern.
struct ast_data_iterator* ast_data_iterator_init | ( | struct ast_data * | tree, |
const char * | elements | ||
) |
Initialize an iterator.
[in] | tree | The returned tree by a call to ast_data_get. |
[in] | elements | Which elements to iterate through. |
NULL | on error. |
non-NULL | A dinamically allocated iterator structure. |
Definition at line 2497 of file data.c.
References ao2_iterator_init(), ast_calloc, ast_strdupa, data_result_get_node(), ast_data_iterator::internal_iterator, ast_data_iterator::is_pattern, ast_data_iterator::pattern, ast_data::ptr, and ast_data_iterator::regex_pattern.
struct ast_data* ast_data_iterator_next | ( | struct ast_data_iterator * | iterator | ) |
Get the next node of the tree.
[in] | iterator | The iterator structure returned by ast_data_iterator_start. |
NULL | when no more nodes to return. |
non-NULL | A node of the ast_data tree. |
Definition at line 2560 of file data.c.
References ao2_iterator_next, ao2_ref, ast_data_iterator::internal_iterator, ast_data_iterator::is_pattern, ast_data_iterator::last, ast_data::name, ast_data_iterator::pattern, and ast_data_iterator::regex_pattern.
Remove a node that was added using ast_data_add_.
[in] | root | The root node of the node to be removed. |
[in] | child | The node pointer to remove. |
Definition at line 2486 of file data.c.
References ao2_unlink, and ast_data::children.
Referenced by agents_data_provider_get(), dahdi_channels_data_provider_get(), dahdi_status_data_provider_get(), data_channels_provider_handler(), data_channeltypes_provider_handler(), data_odbc_provider_handler(), hints_data_provider_get(), meetme_data_provider_get(), peers_data_provider_get(), queues_data_provider_get_helper(), users_data_provider_get(), and vm_users_data_provider_get_helper().
int ast_data_retrieve | ( | struct ast_data * | tree, |
const char * | path, | ||
struct ast_data_retrieve * | content | ||
) |
Retrieve a value from a node in the tree.
[in] | tree | The structure returned by a call to ast_data_get. |
[in] | path | The path to the node. |
[out] | content | The node content. |
0 | on success. |
<0 | on error. |
Definition at line 2598 of file data.c.
References AST_DATA_BOOLEAN, ast_data_retrieve::AST_DATA_BOOLEAN, AST_DATA_CHARACTER, ast_data_retrieve::AST_DATA_CHARACTER, AST_DATA_CONTAINER, AST_DATA_DOUBLE, ast_data_retrieve::AST_DATA_DOUBLE, AST_DATA_INTEGER, ast_data_retrieve::AST_DATA_INTEGER, AST_DATA_IPADDR, ast_data_retrieve::AST_DATA_IPADDR, AST_DATA_MILLISECONDS, ast_data_retrieve::AST_DATA_MILLISECONDS, AST_DATA_PASSWORD, ast_data_retrieve::AST_DATA_PASSWORD, AST_DATA_POINTER, ast_data_retrieve::AST_DATA_POINTER, AST_DATA_SECONDS, ast_data_retrieve::AST_DATA_SECONDS, AST_DATA_STRING, ast_data_retrieve::AST_DATA_STRING, AST_DATA_TIMESTAMP, ast_data_retrieve::AST_DATA_TIMESTAMP, AST_DATA_UNSIGNED_INTEGER, ast_data_retrieve::AST_DATA_UNSIGNED_INTEGER, ast_log(), ast_data::boolean, ast_data::character, data_result_get_node(), ast_data::dbl, ast_data::ipaddr, LOG_ERROR, ast_data::payload, ast_data::ptr, ast_data::sint, ast_data::str, ast_data_retrieve::type, ast_data::type, ast_data::uint, and ast_data_retrieve::value.
Referenced by ast_data_retrieve_bool(), ast_data_retrieve_char(), ast_data_retrieve_dbl(), ast_data_retrieve_int(), ast_data_retrieve_ipaddr(), ast_data_retrieve_password(), ast_data_retrieve_ptr(), ast_data_retrieve_string(), and ast_data_retrieve_uint().
char* ast_data_retrieve_name | ( | struct ast_data * | node | ) |
Get the node name.
[in] | node | The node pointer. |
Definition at line 2225 of file data.c.
References ast_data::name.
enum ast_data_type ast_data_retrieve_type | ( | struct ast_data * | res, |
const char * | path | ||
) |
Get a node type.
[in] | res | A pointer to the ast_data result set. |
[in] | path | A path to the node to get the type. |
Definition at line 2213 of file data.c.
References data_result_get_node().
int ast_data_search_match | ( | const struct ast_data_search * | search, |
struct ast_data * | data | ||
) |
Check the current generated node to know if it matches the search condition.
[in] | search | The search condition. |
[in] | data | The AstData node generated. |
Definition at line 1458 of file data.c.
References ao2_container_count(), ao2_iterator_destroy(), ao2_iterator_init(), ao2_iterator_next, ao2_ref, AST_DATA_BOOLEAN, AST_DATA_CHARACTER, AST_DATA_CONTAINER, AST_DATA_DOUBLE, AST_DATA_INTEGER, AST_DATA_IPADDR, AST_DATA_MILLISECONDS, AST_DATA_PASSWORD, AST_DATA_POINTER, ast_data_search_match(), AST_DATA_SECONDS, AST_DATA_STRING, AST_DATA_TIMESTAMP, AST_DATA_UNSIGNED_INTEGER, ast_data::boolean, ast_data::character, ast_data::children, ast_data_search::children, data_result_find_child(), data_search_cmp_bool(), data_search_cmp_char(), data_search_cmp_int(), data_search_cmp_ipaddr(), data_search_cmp_ptr(), data_search_cmp_string(), data_search_cmp_uint(), data_search_find(), ast_data::dbl, ast_data::ipaddr, ast_data::name, ast_data_search::name, ast_data::payload, ast_data::ptr, ast_data::sint, ast_data::str, ast_data::type, and ast_data::uint.
Referenced by agents_data_provider_get(), ast_data_search_match(), dahdi_channels_data_provider_get(), dahdi_status_data_provider_get(), data_channels_provider_handler(), data_channeltypes_provider_handler(), data_odbc_provider_handler(), hints_data_provider_get(), meetme_data_provider_get(), peers_data_provider_get(), queues_data_provider_get_helper(), users_data_provider_get(), and vm_users_data_provider_get_helper().
|
static |
Definition at line 1780 of file data.c.
References ao2_link, data_filter_alloc(), and data_filter_find().
Referenced by data_filter_add_nodes().
|
static |
Definition at line 1808 of file data.c.
References ao2_ref, ast_strdupa, data_filter::children, data_filter_add_child(), and next_node_name().
Referenced by data_filter_generate().
|
static |
Definition at line 1647 of file data.c.
References ao2_alloc, ao2_container_alloc, ao2_ref, AST_LIST_INSERT_TAIL, ast_strdupa, data_filter::children, data_filter_cmp(), data_filter_destructor(), data_filter_hash(), data_filter::glob_list, data_filter::list, data_filter::name, NUM_DATA_FILTER_BUCKETS, and strsep().
Referenced by data_filter_add_child(), data_filter_find(), and data_filter_generate().
|
static |
Definition at line 1619 of file data.c.
References CMP_MATCH, and data_filter::name.
Referenced by data_filter_alloc().
|
static |
Definition at line 1630 of file data.c.
References ao2_ref, AST_LIST_REMOVE_HEAD, data_filter::children, filter(), data_filter::glob_list, and data_filter::list.
Referenced by data_filter_alloc().
|
static |
Definition at line 1699 of file data.c.
References ao2_find, ao2_iterator_destroy(), ao2_iterator_init(), ao2_iterator_next, ao2_ref, AST_LIST_EMPTY, AST_LIST_FIRST, AST_LIST_LAST, AST_LIST_TRAVERSE, ast_strlen_zero(), data_filter_alloc(), data_filter::glob_list, data_filter::list, data_filter::name, and OBJ_POINTER.
Referenced by __ast_data_add(), data_filter_add_child(), data_result_generate(), and data_result_generate_node().
|
static |
Definition at line 1845 of file data.c.
References ao2_ref, ast_strdupa, data_filter::children, data_filter_add_nodes(), data_filter_alloc(), and filter().
Referenced by data_result_generate().
|
static |
Definition at line 1609 of file data.c.
References ast_str_hash(), and data_filter::name.
Referenced by data_filter_alloc().
|
static |
|
static |
Definition at line 2094 of file data.c.
References ao2_iterator_destroy(), ao2_iterator_init(), ao2_iterator_next, ao2_ref, AST_DATA_BOOLEAN, AST_DATA_CHARACTER, AST_DATA_CONTAINER, AST_DATA_DOUBLE, AST_DATA_INTEGER, AST_DATA_IPADDR, AST_DATA_MILLISECONDS, AST_DATA_PASSWORD, AST_DATA_POINTER, AST_DATA_SECONDS, AST_DATA_STRING, AST_DATA_TIMESTAMP, AST_DATA_UNSIGNED_INTEGER, ast_inet_ntoa(), ast_xml_add_child(), ast_xml_new_node(), ast_xml_set_text(), ast_data::boolean, ast_data::character, ast_data::children, ast_data::dbl, ast_data::ipaddr, ast_data::name, ast_data::payload, ast_data::ptr, ast_data::sint, ast_data::str, ast_data::type, and ast_data::uint.
Referenced by ast_data_get_xml().
|
static |
Definition at line 344 of file data.c.
References ao2_link, and data_provider_new().
Referenced by data_provider_create().
|
static |
Definition at line 200 of file data.c.
References CMP_MATCH, and data_provider::name.
Referenced by ast_data_init(), and data_provider_new().
|
static |
Definition at line 487 of file data.c.
References ao2_ref, ast_strdupa, data_provider::children, data_provider_add_child(), data_provider_find(), and next_node_name().
Referenced by __ast_data_register().
|
static |
Definition at line 291 of file data.c.
References ao2_ref, and data_provider::children.
Referenced by data_provider_new().
|
static |
Definition at line 369 of file data.c.
References ao2_find, ao2_ref, ast_debug, data_provider_new(), OBJ_POINTER, and data_provider::registrar.
Referenced by data_provider_create(), data_provider_release(), and data_result_generate().
|
static |
Definition at line 189 of file data.c.
References ast_str_case_hash(), and data_provider::name.
Referenced by ast_data_init(), and data_provider_new().
|
static |
Definition at line 307 of file data.c.
References ao2_alloc, ao2_container_alloc, ao2_ref, data_provider::children, data_provider_cmp(), data_provider_destructor(), data_provider_hash(), data_provider::handler, data_provider::name, NUM_DATA_NODE_BUCKETS, data_provider::registrar, and registrar.
Referenced by data_provider_add_child(), and data_provider_find().
|
static |
Definition at line 2920 of file data.c.
References ao2_iterator_destroy(), ao2_iterator_init(), ao2_iterator_next, ao2_ref, ast_cli(), ast_free, ast_str_buffer(), ast_str_create(), ast_str_reset(), ast_str_set(), data_provider::children, ast_data_handler::get, data_provider::handler, data_provider::name, and data_provider::registrar.
Referenced by handle_cli_data_show_providers().
|
static |
Definition at line 409 of file data.c.
References ao2_container_count(), ao2_ref, ao2_unlink, ast_strdupa, data_provider::children, data_provider_find(), data_provider::handler, and next_node_name().
Referenced by __ast_data_unregister().
|
static |
Definition at line 450 of file data.c.
References ao2_container_count(), ao2_iterator_destroy(), ao2_iterator_init(), ao2_iterator_next, ao2_ref, ao2_unlink, data_provider::children, data_provider::handler, and data_provider::registrar.
Referenced by __ast_data_unregister().
Definition at line 1600 of file data.c.
References ao2_link, and ast_data::children.
Referenced by __ast_data_add(), and data_result_generate_node().
|
static |
Definition at line 220 of file data.c.
References CMP_MATCH, and ast_data::name.
Referenced by data_result_create().
|
static |
Definition at line 1405 of file data.c.
References ao2_alloc, ao2_container_alloc, ao2_ref, AST_DATA_CONTAINER, ast_strlen_zero(), ast_data::children, data_result_cmp(), data_result_destructor(), data_result_hash(), ast_data::name, NUM_DATA_RESULT_BUCKETS, and ast_data::type.
Referenced by __ast_data_add(), data_result_find_child(), and data_result_generate_node().
|
static |
Definition at line 1379 of file data.c.
References ao2_ref, AST_DATA_BOOLEAN, AST_DATA_CHARACTER, AST_DATA_CONTAINER, AST_DATA_DOUBLE, AST_DATA_INTEGER, AST_DATA_IPADDR, AST_DATA_MILLISECONDS, AST_DATA_PASSWORD, AST_DATA_POINTER, AST_DATA_SECONDS, AST_DATA_STRING, AST_DATA_TIMESTAMP, AST_DATA_UNSIGNED_INTEGER, ast_free, ast_data::children, ast_data::payload, ast_data::str, and ast_data::type.
Referenced by data_result_create().
Definition at line 1441 of file data.c.
References ao2_find, ao2_ref, ast_data::children, data_result_create(), and OBJ_POINTER.
Referenced by ast_data_search_match(), and data_result_get_node().
|
static |
Definition at line 1973 of file data.c.
References ao2_ref, ast_log(), ast_strdupa, ast_data_search::children, data_filter::children, data_provider::children, data_filter_find(), data_filter_generate(), data_filter_release(), data_provider_find(), data_result_generate_node(), data_search_find(), data_search_generate(), data_search_release(), ast_data_query::filter, filter(), LOG_ERROR, data_provider::name, next_node_name(), root_data, and ast_data_query::search.
Referenced by ast_data_get().
|
static |
Definition at line 1884 of file data.c.
References ao2_iterator_destroy(), ao2_iterator_init(), ao2_iterator_next, ao2_ref, ast_log(), ast_module_ref(), ast_module_unref(), ast_data_search::children, data_filter::children, data_provider::children, data_filter_find(), data_result_add_child(), data_result_create(), data_search_find(), ast_data::filter, filter(), ast_data_handler::get, data_provider::handler, LOG_ERROR, data_provider::module, and data_provider::name.
Referenced by data_result_generate().
|
static |
Definition at line 2687 of file data.c.
References ARRAY_LEN, COLOR_BLUE, and data_result_color.
Referenced by data_result_print_cli(), and data_result_print_cli_node().
Definition at line 1565 of file data.c.
References ao2_ref, ast_strdupa, data_result_find_child(), and next_node_name().
Referenced by ast_data_iterator_init(), ast_data_retrieve(), and ast_data_retrieve_type().
|
static |
Definition at line 210 of file data.c.
References ast_str_hash(), and ast_data::name.
Referenced by data_result_create().
|
static |
Definition at line 3001 of file data.c.
References ao2_iterator_destroy(), ao2_iterator_init(), ao2_iterator_next, ao2_ref, AST_DATA_BOOLEAN, AST_DATA_CHARACTER, AST_DATA_CONTAINER, AST_DATA_DOUBLE, AST_DATA_INTEGER, AST_DATA_IPADDR, AST_DATA_MILLISECONDS, AST_DATA_PASSWORD, AST_DATA_POINTER, AST_DATA_SECONDS, AST_DATA_STRING, AST_DATA_TIMESTAMP, AST_DATA_UNSIGNED_INTEGER, ast_free, ast_inet_ntoa(), ast_str_buffer(), ast_str_create(), ast_str_reset(), ast_str_set(), astman_append(), ast_data::boolean, ast_data::character, ast_data::children, ast_data::dbl, id, ast_data::ipaddr, ast_data::name, ast_data::payload, ast_data::sint, ast_data::str, ast_data::type, and ast_data::uint.
Referenced by manager_data_get().
|
static |
Definition at line 2842 of file data.c.
References __data_result_print_cli(), ast_cli(), ast_free, ast_str_append(), ast_str_buffer(), ast_str_create(), ast_term_color_code(), COLOR_WHITE, data_result_get_color(), ast_data::name, and ast_data::type.
Referenced by handle_cli_data_get().
|
static |
Definition at line 2706 of file data.c.
References __data_result_print_cli(), ast_cli(), AST_DATA_BOOLEAN, AST_DATA_CHARACTER, AST_DATA_CONTAINER, AST_DATA_DOUBLE, AST_DATA_INTEGER, AST_DATA_IPADDR, AST_DATA_MILLISECONDS, AST_DATA_PASSWORD, AST_DATA_POINTER, AST_DATA_SECONDS, AST_DATA_STRING, AST_DATA_TIMESTAMP, AST_DATA_UNSIGNED_INTEGER, ast_free, ast_inet_ntoa(), ast_str_append(), ast_str_buffer(), ast_str_create(), ast_str_reset(), ast_term_color_code(), ast_data::boolean, ast_data::character, COLOR_WHITE, data_result_get_color(), ast_data::dbl, ast_data::ipaddr, ast_data::name, ast_data::payload, ast_data::ptr, ast_data::sint, ast_data::str, ast_data::type, and ast_data::uint.
Referenced by __data_result_print_cli().
|
static |
Definition at line 748 of file data.c.
References ao2_link, and data_search_alloc().
Referenced by data_search_create().
|
static |
Definition at line 690 of file data.c.
References ao2_alloc, ao2_container_alloc, ao2_ref, ast_data_search::children, data_search_cmp(), data_search_destructor(), data_search_hash(), ast_data_search::name, and NUM_DATA_SEARCH_BUCKETS.
Referenced by data_search_add_child(), data_search_find(), and data_search_generate().
|
static |
Definition at line 663 of file data.c.
References CMP_MATCH, and ast_data_search::name.
Referenced by data_search_alloc().
|
static |
Definition at line 1102 of file data.c.
References ao2_ref, ast_true(), ast_data_search::cmp_type, data_search_comparison_result(), data_search_get_node(), and ast_data_search::value.
Referenced by __ast_data_search_cmp_structure(), and ast_data_search_match().
|
static |
Definition at line 1230 of file data.c.
References ao2_ref, ast_data_search::cmp_type, data_search_comparison_result(), data_search_get_node(), and ast_data_search::value.
Referenced by __ast_data_search_cmp_structure(), and ast_data_search_match().
|
static |
Definition at line 1134 of file data.c.
References ao2_ref, ast_data_search::cmp_type, data_search_comparison_result(), data_search_get_node(), and ast_data_search::value.
Referenced by __ast_data_search_cmp_structure().
|
static |
Definition at line 1198 of file data.c.
References ao2_ref, ast_data_search::cmp_type, data_search_comparison_result(), data_search_get_node(), and ast_data_search::value.
Referenced by __ast_data_search_cmp_structure(), and ast_data_search_match().
|
static |
Definition at line 1070 of file data.c.
References ao2_ref, ast_data_search::cmp_type, data_search_comparison_result(), data_search_get_node(), and inet_aton().
Referenced by __ast_data_search_cmp_structure(), and ast_data_search_match().
|
static |
Definition at line 1034 of file data.c.
References ao2_ref, ast_data_search::cmp_type, data_search_comparison_result(), data_search_get_node(), and ast_data_search::value.
Referenced by __ast_data_search_cmp_structure(), and ast_data_search_match().
|
static |
Definition at line 1002 of file data.c.
References ao2_ref, ast_data_search::cmp_type, data_search_comparison_result(), data_search_get_node(), and ast_data_search::value.
Referenced by __ast_data_search_cmp_structure(), and ast_data_search_match().
|
static |
Definition at line 1166 of file data.c.
References ao2_ref, ast_data_search::cmp_type, data_search_comparison_result(), data_search_get_node(), and ast_data_search::value.
Referenced by __ast_data_search_cmp_structure(), and ast_data_search_match().
|
static |
Definition at line 613 of file data.c.
Referenced by data_search_generate().
|
inlinestatic |
Definition at line 914 of file data.c.
References DATA_CMP_EQ, DATA_CMP_GE, DATA_CMP_GT, DATA_CMP_LE, DATA_CMP_LT, DATA_CMP_NEQ, and DATA_CMP_UNKNOWN.
Referenced by data_search_cmp_bool(), data_search_cmp_char(), data_search_cmp_dbl(), data_search_cmp_int(), data_search_cmp_ipaddr(), data_search_cmp_ptr(), data_search_cmp_string(), and data_search_cmp_uint().
|
static |
Definition at line 630 of file data.c.
References DATA_CMP_EQ, DATA_CMP_GE, DATA_CMP_GT, DATA_CMP_LE, DATA_CMP_LT, DATA_CMP_NEQ, and DATA_CMP_UNKNOWN.
Referenced by data_search_generate().
|
static |
Definition at line 771 of file data.c.
References ao2_ref, ast_strdupa, ast_data_search::children, data_search_add_child(), data_search_find(), and next_node_name().
Referenced by data_search_generate().
|
static |
Definition at line 673 of file data.c.
References ao2_ref, ast_free, ast_data_search::children, and ast_data_search::value.
Referenced by data_search_alloc().
|
static |
Definition at line 722 of file data.c.
References ao2_find, ao2_ref, data_search_alloc(), and OBJ_POINTER.
Referenced by ast_data_search_match(), data_result_generate(), data_result_generate_node(), data_search_create(), and data_search_get_node().
|
static |
Definition at line 801 of file data.c.
References ast_free, ast_log(), ast_str_append(), ast_str_buffer(), ast_str_create(), ast_str_reset(), ast_strdup, ast_strdupa, ast_data_search::children, ast_data_search::cmp_type, DATA_CMP_UNKNOWN, data_search_alloc(), data_search_comparison_char(), data_search_comparison_type(), data_search_create(), LOG_ERROR, data_filter::name, value, and ast_data_search::value.
Referenced by data_result_generate().
|
static |
Definition at line 962 of file data.c.
References ao2_ref, ast_strdupa, ast_data_search::children, data_search_find(), and next_node_name().
Referenced by __ast_data_search_cmp_structure(), data_search_cmp_bool(), data_search_cmp_char(), data_search_cmp_dbl(), data_search_cmp_int(), data_search_cmp_ipaddr(), data_search_cmp_ptr(), data_search_cmp_string(), and data_search_cmp_uint().
|
static |
Definition at line 653 of file data.c.
References ast_str_hash(), and ast_data_search::name.
Referenced by data_search_alloc().
|
inlinestatic |
Definition at line 1257 of file data.c.
References data_filter::name.
Referenced by __ast_data_search_cmp_structure().
|
static |
|
static |
Definition at line 3287 of file data.c.
References ao2_t_ref, ARRAY_LEN, ast_cli_unregister_multiple(), ast_manager_unregister(), ast_rwlock_destroy, AST_TEST_UNREGISTER, cli_data, and root_data.
Referenced by ast_data_init().
|
static |
Definition at line 255 of file data.c.
References ast_log(), and LOG_ERROR.
Referenced by __ast_data_register(), and ast_data_get().
|
static |
Definition at line 2867 of file data.c.
References ast_cli_args::argc, ast_cli_entry::args, ast_cli_args::argv, ast_data_free(), ast_data_get(), AST_DATA_QUERY_VERSION, CLI_FAILURE, CLI_GENERATE, CLI_INIT, CLI_SHOWUSAGE, CLI_SUCCESS, ast_cli_entry::command, data_result_print_cli(), ast_cli_args::fd, ast_data_query::filter, if(), ast_data_query::path, ast_data_query::search, ast_cli_entry::usage, and ast_data_query::version.
|
static |
Definition at line 2963 of file data.c.
References CLI_GENERATE, CLI_INIT, CLI_SUCCESS, ast_cli_entry::command, data_provider_print_cli(), data_read_lock, data_unlock, ast_cli_args::fd, root_data, and ast_cli_entry::usage.
|
static |
Definition at line 3075 of file data.c.
References ast_data_free(), ast_data_get(), AST_DATA_QUERY_VERSION, ast_strlen_zero(), astman_append(), astman_get_header(), astman_send_error(), ast_data::children, data_result_manager_output(), filter(), ast_data::name, RESULT_SUCCESS, ast_data_query::search, and ast_data_query::version.
Referenced by ast_data_init().
|
static |
Definition at line 276 of file data.c.
References ast_strlen_zero(), and strsep().
Referenced by data_filter_add_nodes(), data_provider_create(), data_provider_release(), data_result_generate(), data_result_get_node(), data_search_create(), and data_search_get_node().
|
static |
Definition at line 2988 of file data.c.
Referenced by ast_data_init(), and data_shutdown().
struct ao2_container* container |
The asterisk data main content structure.
Definition at line 177 of file data.c.
Referenced by ast_event_get_cached(), ast_event_init(), ast_event_queue_and_cache(), event_dump_cache(), and event_shutdown().
|
static |
|
static |
struct { ... } data_result_color[] |
Referenced by data_result_get_color().
|
static |
|
static |
ast_rwlock_t lock |
struct { ... } root_data |
enum ast_data_type type |