示例#1
0
文件: DataEventArgs.cs 项目: ifzz/FDK
 internal DataEventArgs(FxMessage message)
 {
     if (message.SendingTime.HasValue)
     {
         this.SendingTime = message.SendingTime;
     }
     this.ReceivingTime = message.ReceivingTime.Value;
 }
示例#2
0
        internal unsafe LogoutEventArgs(FxMessage message) : base(message)
        {
            string text;
            LogoutReason reason;
            int code;
            message.GetLogoutInfo(out text, out reason, out code);

            this.Text = text;
            this.Reason = reason;
            this.Code = code;
        }
示例#3
0
文件: DataClient.cs 项目: ifzz/FDK
        internal virtual bool ProcessMessage(FxMessage message)
        {
            switch (message.Type)
            {
                case Native.FX_MSG_LOGON:
                    this.RaiseLogon(message);
                    break;
                case Native.FX_MSG_LOGOUT:
                    this.RaiseLogout(message);
                    break;
                case Native.FX_MSG_SESSION_INFO:
                    this.RaiseSessionInfo(message);
                    break;
                case Native.FX_MSG_CACHE_UPDATED:
                    this.RaiseCacheUpdated(message);
                    break;
                default:
                    return false;
            }

            return true;
        }
示例#4
0
文件: DataFeed.cs 项目: ifzz/FDK
 void RaiseCurrencyInfo(FxMessage message)
 {
     var eh = this.CurrencyInfo;
     if (eh != null)
     {
         var e = new CurrencyInfoEventArgs(message);
         eh(this, e);
     }
 }
示例#5
0
文件: DataFeed.cs 项目: ifzz/FDK
        internal override bool ProcessMessage(FxMessage message)
        {
            if (base.ProcessMessage(message))
                return true;
            switch (message.Type)
            {
                case Native.FX_MSG_TICK:
                    this.RaiseTick(message);
                    break;
                case Native.FX_MSG_SYMBOL_INFO:
                    this.RaiseSymbolInfo(message);
                    break;
                case Native.FX_MSG_NOTIFICATION:
                    var notification = message.Notification();
                    if (notification.Type == NotificationType.ConfigUpdated)
                    {
                        var e = new NotificationEventArgs(notification);
                        this.RaiseNotification(e);
                    }
                    else
                        return false;
                    break;
                case Native.FX_MSG_CURRENCY_INFO:
                    this.RaiseCurrencyInfo(message);
                    break;
                default:
                    return false;
            }

            return true;
        }
示例#6
0
 internal SessionInfoEventArgs(FxMessage message) : base(message)
 {
     this.Information = message.SessionInfo();
 }
示例#7
0
文件: DataTrade.cs 项目: ifzz/FDK
        unsafe void RaiseNotification(FxMessage message)
        {
            var notification = message.Notification();

            if (notification.Type == NotificationType.Balance)
            {
                var e = new NotificationEventArgs<BalanceOperation>(notification)
                {
                    Data = new BalanceOperation(notification)
                };

                this.RaiseBalanceOperationNotification(e);
            }
            else
            {
                var e = new NotificationEventArgs(notification);
                this.RaiseNotification(e);
            }
        }
示例#8
0
文件: DataTrade.cs 项目: ifzz/FDK
 void RaiseTradeTransactionReport(FxMessage message)
 {
     var eh = this.TradeTransactionReport;
     if (eh != null)
     {
         var e = new TradeTransactionReportEventArgs(message);
         eh(this, e);
     }
 }
示例#9
0
文件: DataTrade.cs 项目: ifzz/FDK
 void RaiseAccountInfo(FxMessage message)
 {
     var eh = this.AccountInfo;
     if (eh != null)
     {
         var e = new AccountInfoEventArgs(message);
         eh(this, e);
     }
 }
示例#10
0
        public bool GetNextMessage(out FxMessage message)
        {
            this.VerifyInitialized();

            return(Native.Client.GetNextMessage(this.handle, out message));
        }
示例#11
0
 internal unsafe TradeTransactionReportEventArgs(FxMessage message)
 {
     this.Report = message.TradeTransactionReport();
 }
示例#12
0
 internal unsafe SymbolInfoEventArgs(FxMessage message, string usedProtocolVersion)
 {
     var protocolVersion = new FixProtocolVersion(usedProtocolVersion);
     this.Information = message.Symbols(protocolVersion);
 }
示例#13
0
文件: TickEventArgs.cs 项目: ifzz/FDK
 internal TickEventArgs(FxMessage message)
     : base(message)
 {
     this.Tick = message.Quote();
 }
示例#14
0
文件: DataClient.cs 项目: ifzz/FDK
 void RaiseCacheUpdated(FxMessage message)
 {
     var eh = this.CacheInitialized;
     if (eh != null)
     {
         var e = new CacheEventArgs();
         eh(this, e);
     }
 }
示例#15
0
文件: DataClient.cs 项目: ifzz/FDK
 void RaiseSessionInfo(FxMessage message)
 {
     var eh = this.SessionInfo;
     if (eh != null)
     {
         var e = new SessionInfoEventArgs(message);
         eh(this, e);
     }
 }
示例#16
0
文件: DataClient.cs 项目: ifzz/FDK
 void RaiseLogout(FxMessage message)
 {
     var eh = this.Logout;
     if (eh != null)
     {
         var e = new LogoutEventArgs(message);
         eh(this, e);
     }
 }
示例#17
0
文件: DataTrade.cs 项目: ifzz/FDK
        internal override bool ProcessMessage(FxMessage message)
        {
            if (base.ProcessMessage(message))
                return true;
            switch (message.Type)
            {
                case Native.FX_MSG_ACCOUNT_INFO:
                    this.RaiseAccountInfo(message);
                    break;
                case Native.FX_MSG_EXECUTION_REPORT:
                    this.RaiseExecutionReport(message);
                    break;
                case Native.FX_MSG_TRADE_TRANSACTION_REPORT:
                    this.RaiseTradeTransactionReport(message);
                    break;
                case Native.FX_MSG_POSITION_REPORT:
                    this.RaisePositionReport(message);
                    break;
                case Native.FX_MSG_NOTIFICATION:
                    this.RaiseNotification(message);
                    break;
                default:
                    return false;
            }

            return true;
        }
示例#18
0
        public void DispatchMessage(FxMessage message)
        {
            this.VerifyInitialized();

            Native.Client.DispatchMessage(this.handle, message);
        }
示例#19
0
文件: DataTrade.cs 项目: ifzz/FDK
 void RaiseExecutionReport(FxMessage message)
 {
     var eh = this.ExecutionReport;
     if (eh != null)
     {
         var e = new ExecutionReportEventArgs (message);
         eh(this, e);
     }
 }
示例#20
0
 internal unsafe CurrencyInfoEventArgs(FxMessage message)
 {
     this.Information = message.Currencies();
 }
示例#21
0
文件: DataTrade.cs 项目: ifzz/FDK
 void RaisePositionReport(FxMessage message)
 {
     var eh = this.PositionReport;
     if (eh != null)
     {
         var e = new PositionReportEventArgs(message);
         eh(this, e);
     }
 }
示例#22
0
 internal unsafe LogonEventArgs(FxMessage message)
     : base(message)
 {
     this.ProtocolVersion = message.ProtocolVersion();
 }
示例#23
0
 internal unsafe ExecutionReportEventArgs(FxMessage message)
 {
     this.Report = message.ExecutionReport();
 }
示例#24
0
 internal unsafe PositionReportEventArgs(FxMessage message)
 {
     this.Report = message.Position();
 }
示例#25
0
 internal unsafe AccountInfoEventArgs(FxMessage message)
 {
     this.Information = message.AccountInfo();
 }
示例#26
0
文件: FxDataClient.cs 项目: ifzz/FDK
        public bool GetNextMessage(out FxMessage message)
        {
            this.VerifyInitialized();

            return Native.Client.GetNextMessage(this.handle, out message);
        }
示例#27
0
文件: DataFeed.cs 项目: ifzz/FDK
 void RaiseTick(FxMessage message)
 {
     var eh = this.Tick;
     if (eh != null)
     {
         var e = new TickEventArgs(message);
         eh(this, e);
     }
 }
示例#28
0
文件: FxDataClient.cs 项目: ifzz/FDK
        public void DispatchMessage(FxMessage message)
        {
            this.VerifyInitialized();

            Native.Client.DispatchMessage(this.handle, message);
        }
示例#29
0
文件: DataFeed.cs 项目: ifzz/FDK
 void RaiseSymbolInfo(FxMessage message)
 {
     var eh = this.SymbolInfo;
     if (eh != null)
     {
         var e = new SymbolInfoEventArgs(message, this.UsedProtocolVersion);
         eh(this, e);
     }
 }
示例#30
0
文件: DataClient.cs 项目: ifzz/FDK
        void SafeProcessMessage(FxMessage message)
        {
#if !DEBUG
            try
            {
#endif
                this.ProcessMessage(message);
#if !DEBUG
            }
            catch
            {
            }
#endif
            this.handle.DispatchMessage(message);
        }