SignalR.Client._20.Transports.AsyncStreamReader.ProcessChunks C# (CSharp) Method

ProcessChunks() private method

private ProcessChunks ( ) : void
return void
        private void ProcessChunks()
        {
            //Debug.WriteLine("AsyncStreamReader: ProcessChunks");
            while (Reading && m_buffer.HasChunks)
            {
                string _line = m_buffer.ReadLine();

                // No new lines in the buffer so stop processing
                if (_line == null)
                    break;

                if (!Reading)
                    return;

                // Try parsing the sseEvent
                SseEvent _sseEvent;
                if (!SseEvent.TryParse(_line, out _sseEvent))
                    continue;

                if (!Reading)
                    return;

                //Debug.WriteLine("AsyncStreamReader: SSE READ [{0}]", _sseEvent.ToString());

                switch (_sseEvent.Type)
                {
                    case EventType.Id:
                        m_connection.MessageId = _sseEvent.Data;
                        break;
                    case EventType.Data:
                        if (_sseEvent.Data.Equals("initialized", StringComparison.OrdinalIgnoreCase))
                        {
                            if (m_initializeCallback != null)
                                // Mark the connection as started
                                m_initializeCallback();
                        }
                        else
                        {
                            if (Reading)
                            {
                                // We don't care about timeout messages here since it will just reconnect
                                // as part of being a long running request
                                bool _timedOutReceived;
                                bool _disconnectReceived;

                                HttpBasedTransport.ProcessResponse(
                                    m_connection,
                                    _sseEvent.Data,
                                    out _timedOutReceived,
                                    out _disconnectReceived);

                                if (_disconnectReceived)
                                    m_connection.Stop();

                                if (_timedOutReceived)
                                    return;
                            }
                        }
                        break;
                }
            }
        }
    }