Class DeflateCompressor

java.lang.Object
org.apache.cassandra.io.compress.DeflateCompressor
All Implemented Interfaces:
ICompressor

public class DeflateCompressor extends Object implements ICompressor
  • Field Details

  • Method Details

    • getThreadLocalScratchBuffer

      public static byte[] getThreadLocalScratchBuffer()
    • create

      public static DeflateCompressor create(Map<String,String> compressionOptions)
    • supportedOptions

      public Set<String> supportedOptions()
      Specified by:
      supportedOptions in interface ICompressor
    • initialCompressedBufferLength

      public int initialCompressedBufferLength(int sourceLen)
      Specified by:
      initialCompressedBufferLength in interface ICompressor
    • compress

      public void compress(ByteBuffer input, ByteBuffer output)
      Description copied from interface: ICompressor
      Compression for ByteBuffers. The data between input.position() and input.limit() is compressed and placed into output starting from output.position(). Positions in both buffers are moved to reflect the bytes read and written. Limits are not changed.
      Specified by:
      compress in interface ICompressor
    • compressArray

      public int compressArray(byte[] input, int inputOffset, int inputLength, byte[] output, int outputOffset, int maxOutputLength)
    • compressBuffer

      public void compressBuffer(ByteBuffer input, ByteBuffer output)
    • uncompress

      public void uncompress(ByteBuffer input, ByteBuffer output) throws IOException
      Description copied from interface: ICompressor
      Decompression for DirectByteBuffers. The data between input.position() and input.limit() is uncompressed and placed into output starting from output.position(). Positions in both buffers are moved to reflect the bytes read and written. Limits are not changed.
      Specified by:
      uncompress in interface ICompressor
      Throws:
      IOException
    • uncompressBuffer

      public void uncompressBuffer(ByteBuffer input, ByteBuffer output) throws IOException
      Throws:
      IOException
    • uncompress

      public int uncompress(byte[] input, int inputOffset, int inputLength, byte[] output, int outputOffset) throws IOException
      Specified by:
      uncompress in interface ICompressor
      Throws:
      IOException
    • uncompress

      public int uncompress(byte[] input, int inputOffset, int inputLength, byte[] output, int outputOffset, int maxOutputLength) throws IOException
      Throws:
      IOException
    • supports

      public boolean supports(BufferType bufferType)
      Description copied from interface: ICompressor
      Checks if the given buffer would be supported by the compressor. If a type is supported, the compressor must be able to use it in combination with all other supported types. Direct and memory-mapped buffers must be supported by all compressors.
      Specified by:
      supports in interface ICompressor
    • preferredBufferType

      public BufferType preferredBufferType()
      Description copied from interface: ICompressor
      Returns the preferred (most efficient) buffer type for this compressor.
      Specified by:
      preferredBufferType in interface ICompressor
    • recommendedUses

      public Set<ICompressor.Uses> recommendedUses()
      Description copied from interface: ICompressor
      Hints to Cassandra which uses this compressor is recommended for. For example a compression algorithm which gets good compression ratio may trade off too much compression speed to be useful in certain compression heavy use cases such as flushes or mutation hints. Note that Cassandra may ignore these recommendations, it is not a strict contract.
      Specified by:
      recommendedUses in interface ICompressor