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

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `VoidInputFilter()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and 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.
    `int` | `doRead(ByteChunk chunk)` Deprecated. Unused. Will be removed in Tomcat 9. Use `doRead(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 String ENCODING_NAME

      See Also:
        Constant Field Values

    - #### ENCODING

          protected static final ByteChunk ENCODING

  - ### Constructor Detail

    - #### VoidInputFilter

          public VoidInputFilter()

  - ### Method Detail

    - #### doRead

          @Deprecated
          public int doRead(ByteChunk chunk)
                     throws IOException

      Deprecated. Unused. Will be removed in Tomcat 9. Use `doRead(ApplicationBufferHandler)`
      Description copied from interface: `InputBuffer`
      Read from the input stream into the given buffer. IMPORTANT: the current model assumes that the protocol will 'own' the buffer and return a pointer to it in ByteChunk (i.e. the param will have chunk.getBytes()==null before call, and the result after the call).
      Specified by:
        `doRead` in interface `InputBuffer`
      Parameters:
        `chunk` - 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

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

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