diff options
Diffstat (limited to 'include/asterisk/datastore.h')
-rw-r--r-- | include/asterisk/datastore.h | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/include/asterisk/datastore.h b/include/asterisk/datastore.h index 8f59fd3cf..85e9c6890 100644 --- a/include/asterisk/datastore.h +++ b/include/asterisk/datastore.h @@ -92,6 +92,64 @@ struct ast_datastore * attribute_malloc __ast_datastore_alloc(const struct ast_d */ int ast_datastore_free(struct ast_datastore *datastore); +/*! + * \brief Allocate a specialized data stores container + * + * \return a container for storing data stores + * + * \since 14.0.0 + */ +struct ao2_container *ast_datastores_alloc(void); + +/*! + * \brief Add a data store to a container + * + * \param[in] datastores container to store datastore in + * \param[in] datastore datastore to add + * + * \retval 0 success + * \retval -1 failure + * + * \since 14.0.0 + */ +int ast_datastores_add(struct ao2_container *datastores, struct ast_datastore *datastore); + +/*! + * \brief Remove a data store from a container + * + * \param[in] datastores container to remove datastore from + * \param[in] name name of the data store to remove + * + * \since 14.0.0 + */ +void ast_datastores_remove(struct ao2_container *datastores, const char *name); + +/*! + * \brief Find a data store in a container + * + * \param[in] datastores container to find datastore in + * \param[in] name name of the data store to find + * + * \retval non-NULL success + * \retval NULL failure + * + * \since 14.0.0 + */ +struct ast_datastore *ast_datastores_find(struct ao2_container *datastores, const char *name); + +/*! + * \brief Allocate a datastore for use with the datastores container + * + * \param[in] info information about the datastore + * \param[in] uid unique identifier for the datastore + * + * \retval non-NULL success + * \retval NULL failure + * + * \since 14.0.0 + */ +struct ast_datastore *ast_datastores_alloc_datastore(const struct ast_datastore_info *info, const char *uid); + #if defined(__cplusplus) || defined(c_plusplus) } #endif |