28 std::unique_ptr<storage::MemoryBuffer>
block;
37 : memoryManager{memoryManager}, currentBlock{nullptr} {};
44 move(begin(other.blocks), end(other.blocks), back_inserter(blocks));
50 currentBlock = other.currentBlock;
59 bool requireNewBlock(uint64_t sizeToAllocate) {
60 return currentBlock ==
nullptr ||
61 (currentBlock->currentOffset + sizeToAllocate) > currentBlock->size();
64 void allocateNewBlock(uint64_t size);
67 std::vector<std::unique_ptr<BufferBlock>> blocks;
68 storage::MemoryManager* memoryManager;
#define KUZU_API
Definition api.h:25
void merge(InMemOverflowBuffer &other)
Definition in_mem_overflow_buffer.h:43
DEFAULT_BOTH_MOVE(InMemOverflowBuffer)
uint8_t * allocateSpace(uint64_t size)
InMemOverflowBuffer(storage::MemoryManager *memoryManager)
Definition in_mem_overflow_buffer.h:36
Definition array_utils.h:7
Definition copy_from_error.h:17
Definition array_utils.h:7
Definition in_mem_overflow_buffer.h:18
uint64_t currentOffset
Definition in_mem_overflow_buffer.h:27
std::unique_ptr< storage::MemoryBuffer > block
Definition in_mem_overflow_buffer.h:28
void resetCurrentOffset()
Definition in_mem_overflow_buffer.h:30
BufferBlock(std::unique_ptr< storage::MemoryBuffer > block)