e79aa3c0ed
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
63 lines
1.4 KiB
C#
63 lines
1.4 KiB
C#
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;
|
|
}
|
|
}
|
|
|
|
}
|
|
|