dvander@2226: #ifndef _INCLUDE_KNIGHT_KE_LUMP_ALLOCATOR_H_ dvander@2226: #define _INCLUDE_KNIGHT_KE_LUMP_ALLOCATOR_H_ dvander@2226: dvander@2226: #include dvander@2226: #include dvander@2226: dvander@2226: namespace Knight dvander@2226: { dvander@2226: /** dvander@2226: * @brief Creates a new lump allocator. dvander@2226: * dvander@2226: * The lump allocator is intended for cases where there are many allocations dvander@2226: * and none need to be freed. There is memory wastage, and the lump allocator dvander@2226: * is typically thrown away after use. dvander@2226: * dvander@2226: * @return New lump allocator. dvander@2226: */ dvander@2226: extern ke_allocator_t * KE_CreateLumpAllocator(); dvander@2226: dvander@2226: /** dvander@2226: * @brief Destroys a lump allocator, freeing all of its resources. dvander@2226: * dvander@2226: * @param lump Lump allocator. dvander@2226: */ dvander@2226: extern void KE_DestroyLumpAllocator(ke_allocator_t *alloc); dvander@2226: dvander@2226: /** dvander@2226: * @brief Clears a lump allocator, so its memory can be re-used from dvander@2226: * the start. dvander@2226: * dvander@2226: * @param lump Lump allocator. dvander@2226: */ dvander@2226: extern void KE_ResetLumpAllocator(ke_allocator_t *alloc); dvander@2226: } dvander@2226: dvander@2226: #endif //_INCLUDE_KNIGHT_KE_LUMP_ALLOCATOR_H_