JabberWerxC  2015.1.1
mem.h
Go to the documentation of this file.
1 
44 #ifndef JABBERWERX_UTIL_MEM_H
45 #define JABBERWERX_UTIL_MEM_H
46 
47 #include "../basics.h"
48 
49 
51 typedef struct _jw_pool_int jw_pool;
52 
53 
61 typedef void (*jw_pool_cleaner)(void *arg);
62 
69 typedef void * (*jw_data_malloc_func)(size_t size);
70 
78 typedef void * (*jw_data_realloc_func)(void *ptr, size_t size);
79 
85 typedef void (*jw_data_free_func)(void *ptr);
86 
87 
88 #ifdef __cplusplus
89 extern "C"
90 {
91 #endif
92 
111  jw_data_realloc_func realloc_func,
112  jw_data_free_func free_func);
113 
128 JABBERWERX_API void jw_data_free(void *ptr);
129 
138 JABBERWERX_API void * jw_data_malloc(size_t size);
139 
150 JABBERWERX_API void * jw_data_realloc(void *ptr, size_t size);
151 
163 JABBERWERX_API void * jw_data_calloc(size_t nmemb, size_t size);
164 
176 JABBERWERX_API char * jw_data_strdup(const char *src);
177 
193 JABBERWERX_API char * jw_data_strndup(const char *src,
194  size_t len);
195 
209 JABBERWERX_API bool jw_pool_create(size_t size,
210  jw_pool **pool,
211  jw_err *err);
221 
238  jw_pool_cleaner callback,
239  void *arg,
240  jw_err *err);
241 
257  size_t size,
258  void **ptr,
259  jw_err *err);
260 
278  size_t num,
279  size_t size,
280  void **ptr,
281  jw_err *err);
282 
298  const char *src,
299  char **cpy,
300  jw_err *err);
301 
302 #ifdef __cplusplus
303 }
304 #endif
305 
306 #endif /* JABBERWERX_UTIL_MEM_H */
#define JABBERWERX_API
Definition: basics.h:32
struct _jw_pool_int jw_pool
Definition: mem.h:51
void(* jw_data_free_func)(void *ptr)
Definition: mem.h:85
void *(* jw_data_realloc_func)(void *ptr, size_t size)
Definition: mem.h:78
JABBERWERX_API char * jw_data_strdup(const char *src)
void(* jw_pool_cleaner)(void *arg)
Definition: mem.h:61
void *(* jw_data_malloc_func)(size_t size)
Definition: mem.h:69
JABBERWERX_API void * jw_data_calloc(size_t nmemb, size_t size)
JABBERWERX_API void jw_data_free(void *ptr)
JABBERWERX_API void * jw_data_malloc(size_t size)
Definition: basics.h:157
JABBERWERX_API bool jw_pool_add_cleaner(jw_pool *pool, jw_pool_cleaner callback, void *arg, jw_err *err)
JABBERWERX_API void * jw_data_realloc(void *ptr, size_t size)
JABBERWERX_API bool jw_pool_create(size_t size, jw_pool **pool, jw_err *err)
JABBERWERX_API char * jw_data_strndup(const char *src, size_t len)
JABBERWERX_API void jw_pool_destroy(jw_pool *pool)
JABBERWERX_API void jw_data_set_memory_funcs(jw_data_malloc_func malloc_func, jw_data_realloc_func realloc_func, jw_data_free_func free_func)
JABBERWERX_API bool jw_pool_calloc(jw_pool *pool, size_t num, size_t size, void **ptr, jw_err *err)
JABBERWERX_API bool jw_pool_strdup(jw_pool *pool, const char *src, char **cpy, jw_err *err)
JABBERWERX_API bool jw_pool_malloc(jw_pool *pool, size_t size, void **ptr, jw_err *err)