org.apache.cassandra.io.compress

## Class DeflateCompressor

- java.lang.Object
- - org.apache.cassandra.io.compress.DeflateCompressor

All Implemented Interfaces:
  ICompressor

    public class DeflateCompressor
    extends java.lang.Object
    implements ICompressor

### Field Summary

Fields
`static DeflateCompressor` `instance`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`void` `compress(java.nio.ByteBuffer input, java.nio.ByteBuffer output)` Compression for ByteBuffers.
`int` `compressArray(byte[] input, int inputOffset, int inputLength, byte[] output, int outputOffset, int maxOutputLength)`
`void` `compressBuffer(java.nio.ByteBuffer input, java.nio.ByteBuffer output)`
`static DeflateCompressor` `create(java.util.Map<java.lang.String,java.lang.String> compressionOptions)`
`int` `initialCompressedBufferLength(int sourceLen)`
`BufferType` `preferredBufferType()` Returns the preferred (most efficient) buffer type for this compressor.
`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)`
`int` `uncompress(byte[] input, int inputOffset, int inputLength, byte[] output, int outputOffset, int maxOutputLength)`
`void` `uncompress(java.nio.ByteBuffer input, java.nio.ByteBuffer output)` Decompression for DirectByteBuffers.
`void` `uncompressBuffer(java.nio.ByteBuffer input, java.nio.ByteBuffer output)`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### instance

    public static final DeflateCompressor instance

### Method Detail

#### create

    public static DeflateCompressor create(java.util.Map<java.lang.String,java.lang.String> compressionOptions)

#### supportedOptions

    public java.util.Set<java.lang.String> supportedOptions()

Specified by:
  `supportedOptions` in interface `ICompressor`

#### initialCompressedBufferLength

    public int initialCompressedBufferLength(int sourceLen)

Specified by:
  `initialCompressedBufferLength` in interface `ICompressor`

#### compress

    public void compress(java.nio.ByteBuffer input,
                         java.nio.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(java.nio.ByteBuffer input,
                               java.nio.ByteBuffer output)

#### 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`

#### uncompressBuffer

    public void uncompressBuffer(java.nio.ByteBuffer input,
                                 java.nio.ByteBuffer output)
                          throws java.io.IOException

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 int uncompress(byte[] input,
                          int inputOffset,
                          int inputLength,
                          byte[] output,
                          int outputOffset,
                          int maxOutputLength)
                   throws java.io.IOException

Throws:
  `java.io.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`