Structure for storing a compact group of mutable, variable-length character strings.
More...
|
typedef size_t | mdata_strpool_idx_t |
|
|
MERROR_RETVAL | mdata_strpool_check_idx (struct MDATA_STRPOOL *sp, mdata_strpool_idx_t idx) |
| Verify if the given mdata_strpool_idx_t is valid in the given strpool.
|
|
mdata_strpool_idx_t | mdata_strpool_find (struct MDATA_STRPOOL *sp, const char *str, size_t str_sz) |
|
MAUG_MHANDLE | mdata_strpool_extract (struct MDATA_STRPOOL *sp, mdata_strpool_idx_t idx) |
| Return a dynamically-allocated memory handle containing the contents of the string at the given index.
|
|
mdata_strpool_idx_t | mdata_strpool_append (struct MDATA_STRPOOL *sp, const char *str, size_t str_sz, uint8_t flags) |
|
MERROR_RETVAL | mdata_strpool_remove (struct MDATA_STRPOOL *sp, mdata_strpool_idx_t idx) |
|
MERROR_RETVAL | mdata_strpool_alloc (struct MDATA_STRPOOL *sp, size_t alloc_sz) |
|
void | mdata_strpool_free (struct MDATA_STRPOOL *sp) |
|
Structure for storing a compact group of mutable, variable-length character strings.
◆ mdata_strpool_get
#define mdata_strpool_get |
( |
| sp, |
|
|
| idx ) |
Value: ((idx >= 1 && idx < (sp)->str_sz) ? &((sp)->str_p[idx]) : NULL)
◆ mdata_strpool_get_sz
#define mdata_strpool_get_sz |
( |
| sp, |
|
|
| idx ) |
Value: ((idx >= sizeof( size_t ) && idx < (sp)->str_sz) ? \
(size_t)(*(&((sp)->str_p[idx - sizeof( size_t )]))) : 0)
◆ mdata_strpool_is_locked
#define mdata_strpool_is_locked |
( |
| sp | ) |
|
Value: (MDATA_STRPOOL_FLAG_IS_LOCKED == \
(MDATA_STRPOOL_FLAG_IS_LOCKED & (sp)->flags))
◆ mdata_strpool_lock
#define mdata_strpool_lock |
( |
| sp | ) |
|
Value: mdata_debug_printf( "locking strpool %p...", sp ); \
if( NULL != (sp)->str_p ) { \
error_printf( "str_p not null! double lock?" ); \
retval = MERROR_ALLOC; \
goto cleanup; \
} \
maug_mlock( (sp)->str_h, (sp)->str_p ); \
maug_cleanup_if_null_lock( char*, (sp)->str_p ); \
(sp)->flags |= MDATA_STRPOOL_FLAG_IS_LOCKED;
◆ mdata_strpool_padding
#define mdata_strpool_padding |
( |
| str_sz | ) |
|
Value: (sizeof( size_t ) - ((str_sz + 1 ) % sizeof( size_t )))
◆ mdata_strpool_sz
#define mdata_strpool_sz |
( |
| sp | ) |
|
◆ mdata_strpool_unlock
#define mdata_strpool_unlock |
( |
| sp | ) |
|
Value: mdata_debug_printf( "unlocking strpool %p...", sp ); \
if( NULL != (sp)->str_p ) { \
maug_munlock( (sp)->str_h, (sp)->str_p ); \
(sp)->flags &= ~MDATA_STRPOOL_FLAG_IS_LOCKED; \
}