CARLA
 
载入中...
搜索中...
未找到
| Public 成员函数 | Private 成员函数 | Private 属性 | 静态 Private 属性 | 所有成员列表
moodycamel::ImplicitProducer结构体 参考
+ 类 moodycamel::ImplicitProducer 继承关系图:
+ moodycamel::ImplicitProducer 的协作图:

struct  BlockIndexEntry
 
struct  BlockIndexHeader
 

Public 成员函数

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 成员函数 继承自 moodycamel::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 成员函数 继承自 moodycamel::details::ConcurrentQueueProducerTypelessBase
 ConcurrentQueueProducerTypelessBase ()
 

Private 成员函数

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 属性

std::atomic< BlockIndexHeader * > blockIndex
 
size_t nextBlockIndexCapacity
 

静态 Private 属性

static const index_t INVALID_BLOCK_BASE = 1
 

额外继承的成员函数

- Public 属性 继承自 moodycamel::ProducerBase
bool isExplicit
 
ConcurrentQueueparent
 
- Public 属性 继承自 moodycamel::details::ConcurrentQueueProducerTypelessBase
std::atomic< bool > inactive
 
ConcurrentQueueProducerTypelessBasenext
 
ProducerTokentoken
 
- Protected 属性 继承自 moodycamel::ProducerBase
std::atomic< index_tdequeueOptimisticCount
 
std::atomic< index_tdequeueOvercommit
 
std::atomic< index_theadIndex
 
BlocktailBlock
 
std::atomic< index_ttailIndex
 

详细描述

在文件 ConcurrentQueue.h2458 行定义.

构造及析构函数说明

◆ ImplicitProducer()

moodycamel::ImplicitProducer::ImplicitProducer ( ConcurrentQueue * parent)
inline

在文件 ConcurrentQueue.h2460 行定义.

引用了 new_block_index().

+ 函数调用图:

◆ ~ImplicitProducer()

moodycamel::ImplicitProducer::~ImplicitProducer ( )
inline

成员函数说明

◆ dequeue()

template<typename U >
bool moodycamel::ImplicitProducer::dequeue ( U & element)
inline

◆ dequeue_bulk()

template<typename It >
size_t moodycamel::ImplicitProducer::dequeue_bulk ( It & itemFirst,
size_t max )
inline

◆ enqueue()

template<AllocationMode allocMode, typename U >
bool moodycamel::ImplicitProducer::enqueue ( U && element)
inline

◆ enqueue_bulk()

template<AllocationMode allocMode, typename It >
bool moodycamel::ImplicitProducer::enqueue_bulk ( It itemFirst,
size_t count )
inline

◆ get_block_index_entry_for_index()

BlockIndexEntry * moodycamel::ImplicitProducer::get_block_index_entry_for_index ( index_t index) const
inlineprivate

在文件 ConcurrentQueue.h2961 行定义.

引用了 get_block_index_index_for_index() , 以及 moodycamel::ImplicitProducer::BlockIndexHeader::index.

被这些函数引用 dequeue(), enqueue_bulk() , 以及 ~ImplicitProducer().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ get_block_index_index_for_index()

size_t moodycamel::ImplicitProducer::get_block_index_index_for_index ( index_t index,
BlockIndexHeader *& localBlockIndex ) const
inlineprivate

◆ insert_block_index_entry()

template<AllocationMode allocMode>
bool moodycamel::ImplicitProducer::insert_block_index_entry ( BlockIndexEntry *& idxEntry,
index_t blockStartIndex )
inlineprivate

在文件 ConcurrentQueue.h2926 行定义.

引用了 blockIndex, moodycamel::CannotAlloc, INVALID_BLOCK_BASE, moodycamel::ImplicitProducer::BlockIndexEntry::key, new_block_index() , 以及 moodycamel::ImplicitProducer::BlockIndexEntry::value.

+ 函数调用图:

◆ new_block_index()

bool moodycamel::ImplicitProducer::new_block_index ( )
inlineprivate

在文件 ConcurrentQueue.h2985 行定义.

引用了 blockIndex, INVALID_BLOCK_BASE, moodycamel::ImplicitProducer::BlockIndexEntry::key , 以及 nextBlockIndexCapacity.

被这些函数引用 ImplicitProducer() , 以及 insert_block_index_entry().

+ 这是这个函数的调用关系图:

◆ rewind_block_index_tail()

void moodycamel::ImplicitProducer::rewind_block_index_tail ( )
inlineprivate

在文件 ConcurrentQueue.h2955 行定义.

引用了 blockIndex.

被这些函数引用 enqueue() , 以及 enqueue_bulk().

+ 这是这个函数的调用关系图:

类成员变量说明

◆ blockIndex

std::atomic<BlockIndexHeader*> moodycamel::ImplicitProducer::blockIndex
private

◆ INVALID_BLOCK_BASE

const index_t moodycamel::ImplicitProducer::INVALID_BLOCK_BASE = 1
staticprivate

◆ nextBlockIndexCapacity

size_t moodycamel::ImplicitProducer::nextBlockIndexCapacity
private

在文件 ConcurrentQueue.h3030 行定义.

被这些函数引用 new_block_index().


该结构体的文档由以下文件生成: