Classes | Public Member Functions | Private Types | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
moodycamel::ReaderWriterQueue< T, MAX_BLOCK_SIZE > Class Template Reference

#include <readerwriterqueue.h>

Classes

struct  Block
 
struct  ReentrantGuard
 

Public Member Functions

AE_FORCEINLINE bool enqueue (T const &element)
 
AE_FORCEINLINE bool enqueue (T &&element)
 
T * peek ()
 
bool pop ()
 
 ReaderWriterQueue (size_t max_size=15)
 
size_t sizeApprox () const
 
template<typename U >
bool tryDequeue (U &result)
 
AE_FORCEINLINE bool tryEnqueue (T const &element)
 
AE_FORCEINLINE bool tryEnqueue (T &&element)
 
 ~ReaderWriterQueue ()
 

Private Types

enum  AllocationMode { CanAlloc, CannotAlloc }
 

Private Member Functions

template<AllocationMode canAlloc, typename U >
bool innerEnqueue (U &&element)
 
ReaderWriterQueueoperator= (ReaderWriterQueue const &)
 
 ReaderWriterQueue (ReaderWriterQueue const &)
 

Static Private Member Functions

template<typename U >
static AE_FORCEINLINE char * alignFor (char *ptr)
 
static AE_FORCEINLINE size_t ceilToPow2 (size_t x)
 
static BlockmakeBlock (size_t capacity)
 

Private Attributes

char cachelineFiller_ [MOODYCAMEL_CACHE_LINE_SIZE-sizeof(WeakAtomic< Block * >)]
 
bool dequeuing_
 
bool enqueuing_
 
WeakAtomic< Block * > front_block_
 
size_t largest_block_size_
 
WeakAtomic< Block * > tail_block_
 

Detailed Description

template<typename T, size_t MAX_BLOCK_SIZE = 512>
class moodycamel::ReaderWriterQueue< T, MAX_BLOCK_SIZE >

Definition at line 53 of file readerwriterqueue.h.

Member Enumeration Documentation

template<typename T, size_t MAX_BLOCK_SIZE = 512>
enum moodycamel::ReaderWriterQueue::AllocationMode
private
Enumerator
CanAlloc 
CannotAlloc 

Definition at line 447 of file readerwriterqueue.h.

Constructor & Destructor Documentation

template<typename T, size_t MAX_BLOCK_SIZE = 512>
moodycamel::ReaderWriterQueue< T, MAX_BLOCK_SIZE >::ReaderWriterQueue ( size_t  max_size = 15)
inlineexplicit

Definition at line 80 of file readerwriterqueue.h.

template<typename T, size_t MAX_BLOCK_SIZE = 512>
moodycamel::ReaderWriterQueue< T, MAX_BLOCK_SIZE >::~ReaderWriterQueue ( )
inline

Definition at line 148 of file readerwriterqueue.h.

template<typename T, size_t MAX_BLOCK_SIZE = 512>
moodycamel::ReaderWriterQueue< T, MAX_BLOCK_SIZE >::ReaderWriterQueue ( ReaderWriterQueue< T, MAX_BLOCK_SIZE > const &  )
inlineprivate

Definition at line 558 of file readerwriterqueue.h.

Member Function Documentation

template<typename T, size_t MAX_BLOCK_SIZE = 512>
template<typename U >
static AE_FORCEINLINE char* moodycamel::ReaderWriterQueue< T, MAX_BLOCK_SIZE >::alignFor ( char *  ptr)
inlinestaticprivate

Definition at line 583 of file readerwriterqueue.h.

template<typename T, size_t MAX_BLOCK_SIZE = 512>
static AE_FORCEINLINE size_t moodycamel::ReaderWriterQueue< T, MAX_BLOCK_SIZE >::ceilToPow2 ( size_t  x)
inlinestaticprivate

Definition at line 567 of file readerwriterqueue.h.

template<typename T, size_t MAX_BLOCK_SIZE = 512>
AE_FORCEINLINE bool moodycamel::ReaderWriterQueue< T, MAX_BLOCK_SIZE >::enqueue ( T const &  element)
inline

Definition at line 195 of file readerwriterqueue.h.

template<typename T, size_t MAX_BLOCK_SIZE = 512>
AE_FORCEINLINE bool moodycamel::ReaderWriterQueue< T, MAX_BLOCK_SIZE >::enqueue ( T &&  element)
inline

Definition at line 203 of file readerwriterqueue.h.

template<typename T, size_t MAX_BLOCK_SIZE = 512>
template<AllocationMode canAlloc, typename U >
bool moodycamel::ReaderWriterQueue< T, MAX_BLOCK_SIZE >::innerEnqueue ( U &&  element)
inlineprivate

Definition at line 454 of file readerwriterqueue.h.

template<typename T, size_t MAX_BLOCK_SIZE = 512>
static Block* moodycamel::ReaderWriterQueue< T, MAX_BLOCK_SIZE >::makeBlock ( size_t  capacity)
inlinestaticprivate

Definition at line 659 of file readerwriterqueue.h.

template<typename T, size_t MAX_BLOCK_SIZE = 512>
ReaderWriterQueue& moodycamel::ReaderWriterQueue< T, MAX_BLOCK_SIZE >::operator= ( ReaderWriterQueue< T, MAX_BLOCK_SIZE > const &  )
inlineprivate

Definition at line 563 of file readerwriterqueue.h.

template<typename T, size_t MAX_BLOCK_SIZE = 512>
T* moodycamel::ReaderWriterQueue< T, MAX_BLOCK_SIZE >::peek ( )
inline

Definition at line 314 of file readerwriterqueue.h.

template<typename T, size_t MAX_BLOCK_SIZE = 512>
bool moodycamel::ReaderWriterQueue< T, MAX_BLOCK_SIZE >::pop ( )
inline

Definition at line 359 of file readerwriterqueue.h.

template<typename T, size_t MAX_BLOCK_SIZE = 512>
size_t moodycamel::ReaderWriterQueue< T, MAX_BLOCK_SIZE >::sizeApprox ( ) const
inline

Definition at line 430 of file readerwriterqueue.h.

template<typename T, size_t MAX_BLOCK_SIZE = 512>
template<typename U >
bool moodycamel::ReaderWriterQueue< T, MAX_BLOCK_SIZE >::tryDequeue ( U &  result)
inline

Definition at line 212 of file readerwriterqueue.h.

template<typename T, size_t MAX_BLOCK_SIZE = 512>
AE_FORCEINLINE bool moodycamel::ReaderWriterQueue< T, MAX_BLOCK_SIZE >::tryEnqueue ( T const &  element)
inline

Definition at line 179 of file readerwriterqueue.h.

template<typename T, size_t MAX_BLOCK_SIZE = 512>
AE_FORCEINLINE bool moodycamel::ReaderWriterQueue< T, MAX_BLOCK_SIZE >::tryEnqueue ( T &&  element)
inline

Definition at line 187 of file readerwriterqueue.h.

Member Data Documentation

template<typename T, size_t MAX_BLOCK_SIZE = 512>
char moodycamel::ReaderWriterQueue< T, MAX_BLOCK_SIZE >::cachelineFiller_[MOODYCAMEL_CACHE_LINE_SIZE-sizeof(WeakAtomic< Block * >)]
private

Definition at line 678 of file readerwriterqueue.h.

template<typename T, size_t MAX_BLOCK_SIZE = 512>
bool moodycamel::ReaderWriterQueue< T, MAX_BLOCK_SIZE >::dequeuing_
private

Definition at line 685 of file readerwriterqueue.h.

template<typename T, size_t MAX_BLOCK_SIZE = 512>
bool moodycamel::ReaderWriterQueue< T, MAX_BLOCK_SIZE >::enqueuing_
private

Definition at line 684 of file readerwriterqueue.h.

template<typename T, size_t MAX_BLOCK_SIZE = 512>
WeakAtomic<Block*> moodycamel::ReaderWriterQueue< T, MAX_BLOCK_SIZE >::front_block_
private

Definition at line 676 of file readerwriterqueue.h.

template<typename T, size_t MAX_BLOCK_SIZE = 512>
size_t moodycamel::ReaderWriterQueue< T, MAX_BLOCK_SIZE >::largest_block_size_
private

Definition at line 681 of file readerwriterqueue.h.

template<typename T, size_t MAX_BLOCK_SIZE = 512>
WeakAtomic<Block*> moodycamel::ReaderWriterQueue< T, MAX_BLOCK_SIZE >::tail_block_
private

Definition at line 679 of file readerwriterqueue.h.


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


ur_client_library
Author(s): Thomas Timm Andersen, Simon Rasmussen, Felix Exner, Lea Steffen, Tristan Schnell
autogenerated on Sun May 9 2021 02:16:26