Package org.apache.catalina.connector
Class InputBuffer
- java.lang.Object
-
- java.io.Reader
-
- org.apache.catalina.connector.InputBuffer
-
- All Implemented Interfaces:
java.io.Closeable
,java.lang.AutoCloseable
,java.lang.Readable
,ByteChunk.ByteInputChannel
,ApplicationBufferHandler
public class InputBuffer extends java.io.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 int
BYTE_STATE
int
CHAR_STATE
protected B2CConverter
conv
Current byte to char converter.static int
DEFAULT_BUFFER_SIZE
int
INITIAL_STATE
protected static StringManager
sm
The 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 Modifier and Type Method Description int
available()
void
checkConverter()
void
close()
Close the input buffer.void
expand(int size)
java.nio.ByteBuffer
getByteBuffer()
boolean
isFinished()
boolean
isReady()
void
mark(int readAheadLimit)
boolean
markSupported()
int
read()
int
read(byte[] b, int off, int len)
int
read(char[] cbuf)
int
read(char[] cbuf, int off, int len)
int
read(java.nio.ByteBuffer to)
Transfers bytes from the buffer to the specified ByteBuffer.int
readByte()
boolean
ready()
int
realReadBytes()
Reads new bytes in the byte chunk.int
realReadChars()
void
recycle()
Recycle the output buffer.void
reset()
void
setByteBuffer(java.nio.ByteBuffer buffer)
void
setReadListener(ReadListener listener)
void
setRequest(Request coyoteRequest)
Associated Coyote request.long
skip(long n)
-
-
-
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 java.io.IOException
Close the input buffer.- Specified by:
close
in interfacejava.lang.AutoCloseable
- Specified by:
close
in interfacejava.io.Closeable
- Specified by:
close
in classjava.io.Reader
- Throws:
java.io.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 java.io.IOException
Reads new bytes in the byte chunk.- Specified by:
realReadBytes
in interfaceByteChunk.ByteInputChannel
- Returns:
- The number of bytes read
- Throws:
java.io.IOException
- An underlying IOException occurred
-
readByte
public int readByte() throws java.io.IOException
- Throws:
java.io.IOException
-
read
public int read(byte[] b, int off, int len) throws java.io.IOException
- Throws:
java.io.IOException
-
read
public int read(java.nio.ByteBuffer to) throws java.io.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:
java.io.IOException
- if an input or output exception has occurred
-
realReadChars
public int realReadChars() throws java.io.IOException
- Throws:
java.io.IOException
-
read
public int read() throws java.io.IOException
- Overrides:
read
in classjava.io.Reader
- Throws:
java.io.IOException
-
read
public int read(char[] cbuf) throws java.io.IOException
- Overrides:
read
in classjava.io.Reader
- Throws:
java.io.IOException
-
read
public int read(char[] cbuf, int off, int len) throws java.io.IOException
- Specified by:
read
in classjava.io.Reader
- Throws:
java.io.IOException
-
skip
public long skip(long n) throws java.io.IOException
- Overrides:
skip
in classjava.io.Reader
- Throws:
java.io.IOException
-
ready
public boolean ready() throws java.io.IOException
- Overrides:
ready
in classjava.io.Reader
- Throws:
java.io.IOException
-
markSupported
public boolean markSupported()
- Overrides:
markSupported
in classjava.io.Reader
-
mark
public void mark(int readAheadLimit) throws java.io.IOException
- Overrides:
mark
in classjava.io.Reader
- Throws:
java.io.IOException
-
reset
public void reset() throws java.io.IOException
- Overrides:
reset
in classjava.io.Reader
- Throws:
java.io.IOException
-
checkConverter
public void checkConverter() throws java.io.IOException
- Throws:
java.io.IOException
-
setByteBuffer
public void setByteBuffer(java.nio.ByteBuffer buffer)
- Specified by:
setByteBuffer
in interfaceApplicationBufferHandler
-
getByteBuffer
public java.nio.ByteBuffer getByteBuffer()
- Specified by:
getByteBuffer
in interfaceApplicationBufferHandler
-
expand
public void expand(int size)
- Specified by:
expand
in interfaceApplicationBufferHandler
-
-