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 Details

  • 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