hmbdc
simplify-high-performance-messaging-programming
Public Types | Public Member Functions | Static Public Member Functions | List of all members
hmbdc::pattern::MonoLockFreeBuffer Struct Reference

Public Types

enum  { max_parallel_consumer = 0xffff }
 
using Sequence = HMBDC_SEQ_TYPE
 
using iterator = hmbdc::pattern::lf_misc::iterator< Sequence >
 
using value_type = void *
 
using DeadConsumer = hmbdc::pattern::lf_misc::DeadConsumer
 

Public Member Functions

template<typename Allocator = os::DefaultAllocator>
 MonoLockFreeBuffer (size_t, uint32_t, Allocator &allocator=os::DefaultAllocator::instance)
 
size_t maxItemSize () const
 
size_t capacity () const
 
void put (void const *, size_t sizeHint=0)
 
template<typename T >
void put (T const &item)
 
template<typename T , typename... Args>
void putInPlace (Args &&...args)
 
bool tryPut (void const *, size_t sizeHint=0)
 
bool isFull () const
 
Sequence readSeq () const
 
iterator claim ()
 
iterator tryClaim ()
 
iterator claim (size_t)
 
iterator tryClaim (size_t)
 
iterator killClaim ()
 
iterator killClaim (size_t)
 
void commit (iterator)
 
void commit (iterator, size_t)
 
void take (void *, size_t=0)
 
bool tryTake (void *, size_t=0)
 
iterator peek ()
 
size_t peek (iterator &, iterator &, size_t maxPeekSize=std::numeric_limits< size_t >::max())
 
void wasteAfterPeek (iterator, size_t, bool=false)
 if size not matching - please refer to the impl for details
 
size_t remainingSize () const
 
size_t parallelConsumerAlive () const
 
void reset ()
 

Static Public Member Functions

static size_t footprint (size_t, uint32_t)
 

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