Agora  1.2.0
Agora project
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

 ExplicitProducer (ConcurrentQueue *parent_)
 
 ~ExplicitProducer ()
 
template<AllocationMode allocMode, typename U >
bool enqueue (U &&element)
 
template<typename U >
bool dequeue (U &element)
 
template<AllocationMode allocMode, typename It >
bool enqueue_bulk (It itemFirst, size_t count)
 
template<typename It >
size_t dequeue_bulk (It &itemFirst, size_t max)
 
- Public Member Functions inherited from moodycamel::ConcurrentQueue< T, Traits >::ProducerBase
 ProducerBase (ConcurrentQueue *parent_, bool isExplicit_)
 
virtual ~ProducerBase ()
 
template<typename U >
bool dequeue (U &element)
 
template<typename It >
size_t dequeue_bulk (It &itemFirst, size_t max)
 
ProducerBasenext_prod () const
 
size_t size_approx () const
 
index_t getTail () const
 
- 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
 
size_t pr_blockIndexSlotsUsed
 
size_t pr_blockIndexSize
 
size_t pr_blockIndexFront
 
BlockIndexEntrypr_blockIndexEntries
 
void * pr_blockIndexRaw
 

Additional Inherited Members

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

Constructor & Destructor Documentation

◆ ExplicitProducer()

template<typename T , typename Traits = ConcurrentQueueDefaultTraits>
moodycamel::ConcurrentQueue< T, Traits >::ExplicitProducer::ExplicitProducer ( ConcurrentQueue parent_)
inlineexplicit
Here is the call graph for this function:

◆ ~ExplicitProducer()

template<typename T , typename Traits = ConcurrentQueueDefaultTraits>
moodycamel::ConcurrentQueue< T, Traits >::ExplicitProducer::~ExplicitProducer ( )
inline
Here is the call graph for this function:

Member Function Documentation

◆ dequeue()

template<typename T , typename Traits = ConcurrentQueueDefaultTraits>
template<typename U >
bool moodycamel::ConcurrentQueue< T, Traits >::ExplicitProducer::dequeue ( U &  element)
inline
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
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
Here is the call graph for this function:

◆ 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
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
Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ blockIndex

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

◆ pr_blockIndexEntries

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

◆ pr_blockIndexFront

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

◆ pr_blockIndexRaw

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

◆ pr_blockIndexSize

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

◆ pr_blockIndexSlotsUsed

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

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