Package net.jpountz.lz4
Class LZ4Compressor
java.lang.Object
net.jpountz.lz4.LZ4Compressor
LZ4 compressor.
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 aLZ4Exceptionif 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 aLZ4Exceptionif 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
-