RMVL  2.4.0-dev
Robotic Manipulation and Vision Library
载入中...
搜索中...
未找到
rm::async::AsyncReadAwaiter类 参考

通用异步读等待器,核心操作使用文件 I/O 系统调用的 readReadFile,使用者可以通过 更多...

#include <rmvl/io/async.hpp>

类 rm::async::AsyncReadAwaiter 继承关系图:
rm::async::AsyncReadAwaiter 的协作图:

Public 成员函数

 AsyncReadAwaiter (IOContext &ctx, FileDescriptor fd)
 创建异步读等待器
Public 成员函数 继承自 rm::async::AsyncIOAwaiter
 AsyncIOAwaiter (IOContext &context, FileDescriptor fd)
 创建异步 IO 等待器

额外继承的成员函数

Protected 属性 继承自 rm::async::AsyncIOAwaiter
FileDescriptor _aioh {INVALID_FD}
 异步 I/O 文件描述符(Windows 下为 IOCP,Linux 下为 epoll)
FileDescriptor _fd {INVALID_FD}
 文件句柄

详细描述

通用异步读等待器,核心操作使用文件 I/O 系统调用的 readReadFile,使用者可以通过

  • 继承该类并选择性的实现 await_suspend 以及 await_resume 方法
  • 直接使用该类 来实现自己的异步读等待器
// 使用示例
class Socket {
public:
Socket(IOContext &io_context, FileDescriptor fd) : _ctx(io_context), _fd(fd) {}
AsyncReadAwaiter read() { return {_ctx, _fd}; }
// 其他成员函数...
private:
IOContext &_ctx;
FileDescriptor _fd{INVALID_FD};
};
// 在协程中使用异步读等待器
Task<> session(Socket &s) {
auto data = co_await s.read();
// 处理读取到的数据...
}
FileDescriptor _fd
文件句柄
定义 async.hpp:302
通用异步读等待器,核心操作使用文件 I/O 系统调用的 read、ReadFile,使用者可以通过
定义 async.hpp:334
异步 I/O 执行上下文,负责管理 IO 事件循环和协程任务的调度
定义 async.hpp:177
int FileDescriptor
文件描述符类型定义
定义 async.hpp:43

构造及析构函数说明

◆ AsyncReadAwaiter()

rm::async::AsyncReadAwaiter::AsyncReadAwaiter ( IOContext & ctx,
FileDescriptor fd )
inline

创建异步读等待器

参数
[in]ctx异步 I/O 执行上下文
[in]fd需要监听的文件描述符(文件句柄)
函数调用图:

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