/// <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); } }
/// <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); } } }
/// <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);
/// <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); } } }
public void AddPassenger(ITransportable transportable) => passengers.Add(transportable);
public GameServer(ITransportable gameTransport) { transport = gameTransport; }