| RMVL 2.4.0 Robotic Manipulation and Vision Library

载入中...
搜索中...
未找到
Public 成员函数 | 友元 | 所有成员列表
rm::async::IOContext类 参考
数据 IO 与通信模块

异步 I/O 执行上下文，负责管理 IO 事件循环和协程任务的调度 更多...

`#include <rmvl/io/async.hpp>`

rm::async::IOContext 的协作图:

## Public 成员函数
| IOContext ()
| 创建异步 I/O 执行上下文，初始化以异步 I/O 为核心的调度器
| ~IOContext ()
template<typename Callable, typename... Args> requires InvokableTask<Callable, Args...>
void | spawn (Callable &&fn, Args &&...args)
| 生成 Task<> 协程任务，并添加到调度器
FileDescriptor | handle () const noexcept
| 获取异步 I/O 句柄
void | run ()
| 启用事件循环
void | stop () noexcept
| 停止事件循环
bool | running () const noexcept
| 获取运行状态

## 友元
class | AsyncIOAwaiter

## 详细描述

异步 I/O 执行上下文，负责管理 IO 事件循环和协程任务的调度

## 构造及析构函数说明

## ◆ IOContext()

rm::async::IOContext::IOContext | ( |  | ) |

创建异步 I/O 执行上下文，初始化以异步 I/O 为核心的调度器

函数调用图:

## ◆ ~IOContext()

rm::async::IOContext::~IOContext | ( |  | ) |

函数调用图:

## 成员函数说明

## ◆ handle()

FileDescriptor rm::async::IOContext::handle | ( |  | ) | const
| inline noexcept

获取异步 I/O 句柄

## ◆ run()

void rm::async::IOContext::run | ( |  | ) |

启用事件循环

## ◆ running()

bool rm::async::IOContext::running | ( |  | ) | const
| inline noexcept

获取运行状态

函数调用图:

## ◆ spawn()

template<typename Callable, typename... Args>
requires InvokableTask<Callable, Args...>

void rm::async::IOContext::spawn | ( | Callable && | fn,
|  | Args &&... | args )
| inline

生成 Task<> 协程任务，并添加到调度器

参数

  [in] | fn | 协程函数
  [in] | args | 协程函数参数

注解
  - fn 必须是一个返回 Task<Tp> 的协程函数
  - 带捕获列表的 lambda 也可以作为 fn，但极易引起悬垂引用的未定义行为

函数调用图:

## ◆ stop()

void rm::async::IOContext::stop | ( |  | ) |
| noexcept

停止事件循环

## 友元及相关符号说明

## ◆ AsyncIOAwaiter

friend class AsyncIOAwaiter
| friend