T-Box Basic dev
Loading...
Searching...
No Matches
TBOX_RBUFFER

T-Box 环形缓冲区 More...

Data Structures

struct  tbox_rbuffer_t
 环形缓冲区控制块。 More...

Functions

int tbox_rbuffer_init (tbox_rbuffer_t *rbuffer, void *buffer, size_t buffer_size, size_t element_size)
 初始化环形缓冲区。
void tbox_rbuffer_reset (tbox_rbuffer_t *rbuffer)
 清空环形缓冲区。
void tbox_rbuffer_reset_read (tbox_rbuffer_t *rbuffer)
 丢弃当前所有可读数据。
bool tbox_rbuffer_initialized (const tbox_rbuffer_t *rbuffer)
 判断环形缓冲区是否已初始化。
size_t tbox_rbuffer_element_size (const tbox_rbuffer_t *rbuffer)
 获取单个元素大小。
size_t tbox_rbuffer_capacity (const tbox_rbuffer_t *rbuffer)
 获取环形缓冲区容量。
size_t tbox_rbuffer_len (const tbox_rbuffer_t *rbuffer)
 获取当前可读元素数量。
size_t tbox_rbuffer_avail (const tbox_rbuffer_t *rbuffer)
 获取当前可写元素数量。
bool tbox_rbuffer_is_empty (const tbox_rbuffer_t *rbuffer)
 判断环形缓冲区是否为空。
bool tbox_rbuffer_is_full (const tbox_rbuffer_t *rbuffer)
 判断环形缓冲区是否已满。
size_t tbox_rbuffer_write (tbox_rbuffer_t *rbuffer, const void *data, size_t count)
 写入元素。
size_t tbox_rbuffer_read (tbox_rbuffer_t *rbuffer, void *data, size_t count)
 读取并移除元素。
size_t tbox_rbuffer_peek (const tbox_rbuffer_t *rbuffer, void *data, size_t count)
 预读取元素但不移除。
size_t tbox_rbuffer_skip (tbox_rbuffer_t *rbuffer, size_t count)
 跳过并移除元素。

Detailed Description

T-Box 环形缓冲区

Function Documentation

◆ tbox_rbuffer_avail()

size_t tbox_rbuffer_avail ( const tbox_rbuffer_t * rbuffer)

获取当前可写元素数量。

Parameters
[in]rbuffer环形缓冲区控制块。
Returns
当前可写元素数量。

◆ tbox_rbuffer_capacity()

size_t tbox_rbuffer_capacity ( const tbox_rbuffer_t * rbuffer)

获取环形缓冲区容量。

Parameters
[in]rbuffer环形缓冲区控制块。
Returns
可容纳的元素数量。

◆ tbox_rbuffer_element_size()

size_t tbox_rbuffer_element_size ( const tbox_rbuffer_t * rbuffer)

获取单个元素大小。

Parameters
[in]rbuffer环形缓冲区控制块。
Returns
单个元素大小,单位为字节。

◆ tbox_rbuffer_init()

int tbox_rbuffer_init ( tbox_rbuffer_t * rbuffer,
void * buffer,
size_t buffer_size,
size_t element_size )

初始化环形缓冲区。

Parameters
[in,out]rbuffer环形缓冲区控制块。
[in]buffer外部数据缓冲区。
[in]buffer_size外部数据缓冲区大小,单位为字节。
[in]element_size单个元素大小,单位为字节。
Returns
TBOX_OK 表示成功;失败时返回错误码。
Note
可用容量按 buffer_size / element_size 向下取 2 的幂。

◆ tbox_rbuffer_initialized()

bool tbox_rbuffer_initialized ( const tbox_rbuffer_t * rbuffer)

判断环形缓冲区是否已初始化。

Parameters
[in]rbuffer环形缓冲区控制块。
Returns
非 0 表示已初始化,0 表示未初始化。

◆ tbox_rbuffer_is_empty()

bool tbox_rbuffer_is_empty ( const tbox_rbuffer_t * rbuffer)

判断环形缓冲区是否为空。

Parameters
[in]rbuffer环形缓冲区控制块。
Returns
非 0 表示为空,0 表示非空。

◆ tbox_rbuffer_is_full()

bool tbox_rbuffer_is_full ( const tbox_rbuffer_t * rbuffer)

判断环形缓冲区是否已满。

Parameters
[in]rbuffer环形缓冲区控制块。
Returns
非 0 表示已满,0 表示未满。

◆ tbox_rbuffer_len()

size_t tbox_rbuffer_len ( const tbox_rbuffer_t * rbuffer)

获取当前可读元素数量。

Parameters
[in]rbuffer环形缓冲区控制块。
Returns
当前可读元素数量。

◆ tbox_rbuffer_peek()

size_t tbox_rbuffer_peek ( const tbox_rbuffer_t * rbuffer,
void * data,
size_t count )

预读取元素但不移除。

Parameters
[in]rbuffer环形缓冲区控制块。
[out]data输出元素数组。
[in]count最多预读取元素数量。
Returns
实际预读取元素数量。

◆ tbox_rbuffer_read()

size_t tbox_rbuffer_read ( tbox_rbuffer_t * rbuffer,
void * data,
size_t count )

读取并移除元素。

Parameters
[in,out]rbuffer环形缓冲区控制块。
[out]data输出元素数组。
[in]count最多读取元素数量。
Returns
实际读取元素数量。

◆ tbox_rbuffer_reset()

void tbox_rbuffer_reset ( tbox_rbuffer_t * rbuffer)

清空环形缓冲区。

Parameters
[in,out]rbuffer环形缓冲区控制块。

◆ tbox_rbuffer_reset_read()

void tbox_rbuffer_reset_read ( tbox_rbuffer_t * rbuffer)

丢弃当前所有可读数据。

Parameters
[in,out]rbuffer环形缓冲区控制块。

◆ tbox_rbuffer_skip()

size_t tbox_rbuffer_skip ( tbox_rbuffer_t * rbuffer,
size_t count )

跳过并移除元素。

Parameters
[in,out]rbuffer环形缓冲区控制块。
[in]count最多跳过元素数量。
Returns
实际跳过元素数量。

◆ tbox_rbuffer_write()

size_t tbox_rbuffer_write ( tbox_rbuffer_t * rbuffer,
const void * data,
size_t count )

写入元素。

Parameters
[in,out]rbuffer环形缓冲区控制块。
[in]data待写入元素数组。
[in]count待写入元素数量。
Returns
实际写入元素数量。