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

      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)
      Description copied from interface: ApplicationBufferHandler
      Set the byte buffer.
      Specified by:
      setByteBuffer in interface ApplicationBufferHandler
      Parameters:
      buffer - the byte buffer
    • getByteBuffer

      public ByteBuffer getByteBuffer()
      Specified by:
      getByteBuffer in interface ApplicationBufferHandler
      Returns:
      the byte buffer
    • expand

      public void expand(int size)
      Description copied from interface: ApplicationBufferHandler
      Expand the byte buffer to at least the given size. Some implementations may not implement this.
      Specified by:
      expand in interface ApplicationBufferHandler
      Parameters:
      size - the desired size