Class FastLz

java.lang.Object
io.netty.handler.codec.compression.FastLz

final class FastLz extends Object
Core of FastLZ compression algorithm. This class provides methods for compression and decompression of buffers and saves constants which use by FastLzFrameEncoder and FastLzFrameDecoder. This is refactored code of jfastlz library written by William Kinney.
  • Field Details

  • Constructor Details

    • FastLz

      private FastLz()
  • Method Details

    • calculateOutputBufferLength

      static int calculateOutputBufferLength(int inputLength)
      The output buffer must be at least 6% larger than the input buffer and can not be smaller than 66 bytes.
      Parameters:
      inputLength - length of input buffer
      Returns:
      Maximum output buffer length
    • compress

      static int compress(ByteBuf input, int inOffset, int inLength, ByteBuf output, int outOffset, int proposedLevel)
      Compress a block of data in the input buffer and returns the size of compressed block. The size of input buffer is specified by length. The minimum input buffer size is 32. If the input is not compressible, the return value might be larger than length (input buffer size).
    • decompress

      static int decompress(ByteBuf input, int inOffset, int inLength, ByteBuf output, int outOffset, int outLength)
      Decompress a block of compressed data and returns the size of the decompressed block. If error occurs, e.g. the compressed data is corrupted or the output buffer is not large enough, then 0 (zero) will be returned instead. Decompression is memory safe and guaranteed not to write the output buffer more than what is specified in outLength.
    • hashFunction

      private static int hashFunction(ByteBuf p, int offset)
    • readU16

      private static int readU16(ByteBuf data, int offset)