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::SegmentNode< T > Struct Template Reference
Collaboration diagram for duckdb::SegmentNode< T >:

Public Member Functions

 SegmentNode (idx_t row_start_p, shared_ptr< T > node_p, idx_t index_p)
 
optional_ptr< SegmentNode< T > > Next () const
 
idx_t GetRowStart () const
 
idx_t GetRowEnd () const
 
idx_t GetCount () const
 
idx_t GetIndex () const
 
T & GetNode () const
 
shared_ptr< T > MoveNode ()
 
shared_ptr< T > & ReferenceNode ()
 
bool HasNode () const
 
void SetNext (optional_ptr< SegmentNode< T > > next)
 
void SetNode (shared_ptr< T > new_node)
 

Private Attributes

idx_t row_start
 
shared_ptr< T > node
 
atomic< SegmentNode< T > * > next
 The next segment after this one.
 
idx_t index
 The index within the segment tree.
 

Constructor & Destructor Documentation

◆ SegmentNode()

template<class T >
duckdb::SegmentNode< T >::SegmentNode ( idx_t  row_start_p,
shared_ptr< T >  node_p,
idx_t  index_p 
)
inline
23523 : row_start(row_start_p), node(std::move(node_p)), next(nullptr), index(index_p) {
23524 }
idx_t index
The index within the segment tree.
Definition duckdb.hpp:23582
atomic< SegmentNode< T > * > next
The next segment after this one.
Definition duckdb.hpp:23577

Member Function Documentation

◆ Next()

template<class T >
optional_ptr< SegmentNode< T > > duckdb::SegmentNode< T >::Next ( ) const
inline
23527 {
23528#ifndef DUCKDB_R_BUILD
23529 return next.load();
23530#else
23531 return next;
23532#endif
23533 }

◆ GetRowStart()

template<class T >
idx_t duckdb::SegmentNode< T >::GetRowStart ( ) const
inline
23535 {
23536 return row_start;
23537 }

◆ GetRowEnd()

template<class T >
idx_t duckdb::SegmentNode< T >::GetRowEnd ( ) const
inline
23538 {
23539 return GetRowStart() + GetCount();
23540 }

◆ GetCount()

template<class T >
idx_t duckdb::SegmentNode< T >::GetCount ( ) const
inline
23541 {
23542 return GetNode().count;
23543 }

◆ GetIndex()

template<class T >
idx_t duckdb::SegmentNode< T >::GetIndex ( ) const
inline
23545 {
23546 return index;
23547 }

◆ GetNode()

template<class T >
T & duckdb::SegmentNode< T >::GetNode ( ) const
inline
23549 {
23550 return *node;
23551 }

◆ MoveNode()

template<class T >
shared_ptr< T > duckdb::SegmentNode< T >::MoveNode ( )
inline
23553 {
23554 return std::move(node);
23555 }

◆ ReferenceNode()

template<class T >
shared_ptr< T > & duckdb::SegmentNode< T >::ReferenceNode ( )
inline
23556 {
23557 return node;
23558 }

◆ HasNode()

template<class T >
bool duckdb::SegmentNode< T >::HasNode ( ) const
inline
23560 {
23561 return node.get();
23562 }

◆ SetNext()

template<class T >
void duckdb::SegmentNode< T >::SetNext ( optional_ptr< SegmentNode< T > >  next)
inline
23564 {
23565 this->next = next.get();
23566 }

◆ SetNode()

template<class T >
void duckdb::SegmentNode< T >::SetNode ( shared_ptr< T >  new_node)
inline
23568 {
23569 node = std::move(new_node);
23570 }

The documentation for this struct was generated from the following files: