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_IN_NAME
           
static int STATE_HEADER_IN_VALUE
           
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 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 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 setForceContentBuffer(boolean force)
           
 void setState(int state)
           
 void skipCRLF()
          Skip any CRLFs in buffers
 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_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_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

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()

getContentRead

public long getContentRead()

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

fill

public long fill()
          throws IOException
fill the buffers from the endpoint

Throws:
IOException

skipCRLF

public void skipCRLF()
Skip any CRLFs in buffers


reset

public void reset(boolean returnBuffers)
Specified by:
reset 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.


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