userver: userver/concurrent/queue.hpp File Reference
Loading...
Searching...
No Matches
queue.hpp File Reference

Detailed Description

Queue with single and multi producer/consumer options.

Definition in file queue.hpp.

Go to the source code of this file.

#include <atomic>
#include <limits>
#include <memory>
#include <moodycamel/concurrentqueue.h>
#include <userver/concurrent/impl/semaphore_capacity_control.hpp>
#include <userver/concurrent/queue_helpers.hpp>
#include <userver/engine/deadline.hpp>
#include <userver/engine/semaphore.hpp>
#include <userver/engine/single_consumer_event.hpp>
#include <userver/engine/task/cancel.hpp>
#include <userver/utils/assert.hpp>
#include <userver/utils/atomic.hpp>
+ This graph shows which files directly or indirectly include this file:

Classes

struct  concurrent::DefaultQueuePolicy
 The default queue policy for GenericQueue. Custom queue policies must inherit from it. More...
 
class  concurrent::GenericQueue< T, QueuePolicy >
 Queue with single and multi producer/consumer options. More...
 
class  concurrent::GenericQueue< T, QueuePolicy >::SingleProducerSide
 
class  concurrent::GenericQueue< T, QueuePolicy >::MultiProducerSide
 
class  concurrent::GenericQueue< T, QueuePolicy >::NoMaxSizeProducerSide
 
class  concurrent::GenericQueue< T, QueuePolicy >::SingleConsumerSide
 
class  concurrent::GenericQueue< T, QueuePolicy >::MultiConsumerSide
 

Namespaces

namespace  concurrent
 Locking stuff.
 

Typedefs

template<typename T >
using concurrent::NonFifoMpmcQueue = GenericQueue<T, impl::SimpleQueuePolicy<true, true>>
 Non FIFO multiple producers multiple consumers queue.
 
template<typename T >
using concurrent::NonFifoMpscQueue = GenericQueue<T, impl::SimpleQueuePolicy<true, false>>
 Non FIFO multiple producers single consumer queue.
 
template<typename T >
using concurrent::SpmcQueue = GenericQueue<T, impl::SimpleQueuePolicy<false, true>>
 Single producer multiple consumers queue.
 
template<typename T >
using concurrent::SpscQueue = GenericQueue<T, impl::SimpleQueuePolicy<false, false>>
 Single producer single consumer queue.
 
template<typename T >
using concurrent::UnboundedNonFifoMpscQueue = GenericQueue<T, impl::NoMaxSizeQueuePolicy<true, false>>
 Like.
 
template<typename T >
using concurrent::UnboundedSpmcQueue = GenericQueue<T, impl::NoMaxSizeQueuePolicy<false, true>>
 Like.
 
template<typename T >
using concurrent::UnboundedSpscQueue = GenericQueue<T, impl::NoMaxSizeQueuePolicy<false, false>>
 Like.
 
using concurrent::StringStreamQueue = GenericQueue<std::string, impl::ContainerQueuePolicy<false, false>>
 Single producer single consumer queue of std::string which is bounded by the total bytes inside the strings.
 

Enumerations

enum class  concurrent::QueueMaxSizeMode {
  concurrent::kNone ,
  concurrent::kDynamicSync
}
 Represents the manner in which the queue enforces the configured max size limit. More...