Package org.apache.coyote.http11

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

- - ### Field Summary

    - ### Fields inherited from interface org.apache.tomcat.util.net.ApplicationBufferHandler

      `EMPTY, EMPTY_BUFFER`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `Http11InputBuffer​(Request request, int headerBufferSize, boolean rejectIllegalHeader, HttpParser httpParser)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `int` | `available()` | Obtain an estimate of the number of bytes that can be read without blocking.
    `int` | `doRead​(ApplicationBufferHandler handler)` | Read from the input stream into the ByteBuffer provided by the ApplicationBufferHandler.
    `void` | `expand​(int size)` |
    `ByteBuffer` | `getByteBuffer()` |
    `void` | `setByteBuffer​(ByteBuffer buffer)` |

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### Http11InputBuffer

          public Http11InputBuffer​(Request request,
                                   int headerBufferSize,
                                   boolean rejectIllegalHeader,
                                   HttpParser httpParser)

  - ### Method Detail

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