25 #include "RingBuffer.hpp"
30 RingBuffer::RingBuffer(std::size_t size) :
37 std::size_t RingBuffer::write(
const char *data, std::size_t sz)
39 for (std::size_t i = 0; i < sz; i++)
43 m_buff[m_widx] = data[i];
44 if (++m_widx >= m_buff.size())
52 std::size_t RingBuffer::read(
char *data, std::size_t sz)
54 for (std::size_t i = 0; i < sz; i++)
56 if ((m_widx == m_ridx) && !m_full)
59 data[i] = m_buff[m_ridx];
60 m_ridx = (m_ridx + 1) % m_buff.size();
65 std::size_t RingBuffer::bytesFree()
const
69 return ((m_widx >= m_ridx) ? (m_buff.size() - m_widx + m_ridx) :
main motion-lib namespace