mirror of
https://github.com/asterisk/asterisk.git
synced 2025-11-21 01:01:02 +00:00
datastore: Add common container based datastores API.
This change introduces a common container based datastores management API. This has been done in a few places across the tree but this consolidates all of the logic into one place in a generic fashion. ASTERISK-25999 Change-Id: I72eb15941dcdbc2a37bb00a33ce00f8755bd336a
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user