Operation 操作模型
本模块定义了通用的 Operation<Args...>
模板类,用于描述具有完成反馈机制的异步操作。支持回调(Callback)、阻塞(Block)、轮询(Polling)三种模式,适用于嵌入式 I/O 操作中的统一完成处理。
操作模式
OperationType
enum class OperationType : uint8_t {
CALLBACK, // 使用回调函数处理完成事件
BLOCK, // 使用信号量阻塞等待
POLLING, // 轮询标志位
NONE // 不处理完成
};
POLLING 状态枚举
enum class OperationPollingStatus : uint8_t {
READY,
RUNNING,
DONE
};
构造方式
// 默认构造:类型为 NONE
Operation();
// 构造阻塞操作
Operation(Semaphore &sem, uint32_t timeout = UINT32_MAX);
// 构造回调操作
Operation(Callback<Args...> &cb);
// 构造轮询操作
Operation(OperationPollingStatus &status);