Package org.apache.cassandra.io.compress
Interface ICompressor
-
- All Known Implementing Classes:
DeflateCompressor
,LZ4Compressor
,NoopCompressor
,SnappyCompressor
,ZstdCompressor
public 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 Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description void
compress(java.nio.ByteBuffer input, java.nio.ByteBuffer output)
Compression for ByteBuffers.int
initialCompressedBufferLength(int chunkLength)
BufferType
preferredBufferType()
Returns the preferred (most efficient) buffer type for this compressor.default java.util.Set<ICompressor.Uses>
recommendedUses()
Hints to Cassandra which uses this compressor is recommended for.java.util.Set<java.lang.String>
supportedOptions()
boolean
supports(BufferType bufferType)
Checks if the given buffer would be supported by the compressor.int
uncompress(byte[] input, int inputOffset, int inputLength, byte[] output, int outputOffset)
void
uncompress(java.nio.ByteBuffer input, java.nio.ByteBuffer output)
Decompression for DirectByteBuffers.
-
-
-
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.
-
-