Package net.jpountz.lz4
Class LZ4SafeDecompressor
- java.lang.Object
-
- net.jpountz.lz4.LZ4SafeDecompressor
-
- All Implemented Interfaces:
LZ4UnknownSizeDecompressor
public abstract class LZ4SafeDecompressor extends java.lang.Object implements LZ4UnknownSizeDecompressor
LZ4 decompressor that requires the size of the compressed data to be known.Implementations of this class are usually a little slower than those of
LZ4FastDecompressorbut do not require the size of the original data to be known.
-
-
Constructor Summary
Constructors Constructor Description LZ4SafeDecompressor()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description intdecompress(byte[] src, byte[] dest)Convenience method, equivalent to callingdecompress(src, 0, src.length, dest, 0)byte[]decompress(byte[] src, int maxDestLen)Convenience method, equivalent to callingdecompress(src, 0, src.length, maxDestLen).intdecompress(byte[] src, int srcOff, int srcLen, byte[] dest, int destOff)Convenience method, equivalent to callingdecompress(src, srcOff, srcLen, dest, destOff, dest.length - destOff).abstract intdecompress(byte[] src, int srcOff, int srcLen, byte[] dest, int destOff, int maxDestLen)Decompressessrc[srcOff:srcOff+srcLen]intodest[destOff:destOff+maxDestLen]and returns the number of decompressed bytes written intodest.byte[]decompress(byte[] src, int srcOff, int srcLen, int maxDestLen)Convenience method which returnssrc[srcOff:srcOff+srcLen]decompressed.abstract intdecompress(java.nio.ByteBuffer src, int srcOff, int srcLen, java.nio.ByteBuffer dest, int destOff, int maxDestLen)Decompressessrc[srcOff:srcOff+srcLen]intodest[destOff:destOff+maxDestLen]and returns the number of decompressed bytes written intodest.voiddecompress(java.nio.ByteBuffer src, java.nio.ByteBuffer dest)Decompressessrcintodest.java.lang.StringtoString()
-
-
-
Method Detail
-
decompress
public abstract int decompress(byte[] src, int srcOff, int srcLen, byte[] dest, int destOff, int maxDestLen)Decompressessrc[srcOff:srcOff+srcLen]intodest[destOff:destOff+maxDestLen]and returns the number of decompressed bytes written intodest.- Specified by:
decompressin interfaceLZ4UnknownSizeDecompressor- Parameters:
src- the compressed datasrcOff- the start offset in srcsrcLen- the exact size of the compressed datadest- the destination buffer to store the decompressed datadestOff- the start offset in destmaxDestLen- the maximum number of bytes to write in dest- Returns:
- the original input size
- Throws:
LZ4Exception- if maxDestLen is too small
-
decompress
public abstract int decompress(java.nio.ByteBuffer src, int srcOff, int srcLen, java.nio.ByteBuffer dest, int destOff, int maxDestLen)Decompressessrc[srcOff:srcOff+srcLen]intodest[destOff:destOff+maxDestLen]and returns the number of decompressed bytes written intodest. The positions and limits of theByteBuffers remain unchanged.- Parameters:
src- the compressed datasrcOff- the start offset in srcsrcLen- the exact size of the compressed datadest- the destination buffer to store the decompressed datadestOff- the start offset in destmaxDestLen- the maximum number of bytes to write in dest- Returns:
- the original input size
- Throws:
LZ4Exception- if maxDestLen is too small
-
decompress
public final int decompress(byte[] src, int srcOff, int srcLen, byte[] dest, int destOff)Convenience method, equivalent to callingdecompress(src, srcOff, srcLen, dest, destOff, dest.length - destOff).- Specified by:
decompressin interfaceLZ4UnknownSizeDecompressor- Parameters:
src- the compressed datasrcOff- the start offset in srcsrcLen- the exact size of the compressed datadest- the destination buffer to store the decompressed datadestOff- the start offset in dest- Returns:
- the original input size
- Throws:
LZ4Exception- if dest is too small
-
decompress
public final int decompress(byte[] src, byte[] dest)Convenience method, equivalent to callingdecompress(src, 0, src.length, dest, 0)- Parameters:
src- the compressed datadest- the destination buffer to store the decompressed data- Returns:
- the original input size
- Throws:
LZ4Exception- if dest is too small
-
decompress
public final byte[] decompress(byte[] src, int srcOff, int srcLen, int maxDestLen)Convenience method which returnssrc[srcOff:srcOff+srcLen]decompressed.Warning: this method has an important overhead due to the fact that it needs to allocate a buffer to decompress into, and then needs to resize this buffer to the actual decompressed length.
Here is how this method is implemented:
byte[] decompressed = new byte[maxDestLen]; final int decompressedLength = decompress(src, srcOff, srcLen, decompressed, 0, maxDestLen); if (decompressedLength != decompressed.length) { decompressed = Arrays.copyOf(decompressed, decompressedLength); } return decompressed;- Parameters:
src- the compressed datasrcOff- the start offset in srcsrcLen- the exact size of the compressed datamaxDestLen- the maximum number of bytes to write in dest- Returns:
- the decompressed data
- Throws:
LZ4Exception- if maxDestLen is too small
-
decompress
public final byte[] decompress(byte[] src, int maxDestLen)Convenience method, equivalent to callingdecompress(src, 0, src.length, maxDestLen).- Parameters:
src- the compressed datamaxDestLen- the maximum number of bytes to write in dest- Returns:
- the decompressed data
- Throws:
LZ4Exception- if maxDestLen is too small
-
decompress
public final void decompress(java.nio.ByteBuffer src, java.nio.ByteBuffer dest)Decompressessrcintodest.src'sBuffer.remaining()must be exactly the size of the compressed data. This method moves the positions of the buffers.- Parameters:
src- the compressed datadest- the destination buffer to store the decompressed data- Throws:
LZ4Exception- if dest is too small
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
-