Interface ICompressor

    • Nested Class Summary

      Nested Classes 
      Modifier and Type Interface Description
      static class  ICompressor.Uses
      Ways that a particular instance of ICompressor should be used internally in Cassandra.
    • Method Detail

      • initialCompressedBufferLength

        int initialCompressedBufferLength​(int chunkLength)
      • uncompress

        int uncompress​(byte[] input,
                       int inputOffset,
                       int inputLength,
                       byte[] output,
                       int outputOffset)
                throws java.io.IOException
        Throws:
        java.io.IOException
      • compress

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

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

        BufferType preferredBufferType()
        Returns the preferred (most efficient) buffer type for this compressor.
      • supports

        boolean supports​(BufferType bufferType)
        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.
      • supportedOptions

        java.util.Set<java.lang.String> supportedOptions()
      • recommendedUses

        default java.util.Set<ICompressor.Uses> recommendedUses()
        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.