org.apache.coyote.http11.filters

## Class GzipOutputFilter

- java.lang.Object
- - org.apache.coyote.http11.filters.GzipOutputFilter

- All Implemented Interfaces:
    OutputFilter, OutputBuffer

      public class GzipOutputFilter
      extends Object
      implements OutputFilter

  Gzip output filter.
  Author:
    Remy Maucherat

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `protected class` | `GzipOutputFilter.FakeOutputStream`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected OutputBuffer` | `buffer` Next buffer in the pipeline.
    `protected GZIPOutputStream` | `compressionStream` Compression output stream.
    `protected OutputStream` | `fakeOutputStream` Fake internal output stream.
    `protected static Log` | `log` Logger.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `GzipOutputFilter()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `int` | `doWrite(ByteChunk chunk, Response res)` Write some bytes.
    `long` | `end()` End the current request.
    `void` | `flush()` Added to allow flushing to happen for the gzip'ed outputstream
    `long` | `getBytesWritten()` Bytes written to the underlying socket.
    `void` | `recycle()` Make the filter ready to process the next request.
    `void` | `setBuffer(OutputBuffer buffer)` Set the next buffer in the filter pipeline.
    `void` | `setResponse(Response response)` Some filters need additional parameters from the response.

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

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

- - ### Field Detail

    - #### log

          protected static Log log

      Logger.

    - #### buffer

          protected OutputBuffer buffer

      Next buffer in the pipeline.

    - #### compressionStream

          protected GZIPOutputStream compressionStream

      Compression output stream.

    - #### fakeOutputStream

          protected OutputStream fakeOutputStream

      Fake internal output stream.

  - ### Constructor Detail

    - #### GzipOutputFilter

          public GzipOutputFilter()

  - ### Method Detail

    - #### doWrite

          public int doWrite(ByteChunk chunk,
                    Response res)
                      throws IOException

      Write some bytes.
      Specified by:
        `doWrite` in interface `OutputFilter`
      Specified by:
        `doWrite` in interface `OutputBuffer`
      Parameters:
        `chunk` - data to write
        `res` - used to allow buffers that can be shared by multiple responses.
      Returns:
        number of bytes written by the filter
      Throws:
        `IOException`

    - #### getBytesWritten

          public long getBytesWritten()

      Description copied from interface: `OutputBuffer`
      Bytes written to the underlying socket. This includes the effects of chunking, compression, etc.
      Specified by:
        `getBytesWritten` in interface `OutputBuffer`
      Returns:
        Bytes written for the current request

    - #### flush

          public void flush()

      Added to allow flushing to happen for the gzip'ed outputstream

    - #### setResponse

          public void setResponse(Response response)

      Some filters need additional parameters from the response. All the necessary reading can occur in that method, as this method is called after the response header processing is complete.
      Specified by:
        `setResponse` in interface `OutputFilter`

    - #### setBuffer

          public void setBuffer(OutputBuffer buffer)

      Set the next buffer in the filter pipeline.
      Specified by:
        `setBuffer` in interface `OutputFilter`

    - #### end

          public long end()
                   throws IOException

      End the current request. It is acceptable to write extra bytes using buffer.doWrite during the execution of this method.
      Specified by:
        `end` in interface `OutputFilter`
      Returns:
        Should return 0 unless the filter does some content length delimitation, in which case the number is the amount of extra bytes or missing bytes, which would indicate an error. Note: It is recommended that extra bytes be swallowed by the filter.
      Throws:
        `IOException`

    - #### recycle

          public void recycle()

      Make the filter ready to process the next request.
      Specified by:
        `recycle` in interface `OutputFilter`

Copyright © 2000-2016 Apache Software Foundation. All Rights Reserved.