forked from nonultimate/CTPSharp
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMdApi.cpp
98 lines (79 loc) · 2.67 KB
/
MdApi.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
// MdApi.cpp : 定义 DLL 应用程序的导出函数。
//
#include "stdafx.h"
#include "MdApi.h"
#include <iostream>
//#include <vector> //动态数组,支持赋值
using namespace std;
#include "..\api\amd64\ThostFtdcMdApi.h"
// 这是导出变量的一个示例
//MDAPI_API int nMdApi=0;
extern CBOnRspError cbOnRspError;
extern CBOnHeartBeatWarning cbOnHeartBeatWarning;
extern CBOnFrontConnected cbOnFrontConnected;
extern CBOnFrontDisconnected cbOnFrontDisconnected;
extern CBOnRspUserLogin cbOnRspUserLogin;
extern CBOnRspUserLogout cbOnRspUserLogout;
extern CBOnRspSubMarketData cbOnRspSubMarketData;
extern CBOnRspUnSubMarketData cbOnRspUnSubMarketData;
extern CBOnRtnDepthMarketData cbOnRtnDepthMarketData;
// 请求编号
//extern int iRequestID;
// 这是已导出类的构造函数。
// 有关类定义的信息,请参阅 MdApi.h
CMdSpi::CMdSpi()
{
return;
}
void CMdSpi::OnRspError(CThostFtdcRspInfoField *pRspInfo,int nRequestID, bool bIsLast)
{
if(cbOnRspError != NULL)
cbOnRspError(pRspInfo, nRequestID, bIsLast);
}
void CMdSpi::OnFrontDisconnected(int nReason)
{
//cerr << "--->>> " << __FUNCTION__ << endl;
//cerr << "--->>> Reason = " << nReason << endl;
if(cbOnFrontDisconnected!=NULL)
cbOnFrontDisconnected(nReason);
}
void CMdSpi::OnHeartBeatWarning(int nTimeLapse)
{
if(cbOnHeartBeatWarning != NULL)
cbOnHeartBeatWarning(nTimeLapse);
}
void CMdSpi::OnFrontConnected()
{
//cerr << "--->>> " << __FUNCTION__ << endl;
if(cbOnFrontConnected!=NULL)
cbOnFrontConnected();
}
void CMdSpi::OnRspUserLogin(CThostFtdcRspUserLoginField *pRspUserLogin,
CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
if(cbOnRspUserLogin!=NULL)
cbOnRspUserLogin(pRspUserLogin,pRspInfo,nRequestID,bIsLast);
}
void CMdSpi::OnRspUserLogout(CThostFtdcUserLogoutField *pUserLogout, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
if(cbOnRspUserLogout!=NULL)
cbOnRspUserLogout(pUserLogout, pRspInfo, nRequestID, bIsLast);
}
void CMdSpi::OnRspSubMarketData(CThostFtdcSpecificInstrumentField *pSpecificInstrument, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
//cerr << __FUNCTION__ << endl;
if(cbOnRspSubMarketData!=NULL)
cbOnRspSubMarketData(pSpecificInstrument,pRspInfo,nRequestID,bIsLast);
}
void CMdSpi::OnRspUnSubMarketData(CThostFtdcSpecificInstrumentField *pSpecificInstrument, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
//cerr << __FUNCTION__ << endl;
if(cbOnRspUnSubMarketData!=NULL)
cbOnRspUnSubMarketData(pSpecificInstrument, pRspInfo,nRequestID,bIsLast);
}
void CMdSpi::OnRtnDepthMarketData(CThostFtdcDepthMarketDataField *pDepthMarketData)
{
//cerr << "深度行情" << endl;
if(cbOnRtnDepthMarketData!=NULL)
cbOnRtnDepthMarketData(pDepthMarketData);
}