org.apache.coyote.http11

## Class InternalInputBuffer

- java.lang.Object
- - org.apache.coyote.http11.AbstractInputBuffer<Socket>
  - - org.apache.coyote.http11.InternalInputBuffer

- All Implemented Interfaces:
    InputBuffer

      public class InternalInputBuffer
      extends AbstractInputBuffer<Socket>

  Implementation of InputBuffer which provides HTTP request header parsing as well as transfer decoding.
  Author:
    Remy Maucherat

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `protected class` | `InternalInputBuffer.InputStreamInputBuffer` This class is an input buffer which will read its data from an input stream.

  - ### Field Summary

    - ### Fields inherited from class org.apache.coyote.http11.AbstractInputBuffer

      `activeFilters, buf, end, filterLibrary, headers, inputStreamInputBuffer, lastActiveFilter, lastValid, parsingHeader, pos, request, sm, swallowInput`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `InternalInputBuffer(Request request, int headerBufferSize)` Default constructor.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected boolean` | `fill()` Fill the internal buffer using data from the underlying input stream.
    `protected boolean` | `fill(boolean block)`
    `protected void` | `init(SocketWrapper<Socket> socketWrapper, AbstractEndpoint<Socket> endpoint)`
    `boolean` | `parseHeaders()` Parse the HTTP headers.
    `boolean` | `parseRequestLine(boolean useAvailableDataOnly)` Read the request line.
    `void` | `recycle()` Recycle the input buffer.

    - ### Methods inherited from class org.apache.coyote.http11.AbstractInputBuffer

      `addActiveFilter, addFilter, available, doRead, endRequest, getFilters, nextRequest, setSwallowInput`

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

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

- - ### Constructor Detail

    - #### InternalInputBuffer

          public InternalInputBuffer(Request request,
                             int headerBufferSize)

      Default constructor.

  - ### Method Detail

    - #### parseRequestLine

          public boolean parseRequestLine(boolean useAvailableDataOnly)
                                   throws IOException

      Read the request line. This function is meant to be used during the HTTP request header parsing. Do NOT attempt to read the request body using it.
      Specified by:
        `parseRequestLine` in class `AbstractInputBuffer<Socket>`
      Throws:
        `IOException` - If an exception occurs during the underlying socket read operations, or if the given buffer is not big enough to accommodate the whole line.

    - #### parseHeaders

          public boolean parseHeaders()
                               throws IOException

      Parse the HTTP headers.
      Specified by:
        `parseHeaders` in class `AbstractInputBuffer<Socket>`
      Throws:
        `IOException`

    - #### recycle

          public void recycle()

      Description copied from class: `AbstractInputBuffer`
      Recycle the input buffer. This should be called when closing the connection.
      Overrides:
        `recycle` in class `AbstractInputBuffer<Socket>`

    - #### init

          protected void init(SocketWrapper<Socket> socketWrapper,
                  AbstractEndpoint<Socket> endpoint)
                       throws IOException

      Specified by:
        `init` in class `AbstractInputBuffer<Socket>`
      Throws:
        `IOException`

    - #### fill

          protected boolean fill()
                          throws IOException

      Fill the internal buffer using data from the underlying input stream.
      Returns:
        false if at end of stream
      Throws:
        `IOException`

    - #### fill

          protected boolean fill(boolean block)
                          throws IOException

      Specified by:
        `fill` in class `AbstractInputBuffer<Socket>`
      Throws:
        `IOException`

Copyright © 2000-2017 Apache Software Foundation. All Rights Reserved.