IceShard 1
A personal game engine project, with development focused on 2D/2.5D games.
Loading...
Searching...
No Matches
ice::TaskQueue Class Referencefinal

#include <ice/task_queue.hxx>

Public Member Functions

 TaskQueue (ice::TaskFlags flags={}) noexcept
bool is_empty () const noexcept
bool not_empty () const noexcept
bool push_back (ice::TaskAwaitableBase *awaitable) noexcept
bool push_back (ice::AtomicLinkedQueueRange< ice::TaskAwaitableBase > awaitable_range) noexcept
bool contains (ice::TaskAwaitableBase *awaitable) const noexcept
auto take_front () noexcept -> ice::TaskAwaitableBase *
auto take_all () noexcept -> ice::AtomicLinkedQueueRange< ice::TaskAwaitableBase >
bool process_one (void *result_value=nullptr) noexcept
auto process_all (void *result_value=nullptr) noexcept -> ice::ncount
void wait_any () noexcept
template<typename Value>
constexpr bool process_one (Value &result_value) noexcept
template<typename Value>
constexpr auto process_all (Value &result_value) noexcept -> ice::ncount

Public Attributes

ice::TaskFlags const flags
 Flags of task allowed to be pushed onto this queue.

Constructor & Destructor Documentation

◆ TaskQueue()

ice::TaskQueue::TaskQueue ( ice::TaskFlags flags = {})
noexcept

Member Function Documentation

◆ contains()

bool ice::TaskQueue::contains ( ice::TaskAwaitableBase * awaitable) const
noexcept

◆ is_empty()

bool ice::TaskQueue::is_empty ( ) const
inlinenoexcept

◆ not_empty()

bool ice::TaskQueue::not_empty ( ) const
inlinenoexcept

◆ process_all() [1/2]

template<typename Value>
auto ice::TaskQueue::process_all ( Value & result_value) -> ice::ncount
inlineconstexprnoexcept

◆ process_all() [2/2]

auto ice::TaskQueue::process_all ( void * result_value = nullptr) -> ice::ncount
noexcept

◆ process_one() [1/2]

template<typename Value>
bool ice::TaskQueue::process_one ( Value & result_value)
inlineconstexprnoexcept

◆ process_one() [2/2]

bool ice::TaskQueue::process_one ( void * result_value = nullptr)
noexcept

◆ push_back() [1/2]

bool ice::TaskQueue::push_back ( ice::AtomicLinkedQueueRange< ice::TaskAwaitableBase > awaitable_range)
noexcept

◆ push_back() [2/2]

bool ice::TaskQueue::push_back ( ice::TaskAwaitableBase * awaitable)
noexcept

◆ take_all()

auto ice::TaskQueue::take_all ( ) -> ice::AtomicLinkedQueueRange< ice::TaskAwaitableBase >
nodiscardnoexcept

◆ take_front()

auto ice::TaskQueue::take_front ( ) -> ice::TaskAwaitableBase *
nodiscardnoexcept

◆ wait_any()

void ice::TaskQueue::wait_any ( )
noexcept

Member Data Documentation

◆ flags

ice::TaskFlags const ice::TaskQueue::flags

Flags of task allowed to be pushed onto this queue.


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