org.mortbay.jetty
Class HttpParser

java.lang.Object
  extended byorg.mortbay.jetty.HttpParser
All Implemented Interfaces:
HttpTokens

public class HttpParser
extends Object
implements HttpTokens

Author:
gregw

Nested Class Summary
static class HttpParser.EventHandler
           
static class HttpParser.Input
           
 
Field Summary
protected  int _chunkLength
           
protected  int _chunkPosition
           
protected  int _contentLength
           
protected  int _contentPosition
           
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_FIELD1
           
static int STATE_FIELD2
           
static int STATE_HEADER
           
static int STATE_HEADER_NAME
           
static int STATE_HEADER_VALUE
           
static int STATE_SPACE1
           
static int STATE_SPACE2
           
static int STATE_START
           
 
Fields inherited from interface org.mortbay.jetty.HttpTokens
CARRIAGE_RETURN, CHUNKED_CONTENT, COLON, CRLF, EOF_CONTENT, LINE_FEED, NO_CONTENT, SELF_DEFINING_CONTENT, SEMI_COLON, SPACE, TAB, UNKNOWN_CONTENT
 
Constructor Summary
HttpParser(Buffer buffer, HttpParser.EventHandler handler)
          Constructor.
HttpParser(Buffers buffers, EndPoint endp, HttpParser.EventHandler handler, int headerBufferSize, int contentBufferSize)
          Constructor.
 
Method Summary
 int getContentLength()
           
 int getState()
           
 boolean inContentState()
           
 boolean inHeaderState()
           
 boolean isChunking()
           
 boolean isState(int state)
           
 void parse()
          Parse until END state.
 long parseAvailable()
          Parse until END state.
 long parseNext()
          Parse until next Event.
 void reset(boolean returnBuffers)
           
 void setState(int state)
           
 String toString(Buffer buf)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, 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_FIELD1

public static final int STATE_FIELD1
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_VALUE

public static final int STATE_HEADER_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

protected int _state

_eol

protected byte _eol

_length

protected int _length

_contentLength

protected int _contentLength

_contentPosition

protected int _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,
                  int headerBufferSize,
                  int contentBufferSize)
Constructor.

Parameters:
headerBufferSize - size in bytes of header buffer
contentBufferSize - size in bytes of content buffer
Method Detail

getState

public int getState()

isState

public boolean isState(int state)

setState

public void setState(int state)

inHeaderState

public boolean inHeaderState()

inContentState

public boolean inContentState()

getContentLength

public int getContentLength()

isChunking

public boolean isChunking()

toString

public String toString(Buffer buf)

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

Throws:
IOException
See Also:
parse(), parseNext()

parseNext

public long parseNext()
               throws IOException
Parse until next Event.

Throws:
IOException

reset

public void reset(boolean returnBuffers)