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 ByteChunkENCODINGprotected static java.lang.StringENCODING_NAME
-
Constructor Summary
Constructors Constructor Description VoidInputFilter()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description intavailable()Amount of bytes still available in a buffer.intdoRead(ApplicationBufferHandler handler)Read from the input stream into the ByteBuffer provided by the ApplicationBufferHandler.longend()End the current request.ByteChunkgetEncodingName()Return the name of the associated encoding; Here, the value is "void".booleanisFinished()Has the request body been read fully?voidrecycle()Make the filter ready to process the next request.voidsetBuffer(InputBuffer buffer)Set the next buffer in the filter pipeline.voidsetRequest(Request request)Set the associated request.
-
-
-
Field Detail
-
ENCODING_NAME
protected static final java.lang.String ENCODING_NAME
- See Also:
- Constant Field Values
-
ENCODING
protected static final ByteChunk ENCODING
-
-
Method Detail
-
doRead
public int doRead(ApplicationBufferHandler handler) throws java.io.IOException
Description copied from interface:InputBufferRead 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:
doReadin interfaceInputBuffer- 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:
setRequestin interfaceInputFilter- 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:
setBufferin interfaceInputFilter- Parameters:
buffer- The next buffer
-
recycle
public void recycle()
Make the filter ready to process the next request.- Specified by:
recyclein interfaceInputFilter
-
getEncodingName
public ByteChunk getEncodingName()
Return the name of the associated encoding; Here, the value is "void".- Specified by:
getEncodingNamein interfaceInputFilter- 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.IOExceptionEnd the current request. It is acceptable to write extra bytes using buffer.doWrite during the execution of this method.- Specified by:
endin interfaceInputFilter- 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:InputFilterAmount of bytes still available in a buffer.- Specified by:
availablein interfaceInputFilter- Returns:
- The number of bytes in the buffer
-
isFinished
public boolean isFinished()
Description copied from interface:InputFilterHas the request body been read fully?- Specified by:
isFinishedin interfaceInputFilter- Returns:
trueif the request body has been fully read, otherwisefalse
-
-