Mixes for Privacy and Anonymity in the Internet
Public Member Functions | Private Attributes | List of all members
BlockingReaderWriterQueue Class Reference

Public Member Functions

 BlockingReaderWriterQueue (size_t maxSize=15) AE_NO_TSAN
 
 BlockingReaderWriterQueue (BlockingReaderWriterQueue &&other) AE_NO_TSAN
 
BlockingReaderWriterQueueoperator= (BlockingReaderWriterQueue &&other) AE_NO_TSAN
 
AE_FORCEINLINE bool enqueue (UINT8 *const &element) AE_NO_TSAN
 
bool try_dequeue (UINT8 *&result) AE_NO_TSAN
 
void wait_dequeue (UINT8 *&result) AE_NO_TSAN
 
bool wait_dequeue_timed (UINT8 *&result, std::int64_t timeout_usecs) AE_NO_TSAN
 
AE_FORCEINLINE UINT8peek () AE_NO_TSAN
 
AE_FORCEINLINE bool pop () AE_NO_TSAN
 
AE_FORCEINLINE size_t size_approx () const AE_NO_TSAN
 

Private Attributes

ReaderWriterQueue inner
 
std::unique_ptr< spsc_sema::LightweightSemaphoresema
 

Constructor & Destructor Documentation

◆ BlockingReaderWriterQueue() [1/2]

BlockingReaderWriterQueue::BlockingReaderWriterQueue ( size_t  maxSize = 15)
explicit

◆ BlockingReaderWriterQueue() [2/2]

BlockingReaderWriterQueue::BlockingReaderWriterQueue ( BlockingReaderWriterQueue &&  other)

Member Function Documentation

◆ enqueue()

AE_FORCEINLINE bool BlockingReaderWriterQueue::enqueue ( UINT8 *const &  element)

◆ operator=()

BlockingReaderWriterQueue& BlockingReaderWriterQueue::operator= ( BlockingReaderWriterQueue &&  other)

References inner, and sema.

◆ peek()

AE_FORCEINLINE UINT8* BlockingReaderWriterQueue::peek ( )

References inner, and ReaderWriterQueue::peek().

◆ pop()

AE_FORCEINLINE bool BlockingReaderWriterQueue::pop ( )

◆ size_approx()

AE_FORCEINLINE size_t BlockingReaderWriterQueue::size_approx ( ) const

References sema.

◆ try_dequeue()

bool BlockingReaderWriterQueue::try_dequeue ( UINT8 *&  result)

◆ wait_dequeue()

void BlockingReaderWriterQueue::wait_dequeue ( UINT8 *&  result)

◆ wait_dequeue_timed()

bool BlockingReaderWriterQueue::wait_dequeue_timed ( UINT8 *&  result,
std::int64_t  timeout_usecs 
)

Member Data Documentation

◆ inner

ReaderWriterQueue BlockingReaderWriterQueue::inner
private

◆ sema

std::unique_ptr<spsc_sema::LightweightSemaphore> BlockingReaderWriterQueue::sema
private