Anklang C++ API 0.0.0
Loading...
Searching...
No Matches
QueueMultiplexer< MAXQUEUES, ForwardIterator >

#include "queuemux.hh"

Classes

class Iter
struct Ptr

Public Types

usingiterator = Iter
usingPriority = decltype(QueueMultiplexer_priority(std::declval< const ValueType & >()))
usingValueType = std::remove_reference_t< decltype(*std::declval< ForwardIterator >())>

Public Member Functions

template<class IterableContainer >
boolassign (const std::array< const IterableContainer *, MAXQUEUES > &queues)
iteratorbegin ()
size_tcount_pending () const noexcept
iteratorend ()
boolmore () const noexcept
const ValueType &peek () noexcept
const ValueType &pop () noexcept
QueueMultiplexer ()

Public Attributes

ssize_tcurrent
Priorityfirst
ssize_tn_queues
Prioritynext
std::array< Ptr, MAXQUEUES >ptrs

Detailed Description

template<size_t MAXQUEUES, class ForwardIterator>
requires std::forward_iterator<ForwardIterator>
struct Ase::QueueMultiplexer< MAXQUEUES, ForwardIterator >

Multiplexer to pop from multiple Queues, while preserving priorities. Order for values at the same priority is unstable. Relies on unqualified calls to `Priority QueueMultiplexer_priority (const ValueType&)`.

Member Typedef Documentation

ValueType

template<size_t MAXQUEUES, class ForwardIterator >
using ValueType = std::remove_reference_t<decltype (*std::declval<ForwardIterator>())>

Priority

template<size_t MAXQUEUES, class ForwardIterator >
using Priority = decltype (QueueMultiplexer_priority (std::declval<const ValueType&>()))

iterator

template<size_t MAXQUEUES, class ForwardIterator >
using iterator = Iter

Constructor & Destructor Documentation

QueueMultiplexer()

template<size_t MAXQUEUES, class ForwardIterator >
QueueMultiplexer ( )

Member Function Documentation

assign()

template<size_t MAXQUEUES, class ForwardIterator >
template<class IterableContainer >
bool assign ( const std::array< const IterableContainer *, MAXQUEUES > & queues)

count_pending()

template<size_t MAXQUEUES, class ForwardIterator >
size_t count_pending ( ) const
noexcept

more()

template<size_t MAXQUEUES, class ForwardIterator >
bool more ( ) const
noexcept

peek()

template<size_t MAXQUEUES, class ForwardIterator >
const ValueType & peek ( )
noexcept

pop()

template<size_t MAXQUEUES, class ForwardIterator >
const ValueType & pop ( )
noexcept

begin()

template<size_t MAXQUEUES, class ForwardIterator >
iterator begin ( )

end()

template<size_t MAXQUEUES, class ForwardIterator >
iterator end ( )

Member Data Documentation

n_queues

template<size_t MAXQUEUES, class ForwardIterator >
ssize_t n_queues

current

template<size_t MAXQUEUES, class ForwardIterator >
ssize_t current

first

template<size_t MAXQUEUES, class ForwardIterator >
Priority first

next

template<size_t MAXQUEUES, class ForwardIterator >
Priority next

ptrs

template<size_t MAXQUEUES, class ForwardIterator >
std::array<Ptr, MAXQUEUES> ptrs