tiny_orch.h 概览
tiny_orch.h 是 TinyOrch 的统一入口头文件,依赖 tiny_bench.h。
核心数据结构
步骤 tiny_orch_step_t
typedef struct {
char src_name[TINY_ORCH_NAME_LEN]; // 源数据槽名
char tool_name[TINY_ORCH_NAME_LEN]; // 工具名
char dst_name[TINY_ORCH_NAME_LEN]; // 目标数据槽名
bool used;
} tiny_orch_step_t;
流程 tiny_orch_flow_t
typedef struct {
char name[TINY_ORCH_NAME_LEN];
tiny_orch_state_t state; // 当前状态
tiny_orch_step_t steps[TINY_ORCH_MAX_STEPS_PER_FLOW];
int step_count;
int last_executed; // 上次执行完成的步数
bool used;
} tiny_orch_flow_t;
编排器 tiny_orch_t
typedef struct {
tiny_bench_t *bench; // 外部 bench 引用
tiny_orch_flow_t flows[TINY_ORCH_MAX_FLOWS];
} tiny_orch_t;
流程状态机
CREATED ──(add step)──→ DEFINED ──(go)──→ RUNNING ──(完成)──→ DONE
──(错误)──→ ERROR
──(destroy)──→ (已删除)
typedef enum {
TINY_ORCH_STATE_NONE = 0, // 未创建/已销毁
TINY_ORCH_STATE_DEFINED = 1, // 已创建,可添加步骤
TINY_ORCH_STATE_DONE = 2, // 上次执行成功完成
TINY_ORCH_STATE_ERROR = 3, // 上次执行出错
} tiny_orch_state_t;
API 速览
初始化
| 函数 | 作用 |
tiny_orch_init(orch, bench) | 初始化编排器,绑定 TinyBench |
流程定义
| 函数 | 作用 | 错误码 |
tiny_orch_create(orch, "flow") | 创建命名流程 | OK, FULL, EXISTS |
tiny_orch_step(orch, "flow", idx, src, tool, dst) | 添加/设置步骤 | OK, SRC_NOT_FOUND, TOOL_NOT_FOUND, TYPE_MISMATCH |
tiny_orch_step_count(orch, "flow") | 查询步骤数 | 返回数量或负错误码 |
tiny_orch_list_flows(orch, names, max) | 列出所有流程 | 返回数量 |
tiny_orch_destroy(orch, "flow") | 删除流程 | OK, NOT_FOUND |
执行
| 函数 | 作用 | 错误码 |
tiny_orch_go(orch, "flow") | 按序执行全部步骤 | OK 或执行错误 |
tiny_orch_run(orch, src, tool, dst) | 临时单步执行 | OK 或执行错误 |
状态查询
| 函数 | 作用 | 错误码 |
tiny_orch_status(orch, "flow", &state) | 查询流程状态 | OK, NOT_FOUND |
错误码
TINY_ORCH_OK = 0
TINY_ORCH_ERR_NULL = -1 // NULL 指针参数
TINY_ORCH_ERR_NOT_FOUND = -2 // 流程名不存在
TINY_ORCH_ERR_FULL = -3 // 已达最大流程数
TINY_ORCH_ERR_EXISTS = -4 // 流程名已存在
TINY_ORCH_ERR_NAME_LEN = -5 // 名称超长
TINY_ORCH_ERR_STEP_FULL = -6 // 步骤数超限
TINY_ORCH_ERR_SRC_NOT_FOUND = -7 // 源数据槽不存在
TINY_ORCH_ERR_TOOL_NOT_FOUND= -8 // 工具未注册
TINY_ORCH_ERR_TYPE_MISMATCH = -9 // src 类型 ≠ tool 输入类型
TINY_ORCH_ERR_EXEC_FAILED = -10 // 运行时执行失败
配置
| 宏 | 默认值 | 说明 |
TINY_ORCH_MAX_FLOWS | 4 | 最大命名流程数 |
TINY_ORCH_MAX_STEPS_PER_FLOW | 16 | 每流程最大步骤数 |
TINY_ORCH_NAME_LEN | 24 | 名称最大长度 |