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 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 final ByteChunk`
  `ENCODING`
  `protected static final String`
  `ENCODING_NAME`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `VoidInputFilter()`

- ## Method Summary

  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 Details

  - ### ENCODING_NAME

    protected static final String ENCODING_NAME
    See Also:
      - Constant Field Values

  - ### ENCODING

    protected static final ByteChunk ENCODING

- ## Constructor Details

  - ### VoidInputFilter

    public VoidInputFilter()

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

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