Class ChunkedOutputFilter

java.lang.Object
org.apache.coyote.http11.filters.ChunkedOutputFilter
All Implemented Interfaces:
HttpOutputBuffer, OutputFilter, OutputBuffer

public class ChunkedOutputFilter extends Object implements OutputFilter
Chunked output filter.
Author:
Remy Maucherat
  • Field Details

    • buffer

      protected HttpOutputBuffer buffer
      Next buffer in the pipeline.
    • chunkHeader

      protected final ByteBuffer chunkHeader
      Chunk header.
    • lastChunk

      protected final ByteBuffer lastChunk
    • crlfChunk

      protected final ByteBuffer crlfChunk
    • endChunk

      protected final ByteBuffer endChunk
      End chunk.
  • Constructor Details

    • ChunkedOutputFilter

      public ChunkedOutputFilter()
  • Method Details

    • doWrite

      public int doWrite(ByteBuffer chunk) throws 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:
      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 IOException
      Description copied from interface: HttpOutputBuffer
      Flushes any unwritten data to the client.
      Specified by:
      flush in interface HttpOutputBuffer
      Throws:
      IOException - If an I/O error occurs while flushing
    • end

      public void end() throws 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:
      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