hmbdc
simplify-high-performance-messaging-programming
Public Types | Public Member Functions | Static Public Member Functions | List of all members
hmbdc::pattern::LockFreeBufferT< MAX_PARALLE_CONSUMER > Struct Template Reference

Public Types

enum  { max_parallel_consumer = MAX_PARALLE_CONSUMER }
 
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>
 LockFreeBufferT (size_t, uint32_t, Allocator &allocator=os::DefaultAllocator::instance)
 
size_t capacity () const
 
size_t maxItemSize () const
 
void put (void const *, size_t sizeHint=0)
 
template<typename T >
void put (T const &item)
 
bool tryPut (void const *, size_t sizeHint=0)
 
template<typename T >
bool tryPut (T const &item)
 
void killPut (void const *, size_t sizeHint=0)
 
template<typename T >
void killPut (T const &item)
 
template<typename T , typename... Args>
void putInPlace (Args &&...args)
 
bool isFull () const
 
Sequence readSeq (uint16_t PARALLEL_CONSUMER_INDEX) 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 markDead (uint16_t)
 
template<typename T >
take (uint16_t PARALLEL_CONSUMER_INDEX)
 
void take (uint16_t PARALLEL_CONSUMER_INDEX, void *, size_t=0)
 
void takeReentrant (uint16_t PARALLEL_CONSUMER_INDEX, void *, size_t=0)
 
iterator peek (uint16_t PARALLEL_CONSUMER_INDEX) const
 
size_t peek (uint16_t PARALLEL_CONSUMER_INDEX, iterator &, iterator &, size_t maxPeekSize=std::numeric_limits< size_t >::max()) const
 
void waste (uint16_t PARALLEL_CONSUMER_INDEX, size_t)
 
void wasteAfterPeek (uint16_t PARALLEL_CONSUMER_INDEX, size_t)
 
void catchUpWith (uint16_t PARALLEL_CONSUMER_INDEX, uint16_t)
 
void catchUpTo (uint16_t PARALLEL_CONSUMER_INDEX, Sequence)
 
size_t remainingSize (uint16_t PARALLEL_CONSUMER_INDEX) const
 
size_t remainingSize () const
 
size_t parallelConsumerAlive () const
 
void reset (uint16_t PARALLEL_CONSUMER_INDEX)
 
uint64_t purge ()
 
std::vector< uint16_t > unusedConsumerIndexes () const
 

Static Public Member Functions

static size_t footprint (size_t, uint32_t)
 

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