Package org.apache.coyote.http11

# Class Http11InputBuffer

java.lang.Object
org.apache.coyote.http11.Http11InputBuffer

All Implemented Interfaces:
  `InputBuffer`, `ApplicationBufferHandler`

public class Http11InputBuffer extends Object implements InputBuffer, ApplicationBufferHandler
InputBuffer for HTTP that provides request header parsing as well as transfer encoding.

## Field Summary

### Fields inherited from interface org.apache.tomcat.util.net.ApplicationBufferHandler

`EMPTY, EMPTY_BUFFER`

## Constructor Summary

Constructors
Constructor
Description
`Http11InputBuffer(Request request, int headerBufferSize, boolean rejectIllegalHeader, HttpParser httpParser)`

## Method Summary

Modifier and Type
Method
Description
`int`
`available()`
Obtain an estimate of the number of bytes that can be read without blocking.
`int`
`doRead(ApplicationBufferHandler handler)`
Read from the input stream into the ByteBuffer provided by the ApplicationBufferHandler.
`void`
`expand(int size)`
Expand the byte buffer to at least the given size.
`ByteBuffer`
`getByteBuffer()`
`void`
`setByteBuffer(ByteBuffer buffer)`
Set the byte buffer.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### Http11InputBuffer

public Http11InputBuffer(Request request, int headerBufferSize, boolean rejectIllegalHeader, HttpParser httpParser)

## Method Details

### doRead

public int doRead(ApplicationBufferHandler handler) throws IOException
Description copied from interface: `InputBuffer`
Read from the input stream into the ByteBuffer provided by the ApplicationBufferHandler. IMPORTANT: the current model assumes that the protocol will 'own' the ByteBuffer and return a pointer to it.

Specified by:
  `doRead` in interface `InputBuffer`
Parameters:
  `handler` - ApplicationBufferHandler that provides the buffer to read data into.
Returns:
  The number of bytes that have been added to the buffer or -1 for end of stream
Throws:
  `IOException` - If an I/O error occurs reading from the input stream

### available

public int available()
Description copied from interface: `InputBuffer`
Obtain an estimate of the number of bytes that can be read without blocking. Typically, this will be the number of available bytes known to be buffered.

Specified by:
  `available` in interface `InputBuffer`
Returns:
  The number of bytes that can be read without blocking

### setByteBuffer

public void setByteBuffer(ByteBuffer buffer)
Description copied from interface: `ApplicationBufferHandler`
Set the byte buffer.

Specified by:
  `setByteBuffer` in interface `ApplicationBufferHandler`
Parameters:
  `buffer` - the byte buffer

### getByteBuffer

public ByteBuffer getByteBuffer()

Specified by:
  `getByteBuffer` in interface `ApplicationBufferHandler`
Returns:
  the byte buffer

### expand

public void expand(int size)
Description copied from interface: `ApplicationBufferHandler`
Expand the byte buffer to at least the given size. Some implementations may not implement this.

Specified by:
  `expand` in interface `ApplicationBufferHandler`
Parameters:
  `size` - the desired size