![]() |
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 | |
| Prefix (const ART &art, const Node ptr_p, const bool is_mutable=false, const bool set_in_memory=false) | |
| Prefix (FixedSizeAllocator &allocator, const Node ptr_p, const idx_t count) | |
Static Public Member Functions | |
| static uint8_t | GetByte (const ART &art, const Node &node, const uint8_t pos) |
| static void | New (ART &art, reference< Node > &ref, const ARTKey &key, const idx_t depth, idx_t count) |
| Get a new list of prefix nodes. The node reference holds the child of the last prefix node. | |
| static void | Concat (ART &art, Node &parent, Node &node4, const Node child, uint8_t byte, const GateStatus node4_status, const GateStatus status) |
| Concatenates parent -> prev_node4 -> child. | |
| static void | Reduce (ART &art, Node &node, const idx_t pos) |
| static GateStatus | Split (ART &art, reference< Node > &node, Node &child, const uint8_t pos) |
Public Attributes | |
| data_ptr_t | data |
| Node * | ptr |
| bool | in_memory |
Static Public Attributes | |
| static constexpr NType | PREFIX = NType::PREFIX |
| static constexpr uint8_t | ROW_ID_SIZE = sizeof(row_t) |
| static constexpr uint8_t | ROW_ID_COUNT = ROW_ID_SIZE - 1 |
| static constexpr uint8_t | DEPRECATED_COUNT = 15 |
| static constexpr uint8_t | METADATA_SIZE = sizeof(Node) + 1 |
Private Member Functions | |
| Prefix | Append (ART &art, const uint8_t byte) |
| void | Append (ART &art, Node other) |
| Prefix | TransformToDeprecatedAppend (ART &art, FixedSizeAllocator &allocator, uint8_t byte) |
Static Private Member Functions | |
| static Prefix | NewInternal (ART &art, Node &node, const data_ptr_t data, const uint8_t count, const idx_t offset) |
| static Prefix | GetTail (ART &art, const Node &node) |
| static void | ConcatInternal (ART &art, Node &parent, Node &node4, const Node child, uint8_t byte, const GateStatus status) |
| static void | ConcatNode4WasGate (ART &art, Node &node4, const Node child, uint8_t byte) |
| static void | ConcatChildIsGate (ART &art, Node &parent, Node &node4, const Node child, uint8_t byte) |
| static void | ConcatOutsideGate (ART &art, Node &parent, Node &node4, const Node child, uint8_t byte) |
| template<class F , class NODE > | |
| static void | Iterator (ART &art, reference< NODE > &ref, const bool exit_gate, const bool is_mutable, F &&lambda) |
Prefix is a wrapper class to access a prefix. The prefix contains up to the ART's prefix size bytes and an additional byte for the count. It also contains a Node pointer to a child node.
Removes up to pos bytes from the prefix. Shifts all subsequent bytes by pos. Frees empty nodes.
|
static |
Splits the prefix at pos. node references the node that replaces the split byte. child references the remaining node after the split. Returns GATE_SET, if a gate node was freed, else GATE_NOT_SET. If it returns GATE_SET, then the caller must set the gate for the node replacing the split byte, after its creation.
|
inlinestaticprivate |