public IEnumerable<DataFrame> ReadFrames() { Debug.Assert(State == DataFrameReaderState.Pending); while (State == DataFrameReaderState.Pending) { var frame = TryReadFrame(this.pendingData); UpdateData(); if (frame == null) { State = DataFrameReaderState.Receiving; break; } // Transition if (DataRemaining) State = DataFrameReaderState.Pending; else State = DataFrameReaderState.Empty; yield return (frame); } Debug.Assert(State == DataFrameReaderState.Empty || State == DataFrameReaderState.Receiving); }
private void AppendCore(byte[] someBytes, int c) { pendingData.Write(someBytes, 0, c); pendingData.Position = 0; State = DataFrameReaderState.Pending; }