Class Http11InputBuffer

java.lang.Object
org.apache.coyote.http11.Http11InputBuffer
All Implemented Interfaces:
InputBuffer, ApplicationBufferHandler

public class Http11InputBuffer extends Object implements InputBuffer, ApplicationBufferHandler
InputBuffer for HTTP that provides request header parsing as well as transfer encoding.
  • Constructor Details

    • Http11InputBuffer

      public Http11InputBuffer(Request request, int headerBufferSize, boolean rejectIllegalHeader, HttpParser httpParser)
  • Method Details

    • doRead

      @Deprecated public int doRead(ByteChunk chunk) throws IOException
      Deprecated.
      Unused. Will be removed in Tomcat 9. Use doRead(ApplicationBufferHandler)
      Description copied from interface: InputBuffer
      Read from the input stream into the given buffer. IMPORTANT: the current model assumes that the protocol will 'own' the buffer and return a pointer to it in ByteChunk (i.e. the param will have chunk.getBytes()==null before call, and the result after the call).
      Specified by:
      doRead in interface InputBuffer
      Parameters:
      chunk - The buffer to read data into.
      Returns:
      The number of bytes that have been added to the buffer or -1 for end of stream
      Throws:
      IOException - If an I/O error occurs reading from the input stream
    • doRead

      public int doRead(ApplicationBufferHandler handler) throws IOException
      Description copied from interface: InputBuffer
      Read from the input stream into the ByteBuffer provided by the ApplicationBufferHandler. IMPORTANT: the current model assumes that the protocol will 'own' the ByteBuffer and return a pointer to it.
      Specified by:
      doRead in interface InputBuffer
      Parameters:
      handler - ApplicationBufferHandler that provides the buffer to read data into.
      Returns:
      The number of bytes that have been added to the buffer or -1 for end of stream
      Throws:
      IOException - If an I/O error occurs reading from the input stream
    • available

      public int available()
      Description copied from interface: InputBuffer
      Obtain an estimate of the number of bytes that can be read without blocking. Typically, this will be the number of available bytes known to be buffered.
      Specified by:
      available in interface InputBuffer
      Returns:
      The number of bytes that can be read without blocking
    • setByteBuffer

      public void setByteBuffer(ByteBuffer buffer)
      Specified by:
      setByteBuffer in interface ApplicationBufferHandler
    • getByteBuffer

      public ByteBuffer getByteBuffer()
      Specified by:
      getByteBuffer in interface ApplicationBufferHandler
    • expand

      public void expand(int size)
      Specified by:
      expand in interface ApplicationBufferHandler