Anklang 0.3.0-460-gc4ef46ba
ASE — Anklang Sound Engine (C++)

« « « Anklang Documentation
Loading...
Searching...
No Matches
Classes | Public Types | Public Member Functions | Public Attributes | List of all members
Ase::QueueMultiplexer< MAXQUEUES, ForwardIterator > Struct Template Reference

#include "queuemux.hh"

Classes

class  Iter
 
struct  Ptr
 

Public Types

using ValueType = std::remove_reference_t< decltype(*std::declval< ForwardIterator >())>
 
using Priority = decltype(QueueMultiplexer_priority(std::declval< const ValueType & >()))
 
using iterator = Iter
 

Public Member Functions

template<class IterableContainer >
bool assign (const std::array< const IterableContainer *, MAXQUEUES > &queues)
 
size_t count_pending () const noexcept
 
bool more () const noexcept
 
const ValueTypepeek () noexcept
 
const ValueTypepop () noexcept
 
iterator begin ()
 
iterator end ()
 

Public Attributes

ssize_t n_queues
 
ssize_t current
 
Priority first
 
Priority next
 
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&).

Definition at line 14 of file queuemux.hh.


Class Documentation

◆ Ase::QueueMultiplexer::Ptr

struct Ase::QueueMultiplexer::Ptr
template<size_t MAXQUEUES, class ForwardIterator>
struct Ase::QueueMultiplexer< MAXQUEUES, ForwardIterator >::Ptr

Definition at line 17 of file queuemux.hh.

Class Members
ForwardIterator end
ForwardIterator it

Member Typedef Documentation

◆ iterator

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

Definition at line 102 of file queuemux.hh.

◆ Priority

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

Definition at line 16 of file queuemux.hh.

◆ ValueType

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

Definition at line 15 of file queuemux.hh.

Constructor & Destructor Documentation

◆ QueueMultiplexer()

template<size_t MAXQUEUES, class ForwardIterator >
Ase::QueueMultiplexer< MAXQUEUES, ForwardIterator >::QueueMultiplexer ( )

Definition at line 21 of file queuemux.hh.

Member Function Documentation

◆ assign()

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

Definition at line 23 of file queuemux.hh.

◆ begin()

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

Definition at line 103 of file queuemux.hh.

◆ count_pending()

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

Definition at line 42 of file queuemux.hh.

◆ end()

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

Definition at line 104 of file queuemux.hh.

◆ more()

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

Definition at line 50 of file queuemux.hh.

◆ peek()

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

Definition at line 55 of file queuemux.hh.

◆ pop()

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

Definition at line 62 of file queuemux.hh.

Member Data Documentation

◆ current

template<size_t MAXQUEUES, class ForwardIterator >
ssize_t Ase::QueueMultiplexer< MAXQUEUES, ForwardIterator >::current

Definition at line 18 of file queuemux.hh.

◆ first

template<size_t MAXQUEUES, class ForwardIterator >
Priority Ase::QueueMultiplexer< MAXQUEUES, ForwardIterator >::first

Definition at line 19 of file queuemux.hh.

◆ n_queues

template<size_t MAXQUEUES, class ForwardIterator >
ssize_t Ase::QueueMultiplexer< MAXQUEUES, ForwardIterator >::n_queues

Definition at line 18 of file queuemux.hh.

◆ next

template<size_t MAXQUEUES, class ForwardIterator >
Priority Ase::QueueMultiplexer< MAXQUEUES, ForwardIterator >::next

Definition at line 19 of file queuemux.hh.

◆ ptrs

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

Definition at line 20 of file queuemux.hh.


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