Exemplo n.º 1
0
        /// <summary>
        /// Receives generic messages from the FXCM API
        /// </summary>
        /// <param name="message">Generic message received</param>
        public void messageArrived(ITransportable message)
        {
            // Dispatch message to specific handler
            lock (_locker)
            {
                if (message is TradingSessionStatus)
                    OnTradingSessionStatus((TradingSessionStatus)message);

                else if (message is MarketDataSnapshot)
                    OnMarketDataSnapshot((MarketDataSnapshot)message);
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Receives generic messages from the FXCM API
        /// </summary>
        /// <param name="message">Generic message received</param>
        public void messageArrived(ITransportable message)
        {
            // Dispatch message to specific handler

            lock (_locker)
            {
                if (message is TradingSessionStatus)
                    OnTradingSessionStatus((TradingSessionStatus)message);

                else if (message is CollateralReport)
                    OnCollateralReport((CollateralReport)message);

                else if (message is MarketDataSnapshot)
                    OnMarketDataSnapshot((MarketDataSnapshot)message);

                else if (message is ExecutionReport)
                    OnExecutionReport((ExecutionReport)message);

                else if (message is RequestForPositionsAck)
                    OnRequestForPositionsAck((RequestForPositionsAck)message);

                else if (message is PositionReport)
                    OnPositionReport((PositionReport)message);

                else if (message is OrderCancelReject)
                    OnOrderCancelReject((OrderCancelReject)message);

                else if (message is UserResponse || message is CollateralInquiryAck ||
                    message is MarketDataRequestReject || message is BusinessMessageReject || message is SecurityStatus)
                {
                    // Unused messages, no handler needed
                }

                else
                {
                    // Should never get here, if it does log and ignore message
                    // New messages added in future api updates should be added to the unused list above
                    Log.Trace("FxcmBrokerage.messageArrived(): Unknown message: {0}", message);
                }
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// IGenericMessageListener implementation to capture and process messages sent back from API
        /// </summary>
        /// <param name="message">Message received for processing by API</param>
        public void messageArrived(ITransportable message)
        {
            // Dispatch message to specific handler

            lock (_locker)
            {
                if (message is TradingSessionStatus)
                    OnTradingSessionStatus((TradingSessionStatus) message);

                else if (message is CollateralReport)
                    OnCollateralReport((CollateralReport) message);

                else if (message is MarketDataSnapshot)
                    OnMarketDataSnapshot((MarketDataSnapshot)message);

                else if (message is ExecutionReport)
                    OnExecutionReport((ExecutionReport)message);

                else if (message is RequestForPositionsAck)
                    OnRequestForPositionsAck((RequestForPositionsAck)message);

                else if (message is PositionReport)
                    OnPositionReport((PositionReport)message);

                else if (message is OrderCancelReject)
                    OnOrderCancelReject((OrderCancelReject)message);

                // unhandled messages here
                else if (message is UserResponse || message is CollateralInquiryAck || message is MarketDataRequestReject) { }

                else
                    Console.WriteLine("Unhandled message: {0}\n", message);
            }
        }
 public void AddPassenger(ITransportable passenger) => passengers.Add(passenger);
Exemplo n.º 5
0
        /// <summary>
        /// Receives generic messages from the FXCM API
        /// </summary>
        /// <param name="message">Generic message received</param>
        public void messageArrived(ITransportable message)
        {
            try
            {
                // Dispatch message to specific handler
                lock (_locker)
                {
                    if (message is TradingSessionStatus)
                    {
                        OnTradingSessionStatus((TradingSessionStatus)message);
                    }

                    else if (message is CollateralReport)
                    {
                        OnCollateralReport((CollateralReport)message);
                    }

                    else if (message is MarketDataSnapshot)
                    {
                        OnMarketDataSnapshot((MarketDataSnapshot)message);
                    }

                    else if (message is ExecutionReport)
                    {
                        OnExecutionReport((ExecutionReport)message);
                    }

                    else if (message is RequestForPositionsAck)
                    {
                        OnRequestForPositionsAck((RequestForPositionsAck)message);
                    }

                    else if (message is PositionReport)
                    {
                        OnPositionReport((PositionReport)message);
                    }

                    else if (message is OrderCancelReject)
                    {
                        OnOrderCancelReject((OrderCancelReject)message);
                    }

                    else if (message is UserResponse || message is CollateralInquiryAck || message is Logout ||
                             message is MarketDataRequestReject || message is BusinessMessageReject || message is SecurityStatus)
                    {
                        // Unused messages, no handler needed
                    }

                    else
                    {
                        // Should never get here, if it does log and ignore message
                        // New messages added in future api updates should be added to the unused list above
                        Log.Trace("FxcmBrokerage.messageArrived(): Unknown message: {0}", message);
                    }
                }
            }
            catch (Exception ex)
            {
                // Log message once
                if (!_printedMessage.Contains(ex.Message))
                {
                    Log.Trace($"{ex.GetType()}: {ex.Message}");
                    _printedMessage.Add(ex.Message);
                }
            }
        }
Exemplo n.º 6
0
 public void AddPassenger(ITransportable transportable) => passengers.Add(transportable);
Exemplo n.º 7
0
 public GameServer(ITransportable gameTransport)
 {
     transport = gameTransport;
 }