/// <summary> /// IStatusMessageListener implementation to capture and process messages sent back from API /// </summary> /// <param name="status">Status message received by API</param> public void messageArrived(ISessionStatus status) { // check the status code if (status.getStatusCode() == ISessionStatus.__Fields.STATUSCODE_ERROR || status.getStatusCode() == ISessionStatus.__Fields.STATUSCODE_DISCONNECTING || status.getStatusCode() == ISessionStatus.__Fields.STATUSCODE_CONNECTING || status.getStatusCode() == ISessionStatus.__Fields.STATUSCODE_CONNECTED || status.getStatusCode() == ISessionStatus.__Fields.STATUSCODE_CRITICAL_ERROR || status.getStatusCode() == ISessionStatus.__Fields.STATUSCODE_EXPIRED || status.getStatusCode() == ISessionStatus.__Fields.STATUSCODE_LOGGINGIN || status.getStatusCode() == ISessionStatus.__Fields.STATUSCODE_LOGGEDIN || status.getStatusCode() == ISessionStatus.__Fields.STATUSCODE_PROCESSING || status.getStatusCode() == ISessionStatus.__Fields.STATUSCODE_DISCONNECTED) { // display status message Console.WriteLine("\t" + status.getStatusMessage()); } }
/// <summary> /// Receives status messages from the FXCM API /// </summary> /// <param name="message">Status message received</param> public void messageArrived(ISessionStatus message) { switch (message.getStatusCode()) { case ISessionStatus.__Fields.STATUSCODE_READY: lock (_lockerConnectionMonitor) { _lastReadyMessageTime = DateTime.UtcNow; } break; } }
/// <summary> /// Receives status messages from the FXCM API /// </summary> /// <param name="message">Status message received</param> public void messageArrived(ISessionStatus message) { switch (message.getStatusCode()) { case ISessionStatus.__Fields.STATUSCODE_READY: lock (_lockerConnectionMonitor) { _lastReadyMessageTime = DateTime.UtcNow; } _connectionError = false; break; case ISessionStatus.__Fields.STATUSCODE_ERROR: _connectionError = true; break; } }
/// <summary> /// Receives status messages from the FXCM API /// </summary> /// <param name="message">Status message received</param> public void messageArrived(ISessionStatus message) { if (message.getStatusCode() == ISessionStatus.__Fields.STATUSCODE_ERROR && !_connectionLost) { OnMessage(BrokerageMessageEvent.Disconnected("Connection with FXCM server lost. " + "This could be because of internet connectivity issues. " + "Error message: " + message.getStatusMessage())); _connectionLost = true; } else if (message.getStatusCode() == ISessionStatus.__Fields.STATUSCODE_READY && _connectionLost) { OnMessage(BrokerageMessageEvent.Reconnected("Connection with FXCM server restored.")); _connectionLost = false; } }