11#ifndef __TBOX_RBUFFER_H__
12#define __TBOX_RBUFFER_H__
size_t tbox_rbuffer_read(tbox_rbuffer_t *rbuffer, void *data, size_t count)
读取并移除元素。
size_t tbox_rbuffer_skip(tbox_rbuffer_t *rbuffer, size_t count)
跳过并移除元素。
size_t tbox_rbuffer_write(tbox_rbuffer_t *rbuffer, const void *data, size_t count)
写入元素。
void tbox_rbuffer_reset_read(tbox_rbuffer_t *rbuffer)
丢弃当前所有可读数据。
size_t tbox_rbuffer_capacity(const tbox_rbuffer_t *rbuffer)
获取环形缓冲区容量。
bool tbox_rbuffer_is_full(const tbox_rbuffer_t *rbuffer)
判断环形缓冲区是否已满。
bool tbox_rbuffer_is_empty(const tbox_rbuffer_t *rbuffer)
判断环形缓冲区是否为空。
int tbox_rbuffer_init(tbox_rbuffer_t *rbuffer, void *buffer, size_t buffer_size, size_t element_size)
初始化环形缓冲区。
size_t tbox_rbuffer_element_size(const tbox_rbuffer_t *rbuffer)
获取单个元素大小。
void tbox_rbuffer_reset(tbox_rbuffer_t *rbuffer)
清空环形缓冲区。
size_t tbox_rbuffer_peek(const tbox_rbuffer_t *rbuffer, void *data, size_t count)
预读取元素但不移除。
size_t tbox_rbuffer_avail(const tbox_rbuffer_t *rbuffer)
获取当前可写元素数量。
size_t tbox_rbuffer_len(const tbox_rbuffer_t *rbuffer)
获取当前可读元素数量。
bool tbox_rbuffer_initialized(const tbox_rbuffer_t *rbuffer)
判断环形缓冲区是否已初始化。
环形缓冲区控制块。
Definition rbuffer.h:32
size_t element_size
单个元素大小,单位为字节。
Definition rbuffer.h:36
void * buffer
外部数据缓冲区。
Definition rbuffer.h:37
size_t read_pos
读取位置计数。
Definition rbuffer.h:34
size_t write_pos
写入位置计数。
Definition rbuffer.h:33
size_t capacity
可容纳的元素数量。
Definition rbuffer.h:35