--- /dev/null
+package org.simantics.lz4;\r
+\r
+import java.io.File;\r
+import java.io.FileNotFoundException;\r
+import java.io.InputStream;\r
+import java.io.OutputStream;\r
+import java.nio.ByteBuffer;\r
+\r
+import org.simantics.compressions.CompressionCodec;\r
+import org.simantics.compressions.Compressions;\r
+\r
+public class LZ4Codec implements CompressionCodec {\r
+ \r
+ public LZ4Codec() {\r
+ }\r
+ \r
+ @Override\r
+ public int compressBound(int inputSize) {\r
+ return LZ4.compressBound(inputSize);\r
+ }\r
+\r
+ @Override\r
+ public int compressBuffer(ByteBuffer input, int inputOffset,\r
+ int length, ByteBuffer output, int outputOffset) {\r
+ return LZ4.compressBuffer(input, inputOffset, length, output, outputOffset);\r
+ }\r
+\r
+ @Override\r
+ public int decompressBuffer(ByteBuffer input, int inputOffset,\r
+ int length, ByteBuffer output, int outputOffset, int maxout) {\r
+ return LZ4.decompressBuffer(input, inputOffset, length, output, outputOffset, maxout);\r
+ }\r
+\r
+ @Override\r
+ public InputStream read(File file) throws FileNotFoundException {\r
+ return LZ4.read(file);\r
+ }\r
+\r
+ @Override\r
+ public OutputStream write(File file) throws FileNotFoundException {\r
+ return LZ4.write(file);\r
+ }\r
+\r
+ @Override\r
+ public int compress(byte[] uncompressedData, int srcOff, int srcLength,\r
+ byte[] compressedData, int destOff) {\r
+ return LZ4.getInstance().fastCompressor().compress(uncompressedData, srcOff, srcLength, compressedData, destOff);\r
+ }\r
+\r
+ @Override\r
+ public byte[] decompress(byte[] compressedData, int srcOff,\r
+ int uncompressedLength) {\r
+ return LZ4.getInstance().fastDecompressor().decompress(compressedData, srcOff, uncompressedLength);\r
+ }\r
+\r
+ @Override\r
+ public String getId() {\r
+ return Compressions.LZ4;\r
+ }\r
+\r
+}\r