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);
        }
示例#3
0
        private bool HasIntervalBar(string msg)
        {
            if (IntervalBarMessage.TryParse(msg, out IntervalBarMessage intervalBarMessage))
            {
                IntervalBar?.Invoke(intervalBarMessage);
                return(true);
            }

            return(false);
        }