Class LZ4Compressor

  • All Implemented Interfaces:
    ICompressor

    public class LZ4Compressor
    extends java.lang.Object
    implements ICompressor
    • Field Detail

      • LZ4_FAST_COMPRESSOR

        public static final java.lang.String LZ4_FAST_COMPRESSOR
        See Also:
        Constant Field Values
      • LZ4_HIGH_COMPRESSOR

        public static final java.lang.String LZ4_HIGH_COMPRESSOR
        See Also:
        Constant Field Values
      • LZ4_HIGH_COMPRESSION_LEVEL

        public static final java.lang.String LZ4_HIGH_COMPRESSION_LEVEL
        See Also:
        Constant Field Values
      • LZ4_COMPRESSOR_TYPE

        public static final java.lang.String LZ4_COMPRESSOR_TYPE
        See Also:
        Constant Field Values
    • Method Detail

      • compress

        public void compress​(java.nio.ByteBuffer input,
                             java.nio.ByteBuffer output)
                      throws java.io.IOException
        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
        Throws:
        java.io.IOException
      • uncompress

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

        public void uncompress​(java.nio.ByteBuffer input,
                               java.nio.ByteBuffer output)
                        throws java.io.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:
        java.io.IOException
      • supportedOptions

        public java.util.Set<java.lang.String> supportedOptions()
        Specified by:
        supportedOptions in interface ICompressor
      • 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
      • recommendedUses

        public java.util.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