void MdApi::OnFrontConnected() { Task task = Task(); task.task_name = ONFRONTCONNECTED; this->task_queue.push(task); }; void MdApi::OnFrontDisconnected(char *pErrMsg) { Task task = Task(); task.task_name = ONFRONTDISCONNECTED; if (pErrMsg{}; ) { task.task_data = *pErrMsg{}; ; } else { char empty_data = char(); memset(&empty_data, 0, sizeof(empty_data)); task.task_data = empty_data; } this->task_queue.push(task); }; void MdApi::OnRspUserLogin(CSgitFtdcRspUserLoginField *pRspUserLogin, CSgitFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) { Task task = Task(); task.task_name = ONRSPUSERLOGIN; if (pRspUserLogin) { task.task_data = *pRspUserLogin; } else { CSgitFtdcRspUserLoginField empty_data = CSgitFtdcRspUserLoginField(); memset(&empty_data, 0, sizeof(empty_data)); task.task_data = empty_data; } if (pRspInfo) { task.task_error = *pRspInfo; } else { CSgitFtdcRspInfoField empty_error = CSgitFtdcRspInfoField(); memset(&empty_error, 0, sizeof(empty_error)); task.task_error = empty_error; } task.task_id = nRequestID; task.task_last = bIsLast; this->task_queue.push(task); }; void MdApi::OnRspUserLogout(CSgitFtdcUserLogoutField *pUserLogout, CSgitFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) { Task task = Task(); task.task_name = ONRSPUSERLOGOUT; if (pUserLogout) { task.task_data = *pUserLogout; } else { CSgitFtdcUserLogoutField empty_data = CSgitFtdcUserLogoutField(); memset(&empty_data, 0, sizeof(empty_data)); task.task_data = empty_data; } if (pRspInfo) { task.task_error = *pRspInfo; } else { CSgitFtdcRspInfoField empty_error = CSgitFtdcRspInfoField(); memset(&empty_error, 0, sizeof(empty_error)); task.task_error = empty_error; } task.task_id = nRequestID; task.task_last = bIsLast; this->task_queue.push(task); }; void MdApi::OnRtnDepthMarketData(CSgitFtdcDepthMarketDataField *pDepthMarketData) { Task task = Task(); task.task_name = ONRTNDEPTHMARKETDATA; if (pDepthMarketData) { task.task_data = *pDepthMarketData; } else { CSgitFtdcDepthMarketDataField empty_data = CSgitFtdcDepthMarketDataField(); memset(&empty_data, 0, sizeof(empty_data)); task.task_data = empty_data; } this->task_queue.push(task); };