IceShard 1
A personal game engine project, with development focused on 2D/2.5D games.
Loading...
Searching...
No Matches
ice::AtomicLinkedQueue< NodeType > Struct Template Reference

#include <ice/atomic_linked_queue.hxx>

Public Types

using ValueType = NodeType

Public Member Functions

constexpr AtomicLinkedQueue () noexcept
constexpr ~AtomicLinkedQueue () noexcept=default
constexpr AtomicLinkedQueue (AtomicLinkedQueue &&other) noexcept
constexpr AtomicLinkedQueue (AtomicLinkedQueue const &other) noexcept=delete
constexpr auto operator= (AtomicLinkedQueue &&other) noexcept -> AtomicLinkedQueue &
constexpr auto operator= (AtomicLinkedQueue const &other) noexcept -> AtomicLinkedQueue &=delete
constexpr bool is_empty () const noexcept
constexpr bool not_empty () const noexcept
template<ice::concepts::LinkedListNode DerivedNodeType = NodeType>
constexpr void push_back (DerivedNodeType *node) noexcept
template<ice::concepts::LinkedListNode DerivedNodeType = NodeType>
constexpr bool push_back (ice::AtomicLinkedQueueRange< DerivedNodeType > range) noexcept
constexpr auto take_front () noexcept -> NodeType *
constexpr auto take_all () noexcept -> ice::AtomicLinkedQueueRange< NodeType >

Public Attributes

std::atomic< NodeType * > _head
std::atomic< NodeType * > _tail

Member Typedef Documentation

◆ ValueType

template<ice::concepts::LinkedListNode NodeType>
using ice::AtomicLinkedQueue< NodeType >::ValueType = NodeType

Constructor & Destructor Documentation

◆ AtomicLinkedQueue() [1/3]

template<ice::concepts::LinkedListNode NodeType>
ice::AtomicLinkedQueue< NodeType >::AtomicLinkedQueue ( )
inlineconstexprnoexcept

◆ ~AtomicLinkedQueue()

template<ice::concepts::LinkedListNode NodeType>
ice::AtomicLinkedQueue< NodeType >::~AtomicLinkedQueue ( )
constexprdefaultnoexcept

◆ AtomicLinkedQueue() [2/3]

template<ice::concepts::LinkedListNode NodeType>
ice::AtomicLinkedQueue< NodeType >::AtomicLinkedQueue ( AtomicLinkedQueue< NodeType > && other)
inlineconstexprnoexcept

◆ AtomicLinkedQueue() [3/3]

template<ice::concepts::LinkedListNode NodeType>
ice::AtomicLinkedQueue< NodeType >::AtomicLinkedQueue ( AtomicLinkedQueue< NodeType > const & other)
constexprdeletenoexcept

Member Function Documentation

◆ is_empty()

template<ice::concepts::LinkedListNode NodeType>
bool ice::AtomicLinkedQueue< NodeType >::is_empty ( ) const
inlineconstexprnoexcept

◆ not_empty()

template<ice::concepts::LinkedListNode NodeType>
bool ice::AtomicLinkedQueue< NodeType >::not_empty ( ) const
inlineconstexprnoexcept

◆ operator=() [1/2]

template<ice::concepts::LinkedListNode NodeType>
auto ice::AtomicLinkedQueue< NodeType >::operator= ( AtomicLinkedQueue< NodeType > && other) -> AtomicLinkedQueue &
inlineconstexprnoexcept

◆ operator=() [2/2]

template<ice::concepts::LinkedListNode NodeType>
auto ice::AtomicLinkedQueue< NodeType >::operator= ( AtomicLinkedQueue< NodeType > const & other) -> AtomicLinkedQueue &=delete
constexprdeletenoexcept

◆ push_back() [1/2]

template<ice::concepts::LinkedListNode NodeType>
template<ice::concepts::LinkedListNode DerivedNodeType>
void ice::AtomicLinkedQueue< NodeType >::push_back ( DerivedNodeType * node)
inlineconstexprnoexcept

◆ push_back() [2/2]

template<ice::concepts::LinkedListNode NodeType>
template<ice::concepts::LinkedListNode DerivedNodeType>
bool ice::AtomicLinkedQueue< NodeType >::push_back ( ice::AtomicLinkedQueueRange< DerivedNodeType > range)
inlineconstexprnoexcept

◆ take_all()

template<ice::concepts::LinkedListNode NodeType>
auto ice::AtomicLinkedQueue< NodeType >::take_all ( ) -> ice::AtomicLinkedQueueRange< NodeType >
inlinenodiscardconstexprnoexcept

◆ take_front()

template<ice::concepts::LinkedListNode NodeType>
auto ice::AtomicLinkedQueue< NodeType >::take_front ( ) -> NodeType *
inlinenodiscardconstexprnoexcept

Member Data Documentation

◆ _head

template<ice::concepts::LinkedListNode NodeType>
std::atomic<NodeType*> ice::AtomicLinkedQueue< NodeType >::_head

◆ _tail

template<ice::concepts::LinkedListNode NodeType>
std::atomic<NodeType*> ice::AtomicLinkedQueue< NodeType >::_tail

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