public TrdGetFunds.Response GetFundsSync(ulong accID, TrdCommon.TrdMarket trdMarket, TrdCommon.TrdEnv trdEnv, bool isRefreshCache, TrdCommon.Currency currency) { ReqInfo reqInfo = null; Object syncEvent = new Object(); lock (syncEvent) { lock (trdLock) { if (trdConnStatus != ConnStatus.READY) { return(null); } TrdCommon.TrdHeader trdHeader = MakeTrdHeader(trdEnv, accID, trdMarket); TrdGetFunds.C2S c2s = TrdGetFunds.C2S.CreateBuilder() .SetHeader(trdHeader) .SetCurrency((int)currency) .SetRefreshCache(isRefreshCache) .Build(); TrdGetFunds.Request req = TrdGetFunds.Request.CreateBuilder().SetC2S(c2s).Build(); uint sn = trd.GetFunds(req); if (sn == 0) { return(null); } reqInfo = new ReqInfo(ProtoID.TrdGetFunds, syncEvent); trdReqInfoMap.Add(sn, reqInfo); } Monitor.Wait(syncEvent); return((TrdGetFunds.Response)reqInfo.Rsp); } }
/*** * 获取账户资金,具体字段请参考Trd_GetFunds.proto协议 * @param req * @return 请求的序列号 */ public uint GetFunds(TrdGetFunds.Request req) { return(SendProto((uint)ProtoID.TrdGetFunds, req)); }