#include <BlockAllocator.hpp>
Classes | |
| struct | Block |
| Block. More... | |
| struct | Chunk |
| Chunk. More... | |
Public Types | |
| using | size_type = std::size_t |
| Size type. More... | |
Public Member Functions | |
| BlockAllocator () | |
| BlockAllocator (const BlockAllocator &other)=delete | |
| BlockAllocator (BlockAllocator &&other)=delete | |
| ~BlockAllocator () noexcept | |
| BlockAllocator & | operator= (const BlockAllocator &other)=delete |
| BlockAllocator & | operator= (BlockAllocator &&other)=delete |
| void * | Allocate (size_type n) |
| template<typename T > | |
| T * | AllocateArray (size_type n) |
| Allocates an array. More... | |
| void | Free (void *p, size_type n) |
| Frees memory. More... | |
| void | Clear () |
| auto | GetChunkCount () const noexcept |
| Gets the chunk count. More... | |
Static Public Member Functions | |
| static PLAYRHO_CONSTEXPR size_type | GetMaxBlockSize () noexcept |
| Max block size (before using external allocator). More... | |
| static PLAYRHO_CONSTEXPR size_type | GetChunkArrayIncrement () noexcept |
| Chunk array increment. More... | |
Static Public Attributes | |
| static const PLAYRHO_CONSTEXPR auto | ChunkSize = size_type{16 * 1024} |
| Chunk size. More... | |
Detailed Description
Block allocator.
This is a small object allocator used for allocating small objects that persist for more than one time step.
- Note
- This data structure is 136-bytes large (on at least one 64-bit platform).
Definition at line 40 of file BlockAllocator.hpp.
Member Typedef Documentation
◆ size_type
| using playrho::BlockAllocator::size_type = std::size_t |
Size type.
Definition at line 45 of file BlockAllocator.hpp.
Constructor & Destructor Documentation
◆ BlockAllocator() [1/3]
| playrho::BlockAllocator::BlockAllocator | ( | ) |
Definition at line 105 of file BlockAllocator.cpp.
◆ BlockAllocator() [2/3]
|
delete |
◆ BlockAllocator() [3/3]
|
delete |
◆ ~BlockAllocator()
|
noexcept |
Definition at line 114 of file BlockAllocator.cpp.
Member Function Documentation
◆ GetMaxBlockSize()
|
inlinestaticnoexcept |
Max block size (before using external allocator).
Definition at line 51 of file BlockAllocator.hpp.
◆ GetChunkArrayIncrement()
|
inlinestaticnoexcept |
Chunk array increment.
Definition at line 57 of file BlockAllocator.hpp.
◆ operator=() [1/2]
|
delete |
◆ operator=() [2/2]
|
delete |
◆ Allocate()
| void * playrho::BlockAllocator::Allocate | ( | size_type | n | ) |
Allocates memory.
Allocates uninitialized storage. Uses Alloc if the size is larger than GetMaxBlockSize(). Otherwise looks for an appropriately sized block from the free list. Failing that, Alloc is used to grow the free list from which memory is returned.
- See also
- Alloc.
Definition at line 123 of file BlockAllocator.cpp.
◆ AllocateArray()
|
inline |
Allocates an array.
Definition at line 85 of file BlockAllocator.hpp.
◆ Free()
| void playrho::BlockAllocator::Free | ( | void * | p, |
| size_type | n | ||
| ) |
Frees memory.
This will use free if the size is larger than GetMaxBlockSize().
Definition at line 178 of file BlockAllocator.cpp.
◆ Clear()
| void playrho::BlockAllocator::Clear | ( | ) |
Clears this allocator.
- Note
- This resets the chunk-count back to zero.
Definition at line 218 of file BlockAllocator.cpp.
◆ GetChunkCount()
|
inlinenoexcept |
Gets the chunk count.
Definition at line 99 of file BlockAllocator.hpp.
Member Data Documentation
◆ ChunkSize
|
static |
Chunk size.
Definition at line 48 of file BlockAllocator.hpp.
The documentation for this class was generated from the following files:
- Common/BlockAllocator.hpp
- Common/BlockAllocator.cpp

