-
Notifications
You must be signed in to change notification settings - Fork 46
/
Copy pathMdApiImpl.h
65 lines (47 loc) · 1.76 KB
/
MdApiImpl.h
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
#pragma once
#include "stdafx.h"
class MdApiImpl : public CThostFtdcMdApi,public ISocketClientHandler
{
typedef SocketClientImpl<ISocketClientHandler> CSocketClient;
friend CSocketClient;
public:
MdApiImpl();
~MdApiImpl();
virtual void Release();
virtual void Init();
virtual int Join();
virtual const char* GetTradingDay();
virtual void RegisterFront(char *pszFrontAddress);
virtual void RegisterNameServer(char *pszNsAddress);
virtual void RegisterFensUserInfo(CThostFtdcFensUserInfoField * pFensUserInfo);
virtual void RegisterSpi(CThostFtdcMdSpi *pSpi);
virtual int SubscribeMarketData(char *ppInstrumentID[], int nCount);
virtual int UnSubscribeMarketData(char *ppInstrumentID[], int nCount);
virtual int ReqUserLogin(CThostFtdcReqUserLoginField *pReqUserLoginField, int nRequestID);
virtual int ReqUserLogout(CThostFtdcUserLogoutField *pUserLogout, int nRequestID);
private:
// SocketClient Interface handler
virtual void OnThreadBegin(CSocketHandle* pSH);
virtual void OnThreadExit(CSocketHandle* pSH);
virtual void OnDataReceived(CSocketHandle* pSH, const BYTE* pbData, DWORD dwCount, const SockAddrIn& addr);
virtual void OnConnectionDropped(CSocketHandle* pSH);
virtual void OnConnectionError(CSocketHandle* pSH, DWORD dwError);
public:
bool GetRandSvr();
int SendPkt(const BYTE* pbData, DWORD dwCount);
void ParsePkt(const BYTE* pbData, DWORD dwCount, const SockAddrIn& addr);
int SendPrePkt();
int SendHBeatPkt();
public:
TThostFtdcDateType m_sTdday;
std::vector<std::string> m_SvrVec;
std::vector<BYTE> m_bPktSend;
TThostFtdcMacAddressType m_sMac;
CThostFtdcRspInfoField m_RspInf;
std::string m_sFront;
std::string m_sPort;
int m_iSockType;
private:
CThostFtdcMdSpi *m_pSpi;
CSocketClient m_SockClient;
};