Ring buffer

#include "buffer.tcc"

Class definition

template<uint8_t bits>
class Buffer

Ring buffer.

Template Parameters:

bitsBuffer size control (2^bits).

Public Functions

Buffer()

Create a ring buffer.

uint8_t available() const

Get the number of bytes available for reading.

Returns:

Number of bytes.

uint8_t read(uint8_t *const data, uint8_t const size)

Read size bytes of data.

Parameters:
  • data[out] Buffer to receive size bytes of data.

  • size[in] Number of bytes to read.

Returns:

Number of bytes read.

int16_t read()

Read one byte of data.

Returns:

The first byte of incoming data or -1 if no data is available.

void write(uint8_t *const data, uint8_t const size)

Write size bytes of data.

Parameters:
  • data[in] Buffer containing size bytes of data.

  • size[in] Number of bytes to write.

Returns:

Number of bytes written.

void write(uint8_t const data)

Write one byte of data.

Parameters:

data[in] Data.

int16_t peek() const

Return the next byte of incoming data without removing it from the buffer.

Returns:

The first byte of incoming data or -1 if no data is available.