Package org.apache.catalina.connector
Class InputBuffer
- java.lang.Object
-
- java.io.Reader
-
- org.apache.catalina.connector.InputBuffer
-
- All Implemented Interfaces:
Closeable,AutoCloseable,Readable,ByteChunk.ByteInputChannel,ApplicationBufferHandler
public class InputBuffer extends Reader implements ByteChunk.ByteInputChannel, ApplicationBufferHandler
The buffer used by Tomcat request. This is a derivative of the Tomcat 3.3 OutputBuffer, adapted to handle input instead of output. This allows complete recycling of the facade objects (the ServletInputStream and the BufferedReader).- Author:
- Remy Maucherat
-
-
Field Summary
Fields Modifier and Type Field Description intBYTE_STATEintCHAR_STATEprotected B2CConverterconvCurrent byte to char converter.static intDEFAULT_BUFFER_SIZEintINITIAL_STATEprotected static StringManagersmThe string manager for this package.-
Fields inherited from interface org.apache.tomcat.util.net.ApplicationBufferHandler
EMPTY, EMPTY_BUFFER
-
-
Constructor Summary
Constructors Constructor Description InputBuffer()Default constructor.InputBuffer(int size)Alternate constructor which allows specifying the initial buffer size.
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description intavailable()voidcheckConverter()voidclose()Close the input buffer.voidexpand(int size)ByteBuffergetByteBuffer()booleanisFinished()booleanisReady()voidmark(int readAheadLimit)booleanmarkSupported()intread()intread(byte[] b, int off, int len)intread(char[] cbuf)intread(char[] cbuf, int off, int len)intread(ByteBuffer to)Transfers bytes from the buffer to the specified ByteBuffer.intreadByte()booleanready()intrealReadBytes()Reads new bytes in the byte chunk.intrealReadChars()voidrecycle()Recycle the output buffer.voidreset()voidsetByteBuffer(ByteBuffer buffer)voidsetEncoding(String s)Deprecated.This method will be removed in Tomcat 9.0.xvoidsetReadListener(ReadListener listener)voidsetRequest(Request coyoteRequest)Associated Coyote request.longskip(long n)-
Methods inherited from class java.io.Reader
nullReader, read, transferTo
-
-
-
-
Field Detail
-
sm
protected static final StringManager sm
The string manager for this package.
-
DEFAULT_BUFFER_SIZE
public static final int DEFAULT_BUFFER_SIZE
- See Also:
- Constant Field Values
-
INITIAL_STATE
public final int INITIAL_STATE
- See Also:
- Constant Field Values
-
CHAR_STATE
public final int CHAR_STATE
- See Also:
- Constant Field Values
-
BYTE_STATE
public final int BYTE_STATE
- See Also:
- Constant Field Values
-
conv
protected B2CConverter conv
Current byte to char converter.
-
-
Method Detail
-
setRequest
public void setRequest(Request coyoteRequest)
Associated Coyote request.- Parameters:
coyoteRequest- Associated Coyote request
-
recycle
public void recycle()
Recycle the output buffer.
-
close
public void close() throws IOExceptionClose the input buffer.- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Specified by:
closein classReader- Throws:
IOException- An underlying IOException occurred
-
available
public int available()
-
setReadListener
public void setReadListener(ReadListener listener)
-
isFinished
public boolean isFinished()
-
isReady
public boolean isReady()
-
realReadBytes
public int realReadBytes() throws IOExceptionReads new bytes in the byte chunk.- Specified by:
realReadBytesin interfaceByteChunk.ByteInputChannel- Returns:
- The number of bytes read
- Throws:
IOException- An underlying IOException occurred
-
readByte
public int readByte() throws IOException- Throws:
IOException
-
read
public int read(byte[] b, int off, int len) throws IOException- Throws:
IOException
-
read
public int read(ByteBuffer to) throws IOException
Transfers bytes from the buffer to the specified ByteBuffer. After the operation the position of the ByteBuffer will be returned to the one before the operation, the limit will be the position incremented by the number of the transferred bytes.- Parameters:
to- the ByteBuffer into which bytes are to be written.- Returns:
- an integer specifying the actual number of bytes read, or -1 if the end of the stream is reached
- Throws:
IOException- if an input or output exception has occurred
-
setEncoding
@Deprecated public void setEncoding(String s)
Deprecated.This method will be removed in Tomcat 9.0.x- Parameters:
s- New encoding value
-
realReadChars
public int realReadChars() throws IOException- Throws:
IOException
-
read
public int read() throws IOException- Overrides:
readin classReader- Throws:
IOException
-
read
public int read(char[] cbuf) throws IOException- Overrides:
readin classReader- Throws:
IOException
-
read
public int read(char[] cbuf, int off, int len) throws IOException- Specified by:
readin classReader- Throws:
IOException
-
skip
public long skip(long n) throws IOException- Overrides:
skipin classReader- Throws:
IOException
-
ready
public boolean ready() throws IOException- Overrides:
readyin classReader- Throws:
IOException
-
markSupported
public boolean markSupported()
- Overrides:
markSupportedin classReader
-
mark
public void mark(int readAheadLimit) throws IOException- Overrides:
markin classReader- Throws:
IOException
-
reset
public void reset() throws IOException- Overrides:
resetin classReader- Throws:
IOException
-
checkConverter
public void checkConverter() throws IOException- Throws:
IOException
-
setByteBuffer
public void setByteBuffer(ByteBuffer buffer)
- Specified by:
setByteBufferin interfaceApplicationBufferHandler
-
getByteBuffer
public ByteBuffer getByteBuffer()
- Specified by:
getByteBufferin interfaceApplicationBufferHandler
-
expand
public void expand(int size)
- Specified by:
expandin interfaceApplicationBufferHandler
-
-