28 std::unique_ptr<storage::MemoryBuffer>
block;
37 : memoryManager{memoryManager} {};
44 move(begin(other.blocks), end(other.blocks), back_inserter(blocks));
60 bool requireNewBlock(uint64_t sizeToAllocate) {
61 return blocks.empty() ||
62 (currentBlock()->currentOffset + sizeToAllocate) > currentBlock()->size();
65 void allocateNewBlock(uint64_t size);
67 BufferBlock* currentBlock() {
return blocks.back().get(); }
70 std::vector<std::unique_ptr<BufferBlock>> blocks;
71 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:57
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)