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

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)
 
 ImplicitProducer (ConcurrentQueue *parent)
 
 ~ImplicitProducer ()
 
- 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

BlockIndexEntryget_block_index_entry_for_index (index_t index) const
 
size_t get_block_index_index_for_index (index_t index, BlockIndexHeader *&localBlockIndex) const
 
template<AllocationMode allocMode>
bool insert_block_index_entry (BlockIndexEntry *&idxEntry, index_t blockStartIndex)
 
bool new_block_index ()
 
void rewind_block_index_tail ()
 

Private Attributes

std::atomic< BlockIndexHeader * > blockIndex
 
size_t nextBlockIndexCapacity
 

Static Private Attributes

static const index_t INVALID_BLOCK_BASE = 1
 

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 >::ImplicitProducer

Definition at line 2356 of file ConcurrentQueue.h.

Constructor & Destructor Documentation

◆ ImplicitProducer()

template<typename T, typename Traits = ConcurrentQueueDefaultTraits>
moodycamel::ConcurrentQueue< T, Traits >::ImplicitProducer::ImplicitProducer ( ConcurrentQueue parent)
inline

Definition at line 2358 of file ConcurrentQueue.h.

◆ ~ImplicitProducer()

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

Definition at line 2366 of file ConcurrentQueue.h.

References moodycamel::details::circular_less_than().

+ 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 >::ImplicitProducer::dequeue ( U &  element)
inline

Definition at line 2486 of file ConcurrentQueue.h.

References moodycamel::ConcurrentQueue< T, Traits >::add_block_to_free_list(), moodycamel::details::likely(), MOODYCAMEL_NOEXCEPT_ASSIGN, and moodycamel::ConcurrentQueue< T, Traits >::ImplicitProducer::BlockIndexEntry::value.

+ 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 >::ImplicitProducer::dequeue_bulk ( It &  itemFirst,
size_t  max 
)
inline

◆ enqueue()

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

◆ enqueue_bulk()

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

Definition at line 2557 of file ConcurrentQueue.h.

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

+ Here is the call graph for this function:

◆ get_block_index_entry_for_index()

template<typename T, typename Traits = ConcurrentQueueDefaultTraits>
BlockIndexEntry* moodycamel::ConcurrentQueue< T, Traits >::ImplicitProducer::get_block_index_entry_for_index ( index_t  index) const
inlineprivate

◆ get_block_index_index_for_index()

template<typename T, typename Traits = ConcurrentQueueDefaultTraits>
size_t moodycamel::ConcurrentQueue< T, Traits >::ImplicitProducer::get_block_index_index_for_index ( index_t  index,
BlockIndexHeader *&  localBlockIndex 
) const
inlineprivate

◆ insert_block_index_entry()

template<typename T, typename Traits = ConcurrentQueueDefaultTraits>
template<AllocationMode allocMode>
bool moodycamel::ConcurrentQueue< T, Traits >::ImplicitProducer::insert_block_index_entry ( BlockIndexEntry *&  idxEntry,
index_t  blockStartIndex 
)
inlineprivate

◆ new_block_index()

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

◆ rewind_block_index_tail()

template<typename T, typename Traits = ConcurrentQueueDefaultTraits>
void moodycamel::ConcurrentQueue< T, Traits >::ImplicitProducer::rewind_block_index_tail ( )
inlineprivate

Definition at line 2857 of file ConcurrentQueue.h.

Member Data Documentation

◆ blockIndex

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

Definition at line 2934 of file ConcurrentQueue.h.

◆ INVALID_BLOCK_BASE

template<typename T, typename Traits = ConcurrentQueueDefaultTraits>
const index_t moodycamel::ConcurrentQueue< T, Traits >::ImplicitProducer::INVALID_BLOCK_BASE = 1
staticprivate

Definition at line 2810 of file ConcurrentQueue.h.

◆ nextBlockIndexCapacity

template<typename T, typename Traits = ConcurrentQueueDefaultTraits>
size_t moodycamel::ConcurrentQueue< T, Traits >::ImplicitProducer::nextBlockIndexCapacity
private

Definition at line 2933 of file ConcurrentQueue.h.


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