public abstract class AbstractInputBuffer<S> extends Object implements InputBuffer
Modifier and Type | Field and Description |
---|---|
protected InputFilter[] |
activeFilters
Active filters (in order).
|
protected byte[] |
buf
Pointer to the current read buffer.
|
protected byte |
chr |
protected int |
end
Pos of the end of the header in the buffer, which is also the
start of the body.
|
protected InputFilter[] |
filterLibrary
Filter library.
|
protected MimeHeaders |
headers
Headers of the associated request.
|
protected HttpParser |
httpParser |
protected InputBuffer |
inputStreamInputBuffer
Underlying input buffer.
|
protected int |
lastActiveFilter
Index of the last active filter.
|
protected int |
lastValid
Last valid byte.
|
protected boolean |
parsingHeader
State.
|
protected int |
pos
Position in the buffer.
|
protected byte |
prevChr |
protected boolean |
rejectIllegalHeaderName
Do HTTP headers with illegal names and/or values cause the request to be
rejected?
|
protected Request |
request
Associated Coyote request.
|
protected static StringManager |
sm
The string manager for this package.
|
protected boolean |
swallowInput
Swallow input ?
|
Constructor and Description |
---|
AbstractInputBuffer() |
Modifier and Type | Method and Description |
---|---|
void |
addActiveFilter(InputFilter filter)
Add an input filter to the filter library.
|
void |
addFilter(InputFilter filter)
Add an input filter to the filter library.
|
int |
available()
Available bytes in the buffers (note that due to encoding, this may not
correspond).
|
int |
doRead(ByteChunk chunk,
Request req)
Read some bytes.
|
void |
endRequest()
End request (consumes leftover bytes).
|
protected abstract boolean |
fill(boolean block) |
InputFilter[] |
getFilters()
Get filters.
|
protected abstract void |
init(SocketWrapper<S> socketWrapper,
AbstractEndpoint<S> endpoint) |
void |
nextRequest()
End processing of current HTTP request.
|
abstract boolean |
parseHeaders() |
protected String |
parseInvalid(int startPos,
byte[] buffer) |
abstract boolean |
parseRequestLine(boolean useAvailableDataOnly)
Implementations are expected to call
Request.setStartTime(long)
as soon as the first byte is read from the request. |
void |
recycle()
Recycle the input buffer.
|
void |
setSwallowInput(boolean swallowInput)
Set the swallow input flag.
|
protected static final StringManager sm
protected Request request
protected MimeHeaders headers
protected boolean parsingHeader
protected boolean swallowInput
protected byte[] buf
protected int lastValid
protected int pos
protected int end
protected InputBuffer inputStreamInputBuffer
protected InputFilter[] filterLibrary
protected InputFilter[] activeFilters
protected int lastActiveFilter
protected boolean rejectIllegalHeaderName
protected HttpParser httpParser
protected byte prevChr
protected byte chr
public void addFilter(InputFilter filter)
public InputFilter[] getFilters()
public void addActiveFilter(InputFilter filter)
public void setSwallowInput(boolean swallowInput)
protected String parseInvalid(int startPos, byte[] buffer)
public abstract boolean parseRequestLine(boolean useAvailableDataOnly) throws IOException
Request.setStartTime(long)
as soon as the first byte is read from the request.IOException
public abstract boolean parseHeaders() throws IOException
IOException
protected abstract boolean fill(boolean block) throws IOException
IOException
protected abstract void init(SocketWrapper<S> socketWrapper, AbstractEndpoint<S> endpoint) throws IOException
IOException
public void recycle()
public void nextRequest()
public void endRequest() throws IOException
IOException
- an underlying I/O error occurredpublic int available()
available
in interface InputBuffer
public int doRead(ByteChunk chunk, Request req) throws IOException
doRead
in interface InputBuffer
chunk
- The buffer to read data into.req
- The associated requestIOException
- If an I/O error occurs reading from the input streamCopyright © 2000-2021 Apache Software Foundation. All Rights Reserved.