public class HttpInput extends ServletInputStream implements Runnable
HttpInput
provides an implementation of ServletInputStream
for HttpChannel
.
Content may arrive in patterns such as [content(), content(), messageComplete()] so that this class maintains two states: the content state that tells whether there is content to consume and the EOF state that tells whether an EOF has arrived. Only once the content has been consumed the content state is moved to the EOF state.
Modifier and Type | Class and Description |
---|---|
static class |
HttpInput.ChainedInterceptor
An
HttpInput.Interceptor that chains two other HttpInput.Interceptor s together. |
static class |
HttpInput.Content |
static class |
HttpInput.EofContent |
static interface |
HttpInput.Interceptor
An interceptor for HTTP Request input.
|
static class |
HttpInput.SentinelContent
A Sentinel Content, which has zero length content but
indicates some other event in the input stream (eg EOF)
|
Constructor and Description |
---|
HttpInput(HttpChannelState state) |
Modifier and Type | Method and Description |
---|---|
boolean |
addContent(HttpInput.Content content)
Adds some content to this input stream.
|
void |
addInterceptor(HttpInput.Interceptor interceptor)
Set the
HttpInput.Interceptor , using a HttpInput.ChainedInterceptor if
an HttpInput.Interceptor is already set. |
void |
asyncReadProduce()
Called by channel when asynchronous IO needs to produce more content
|
int |
available() |
boolean |
consumeAll() |
boolean |
earlyEOF()
This method should be called to signal that an EOF has been detected before all the expected content arrived.
|
boolean |
eof()
This method should be called to signal that all the expected content arrived.
|
boolean |
failed(Throwable x) |
long |
getContentConsumed() |
HttpInput.Interceptor |
getInterceptor() |
boolean |
hasContent() |
boolean |
isAsync() |
boolean |
isError() |
boolean |
isFinished() |
boolean |
isReady() |
boolean |
onIdleTimeout(Throwable x) |
int |
read() |
int |
read(byte[] b,
int off,
int len) |
void |
recycle() |
void |
run() |
void |
setInterceptor(HttpInput.Interceptor interceptor)
Set the interceptor.
|
void |
setReadListener(ReadListener readListener) |
String |
toString() |
void |
unblock() |
readLine
close, mark, markSupported, read, reset, skip
public HttpInput(HttpChannelState state)
public void recycle()
public HttpInput.Interceptor getInterceptor()
public void setInterceptor(HttpInput.Interceptor interceptor)
interceptor
- The interceptor to use.public void addInterceptor(HttpInput.Interceptor interceptor)
HttpInput.Interceptor
, using a HttpInput.ChainedInterceptor
if
an HttpInput.Interceptor
is already set.interceptor
- the next HttpInput.Interceptor
in a chainpublic int available()
available
in class InputStream
public int read() throws IOException
read
in class InputStream
IOException
public int read(byte[] b, int off, int len) throws IOException
read
in class InputStream
IOException
public void asyncReadProduce() throws IOException
IOException
- if unable to produce contentpublic boolean addContent(HttpInput.Content content)
content
- the content to addpublic boolean hasContent()
public void unblock()
public long getContentConsumed()
public boolean earlyEOF()
Typically this will result in an EOFException being thrown from a subsequent read rather than a -1 return.
public boolean eof()
public boolean consumeAll()
public boolean isError()
public boolean isAsync()
public boolean isFinished()
isFinished
in class ServletInputStream
public boolean isReady()
isReady
in class ServletInputStream
public void setReadListener(ReadListener readListener)
setReadListener
in class ServletInputStream
public boolean onIdleTimeout(Throwable x)
public boolean failed(Throwable x)
Copyright © 2010 - 2020 Adobe. All Rights Reserved