public void ProcessMessages(byte[] messageBytes, int count) { var messages = Encoding.ASCII.GetString(messageBytes, 0, count).SplitFeedLine(); for (var i = 0; i < messages.Length; i++) { var message = messages[i]; // Try parsing the IntervalBarMessage pattern if (IntervalBarMessage.TryParse(message, out var intervalBarMessage)) { IntervalBar?.Invoke(intervalBarMessage); continue; } // Check with other pattern possible switch (message[0]) { case 'S': // A system message ProcessSystemMessage(message); break; case 'E': // An error message ProcessErrorMessage(message); break; case 'n': // Symbol not found message ProcessSymbolNotFoundMessage(message); break; default: throw new Exception("Unknown type of derivative message received."); } } }
protected override bool HasIntervalBar(string msg) { if (IntervalBarMessage.TryParse(msg, out IntervalBarMessage <decimal> intervalBarMessage)) { IntervalBar?.Invoke(intervalBarMessage); return(true); } return(false); }
private bool HasIntervalBar(string msg) { if (IntervalBarMessage.TryParse(msg, out IntervalBarMessage intervalBarMessage)) { IntervalBar?.Invoke(intervalBarMessage); return(true); } return(false); }