Autonomy Software C++ 24.5.1
Welcome to the Autonomy Software repository of the Mars Rover Design Team (MRDT) at Missouri University of Science and Technology (Missouri S&T)! API reference contains the source code and other resources for the development of the autonomy software for our Mars rover. The Autonomy Software project aims to compete in the University Rover Challenge (URC) by demonstrating advanced autonomous capabilities and robust navigation algorithms.
Loading...
Searching...
No Matches
duckdb::BlockAllocator Class Reference
Collaboration diagram for duckdb::BlockAllocator:

Public Member Functions

 BlockAllocator (Allocator &allocator, idx_t block_size, idx_t virtual_memory_size, idx_t physical_memory_size)
 
void Resize (idx_t new_physical_memory_size)
 Resize physical memory (can only be increased)
 
data_ptr_t AllocateData (idx_t size) const
 Allocation functions (same API as Allocator)
 
void FreeData (data_ptr_t pointer, idx_t size) const
 
data_ptr_t ReallocateData (data_ptr_t pointer, idx_t old_size, idx_t new_size) const
 
bool SupportsFlush () const
 Flush outstanding allocations.
 
void ThreadFlush (bool allocator_background_threads, idx_t threshold, idx_t thread_count) const
 
void FlushAll (optional_idx extra_memory=optional_idx()) const
 

Static Public Member Functions

static BlockAllocatorGet (DatabaseInstance &db)
 
static BlockAllocatorGet (AttachedDatabase &db)
 

Private Member Functions

bool IsActive () const
 
bool IsEnabled () const
 
bool IsInPool (data_ptr_t pointer) const
 
idx_t ModuloBlockSize (idx_t n) const
 
idx_t DivBlockSize (idx_t n) const
 
uint32_t GetBlockID (data_ptr_t pointer) const
 
data_ptr_t GetPointer (uint32_t block_id) const
 
void VerifyBlockID (uint32_t block_id) const
 
void FreeInternal (idx_t extra_memory) const
 
void FreeContiguousBlocks (uint32_t block_id_start, uint32_t block_id_end_including) const
 

Private Attributes

const hugeint_t uuid
 Identifier.
 
Allocatorallocator
 Fallback allocator.
 
const idx_t block_size
 Block size (power of two)
 
const idx_t block_size_div_shift
 Shift for dividing by block size.
 
const idx_t virtual_memory_size
 Size of the virtual memory.
 
atomic< data_ptr_t > virtual_memory_space
 Pointer to the start of the virtual memory.
 
mutex physical_memory_lock
 Mutex for modifying physical memory size.
 
atomic< idx_tphysical_memory_size
 Size of the physical memory.
 
unsafe_unique_ptr< BlockQueueuntouched
 Untouched block IDs.
 
unsafe_unique_ptr< BlockQueuetouched
 Touched by block IDs.
 

Friends

class BlockAllocatorThreadLocalState
 

The documentation for this class was generated from the following file: