File: sys\System\IO\compression\DeflateInput.cs
Project: ndp\fx\src\System.csproj (System)
namespace System.IO.Compression {
    using System.Diagnostics;
 
    internal class DeflateInput {
        private byte[] buffer;
        private int count;
        private int startIndex;
 
        internal byte[] Buffer {
            get {
                return buffer;
            }
            set {
                buffer = value;
            }
        }
 
        internal int Count {
            get {
                return count;
            }
            set {
                count = value;
            }
        }
 
        internal int StartIndex {
            get {
                return startIndex;
            }
            set {
                startIndex = value;
            }
        }
 
        internal void ConsumeBytes(int n) {
            Debug.Assert(n <= count, "Should use more bytes than what we have in the buffer");
            startIndex += n;
            count -= n;
            Debug.Assert(startIndex + count <= buffer.Length, "Input buffer is in invalid state!");
        }
 
        internal InputState DumpState() {
            InputState savedState;
            savedState.count = count;
            savedState.startIndex = startIndex;
            return savedState;
        }
 
        internal void RestoreState(InputState state) {
            count = state.count;
            startIndex = state.startIndex;
        }
 
        internal struct InputState {
            internal int count;
            internal int startIndex;
        }
    }
 
}