]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.lz4/src/org/simantics/lz4/LZ4Codec.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.lz4 / src / org / simantics / lz4 / LZ4Codec.java
diff --git a/bundles/org.simantics.lz4/src/org/simantics/lz4/LZ4Codec.java b/bundles/org.simantics.lz4/src/org/simantics/lz4/LZ4Codec.java
new file mode 100644 (file)
index 0000000..6f68223
--- /dev/null
@@ -0,0 +1,61 @@
+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