Package org.apache.coyote.http11.filters

## Class ChunkedOutputFilter

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

All Implemented Interfaces:
  `HttpOutputBuffer`, `OutputFilter`, `OutputBuffer`

    public class ChunkedOutputFilter
    extends java.lang.Object
    implements OutputFilter

Chunked output filter.

Author:
  Remy Maucherat

### Field Summary

Fields
`protected HttpOutputBuffer` `buffer` Next buffer in the pipeline.
`protected java.nio.ByteBuffer` `chunkHeader` Chunk header.
`protected java.nio.ByteBuffer` `endChunk` End chunk.

### Constructor Summary

Constructors
`ChunkedOutputFilter()` Default constructor.

### Method Summary

All Methods Instance Methods Concrete Methods Deprecated Methods
`int` `doWrite​(java.nio.ByteBuffer chunk)` Write the given data to the response.
`int` `doWrite​(ByteChunk chunk)` Deprecated. Unused.
`void` `end()` Finish writing the current response.
`void` `flush()` Flushes any unwritten data to the client.
`long` `getBytesWritten()` Bytes written to the underlying socket.
`void` `recycle()` Make the filter ready to process the next request.
`void` `setBuffer​(HttpOutputBuffer 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

#### buffer

    protected HttpOutputBuffer buffer

Next buffer in the pipeline.

#### chunkHeader

    protected final java.nio.ByteBuffer chunkHeader

Chunk header.

#### endChunk

    protected final java.nio.ByteBuffer endChunk

End chunk.

### Constructor Detail

#### ChunkedOutputFilter

    public ChunkedOutputFilter()

Default constructor.

### Method Detail

#### doWrite

    @Deprecated
    public int doWrite​(ByteChunk chunk)
                throws java.io.IOException

Deprecated.
Unused. Will be removed in Tomcat 9. Use `doWrite(ByteBuffer)`
Description copied from interface: `OutputBuffer`
Write the given data to the response. The caller owns the chunks.

Specified by:
  `doWrite` in interface `OutputBuffer`
Parameters:
  `chunk` - data to write
Returns:
  The number of bytes written which may be less than available in the input chunk
Throws:
  `java.io.IOException` - an underlying I/O error occurred

#### doWrite

    public int doWrite​(java.nio.ByteBuffer chunk)
                throws java.io.IOException

Description copied from interface: `OutputBuffer`
Write the given data to the response. The caller owns the chunks.

Specified by:
  `doWrite` in interface `OutputBuffer`
Parameters:
  `chunk` - data to write
Returns:
  The number of bytes written which may be less than available in the input chunk
Throws:
  `java.io.IOException` - an underlying I/O error occurred

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

Description copied from interface: `OutputFilter`
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`
Parameters:
  `response` - The response to associate with this OutputFilter

#### setBuffer

    public void setBuffer​(HttpOutputBuffer buffer)

Description copied from interface: `OutputFilter`
Set the next buffer in the filter pipeline.

Specified by:
  `setBuffer` in interface `OutputFilter`
Parameters:
  `buffer` - The next buffer instance

#### flush

    public void flush()
               throws java.io.IOException

Description copied from interface: `HttpOutputBuffer`
Flushes any unwritten data to the client.

Specified by:
  `flush` in interface `HttpOutputBuffer`
Throws:
  `java.io.IOException` - If an I/O error occurs while flushing

#### end

    public void end()
             throws java.io.IOException

Description copied from interface: `HttpOutputBuffer`
Finish writing the current response. It is acceptable to write extra bytes using `OutputBuffer.doWrite(java.nio.ByteBuffer)` during the execution of this method.

Specified by:
  `end` in interface `HttpOutputBuffer`
Throws:
  `java.io.IOException` - If an I/O error occurs while writing to the client

#### recycle

    public void recycle()

Description copied from interface: `OutputFilter`
Make the filter ready to process the next request.

Specified by:
  `recycle` in interface `OutputFilter`