15 #ifndef RCUTILS__ALLOCATOR_H_ 16 #define RCUTILS__ALLOCATOR_H_ 49 void * (*allocate)(
size_t size,
void *
state);
64 void * (*reallocate)(
void * pointer,
size_t size,
void *
state);
67 void * (*zero_allocate)(
size_t number_of_elements,
size_t size_of_element,
void *
state);
118 #define RCUTILS_CHECK_ALLOCATOR(allocator, fail_statement) \ 119 if (!rcutils_allocator_is_valid(allocator)) { \ 123 #define RCUTILS_CHECK_ALLOCATOR_WITH_MSG(allocator, msg, fail_statement) \ 124 if (!rcutils_allocator_is_valid(allocator)) { \ 125 RCUTILS_SET_ERROR_MSG(msg, rcutils_get_default_allocator()) \ 143 #endif // RCUTILS__ALLOCATOR_H_ bool rcutils_allocator_is_valid(const rcutils_allocator_t *allocator)
Return true if the given allocator has non-null function pointers.
rcutils_allocator_t rcutils_get_zero_initialized_allocator(void)
Return a zero initialized allocator.
void * state
Implementation defined state storage.
Definition: allocator.h:74
void * rcutils_reallocf(void *pointer, size_t size, rcutils_allocator_t *allocator)
Emulate the behavior of reallocf.
Encapsulation of an allocator.
Definition: allocator.h:45
rcutils_allocator_t rcutils_get_default_allocator(void)
Return a properly initialized rcutils_allocator_t with default values.
#define RCUTILS_WARN_UNUSED
Definition: macros.h:24
#define RCUTILS_PUBLIC
Definition: visibility_control.h:48
struct rcutils_allocator_t rcutils_allocator_t
Encapsulation of an allocator.
void(* deallocate)(void *pointer, void *state)
Deallocate previously allocated memory, mimicking free().
Definition: allocator.h:52