Package org.apache.coyote.http11.filters

## Class VoidInputFilter

- java.lang.Object
- - org.apache.coyote.http11.filters.VoidInputFilter

- All Implemented Interfaces:
    `InputFilter`, `InputBuffer`

      public class VoidInputFilter
      extends java.lang.Object
      implements InputFilter

  Void input filter, which returns -1 when attempting a read. Used with a GET, HEAD, or a similar request.
  Author:
    Remy Maucherat

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected static ByteChunk` | `ENCODING` |
    `protected static java.lang.String` | `ENCODING_NAME` |

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `VoidInputFilter()` |

  - ### 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.
    `long` | `end()` | End the current request.
    `ByteChunk` | `getEncodingName()` | Return the name of the associated encoding; Here, the value is "void".
    `boolean` | `isFinished()` | Has the request body been read fully?
    `void` | `recycle()` | Make the filter ready to process the next request.
    `void` | `setBuffer​(InputBuffer buffer)` | Set the next buffer in the filter pipeline.
    `void` | `setRequest​(Request request)` | Set the associated request.

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

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

- - ### Field Detail

    - #### ENCODING_NAME

          protected static final java.lang.String ENCODING_NAME

      See Also:
        Constant Field Values

    - #### ENCODING

          protected static final ByteChunk ENCODING

  - ### Constructor Detail

    - #### VoidInputFilter

          public VoidInputFilter()

  - ### Method Detail

    - #### doRead

          public int doRead​(ApplicationBufferHandler handler)
                     throws java.io.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:
        `java.io.IOException` - If an I/O error occurs reading from the input stream

    - #### setRequest

          public void setRequest​(Request request)

      Set the associated request.
      Specified by:
        `setRequest` in interface `InputFilter`
      Parameters:
        `request` - The request to be associated with this filter

    - #### setBuffer

          public void setBuffer​(InputBuffer buffer)

      Set the next buffer in the filter pipeline.
      Specified by:
        `setBuffer` in interface `InputFilter`
      Parameters:
        `buffer` - The next buffer

    - #### recycle

          public void recycle()

      Make the filter ready to process the next request.
      Specified by:
        `recycle` in interface `InputFilter`

    - #### getEncodingName

          public ByteChunk getEncodingName()

      Return the name of the associated encoding; Here, the value is "void".
      Specified by:
        `getEncodingName` in interface `InputFilter`
      Returns:
        The encoding name as a byte chunk to facilitate comparison with the value read from the HTTP headers which will also be a ByteChunk

    - #### end

          public long end()
                   throws java.io.IOException

      End the current request. It is acceptable to write extra bytes using buffer.doWrite during the execution of this method.
      Specified by:
        `end` in interface `InputFilter`
      Returns:
        Should return 0 unless the filter does some content length delimitation, in which case the number is the amount of extra bytes or missing bytes, which would indicate an error. Note: It is recommended that extra bytes be swallowed by the filter.
      Throws:
        `java.io.IOException` - If an error happens

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

    - #### isFinished

          public boolean isFinished()

      Description copied from interface: `InputFilter`
      Has the request body been read fully?
      Specified by:
        `isFinished` in interface `InputFilter`
      Returns:
        `true` if the request body has been fully read, otherwise `false`