distortos  v0.7.0
object-oriented C++ RTOS for microcontrollers
estd::IntrusiveListNode Class Reference

IntrusiveListNode class is the node that is needed for the object to be linked in IntrusiveList. More...

#include "estd/IntrusiveList.hpp"

Collaboration diagram for estd::IntrusiveListNode:
[legend]

Classes

class  LinkAccessKey
 

Public Member Functions

constexpr IntrusiveListNode ()
 IntrusiveListNode's constructor. More...
 
 IntrusiveListNode (IntrusiveListNode &&other)
 IntrusiveListNode's move constructor. More...
 
 ~IntrusiveListNode ()
 IntrusiveListNode's destructor. More...
 
IntrusiveListNodegetNextNode () const
 
IntrusiveListNodegetPreviousNode () const
 
bool isLinked () const
 
void link (IntrusiveListNode &position, LinkAccessKey)
 Links the node in the list before position. More...
 
void swap (IntrusiveListNode &other)
 Swaps contents with another node. More...
 
void unlink ()
 Unlinks the node from the list. More...
 
 IntrusiveListNode (const IntrusiveListNode &)=delete
 
const IntrusiveListNodeoperator= (const IntrusiveListNode &)=delete
 
IntrusiveListNodeoperator= (IntrusiveListNode &&)=delete
 

Private Member Functions

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

Private Attributes

IntrusiveListNodenextNode_
 reference to next node on the list More...
 
IntrusiveListNodepreviousNode_
 reference to previous node on the list More...
 

Detailed Description

IntrusiveListNode class is the node that is needed for the object to be linked in IntrusiveList.

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

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

Constructor & Destructor Documentation

◆ IntrusiveListNode() [1/2]

constexpr estd::IntrusiveListNode::IntrusiveListNode ( )
inline

IntrusiveListNode's constructor.

◆ IntrusiveListNode() [2/2]

estd::IntrusiveListNode::IntrusiveListNode ( IntrusiveListNode &&  other)
inline

IntrusiveListNode's move constructor.

Parameters
[in]otheris a rvalue reference to IntrusiveListNode used as source of move construction
Here is the call graph for this function:

◆ ~IntrusiveListNode()

estd::IntrusiveListNode::~IntrusiveListNode ( )
inline

IntrusiveListNode's destructor.

Unlinks the node from the list.

Here is the call graph for this function:

Member Function Documentation

◆ getNextNode()

IntrusiveListNode& estd::IntrusiveListNode::getNextNode ( ) const
inline
Returns
reference to next node on the list
Here is the caller graph for this function:

◆ getPreviousNode()

IntrusiveListNode& estd::IntrusiveListNode::getPreviousNode ( ) const
inline
Returns
reference to previous node on the list
Here is the caller graph for this function:

◆ isLinked()

bool estd::IntrusiveListNode::isLinked ( ) const
inline
Returns
true if the node is linked in some list, false otherwise
Here is the caller graph for this function:

◆ link()

void estd::IntrusiveListNode::link ( IntrusiveListNode position,
LinkAccessKey   
)
inline

Links the node in the list before position.

Note
Access to this function is restricted only to functions from internal::IntrusiveListBase class
Parameters
[in]positionis a reference to node before which this node will be linked
[in]linkAccessKeyis 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::IntrusiveListNode::reset ( )
inlineprivate

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

Here is the caller graph for this function:

◆ swap()

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

Swaps contents with another node.

Parameters
[in]otheris a reference to IntrusiveListNode 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:

◆ unlink()

void estd::IntrusiveListNode::unlink ( )
inline

Unlinks the node from the list.

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ nextNode_

IntrusiveListNode* estd::IntrusiveListNode::nextNode_
private

reference to next node on the list

◆ previousNode_

IntrusiveListNode* estd::IntrusiveListNode::previousNode_
private

reference to previous node on the list


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