#include <ring_buffer.h>
|
| | ~RingBuffer () |
| |
| size_t | read (void *data, size_t len, TickType_t ticks_to_wait=0) |
| | Reads from the ring buffer, waiting up to a specified number of ticks if necessary.
|
| |
| void * | receive_acquire (size_t &length, size_t max_length, TickType_t ticks_to_wait=0) |
| | Acquires a pointer into the ring buffer's internal storage without copying.
|
| |
| void | receive_release (void *item) |
| | Releases a previously acquired ring buffer item.
|
| |
| size_t | write (const void *data, size_t len) |
| | Writes to the ring buffer, overwriting oldest data if necessary.
|
| |
| size_t | write_without_replacement (const void *data, size_t len, TickType_t ticks_to_wait=0, bool write_partial=true) |
| | Writes to the ring buffer without overwriting oldest data.
|
| |
| size_t | available () const |
| | Returns the number of available bytes in the ring buffer.
|
| |
| size_t | free () const |
| | Returns the number of free bytes in the ring buffer.
|
| |
| BaseType_t | reset () |
| | Resets the ring buffer, discarding all stored data.
|
| |
|
| bool | discard_bytes_ (size_t discard_bytes) |
| | Discards data from the ring buffer.
|
| |
Definition at line 13 of file ring_buffer.h.
◆ MemoryPreference
| Enumerator |
|---|
| EXTERNAL_FIRST | |
| INTERNAL_FIRST | |
Definition at line 105 of file ring_buffer.h.
◆ ~RingBuffer()
| esphome::ring_buffer::RingBuffer::~RingBuffer |
( |
| ) |
|
◆ available()
| size_t esphome::ring_buffer::RingBuffer::available |
( |
| ) |
const |
Returns the number of available bytes in the ring buffer.
This function provides the number of bytes that can be read from the ring buffer without blocking the calling FreeRTOS task.
- Returns
- Number of available bytes
Definition at line 106 of file ring_buffer.cpp.
◆ create()
◆ discard_bytes_()
| bool esphome::ring_buffer::RingBuffer::discard_bytes_ |
( |
size_t | discard_bytes | ) |
|
|
protected |
Discards data from the ring buffer.
- Parameters
-
| discard_bytes | amount of bytes to discard |
- Returns
- True if all bytes were successfully discarded, false otherwise
Definition at line 119 of file ring_buffer.cpp.
◆ free()
| size_t esphome::ring_buffer::RingBuffer::free |
( |
| ) |
const |
Returns the number of free bytes in the ring buffer.
This function provides the number of bytes that can be written to the ring buffer without overwriting data or blocking the calling FreeRTOS task.
- Returns
- Number of free bytes
Definition at line 112 of file ring_buffer.cpp.
◆ read()
| size_t esphome::ring_buffer::RingBuffer::read |
( |
void * | data, |
|
|
size_t | len, |
|
|
TickType_t | ticks_to_wait = 0 ) |
Reads from the ring buffer, waiting up to a specified number of ticks if necessary.
Available bytes are read into the provided data pointer. If not enough bytes are available, the function will wait up to ticks_to_wait FreeRTOS ticks before reading what is available.
- Parameters
-
| data | Pointer to copy read data into |
| len | Number of bytes to read |
| ticks_to_wait | Maximum number of FreeRTOS ticks to wait (default: 0) |
- Returns
- Number of bytes read
Definition at line 48 of file ring_buffer.cpp.
◆ receive_acquire()
| void * esphome::ring_buffer::RingBuffer::receive_acquire |
( |
size_t & | length, |
|
|
size_t | max_length, |
|
|
TickType_t | ticks_to_wait = 0 ) |
Acquires a pointer into the ring buffer's internal storage without copying.
The returned pointer is valid until receive_release() is called. Only one item may be checked out at a time.
- Parameters
-
| [out] | length | Set to the number of bytes actually acquired (may be less than max_length at wrap boundary) |
| max_length | Maximum number of bytes to acquire |
| ticks_to_wait | Maximum number of FreeRTOS ticks to wait (default: 0) |
- Returns
- Pointer into the ring buffer's internal storage, or nullptr if no data is available
Definition at line 40 of file ring_buffer.cpp.
◆ receive_release()
| void esphome::ring_buffer::RingBuffer::receive_release |
( |
void * | item | ) |
|
Releases a previously acquired ring buffer item.
Must be called exactly once for each successful receive_acquire().
- Parameters
-
Definition at line 46 of file ring_buffer.cpp.
◆ reset()
| BaseType_t esphome::ring_buffer::RingBuffer::reset |
( |
| ) |
|
Resets the ring buffer, discarding all stored data.
- Returns
- pdPASS if successful, pdFAIL otherwise
Definition at line 114 of file ring_buffer.cpp.
◆ write()
| size_t esphome::ring_buffer::RingBuffer::write |
( |
const void * | data, |
|
|
size_t | len ) |
Writes to the ring buffer, overwriting oldest data if necessary.
The provided data is written to the ring buffer. If not enough space is available, the function will overwrite the oldest data in the ring buffer.
- Parameters
-
| data | Pointer to data for writing |
| len | Number of bytes to write |
- Returns
- Number of bytes written
Definition at line 81 of file ring_buffer.cpp.
◆ write_without_replacement()
| size_t esphome::ring_buffer::RingBuffer::write_without_replacement |
( |
const void * | data, |
|
|
size_t | len, |
|
|
TickType_t | ticks_to_wait = 0, |
|
|
bool | write_partial = true ) |
Writes to the ring buffer without overwriting oldest data.
The provided data is written to the ring buffer. If not enough space is available, the function will wait up to ticks_to_wait FreeRTOS ticks before writing as much as possible.
- Parameters
-
| data | Pointer to data for writing |
| len | Number of bytes to write |
| ticks_to_wait | Maximum number of FreeRTOS ticks to wait (default: 0) |
- Returns
- Number of bytes written
Definition at line 90 of file ring_buffer.cpp.
◆ handle_
| RingbufHandle_t esphome::ring_buffer::RingBuffer::handle_ {nullptr} |
|
protected |
◆ size_
| size_t esphome::ring_buffer::RingBuffer::size_ {0} |
|
protected |
◆ storage_
| uint8_t* esphome::ring_buffer::RingBuffer::storage_ {nullptr} |
|
protected |
◆ structure_
| StaticRingbuffer_t esphome::ring_buffer::RingBuffer::structure_ |
|
protected |
The documentation for this class was generated from the following files: