Package org.apache.druid.segment.data
Class CompressionStrategy.Compressor
java.lang.Object
org.apache.druid.segment.data.CompressionStrategy.Compressor
- Direct Known Subclasses:
CompressionStrategy.LZ4Compressor,CompressionStrategy.LZFCompressor,CompressionStrategy.UncompressedCompressor,CompressionStrategy.ZstdCompressor
- Enclosing class:
- CompressionStrategy
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionallocateInBuffer(int inputSize, Closer closer) Allocates a buffer that should be passed tocompress(java.nio.ByteBuffer, java.nio.ByteBuffer)method as input buffer.abstract ByteBufferallocateOutBuffer(int inputSize, Closer closer) Allocates a buffer that should be passed tocompress(java.nio.ByteBuffer, java.nio.ByteBuffer)method as output buffer.abstract ByteBuffercompress(ByteBuffer in, ByteBuffer out) Returns a ByteBuffer with compressed contents of in between it's position and limit.
-
Constructor Details
-
Compressor
public Compressor()
-
-
Method Details
-
allocateInBuffer
Allocates a buffer that should be passed tocompress(java.nio.ByteBuffer, java.nio.ByteBuffer)method as input buffer. Different Compressors require (or work more efficiently with) different kinds of buffers.If the allocated buffer is a direct buffer, it should be registered to be freed with the given Closer.
-
allocateOutBuffer
Allocates a buffer that should be passed tocompress(java.nio.ByteBuffer, java.nio.ByteBuffer)method as output buffer. Different Compressors require (or work more efficiently with) different kinds of buffers.Allocates a buffer that is always enough to compress a byte sequence of the given size.
If the allocated buffer is a direct buffer, it should be registered to be freed with the given Closer.
-
compress
Returns a ByteBuffer with compressed contents of in between it's position and limit. It may be the provided out ByteBuffer, or the in ByteBuffer, depending on the implementation.out's position and limit are not respected and could be discarded.Contents of
inbetween it's position and limit are compressed. It's contents, position and limit shouldn't be changed in compress() method.
-