MiniOB 1
MiniOB is one mini database, helping developers to learn how database works.
载入中...
搜索中...
未找到
Public 成员函数 | Private 成员函数 | Private 属性 | 所有成员列表
RingBuffer类 参考

环形缓存,当前用于通讯写入数据时的缓存 更多...

#include <ring_buffer.h>

Public 成员函数

 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
 缓存中已经写入数据的空间大小
 

Private 成员函数

int32_t read_pos () const
 

Private 属性

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函数移动读指针。

参数
buf读取的数据
read_size数据大小

◆ forward()

RC RingBuffer::forward ( int32_t  size)

将读指针向前移动size个字节

通常在buffer函数读取数据后,调用forward函数移动读指针

参数
size移动的字节数

◆ 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实际写入的数据大小

该类的文档由以下文件生成: