@ -29,6 +29,7 @@
# include "asterisk/utils.h"
# include "asterisk/utils.h"
# include "asterisk/threadstorage.h"
# include "asterisk/threadstorage.h"
# include "asterisk/astobj2.h"
# if defined(DEBUG_OPAQUE)
# if defined(DEBUG_OPAQUE)
# define __AST_STR_USED used2
# define __AST_STR_USED used2
@ -1109,4 +1110,48 @@ static force_inline char *attribute_pure ast_str_to_upper(char *str)
return str_orig ;
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 */
# endif /* _ASTERISK_STRINGS_H */