diff options
author | Kinsey Moore <kmoore@digium.com> | 2013-08-02 14:08:34 +0000 |
---|---|---|
committer | Kinsey Moore <kmoore@digium.com> | 2013-08-02 14:08:34 +0000 |
commit | 41d6be2432a77cf9da5dbb3f0590a74340a2c54e (patch) | |
tree | 50fe2992b81e196c5efc84d71fdd00a90ebf8a01 /include/asterisk/strings.h | |
parent | f8622e7c5cbdda91a5efad230a9e3af593378c7c (diff) |
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
Diffstat (limited to 'include/asterisk/strings.h')
-rw-r--r-- | include/asterisk/strings.h | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/include/asterisk/strings.h b/include/asterisk/strings.h index 30d2503d8..fc92d4889 100644 --- a/include/asterisk/strings.h +++ b/include/asterisk/strings.h @@ -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 */ |