maug
Quick and dirty C mini-augmentation library.
Loading...
Searching...
No Matches
mdata.h File Reference

Go to the source code of this file.

Data Structures

struct  MDATA_STRPOOL
 A pool of immutable text strings. Deduplicates strings to save memory. More...
 
struct  MDATA_VECTOR
 A vector of uniformly-sized objects, stored contiguously. More...
 
struct  MDATA_TABLE_KEY
 
struct  MDATA_TABLE
 

Macros

#define MDATA_TRACE_LVL   0
 
#define MDATA_TABLE_KEY_SZ_MAX   8
 
#define MDATA_VECTOR_FLAG_IS_LOCKED   0x02
 
#define MDATA_STRPOOL_FLAG_IS_LOCKED   0x01
 
#define MDATA_STRPOOL_FLAG_DEDUPE   0x02
 
#define mdata_debug_printf(fmt, ...)
 
#define mdata_strpool_sz(sp)
 
#define mdata_strpool_is_locked(sp)
 
#define mdata_strpool_lock(sp)
 
#define mdata_strpool_unlock(sp)
 
#define mdata_strpool_get(sp, idx)
 
#define mdata_strpool_get_sz(sp, idx)
 
#define mdata_strpool_padding(str_sz)
 
#define mdata_vector_get(v, idx, type)
 
#define mdata_vector_get_last(v, type)
 
#define mdata_vector_remove_last(v)
 
#define mdata_vector_set_ct_step(v, step)
 
#define mdata_vector_is_locked(v)
 
#define mdata_vector_insert_sort(v, i, t, field)
 
#define mdata_vector_sort(v, t, field)
 
#define _mdata_vector_item_ptr(v, idx)
 
#define mdata_vector_set_flag(v, flag)
 
#define mdata_vector_get_flag(v, flag)
 
#define mdata_table_is_locked(t)
 
#define mdata_table_get(t, key, type)
 
#define mdata_table_hash_get(t, hash, sz, type)
 
#define mdata_table_ct(t)
 
#define mdata_table_sz(t)
 
#define mdata_retval(idx)
 

Typedefs

typedef size_t mdata_strpool_idx_t
 
typedef MERROR_RETVAL(* mdata_table_iter_t) (const struct MDATA_TABLE_KEY *key, void *data, size_t data_sz, void *cb_data, size_t cb_data_sz, size_t idx)
 

Functions

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)
 
ssize_t mdata_vector_insert (struct MDATA_VECTOR *v, const void *item, ssize_t idx, size_t item_sz)
 
MERROR_RETVAL mdata_vector_copy (struct MDATA_VECTOR *v_dest, struct MDATA_VECTOR *v_src)
 
MERROR_RETVAL mdata_vector_alloc (struct MDATA_VECTOR *v, size_t item_sz, size_t item_ct_init)
 
void mdata_vector_free (struct MDATA_VECTOR *v)
 
uint32_t mdata_hash (const char *token, size_t token_sz)
 
MERROR_RETVAL mdata_table_lock (struct MDATA_TABLE *t)
 
MERROR_RETVAL mdata_table_unlock (struct MDATA_TABLE *t)
 
MERROR_RETVAL mdata_table_iter (struct MDATA_TABLE *t, mdata_table_iter_t cb, void *cb_data, size_t cb_data_sz)
 
MERROR_RETVAL mdata_table_set (struct MDATA_TABLE *t, const char *key, void *value, size_t value_sz)
 
MERROR_RETVAL mdata_table_unset (struct MDATA_TABLE *t, const char *key)
 
void * mdata_table_get_void (const struct MDATA_TABLE *t, const char *key)
 
void * mdata_table_hash_get_void (struct MDATA_TABLE *t, uint32_t key_hash, size_t key_sz)
 
void mdata_table_free (struct MDATA_TABLE *t)