Struct Ase::QueueMultiplexer
template <size_t MAXQUEUES, class ForwardIterator>
ClassList > Ase > QueueMultiplexer
#include <queuemux.hh>
Classes
Type | Name |
---|---|
class | Iter |
struct | Ptr |
Public Types
Type | Name |
---|---|
typedef decltype(QueueMultiplexer_priority(std::declval< const ValueType & >())) | Priority |
typedef std::remove_reference_t< decltype(*std::declval< ForwardIterator >())> | ValueType |
typedef Iter | iterator |
Public Attributes
Type | Name |
---|---|
ssize_t | current = = -1 |
Priority | first = = {} |
ssize_t | n_queues = = 0 |
Priority | next = = {} |
std::array< Ptr, MAXQUEUES > | ptrs |
Public Functions
Type | Name |
---|---|
QueueMultiplexer () |
|
bool | assign (const std::array< const IterableContainer *, MAXQUEUES > & queues) |
iterator | begin () |
size_t | count_pending () noexcept const |
iterator | end () |
bool | more () noexcept const |
const ValueType & | peek () noexcept |
const ValueType & | pop () noexcept |
Detailed Description
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&)
.
Public Types Documentation
typedef Priority
using Ase::QueueMultiplexer< MAXQUEUES, ForwardIterator >::Priority = decltype (QueueMultiplexer_priority (std::declval<const ValueType&>()));
typedef ValueType
using Ase::QueueMultiplexer< MAXQUEUES, ForwardIterator >::ValueType = std::remove_reference_t<decltype (*std::declval<ForwardIterator>())>;
typedef iterator
using Ase::QueueMultiplexer< MAXQUEUES, ForwardIterator >::iterator = Iter;
Public Attributes Documentation
variable current
ssize_t Ase::QueueMultiplexer< MAXQUEUES, ForwardIterator >::current;
variable first
Priority Ase::QueueMultiplexer< MAXQUEUES, ForwardIterator >::first;
variable n_queues
ssize_t Ase::QueueMultiplexer< MAXQUEUES, ForwardIterator >::n_queues;
variable next
Priority Ase::QueueMultiplexer< MAXQUEUES, ForwardIterator >::next;
variable ptrs
std::array<Ptr, MAXQUEUES> Ase::QueueMultiplexer< MAXQUEUES, ForwardIterator >::ptrs;
Public Functions Documentation
function QueueMultiplexer
inline Ase::QueueMultiplexer::QueueMultiplexer ()
function assign
template<class IterableContainer>
inline bool Ase::QueueMultiplexer::assign (
const std::array< const IterableContainer *, MAXQUEUES > & queues
)
function begin
inline iterator Ase::QueueMultiplexer::begin ()
function count_pending
inline size_t Ase::QueueMultiplexer::count_pending () noexcept const
function end
inline iterator Ase::QueueMultiplexer::end ()
function more
inline bool Ase::QueueMultiplexer::more () noexcept const
function peek
inline const ValueType & Ase::QueueMultiplexer::peek () noexcept
function pop
inline const ValueType & Ase::QueueMultiplexer::pop () noexcept
The documentation for this class was generated from the following file /__w/anklang/anklang/ase/queuemux.hh