Вы находитесь на странице: 1из 3

⽂件:/home/jame/桌⾯/v6.3.5_20150803…deapi_linux64/ThostFtdcMdApi.

h
第 1 ⻚,共 3 ⻚

/////////////////////////////////////////////////////////////////////////
///@system 新⼀代交易所系统
///@company 上海期货信息技术有限公司
///@file ThostFtdcMdApi.h
///@brief 定义了客⼾端接口
///@history
///20060106 赵鸿昊 创建该⽂件
/////////////////////////////////////////////////////////////////////////

#if !defined(THOST_FTDCMDAPI_H)
#define THOST_FTDCMDAPI_H

#if _MSC_VER > 1000


#pragma once
#endif // _MSC_VER > 1000

#include "ThostFtdcUserApiStruct.h"

#if defined(ISLIB) && defined(WIN32)


#ifdef LIB_MD_API_EXPORT
#define MD_API_EXPORT __declspec(dllexport)
#else
#define MD_API_EXPORT __declspec(dllimport)
#endif
#else
#define MD_API_EXPORT
#endif

class CThostFtdcMdSpi
{
public:
///当客⼾端与交易后台建⽴起通信连接时(还未登录前),该⽅法被调⽤。
virtual void OnFrontConnected(){};

///当客⼾端与交易后台通信连接断开时,该⽅法被调⽤。当发⽣这个情况后,API会⾃动重新连接,
客⼾端可不做处理。
///@param nReason 错误原因
/// 0x1001 ⽹络读失败
/// 0x1002 ⽹络写失败
/// 0x2001 接收⼼跳超时
/// 0x2002 发送⼼跳失败
/// 0x2003 收到错误报⽂
virtual void OnFrontDisconnected(int nReason){};

///⼼跳超时警告。当长时间未收到报⽂时,该⽅法被调⽤。
///@param nTimeLapse 距离上次接收报⽂的时间
virtual void OnHeartBeatWarning(int nTimeLapse){};

///登录请求响应
virtual void OnRspUserLogin(CThostFtdcRspUserLoginField *pRspUserLogin,
CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};

///登出请求响应
virtual void OnRspUserLogout(CThostFtdcUserLogoutField *pUserLogout,
CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};

///错误应答
virtual void OnRspError(CThostFtdcRspInfoField *pRspInfo, int nRequestID,
bool bIsLast) {};
⽂件:/home/jame/桌⾯/v6.3.5_20150803…deapi_linux64/ThostFtdcMdApi.h
第 2 ⻚,共 3 ⻚

///订阅⾏情应答
virtual void OnRspSubMarketData(CThostFtdcSpecificInstrumentField
*pSpecificInstrument, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool
bIsLast) {};

///取消订阅⾏情应答
virtual void OnRspUnSubMarketData(CThostFtdcSpecificInstrumentField
*pSpecificInstrument, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool
bIsLast) {};

///订阅询价应答
virtual void OnRspSubForQuoteRsp(CThostFtdcSpecificInstrumentField
*pSpecificInstrument, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool
bIsLast) {};

///取消订阅询价应答
virtual void OnRspUnSubForQuoteRsp(CThostFtdcSpecificInstrumentField
*pSpecificInstrument, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool
bIsLast) {};

///深度⾏情通知
virtual void OnRtnDepthMarketData(CThostFtdcDepthMarketDataField
*pDepthMarketData) {};

///询价通知
virtual void OnRtnForQuoteRsp(CThostFtdcForQuoteRspField *pForQuoteRsp) {};
};

class MD_API_EXPORT CThostFtdcMdApi


{
public:
///创建MdApi
///@param pszFlowPath 存贮订阅信息⽂件的⽬录,默认为当前⽬录
///@return 创建出的UserApi
///modify for udp marketdata
static CThostFtdcMdApi *CreateFtdcMdApi(const char *pszFlowPath = "",
const bool bIsUsingUdp=false, const bool bIsMulticast=false);

///删除接口对象本⾝
///@remark 不再使⽤本接口对象时,调⽤该函数删除接口对象
virtual void Release() = 0;

///初始化
///@remark 初始化运⾏环境,只有调⽤后,接口才开始⼯作
virtual void Init() = 0;

///等待接口线程结束运⾏
///@return 线程退出代码
virtual int Join() = 0;

///获取当前交易日
///@retrun 获取到的交易日
///@remark 只有登录成功后,才能得到正确的交易日
virtual const char *GetTradingDay() = 0;

///注册前置机⽹络地址
///@param pszFrontAddress:前置机⽹络地址。
///@remark ⽹络地址的格式为:“protocol://ipaddress:port”,
如:”tcp://127.0.0.1:17001”。
⽂件:/home/jame/桌⾯/v6.3.5_20150803…deapi_linux64/ThostFtdcMdApi.h
第 3 ⻚,共 3 ⻚

///@remark “tcp”代表传输协议,“127.0.0.1”代表服务器地址。”17001”代表服务器端口号。
virtual void RegisterFront(char *pszFrontAddress) = 0;

///注册名字服务器⽹络地址
///@param pszNsAddress:名字服务器⽹络地址。
///@remark ⽹络地址的格式为:“protocol://ipaddress:port”,
如:”tcp://127.0.0.1:12001”。
///@remark “tcp”代表传输协议,“127.0.0.1”代表服务器地址。”12001”代表服务器端口号。
///@remark RegisterNameServer优先于RegisterFront
virtual void RegisterNameServer(char *pszNsAddress) = 0;

///注册名字服务器⽤⼾信息
///@param pFensUserInfo:⽤⼾信息。
virtual void RegisterFensUserInfo(CThostFtdcFensUserInfoField *
pFensUserInfo) = 0;

///注册回调接口
///@param pSpi 派⽣⾃回调接口类的实例
virtual void RegisterSpi(CThostFtdcMdSpi *pSpi) = 0;

///订阅⾏情。
///@param ppInstrumentID 合约ID
///@param nCount 要订阅/退订⾏情的合约个数
///@remark
virtual int SubscribeMarketData(char *ppInstrumentID[], int nCount) = 0;

///退订⾏情。
///@param ppInstrumentID 合约ID
///@param nCount 要订阅/退订⾏情的合约个数
///@remark
virtual int UnSubscribeMarketData(char *ppInstrumentID[], int nCount) = 0;

///订阅询价。
///@param ppInstrumentID 合约ID
///@param nCount 要订阅/退订⾏情的合约个数
///@remark
virtual int SubscribeForQuoteRsp(char *ppInstrumentID[], int nCount) = 0;

///退订询价。
///@param ppInstrumentID 合约ID
///@param nCount 要订阅/退订⾏情的合约个数
///@remark
virtual int UnSubscribeForQuoteRsp(char *ppInstrumentID[], int nCount) = 0;

///⽤⼾登录请求
virtual int ReqUserLogin(CThostFtdcReqUserLoginField *pReqUserLoginField,
int nRequestID) = 0;

///登出请求
virtual int ReqUserLogout(CThostFtdcUserLogoutField *pUserLogout, int
nRequestID) = 0;
protected:
~CThostFtdcMdApi(){};
};

#endif

Вам также может понравиться