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

Public Member Functions

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

Private Member Functions

void setup_next_write_buffer ()
 
Bufferget_next_read_buffer ()
 

Private Attributes

std::queue< std::unique_ptr< Buffer > > m_buffers
 
std::atomic< Buffer *> m_current_write_buffer
 
Bufferm_current_read_buffer
 
std::atomic< unsigned int > m_write_index
 
std::atomic_flag m_flag
 
unsigned int m_read_index
 

Constructor & Destructor Documentation

◆ QueueBuffer() [1/2]

nanolog::QueueBuffer::QueueBuffer ( QueueBuffer const &  )
delete

◆ QueueBuffer() [2/2]

nanolog::QueueBuffer::QueueBuffer ( )
inline

Member Function Documentation

◆ get_next_read_buffer()

Buffer* nanolog::QueueBuffer::get_next_read_buffer ( )
inlineprivate

◆ operator=()

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

◆ push()

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

Implements nanolog::BufferBase.

◆ setup_next_write_buffer()

void nanolog::QueueBuffer::setup_next_write_buffer ( )
inlineprivate

◆ try_pop()

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

Implements nanolog::BufferBase.

Member Data Documentation

◆ m_buffers

std::queue< std::unique_ptr < Buffer > > nanolog::QueueBuffer::m_buffers
private

◆ m_current_read_buffer

Buffer* nanolog::QueueBuffer::m_current_read_buffer
private

◆ m_current_write_buffer

std::atomic< Buffer * > nanolog::QueueBuffer::m_current_write_buffer
private

◆ m_flag

std::atomic_flag nanolog::QueueBuffer::m_flag
private

◆ m_read_index

unsigned int nanolog::QueueBuffer::m_read_index
private

◆ m_write_index

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