/// <summary> /// Process item from raw data queue. /// </summary> /// <param name="data">Dequeued data.</param> private void ProcessData(RawDataQueueItem data) { var messages = _marshaller.Unmarshall(data.Data); var responseMessages = new List <Message>(); foreach (var msg in messages) { Logger.Trace("Processing " + msg.MessageType + " message."); try { var metadata = data.Metadata as TcpDataProviderMetadata; var response = HandleMessageGeneric(msg, metadata); responseMessages.AddRange(response); } catch (RuntimeBinderException e) { Logger.Debug(e.Message); Logger.Warn("Unsupported message type received (" + msg.MessageType + ")."); var errorMsg = new ErrorMessage { ErrorType = ErrorType.InvalidOperation, ErrorText = "Computational Server doesn't handle " + msg.MessageType + " message." }; responseMessages = new List <Message> { errorMsg }; break; } } foreach (var msgToSend in responseMessages) { Logger.Trace("Sending " + msgToSend.MessageType + " message."); } var marshalledResponse = _marshaller.Marshall(responseMessages); data.Callback(marshalledResponse); }
/// <summary> /// Process item from raw data queue. /// </summary> /// <param name="data">Dequeued data.</param> private void ProcessData(RawDataQueueItem data) { var messages = _marshaller.Unmarshall(data.Data); var responseMessages = new List<Message>(); foreach (var msg in messages) { Logger.Trace("Processing " + msg.MessageType + " message."); try { var metadata = data.Metadata as TcpDataProviderMetadata; var response = HandleMessageGeneric(msg, metadata); responseMessages.AddRange(response); } catch (RuntimeBinderException e) { Logger.Debug(e.Message); Logger.Warn("Unsupported message type received (" + msg.MessageType + ")."); var errorMsg = new ErrorMessage { ErrorType = ErrorType.InvalidOperation, ErrorText = "Computational Server doesn't handle " + msg.MessageType + " message." }; responseMessages = new List<Message> { errorMsg }; break; } } foreach (var msgToSend in responseMessages) Logger.Trace("Sending " + msgToSend.MessageType + " message."); var marshalledResponse = _marshaller.Marshall(responseMessages); data.Callback(marshalledResponse); }