dEngine
Simple 2D C++ game engine
Classes | Public Member Functions | Private Attributes | List of all members
nanolog::RingBuffer Class Reference
Inheritance diagram for nanolog::RingBuffer:
nanolog::BufferBase

Classes

struct  Item
 

Public Member Functions

 RingBuffer (size_t const size)
 
 ~RingBuffer ()
 
void push (NanoLogLine &&logline) override
 
bool try_pop (NanoLogLine &logline) override
 
 RingBuffer (RingBuffer const &)=delete
 
RingBufferoperator= (RingBuffer const &)=delete
 
- Public Member Functions inherited from nanolog::BufferBase
virtual ~BufferBase ()=default
 

Private Attributes

size_t const m_size
 
Itemm_ring
 
std::atomic< unsigned int > m_write_index
 
char pad [64]
 
unsigned int m_read_index
 

Constructor & Destructor Documentation

◆ RingBuffer() [1/2]

nanolog::RingBuffer::RingBuffer ( size_t const  size)
inline

◆ ~RingBuffer()

nanolog::RingBuffer::~RingBuffer ( )
inline

◆ RingBuffer() [2/2]

nanolog::RingBuffer::RingBuffer ( RingBuffer const &  )
delete

Member Function Documentation

◆ operator=()

RingBuffer& nanolog::RingBuffer::operator= ( RingBuffer const &  )
delete

◆ push()

void nanolog::RingBuffer::push ( NanoLogLine &&  logline)
inlineoverridevirtual

Implements nanolog::BufferBase.

◆ try_pop()

bool nanolog::RingBuffer::try_pop ( NanoLogLine logline)
inlineoverridevirtual

Implements nanolog::BufferBase.

Member Data Documentation

◆ m_read_index

unsigned int nanolog::RingBuffer::m_read_index
private

◆ m_ring

Item* nanolog::RingBuffer::m_ring
private

◆ m_size

size_t const nanolog::RingBuffer::m_size
private

◆ m_write_index

std::atomic< unsigned int > nanolog::RingBuffer::m_write_index
private

◆ pad

char nanolog::RingBuffer::pad[64]
private