CARLA
 
载入中...
搜索中...
未找到
Public 类型 | Public 成员函数 | 静态 Public 属性 | Private 成员函数 | 所有成员列表
moodycamel::ConcurrentQueue< T, Traits > 模板类 参考

#include <ConcurrentQueue.h>

+ 类 moodycamel::ConcurrentQueue< T, Traits > 继承关系图:
+ moodycamel::ConcurrentQueue< T, Traits > 的协作图:

Public 类型

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

Public 成员函数

 ConcurrentQueue (ConcurrentQueue &&other) MOODYCAMEL_NOEXCEPT
 
 ConcurrentQueue (ConcurrentQueue const &) MOODYCAMEL_DELETE_FUNCTION
 
 ConcurrentQueue (size_t capacity=6 *BLOCK_SIZE)
 
 ConcurrentQueue (size_t minCapacity, size_t maxExplicitProducers, size_t maxImplicitProducers)
 
bool enqueue (producer_token_t const &token, T &&item)
 
bool enqueue (producer_token_t const &token, T const &item)
 
bool enqueue (T &&item)
 
bool enqueue (T const &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)
 
ConcurrentQueueoperator= (ConcurrentQueue &&other) MOODYCAMEL_NOEXCEPT
 
ConcurrentQueueoperator= (ConcurrentQueue const &) MOODYCAMEL_DELETE_FUNCTION
 
void swap (ConcurrentQueue &other) MOODYCAMEL_NOEXCEPT
 
template<typename U >
bool try_dequeue (consumer_token_t &token, U &item)
 
template<typename U >
bool try_dequeue (U &item)
 
template<typename It >
size_t try_dequeue_bulk (consumer_token_t &token, It itemFirst, size_t max)
 
template<typename It >
size_t try_dequeue_bulk (It itemFirst, size_t max)
 
template<typename U >
bool try_dequeue_from_producer (producer_token_t const &producer, U &item)
 
template<typename U >
bool try_dequeue_non_interleaved (U &item)
 
bool try_enqueue (producer_token_t const &token, T &&item)
 
bool try_enqueue (producer_token_t const &token, T const &item)
 
bool try_enqueue (T &&item)
 
bool try_enqueue (T const &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)
 
 ~ConcurrentQueue ()
 

静态 Public 属性

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 std::uint32_t EXPLICIT_CONSUMER_CONSUMPTION_QUOTA_BEFORE_ROTATE = static_cast<std::uint32_t>(Traits::EXPLICIT_CONSUMER_CONSUMPTION_QUOTA_BEFORE_ROTATE)
 
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 size_t MAX_SUBQUEUE_SIZE = (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)
 

Private 成员函数

ConcurrentQueueswap_internal (ConcurrentQueue &other)
 

详细描述

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

在文件 ConcurrentQueue.h749 行定义.

成员类型定义说明

◆ consumer_token_t

template<typename T , typename Traits = ConcurrentQueueDefaultTraits>
typedef ::moodycamel::ConsumerToken moodycamel::ConcurrentQueue< T, Traits >::consumer_token_t

在文件 ConcurrentQueue.h755 行定义.

◆ index_t

template<typename T , typename Traits = ConcurrentQueueDefaultTraits>
typedef Traits::index_t moodycamel::ConcurrentQueue< T, Traits >::index_t

在文件 ConcurrentQueue.h757 行定义.

◆ producer_token_t

template<typename T , typename Traits = ConcurrentQueueDefaultTraits>
typedef ::moodycamel::ProducerToken moodycamel::ConcurrentQueue< T, Traits >::producer_token_t

在文件 ConcurrentQueue.h753 行定义.

◆ size_t

template<typename T , typename Traits = ConcurrentQueueDefaultTraits>
typedef Traits::size_t moodycamel::ConcurrentQueue< T, Traits >::size_t

在文件 ConcurrentQueue.h759 行定义.

构造及析构函数说明

◆ ConcurrentQueue() [1/4]

template<typename T , typename Traits = ConcurrentQueueDefaultTraits>
moodycamel::ConcurrentQueue< T, Traits >::ConcurrentQueue ( size_t capacity = 6 * BLOCK_SIZE)
inlineexplicit

在文件 ConcurrentQueue.h815 行定义.

引用了 moodycamel::ConcurrentQueue< T, Traits >::BLOCK_SIZE, moodycamel::implicitProducerHashResizeInProgress, moodycamel::populate_initial_block_list() , 以及 moodycamel::populate_initial_implicit_producer_hash().

+ 函数调用图:

◆ ConcurrentQueue() [2/4]

template<typename T , typename Traits = ConcurrentQueueDefaultTraits>
moodycamel::ConcurrentQueue< T, Traits >::ConcurrentQueue ( size_t minCapacity,
size_t maxExplicitProducers,
size_t maxImplicitProducers )
inline

在文件 ConcurrentQueue.h839 行定义.

引用了 moodycamel::ConcurrentQueue< T, Traits >::BLOCK_SIZE, moodycamel::implicitProducerHashResizeInProgress, moodycamel::populate_initial_block_list() , 以及 moodycamel::populate_initial_implicit_producer_hash().

+ 函数调用图:

◆ ~ConcurrentQueue()

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

◆ ConcurrentQueue() [3/4]

template<typename T , typename Traits = ConcurrentQueueDefaultTraits>
moodycamel::ConcurrentQueue< T, Traits >::ConcurrentQueue ( ConcurrentQueue< T, Traits > const & )

◆ ConcurrentQueue() [4/4]

template<typename T , typename Traits = ConcurrentQueueDefaultTraits>
moodycamel::ConcurrentQueue< T, Traits >::ConcurrentQueue ( ConcurrentQueue< T, Traits > && other)
inline

在文件 ConcurrentQueue.h921 行定义.

引用了 moodycamel::implicitProducerHashResizeInProgress, moodycamel::populate_initial_implicit_producer_hash(), moodycamel::reown_producers() , 以及 moodycamel::swap_implicit_producer_hashes().

+ 函数调用图:

成员函数说明

◆ enqueue() [1/4]

template<typename T , typename Traits = ConcurrentQueueDefaultTraits>
bool moodycamel::ConcurrentQueue< T, Traits >::enqueue ( producer_token_t const & token,
T && item )
inline

在文件 ConcurrentQueue.h1036 行定义.

◆ enqueue() [2/4]

template<typename T , typename Traits = ConcurrentQueueDefaultTraits>
bool moodycamel::ConcurrentQueue< T, Traits >::enqueue ( producer_token_t const & token,
T const & item )
inline

在文件 ConcurrentQueue.h1027 行定义.

◆ enqueue() [3/4]

template<typename T , typename Traits = ConcurrentQueueDefaultTraits>
bool moodycamel::ConcurrentQueue< T, Traits >::enqueue ( T && item)
inline

◆ enqueue() [4/4]

template<typename T , typename Traits = ConcurrentQueueDefaultTraits>
bool moodycamel::ConcurrentQueue< T, Traits >::enqueue ( T const & item)
inline

◆ enqueue_bulk() [1/2]

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

◆ enqueue_bulk() [2/2]

template<typename T , typename Traits = ConcurrentQueueDefaultTraits>
template<typename It >
bool moodycamel::ConcurrentQueue< T, Traits >::enqueue_bulk ( producer_token_t const & token,
It itemFirst,
size_t count )
inline

在文件 ConcurrentQueue.h1060 行定义.

◆ operator=() [1/2]

template<typename T , typename Traits = ConcurrentQueueDefaultTraits>
ConcurrentQueue & moodycamel::ConcurrentQueue< T, Traits >::operator= ( ConcurrentQueue< T, Traits > && other)
inline

在文件 ConcurrentQueue.h955 行定义.

引用了 moodycamel::ConcurrentQueue< T, Traits >::swap_internal().

+ 函数调用图:

◆ operator=() [2/2]

template<typename T , typename Traits = ConcurrentQueueDefaultTraits>
ConcurrentQueue & moodycamel::ConcurrentQueue< T, Traits >::operator= ( ConcurrentQueue< T, Traits > const & )

◆ swap()

template<typename T , typename Traits = ConcurrentQueueDefaultTraits>
void moodycamel::ConcurrentQueue< T, Traits >::swap ( ConcurrentQueue< T, Traits > & other)
inline

在文件 ConcurrentQueue.h965 行定义.

引用了 moodycamel::ConcurrentQueue< T, Traits >::swap_internal().

被这些函数引用 swap().

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

◆ swap_internal()

template<typename T , typename Traits = ConcurrentQueueDefaultTraits>
ConcurrentQueue & moodycamel::ConcurrentQueue< T, Traits >::swap_internal ( ConcurrentQueue< T, Traits > & other)
inlineprivate

在文件 ConcurrentQueue.h971 行定义.

引用了 moodycamel::freeList, moodycamel::globalExplicitConsumerOffset, moodycamel::initialBlockPool, moodycamel::initialBlockPoolIndex, moodycamel::initialBlockPoolSize, moodycamel::nextExplicitConsumerId, moodycamel::producerCount, moodycamel::producerListTail, moodycamel::reown_producers(), moodycamel::swap_implicit_producer_hashes() , 以及 moodycamel::details::swap_relaxed().

被这些函数引用 moodycamel::ConcurrentQueue< T, Traits >::operator=() , 以及 moodycamel::ConcurrentQueue< T, Traits >::swap().

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

◆ try_dequeue() [1/2]

template<typename T , typename Traits = ConcurrentQueueDefaultTraits>
template<typename U >
bool moodycamel::ConcurrentQueue< T, Traits >::try_dequeue ( consumer_token_t & token,
U & item )
inline

◆ try_dequeue() [2/2]

template<typename T , typename Traits = ConcurrentQueueDefaultTraits>
template<typename U >
bool moodycamel::ConcurrentQueue< T, Traits >::try_dequeue ( U & item)
inline

在文件 ConcurrentQueue.h1134 行定义.

引用了 moodycamel::ProducerBase::dequeue(), moodycamel::details::likely(), moodycamel::producerListTail , 以及 moodycamel::ProducerBase::size_approx().

+ 函数调用图:

◆ try_dequeue_bulk() [1/2]

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

◆ try_dequeue_bulk() [2/2]

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

在文件 ConcurrentQueue.h1235 行定义.

引用了 moodycamel::producerListTail.

◆ try_dequeue_from_producer()

template<typename T , typename Traits = ConcurrentQueueDefaultTraits>
template<typename U >
bool moodycamel::ConcurrentQueue< T, Traits >::try_dequeue_from_producer ( producer_token_t const & producer,
U & item )
inline

在文件 ConcurrentQueue.h1323 行定义.

引用了 moodycamel::ProducerToken::producer.

◆ try_dequeue_non_interleaved()

template<typename T , typename Traits = ConcurrentQueueDefaultTraits>
template<typename U >
bool moodycamel::ConcurrentQueue< T, Traits >::try_dequeue_non_interleaved ( U & item)
inline

在文件 ConcurrentQueue.h1174 行定义.

引用了 moodycamel::producerListTail.

◆ try_enqueue() [1/4]

template<typename T , typename Traits = ConcurrentQueueDefaultTraits>
bool moodycamel::ConcurrentQueue< T, Traits >::try_enqueue ( producer_token_t const & token,
T && item )
inline

在文件 ConcurrentQueue.h1098 行定义.

◆ try_enqueue() [2/4]

template<typename T , typename Traits = ConcurrentQueueDefaultTraits>
bool moodycamel::ConcurrentQueue< T, Traits >::try_enqueue ( producer_token_t const & token,
T const & item )
inline

在文件 ConcurrentQueue.h1090 行定义.

◆ try_enqueue() [3/4]

template<typename T , typename Traits = ConcurrentQueueDefaultTraits>
bool moodycamel::ConcurrentQueue< T, Traits >::try_enqueue ( T && item)
inline

◆ try_enqueue() [4/4]

template<typename T , typename Traits = ConcurrentQueueDefaultTraits>
bool moodycamel::ConcurrentQueue< T, Traits >::try_enqueue ( T const & item)
inline

◆ try_enqueue_bulk() [1/2]

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

◆ try_enqueue_bulk() [2/2]

template<typename T , typename Traits = ConcurrentQueueDefaultTraits>
template<typename It >
bool moodycamel::ConcurrentQueue< T, Traits >::try_enqueue_bulk ( producer_token_t const & token,
It itemFirst,
size_t count )
inline

在文件 ConcurrentQueue.h1123 行定义.

类成员变量说明

◆ BLOCK_SIZE

template<typename T , typename Traits = ConcurrentQueueDefaultTraits>
const size_t moodycamel::ConcurrentQueue< T, Traits >::BLOCK_SIZE = static_cast<size_t>(Traits::BLOCK_SIZE)
static

◆ EXPLICIT_BLOCK_EMPTY_COUNTER_THRESHOLD

template<typename T , typename Traits = ConcurrentQueueDefaultTraits>
const size_t moodycamel::ConcurrentQueue< T, Traits >::EXPLICIT_BLOCK_EMPTY_COUNTER_THRESHOLD = static_cast<size_t>(Traits::EXPLICIT_BLOCK_EMPTY_COUNTER_THRESHOLD)
static

在文件 ConcurrentQueue.h764 行定义.

◆ 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_cast<std::uint32_t>(Traits::EXPLICIT_CONSUMER_CONSUMPTION_QUOTA_BEFORE_ROTATE)
static

◆ EXPLICIT_INITIAL_INDEX_SIZE

template<typename T , typename Traits = ConcurrentQueueDefaultTraits>
const size_t moodycamel::ConcurrentQueue< T, Traits >::EXPLICIT_INITIAL_INDEX_SIZE = static_cast<size_t>(Traits::EXPLICIT_INITIAL_INDEX_SIZE)
static

在文件 ConcurrentQueue.h766 行定义.

◆ IMPLICIT_INITIAL_INDEX_SIZE

template<typename T , typename Traits = ConcurrentQueueDefaultTraits>
const size_t moodycamel::ConcurrentQueue< T, Traits >::IMPLICIT_INITIAL_INDEX_SIZE = static_cast<size_t>(Traits::IMPLICIT_INITIAL_INDEX_SIZE)
static

在文件 ConcurrentQueue.h768 行定义.

◆ INITIAL_IMPLICIT_PRODUCER_HASH_SIZE

template<typename T , typename Traits = ConcurrentQueueDefaultTraits>
const size_t moodycamel::ConcurrentQueue< T, Traits >::INITIAL_IMPLICIT_PRODUCER_HASH_SIZE = static_cast<size_t>(Traits::INITIAL_IMPLICIT_PRODUCER_HASH_SIZE)
static

◆ MAX_SUBQUEUE_SIZE

template<typename T , typename Traits = ConcurrentQueueDefaultTraits>
const size_t moodycamel::ConcurrentQueue< T, Traits >::MAX_SUBQUEUE_SIZE = (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)
static

在文件 ConcurrentQueue.h779 行定义.


该类的文档由以下文件生成: