Skip to main content

submit_global_desired_set

Function submit_global_desired_set 

Source
pub async fn submit_global_desired_set(
    backend: &BackendConn,
    securities: &[SecurityWithOpts],
) -> Result<i32, QotSubError>
Expand description

v1.4.106 codex 1131 F1+F2: 给 caller (SubHandler) 的 set-state 接口.

语义: 发送整组 desired (stock_id, ftapi_market, sub_type_with_opts) → backend 返 SubscribeSetRsp. backend “覆盖式” — 所有不在新集合中的旧订阅 自动取消 (per FTCmdStockQuoteSub.proto 设计 doc: “server会覆盖此客户端之前的订阅,并主动推送一次新增加的股票订阅位数据”).

F1 ack-then-commit: caller 必须仅在 Ok 后才写 SubscriptionManager state. Err 时 → 不写 state, 返用户 ret_type=-1 + 错误原因.

F2 unsub via fresh set: 退订通过传“new desired set 不含 removed key“ 实现, 不调单独 unsub backend cmd. SubHandler 计算 current global - removed 后调本 fn.

max_sub_count: 响应中 backend 下发的 quota — caller 应调 SubscriptionManager::set_total_quota_from_backend(max_sub_count as u32) 同步真值 (F5).

return 值: backend 下发的 max_sub_count (caller 据此 update SubscriptionManager 总配额 — F5 P2 dynamic quota).