202 lines
7.4 KiB
C++
202 lines
7.4 KiB
C++
/**
|
||
* 版权所有(C)2012-2016, 大连飞创信息技术有限公司
|
||
* 文件名称:DFITCMdApi.h
|
||
* 文件说明:定义XSpeed行情API接口
|
||
* 当前版本:1.0.14.45
|
||
* 作者:XSpeed项目组
|
||
* 发布日期:2015年5月6日
|
||
*/
|
||
|
||
#ifndef DLMDAPI_H_
|
||
#define DLMDAPI_H_
|
||
|
||
|
||
#include "DFITCApiStruct.h"
|
||
|
||
|
||
#ifdef WIN32
|
||
#ifdef DFITCAPI_EXPORTS
|
||
#define MDAPI_API __declspec(dllexport)
|
||
#else
|
||
#define MDAPI_API __declspec(dllimport)
|
||
#endif//DFITCAPI_EXPORTS
|
||
#else
|
||
#define MDAPI_API
|
||
#endif//WIN32
|
||
|
||
namespace DFITCXSPEEDMDAPI
|
||
{
|
||
class DFITCMdSpi
|
||
{
|
||
public:
|
||
DFITCMdSpi(){}
|
||
|
||
/**
|
||
* 网络连接正常响应
|
||
*/
|
||
virtual void OnFrontConnected(){};
|
||
|
||
/**
|
||
* 网络连接不正常响应
|
||
*/
|
||
virtual void OnFrontDisconnected(int nReason){};
|
||
|
||
/**
|
||
* 登陆请求响应:当用户发出登录请求后,前置机返回响应时此方法会被调用,通知用户登录是否成功。
|
||
* @param pRspUserLogin:用户登录信息结构地址。
|
||
* @param pRspInfo:若请求失败,返回错误信息地址,该结构含有错误信息。
|
||
*/
|
||
virtual void OnRspUserLogin(struct DFITCUserLoginInfoRtnField * pRspUserLogin, struct DFITCErrorRtnField * pRspInfo) {};
|
||
|
||
/**
|
||
* 登出请求响应:当用户发出退出请求后,前置机返回响应此方法会被调用,通知用户退出状态。
|
||
* @param pRspUsrLogout:返回用户退出信息结构地址。
|
||
* @param pRspInfo:若请求失败,返回错误信息地址。
|
||
*/
|
||
virtual void OnRspUserLogout(struct DFITCUserLogoutInfoRtnField * pRspUsrLogout, struct DFITCErrorRtnField * pRspInfo) {};
|
||
|
||
/**
|
||
* 错误应答
|
||
* @param pRspInfo:错误信息地址。
|
||
*/
|
||
virtual void OnRspError(struct DFITCErrorRtnField *pRspInfo) {};
|
||
|
||
/**
|
||
* 行情订阅应答:当用户发出行情订阅该方法会被调用。
|
||
* @param pSpecificInstrument:指向合约响应结构,该结构包含合约的相关信息。
|
||
* @param pRspInfo:错误信息,如果发生错误,该结构含有错误信息。
|
||
*/
|
||
virtual void OnRspSubMarketData(struct DFITCSpecificInstrumentField * pSpecificInstrument, struct DFITCErrorRtnField * pRspInfo) {};
|
||
|
||
/**
|
||
* 取消订阅行情应答:当用户发出退订请求后该方法会被调用。
|
||
* @param pSpecificInstrument:指向合约响应结构,该结构包含合约的相关信息。
|
||
* @param pRspInfo:错误信息,如果发生错误,该结构含有错误信息。
|
||
*/
|
||
virtual void OnRspUnSubMarketData(struct DFITCSpecificInstrumentField * pSpecificInstrument, struct DFITCErrorRtnField * pRspInfo) {};
|
||
|
||
/**
|
||
* 订阅询价应答
|
||
* @param pSpecificInstrument:指向合约响应结构,该结构包含合约的相关信息。
|
||
* @param pRspInfo:错误信息,如果发生错误,该结构含有错误信息。
|
||
*/
|
||
virtual void OnRspSubForQuoteRsp(struct DFITCSpecificInstrumentField * pSpecificInstrument, struct DFITCErrorRtnField * pRspInfo) {};
|
||
|
||
/**
|
||
* 取消订阅询价应答
|
||
* @param pSpecificInstrument:指向合约响应结构,该结构包含合约的相关信息。
|
||
* @param pRspInfo:错误信息,如果发生错误,该结构含有错误信息。
|
||
*/
|
||
virtual void OnRspUnSubForQuoteRsp(struct DFITCSpecificInstrumentField * pSpecificInstrument, struct DFITCErrorRtnField * pRspInfo) {};
|
||
|
||
/**
|
||
* 行情消息应答:如果订阅行情成功且有行情返回时,该方法会被调用。
|
||
* @param pMarketDataField:指向行情信息结构的指针,结构体中包含具体的行情信息。
|
||
*/
|
||
virtual void OnMarketData(struct DFITCDepthMarketDataField * pMarketDataField) {};
|
||
|
||
/**
|
||
* 自定义组合行情消息应答:如果订阅行情成功且有行情返回时,该方法会被调用。
|
||
* @param pMarketDataField:指向行情信息结构的指针,结构体中包含具体的行情信息。
|
||
*/
|
||
virtual void OnCustomMarketData(struct DFITCCustomMarketDataField * pMarketDataField) {};
|
||
|
||
/**
|
||
* 询价通知
|
||
* @param pForQuoteField:指向询价信息结构的指针,结构体中包含具体的询价信息。
|
||
*/
|
||
virtual void OnRtnForQuoteRsp(struct DFITCQuoteSubscribeRtnField * pForQuoteField) {};
|
||
|
||
/**
|
||
* 交易日确认响应:用于接收交易日信息。
|
||
* @param pTradingDayRtnData: 返回交易日请求确认响应结构的地址。
|
||
*/
|
||
virtual void OnRspTradingDay(struct DFITCTradingDayRtnField * pTradingDayRtnData){};
|
||
};//end of DFITCMdSpi
|
||
|
||
class MDAPI_API DFITCMdApi
|
||
{
|
||
public:
|
||
/**
|
||
* 创建行情API实例
|
||
* @return 创建出的UserApi
|
||
*/
|
||
static DFITCMdApi * CreateDFITCMdApi();
|
||
|
||
/**
|
||
* 进行一系列初始化工作:注册回调函数接口,连接行情前置。
|
||
* @param pszSvrAddr:行情前置网络地址。
|
||
* 网络地址的格式为:"protocol://ipaddress:port",如"tcp://127.0.0.1:10915"
|
||
* 其中protocol的值为tcp,udp,udpb(广播行情),表示接收行情的方式;如果是udp接收行情数据,udp的端口将由API自行确定,
|
||
* 如果是udpb广播行情,需要与期货公司确认报盘广播行情端口。
|
||
* ipaddress表示行情前置的IP,port表示行情前置的端口
|
||
* @param pSpi:类DFITCMdSpi对象实例
|
||
* @return 0 - 成功; -1 - 失败。
|
||
*/
|
||
virtual int Init(char * pszSvrAddr, DFITCMdSpi * pSpi) = 0;
|
||
|
||
/**
|
||
* 删除接口对象本身,不再使用本接口对象时,调用该函数删除接口对象。
|
||
*/
|
||
virtual void Release() = 0;
|
||
|
||
/**
|
||
* 订阅行情:该方法发出订阅某个或者某些合约行情请求。
|
||
* @param ppInstrumentID[]:指针数组,每个指针指向一个合约。(*代表订阅所有合约,也可订阅某交易所所有合约如DCE)
|
||
* @param nCount:合约个数
|
||
* @return 0 - 请求发送成功; -1 - 请求发送失败。
|
||
*/
|
||
virtual int SubscribeMarketData(char * ppInstrumentID[], int nCount, int nRequestID) = 0;
|
||
|
||
/**
|
||
* 退订行情:该方法发出退订某个/某些合约行情请求。
|
||
* @param ppInstrumentID[]:指针数组,每个指针指向一个合约。(*代表订阅退订所有合约,也可退订某交易所所有合约如DCE)
|
||
* @param nCount:合约个数
|
||
* @return 0 - 请求发送成功; -1 - 请求发送失败
|
||
*/
|
||
virtual int UnSubscribeMarketData(char * ppInstrumentID[], int nCount, int nRequestID) = 0;
|
||
|
||
/**
|
||
* 订阅询价
|
||
* @param ppInstrumentID[]:指针数组,每个指针指向一个合约。(*代表订阅所有询价,也可订阅某交易所所有询价如DCE)
|
||
* @param nCount:合约个数
|
||
* @return 0 - 请求发送成功; -1 - 请求发送失败
|
||
*/
|
||
virtual int SubscribeForQuoteRsp(char * ppInstrumentID[], int nCount, int nRequestID) = 0;
|
||
|
||
/**
|
||
* 退订询价
|
||
* @param ppInstrumentID[]:指针数组,每个指针指向一个合约。(*代表订阅退订所有询价,也可退订某交易所所有询价如DCE)
|
||
* @param nCount:合约个数
|
||
* @return 0 - 请求发送成功; -1 - 请求发送失败
|
||
*/
|
||
virtual int UnSubscribeForQuoteRsp(char * ppInstrumentID[], int nCount, int nRequestID) = 0;
|
||
|
||
/**
|
||
* 用户发出登陆请求
|
||
* @param pReqUserLoginField:指向用户登录请求结构的地址。
|
||
* @return 0 - 请求发送成功; -1 - 请求发送失败; -2 - 检测异常。
|
||
*/
|
||
virtual int ReqUserLogin(struct DFITCUserLoginField * pReqUserLoginField) = 0;
|
||
|
||
/**
|
||
* 用户发出登出请求
|
||
* @param pReqUserLogoutField:指向用户登录请出结构的地址。
|
||
* @return 0 - 请求发送成功; -1 - 请求发送失败; -2 - 检测异常。
|
||
*/
|
||
virtual int ReqUserLogout(struct DFITCUserLogoutField * pReqUserLogoutField) = 0;
|
||
|
||
/**
|
||
* 交易日查询请求
|
||
* @return 0 - 请求发送成功; -1 - 请求发送失败。
|
||
*/
|
||
virtual int ReqTradingDay(struct DFITCTradingDayField * pTradingDay) = 0;
|
||
|
||
protected:
|
||
virtual ~DFITCMdApi() = 0;
|
||
|
||
};//end of MDAPI_API
|
||
} //end of namespace
|
||
|
||
#endif//DLMDAPI_H_
|