org.eclipse.jetty.http

## Class HttpParser

- java.lang.Object
- - org.eclipse.jetty.http.HttpParser

All Implemented Interfaces:
  Parser

    public class HttpParser
    extends Object
    implements Parser

### Nested Class Summary

Nested Classes
`static class` `HttpParser.EventHandler`

### Field Summary

Fields
`protected int` `_chunkLength`
`protected int` `_chunkPosition`
`protected long` `_contentLength`
`protected long` `_contentPosition`
`protected View` `_contentView`
`protected byte` `_eol`
`protected int` `_length`
`protected int` `_state`
`static int` `STATE_CHUNK`
`static int` `STATE_CHUNK_PARAMS`
`static int` `STATE_CHUNK_SIZE`
`static int` `STATE_CHUNKED_CONTENT`
`static int` `STATE_CONTENT`
`static int` `STATE_END`
`static int` `STATE_END0`
`static int` `STATE_END1`
`static int` `STATE_EOF_CONTENT`
`static int` `STATE_FIELD0`
`static int` `STATE_FIELD2`
`static int` `STATE_HEADER`
`static int` `STATE_HEADER_IN_NAME`
`static int` `STATE_HEADER_IN_VALUE`
`static int` `STATE_HEADER_NAME`
`static int` `STATE_HEADER_VALUE`
`static int` `STATE_SEEKING_EOF`
`static int` `STATE_SPACE1`
`static int` `STATE_SPACE2`
`static int` `STATE_START`
`static int` `STATE_STATUS`
`static int` `STATE_URI`

### Constructor Summary

Constructors
Constructor and Description
`HttpParser(Buffer buffer, HttpParser.EventHandler handler)` Constructor.
`HttpParser(Buffers buffers, EndPoint endp, HttpParser.EventHandler handler)` Constructor.

### Method Summary

Methods
`int` `available()`
`Buffer` `blockForContent(long maxIdleTime)`
`protected int` `fill()` fill the buffers from the endpoint
`Buffer` `getBodyBuffer()`
`long` `getContentLength()`
`long` `getContentRead()`
`Buffer` `getHeaderBuffer()`
`int` `getState()`
`boolean` `inContentState()`
`boolean` `inHeaderState()`
`boolean` `isChunking()`
`boolean` `isComplete()`
`boolean` `isIdle()`
`boolean` `isMoreInBuffer()`
`boolean` `isPersistent()`
`boolean` `isState(int state)`
`void` `parse()` Parse until `END` state.
`boolean` `parseAvailable()` Parse until END state.
`int` `parseNext()` Parse until next Event.
`void` `reset()`
`void` `returnBuffers()`
`void` `setForceContentBuffer(boolean force)`
`void` `setHeadResponse(boolean head)` Set if a HEAD response is expected
`void` `setPersistent(boolean persistent)`
`void` `setState(int state)`
`String` `toString()`
`String` `toString(Buffer buf)`

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

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

### Field Detail

#### STATE_START

    public static final int STATE_START

See Also:
  Constant Field Values

#### STATE_FIELD0

    public static final int STATE_FIELD0

See Also:
  Constant Field Values

#### STATE_SPACE1

    public static final int STATE_SPACE1

See Also:
  Constant Field Values

#### STATE_STATUS

    public static final int STATE_STATUS

See Also:
  Constant Field Values

#### STATE_URI

    public static final int STATE_URI

See Also:
  Constant Field Values

#### STATE_SPACE2

    public static final int STATE_SPACE2

See Also:
  Constant Field Values

#### STATE_END0

    public static final int STATE_END0

See Also:
  Constant Field Values

#### STATE_END1

    public static final int STATE_END1

See Also:
  Constant Field Values

#### STATE_FIELD2

    public static final int STATE_FIELD2

See Also:
  Constant Field Values

#### STATE_HEADER

    public static final int STATE_HEADER

See Also:
  Constant Field Values

#### STATE_HEADER_NAME

    public static final int STATE_HEADER_NAME

See Also:
  Constant Field Values

#### STATE_HEADER_IN_NAME

    public static final int STATE_HEADER_IN_NAME

See Also:
  Constant Field Values

#### STATE_HEADER_VALUE

    public static final int STATE_HEADER_VALUE

See Also:
  Constant Field Values

#### STATE_HEADER_IN_VALUE

    public static final int STATE_HEADER_IN_VALUE

See Also:
  Constant Field Values

#### STATE_END

    public static final int STATE_END

See Also:
  Constant Field Values

#### STATE_EOF_CONTENT

    public static final int STATE_EOF_CONTENT

See Also:
  Constant Field Values

#### STATE_CONTENT

    public static final int STATE_CONTENT

See Also:
  Constant Field Values

#### STATE_CHUNKED_CONTENT

    public static final int STATE_CHUNKED_CONTENT

See Also:
  Constant Field Values

#### STATE_CHUNK_SIZE

    public static final int STATE_CHUNK_SIZE

See Also:
  Constant Field Values

#### STATE_CHUNK_PARAMS

    public static final int STATE_CHUNK_PARAMS

See Also:
  Constant Field Values

#### STATE_CHUNK

    public static final int STATE_CHUNK

See Also:
  Constant Field Values

#### STATE_SEEKING_EOF

    public static final int STATE_SEEKING_EOF

See Also:
  Constant Field Values

#### _contentView

    protected final View _contentView

#### _state

    protected int _state

#### _eol

    protected byte _eol

#### _length

    protected int _length

#### _contentLength

    protected long _contentLength

#### _contentPosition

    protected long _contentPosition

#### _chunkLength

    protected int _chunkLength

#### _chunkPosition

    protected int _chunkPosition

### Constructor Detail

#### HttpParser

    public HttpParser(Buffer buffer,
              HttpParser.EventHandler handler)

Constructor.

#### HttpParser

    public HttpParser(Buffers buffers,
              EndPoint endp,
              HttpParser.EventHandler handler)

Constructor.

Parameters:
  `buffers` - the buffers to use
  `endp` - the endpoint
  `handler` - the even handler

### Method Detail

#### getContentLength

    public long getContentLength()

#### getContentRead

    public long getContentRead()

#### setHeadResponse

    public void setHeadResponse(boolean head)

Set if a HEAD response is expected

Parameters:
  `head` -

#### getState

    public int getState()

#### inContentState

    public boolean inContentState()

#### inHeaderState

    public boolean inHeaderState()

#### isChunking

    public boolean isChunking()

#### isIdle

    public boolean isIdle()

Specified by:
  `isIdle` in interface `Parser`

#### isComplete

    public boolean isComplete()

Specified by:
  `isComplete` in interface `Parser`

#### isMoreInBuffer

    public boolean isMoreInBuffer()
                           throws IOException

Specified by:
  `isMoreInBuffer` in interface `Parser`
Throws:
  `IOException`

#### isState

    public boolean isState(int state)

#### isPersistent

    public boolean isPersistent()

Specified by:
  `isPersistent` in interface `Parser`

#### setPersistent

    public void setPersistent(boolean persistent)

Specified by:
  `setPersistent` in interface `Parser`

#### parse

    public void parse()
               throws IOException

Parse until `END` state. If the parser is already in the END state, then it is `reset` and re-parsed.

Throws:
  `IllegalStateException` - If the buffers have already been partially parsed.
  `IOException`

#### parseAvailable

    public boolean parseAvailable()
                           throws IOException

Parse until END state. This method will parse any remaining content in the current buffer. It does not care about the `current state` of the parser.

Specified by:
  `parseAvailable` in interface `Parser`
Returns:
  True if progress made
Throws:
  `IOException`
See Also:
  `parse()`, `parseNext()`

#### parseNext

    public int parseNext()
                  throws IOException

Parse until next Event.

Returns:
  an indication of progress <0 EOF, 0 no progress, >0 progress.
Throws:
  `IOException`

#### fill

    protected int fill()
                throws IOException

fill the buffers from the endpoint

Throws:
  `IOException`

#### reset

    public void reset()

Specified by:
  `reset` in interface `Parser`

#### returnBuffers

    public void returnBuffers()

Specified by:
  `returnBuffers` in interface `Parser`

#### setState

    public void setState(int state)

#### toString

    public String toString(Buffer buf)

#### toString

    public String toString()

Overrides:
  `toString` in class `Object`

#### getHeaderBuffer

    public Buffer getHeaderBuffer()

#### getBodyBuffer

    public Buffer getBodyBuffer()

#### setForceContentBuffer

    public void setForceContentBuffer(boolean force)

Parameters:
  `force` - True if a new buffer will be forced to be used for content and the header buffer will not be used.

#### blockForContent

    public Buffer blockForContent(long maxIdleTime)
                           throws IOException

Throws:
  `IOException`

#### available

    public int available()
                  throws IOException

Throws:
  `IOException`