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 ByteChunkENCODINGprotected static StringENCODING_NAME
-
Constructor Summary
Constructors Constructor Description VoidInputFilter()
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description intavailable()Obtain an estimate of the number of bytes that can be read without blocking.intdoRead(ByteChunk chunk)Deprecated.Unused.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 String ENCODING_NAME
- See Also:
- Constant Field Values
-
ENCODING
protected static final ByteChunk ENCODING
-
-
Method Detail
-
doRead
@Deprecated public int doRead(ByteChunk chunk) throws IOException
Deprecated.Unused. Will be removed in Tomcat 9. UsedoRead(ApplicationBufferHandler)Description copied from interface:InputBufferRead 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:
doReadin interfaceInputBuffer- 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: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:
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 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:
IOException- If an error happens
-
available
public int available()
Description copied from interface:InputBufferObtain 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:
availablein interfaceInputBuffer- Returns:
- The number of bytes that can be read without blocking
-
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
-
-