CeresEngine 0.2.0
A game development framework
Loading...
Searching...
No Matches
CeresEngine::Channel< T, Lockable >::LinkedList< NodeType > Class Template Reference

Minimal linked list without node allocation. More...

Public Member Functions

 LinkedList () noexcept=default
 Creates a new LinkedList.
 
bool empty () const noexcept
 Checks if the list is empty.
 
void push (NodeType *node) noexcept
 Pushes a new node into the list.
 
NodeTypepop () noexcept
 Pops a node from the list.
 

Private Attributes

NodeTypehead = nullptr
 The head node.
 
NodeTypetail = nullptr
 The tail node.
 

Detailed Description

template<typename T, typename Lockable = NullLockable>
template<typename NodeType>
class CeresEngine::Channel< T, Lockable >::LinkedList< NodeType >

Minimal linked list without node allocation.

Template Parameters
NodeTypethe type of nodes in the list

Constructor & Destructor Documentation

◆ LinkedList()

template<typename T , typename Lockable = NullLockable>
template<typename NodeType >
CeresEngine::Channel< T, Lockable >::LinkedList< NodeType >::LinkedList ( )
defaultnoexcept

Creates a new LinkedList.

Member Function Documentation

◆ empty()

template<typename T , typename Lockable = NullLockable>
template<typename NodeType >
bool CeresEngine::Channel< T, Lockable >::LinkedList< NodeType >::empty ( ) const
inlinenoexcept

Checks if the list is empty.

Returns
true if the list is empty

◆ pop()

template<typename T , typename Lockable = NullLockable>
template<typename NodeType >
NodeType * CeresEngine::Channel< T, Lockable >::LinkedList< NodeType >::pop ( )
inlinenoexcept

Pops a node from the list.

Returns
The popped node. Can be nullptr if there are no nodes.

◆ push()

template<typename T , typename Lockable = NullLockable>
template<typename NodeType >
void CeresEngine::Channel< T, Lockable >::LinkedList< NodeType >::push ( NodeType node)
inlinenoexcept

Pushes a new node into the list.

Parameters
nodeThe node to be pushed into the list

Member Data Documentation

◆ head

template<typename T , typename Lockable = NullLockable>
template<typename NodeType >
NodeType* CeresEngine::Channel< T, Lockable >::LinkedList< NodeType >::head = nullptr
private

The head node.

◆ tail

template<typename T , typename Lockable = NullLockable>
template<typename NodeType >
NodeType* CeresEngine::Channel< T, Lockable >::LinkedList< NodeType >::tail = nullptr
private

The tail node.


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