distortos  v0.4.0
object-oriented C++ RTOS for microcontrollers
estd::internal::IntrusiveListBase Class Reference

IntrusiveListBase class provides base functionalities for IntrusiveList class, but without any knowledge about types. More...

#include <IntrusiveList.hpp>

Collaboration diagram for estd::internal::IntrusiveListBase:
[legend]

Public Member Functions

constexpr IntrusiveListBase ()
 IntrusiveListBase's constructor. More...
 
 ~IntrusiveListBase ()
 IntrusiveListBase's destructor. More...
 
IntrusiveListNodebegin ()
 
const IntrusiveListNodebegin () const
 
const IntrusiveListNodecbegin () const
 
const IntrusiveListNodecend () const
 
void clear ()
 Unlinks all nodes from the list. More...
 
bool empty () const
 
IntrusiveListNodeend ()
 
const IntrusiveListNodeend () const
 
void pop_back ()
 Unlinks the last node from the list. More...
 
void pop_front ()
 Unlinks the first node from the list. More...
 
void push_back (IntrusiveListNode &newNode)
 Links the node at the end of the list. More...
 
void push_front (IntrusiveListNode &newNode)
 Links the node at the beginning of the list. More...
 
void swap (IntrusiveListBase &other)
 Swaps contents with another list. More...
 
 IntrusiveListBase (const IntrusiveListBase &)=delete
 
 IntrusiveListBase (IntrusiveListBase &&)=default
 
const IntrusiveListBaseoperator= (const IntrusiveListBase &)=delete
 
IntrusiveListBaseoperator= (IntrusiveListBase &&)=delete
 

Static Public Member Functions

static IntrusiveListNodeerase (IntrusiveListNode &position)
 Unlinks the node at position from the list. More...
 
static void insert (IntrusiveListNode &position, IntrusiveListNode &newNode)
 Links the node in the list before position. More...
 
static void splice (IntrusiveListNode &position, IntrusiveListNode &splicedNode)
 Transfers the node from one list to another list before position. More...
 

Private Attributes

IntrusiveListNode rootNode_
 root node of the intrusive list More...
 

Detailed Description

IntrusiveListBase class provides base functionalities for IntrusiveList class, but without any knowledge about types.

This class tries to provide an interface similar to std::list.

Constructor & Destructor Documentation

◆ IntrusiveListBase()

constexpr estd::internal::IntrusiveListBase::IntrusiveListBase ( )
inline

IntrusiveListBase's constructor.

◆ ~IntrusiveListBase()

estd::internal::IntrusiveListBase::~IntrusiveListBase ( )
inline

IntrusiveListBase's destructor.

Unlinks all nodes from the list.

Member Function Documentation

◆ begin() [1/2]

IntrusiveListNode& estd::internal::IntrusiveListBase::begin ( )
inline
Returns
reference to first node on the list
Here is the call graph for this function:

◆ begin() [2/2]

const IntrusiveListNode& estd::internal::IntrusiveListBase::begin ( ) const
inline
Returns
const reference to first node on the list
Here is the call graph for this function:

◆ cbegin()

const IntrusiveListNode& estd::internal::IntrusiveListBase::cbegin ( ) const
inline
Returns
const reference to first node on the list

◆ cend()

const IntrusiveListNode& estd::internal::IntrusiveListBase::cend ( ) const
inline
Returns
const reference to "one past the last" node on the list

◆ clear()

void estd::internal::IntrusiveListBase::clear ( )
inline

Unlinks all nodes from the list.

◆ empty()

bool estd::internal::IntrusiveListBase::empty ( ) const
inline
Returns
true is the list is empty, false otherwise

◆ end() [1/2]

IntrusiveListNode& estd::internal::IntrusiveListBase::end ( )
inline
Returns
reference to "one past the last" node on the list

◆ end() [2/2]

const IntrusiveListNode& estd::internal::IntrusiveListBase::end ( ) const
inline
Returns
const reference to "one past the last" node on the list

◆ erase()

static IntrusiveListNode& estd::internal::IntrusiveListBase::erase ( IntrusiveListNode position)
inlinestatic

Unlinks the node at position from the list.

Note
No instance of the list is needed for this operation.
Parameters
[in]positionis a reference to the node that will be unlinked from the list
Returns
reference to the node that was following the node which was unlinked
Here is the call graph for this function:
Here is the caller graph for this function:

◆ insert()

static void estd::internal::IntrusiveListBase::insert ( IntrusiveListNode position,
IntrusiveListNode newNode 
)
inlinestatic

Links the node in the list before position.

Note
No instance of the list is needed for this operation.
Parameters
[in]positionis a reference to node before which newNode will be linked
[in]newNodeis a reference to node that will be linked in the list
Here is the call graph for this function:
Here is the caller graph for this function:

◆ pop_back()

void estd::internal::IntrusiveListBase::pop_back ( )
inline

Unlinks the last node from the list.

◆ pop_front()

void estd::internal::IntrusiveListBase::pop_front ( )
inline

Unlinks the first node from the list.

◆ push_back()

void estd::internal::IntrusiveListBase::push_back ( IntrusiveListNode newNode)
inline

Links the node at the end of the list.

Parameters
[in]newNodeis a reference to node that will be linked in the list

◆ push_front()

void estd::internal::IntrusiveListBase::push_front ( IntrusiveListNode newNode)
inline

Links the node at the beginning of the list.

Parameters
[in]newNodeis a reference to node that will be linked in the list

◆ splice()

static void estd::internal::IntrusiveListBase::splice ( IntrusiveListNode position,
IntrusiveListNode splicedNode 
)
inlinestatic

Transfers the node from one list to another list before position.

Note
No instance of any list is needed for this operation.
Parameters
[in]positionis a reference to node before which splicedNode will be linked
[in]splicedNodeis a reference to node that will be spliced from one list to another
Here is the caller graph for this function:

◆ swap()

void estd::internal::IntrusiveListBase::swap ( IntrusiveListBase other)
inline

Swaps contents with another list.

Parameters
[in]otheris a reference to IntrusiveListBase with which contents of this list will be swapped
Here is the caller graph for this function:

Member Data Documentation

◆ rootNode_

IntrusiveListNode estd::internal::IntrusiveListBase::rootNode_
private

root node of the intrusive list


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