[TOC]
一、核心依赖结构
1
2
3
4
5
6
7
8
|
graph TD
A[co模块] --> B[Boost.Asio]
A --> C[STDEXEC/UNIFEX]
A --> D[框架执行器]
C --> E[并发TS]
D --> F[线程池]
D --> G[定时器]
A --> H[异常处理]
|
二、详细依赖说明
1. 核心库依赖
1
2
3
4
5
6
7
8
9
10
|
// 异步操作基础(必选)
#include <boost/asio/dispatch.hpp> // 跨线程调度
#include <boost/asio/steady_timer.hpp> // 定时器支持
// 协程后端二选一
#ifdef AIMRT_EXECUTOR_USE_STDEXEC
#include <stdexec/execution.hpp> // C++标准执行库
#else
#include <unifex/scheduler_concepts.hpp> // 通用协程库
#endif
|
2. 内部模块依赖
executor
1
2
3
4
|
依赖框架核心模块:
src/runtime/core/executor/ 执行器实现
src/common/util/logger_wrapper.h 日志系统
src/common/net/ 网络基础组件
|
3. 工具类依赖
function.h
1
2
3
|
// 函数包装器
#include "util/function.h" // 通用函数包装
#include "util/type_traits.h" // 类型特征检测
|
三、条件编译说明
在 task.h 中:
1
2
3
4
5
|
#ifdef AIMRT_EXECUTOR_USE_STDEXEC
#include <exec/task.hpp> // 标准执行任务
#else
#include <unifex/task.hpp> // 跨平台协程任务
#endif
|
通过编译开关 AIMRT_EXECUTOR_USE_STDEXEC 控制协程后端选择
四、外部文档依赖
coroutine.md
1
2
3
4
|
文档依赖项:
- 协程TS规范文档
- Boost.Asio异步模型
- 执行器设计模式说明
|
需要了解如何配置不同的协程后端(STDEXEC/UNIFEX)的具体编译参数吗?