Expand description
列表型行情 input 契约 helper(v1.4.106 codex 0641 整体重构落点)。
目的:把 “QOT 列表型 handler 在空列表 / 非法 symbol / unresolved cache miss 三种场景下整体 reject” 的逻辑集中到一个地方,避免 4-5 个 handler 各自 用不同 silent-fallback / partial-success 策略(pitfall #45 silent-success anti-pattern + pitfall #31 cache-read silent empty)。
三原则(codex 0641 audit):
- default ON 严格语义 — 空列表 / 任一非法 symbol / 任一 unresolved → 整体 reject(不 partial / 不 silent / 不 fallback)
- 整体重构 —
ParsedSymbolList+parse_required_symbol_list+resolve_required_stock_ids三件套 - 保留 caller-side 真机 verify
适用 handler 清单(v1.4.106 起):
Qot_GetMarketState(CMD 3223)Qot_GetFutureInfo(CMD 3218)Qot_GetSuspend(CMD 3219)Qot_GetOwnerPlate(CMD 3207)- 任何后续接受
security_list: Vec<Security>的 handler
C++ 对照:APIServer_Qot_*::OnClientReq_* 在 backend 侧对每个 sec_market /
code 做基本 sanity check(market 必须在已知枚举内、code 不为空),返
kAPIErrCode_ParamErr(不是 partial-success),与本 module 行为一致。
Structs§
- Parsed
Symbol List - 已通过基本契约校验的 security 列表 — 至少 1 项,且每项 market / code 都非空。
Functions§
- parse_
required_ symbol_ list - 校验列表型 input 必须非空 + 每个元素的 market / code 都基本合法。
- resolve_
required_ stock_ ids - 把已校验的列表整体解析到 (Security, stock_id) tuple 列表。