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

异步 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
inlinenoexcept

获取异步 I/O 句柄

◆ run()

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

启用事件循环

◆ running()

bool rm::async::IOContext::running ( ) const
inlinenoexcept

获取运行状态

函数调用图:

◆ 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

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