org.jboss.netty.handler.codec.http

## Class HttpContentCompressor

- java.lang.Object
- - org.jboss.netty.channel.SimpleChannelHandler
  - - org.jboss.netty.handler.codec.http.HttpContentEncoder
    - - org.jboss.netty.handler.codec.http.HttpContentCompressor

All Implemented Interfaces:
  ChannelDownstreamHandler, ChannelHandler, ChannelUpstreamHandler, LifeCycleAwareChannelHandler

    public class HttpContentCompressor
    extends HttpContentEncoder

Compresses an `HttpMessage` and an `HttpChunk` in `gzip` or `deflate` encoding while respecting the `"Accept-Encoding"` header. If there is no matching encoding, no compression is done. For more information on how this handler modifies the message, please refer to `HttpContentEncoder`.

### Nested Class Summary

### Nested classes/interfaces inherited from interface org.jboss.netty.channel.ChannelHandler

`ChannelHandler.Sharable`

### Constructor Summary

Constructors
Constructor and Description
`HttpContentCompressor()` Creates a new handler with the default compression level (`6`), default window size (`15`) and default memory level (`8`).
`HttpContentCompressor(int compressionLevel)` Creates a new handler with the specified compression level, default window size (`15`) and default memory level (`8`).
`HttpContentCompressor(int compressionLevel, int windowBits, int memLevel)` Creates a new handler with the specified compression level, window size, and memory level..

### Method Summary

Methods
`protected String` `getTargetContentEncoding(String acceptEncoding)` Returns the expected content encoding of the encoded content.
`protected EncoderEmbedder<ChannelBuffer>` `newContentEncoder(HttpMessage msg, String acceptEncoding)` Returns a new `EncoderEmbedder` that encodes the HTTP message content.

### Methods inherited from class org.jboss.netty.handler.codec.http.HttpContentEncoder

`afterAdd, afterRemove, beforeAdd, beforeRemove, channelClosed, messageReceived, writeRequested`

### Methods inherited from class org.jboss.netty.channel.SimpleChannelHandler

`bindRequested, channelBound, channelConnected, channelDisconnected, channelInterestChanged, channelOpen, channelUnbound, childChannelClosed, childChannelOpen, closeRequested, connectRequested, disconnectRequested, exceptionCaught, handleDownstream, handleUpstream, setInterestOpsRequested, unbindRequested, writeComplete`

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

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

### Constructor Detail

#### HttpContentCompressor

    public HttpContentCompressor()

Creates a new handler with the default compression level (`6`), default window size (`15`) and default memory level (`8`).

#### HttpContentCompressor

    public HttpContentCompressor(int compressionLevel)

Creates a new handler with the specified compression level, default window size (`15`) and default memory level (`8`).

Parameters:
  `compressionLevel` - `1` yields the fastest compression and `9` yields the best compression. `0` means no compression. The default compression level is `6`.

#### HttpContentCompressor

    public HttpContentCompressor(int compressionLevel,
                         int windowBits,
                         int memLevel)

Creates a new handler with the specified compression level, window size, and memory level..

Parameters:
  `compressionLevel` - `1` yields the fastest compression and `9` yields the best compression. `0` means no compression. The default compression level is `6`.
  `windowBits` - The base two logarithm of the size of the history buffer. The value should be in the range `9` to `15` inclusive. Larger values result in better compression at the expense of memory usage. The default value is `15`.
  `memLevel` - How much memory should be allocated for the internal compression state. `1` uses minimum memory and `9` uses maximum memory. Larger values result in better and faster compression at the expense of memory usage. The default value is `8`

### Method Detail

#### newContentEncoder

    protected EncoderEmbedder<ChannelBuffer> newContentEncoder(HttpMessage msg,
                                                   String acceptEncoding)
                                                        throws Exception

Description copied from class: `HttpContentEncoder`
Returns a new `EncoderEmbedder` that encodes the HTTP message content.

Specified by:
  `newContentEncoder` in class `HttpContentEncoder`
  `acceptEncoding` - the value of the `"Accept-Encoding"` header
Returns:
  a new `EncoderEmbedder` if there is a supported encoding in `acceptEncoding`. `null` otherwise.
Throws:
  `Exception`

#### getTargetContentEncoding

    protected String getTargetContentEncoding(String acceptEncoding)
                                       throws Exception

Description copied from class: `HttpContentEncoder`
Returns the expected content encoding of the encoded content.

Specified by:
  `getTargetContentEncoding` in class `HttpContentEncoder`
Parameters:
  `acceptEncoding` - the value of the `"Accept-Encoding"` header
Returns:
  the expected content encoding of the new content
Throws:
  `Exception`