org.apache.coyote.http11.filters

## Class ChunkedOutputFilter

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

- All Implemented Interfaces:
    OutputFilter, OutputBuffer

      public class ChunkedOutputFilter
      extends Object
      implements OutputFilter

  Chunked output filter.
  Author:
    Remy Maucherat

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected OutputBuffer` | `buffer` Next buffer in the pipeline.
    `protected ByteChunk` | `chunkHeader` Chunk header.
    `protected byte[]` | `chunkLength` Buffer used for chunk length conversion.
    `protected static ByteChunk` | `END_CHUNK` End chunk.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ChunkedOutputFilter()` Default constructor.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `int` | `doWrite(ByteChunk chunk, Response res)` Write some bytes.
    `long` | `end()` End the current request.
    `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

    - #### END_CHUNK

          protected static final ByteChunk END_CHUNK

      End chunk.

    - #### buffer

          protected OutputBuffer buffer

      Next buffer in the pipeline.

    - #### chunkLength

          protected byte[] chunkLength

      Buffer used for chunk length conversion.

    - #### chunkHeader

          protected ByteChunk chunkHeader

      Chunk header.

  - ### Constructor Detail

    - #### ChunkedOutputFilter

          public ChunkedOutputFilter()

      Default constructor.

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

    - #### 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-2017 Apache Software Foundation. All Rights Reserved.