315 lines
7.1 KiB
C++
315 lines
7.1 KiB
C++
|
void MdApi::OnFrontConnected()
|
||
|
{
|
||
|
Task task = Task();
|
||
|
task.task_name = ONFRONTCONNECTED;
|
||
|
this->task_queue.push(task);
|
||
|
};
|
||
|
|
||
|
void MdApi::OnFrontDisconnected(int nReason)
|
||
|
{
|
||
|
Task task = Task();
|
||
|
task.task_name = ONFRONTDISCONNECTED;
|
||
|
task.task_id = nReason;
|
||
|
this->task_queue.push(task);
|
||
|
};
|
||
|
|
||
|
void MdApi::OnHeartBeatWarning(int nTimeLapse)
|
||
|
{
|
||
|
Task task = Task();
|
||
|
task.task_name = ONHEARTBEATWARNING;
|
||
|
task.task_id = nTimeLapse;
|
||
|
this->task_queue.push(task);
|
||
|
};
|
||
|
|
||
|
void MdApi::OnPackageStart(int nTopicID, int nSequenceNo)
|
||
|
{
|
||
|
Task task = Task();
|
||
|
task.task_name = ONPACKAGESTART;
|
||
|
task.task_id = nTopicID;
|
||
|
task.task_id = nSequenceNo;
|
||
|
this->task_queue.push(task);
|
||
|
};
|
||
|
|
||
|
void MdApi::OnPackageEnd(int nTopicID, int nSequenceNo)
|
||
|
{
|
||
|
Task task = Task();
|
||
|
task.task_name = ONPACKAGEEND;
|
||
|
task.task_id = nTopicID;
|
||
|
task.task_id = nSequenceNo;
|
||
|
this->task_queue.push(task);
|
||
|
};
|
||
|
|
||
|
void MdApi::OnRspError(CQdpFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
|
||
|
{
|
||
|
Task task = Task();
|
||
|
task.task_name = ONRSPERROR;
|
||
|
|
||
|
if (pRspInfo)
|
||
|
{
|
||
|
task.task_error = *pRspInfo;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
CQdpFtdcRspInfoField empty_error = CQdpFtdcRspInfoField();
|
||
|
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::OnRspUserLogin(CQdpFtdcRspUserLoginField *pRspUserLogin, CQdpFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
|
||
|
{
|
||
|
Task task = Task();
|
||
|
task.task_name = ONRSPUSERLOGIN;
|
||
|
|
||
|
if (pRspUserLogin)
|
||
|
{
|
||
|
task.task_data = *pRspUserLogin;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
CQdpFtdcRspUserLoginField empty_data = CQdpFtdcRspUserLoginField();
|
||
|
memset(&empty_data, 0, sizeof(empty_data));
|
||
|
task.task_data = empty_data;
|
||
|
}
|
||
|
|
||
|
if (pRspInfo)
|
||
|
{
|
||
|
task.task_error = *pRspInfo;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
CQdpFtdcRspInfoField empty_error = CQdpFtdcRspInfoField();
|
||
|
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(CQdpFtdcRspUserLogoutField *pRspUserLogout, CQdpFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
|
||
|
{
|
||
|
Task task = Task();
|
||
|
task.task_name = ONRSPUSERLOGOUT;
|
||
|
|
||
|
if (pRspUserLogout)
|
||
|
{
|
||
|
task.task_data = *pRspUserLogout;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
CQdpFtdcRspUserLogoutField empty_data = CQdpFtdcRspUserLogoutField();
|
||
|
memset(&empty_data, 0, sizeof(empty_data));
|
||
|
task.task_data = empty_data;
|
||
|
}
|
||
|
|
||
|
if (pRspInfo)
|
||
|
{
|
||
|
task.task_error = *pRspInfo;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
CQdpFtdcRspInfoField empty_error = CQdpFtdcRspInfoField();
|
||
|
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::OnRtnQmdInstrumentStatu(CQdpFtdcQmdInstrumentStateField *pQmdInstrumentState)
|
||
|
{
|
||
|
Task task = Task();
|
||
|
task.task_name = ONRTNQMDINSTRUMENTSTATU;
|
||
|
|
||
|
if (pQmdInstrumentState)
|
||
|
{
|
||
|
task.task_data = *pQmdInstrumentState;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
CQdpFtdcQmdInstrumentStateField empty_data = CQdpFtdcQmdInstrumentStateField();
|
||
|
memset(&empty_data, 0, sizeof(empty_data));
|
||
|
task.task_data = empty_data;
|
||
|
}
|
||
|
this->task_queue.push(task);
|
||
|
};
|
||
|
|
||
|
void MdApi::OnRspSubscribeTopic(CQdpFtdcDisseminationField *pDissemination, CQdpFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
|
||
|
{
|
||
|
Task task = Task();
|
||
|
task.task_name = ONRSPSUBSCRIBETOPIC;
|
||
|
|
||
|
if (pDissemination)
|
||
|
{
|
||
|
task.task_data = *pDissemination;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
CQdpFtdcDisseminationField empty_data = CQdpFtdcDisseminationField();
|
||
|
memset(&empty_data, 0, sizeof(empty_data));
|
||
|
task.task_data = empty_data;
|
||
|
}
|
||
|
|
||
|
if (pRspInfo)
|
||
|
{
|
||
|
task.task_error = *pRspInfo;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
CQdpFtdcRspInfoField empty_error = CQdpFtdcRspInfoField();
|
||
|
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::OnRspQryTopic(CQdpFtdcDisseminationField *pDissemination, CQdpFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
|
||
|
{
|
||
|
Task task = Task();
|
||
|
task.task_name = ONRSPQRYTOPIC;
|
||
|
|
||
|
if (pDissemination)
|
||
|
{
|
||
|
task.task_data = *pDissemination;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
CQdpFtdcDisseminationField empty_data = CQdpFtdcDisseminationField();
|
||
|
memset(&empty_data, 0, sizeof(empty_data));
|
||
|
task.task_data = empty_data;
|
||
|
}
|
||
|
|
||
|
if (pRspInfo)
|
||
|
{
|
||
|
task.task_error = *pRspInfo;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
CQdpFtdcRspInfoField empty_error = CQdpFtdcRspInfoField();
|
||
|
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(CQdpFtdcDepthMarketDataField *pDepthMarketData)
|
||
|
{
|
||
|
Task task = Task();
|
||
|
task.task_name = ONRTNDEPTHMARKETDATA;
|
||
|
|
||
|
if (pDepthMarketData)
|
||
|
{
|
||
|
task.task_data = *pDepthMarketData;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
CQdpFtdcDepthMarketDataField empty_data = CQdpFtdcDepthMarketDataField();
|
||
|
memset(&empty_data, 0, sizeof(empty_data));
|
||
|
task.task_data = empty_data;
|
||
|
}
|
||
|
this->task_queue.push(task);
|
||
|
};
|
||
|
|
||
|
void MdApi::OnRspSubMarketData(CQdpFtdcSpecificInstrumentField *pSpecificInstrument, CQdpFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
|
||
|
{
|
||
|
Task task = Task();
|
||
|
task.task_name = ONRSPSUBMARKETDATA;
|
||
|
|
||
|
if (pSpecificInstrument)
|
||
|
{
|
||
|
task.task_data = *pSpecificInstrument;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
CQdpFtdcSpecificInstrumentField empty_data = CQdpFtdcSpecificInstrumentField();
|
||
|
memset(&empty_data, 0, sizeof(empty_data));
|
||
|
task.task_data = empty_data;
|
||
|
}
|
||
|
|
||
|
if (pRspInfo)
|
||
|
{
|
||
|
task.task_error = *pRspInfo;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
CQdpFtdcRspInfoField empty_error = CQdpFtdcRspInfoField();
|
||
|
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::OnRspUnSubMarketData(CQdpFtdcSpecificInstrumentField *pSpecificInstrument, CQdpFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
|
||
|
{
|
||
|
Task task = Task();
|
||
|
task.task_name = ONRSPUNSUBMARKETDATA;
|
||
|
|
||
|
if (pSpecificInstrument)
|
||
|
{
|
||
|
task.task_data = *pSpecificInstrument;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
CQdpFtdcSpecificInstrumentField empty_data = CQdpFtdcSpecificInstrumentField();
|
||
|
memset(&empty_data, 0, sizeof(empty_data));
|
||
|
task.task_data = empty_data;
|
||
|
}
|
||
|
|
||
|
if (pRspInfo)
|
||
|
{
|
||
|
task.task_error = *pRspInfo;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
CQdpFtdcRspInfoField empty_error = CQdpFtdcRspInfoField();
|
||
|
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::OnRspQryDepthMarketData(CQdpFtdcRspMarketDataField *pRspMarketData, CQdpFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
|
||
|
{
|
||
|
Task task = Task();
|
||
|
task.task_name = ONRSPQRYDEPTHMARKETDATA;
|
||
|
|
||
|
if (pRspMarketData)
|
||
|
{
|
||
|
task.task_data = *pRspMarketData;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
CQdpFtdcRspMarketDataField empty_data = CQdpFtdcRspMarketDataField();
|
||
|
memset(&empty_data, 0, sizeof(empty_data));
|
||
|
task.task_data = empty_data;
|
||
|
}
|
||
|
|
||
|
if (pRspInfo)
|
||
|
{
|
||
|
task.task_error = *pRspInfo;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
CQdpFtdcRspInfoField empty_error = CQdpFtdcRspInfoField();
|
||
|
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);
|
||
|
};
|
||
|
|