Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

CookieParser Class Reference

Inheritance diagram for CookieParser:

Scanner List of all members.

Public Member Functions

bool next (IBuffer buffer, CookieStack stack)

Private Types

enum  State {
  Begin, LValue, Equals, RValue,
  Token, SQuote, DQuote
}

Private Member Functions

bool next (IBuffer buffer, int(*scan)(char[]))
int notFound (Token token, char[] content)

Detailed Description

Server-side cookie parser. See RFC 2109 for details.

Definition at line 477 of file HttpCookies.d.


Member Enumeration Documentation

enum State [private]
 

Enumeration values:
Begin 
LValue 
Equals 
RValue 
Token 
SQuote 
DQuote 

Definition at line 479 of file HttpCookies.d.

Referenced by next().


Member Function Documentation

bool next IBuffer  buffer,
CookieStack  stack
[inline]
 

Locate the next token from the provided buffer, and map a buffer reference into token. Returns true if a token was located, false otherwise.

Note that the buffer content is not duplicated. Instead, a slice of the buffer is referenced by the token. You can use Token.clone() or Token.toString().dup() to copy content per your application needs.

Note also that there may still be one token left in a buffer that was not terminated correctly (as in eof conditions). In such cases, tokens are mapped onto remaining content and the buffer will have no more readable content.

callback from Scanner.next(). We scan for name-value pairs, populating Cookie instances along the way.

Found a value; set that also

Scan content looking for cookie fields

Definition at line 499 of file HttpCookies.d.

References CookieStack::push(), Cookie::setDomain(), Cookie::setName(), Cookie::setPath(), Cookie::setValue(), Cookie::setVersion(), and State.

Referenced by HttpCookies::parse().

bool next IBuffer  buffer,
int(*  scan)(char[])
[inline, inherited]
 

Scan the given IBuffer for another token, and place the results in the provided token. Note that this should be completely thread-safe so one can instantiate singleton tokenizers without issue.

Each Token is expected to be stripped of the delimiter. An end-of-file condition causes trailing content to be placed into the token. Requests made beyond Eof result in empty tokens (length == zero).

Returns true if a token was isolated, false otherwise.

Definition at line 72 of file Tokenizer.d.

References IBuffer::compress(), IBuffer::getConduit(), IBuffer::getPosition(), IConduit::read(), IBuffer::read(), IBuffer::readable(), IBuffer::skip(), and IBuffer::writable().

int notFound Token  token,
char[]  content
[inline, inherited]
 

Clean up after we fail to find a token. Trailing content is placed into the token, and the scanner is told to try and load some more content (where available).

Definition at line 114 of file Tokenizer.d.

References Token::set().

Referenced by RegexTokenizer::next(), LineTokenizer::next(), PunctTokenizer::next(), SpaceTokenizer::next(), and SimpleTokenizer::next().


The documentation for this class was generated from the following file:
Generated on Sun Nov 7 19:07:01 2004 for Mango by doxygen 1.3.6