![]() |
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.
|

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 BlockAllocator & | Get (DatabaseInstance &db) |
| static BlockAllocator & | Get (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. | |
| Allocator & | allocator |
| 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_t > | physical_memory_size |
| Size of the physical memory. | |
| unsafe_unique_ptr< BlockQueue > | untouched |
| Untouched block IDs. | |
| unsafe_unique_ptr< BlockQueue > | touched |
| Touched by block IDs. | |
Friends | |
| class | BlockAllocatorThreadLocalState |