21#ifndef _ASTERISK_DATASTORE_H
22#define _ASTERISK_DATASTORE_H
24#if defined(__cplusplus) || defined(c_plusplus)
33 void *(*duplicate)(
void *data);
83 const char *
file,
int line,
const char *function);
85#define ast_datastore_alloc(info, uid) \
86 __ast_datastore_alloc(info, uid, AST_MODULE_SELF, __FILE__, __LINE__, __PRETTY_FUNCTION__)
153#if defined(__cplusplus) || defined(c_plusplus)
void ast_datastores_remove(struct ao2_container *datastores, const char *name)
Remove a data store from a container.
struct ao2_container * ast_datastores_alloc(void)
Allocate a specialized data stores container.
int ast_datastores_add(struct ao2_container *datastores, struct ast_datastore *datastore)
Add a data store to a container.
struct ast_datastore * ast_datastores_find(struct ao2_container *datastores, const char *name)
Find a data store in a container.
struct ast_datastore * ast_datastores_alloc_datastore(const struct ast_datastore_info *info, const char *uid)
Allocate a datastore for use with the datastores container.
struct ast_datastore * __ast_datastore_alloc(const struct ast_datastore_info *info, const char *uid, struct ast_module *mod, const char *file, int line, const char *function)
Create a data store object.
int ast_datastore_free(struct ast_datastore *datastore)
Free a data store object.
A set of macros to manage forward-linked lists.
#define AST_LIST_ENTRY(type)
Declare a forward link structure inside a list entry.
Main Channel structure associated with a channel.
Structure for a data store type.
void(* chan_fixup)(void *data, struct ast_channel *old_chan, struct ast_channel *new_chan)
Fix up channel references on the masquerading channel.
void(* chan_breakdown)(void *data, struct ast_channel *old_chan, struct ast_channel *new_chan)
Fix up channel references on the channel being masqueraded into.
void(* destroy)(void *data)
Structure for a data store object.
const struct ast_datastore_info * info
struct ast_datastore::@214 entry