CARLA
Classes | Public Member Functions | Private Member Functions | Private Attributes | List of all members
moodycamel::ConcurrentQueue< T, Traits >::ExplicitProducer Struct Reference
+ Inheritance diagram for moodycamel::ConcurrentQueue< T, Traits >::ExplicitProducer:
+ Collaboration diagram for moodycamel::ConcurrentQueue< T, Traits >::ExplicitProducer:

Classes

struct  BlockIndexEntry
 
struct  BlockIndexHeader
 

Public Member Functions

template<typename U >
bool dequeue (U &element)
 
template<typename It >
size_t dequeue_bulk (It &itemFirst, size_t max)
 
template<AllocationMode allocMode, typename U >
bool enqueue (U &&element)
 
template<AllocationMode allocMode, typename It >
bool enqueue_bulk (It itemFirst, size_t count)
 
 ExplicitProducer (ConcurrentQueue *parent)
 
 ~ExplicitProducer ()
 
- Public Member Functions inherited from moodycamel::ConcurrentQueue< T, Traits >::ProducerBase
template<typename U >
bool dequeue (U &element)
 
template<typename It >
size_t dequeue_bulk (It &itemFirst, size_t max)
 
index_t getTail () const
 
ProducerBasenext_prod () const
 
 ProducerBase (ConcurrentQueue *parent_, bool isExplicit_)
 
size_t size_approx () const
 
virtual ~ProducerBase ()
 
- Public Member Functions inherited from moodycamel::details::ConcurrentQueueProducerTypelessBase
 ConcurrentQueueProducerTypelessBase ()
 

Private Member Functions

bool new_block_index (size_t numberOfFilledSlotsToExpose)
 

Private Attributes

std::atomic< BlockIndexHeader * > blockIndex
 
BlockIndexEntrypr_blockIndexEntries
 
size_t pr_blockIndexFront
 
void * pr_blockIndexRaw
 
size_t pr_blockIndexSize
 
size_t pr_blockIndexSlotsUsed
 

Additional Inherited Members

- Public Attributes inherited from moodycamel::ConcurrentQueue< T, Traits >::ProducerBase
bool isExplicit
 
ConcurrentQueueparent
 
- Public Attributes inherited from moodycamel::details::ConcurrentQueueProducerTypelessBase
std::atomic< bool > inactive
 
ConcurrentQueueProducerTypelessBasenext
 
ProducerTokentoken
 
- Protected Attributes inherited from moodycamel::ConcurrentQueue< T, Traits >::ProducerBase
std::atomic< index_tdequeueOptimisticCount
 
std::atomic< index_tdequeueOvercommit
 
std::atomic< index_theadIndex
 
BlocktailBlock
 
std::atomic< index_ttailIndex
 

Detailed Description

template<typename T, typename Traits = ConcurrentQueueDefaultTraits>
struct moodycamel::ConcurrentQueue< T, Traits >::ExplicitProducer

Definition at line 1710 of file ConcurrentQueue.h.

Constructor & Destructor Documentation

◆ ExplicitProducer()

template<typename T, typename Traits = ConcurrentQueueDefaultTraits>
moodycamel::ConcurrentQueue< T, Traits >::ExplicitProducer::ExplicitProducer ( ConcurrentQueue parent)
inlineexplicit

Definition at line 1712 of file ConcurrentQueue.h.

References moodycamel::details::ceil_to_pow_2(), and moodycamel::ConcurrentQueue< T, Traits >::initialBlockPoolSize.

+ Here is the call graph for this function:

◆ ~ExplicitProducer()

template<typename T, typename Traits = ConcurrentQueueDefaultTraits>
moodycamel::ConcurrentQueue< T, Traits >::ExplicitProducer::~ExplicitProducer ( )
inline

Member Function Documentation

◆ dequeue()

template<typename T, typename Traits = ConcurrentQueueDefaultTraits>
template<typename U >
bool moodycamel::ConcurrentQueue< T, Traits >::ExplicitProducer::dequeue ( U &  element)
inline

Definition at line 1898 of file ConcurrentQueue.h.

References moodycamel::details::likely(), and MOODYCAMEL_NOEXCEPT_ASSIGN.

+ Here is the call graph for this function:

◆ dequeue_bulk()

template<typename T, typename Traits = ConcurrentQueueDefaultTraits>
template<typename It >
size_t moodycamel::ConcurrentQueue< T, Traits >::ExplicitProducer::dequeue_bulk ( It &  itemFirst,
size_t  max 
)
inline

Definition at line 2183 of file ConcurrentQueue.h.

References moodycamel::details::deref_noexcept(), MOODYCAMEL_CATCH, MOODYCAMEL_NOEXCEPT_ASSIGN, MOODYCAMEL_RETHROW, and MOODYCAMEL_TRY.

+ Here is the call graph for this function:

◆ enqueue()

template<typename T, typename Traits = ConcurrentQueueDefaultTraits>
template<AllocationMode allocMode, typename U >
bool moodycamel::ConcurrentQueue< T, Traits >::ExplicitProducer::enqueue ( U &&  element)
inline

◆ enqueue_bulk()

template<typename T, typename Traits = ConcurrentQueueDefaultTraits>
template<AllocationMode allocMode, typename It >
bool moodycamel::ConcurrentQueue< T, Traits >::ExplicitProducer::enqueue_bulk ( It  itemFirst,
size_t  count 
)
inline

Definition at line 1998 of file ConcurrentQueue.h.

References moodycamel::details::deref_noexcept(), MOODYCAMEL_CATCH, MOODYCAMEL_NOEXCEPT_CTOR, MOODYCAMEL_RETHROW, MOODYCAMEL_TRY, and moodycamel::ConcurrentQueue< T, Traits >::Block::next.

+ Here is the call graph for this function:

◆ new_block_index()

template<typename T, typename Traits = ConcurrentQueueDefaultTraits>
bool moodycamel::ConcurrentQueue< T, Traits >::ExplicitProducer::new_block_index ( size_t  numberOfFilledSlotsToExpose)
inlineprivate

Member Data Documentation

◆ blockIndex

template<typename T, typename Traits = ConcurrentQueueDefaultTraits>
std::atomic<BlockIndexHeader*> moodycamel::ConcurrentQueue< T, Traits >::ExplicitProducer::blockIndex
private

Definition at line 2331 of file ConcurrentQueue.h.

◆ pr_blockIndexEntries

template<typename T, typename Traits = ConcurrentQueueDefaultTraits>
BlockIndexEntry* moodycamel::ConcurrentQueue< T, Traits >::ExplicitProducer::pr_blockIndexEntries
private

Definition at line 2337 of file ConcurrentQueue.h.

◆ pr_blockIndexFront

template<typename T, typename Traits = ConcurrentQueueDefaultTraits>
size_t moodycamel::ConcurrentQueue< T, Traits >::ExplicitProducer::pr_blockIndexFront
private

Definition at line 2336 of file ConcurrentQueue.h.

◆ pr_blockIndexRaw

template<typename T, typename Traits = ConcurrentQueueDefaultTraits>
void* moodycamel::ConcurrentQueue< T, Traits >::ExplicitProducer::pr_blockIndexRaw
private

Definition at line 2338 of file ConcurrentQueue.h.

◆ pr_blockIndexSize

template<typename T, typename Traits = ConcurrentQueueDefaultTraits>
size_t moodycamel::ConcurrentQueue< T, Traits >::ExplicitProducer::pr_blockIndexSize
private

Definition at line 2335 of file ConcurrentQueue.h.

◆ pr_blockIndexSlotsUsed

template<typename T, typename Traits = ConcurrentQueueDefaultTraits>
size_t moodycamel::ConcurrentQueue< T, Traits >::ExplicitProducer::pr_blockIndexSlotsUsed
private

Definition at line 2334 of file ConcurrentQueue.h.


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