## org.apache.hadoop.io.compress
Interface Decompressor

All Known Implementing Classes:
  BuiltInGzipDecompressor, BuiltInZlibInflater, BZip2DummyDecompressor, ZlibDecompressor

    public interface Decompressor

Specification of a stream-based 'de-compressor' which can be plugged into a `CompressionInputStream` to compress data. This is modelled after `Inflater`

Method Summary
`int` `decompress(byte[] b, int off, int len)` Fills specified buffer with uncompressed data.
`void` `end()` Closes the decompressor and discards any unprocessed input.
`boolean` `finished()` Returns true if the end of the decompressed data output stream has been reached.
`int` `getRemaining()` Returns the number of bytes remaining in the compressed-data buffer; typically called after the decompressor has finished decompressing the current gzip stream (a.k.a.
`boolean` `needsDictionary()` Returns `true` if a preset dictionary is needed for decompression.
`boolean` `needsInput()` Returns true if the input data buffer is empty and `setInput(byte[], int, int)` should be called to provide more input.
`void` `reset()` Resets decompressor and input and output buffers so that a new set of input data can be processed.
`void` `setDictionary(byte[] b, int off, int len)` Sets preset dictionary for compression.
`void` `setInput(byte[] b, int off, int len)` Sets input data for decompression.

Method Detail

### setInput

    void setInput(byte[] b,
                  int off,
                  int len)

  Sets input data for decompression. This should be called if and only if `needsInput()` returns `true` indicating that more input data is required. (Both native and non-native versions of various Decompressors require that the data passed in via `b[]` remain unmodified until the caller is explicitly notified--via `needsInput()`--that the buffer may be safely modified. With this requirement, an extra buffer-copy can be avoided.)

  Parameters:
    `b` - Input data
    `off` - Start offset
    `len` - Length

### needsInput

    boolean needsInput()

  Returns true if the input data buffer is empty and `setInput(byte[], int, int)` should be called to provide more input.

  Returns:
    `true` if the input data buffer is empty and `setInput(byte[], int, int)` should be called in order to provide more input.

### setDictionary

    void setDictionary(byte[] b,
                       int off,
                       int len)

  Sets preset dictionary for compression. A preset dictionary is used when the history buffer can be predetermined.

  Parameters:
    `b` - Dictionary data bytes
    `off` - Start offset
    `len` - Length

### needsDictionary

    boolean needsDictionary()

  Returns `true` if a preset dictionary is needed for decompression.

  Returns:
    `true` if a preset dictionary is needed for decompression

### finished

    boolean finished()

  Returns true if the end of the decompressed data output stream has been reached.

  Returns:
    `true` if the end of the decompressed data output stream has been reached.

### decompress

    int decompress(byte[] b,
                   int off,
                   int len)
                   throws IOException

  Fills specified buffer with uncompressed data. Returns actual number of bytes of uncompressed data. A return value of 0 indicates that `needsInput()` should be called in order to determine if more input data is required.

  Parameters:
    `b` - Buffer for the compressed data
    `off` - Start offset of the data
    `len` - Size of the buffer
  Returns:
    The actual number of bytes of compressed data.
  Throws:
    `IOException`

### getRemaining

    int getRemaining()

  Returns the number of bytes remaining in the compressed-data buffer; typically called after the decompressor has finished decompressing the current gzip stream (a.k.a. "member").

### reset

    void reset()

  Resets decompressor and input and output buffers so that a new set of input data can be processed.

### end

    void end()

  Closes the decompressor and discards any unprocessed input.

Copyright © 2009 The Apache Software Foundation