mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-23 14:44:28 +00:00
Move ast_str_container_alloc and friends
This moves ast_str_container_alloc, ast_str_container_add, ast_str_container_remove, and related private functions into strings.c/h since they really don't belong in astobj2.c/h. As a result of this move, utils also had to be updated. Review: https://reviewboard.asterisk.org/r/2719/ (closes issue ASTERISK-22041) git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@396105 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -29,6 +29,7 @@
|
||||
|
||||
#include "asterisk/utils.h"
|
||||
#include "asterisk/threadstorage.h"
|
||||
#include "asterisk/astobj2.h"
|
||||
|
||||
#if defined(DEBUG_OPAQUE)
|
||||
#define __AST_STR_USED used2
|
||||
@@ -1109,4 +1110,48 @@ static force_inline char *attribute_pure ast_str_to_upper(char *str)
|
||||
return str_orig;
|
||||
}
|
||||
|
||||
/*!
|
||||
* \since 12
|
||||
* \brief Allocates a hash container for bare strings
|
||||
*
|
||||
* \param buckets The number of buckets to use for the hash container
|
||||
*
|
||||
* \retval AO2 container for strings
|
||||
* \retval NULL if allocation failed
|
||||
*/
|
||||
#define ast_str_container_alloc(buckets) ast_str_container_alloc_options(AO2_ALLOC_OPT_LOCK_MUTEX, buckets)
|
||||
|
||||
/*!
|
||||
* \since 12
|
||||
* \brief Allocates a hash container for bare strings
|
||||
*
|
||||
* \param opts Options to be provided to the container
|
||||
* \param buckets The number of buckets to use for the hash container
|
||||
*
|
||||
* \retval AO2 container for strings
|
||||
* \retval NULL if allocation failed
|
||||
*/
|
||||
struct ao2_container *ast_str_container_alloc_options(enum ao2_container_opts opts, int buckets);
|
||||
|
||||
/*!
|
||||
* \since 12
|
||||
* \brief Adds a string to a string container allocated by ast_str_container_alloc
|
||||
*
|
||||
* \param str_container The container to which to add a string
|
||||
* \param add The string to add to the container
|
||||
*
|
||||
* \retval zero on success
|
||||
* \retval non-zero if the operation failed
|
||||
*/
|
||||
int ast_str_container_add(struct ao2_container *str_container, const char *add);
|
||||
|
||||
/*!
|
||||
* \since 12
|
||||
* \brief Removes a string from a string container allocated by ast_str_container_alloc
|
||||
*
|
||||
* \param str_container The container from which to remove a string
|
||||
* \param remove The string to remove from the container
|
||||
*/
|
||||
void ast_str_container_remove(struct ao2_container *str_container, const char *remove);
|
||||
|
||||
#endif /* _ASTERISK_STRINGS_H */
|
||||
|
Reference in New Issue
Block a user