Home All Groups
lz4-java / net / jpountz / lz4 / LZ4CompressorWithLength.html /
net.jpountz.lz4

Class LZ4CompressorWithLength

  • java.lang.Object
    • net.jpountz.lz4.LZ4CompressorWithLength

  • public class LZ4CompressorWithLength
    extends java.lang.Object
    Covenience class to include the length of the original decompressed data in the output compressed data, so that the user does not need to save the length at anywhere else. The compressed data must be decompressed by LZ4DecompressorWithLength and is NOT compatible with any other decompressors in lz4-java or any other lz4 tools. This class deliberately does not extend LZ4Compressor because they are not interchangable.
    • Constructor Summary

      Constructors 
      Constructor and Description
      LZ4CompressorWithLength(LZ4Compressor compressor)
      Creates a new compressor that includes the length of the original decompressed data in the output compressed data.
    • Method Summary

      Methods 
      Modifier and TypeMethod and Description
      byte[]compress(byte[] src)
      Convenience method, equivalent to calling compress(src, 0, src.length).
      intcompress(byte[] src, byte[] dest)
      Convenience method, equivalent to calling compress(src, 0, src.length, dest, 0).
      byte[]compress(byte[] src, int srcOff, int srcLen)
      Convenience method which returns src[srcOff:srcOff+srcLen] compressed.
      intcompress(byte[] src, int srcOff, int srcLen, byte[] dest, int destOff)
      Convenience method, equivalent to calling compress(src, srcOff, srcLen, dest, destOff, dest.length - destOff).
      intcompress(byte[] src, int srcOff, int srcLen, byte[] dest, int destOff, int maxDestLen)
      Compresses src[srcOff:srcOff+srcLen] into dest[destOff:destOff+maxDestLen] and returns the compressed length.
      voidcompress(java.nio.ByteBuffer src, java.nio.ByteBuffer dest)
      Compresses src into dest.
      intcompress(java.nio.ByteBuffer src, int srcOff, int srcLen, java.nio.ByteBuffer dest, int destOff, int maxDestLen)
      Compresses src[srcOff:srcOff+srcLen] into dest[destOff:destOff+maxDestLen] and returns the compressed length.
      intmaxCompressedLength(int length)
      Returns the maximum compressed length for an input of size length.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • LZ4CompressorWithLength

        public LZ4CompressorWithLength(LZ4Compressor compressor)
        Creates a new compressor that includes the length of the original decompressed data in the output compressed data.
        Parameters:
        compressor - compressor to use
    • Method Detail

      • maxCompressedLength

        public int maxCompressedLength(int length)
        Returns the maximum compressed length for an input of size length.
        Parameters:
        length - the input size in bytes
        Returns:
        the maximum compressed length in bytes
      • compress

        public byte[] compress(byte[] src)
        Convenience method, equivalent to calling compress(src, 0, src.length).
        Parameters:
        src - the source data
        Returns:
        the compressed data
      • compress

        public byte[] compress(byte[] src,
                      int srcOff,
                      int srcLen)
        Convenience method which returns src[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 data
        srcOff - the start offset in src
        srcLen - the number of bytes to compress
        Returns:
        the compressed data
      • compress

        public int compress(byte[] src,
                   byte[] dest)
        Convenience method, equivalent to calling compress(src, 0, src.length, dest, 0).
        Parameters:
        src - the source data
        dest - the destination buffer
        Returns:
        the compressed size
        Throws:
        LZ4Exception - if dest is too small
      • compress

        public int compress(byte[] src,
                   int srcOff,
                   int srcLen,
                   byte[] dest,
                   int destOff)
        Convenience method, equivalent to calling compress(src, srcOff, srcLen, dest, destOff, dest.length - destOff).
        Parameters:
        src - the source data
        srcOff - the start offset in src
        srcLen - the number of bytes to compress
        dest - the destination buffer
        destOff - the start offset in dest
        Returns:
        the compressed size
        Throws:
        LZ4Exception - if dest is too small
      • compress

        public int compress(byte[] src,
                   int srcOff,
                   int srcLen,
                   byte[] dest,
                   int destOff,
                   int maxDestLen)
        Compresses src[srcOff:srcOff+srcLen] into dest[destOff:destOff+maxDestLen] and returns the compressed length. This method will throw a LZ4Exception if this compressor is unable to compress the input into less than maxDestLen bytes. To prevent this exception to be thrown, you should make sure that maxDestLen >= maxCompressedLength(srcLen).
        Parameters:
        src - the source data
        srcOff - the start offset in src
        srcLen - the number of bytes to compress
        dest - the destination buffer
        destOff - the start offset in dest
        maxDestLen - the maximum number of bytes to write in dest
        Returns:
        the compressed size
        Throws:
        LZ4Exception - if maxDestLen is too small
      • compress

        public void compress(java.nio.ByteBuffer src,
                    java.nio.ByteBuffer dest)
        Compresses src into dest. Calling this method will update the positions of both ByteBuffers.
        Parameters:
        src - the source data
        dest - the destination buffer
        Throws:
        LZ4Exception - if dest is too small
      • compress

        public int compress(java.nio.ByteBuffer src,
                   int srcOff,
                   int srcLen,
                   java.nio.ByteBuffer dest,
                   int destOff,
                   int maxDestLen)
        Compresses src[srcOff:srcOff+srcLen] into dest[destOff:destOff+maxDestLen] and returns the compressed length. This method will throw a LZ4Exception if this compressor is unable to compress the input into less than maxDestLen bytes. To prevent this exception to be thrown, you should make sure that maxDestLen >= maxCompressedLength(srcLen). ByteBuffer positions remain unchanged.
        Parameters:
        src - the source data
        srcOff - the start offset in src
        srcLen - the number of bytes to compress
        dest - the destination buffer
        destOff - the start offset in dest
        maxDestLen - the maximum number of bytes to write in dest
        Returns:
        the compressed size
        Throws:
        LZ4Exception - if maxDestLen is too small