コード例 #1
0
        /// <summary>
        /// Sends Logout request to MDE
        /// </summary>
        /// <param name="logout">TradeHub Logout object</param>
        public bool Logout(Logout logout)
        {
            try
            {
                if (_asyncClassLogger.IsInfoEnabled)
                {
                    _asyncClassLogger.Info("Sending logout request for: " + logout.MarketDataProvider, _type.FullName, "Logout");
                }

                // Check if MDE-Client is connected to MDE
                if (_isConnected)
                {
                    // Send logout request to MDE
                    _dataEngineClient.SendLogoutRequest(logout);
                    return(true);
                }

                if (_asyncClassLogger.IsDebugEnabled)
                {
                    _asyncClassLogger.Debug("Request not sent to MDE as MDE-Client is not connected.", _type.FullName, "Logout");
                }
                return(false);
            }
            catch (Exception exception)
            {
                _asyncClassLogger.Error(exception, _type.FullName, "Logout");
                return(false);
            }
        }
コード例 #2
0
        public void ConnectivityTestCase()
        {
            bool logonArrived  = false;
            bool logoutArrived = false;

            ManualResetEvent manualLogonEvent     = new ManualResetEvent(false);
            ManualResetEvent manualLogoutEvent    = new ManualResetEvent(false);
            ManualResetEvent manualConnectedEvent = new ManualResetEvent(false);

            _marketDataEngineClient.ServerConnected += delegate()
            {
                _marketDataEngineClient.SendLoginRequest(new Login()
                {
                    MarketDataProvider = TradeHubConstants.MarketDataProvider.Simulated
                });
                manualConnectedEvent.Set();
            };

            _marketDataEngineClient.LogonArrived +=
                delegate(string obj)
            {
                logonArrived = true;
                _marketDataEngineClient.SendLogoutRequest(new Logout {
                    MarketDataProvider = TradeHubConstants.MarketDataProvider.Simulated
                });
                manualLogonEvent.Set();
            };

            _marketDataEngineClient.LogoutArrived +=
                delegate(string obj)
            {
                logoutArrived = true;
                manualLogoutEvent.Set();
            };

            _marketDataEngineClient.Start();

            manualConnectedEvent.WaitOne(30000, false);
            manualLogonEvent.WaitOne(30000, false);
            manualLogoutEvent.WaitOne(30000, false);

            Assert.AreEqual(true, logonArrived, "Logon Arrived");
            Assert.AreEqual(true, logoutArrived, "Logout Arrived");
        }
コード例 #3
0
        void TickArrived(Common.Core.DomainModels.Tick obj)
        {
            if (count == 1)
            {
                stopwatch.Start();
                Logger.Info("First tick arrived " + obj, _type.FullName, "TickArrived");
            }
            if (count == 1000000)
            {
                stopwatch.Stop();
                Logger.Info("Last tick arrived " + obj, _type.FullName, "TickArrived");
                Logger.Info("1000000 Ticks recevied in " + stopwatch.ElapsedMilliseconds + " ms", _type.FullName, "TickArrived");
                Logger.Info(1000000 / stopwatch.ElapsedMilliseconds * 1000 + "msg/sec", _type.FullName, "TickArrived");
                _marketDataEngineClient.SendLogoutRequest(new Logout {
                    MarketDataProvider = Common.Core.Constants.MarketDataProvider.Simulated
                });
                Close();
            }

            count++;
        }