docs(riir): design inter-module C ABI interfaces and split out oakstorage
- riir.md: split project file read/write into standalone oakstorage module (pluggable backend, DB-replaceable); add Mermaid data flow diagram of all modules; adjust batch table and milestones - riir/04-interfaces.md: new provides/consumes contract matrix for all modules - riir/M10-oakstorage.md: new manual with frozen C API (typed opaque handles, manual vtable for storage backends, URI addressing) - riir/01: codify pure-C OO interface rules (typed handles instead of void*, init/free pairs, manual vtables, no C++ objects or member calls across shared library boundaries); upper layers issue commands only, no module-to-module event subscriptions (async task callbacks excepted) - sync 00/02/03 and M2-M9 manuals: remove subscribe APIs, replace void* with typed handles, update tests accordingly
This commit is contained in:
@@ -29,8 +29,10 @@
|
||||
4. **枚举序数一致性**:C 侧 POD/枚举与 C++ 侧枚举的映射(01 §3 表)
|
||||
每个映射 1 个 TEST(如 `oakundo` 的 movement mode 0-3 ⇄
|
||||
`Timeline::MovementMode`)。
|
||||
5. **事件/回调**:每个 `set_*_cb`/subscribe 至少 1 个 TEST:触发后
|
||||
断言回调被调、payload 正确;反注册后断言不再被调。
|
||||
5. **回调(仅异步任务)**:模块间 C ABI 无 subscribe 类接口(04 §3);
|
||||
仅异步命令(任务/渲染 ticket)的进度/完成回调需要测试:触发后
|
||||
断言回调被调、payload 正确、FINISHED 后自动失效。同步命令的测试
|
||||
改为"调用后直接读状态断言生效"。
|
||||
6. **所有权**:borrowed 句柄(文档注释标了 `/* borrowed */` 的)
|
||||
free 后原对象仍存活,1 个 TEST。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user