简介
asio中的buffer只是内存的搬动工,不负责分配和释放内存。
结构
buffer分为可变和不可变缓存,分别为mutable_buffer和const_buffer,可变缓存序列和不可变缓存序列分别为mutable_buffers_1和const_buffers_1
buffer函数
是函数模板,支持的类型有
- mutable_buffer
- const_buffer
- void*
- const void*
- 普通类型数组
- array数组类
- vector
- basic_string
buffer辅助函数
获取缓存的地址以及大小
void* buffer_cast_helper(const mutable_buffer&);
const void* buffer_cast_helper(const const_buffer&);
std::size_t buffer_size_helper(const mutable_buffer&);
std::size_t buffer_size_helper(const const_buffer&);
buffer适配器
适配底层不同平台的套接字读取到缓存结构中
window平台下native_buffer_type表示WSABUF,linux平台下native_buffer_type表示iovec
buffer_sequence_adapter私有继承buffer_sequence_adapter_base