环形缓存,当前用于通讯写入数据时的缓存
更多...
#include <ring_buffer.h>
|
| RingBuffer () |
| 使用默认缓存大小的构造函数,默认大小16K
|
|
| RingBuffer (int32_t size) |
| 指定初始化大小的构造函数 更多...
|
|
RC | read (char *buf, int32_t size, int32_t &read_size) |
| 从缓存中读取数据 更多...
|
|
RC | buffer (const char *&buf, int32_t &read_size) |
| 从缓存中读取数据,不会移动读指针 更多...
|
|
RC | forward (int32_t size) |
| 将读指针向前移动size个字节 更多...
|
|
RC | write (const char *buf, int32_t size, int32_t &write_size) |
| 将数据写入缓存 更多...
|
|
int32_t | capacity () const |
| 缓存的总容量
|
|
int32_t | remain () const |
| 缓存中剩余的可写入数据的空间
|
|
int32_t | size () const |
| 缓存中已经写入数据的空间大小
|
|
|
int32_t | read_pos () const |
|
|
std::vector< char > | buffer_ |
| 缓存使用的内存,使用vector方便管理
|
|
int32_t | data_size_ = 0 |
| 已经写入的数据量
|
|
int32_t | write_pos_ = 0 |
| 当前写指针的位置,范围不会超出[0, capacity)
|
|
◆ RingBuffer()
RingBuffer::RingBuffer |
( |
int32_t |
size | ) |
|
|
explicit |
◆ buffer()
RC RingBuffer::buffer |
( |
const char *& |
buf, |
|
|
int32_t & |
read_size |
|
) |
| |
从缓存中读取数据,不会移动读指针
读取数据时直接返回缓存中的指针,不会移动读指针。读取完成后执行forward函数移动读指针。
- 参数
-
◆ forward()
RC RingBuffer::forward |
( |
int32_t |
size | ) |
|
将读指针向前移动size个字节
通常在buffer函数读取数据后,调用forward函数移动读指针
- 参数
-
◆ read()
RC RingBuffer::read |
( |
char * |
buf, |
|
|
int32_t |
size, |
|
|
int32_t & |
read_size |
|
) |
| |
从缓存中读取数据
- 参数
-
buf | 读取数据的缓存 |
size | 读取数据的大小 |
read_size | 实际读取的数据大小 |
◆ write()
RC RingBuffer::write |
( |
const char * |
buf, |
|
|
int32_t |
size, |
|
|
int32_t & |
write_size |
|
) |
| |
将数据写入缓存
- 参数
-
buf | 待写入的数据 |
size | 待写入的数据大小 |
write_size | 实际写入的数据大小 |
该类的文档由以下文件生成: