|
NexusForce 1.0.0
A Modern C++ Library with extended functionality, web components, and utility libraries
|
文件异步I/O管理类 更多...
#include <file_async.hpp>
类 | |
| struct | async_result |
| 异步操作结果句柄 更多... | |
Public 类型 | |
| using | size_type = size_t |
| 大小类型 | |
| using | difference_type = ::off_t |
| 偏移量类型 | |
| using | aiocb_type = ::aiocb |
| 异步I/O控制块类型 | |
| using | native_handle_type = _NEFORCE native_handle_type |
| 原生文件句柄类型 | |
Public 成员函数 | |
| file_async (native_handle_type handle) | |
| 构造函数 | |
| ~file_async () | |
| 析构函数 | |
| file_async (file_async &&other) noexcept | |
| 移动构造函数 | |
| file_async & | operator= (file_async &&other) noexcept |
| 移动赋值运算符 | |
| async_result | read (string &buffer, size_type size, difference_type offset=-1) const |
| 提交异步读取操作 | |
| async_result | write (string data, size_type size, difference_type offset=-1) |
| 提交异步写入操作 | |
| bool | wait (async_result &result, uint32_t timeout_ms=numeric_traits< uint32_t >::max()) |
| 等待异步操作完成 | |
| void | cancel (async_result &result) noexcept |
| 取消异步操作 | |
文件异步I/O管理类
提供对文件句柄的异步读写操作:
在文件 file_async.hpp 第 41 行定义.
|
explicit |
构造函数
| handle | 已打开的文件句柄 |
关联指定的文件句柄。
引用了 handle().
被这些函数引用 file_async(), operator=() , 以及 ~file_async().
| file_async::~file_async | ( | ) |
|
noexcept |
|
noexcept |
取消异步操作
| result | 异步操作结果句柄 |
尝试取消进行中的异步操作。取消成功后,操作状态会被标记为已完成, error_code会被设置为取消错误码。
|
noexcept |
| async_result file_async::read | ( | string & | buffer, |
| size_type | size, | ||
| difference_type | offset = -1 ) const |
提交异步读取操作
| buffer | 输出缓冲区(会预先分配空间) |
| size | 要读取的字节数 |
| offset | 文件偏移量,-1表示使用当前文件位置 |
从文件读取数据到指定缓冲区。如果size为0,立即返回已完成的结果。 如果offset为-1,使用当前文件指针位置;否则从指定偏移量读取。
引用了 size().
| bool file_async::wait | ( | async_result & | result, |
| uint32_t | timeout_ms = numeric_traits< uint32_t >::max() ) |
等待异步操作完成
| result | 异步操作结果句柄 |
| timeout_ms | 超时时间(毫秒),最大值表示无限等待 |
阻塞当前线程直到异步操作完成或超时。 如果操作已完成,立即返回。
| async_result file_async::write | ( | string | data, |
| size_type | size, | ||
| difference_type | offset = -1 ) |