omni::structuredlog::BlockAllocator
Defined in omni/structuredlog/JsonTree.h
- 
class BlockAllocator : public omni::structuredlog::Allocator
- An implementation of Allocator which will just allocate from a preallocated block of memory and never deallocate memory until the full preallocated block is freed. - This is useful for something like a structured log event, where the required size of the tree can be preallocated. - Public Functions - 
inline BlockAllocator(void *block, size_t len)
- Create the allocator from a preallocated block. - Parameters
- block – [in] The block of memory to allocate from. 
- len – [in] The length of - blockin bytes.
 
 
 - 
inline virtual void *alloc(size_t size) override
- Allocated memory. - Remark - This should be overwritten by custom memory allocators to use another allocation mechanism. - Parameters
- size – [in] The number of bytes to allocate. 
- Returns
- The allocated memory. 
- Returns
- nullptr if memory was not available. 
 
 - 
inline virtual void dealloc(void *mem) override
- Deallocate a previously allocated block. - Parameters
- mem – [in] A block previously allocated by alloc(). 
 
 - Public Static Functions - 
static inline size_t fixupAlignment(size_t size)
- Round a size up to be aligned to kAlignment. - Parameters
- size – [in] The size to align. 
- Returns
- sizerounded up to the next multiple of kAlignment.
 
 - Public Static Attributes - 
static constexpr size_t kAlignment = alignof(void*)
- The alignment that each allocation must be. 
 
- 
inline BlockAllocator(void *block, size_t len)