Skip to content

Class ByteFifo

template <int Size>

ClassList > ByteFifo

More...

  • #include <ByteFifo.hpp>

Public Functions

Type Name
ByteFifo ()
size_t available () const
Readable bytes.
void clear ()
Clears the buffer by setting m_tail = m_head;.
uint8_t * data () const
Pointer to the beginning.
bool hasData () const
True if some data is ready for reading.
void notifyRead (size_t len)
Move the read index (tail), indicating len bytes have been read out.
void notifyWritten (size_t len)
Move the write index (head), indicating len bytes have been written.
void peekSpan (uint8_t * data, size_t len)
Read len bytes into buffer starting at data.
uint8_t pop ()
Reads one byte, must be available.
void push (uint8_t b)
Writes one byte.
std::pair< uint8_t *, size_t > readableSpan () const
void setHead (int newHead)
Override the write index aka. head.
constexpr size_t size () const
Total capacity.
void writeSpan (uint8_t * data, size_t len)
Write len bytes into buffer starting at data.
std::pair< uint8_t *, size_t > writeableSpan () const

Detailed Description

A DMA-ready byte ring buffer with contiguous I/O API Allows direct read/write access using: readableSpan() -> read-out -> notifyRead() writeableSpan() -> write-in -> notifyWritten()

Public Functions Documentation

function ByteFifo

inline ByteFifo::ByteFifo () 

function available

inline size_t ByteFifo::available () const

function clear

inline void ByteFifo::clear () 

function data

inline uint8_t * ByteFifo::data () const

function hasData

inline bool ByteFifo::hasData () const

function notifyRead

inline void ByteFifo::notifyRead (
    size_t len
) 

function notifyWritten

inline void ByteFifo::notifyWritten (
    size_t len
) 

function peekSpan

inline void ByteFifo::peekSpan (
    uint8_t * data,
    size_t len
) 

function pop

inline uint8_t ByteFifo::pop () 

function push

inline void ByteFifo::push (
    uint8_t b
) 

function readableSpan

inline std::pair< uint8_t *, size_t > ByteFifo::readableSpan () const

Gets a contiguous range of bytes ready for reading. Doesn't represent all readable bytes if wrapped over the end. Zero size_t means FIFO is empty.

function setHead

inline void ByteFifo::setHead (
    int newHead
) 

function size

inline constexpr size_t ByteFifo::size () const

function writeSpan

inline void ByteFifo::writeSpan (
    uint8_t * data,
    size_t len
) 

function writeableSpan

inline std::pair< uint8_t *, size_t > ByteFifo::writeableSpan () const

Gets a contiguous range of bytes ready for writing. Doesn't represent all writeable bytes if wrapped over the end. Zero size_t means FIFO is full.


The documentation for this class was generated from the following file fw/rbcx-coprocessor/include/utils/ByteFifo.hpp