Skip to content
Open
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -817,15 +817,15 @@ private async Task TestStreamRewindsOnlyOnce(bool useAsync)
[InlineData(10)]
[InlineData(15)]
[InlineData(-1)]
public void RoundTrip_WithWindowLog(int windowLog)
public void RoundTrip_WithWindowLog2(int windowLog2)
{
byte[] input = new byte[1024];
Random.Shared.NextBytes(input);

var options = new ZLibCompressionOptions
{
CompressionLevel = 6,
WindowLog = windowLog
WindowLog2 = windowLog2
};

using var compressed = new MemoryStream();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ public abstract class EncoderDecoderTestBase
protected virtual bool SupportsDictionaries => false;
protected virtual bool SupportsReset => false;

protected virtual string WindowLogParamName => "windowLog";
protected virtual string WindowLogParamName => "windowLog2";
protected virtual string InputLengthParamName => "inputLength";

protected abstract int ValidQuality { get; }
Expand Down Expand Up @@ -100,8 +100,8 @@ public abstract class DictionaryAdapter : IDisposable
protected abstract DictionaryAdapter CreateDictionary(ReadOnlySpan<byte> data, int quality);

protected abstract bool TryCompress(ReadOnlySpan<byte> source, Span<byte> destination, out int bytesWritten);
protected abstract bool TryCompress(ReadOnlySpan<byte> source, Span<byte> destination, out int bytesWritten, int quality, int windowLog);
protected abstract bool TryCompress(ReadOnlySpan<byte> source, Span<byte> destination, out int bytesWritten, DictionaryAdapter dictionary, int windowLog);
protected abstract bool TryCompress(ReadOnlySpan<byte> source, Span<byte> destination, out int bytesWritten, int quality, int windowLog2);
protected abstract bool TryCompress(ReadOnlySpan<byte> source, Span<byte> destination, out int bytesWritten, DictionaryAdapter dictionary, int windowLog2);
protected abstract bool TryDecompress(ReadOnlySpan<byte> source, Span<byte> destination, out int bytesWritten);
protected abstract bool TryDecompress(ReadOnlySpan<byte> source, Span<byte> destination, out int bytesWritten, DictionaryAdapter dictionary);

Expand All @@ -117,7 +117,7 @@ public void InvalidQuality_ThrowsArgumentOutOfRangeException()
foreach (int quality in InvalidQualitiesTestData)
{
Assert.Throws<ArgumentOutOfRangeException>("quality", () => CreateEncoder(quality, ValidWindowLog));
Assert.Throws<ArgumentOutOfRangeException>("quality", () => TryCompress(input, output, out _, quality: quality, windowLog: ValidWindowLog));
Assert.Throws<ArgumentOutOfRangeException>("quality", () => TryCompress(input, output, out _, quality: quality, windowLog2: ValidWindowLog));
}
}

Expand All @@ -130,7 +130,7 @@ public void InvalidWindowLog_ThrowsArgumentOutOfRangeException()
foreach (int windowLog in InvalidWindowLogsTestData)
{
Assert.Throws<ArgumentOutOfRangeException>(WindowLogParamName, () => CreateEncoder(ValidQuality, windowLog));
Assert.Throws<ArgumentOutOfRangeException>(WindowLogParamName, () => TryCompress(input, output, out _, quality: ValidQuality, windowLog: windowLog));
Assert.Throws<ArgumentOutOfRangeException>(WindowLogParamName, () => TryCompress(input, output, out _, quality: ValidQuality, windowLog2: windowLog));
}
}

Expand Down Expand Up @@ -166,7 +166,7 @@ public void TryCompress_WithQualityAndWindowLog_CompressesData()
byte[] input = CreateTestData();
byte[] output = new byte[GetMaxCompressedLength(input.Length)];

bool result = TryCompress(input, output, out int bytesWritten, quality: ValidQuality, windowLog: ValidWindowLog);
bool result = TryCompress(input, output, out int bytesWritten, quality: ValidQuality, windowLog2: ValidWindowLog);

Assert.True(result);
Assert.True(bytesWritten > 0);
Expand All @@ -182,7 +182,7 @@ public void TryCompress_WithDictionary_WithQuality_Succeeds()
byte[] output = new byte[GetMaxCompressedLength(input.Length)];
using DictionaryAdapter dictionary = CreateDictionary(CreateSampleDictionary(), ValidQuality);

bool result = TryCompress(input, output, out int bytesWritten, dictionary: dictionary, windowLog: ValidWindowLog);
bool result = TryCompress(input, output, out int bytesWritten, dictionary: dictionary, windowLog2: ValidWindowLog);

Assert.True(result);
Assert.True(bytesWritten > 0);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ public sealed partial class BrotliCompressionOptions
{
public BrotliCompressionOptions() { }
public int Quality { get { throw null; } set { } }
public int WindowLog { get { throw null; } set { } }
public int WindowLog2 { get { throw null; } set { } }
}
public partial struct BrotliDecoder : System.IDisposable
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ namespace System.IO.Compression
public sealed class BrotliCompressionOptions
{
private int _quality = BrotliUtils.Quality_Default;
private int _windowLog = BrotliUtils.WindowBits_Default;
private int _windowLog2 = BrotliUtils.WindowBits_Default;

/// <summary>
/// Gets or sets the compression quality for a Brotli compression stream.
Expand All @@ -31,21 +31,21 @@ public int Quality
}

/// <summary>
/// Gets or sets the window size for a Brotli compression stream.
/// Gets or sets the base-2 logarithm of the window size for a Brotli compression stream.
/// </summary>
/// <exception cref="ArgumentOutOfRangeException" accessor="set">The value is less than 10 or greater than 24.</exception>
/// <remarks>
/// The value is expressed as the base-2 logarithm of the size in bytes of the sliding window used by the LZ77 algorithm. Larger window sizes can improve compression ratio but use more memory. Range is from 10 to 24. The default value is 22.
/// </remarks>
public int WindowLog
public int WindowLog2
{
get => _windowLog;
get => _windowLog2;
set
{
ArgumentOutOfRangeException.ThrowIfLessThan(value, BrotliUtils.WindowBits_Min, nameof(value));
ArgumentOutOfRangeException.ThrowIfGreaterThan(value, BrotliUtils.WindowBits_Max, nameof(value));

_windowLog = value;
_windowLog2 = value;
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ public BrotliStream(Stream stream, BrotliCompressionOptions compressionOptions,
ArgumentNullException.ThrowIfNull(compressionOptions);

_encoder.SetQuality(compressionOptions.Quality);
_encoder.SetWindow(compressionOptions.WindowLog);
_encoder.SetWindow(compressionOptions.WindowLog2);
}

/// <summary>Writes compressed bytes to the underlying stream from the specified byte array.</summary>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -100,22 +100,22 @@ public void InvalidBrotliCompressionQuality()
}

[Fact]
public void InvalidBrotliCompressionWindowLog()
public void InvalidBrotliCompressionWindowLog2()
{
BrotliCompressionOptions options = new();

Assert.Equal(22, options.WindowLog); // default value
Assert.Throws<ArgumentOutOfRangeException>("value", () => options.WindowLog = -1);
Assert.Throws<ArgumentOutOfRangeException>("value", () => options.WindowLog = 9);
Assert.Throws<ArgumentOutOfRangeException>("value", () => options.WindowLog = 25);
Assert.Equal(22, options.WindowLog2); // default value
Assert.Throws<ArgumentOutOfRangeException>("value", () => options.WindowLog2 = -1);
Assert.Throws<ArgumentOutOfRangeException>("value", () => options.WindowLog2 = 9);
Assert.Throws<ArgumentOutOfRangeException>("value", () => options.WindowLog2 = 25);
}

[Theory]
[InlineData(10)]
[InlineData(15)]
[InlineData(22)]
[InlineData(24)]
public void BrotliCompressionWindowLog_RoundTrip(int windowLog)
public void BrotliCompressionWindowLog2_RoundTrip(int windowLog2)
{
byte[] testData = new byte[10000];
Random.Shared.NextBytes(testData);
Expand All @@ -124,7 +124,7 @@ public void BrotliCompressionWindowLog_RoundTrip(int windowLog)
byte[] compressed;
using (var ms = new MemoryStream())
{
using (var compressor = new BrotliStream(ms, new BrotliCompressionOptions() { WindowLog = windowLog }, leaveOpen: true))
using (var compressor = new BrotliStream(ms, new BrotliCompressionOptions() { WindowLog2 = windowLog2 }, leaveOpen: true))
{
compressor.Write(testData);
}
Expand Down
42 changes: 21 additions & 21 deletions src/libraries/System.IO.Compression/ref/System.IO.Compression.cs
Original file line number Diff line number Diff line change
Expand Up @@ -29,15 +29,15 @@ public sealed partial class DeflateEncoder : System.IDisposable
{
public DeflateEncoder() { }
public DeflateEncoder(int quality) { }
public DeflateEncoder(int quality, int windowLog) { }
public DeflateEncoder(int quality, int windowLog2) { }
Comment on lines 28 to +32
public DeflateEncoder(System.IO.Compression.ZLibCompressionOptions options) { }
public System.Buffers.OperationStatus Compress(System.ReadOnlySpan<byte> source, System.Span<byte> destination, out int bytesConsumed, out int bytesWritten, bool isFinalBlock) { throw null; }
public void Dispose() { }
public System.Buffers.OperationStatus Flush(System.Span<byte> destination, out int bytesWritten) { throw null; }
public static long GetMaxCompressedLength(long inputLength) { throw null; }
public static bool TryCompress(System.ReadOnlySpan<byte> source, System.Span<byte> destination, out int bytesWritten) { throw null; }
public static bool TryCompress(System.ReadOnlySpan<byte> source, System.Span<byte> destination, out int bytesWritten, int quality) { throw null; }
public static bool TryCompress(System.ReadOnlySpan<byte> source, System.Span<byte> destination, out int bytesWritten, int quality, int windowLog) { throw null; }
public static bool TryCompress(System.ReadOnlySpan<byte> source, System.Span<byte> destination, out int bytesWritten, int quality, int windowLog2) { throw null; }
}
public partial class DeflateStream : System.IO.Stream
{
Expand Down Expand Up @@ -86,15 +86,15 @@ public sealed partial class GZipEncoder : System.IDisposable
{
public GZipEncoder() { }
public GZipEncoder(int quality) { }
public GZipEncoder(int quality, int windowLog) { }
public GZipEncoder(int quality, int windowLog2) { }
public GZipEncoder(System.IO.Compression.ZLibCompressionOptions options) { }
public System.Buffers.OperationStatus Compress(System.ReadOnlySpan<byte> source, System.Span<byte> destination, out int bytesConsumed, out int bytesWritten, bool isFinalBlock) { throw null; }
public void Dispose() { }
public System.Buffers.OperationStatus Flush(System.Span<byte> destination, out int bytesWritten) { throw null; }
public static long GetMaxCompressedLength(long inputLength) { throw null; }
public static bool TryCompress(System.ReadOnlySpan<byte> source, System.Span<byte> destination, out int bytesWritten) { throw null; }
public static bool TryCompress(System.ReadOnlySpan<byte> source, System.Span<byte> destination, out int bytesWritten, int quality) { throw null; }
public static bool TryCompress(System.ReadOnlySpan<byte> source, System.Span<byte> destination, out int bytesWritten, int quality, int windowLog) { throw null; }
public static bool TryCompress(System.ReadOnlySpan<byte> source, System.Span<byte> destination, out int bytesWritten, int quality, int windowLog2) { throw null; }
}
public partial class GZipStream : System.IO.Stream
{
Expand Down Expand Up @@ -188,13 +188,13 @@ public enum ZipCompressionMethod
}
public sealed partial class ZLibCompressionOptions
{
public static int DefaultWindowLog { get { throw null; } }
public static int MaxWindowLog { get { throw null; } }
public static int MinWindowLog { get { throw null; } }
public static int DefaultWindowLog2 { get { throw null; } }
public static int MaxWindowLog2 { get { throw null; } }
public static int MinWindowLog2 { get { throw null; } }
public ZLibCompressionOptions() { }
public int CompressionLevel { get { throw null; } set { } }
public System.IO.Compression.ZLibCompressionStrategy CompressionStrategy { get { throw null; } set { } }
public int WindowLog { get { throw null; } set { } }
public int WindowLog2 { get { throw null; } set { } }
}
public enum ZLibCompressionStrategy
{
Expand All @@ -215,15 +215,15 @@ public sealed partial class ZLibEncoder : System.IDisposable
{
public ZLibEncoder() { }
public ZLibEncoder(int quality) { }
public ZLibEncoder(int quality, int windowLog) { }
public ZLibEncoder(int quality, int windowLog2) { }
public ZLibEncoder(System.IO.Compression.ZLibCompressionOptions options) { }
public System.Buffers.OperationStatus Compress(System.ReadOnlySpan<byte> source, System.Span<byte> destination, out int bytesConsumed, out int bytesWritten, bool isFinalBlock) { throw null; }
public void Dispose() { }
public System.Buffers.OperationStatus Flush(System.Span<byte> destination, out int bytesWritten) { throw null; }
public static long GetMaxCompressedLength(long inputLength) { throw null; }
public static bool TryCompress(System.ReadOnlySpan<byte> source, System.Span<byte> destination, out int bytesWritten) { throw null; }
public static bool TryCompress(System.ReadOnlySpan<byte> source, System.Span<byte> destination, out int bytesWritten, int quality) { throw null; }
public static bool TryCompress(System.ReadOnlySpan<byte> source, System.Span<byte> destination, out int bytesWritten, int quality, int windowLog) { throw null; }
public static bool TryCompress(System.ReadOnlySpan<byte> source, System.Span<byte> destination, out int bytesWritten, int quality, int windowLog2) { throw null; }
}
public sealed partial class ZLibStream : System.IO.Stream
{
Expand Down Expand Up @@ -268,26 +268,26 @@ public sealed partial class ZstandardCompressionOptions
public ZstandardCompressionOptions() { }
public bool AppendChecksum { get { throw null; } set { } }
public static int DefaultQuality { get { throw null; } }
public static int DefaultWindowLog { get { throw null; } }
public static int DefaultWindowLog2 { get { throw null; } }
public System.IO.Compression.ZstandardDictionary? Dictionary { get { throw null; } set { } }
public bool EnableLongDistanceMatching { get { throw null; } set { } }
public static int MaxQuality { get { throw null; } }
public static int MaxWindowLog { get { throw null; } }
public static int MaxWindowLog2 { get { throw null; } }
public static int MinQuality { get { throw null; } }
public static int MinWindowLog { get { throw null; } }
public static int MinWindowLog2 { get { throw null; } }
public int Quality { get { throw null; } set { } }
public int TargetBlockSize { get { throw null; } set { } }
public int WindowLog { get { throw null; } set { } }
public int WindowLog2 { get { throw null; } set { } }
}
[System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")]
[System.Runtime.Versioning.UnsupportedOSPlatformAttribute("wasi")]
public sealed partial class ZstandardDecoder : System.IDisposable
{
public ZstandardDecoder() { }
public ZstandardDecoder(int maxWindowLog) { }
public ZstandardDecoder(int maxWindowLog2) { }
public ZstandardDecoder(System.IO.Compression.ZstandardDecompressionOptions decompressionOptions) { }
public ZstandardDecoder(System.IO.Compression.ZstandardDictionary dictionary) { }
public ZstandardDecoder(System.IO.Compression.ZstandardDictionary dictionary, int maxWindowLog) { }
public ZstandardDecoder(System.IO.Compression.ZstandardDictionary dictionary, int maxWindowLog2) { }
public System.Buffers.OperationStatus Decompress(System.ReadOnlySpan<byte> source, System.Span<byte> destination, out int bytesConsumed, out int bytesWritten) { throw null; }
public void Dispose() { }
public void Reset() { }
Expand All @@ -302,7 +302,7 @@ public sealed partial class ZstandardDecompressionOptions
{
public ZstandardDecompressionOptions() { }
public System.IO.Compression.ZstandardDictionary? Dictionary { get { throw null; } set { } }
public int MaxWindowLog { get { throw null; } set { } }
public int MaxWindowLog2 { get { throw null; } set { } }
}
[System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")]
[System.Runtime.Versioning.UnsupportedOSPlatformAttribute("wasi")]
Expand All @@ -321,10 +321,10 @@ public sealed partial class ZstandardEncoder : System.IDisposable
{
public ZstandardEncoder() { }
public ZstandardEncoder(int quality) { }
public ZstandardEncoder(int quality, int windowLog) { }
public ZstandardEncoder(int quality, int windowLog2) { }
public ZstandardEncoder(System.IO.Compression.ZstandardCompressionOptions compressionOptions) { }
public ZstandardEncoder(System.IO.Compression.ZstandardDictionary dictionary) { }
public ZstandardEncoder(System.IO.Compression.ZstandardDictionary dictionary, int windowLog) { }
public ZstandardEncoder(System.IO.Compression.ZstandardDictionary dictionary, int windowLog2) { }
public System.Buffers.OperationStatus Compress(System.ReadOnlySpan<byte> source, System.Span<byte> destination, out int bytesConsumed, out int bytesWritten, bool isFinalBlock) { throw null; }
public void Dispose() { }
public System.Buffers.OperationStatus Flush(System.Span<byte> destination, out int bytesWritten) { throw null; }
Expand All @@ -333,8 +333,8 @@ public void Reset() { }
public void SetPrefix(System.ReadOnlyMemory<byte> prefix) { }
public void SetSourceLength(long length) { }
public static bool TryCompress(System.ReadOnlySpan<byte> source, System.Span<byte> destination, out int bytesWritten) { throw null; }
public static bool TryCompress(System.ReadOnlySpan<byte> source, System.Span<byte> destination, out int bytesWritten, int quality, int windowLog) { throw null; }
public static bool TryCompress(System.ReadOnlySpan<byte> source, System.Span<byte> destination, out int bytesWritten, System.IO.Compression.ZstandardDictionary dictionary, int windowLog) { throw null; }
public static bool TryCompress(System.ReadOnlySpan<byte> source, System.Span<byte> destination, out int bytesWritten, int quality, int windowLog2) { throw null; }
public static bool TryCompress(System.ReadOnlySpan<byte> source, System.Span<byte> destination, out int bytesWritten, System.IO.Compression.ZstandardDictionary dictionary, int windowLog2) { throw null; }
}
[System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")]
[System.Runtime.Versioning.UnsupportedOSPlatformAttribute("wasi")]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -321,7 +321,7 @@
<value>Found truncated data while decoding.</value>
</data>
<data name="ZstandardDecoder_WindowTooLarge" xml:space="preserve">
<value>Data requires too much memory for decoding. Consider increasing the 'maxWindowLog' parameter.</value>
<value>Data requires too much memory for decoding. Consider increasing the 'maxWindowLog2' parameter.</value>
</data>
<data name="ZstandardDecoder_DictionaryWrong" xml:space="preserve">
<value>The provided dictionary is not valid for decoding the current data.</value>
Expand Down
Loading
Loading