Chunked Ringbuffer. More...
Chunked Ringbuffer.
A chunked ringbuffer is a ringbuffer that holds chunks of data.
Definition in file chunked_ringbuffer.h.
#include <stdbool.h>#include <stdint.h>#include <stddef.h>
 Include dependency graph for chunked_ringbuffer.h:
 This graph shows which files directly or indirectly include this file:Go to the source code of this file.
Data Structures | |
| struct | chunk_ringbuf_t | 
| A chunked ringbuffer.  More... | |
Macros | |
| #define | CONFIG_CHUNK_NUM_MAX (4) | 
| The maximum number of chunks that can be stored in a Chunked Ringbuffer.  | |
Typedefs | |
| typedef void(* | crb_foreach_callback_t) (void *ctx, uint8_t *bytes, size_t len) | 
| Callback function for crb_chunk_foreach.  More... | |
Functions | |
| void | crb_init (chunk_ringbuf_t *rb, void *buffer, size_t len) | 
| Initialize a Chunked Ringbuffer.  More... | |
| unsigned | crb_end_chunk (chunk_ringbuf_t *rb, bool valid) | 
| Close the current chunk.  More... | |
| static bool | crb_start_chunk (chunk_ringbuf_t *rb) | 
| Start a new chunk on the ringbuffer.  More... | |
| static bool | crb_add_byte (chunk_ringbuf_t *rb, uint8_t b) | 
| Insert a byte into the current chunk.  More... | |
| bool | crb_add_bytes (chunk_ringbuf_t *rb, const void *data, size_t len) | 
| Insert a number of bytes into the current chunk.  More... | |
| bool | crb_add_chunk (chunk_ringbuf_t *rb, const void *data, size_t len) | 
| Add a complete chunk to the Ringbuffer.  More... | |
| bool | crb_get_chunk_size (chunk_ringbuf_t *rb, size_t *len) | 
| Get the size of the first valid chunk.  More... | |
| bool | crb_peek_bytes (chunk_ringbuf_t *rb, void *dst, size_t offset, size_t len) | 
| Get a number of bytes from the first valid chunk without consuming it.  More... | |
| bool | crb_consume_chunk (chunk_ringbuf_t *rb, void *dst, size_t len) | 
| Remove a chunk from the valid chunk array.  More... | |
| bool | crb_chunk_foreach (chunk_ringbuf_t *rb, crb_foreach_callback_t func, void *ctx) | 
| Execute a callback for each byte in the first valid chunk The callback function may be called twice if the chunk is non-continuous.  More... | |