aboutsummaryrefslogtreecommitdiffstats
path: root/config
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2021-05-07 18:42:07 +0200
committerHenning Baldersheim <balder@yahoo-inc.com>2021-05-07 18:42:07 +0200
commit6801c04529016e88e56e313fe669af29086bf1e7 (patch)
treed60989720b5a40e619e9b1943cfff76ced53f3f1 /config
parent1cd09a5f441e7ec7252209b8d0090892c271cc56 (diff)
Add ByteBuffer to the interface to prepare for less copying of data.
Diffstat (limited to 'config')
-rw-r--r--config/src/main/java/com/yahoo/vespa/config/LZ4PayloadCompressor.java10
1 files changed, 10 insertions, 0 deletions
diff --git a/config/src/main/java/com/yahoo/vespa/config/LZ4PayloadCompressor.java b/config/src/main/java/com/yahoo/vespa/config/LZ4PayloadCompressor.java
index 688d6d54888..03e08e039ae 100644
--- a/config/src/main/java/com/yahoo/vespa/config/LZ4PayloadCompressor.java
+++ b/config/src/main/java/com/yahoo/vespa/config/LZ4PayloadCompressor.java
@@ -5,6 +5,8 @@ import com.yahoo.compress.CompressionType;
import com.yahoo.compress.Compressor;
import com.yahoo.vespa.config.util.ConfigUtils;
+import java.nio.ByteBuffer;
+
/**
* Wrapper for LZ4 compression that selects compression level based on properties.
*
@@ -24,9 +26,17 @@ public class LZ4PayloadCompressor {
public byte[] compress(byte[] input) {
return compressor.compressUnconditionally(input);
}
+ public byte[] compress(ByteBuffer input) {
+ return compressor.compressUnconditionally(input);
+ }
public byte [] decompress(byte[] input, int uncompressedLen) {
return compressor.decompressUnconditionally(input, 0, uncompressedLen);
}
+ public byte [] decompress(ByteBuffer input, int uncompressedLen) {
+ ByteBuffer uncompressed = ByteBuffer.allocate(uncompressedLen);
+ compressor.decompressUnconditionally(input, uncompressed);
+ return uncompressed.array();
+ }
}