NexusForce 1.0.0
A rigorously engineered full-stack C++ backend library.
载入中...
搜索中...
未找到
neforce::dynamic_buffer类 参考

自适应扩容的动态缓冲区 更多...

#include <buffer.hpp>

Public 成员函数

mutable_buffers prepare (size_t n)
 准备写入区域
void commit (size_t n)
 标记已写入的字节数
void consume (size_t n)
 移除已消费的数据
size_t size () const noexcept
 当前可读数据大小
const char * data () const noexcept
 获取可读数据的原始指针
char * data () noexcept
 获取可写数据的原始指针
size_t capacity () const noexcept
 内部缓冲区容量
size_t max_size () const noexcept
 最大允许大小

详细描述

自适应扩容的动态缓冲区

适用于异步读取场景:prepare() 获取可写区域,commit() 标记已填充, consume() 移除已处理数据。内部自动扩容。

使用示例:

sock.async_read(ctx, buf.prepare(1024), [&](error_code ec, size_t n) {
buf.commit(n);
process(buf.data(), buf.size());
buf.consume(processed);
});
自适应扩容的动态缓冲区
mutable_buffers prepare(size_t n)
准备写入区域
注解
prepare/commit/consume 操作不保证线程安全,调用者负责同步。

在文件 buffer.hpp228 行定义.

成员函数说明

◆ capacity()

size_t neforce::dynamic_buffer::capacity ( ) const
inlinenodiscardnoexcept

内部缓冲区容量

返回
已分配的字节数

在文件 buffer.hpp301 行定义.

◆ commit()

void neforce::dynamic_buffer::commit ( size_t n)
inline

标记已写入的字节数

参数
n已写入的字节数

将 write_pos_ 前移 n 字节,使已写入数据可通过 data()/size() 访问。 必须在 prepare() 返回的缓冲区被填充后调用。

注解
commit 在 prepare 之后调用,通常由 I/O 完成回调触发。

在文件 buffer.hpp260 行定义.

被这些函数引用 neforce::async_stream::async_read().

◆ consume()

void neforce::dynamic_buffer::consume ( size_t n)
inline

移除已消费的数据

参数
n已消费的字节数

将剩余未消费的数据移到缓冲区开头,释放已消费的空间供后续写入。 通常在处理完部分数据后调用。

在文件 buffer.hpp269 行定义.

引用了 neforce::memory_move().

◆ data() [1/2]

const char * neforce::dynamic_buffer::data ( ) const
inlinenodiscardnoexcept

获取可读数据的原始指针

返回
可读数据起始指针

在文件 buffer.hpp289 行定义.

◆ data() [2/2]

char * neforce::dynamic_buffer::data ( )
inlinenodiscardnoexcept

获取可写数据的原始指针

返回
可写数据起始指针

在文件 buffer.hpp295 行定义.

◆ max_size()

size_t neforce::dynamic_buffer::max_size ( ) const
inlinenodiscardnoexcept

最大允许大小

返回
最大容量

在文件 buffer.hpp307 行定义.

引用了 neforce::numeric_traits< T, Dummy >::max().

◆ prepare()

mutable_buffers neforce::dynamic_buffer::prepare ( size_t n)
inline

准备写入区域

参数
n至少需要的字节数
返回
可写的缓冲区序列

保证返回的缓冲区至少 n 字节可用。若内部空间不足则自动扩容。 返回的 mutable_buffers 指向内部存储,在下次 prepare 或对象析构前有效。

注解
多次 prepare 不重叠——每次 prepare 返回的缓冲区基于当前 write_pos_。

在文件 buffer.hpp244 行定义.

被这些函数引用 neforce::async_stream::async_read().

◆ size()

size_t neforce::dynamic_buffer::size ( ) const
inlinenodiscardnoexcept

当前可读数据大小

返回
已写入但未消费的字节数

在文件 buffer.hpp283 行定义.


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