Class LZ4Compressor
Instances of this class are thread-safe.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionfinal byte[]compress(byte[] src) Convenience method, equivalent to callingcompress(src, 0, src.length).final intcompress(byte[] src, byte[] dest) Convenience method, equivalent to callingcompress(src, 0, src.length, dest, 0).final byte[]compress(byte[] src, int srcOff, int srcLen) Convenience method which returnssrc[srcOff:srcOff+srcLen]compressed.final intcompress(byte[] src, int srcOff, int srcLen, byte[] dest, int destOff) Convenience method, equivalent to callingcompress(src, srcOff, srcLen, dest, destOff, dest.length - destOff).abstract intcompress(byte[] src, int srcOff, int srcLen, byte[] dest, int destOff, int maxDestLen) Compressessrc[srcOff:srcOff+srcLen]intodest[destOff:destOff+maxDestLen]and returns the compressed length.abstract intcompress(ByteBuffer src, int srcOff, int srcLen, ByteBuffer dest, int destOff, int maxDestLen) Compressessrc[srcOff:srcOff+srcLen]intodest[destOff:destOff+maxDestLen]and returns the compressed length.final voidcompress(ByteBuffer src, ByteBuffer dest) Compressessrcintodest.final intmaxCompressedLength(int length) Returns the maximum compressed length for an input of sizelength.toString()
-
Constructor Details
-
LZ4Compressor
public LZ4Compressor()
-
-
Method Details
-
maxCompressedLength
public final int maxCompressedLength(int length) Returns the maximum compressed length for an input of sizelength.- Parameters:
length- the input size in bytes- Returns:
- the maximum compressed length in bytes
-
compress
public abstract int compress(byte[] src, int srcOff, int srcLen, byte[] dest, int destOff, int maxDestLen) Compressessrc[srcOff:srcOff+srcLen]intodest[destOff:destOff+maxDestLen]and returns the compressed length.This method will throw a
LZ4Exceptionif this compressor is unable to compress the input into less thanmaxDestLenbytes. To prevent this exception to be thrown, you should make sure thatmaxDestLen >= maxCompressedLength(srcLen).- Parameters:
src- the source datasrcOff- the start offset in srcsrcLen- the number of bytes to compressdest- the destination bufferdestOff- the start offset in destmaxDestLen- the maximum number of bytes to write in dest- Returns:
- the compressed size
- Throws:
LZ4Exception- if maxDestLen is too small
-
compress
public abstract int compress(ByteBuffer src, int srcOff, int srcLen, ByteBuffer dest, int destOff, int maxDestLen) Compressessrc[srcOff:srcOff+srcLen]intodest[destOff:destOff+maxDestLen]and returns the compressed length.This method will throw a
LZ4Exceptionif this compressor is unable to compress the input into less thanmaxDestLenbytes. To prevent this exception to be thrown, you should make sure thatmaxDestLen >= maxCompressedLength(srcLen).ByteBufferpositions remain unchanged.- Parameters:
src- the source datasrcOff- the start offset in srcsrcLen- the number of bytes to compressdest- the destination bufferdestOff- the start offset in destmaxDestLen- the maximum number of bytes to write in dest- Returns:
- the compressed size
- Throws:
LZ4Exception- if maxDestLen is too small
-
compress
public final int compress(byte[] src, int srcOff, int srcLen, byte[] dest, int destOff) Convenience method, equivalent to callingcompress(src, srcOff, srcLen, dest, destOff, dest.length - destOff).- Parameters:
src- the source datasrcOff- the start offset in srcsrcLen- the number of bytes to compressdest- the destination bufferdestOff- the start offset in dest- Returns:
- the compressed size
- Throws:
LZ4Exception- if dest is too small
-
compress
public final int compress(byte[] src, byte[] dest) Convenience method, equivalent to callingcompress(src, 0, src.length, dest, 0).- Parameters:
src- the source datadest- the destination buffer- Returns:
- the compressed size
- Throws:
LZ4Exception- if dest is too small
-
compress
public final byte[] compress(byte[] src, int srcOff, int srcLen) Convenience method which returnssrc[srcOff:srcOff+srcLen]compressed.Warning: this method has an important overhead due to the fact that it needs to allocate a buffer to compress into, and then needs to resize this buffer to the actual compressed length.
Here is how this method is implemented:
final int maxCompressedLength = maxCompressedLength(srcLen); final byte[] compressed = new byte[maxCompressedLength]; final int compressedLength = compress(src, srcOff, srcLen, compressed, 0); return Arrays.copyOf(compressed, compressedLength);
- Parameters:
src- the source datasrcOff- the start offset in srcsrcLen- the number of bytes to compress- Returns:
- the compressed data
-
compress
public final byte[] compress(byte[] src) Convenience method, equivalent to callingcompress(src, 0, src.length).- Parameters:
src- the source data- Returns:
- the compressed data
-
compress
- Parameters:
src- the source datadest- the destination buffer- Throws:
LZ4Exception- if dest is too small
-
toString
-