using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.ComponentModel; using System.Net; using FObjBase; using FLY.Thick.Base.IService; using FLY.Thick.Base.OBJ_INTERFACE; using FLY.Thick.Base.Common; namespace FLY.Thick.Base.Client { public class FixServiceClient : FObj, IFixService { IFConn mConn; UInt32 mServerID; public FixServiceClient(UInt32 id) { mServerID = id; } #region IFlyAD接口 /// <summary> /// 注册timegrid 事件 /// </summary> /// <param name="handler"></param> public void RegistTimeGridEvent(FixEventHandler handler) { FixEvent += handler; CurrObjSys.SenseConfigEx( mConn, mServerID, ID, Misc.MyBase.BIT(FIX_OBJ_INTERFACE.PUSH_TIMEGRID), SENSE_CONFIG.ADD); } /// <summary> /// 关闭注册timegrid 事件 /// </summary> /// <param name="handler"></param> public void UnRegistTimeGridEvent(FixEventHandler handler) { FixEvent -= handler; if (FixEvent == null) { CurrObjSys.SenseConfigEx( mConn, mServerID, ID, Misc.MyBase.BIT(FIX_OBJ_INTERFACE.PUSH_TIMEGRID), SENSE_CONFIG.REMOVE); } } event FixEventHandler FixEvent; #endregion public override void Dispose() { CurrObjSys.ObjRemove( this, mConn); } public override void ConnectNotify(IFConn from) { mConn = from; if (from.IsConnected) { //设置推送 if (FixEvent != null) { UInt32 sense_mask = Misc.MyBase.BIT(FIX_OBJ_INTERFACE.PUSH_TIMEGRID); CurrObjSys.SenseConfigEx( mConn, mServerID, ID, sense_mask, SENSE_CONFIG.ADD); } } } public override void PushInfo(IFConn from, uint srcid, ushort infoid, byte[] infodata) { switch (infoid) { case FIX_OBJ_INTERFACE.PUSH_TIMEGRID: { string json = Misc.Converter.BytesToString(infodata); var p = Newtonsoft.Json.JsonConvert.DeserializeObject<FixEventArgs>(json); FixEvent?.Invoke(this, p); } break; } } } }