AllianceDB  0.0.1
AllianceDB is an open-source suite, including benchmarks and libs for evaluating and improving stream operation algorithms on modern hardwares.
moodycamel::ConcurrentQueue< T, Traits > Class Template Reference
Collaboration diagram for moodycamel::ConcurrentQueue< T, Traits >:

Public Types

typedef ::moodycamel::ProducerToken producer_token_t
 
typedef ::moodycamel::ConsumerToken consumer_token_t
 
typedef Traits::index_t index_t
 
typedef Traits::size_t size_t
 

Public Member Functions

 ConcurrentQueue (size_t capacity=6 *BLOCK_SIZE)
 
 ConcurrentQueue (size_t minCapacity, size_t maxExplicitProducers, size_t maxImplicitProducers)
 
 ConcurrentQueue (ConcurrentQueue const &) MOODYCAMEL_DELETE_FUNCTION
 
ConcurrentQueueoperator= (ConcurrentQueue const &) MOODYCAMEL_DELETE_FUNCTION
 
 ConcurrentQueue (ConcurrentQueue &&other) MOODYCAMEL_NOEXCEPT
 
ConcurrentQueueoperator= (ConcurrentQueue &&other) MOODYCAMEL_NOEXCEPT
 
void swap (ConcurrentQueue &other) MOODYCAMEL_NOEXCEPT
 
bool enqueue (T const &item)
 
bool enqueue (T &&item)
 
bool enqueue (producer_token_t const &token, T const &item)
 
bool enqueue (producer_token_t const &token, T &&item)
 
template<typename It >
bool enqueue_bulk (It itemFirst, size_t count)
 
template<typename It >
bool enqueue_bulk (producer_token_t const &token, It itemFirst, size_t count)
 
bool try_enqueue (T const &item)
 
bool try_enqueue (T &&item)
 
bool try_enqueue (producer_token_t const &token, T const &item)
 
bool try_enqueue (producer_token_t const &token, T &&item)
 
template<typename It >
bool try_enqueue_bulk (It itemFirst, size_t count)
 
template<typename It >
bool try_enqueue_bulk (producer_token_t const &token, It itemFirst, size_t count)
 
template<typename U >
bool try_dequeue (U &item)
 
template<typename U >
bool try_dequeue_non_interleaved (U &item)
 
template<typename U >
bool try_dequeue (consumer_token_t &token, U &item)
 
template<typename It >
size_t try_dequeue_bulk (It itemFirst, size_t max)
 
template<typename It >
size_t try_dequeue_bulk (consumer_token_t &token, It itemFirst, size_t max)
 
template<typename U >
bool try_dequeue_from_producer (producer_token_t const &producer, U &item)
 
template<typename It >
size_t try_dequeue_bulk_from_producer (producer_token_t const &producer, It itemFirst, size_t max)
 
size_t size_approx () const
 

Static Public Member Functions

static constexpr bool is_lock_free ()
 

Static Public Attributes

static const size_t BLOCK_SIZE = static_cast<size_t>(Traits::BLOCK_SIZE)
 
static const size_t EXPLICIT_BLOCK_EMPTY_COUNTER_THRESHOLD = static_cast<size_t>(Traits::EXPLICIT_BLOCK_EMPTY_COUNTER_THRESHOLD)
 
static const size_t EXPLICIT_INITIAL_INDEX_SIZE = static_cast<size_t>(Traits::EXPLICIT_INITIAL_INDEX_SIZE)
 
static const size_t IMPLICIT_INITIAL_INDEX_SIZE = static_cast<size_t>(Traits::IMPLICIT_INITIAL_INDEX_SIZE)
 
static const size_t INITIAL_IMPLICIT_PRODUCER_HASH_SIZE = static_cast<size_t>(Traits::INITIAL_IMPLICIT_PRODUCER_HASH_SIZE)
 
static const std::uint32_t EXPLICIT_CONSUMER_CONSUMPTION_QUOTA_BEFORE_ROTATE
 
static const size_t MAX_SUBQUEUE_SIZE
 

Friends

struct ProducerToken
 
struct ConsumerToken
 
struct ExplicitProducer
 
struct ImplicitProducer
 
class ConcurrentQueueTests
 
template<typename XT , typename XTraits >
void moodycamel::swap (typename ConcurrentQueue< XT, XTraits >::ImplicitProducerKVP &, typename ConcurrentQueue< XT, XTraits >::ImplicitProducerKVP &) MOODYCAMEL_NOEXCEPT
 

Member Data Documentation

◆ EXPLICIT_CONSUMER_CONSUMPTION_QUOTA_BEFORE_ROTATE

template<typename T , typename Traits = ConcurrentQueueDefaultTraits>
const std::uint32_t moodycamel::ConcurrentQueue< T, Traits >::EXPLICIT_CONSUMER_CONSUMPTION_QUOTA_BEFORE_ROTATE
static
Initial value:
=
static_cast<std::uint32_t>(Traits::EXPLICIT_CONSUMER_CONSUMPTION_QUOTA_BEFORE_ROTATE)

◆ MAX_SUBQUEUE_SIZE

template<typename T , typename Traits = ConcurrentQueueDefaultTraits>
const size_t moodycamel::ConcurrentQueue< T, Traits >::MAX_SUBQUEUE_SIZE
static
Initial value:
=
(details::const_numeric_max<size_t>::value - static_cast<size_t>(Traits::MAX_SUBQUEUE_SIZE) < BLOCK_SIZE)
? details::const_numeric_max<size_t>::value : ((static_cast<size_t>(Traits::MAX_SUBQUEUE_SIZE) + (BLOCK_SIZE - 1))
/ BLOCK_SIZE * BLOCK_SIZE)

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