25 std::unique_ptr<storage::MemoryBuffer>
block;
34 : memoryManager{memoryManager}, currentBlock{nullptr} {};
39 move(begin(other.blocks), end(other.blocks), back_inserter(blocks));
45 currentBlock = other.currentBlock;
54 bool requireNewBlock(uint64_t sizeToAllocate) {
55 return currentBlock ==
nullptr ||
59 void allocateNewBlock(uint64_t size);
62 std::vector<std::unique_ptr<BufferBlock>> blocks;
63 storage::MemoryManager* memoryManager;
Definition in_mem_overflow_buffer.h:30
void merge(InMemOverflowBuffer &other)
Definition in_mem_overflow_buffer.h:38
uint8_t * allocateSpace(uint64_t size)
InMemOverflowBuffer(storage::MemoryManager *memoryManager)
Definition in_mem_overflow_buffer.h:33
Definition array_utils.h:7
Definition in_mem_overflow_buffer.h:15
uint64_t currentOffset
Definition in_mem_overflow_buffer.h:24
std::unique_ptr< storage::MemoryBuffer > block
Definition in_mem_overflow_buffer.h:25
void resetCurrentOffset()
Definition in_mem_overflow_buffer.h:27
BufferBlock(std::unique_ptr< storage::MemoryBuffer > block)