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
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `HttpParser.EventHandler`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `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
    Modifier and Type | Method and Description
    --- | ---
    `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`

Copyright © 1995-2012 Mort Bay Consulting. All Rights Reserved.