CAF 0.17.6
Loading...
Searching...
No Matches
caf::intrusive::wdrr_dynamic_multiplexed_queue< Policy > Class Template Reference

A work queue that internally multiplexes any number of DRR queues. More...

#include <wdrr_dynamic_multiplexed_queue.hpp>

Public Types

using policy_type = Policy
using deficit_type = typename policy_type::deficit_type
using mapped_type = typename policy_type::mapped_type
using key_type = typename policy_type::key_type
using pointer = mapped_type*
using unique_pointer = typename policy_type::unique_pointer
using task_size_type = typename policy_type::task_size_type
using queue_map_type = typename policy_type::queue_map_type
using queue_type = typename queue_map_type::mapped_type

Public Member Functions

template<class... Ps>
 wdrr_dynamic_multiplexed_queue (policy_type p)
policy_type & policy () noexcept
const policy_type & policy () const noexcept
bool push_back (mapped_type *ptr) noexcept
bool push_back (unique_pointer ptr) noexcept
template<class... Ts>
bool emplace_back (Ts &&... xs)
void inc_deficit (deficit_type x) noexcept
template<class F>
new_round_result new_round (deficit_type quantum, F &f)
 Run a new round with quantum, dispatching all tasks to consumer.
void cleanup ()
 Erases all keys previously marked via erase_later.
void erase_later (key_type k)
 Marks the key k for erasing from the map later.
pointer peek () noexcept
template<class F>
void peek_all (F f) const
 Applies f to each element in the queue.
bool empty () const noexcept
 Returns true if all queues are empty, false otherwise.
void flush_cache () noexcept
task_size_type total_task_size () const noexcept
queue_map_type & queues () noexcept
 Returns the tuple containing all nested queues.
const queue_map_type & queues () const noexcept
 Returns the tuple containing all nested queues.
void lifo_append (pointer ptr) noexcept
void stop_lifo_append () noexcept

Detailed Description

template<class Policy>
class caf::intrusive::wdrr_dynamic_multiplexed_queue< Policy >

A work queue that internally multiplexes any number of DRR queues.

Member Function Documentation

◆ new_round()

template<class Policy>
template<class F>
new_round_result caf::intrusive::wdrr_dynamic_multiplexed_queue< Policy >::new_round ( deficit_type quantum,
F & f )

Run a new round with quantum, dispatching all tasks to consumer.

Returns
true if at least one item was consumed, false otherwise.

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