Agora  1.2.0
Agora project
moodycamel::ConcurrentQueue< T, Traits >::Block Struct Reference
Collaboration diagram for moodycamel::ConcurrentQueue< T, Traits >::Block:

Public Member Functions

 Block ()
 
template<InnerQueueContext context>
bool is_empty () const
 
template<InnerQueueContext context>
bool set_empty (index_t i)
 
template<InnerQueueContext context>
bool set_many_empty (index_t i, size_t count)
 
template<InnerQueueContext context>
void set_all_empty ()
 
template<InnerQueueContext context>
void reset_empty ()
 
Toperator[] (index_t idx) noexcept
 
T const * operator[] (index_t idx) const noexcept
 

Public Attributes

Blocknext
 
std::atomic< size_telementsCompletelyDequeued
 
std::atomic< bool > emptyFlags [BLOCK_SIZE<=EXPLICIT_BLOCK_EMPTY_COUNTER_THRESHOLD ? BLOCK_SIZE :1]
 
std::atomic< std::uint32_t > freeListRefs
 
std::atomic< Block * > freeListNext
 
std::atomic< bool > shouldBeOnFreeList
 
bool dynamicallyAllocated
 

Private Attributes

details::identity< char[sizeof(T) *BLOCK_SIZE] >::type elements
 

Constructor & Destructor Documentation

◆ Block()

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

Member Function Documentation

◆ is_empty()

template<typename T , typename Traits = ConcurrentQueueDefaultTraits>
template<InnerQueueContext context>
bool moodycamel::ConcurrentQueue< T, Traits >::Block::is_empty ( ) const
inline
Here is the call graph for this function:

◆ operator[]() [1/2]

template<typename T , typename Traits = ConcurrentQueueDefaultTraits>
T const* moodycamel::ConcurrentQueue< T, Traits >::Block::operator[] ( index_t  idx) const
inlinenoexcept

◆ operator[]() [2/2]

template<typename T , typename Traits = ConcurrentQueueDefaultTraits>
T* moodycamel::ConcurrentQueue< T, Traits >::Block::operator[] ( index_t  idx)
inlinenoexcept

◆ reset_empty()

template<typename T , typename Traits = ConcurrentQueueDefaultTraits>
template<InnerQueueContext context>
void moodycamel::ConcurrentQueue< T, Traits >::Block::reset_empty ( )
inline

◆ set_all_empty()

template<typename T , typename Traits = ConcurrentQueueDefaultTraits>
template<InnerQueueContext context>
void moodycamel::ConcurrentQueue< T, Traits >::Block::set_all_empty ( )
inline

◆ set_empty()

template<typename T , typename Traits = ConcurrentQueueDefaultTraits>
template<InnerQueueContext context>
bool moodycamel::ConcurrentQueue< T, Traits >::Block::set_empty ( index_t  i)
inline
Here is the call graph for this function:

◆ set_many_empty()

template<typename T , typename Traits = ConcurrentQueueDefaultTraits>
template<InnerQueueContext context>
bool moodycamel::ConcurrentQueue< T, Traits >::Block::set_many_empty ( index_t  i,
size_t  count 
)
inline
Here is the call graph for this function:

Member Data Documentation

◆ dynamicallyAllocated

template<typename T , typename Traits = ConcurrentQueueDefaultTraits>
bool moodycamel::ConcurrentQueue< T, Traits >::Block::dynamicallyAllocated

◆ elements

template<typename T , typename Traits = ConcurrentQueueDefaultTraits>
details::identity< char[sizeof(T) * BLOCK_SIZE] >::type moodycamel::ConcurrentQueue< T, Traits >::Block::elements
private

◆ elementsCompletelyDequeued

template<typename T , typename Traits = ConcurrentQueueDefaultTraits>
std::atomic<size_t> moodycamel::ConcurrentQueue< T, Traits >::Block::elementsCompletelyDequeued

◆ emptyFlags

template<typename T , typename Traits = ConcurrentQueueDefaultTraits>
std::atomic<bool> moodycamel::ConcurrentQueue< T, Traits >::Block::emptyFlags[BLOCK_SIZE<=EXPLICIT_BLOCK_EMPTY_COUNTER_THRESHOLD ? BLOCK_SIZE :1]

◆ freeListNext

template<typename T , typename Traits = ConcurrentQueueDefaultTraits>
std::atomic<Block*> moodycamel::ConcurrentQueue< T, Traits >::Block::freeListNext

◆ freeListRefs

template<typename T , typename Traits = ConcurrentQueueDefaultTraits>
std::atomic<std::uint32_t> moodycamel::ConcurrentQueue< T, Traits >::Block::freeListRefs

◆ next

template<typename T , typename Traits = ConcurrentQueueDefaultTraits>
Block* moodycamel::ConcurrentQueue< T, Traits >::Block::next

◆ shouldBeOnFreeList

template<typename T , typename Traits = ConcurrentQueueDefaultTraits>
std::atomic<bool> moodycamel::ConcurrentQueue< T, Traits >::Block::shouldBeOnFreeList

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