void MdApi::processFrontConnected(Task task) { PyLock lock; this->onFrontConnected(); }; void MdApi::processFrontDisconnected(Task task) { PyLock lock; this->onFrontDisconnected(task.task_id); }; void MdApi::processHeartBeatWarning(Task task) { PyLock lock; this->onHeartBeatWarning(task.task_id); }; void MdApi::processRspUserLogin(Task task) { PyLock lock; CThostFtdcRspUserLoginField task_data = any_cast(task.task_data); dict data; data["CZCETime"] = task_data.CZCETime; data["SHFETime"] = task_data.SHFETime; data["MaxOrderRef"] = task_data.MaxOrderRef; data["INETime"] = task_data.INETime; data["UserID"] = task_data.UserID; data["TradingDay"] = task_data.TradingDay; data["SessionID"] = task_data.SessionID; data["SystemName"] = task_data.SystemName; data["FrontID"] = task_data.FrontID; data["FFEXTime"] = task_data.FFEXTime; data["BrokerID"] = task_data.BrokerID; data["DCETime"] = task_data.DCETime; data["LoginTime"] = task_data.LoginTime; CThostFtdcRspInfoField task_error = any_cast(task.task_error); dict error; error["ErrorMsg"] = task_error.ErrorMsg; error["ErrorID"] = task_error.ErrorID; this->onRspUserLogin(data, error, task.task_id, task.task_last); }; void MdApi::processRspUserLogout(Task task) { PyLock lock; CThostFtdcUserLogoutField task_data = any_cast(task.task_data); dict data; data["UserID"] = task_data.UserID; data["BrokerID"] = task_data.BrokerID; CThostFtdcRspInfoField task_error = any_cast(task.task_error); dict error; error["ErrorMsg"] = task_error.ErrorMsg; error["ErrorID"] = task_error.ErrorID; this->onRspUserLogout(data, error, task.task_id, task.task_last); }; void MdApi::processRspError(Task task) { PyLock lock; CThostFtdcRspInfoField task_error = any_cast(task.task_error); dict error; error["ErrorMsg"] = task_error.ErrorMsg; error["ErrorID"] = task_error.ErrorID; this->onRspError(error, task.task_id, task.task_last); }; void MdApi::processRspSubMarketData(Task task) { PyLock lock; CThostFtdcSpecificInstrumentField task_data = any_cast(task.task_data); dict data; data["InstrumentID"] = task_data.InstrumentID; CThostFtdcRspInfoField task_error = any_cast(task.task_error); dict error; error["ErrorMsg"] = task_error.ErrorMsg; error["ErrorID"] = task_error.ErrorID; this->onRspSubMarketData(data, error, task.task_id, task.task_last); }; void MdApi::processRspUnSubMarketData(Task task) { PyLock lock; CThostFtdcSpecificInstrumentField task_data = any_cast(task.task_data); dict data; data["InstrumentID"] = task_data.InstrumentID; CThostFtdcRspInfoField task_error = any_cast(task.task_error); dict error; error["ErrorMsg"] = task_error.ErrorMsg; error["ErrorID"] = task_error.ErrorID; this->onRspUnSubMarketData(data, error, task.task_id, task.task_last); }; void MdApi::processRspSubForQuoteRsp(Task task) { PyLock lock; CThostFtdcSpecificInstrumentField task_data = any_cast(task.task_data); dict data; data["InstrumentID"] = task_data.InstrumentID; CThostFtdcRspInfoField task_error = any_cast(task.task_error); dict error; error["ErrorMsg"] = task_error.ErrorMsg; error["ErrorID"] = task_error.ErrorID; this->onRspSubForQuoteRsp(data, error, task.task_id, task.task_last); }; void MdApi::processRspUnSubForQuoteRsp(Task task) { PyLock lock; CThostFtdcSpecificInstrumentField task_data = any_cast(task.task_data); dict data; data["InstrumentID"] = task_data.InstrumentID; CThostFtdcRspInfoField task_error = any_cast(task.task_error); dict error; error["ErrorMsg"] = task_error.ErrorMsg; error["ErrorID"] = task_error.ErrorID; this->onRspUnSubForQuoteRsp(data, error, task.task_id, task.task_last); }; void MdApi::processRtnDepthMarketData(Task task) { PyLock lock; CThostFtdcDepthMarketDataField task_data = any_cast(task.task_data); dict data; data["HighestPrice"] = task_data.HighestPrice; data["BidPrice5"] = task_data.BidPrice5; data["BidPrice4"] = task_data.BidPrice4; data["BidPrice1"] = task_data.BidPrice1; data["BidPrice3"] = task_data.BidPrice3; data["BidPrice2"] = task_data.BidPrice2; data["LowerLimitPrice"] = task_data.LowerLimitPrice; data["OpenPrice"] = task_data.OpenPrice; data["AskPrice5"] = task_data.AskPrice5; data["AskPrice4"] = task_data.AskPrice4; data["AskPrice3"] = task_data.AskPrice3; data["PreClosePrice"] = task_data.PreClosePrice; data["AskPrice1"] = task_data.AskPrice1; data["PreSettlementPrice"] = task_data.PreSettlementPrice; data["AskVolume1"] = task_data.AskVolume1; data["UpdateTime"] = task_data.UpdateTime; data["UpdateMillisec"] = task_data.UpdateMillisec; data["AveragePrice"] = task_data.AveragePrice; data["BidVolume5"] = task_data.BidVolume5; data["BidVolume4"] = task_data.BidVolume4; data["BidVolume3"] = task_data.BidVolume3; data["BidVolume2"] = task_data.BidVolume2; data["PreOpenInterest"] = task_data.PreOpenInterest; data["AskPrice2"] = task_data.AskPrice2; data["Volume"] = task_data.Volume; data["AskVolume3"] = task_data.AskVolume3; data["AskVolume2"] = task_data.AskVolume2; data["AskVolume5"] = task_data.AskVolume5; data["AskVolume4"] = task_data.AskVolume4; data["UpperLimitPrice"] = task_data.UpperLimitPrice; data["BidVolume1"] = task_data.BidVolume1; data["InstrumentID"] = task_data.InstrumentID; data["ClosePrice"] = task_data.ClosePrice; data["ExchangeID"] = task_data.ExchangeID; data["TradingDay"] = task_data.TradingDay; data["PreDelta"] = task_data.PreDelta; data["OpenInterest"] = task_data.OpenInterest; data["CurrDelta"] = task_data.CurrDelta; data["Turnover"] = task_data.Turnover; data["LastPrice"] = task_data.LastPrice; data["SettlementPrice"] = task_data.SettlementPrice; data["ExchangeInstID"] = task_data.ExchangeInstID; data["LowestPrice"] = task_data.LowestPrice; data["ActionDay"] = task_data.ActionDay; this->onRtnDepthMarketData(data); }; void MdApi::processRtnForQuoteRsp(Task task) { PyLock lock; CThostFtdcForQuoteRspField task_data = any_cast(task.task_data); dict data; data["InstrumentID"] = task_data.InstrumentID; data["ActionDay"] = task_data.ActionDay; data["ExchangeID"] = task_data.ExchangeID; data["TradingDay"] = task_data.TradingDay; data["ForQuoteSysID"] = task_data.ForQuoteSysID; data["ForQuoteTime"] = task_data.ForQuoteTime; this->onRtnForQuoteRsp(data); };