vnpy/vn.xspeed/pyscript/DFITCMdApi.h.dump

202 lines
8.8 KiB
Plaintext
Raw Normal View History

2016-02-25 15:45:59 +00:00
/**
* 版权所有(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_