diff --git a/include/asterisk/astdb.h b/include/asterisk/astdb.h index e19784bada5e504d3897698152312c06d12fce5e..4c1fa589092553bc4ab720a394ec693a21cdefae 100644 --- a/include/asterisk/astdb.h +++ b/include/asterisk/astdb.h @@ -33,22 +33,37 @@ struct ast_db_entry { char data[0]; }; -/*! \brief Get key value specified by family/key */ +/*!\brief Get key value specified by family/key */ int ast_db_get(const char *family, const char *key, char *out, int outlen); -/*! \brief Store value addressed by family/key*/ +/*!\brief Store value addressed by family/key */ int ast_db_put(const char *family, const char *key, const char *value); -/*! \brief Delete entry in astdb */ +/*!\brief Delete entry in astdb */ int ast_db_del(const char *family, const char *key); -/*! \brief Delete a whole family (for some reason also called "tree" */ +/*!\brief Delete one or more entries in astdb + * If both parameters are NULL, the entire database will be purged. If + * only keytree is NULL, all entries within the family will be purged. + * It is an error for keytree to have a value when family is NULL. + * + * \retval 0 Entries were deleted + * \retval -1 An error occurred + */ int ast_db_deltree(const char *family, const char *keytree); -/*! \brief Get a whole family */ +/*!\brief Get a list of values within the astdb tree + * If family is specified, only those keys will be returned. If keytree + * is specified, subkeys are expected to exist (separated from the key with + * a slash). If subkeys do not exist and keytree is specified, the tree will + * consist of either a single entry or NULL will be returned. + * + * Resulting tree should be freed by passing the return value to ast_db_freetree() + * when usage is concluded. + */ struct ast_db_entry *ast_db_gettree(const char *family, const char *keytree); -/*! \brief Free in-memory data */ +/*!\brief Free structure created by ast_db_gettree() */ void ast_db_freetree(struct ast_db_entry *entry); #if defined(__cplusplus) || defined(c_plusplus)