    All Packages  Class Hierarchy  This Package  Previous  Next  Index

# Class w3c.www.http.HttpParser

    java.lang.Object
       |
       +----w3c.www.http.HttpParser

public class HttpParser
extends Object

A private class to help with the parsing. Contains only some static method, helping to parse various byte buffers into Java object (Yes, I am still and again trying to reduce memory consumption).

I don't know wether this sucks or not. One hand I am sparing a tremedous amount of Strings creation, on the other end I am recoding a number of parsers that are available on String instances.

##

HttpParser()

##

compare(byte[], int, int, byte[])
  Compare two byte arrays.
compare(byte[], int, int, byte[], int, int)
  Compare two byte arrays.
error(String, String)
  Emit an error.
nextItem(byte[], ParseState)
  Parse list of items, taking care of quotes and optional LWS.
parseDate(byte[], ParseState)
  Parse the given byte array as an HTTP compliant date.
parseDateOrDeltaSeconds(byte[], ParseState)
parseDateOrDeltaSeconds(byte[], ParseState, long)
  Parse a date as either a delta-second value, or a date.
parseDeltaSecond(byte[], ParseState)
  Parse a delta-second value.
parseInt(byte[], int, ParseState)
  Parse an integer, and return an updated pointer.
parseInt(byte[], ParseState)
parseMonth(byte[], ParseState)
parseQuality(byte[], ParseState)
skipSpaces(byte[], ParseState)
  Skip leading LWS, not including CR LF.
unquote(byte[], ParseState)

##

HttpParser

      public HttpParser()

##

error

      protected static void error(String mth,
                                  String msg) throws HttpInvalidValueException

  Emit an error.
  Parameters:
    mth - The method trigerring the error.
    msg - An associated message.
  Throws: HttpParserException
    To indicate the error to caller.

compare

      public final static int compare(byte b1[],
                                      int o1,
                                      int l1,
                                      byte b2[],
                                      int o2,
                                      int l2)

  Compare two byte arrays. I am not comfident about how the equality of byte arrays is performed by other means, sorry.
  Parameters:
    b1 - The first byte array.
    o1 - The offset of the bytes to compare.
    l1 - The number of bytes to compare.
    b2 - What to compare against.
    o2 - The offset of the bytes to compare.
    l2 - The length of the bytes to compare.
  Returns:
    An integer, <0 if b1 is less than b2, 0 if equals, >0otherwise.

compare

      public final static int compare(byte b1[],
                                      int o1,
                                      int l1,
                                      byte b2[])

  Compare two byte arrays. Short-cut version of the above version.
  Parameters:
    b1 - The first byte array.
    o1 - The offset of the bytes to compare.
    l1 - The number of bytes to compare.
    b2 - What to compare against.
  Returns:
    An integer, <0 if b1 is less than b2, 0 if equals, >0otherwise.

parseInt

      public final static int parseInt(byte buf[],
                                       int radix,
                                       ParseState ps)

  Parse an integer, and return an updated pointer.

parseInt

      public final static int parseInt(byte buf[],
                                       ParseState ps)

unquote

      public static boolean unquote(byte buf[],
                                    ParseState ps)

skipSpaces

      public final static int skipSpaces(byte buf[],
                                         ParseState ps)

  Skip leading LWS, not including CR LF. Update the input offset, after any leading space.
  Parameters:
    buf - The buffer to be parsed.
    ptr - The buffer pointer to be updated on return.
  Returns:
    The potentially advanced buffer input offset.

nextItem

      public final static int nextItem(byte buf[],
                                       ParseState ps)

  Parse list of items, taking care of quotes and optional LWS. The output offset points to the next element of the list.

parseMonth

      public static int parseMonth(byte buf[],
                                   ParseState ps)

parseDeltaSecond

      public static long parseDeltaSecond(byte buf[],
                                          ParseState ps)

  Parse a delta-second value.
  Returns:
    A long giving the date at which to retry as a number of milliseconds since Java epoch.

parseDate

      public static long parseDate(byte buf[],
                                   ParseState ps)

  Parse the given byte array as an HTTP compliant date.
  Parameters:
    buf - The byte buffer to parse.
    sp - The current parsing state.
  Returns:
    A long giving the date as a number of milliseconds since epoch.

parseDateOrDeltaSeconds

      public static long parseDateOrDeltaSeconds(byte buf[],
                                                 ParseState ps,
                                                 long relto)

  Parse a date as either a delta-second value, or a date. In case of delta seconds, we use the current time (except if one is provided), to compute the date.
  Returns:
    A date encoded as the number of millisconds since Java epoch.

parseDateOrDeltaSeconds

      public static long parseDateOrDeltaSeconds(byte buf[],
                                                 ParseState ps)

parseQuality

      public static double parseQuality(byte buf[],
                                        ParseState ps)

    All Packages  Class Hierarchy  This Package  Previous  Next  Index