InternalAprInputBuffer (Apache Tomcat 6.0.51 API Documentation)
Keywords: org.apache.coyote.http11.InternalAprInputBuffer class

Overview | Package | Class | Tree | Deprecated | Index | Help
| Apache Tomcat 6.0.51
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.coyote.http11
Class InternalAprInputBuffer

    java.lang.Object
      org.apache.coyote.http11.AbstractInputBuffer
          org.apache.coyote.http11.InternalAprInputBuffer

All Implemented Interfaces:
  InputBuffer

    public class InternalAprInputBuffer

extends AbstractInputBuffer

Implementation of InputBuffer which provides HTTP request header parsing as well as transfer decoding.

Author:
  Remy Maucherat

Nested Class Summary
`protected class` | `InternalAprInputBuffer.SocketInputBuffer` 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 java.nio.ByteBuffer` | `bbuf` Direct byte buffer used to perform actual reading.
`protected byte[]` | `buf` Pointer to the current read buffer.
`protected int` | `end` Pos of the end of the header in the buffer, which is also the start of the body.
`protected InputFilter[]` | `filterLibrary` Filter library.
`protected MimeHeaders` | `headers` Headers of the associated request.
`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 long` | `socket` Underlying socket.
`protected boolean` | `swallowInput` Swallow input ?

Fields inherited from class org.apache.coyote.http11.AbstractInputBuffer
`sm`

Constructor Summary
`InternalAprInputBuffer(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()` Fill the internal buffer using data from the undelying input stream.
`InputFilter[]` | `getFilters()` Get filters.
`long` | `getSocket()` 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.
`boolean` | `parseRequestLine(boolean useAvailableData)` Read the request line.
`void` | `recycle()` Recycle the input buffer.
`void` | `setSocket(long 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

### 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.

### lastValid

    protected int lastValid

  Last valid byte.

### pos

    protected int pos

  Position in the buffer.

### end

    protected int end

  Pos of the end of the header in the buffer, which is also the start of the body.

### bbuf

    protected java.nio.ByteBuffer bbuf

  Direct byte buffer used to perform actual reading.

### socket

    protected long socket

  Underlying socket.

### 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

### InternalAprInputBuffer

    public InternalAprInputBuffer(Request request,
                                  int headerBufferSize)

  Alternate constructor.

Method Detail

### setSocket

    public void setSocket(long socket)

  Set the underlying socket.

### getSocket

    public long getSocket()

  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()

  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.

### 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 boolean parseRequestLine(boolean useAvailableData)
                             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.

  Returns:
    true if data is properly fed; false if no data is available immediately and thread should be freed
  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`

### available

    public int available()

  Available bytes (note that due to encoding, this may not correspond )

### doRead

    public int doRead(ByteChunk chunk,
                      Request req)
               throws java.io.IOException

  Read some bytes.

  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 | Index | Help
| Apache Tomcat 6.0.51
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2000-2017 Apache Software Foundation. All Rights Reserved.