| 
 | Apache Tomcat 6.0.53 | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectorg.apache.coyote.http11.AbstractInputBuffer
org.apache.coyote.http11.InternalNioInputBuffer
public class InternalNioInputBuffer
Implementation of InputBuffer which provides HTTP request header parsing as well as transfer decoding.
| Nested Class Summary | |
|---|---|
| static class | InternalNioInputBuffer.HeaderParseData | 
| protected  class | InternalNioInputBuffer.SocketInputBufferThis class is an input buffer which will read its data from an input stream. | 
| Field Summary | |
|---|---|
| protected  InputFilter[] | activeFiltersActive filters (in order). | 
| protected  byte[] | bufPointer to the current read buffer. | 
| protected  int | endPos of the end of the header in the buffer, which is also the start of the body. | 
| protected  InputFilter[] | filterLibraryFilter library. | 
| protected  org.apache.coyote.http11.InternalNioInputBuffer.HeaderParsePosition | headerParsePos | 
| protected  MimeHeaders | headersHeaders of the associated request. | 
| protected  InputBuffer | inputStreamInputBufferUnderlying input buffer. | 
| protected  int | lastActiveFilterIndex of the last active filter. | 
| protected  int | lastValidLast valid byte. | 
| protected  boolean | parsingHeaderParsing state - used for non blocking parsing so that when more data arrives, we can pick up where we left off. | 
| protected  boolean | parsingRequestLine | 
| protected  boolean | parsingRequestLineEol | 
| protected  int | parsingRequestLinePhase | 
| protected  int | parsingRequestLineQPos | 
| protected  int | parsingRequestLineStart | 
| protected  NioSelectorPool | poolSelector pool, for blocking reads and blocking writes | 
| protected  int | posPosition in the buffer. | 
| protected  Request | requestAssociated Coyote request. | 
| protected  NioChannel | socketUnderlying socket. | 
| protected  boolean | swallowInputSwallow input ? | 
| Fields inherited from class org.apache.coyote.http11.AbstractInputBuffer | 
|---|
| sm | 
| Constructor Summary | |
|---|---|
| InternalNioInputBuffer(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. | 
|  int | available()Available bytes (note that due to encoding, this may not correspond ) | 
|  void | clearFilters()Clear filters. | 
|  int | doRead(ByteChunk chunk,
       Request req)Read some bytes. | 
|  void | endRequest()End request (consumes leftover bytes). | 
| protected  boolean | fill(boolean timeout,
     boolean block)Fill the internal buffer using data from the undelying input stream. | 
|  InputFilter[] | getFilters()Get filters. | 
|  NioSelectorPool | getSelectorPool() | 
|  NioChannel | getSocket()Get the underlying socket input stream. | 
|  boolean | isReadable()Returns true if there are bytes available from the socket layer | 
|  int | nbRead()Issues a non blocking read | 
|  void | nextRequest()End processing of current HTTP request. | 
|  org.apache.coyote.http11.InternalNioInputBuffer.HeaderParseStatus | parseHeader()Parse an HTTP header. | 
|  boolean | parseHeaders()Parse the HTTP headers. | 
|  boolean | parseRequestLine(boolean useAvailableDataOnly)Read the request line. | 
|  void | recycle()Recycle the input buffer. | 
|  void | setSelectorPool(NioSelectorPool pool) | 
|  void | setSocket(NioChannel socket)Set the underlying socket. | 
|  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 | 
|---|
protected Request request
protected MimeHeaders headers
protected boolean parsingHeader
protected boolean parsingRequestLine
protected int parsingRequestLinePhase
protected boolean parsingRequestLineEol
protected int parsingRequestLineStart
protected int parsingRequestLineQPos
protected org.apache.coyote.http11.InternalNioInputBuffer.HeaderParsePosition headerParsePos
protected boolean swallowInput
protected byte[] buf
protected int lastValid
protected int pos
protected int end
protected NioChannel socket
protected NioSelectorPool pool
protected InputBuffer inputStreamInputBuffer
protected InputFilter[] filterLibrary
protected InputFilter[] activeFilters
protected int lastActiveFilter
| Constructor Detail | 
|---|
public InternalNioInputBuffer(Request request,
                              int headerBufferSize)
| Method Detail | 
|---|
public void setSocket(NioChannel socket)
public NioChannel getSocket()
public void setSelectorPool(NioSelectorPool pool)
public NioSelectorPool getSelectorPool()
public void addFilter(InputFilter filter)
public InputFilter[] getFilters()
public void clearFilters()
public void addActiveFilter(InputFilter filter)
public void setSwallowInput(boolean swallowInput)
public boolean isReadable()
                   throws java.io.IOException
java.io.IOException
public int nbRead()
           throws java.io.IOException
java.io.IOExceptionpublic void recycle()
public void nextRequest()
public void endRequest()
                throws java.io.IOException
java.io.IOException - an undelying I/O error occured
public boolean parseRequestLine(boolean useAvailableDataOnly)
                         throws java.io.IOException
java.io.IOException - If an exception occurs during the underlying socket
 read operations, or if the given buffer is not big enough to accommodate
 the whole line.
public boolean parseHeaders()
                     throws java.io.IOException
java.io.IOException
public org.apache.coyote.http11.InternalNioInputBuffer.HeaderParseStatus parseHeader()
                                                                              throws java.io.IOException
java.io.IOExceptionpublic int available()
public int doRead(ByteChunk chunk,
                  Request req)
           throws java.io.IOException
java.io.IOException
protected boolean fill(boolean timeout,
                       boolean block)
                throws java.io.IOException,
                       java.io.EOFException
java.io.IOException
java.io.EOFException| 
 | Apache Tomcat 6.0.53 | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||