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

IntrusiveForwardListNode class is the node that is needed for the object to be linked in IntrusiveForwardList. More...

#include <IntrusiveForwardList.hpp>

Collaboration diagram for estd::IntrusiveForwardListNode:
[legend]

Classes

class  AccessKey
 

Public Member Functions

constexpr IntrusiveForwardListNode ()
 IntrusiveForwardListNode's constructor. More...
 
 IntrusiveForwardListNode (IntrusiveForwardListNode &&other)
 IntrusiveForwardListNode's move constructor. More...
 
IntrusiveForwardListNodegetNextNode () const
 
bool isLinked () const
 
void linkAfter (IntrusiveForwardListNode *const position, AccessKey)
 Links the node in the list after position. More...
 
void swap (IntrusiveForwardListNode &other)
 Swaps contents with another node. More...
 
void unlinkNext (AccessKey)
 Unlinks the node following this one from the list. More...
 
 IntrusiveForwardListNode (const IntrusiveForwardListNode &)=delete
 
const IntrusiveForwardListNodeoperator= (const IntrusiveForwardListNode &)=delete
 
IntrusiveForwardListNodeoperator= (IntrusiveForwardListNode &&)=delete
 

Private Member Functions

void reset ()
 Resets the node to the same state as right after construction. More...
 

Private Attributes

IntrusiveForwardListNodenextNode_
 pointer to next node on the list More...
 

Detailed Description

IntrusiveForwardListNode class is the node that is needed for the object to be linked in IntrusiveForwardList.

To some extent, this class can be considered to be a limited (raw) iterator.

The object that wants to be linked in IntrusiveForwardList must contain a variable of this type - one for each intrusive forward list that will be used with object.

Constructor & Destructor Documentation

◆ IntrusiveForwardListNode() [1/2]

constexpr estd::IntrusiveForwardListNode::IntrusiveForwardListNode ( )
inline

IntrusiveForwardListNode's constructor.

◆ IntrusiveForwardListNode() [2/2]

estd::IntrusiveForwardListNode::IntrusiveForwardListNode ( IntrusiveForwardListNode &&  other)
inline

IntrusiveForwardListNode's move constructor.

Parameters
[in]otheris a rvalue reference to IntrusiveForwardListNode used as source of move construction

Member Function Documentation

◆ getNextNode()

IntrusiveForwardListNode* estd::IntrusiveForwardListNode::getNextNode ( ) const
inline
Returns
pointer to next node on the list
Here is the caller graph for this function:

◆ isLinked()

bool estd::IntrusiveForwardListNode::isLinked ( ) const
inline
Returns
true if the node is linked in some list, false otherwise

◆ linkAfter()

void estd::IntrusiveForwardListNode::linkAfter ( IntrusiveForwardListNode *const  position,
AccessKey   
)
inline

Links the node in the list after position.

Note
Access to this function is restricted only to functions from internal::IntrusiveForwardListBase class
Parameters
[in]positionis a pointer to node after which this node will be linked
[in]accessKeyis used to limit access to this function
Here is the call graph for this function:
Here is the caller graph for this function:

◆ reset()

void estd::IntrusiveForwardListNode::reset ( )
inlineprivate

Resets the node to the same state as right after construction.

◆ swap()

void estd::IntrusiveForwardListNode::swap ( IntrusiveForwardListNode other)
inline

Swaps contents with another node.

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

◆ unlinkNext()

void estd::IntrusiveForwardListNode::unlinkNext ( AccessKey  )
inline

Unlinks the node following this one from the list.

Note
Access to this function is restricted only to functions from internal::IntrusiveForwardListBase class
Parameters
[in]accessKeyis used to limit access to this function
Here is the caller graph for this function:

Member Data Documentation

◆ nextNode_

IntrusiveForwardListNode* estd::IntrusiveForwardListNode::nextNode_
private

pointer to next node on the list


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