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
    Modifier and Type | Method and Description
    --- | ---
    `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`

Copyright © 2008-2012 The Netty Project. All Rights Reserved.