LMMS
Loading...
Searching...
No Matches
lmms::LocklessRingBuffer< T > Class Template Reference

A convenience layer for a realtime-safe and thread-safe multi-reader ringbuffer. More...

#include <LocklessRingBuffer.h>

Public Member Functions

 LocklessRingBuffer (std::size_t sz)
 ~LocklessRingBuffer ()=default
std::size_t capacity () const
std::size_t free () const
void wakeAll ()
std::size_t write (const T *src, std::size_t cnt, bool notify=false)
void mlock ()

Protected Attributes

ringbuffer_t< T > m_buffer
QWaitCondition m_notifier

Friends

template<class _T>
class LocklessRingBufferReader

Detailed Description

template<class T>
class lmms::LocklessRingBuffer< T >

A convenience layer for a realtime-safe and thread-safe multi-reader ringbuffer.

Constructor & Destructor Documentation

◆ LocklessRingBuffer()

template<class T>
lmms::LocklessRingBuffer< T >::LocklessRingBuffer ( std::size_t sz)
inline

◆ ~LocklessRingBuffer()

template<class T>
lmms::LocklessRingBuffer< T >::~LocklessRingBuffer ( )
default

Member Function Documentation

◆ capacity()

template<class T>
std::size_t lmms::LocklessRingBuffer< T >::capacity ( ) const
inline

◆ free()

template<class T>
std::size_t lmms::LocklessRingBuffer< T >::free ( ) const
inline

◆ mlock()

template<class T>
void lmms::LocklessRingBuffer< T >::mlock ( )
inline

◆ wakeAll()

template<class T>
void lmms::LocklessRingBuffer< T >::wakeAll ( )
inline

◆ write()

template<class T>
std::size_t lmms::LocklessRingBuffer< T >::write ( const T * src,
std::size_t cnt,
bool notify = false )
inline

◆ LocklessRingBufferReader

template<class T>
template<class _T>
friend class LocklessRingBufferReader
friend

Member Data Documentation

◆ m_buffer

template<class T>
ringbuffer_t<T> lmms::LocklessRingBuffer< T >::m_buffer
protected

◆ m_notifier

template<class T>
QWaitCondition lmms::LocklessRingBuffer< T >::m_notifier
protected

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