13 #include "fifo_buffer_base.h" 15 BEGIN_NAMESPACE_MEMORY
66 std::unique_ptr<T[]> buffer;
79 std::lock_guard<std::recursive_mutex> guard(this->getLock());
81 buffer.reset(
new T[this->getCapacity()]);
87 std::lock_guard<std::recursive_mutex> guard(this->getLock());
88 return {buffer.get(), this->capacity, this->readPos, this->writePos, this->size};
Definition: fifobuffer.h:18
The class FifoBufferBase is used to implement first-in-first-out (FIFO) buffers.
Definition: fifo_buffer_base.h:21
FifoBuffer(size_t aCapacity=0)
The constructor allocates memory at the heap and creates an instance.
Definition: fifobuffer.h:71
The class FifoBuffer implements a first-in-first-out (FIFO) data structure.
Definition: fifobuffer.h:31
virtual void setCapacity(size_t aCapacity)
Function allocates memory at the heap.
Definition: fifo_buffer_base.h:145
T * getData() const override
Function returns pointer to the internal buffer.
Definition: fifobuffer.h:92
FifoBufferStatus< T > getStatus()
Function returns FifoBuffer status which can be used for optimization.
Definition: fifobuffer.h:85
std::size_t getSize() const
Function returns current buffer size in values.
Definition: fifobuffer.h:98
void setCapacity(size_t aCapacity) override
Function allocates memory at the heap.
Definition: fifobuffer.h:77