Overview Package Class Tree Deprecated Help PREV CLASS NEXT CLASS FRAMES NO FRAMES SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD
org.apache.coyote.http11
Class InternalInputBufferjava.lang.Object org.apache.coyote.http11.InternalInputBuffer
- All Implemented Interfaces:
- InputBuffer
- public class InternalInputBuffer
- extends java.lang.Object
- implements InputBuffer
Implementation of InputBuffer which provides HTTP request header parsing as well as transfer decoding.
- Author:
- Remy Maucherat
Nested Class Summary protected class InternalInputBuffer.InputStreamInputBuffer
This class is an input buffer which will read its data from an input stream.
Field Summary protected InputFilter[] activeFilters
Active filters (in order).protected char[] ascbuf
Pointer to the US-ASCII header buffer.protected byte[] bodyBuffer
HTTP body buffer.protected byte[] buf
Pointer to the current read buffer.protected InputFilter[] filterLibrary
Filter library.protected char[] headerBuffer
US-ASCII header buffer.protected byte[] headerBuffer1
HTTP header buffer no 1.protected byte[] headerBuffer2
HTTP header buffer no 2.protected MimeHeaders headers
Headers of the associated request.protected java.io.InputStream inputStream
Underlying input stream.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 Request request
Associated Coyote request.protected static StringManager sm
The string manager for this package.protected boolean swallowInput
Swallow input ? (in the case of an expectation)
Constructor Summary InternalInputBuffer(Request request)
Default constructor.InternalInputBuffer(Request request, int headerBufferSize)
Alternate constructor.
Method Summary void addActiveFilter(InputFilter filter)
Add an input filter to the filter library.void addFilter(InputFilter filter)
Add an input filter to the filter library.void clearFilters()
Clear filters.int doRead(ByteChunk chunk, Request req)
Read some bytes.void endRequest()
End request (consumes leftover bytes).protected boolean fill()
Fill the internal buffer using data from the undelying input stream.InputFilter[] getFilters()
Get filters.java.io.InputStream getInputStream()
Get the underlying socket input stream.void nextRequest()
End processing of current HTTP request.boolean parseHeader()
Parse an HTTP header.void parseHeaders()
Parse the HTTP headers.void parseRequestLine()
Read the request line.void recycle()
Recycle the input buffer.void setInputStream(java.io.InputStream inputStream)
Set the underlying socket input stream.void setSwallowInput(boolean swallowInput)
Set the swallow input flag.
Methods inherited from class java.lang.Object clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Field Detail sm
protected static StringManager sm
- The string manager for this package.
request
protected Request request
- Associated Coyote request.
headers
protected MimeHeaders headers
- Headers of the associated request.
parsingHeader
protected boolean parsingHeader
- State.
swallowInput
protected boolean swallowInput
- Swallow input ? (in the case of an expectation)
buf
protected byte[] buf
- Pointer to the current read buffer.
ascbuf
protected char[] ascbuf
- Pointer to the US-ASCII header buffer.
lastValid
protected int lastValid
- Last valid byte.
pos
protected int pos
- Position in the buffer.
headerBuffer1
protected byte[] headerBuffer1
- HTTP header buffer no 1.
headerBuffer2
protected byte[] headerBuffer2
- HTTP header buffer no 2.
bodyBuffer
protected byte[] bodyBuffer
- HTTP body buffer.
headerBuffer
protected char[] headerBuffer
- US-ASCII header buffer.
inputStream
protected java.io.InputStream inputStream
- Underlying input stream.
inputStreamInputBuffer
protected InputBuffer inputStreamInputBuffer
- Underlying input buffer.
filterLibrary
protected InputFilter[] filterLibrary
- Filter library. Note: Filter[0] is always the "chunked" filter.
activeFilters
protected InputFilter[] activeFilters
- Active filters (in order).
lastActiveFilter
protected int lastActiveFilter
- Index of the last active filter.
Constructor Detail InternalInputBuffer
public InternalInputBuffer(Request request)
- Default constructor.
InternalInputBuffer
public InternalInputBuffer(Request request, int headerBufferSize)
- Alternate constructor.
Method Detail setInputStream
public void setInputStream(java.io.InputStream inputStream)
- Set the underlying socket input stream.
getInputStream
public java.io.InputStream getInputStream()
- Get the underlying socket input stream.
addFilter
public void addFilter(InputFilter filter)
- Add an input filter to the filter library.
getFilters
public InputFilter[] getFilters()
- Get filters.
clearFilters
public void clearFilters()
- Clear filters.
addActiveFilter
public void addActiveFilter(InputFilter filter)
- Add an input filter to the filter library.
setSwallowInput
public void setSwallowInput(boolean swallowInput)
- Set the swallow input flag.
recycle
public void recycle()
- Recycle the input buffer. This should be called when closing the connection.
nextRequest
public void nextRequest() throws java.io.IOException
- End processing of current HTTP request. Note: All bytes of the current request should have been already consumed. This method only resets all the pointers so that we are ready to parse the next HTTP request.
- Throws:
- java.io.IOException
endRequest
public void endRequest() throws java.io.IOException
- End request (consumes leftover bytes).
- Throws:
- java.io.IOException - an undelying I/O error occured
parseRequestLine
public void parseRequestLine() throws java.io.IOException
- Read the request line. This function is meant to be used during the HTTP request header parsing. Do NOT attempt to read the request body using it.
- Throws:
- java.io.IOException - If an exception occurs during the underlying socket read operations, or if the given buffer is not big enough to accomodate the whole line.
parseHeaders
public void parseHeaders() throws java.io.IOException
- Parse the HTTP headers.
- Throws:
- java.io.IOException
parseHeader
public boolean parseHeader() throws java.io.IOException
- Parse an HTTP header.
- Returns:
- false after reading a blank line (which indicates that the HTTP header parsing is done
- Throws:
- java.io.IOException
doRead
public int doRead(ByteChunk chunk, Request req) throws java.io.IOException
- Read some bytes.
- Specified by:
- doRead in interface InputBuffer
- Throws:
- java.io.IOException
fill
protected boolean fill() throws java.io.IOException
- Fill the internal buffer using data from the undelying input stream.
- Returns:
- false if at end of stream
- Throws:
- java.io.IOException
Overview Package Class Tree Deprecated Help PREV CLASS NEXT CLASS FRAMES NO FRAMES SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD
Copyright © 2000-2003 Apache Software Foundation. All Rights Reserved.