//数据 public override void OnReceivedBizMsg(CT2Connection lpConnection, int hSend, CT2BizMessage lpMsg) { int errcode = lpMsg.GetErrorNo(); //获取错误代码 int retcode = lpMsg.GetReturnCode(); //获取返回码 int function = lpMsg.GetFunction(); if (errcode != 0) { MessageManager.GetInstance().Add(MessageType.Error, string.Format("异步接收出错:", lpMsg.GetErrorInfo())); return; } string msg = "", entrustlist = "", batchno = ""; uint cnt = 0; CT2UnPacker unpacker = null; unsafe { int iLen = 0; void *lpdata = lpMsg.GetContent(&iLen); unpacker = new CT2UnPacker(lpdata, (uint)iLen); } errcode = unpacker.GetInt("ErrorCode"); if (errcode != 0) { msg = unpacker.GetStr("ErrorMsg"); MessageManager.GetInstance().Add(MessageType.Error, string.Format("操作失败:{0}", msg)); return; } //回报数据存于第1个数据集,第0个为错误消息 unpacker.SetCurrentDatasetByIndex(1); cnt = unpacker.GetRowCount(); while (unpacker.IsEOF() == 0) { entrustlist += unpacker.GetInt("entrust_no") + "|"; batchno = unpacker.GetInt("batch_no").ToString(); unpacker.Next(); } //返回消息 switch (function) { case (int)EntrustHundsun.OptionFunction.SingleEntrust: MessageManager.GetInstance().Add(MessageType.TradeNotice, string.Format("单笔委托回报:成功,共1笔,|{0}", entrustlist)); break; case (int)EntrustHundsun.OptionFunction.BasketEntrust: MessageManager.GetInstance().Add(MessageType.TradeNotice, string.Format("篮子委托回报:成功,批号={0}", batchno)); break; case (int)EntrustHundsun.OptionFunction.Withdraw: MessageManager.GetInstance().Add(MessageType.TradeNotice, string.Format("委托撤单回报:成功,共{0}笔,|{1}", cnt, entrustlist)); break; default: break; } }
public void Dispose() { _config.Dispose(); _conn.Dispose(); _config = null; _conn = null; }
public override void OnSent(CT2Connection lpConnection, int hSend, void *lpData, int nLength, int nQueuingData) { //TODO:Fixed the convertion //IntPtr intPtr = new IntPtr(lpData); //_app.OnSent(lpConnection, hSend, intPtr, nLength, nQueuingData); _app.OnSent(lpConnection, hSend, lpData, nLength, nQueuingData); }
private void CloseT2() { config.Dispose(); conn.Dispose(); config = null; conn = null; textBox1.Text = ""; }
public override void OnReceivedBizMsg(CT2Connection lpConnection, int hSend, CT2BizMessage lpMsg) { int iRetCode = lpMsg.GetErrorNo(); //获取返回码 int iErrorCode = lpMsg.GetReturnCode(); //获取错误码 int iFunction = lpMsg.GetFunction(); if (iRetCode != 0) { Debug.Print("异步接收出错:" + lpMsg.GetErrorNo().ToString() + lpMsg.GetErrorInfo()); } else { if (iFunction == 620000)//1.0消息中心心跳 { Debug.Print("收到心跳!==>" + iFunction); lpMsg.ChangeReq2AnsMessage(); connMain.SendBizMsg(lpMsg, 1); return; } else if (iFunction == 620003 || iFunction == 620025) //收到发布过来的行情 { Debug.Print("收到主推消息!==>" + iFunction); int iKeyInfo = 0; void * lpKeyInfo = lpMsg.GetKeyInfo(&iKeyInfo); CT2UnPacker unPacker = new CT2UnPacker(lpKeyInfo, (uint)iKeyInfo); //this.ShowUnPacker(unPacker); unPacker.Dispose(); } else if (iFunction == 620001) { Debug.Print("收到订阅应答!==>"); return; } else if (iFunction == 620002) { Debug.Print("收到取消订阅应答!==>"); return; } CT2UnPacker unpacker = null; unsafe { int iLen = 0; void *lpdata = lpMsg.GetContent(&iLen); unpacker = new CT2UnPacker(lpdata, (uint)iLen); } if (iFunction == 10001) { int code = unpacker.GetInt("ErrCode"); if (code == 0) { unpacker.SetCurrentDatasetByIndex(1); token = unpacker.GetStr("user_token"); } } //this.ShowUnPacker(unpacker); } }
public int Connect() { _config = new CT2Configinterface(); _config.Load("t2sdk.ini"); Conn = new CT2Connection(_config); _callback = new Callbacktest(); Conn.Create(_callback); var iret = Conn.Connect(5000); return(iret); }
public override void OnReceivedBizMsg(CT2Connection lpConnection, int hSend, CT2BizMessage lpMsg) { logger.Info("OnReceivedBizMsg: 接收业务数据!"); //获取返回码 int iRetCode = lpMsg.GetReturnCode(); //获取错误码 int iErrorCode = lpMsg.GetErrorNo(); int iFunction = lpMsg.GetFunction(); if (iRetCode != 0) { logger.Error("异步接收数据出错:" + lpMsg.GetErrorNo().ToString() + lpMsg.GetErrorInfo()); } else { CT2UnPacker unpacker = null; unsafe { int iLen = 0; void *lpdata = lpMsg.GetContent(&iLen); unpacker = new CT2UnPacker(lpdata, (uint)iLen); } switch (iFunction) { case (int)FunctionCode.Login: { var token = unpacker.GetStr("user_token"); if (string.IsNullOrEmpty(token)) { LoginManager.Instance.LoginUser.Token = token; } } break; case (int)FunctionCode.Logout: break; default: break; } PrintUnPack(unpacker); unpacker.Dispose(); } lpMsg.Dispose(); }
public override void OnReceivedBizMsg(CT2Connection lpConnection, int hSend, CT2BizMessage lpMsg) { logger.Info("OnReceivedBizMsg: 接收业务数据!"); //获取返回码 int iRetCode = lpMsg.GetReturnCode(); //获取错误码 int iErrorCode = lpMsg.GetErrorNo(); int iFunction = lpMsg.GetFunction(); if (iRetCode != 0) { logger.Error("异步接收数据出错:" + lpMsg.GetErrorNo().ToString() + lpMsg.GetErrorInfo()); } else { CT2UnPacker unpacker = null; unsafe { int iLen = 0; void *lpdata = lpMsg.GetContent(&iLen); unpacker = new CT2UnPacker(lpdata, (uint)iLen); } switch (iFunction) { case (int)FunctionCode.QueryTradingInstance: { } break; case (int)FunctionCode.EntrustInstanceBasket: break; case (int)FunctionCode.QueryEntrustInstance: break; case (int)FunctionCode.QueryDealInstance: break; default: break; } unpacker.Dispose(); } lpMsg.Dispose(); }
public ConnectionCode Init() { ///新建连接 //_config = new CT2Configinterface(); //int iRet = _config.Load("config/t2sdk.ini"); //if (iRet != 0) //{ // string msg = "读取连接配置对象失败!"; // logger.Error(msg); // return ConnectionCode.ErrorReadConf; //} _conn = new CT2Connection(_config); T2SDKCallbackImpl callbackImpl = new T2SDKCallbackImpl(this); //使用Create2BizMsg调用,则收到业务回调是OnReceivedBizMsg int iRet = _conn.Create2BizMsg(callbackImpl); if (iRet != 0) { string msg = string.Format("连接对象初始化失败: {0}, {1}", iRet, _conn.GetErrorMsg(iRet)); logger.Error(msg); return(ConnectionCode.ErrorInitConn); } try { iRet = _conn.Connect(_timeOut); } catch (Exception e) { Console.WriteLine(e.Message); } if (iRet != 0) { string msg = string.Format("连接失败: {0}, {1}", iRet, _conn.GetErrorMsg(iRet)); logger.Error(msg); return(ConnectionCode.ErrorConn); } else { string msg = "连接成功"; logger.Info(msg); } _isInit = true; return(ConnectionCode.Success); }
public ConnectionCode Connect() { //新建连接 _config = new CT2Configinterface(); int iRet = _config.Load("config/t2sdk-subscriber.ini"); if (iRet != 0) { string msg = "主推业务读取[config/t2sdk-subscriber.ini]连接配置对象失败!"; logger.Error(msg); return(ConnectionCode.ErrorReadConf); } _conn = new CT2Connection(_config); //使用Create2BizMsg调用,则收到业务回调是OnReceivedBizMsg iRet = _conn.Create2BizMsg(this); if (iRet != 0) { string msg = string.Format("主推业务连接对象初始化失败: {0}, {1}", iRet, _conn.GetErrorMsg(iRet)); logger.Error(msg); return(ConnectionCode.ErrorInitConn); } try { iRet = _conn.Connect(_timeOut); } catch (Exception e) { string msg = e.Message; logger.Error(msg); } if (iRet != 0) { string msg = string.Format("主推业务连接失败: {0}, {1}", iRet, _conn.GetErrorMsg(iRet)); logger.Error(msg); return(ConnectionCode.ErrorConn); } else { string msg = "主推业务连接成功"; logger.Info(msg); } _isInit = true; return(ConnectionCode.Success); }
public void Dispose() { if (_config != null) { _config.Dispose(); } if (_conn != null) { _conn.Dispose(); } _config = null; _conn = null; }
private bool InitT2() { if (conn == null) { config = new CT2Configinterface(); config.Load("t2sdk.ini"); conn = new CT2Connection(config); callback = new callbacktest(this); conn.Create(callback); int iret = conn.Connect(4000); textBox1.Text = "连接" + conn.GetErrorMsg(iret) + "\r\n" + textBox1.Text; if (iret != 0) { return(false); } } return(true); }
public override void OnReceivedBizMsg(CT2Connection lpConnection, int hSend, CT2BizMessage lpMsg) { UFXLogger.Info(logger, "OnReceivedBizMsg: 成功触发回调接收数据!"); //获取返回码 int iRetCode = lpMsg.GetReturnCode(); //获取错误码 int iErrorCode = lpMsg.GetErrorNo(); int iFunction = lpMsg.GetFunction(); if (iRetCode != 0) { logger.Error("异步接收数据出错:" + lpMsg.GetErrorNo().ToString() + lpMsg.GetErrorInfo()); } else { //Console.WriteLine("主推业务订阅 - 返回码:{0}, 错误码: {1}, 功能号: {2}", iRetCode, iErrorCode, iFunction); if (Enum.IsDefined(typeof(UFXFunctionCode), iFunction)) { UFXFunctionCode functionCode = (UFXFunctionCode)Enum.ToObject(typeof(UFXFunctionCode), iFunction); switch (functionCode) { case UFXFunctionCode.MCHeartBeat: break; case UFXFunctionCode.MCRecvSubscribe: break; case UFXFunctionCode.MCRecvUnsubscribe: break; default: break; } } else { string msg = string.Format("为支持的功能号:{0}", iFunction); logger.Error(msg); } } }
public override void OnReceivedBizMsg(CT2Connection lpConnection, int hSend, CT2BizMessage lpMsg) { UFXLogger.Info(logger, "OnReceivedBizMsg: 成功触发回调接收数据!"); //获取返回码 int iRetCode = lpMsg.GetReturnCode(); //获取错误码 int iErrorCode = lpMsg.GetErrorNo(); int iFunction = lpMsg.GetFunction(); if (iRetCode != 0) { logger.Error("异步接收数据出错:" + lpMsg.GetErrorNo().ToString() + lpMsg.GetErrorInfo()); } else { HandleReceivedBizMsg(SendType.Async, (UFXFunctionCode)iFunction, hSend, lpMsg); } }
public override void OnReceivedBiz(CT2Connection lpConnection, int hSend, String lppStr, CT2UnPacker lppUnPacker, int nResult) { if (nResult == 0 || nResult == 1) { while (lppUnPacker.IsEOF() != 1) { for (int i = 0; i < lppUnPacker.GetColCount(); i++) { m_lpOwner.DisplayText(lppUnPacker.GetStrByIndex(i)); } lppUnPacker.Next(); } } else if (nResult < 0) { m_lpOwner.DisplayText(lpConnection.GetErrorMsg(nResult)); } else if (nResult == 2) { m_lpOwner.DisplayText("解包失败"); } }
public override void OnReceivedBizMsg(CT2Connection lpConnection, int hSend, CT2BizMessage lpMsg) { logger.Info("OnReceivedBizMsg: 成功建立安全连接!"); //获取返回码 int iRetCode = lpMsg.GetReturnCode(); //获取错误码 int iErrorCode = lpMsg.GetErrorNo(); int iFunction = lpMsg.GetFunction(); if (iRetCode != 0) { logger.Error("异步接收数据出错:" + lpMsg.GetErrorNo().ToString() + lpMsg.GetErrorInfo()); } else { if (Enum.IsDefined(typeof(FunctionCode), iFunction)) { FunctionCode functionCode = (FunctionCode)Enum.ToObject(typeof(FunctionCode), iFunction); if (_bizCallbackMap.ContainsKey(functionCode) && _bizCallbackMap[functionCode] != null) { _bizCallbackMap[functionCode](lpMsg); } else { string msg = string.Format("异步接收数据回调函数找不到 - 功能号:{0}", iFunction); logger.Error(msg); } } else { string msg = string.Format("为支持的功能号:{0}", iFunction); logger.Error(msg); //throw new NotSupportedException(msg); } } }
public EntrustHundsun() { this.name = "恒生UFX委托接口"; this.Vendor = EntrustVendor.Hundsun; MessageManager.GetInstance().Add(MessageType.Warning, "对于x64的机器需要更换引用的ext_t2sdkEx.dll"); try { CT2Configinterface config = new CT2Configinterface(); config.Load(Config.GetInstance().GetParameter(Config.C_PATH_HUNDSUN_CONFIG).ToString()); #region 打开连接 //主连接 connMain = new CT2Connection(config); connMain.Create2BizMsg(new UFXMainCallback()); int ret = connMain.Connect(5000); if (ret != 0) { MessageManager.GetInstance().Add(MessageType.Error, string.Format("连接{0}失败:main-{1}", config.GetString("t2sdk", "servers", ""), connMain.GetErrorMsg(ret))); return; } //子连接 connSub = new CT2Connection(config); connSub.Create(null); ret = connSub.Connect(5000); if (ret != 0) { MessageManager.GetInstance().Add(MessageType.Error, string.Format("连接{0}失败:sub-{1}", config.GetString("t2sdk", "servers", ""), connSub.GetErrorMsg(ret))); } #endregion } catch (Exception ex) { MessageManager.GetInstance().Add(MessageType.Error, ex.Message + "请检查license.dat文件是否存在。"); throw ex; } }
public EntrustHunsun() { try { CT2Configinterface config = new CT2Configinterface(); config.Load("t2sdk.ini"); //连接主 connMain = new CT2Connection(config); connMain.Create2BizMsg(this); int ret = connMain.Connect(5000); if (ret != 0) { Debug.Print(string.Format("Main:连接{0}失败 错误号 {1} 错误信息 {2}", config.GetString("t2sdk", "servers", ""), ret, connMain.GetErrorMsg(ret))); } else { Debug.Print((string.Format("Main:连接{0}成功", config.GetString("t2sdk", "servers", "")))); } //连接子 connSub = new CT2Connection(config); connSub.Create(null); ret = connSub.Connect(5000); if (ret != 0) { Debug.Print(string.Format("Sub:连接{0}失败 错误号 {1} 错误信息 {2}", config.GetString("t2sdk", "servers", ""), ret, connSub.GetErrorMsg(ret))); } else { Debug.Print((string.Format("Sub:连接{0}成功", config.GetString("t2sdk", "servers", "")))); } } catch (Exception e) { Debug.Print(e.Message); } }
public override void OnReceivedBizEx(CT2Connection lpConnection, int hSend, CT2RespondData lpRetData, string lppStr, CT2UnPacker lppUnPacker, int nResult) { throw new NotImplementedException(); }
public override void OnConnect(CT2Connection lpConnection) { logger.Info("OnConnect:连接成功建立!"); }
public override void OnClose(CT2Connection lpConnection) { //_conn.Close(); logger.Info("OnClose: 连接断开!"); }
public override unsafe void OnSent(CT2Connection lpConnection, int hSend, void *lpData, int nLength, int nQueuingData) { System.Console.WriteLine(@"连接成功!"); }
//public override void OnSent(CT2Connection lpConnection, int hSend, IntPtr lpData, int nLength, int nQueuingData) //{ // logger.Info("OnSend: 发送数据成功!"); //} public override void OnSent(CT2Connection lpConnection, int hSend, void *lpData, int nLength, int nQueuingData) { logger.Info("OnSend: 发送数据成功!"); }
public override void OnRegister(CT2Connection lpConnection) { //3 Debug.Print(MethodBase.GetCurrentMethod().Name); }
public override void OnReceivedBizEx(CT2Connection lpConnection, int hSend, CT2RespondData lpRetData, string lppStr, CT2UnPacker lppUnPacker, int nResult) { Debug.Print(MethodBase.GetCurrentMethod().Name); }
public override void OnRegister(CT2Connection lpConnection) { logger.Info("OnRegister: 服务端成功注册!"); }
public override void OnSafeConnect(CT2Connection lpConnection) { logger.Info("OnSafeConnect: 成功建立安全连接!"); }
public override void OnSafeConnect(CT2Connection lpConnection) { //2 Debug.Print(MethodBase.GetCurrentMethod().Name); }
public override void OnClose(CT2Connection lpConnection) { Debug.Print(MethodBase.GetCurrentMethod().Name); }
public override void OnSent(CT2Connection lpConnection, int hSend, void *lpData, int nLength, int nQueuingData) { //4 Debug.Print(MethodBase.GetCurrentMethod().Name); }