Esempio n. 1
0
        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);
            }
        }
Esempio n. 2
0
 /***
  * 获取账户资金,具体字段请参考Trd_GetFunds.proto协议
  * @param req
  * @return 请求的序列号
  */
 public uint GetFunds(TrdGetFunds.Request req)
 {
     return(SendProto((uint)ProtoID.TrdGetFunds, req));
 }