org.mortbay.jetty
Class HttpParser

java.lang.Object
  extended by org.mortbay.jetty.HttpParser
All Implemented Interfaces:
Parser

public class HttpParser
extends Object
implements Parser

Author:
gregw

Nested Class Summary
static class HttpParser.EventHandler
           
static class HttpParser.Input
           
 
Field Summary
protected  int _chunkLength
           
protected  int _chunkPosition
           
protected  long _contentLength
           
protected  long _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
           
 
Constructor Summary
HttpParser(Buffer buffer, HttpParser.EventHandler handler)
          Constructor.
HttpParser(Buffers buffers, EndPoint endp, HttpParser.EventHandler handler, int headerBufferSize, int contentBufferSize)
          Constructor.
 
Method Summary
 long getContentLength()
           
 Buffer getHeaderBuffer()
           
 int getState()
           
 boolean inContentState()
           
 boolean inHeaderState()
           
 boolean isChunking()
           
 boolean isComplete()
           
 boolean isIdle()
           
 boolean isMoreInBuffer()
           
 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 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,
                  int headerBufferSize,
                  int contentBufferSize)
Constructor.

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

getContentLength

public long getContentLength()

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)

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.

Specified by:
parseAvailable in interface 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)
Specified by:
reset in interface Parser

setState

public void setState(int state)

toString

public String toString(Buffer buf)

getHeaderBuffer

public Buffer getHeaderBuffer()