From 671079b47c8912b404b2d2fa172259af6037fb38 Mon Sep 17 00:00:00 2001 From: ZongoForSpeed <13649539+ZongoForSpeed@users.noreply.github.com> Date: Sat, 22 Jul 2023 17:17:35 +0200 Subject: [PATCH] Implement other ZSTD compression levels #162 --- .../io/airlift/compress/zstd/ZstdOutputStream.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/main/java/io/airlift/compress/zstd/ZstdOutputStream.java b/src/main/java/io/airlift/compress/zstd/ZstdOutputStream.java index 90a2236c..459f6de8 100644 --- a/src/main/java/io/airlift/compress/zstd/ZstdOutputStream.java +++ b/src/main/java/io/airlift/compress/zstd/ZstdOutputStream.java @@ -45,11 +45,19 @@ public class ZstdOutputStream private boolean closed; + public ZstdOutputStream(OutputStream outputStream) throws IOException + { + this(outputStream, DEFAULT_COMPRESSION_LEVEL); + } + + + public ZstdOutputStream(OutputStream outputStream, int compressionLevel) + throws IOException { this.outputStream = requireNonNull(outputStream, "outputStream is null"); - this.context = new CompressionContext(CompressionParameters.compute(DEFAULT_COMPRESSION_LEVEL, -1), ARRAY_BYTE_BASE_OFFSET, Integer.MAX_VALUE); + this.context = new CompressionContext(CompressionParameters.compute(compressionLevel, -1), ARRAY_BYTE_BASE_OFFSET, Integer.MAX_VALUE); this.maxBufferSize = context.parameters.getWindowSize() * 4; // create output buffer large enough for a single block