28 std::unique_ptr<storage::MemoryBuffer>
block;
37 : memoryManager{memoryManager} {};
44 move(begin(other.blocks), end(other.blocks), back_inserter(blocks));
63 bool requireNewBlock(uint64_t sizeToAllocate) {
64 return blocks.empty() ||
65 (currentBlock()->currentOffset + sizeToAllocate) > currentBlock()->size();
68 void allocateNewBlock(uint64_t size);
70 BufferBlock* currentBlock() {
return blocks.back().get(); }
73 std::vector<std::unique_ptr<BufferBlock>> blocks;
74 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)
storage::MemoryManager * getMemoryManager()
Definition in_mem_overflow_buffer.h:60
void preventDestruction()
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
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)