Class 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
    • Constructor Summary

      Constructors 
      Constructor Description
      VoidInputFilter()  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      int available()
      Amount of bytes still available in a buffer.
      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

        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: InputFilter
        Amount of bytes still available in a buffer.
        Specified by:
        available in interface InputFilter
        Returns:
        The number of bytes in the buffer
      • 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