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

TokenStack Class Reference

List of all members.

Public Member Functions

 this (int size=10)
TokenStack clone ()
int opApply (int(*dg)(inout Token))
void reset ()
Token findToken (char[] match)
int size ()
Token push (char[] content)
Token push (Token token)
Token push ()
void pop ()

Static Public Member Functions

bool isMatch (Token token, char[] match)
void resize (inout Token[] tokens, int size)

Private Attributes

int depth
Token[] tokens

Static Private Attributes

const int MaxTokenStackSize = 256

Detailed Description

A stack of Tokens, used for capturing http headers. The tokens themselves are typically mapped onto the content of a Buffer, or some other external content, so there's minimal allocation involved (typically zero).

Definition at line 67 of file TokenStack.d.


Member Function Documentation

this int  size = 10  )  [inline]
 

Construct a TokenStack with the specified initial size. The stack will later be resized as necessary.

Definition at line 81 of file TokenStack.d.

References resize().

TokenStack clone  )  [inline]
 

Clone this stack of tokens

Definition at line 93 of file TokenStack.d.

References depth, Token::set(), tokens, and TokenStack.

Referenced by HttpTokens::this().

int opApply int(*  dg)(inout Token)  )  [inline]
 

Iterate over all tokens in stack

Definition at line 113 of file TokenStack.d.

void reset  )  [inline]
 

Pop the stack all the way back to zero

Definition at line 129 of file TokenStack.d.

Referenced by HttpTokens::reset().

Token findToken char[]  match  )  [inline]
 

Scan the tokens looking for the first one with a matching name. Returns the matching Token, or null if there is no such match.

Definition at line 142 of file TokenStack.d.

References isMatch().

Referenced by HttpTokens::get().

int size  )  [inline]
 

Return the current stack depth

Definition at line 161 of file TokenStack.d.

Token push char[]  content  )  [inline]
 

Push a new token onto the stack, and set it content to that provided. Returns the new Token.

Definition at line 173 of file TokenStack.d.

References push(), and Token::set().

Referenced by HttpTokens::add(), HttpParams::parse(), and HttpHeaders::parse().

Token push Token  token  )  [inline]
 

Push a new token onto the stack, and set it content to be that of the specified token. Returns the new Token.

Definition at line 185 of file TokenStack.d.

References push(), and Token::toString().

Token push  )  [inline]
 

Push a new token onto the stack, and return it.

Definition at line 196 of file TokenStack.d.

References resize().

Referenced by push().

void pop  )  [inline]
 

Pop the stack by one.

Definition at line 209 of file TokenStack.d.

bool isMatch Token  token,
char[]  match
[inline, static]
 

See if the given token matches the specified text. The two must match the minimal extent exactly.

Definition at line 224 of file TokenStack.d.

References Token::toString(), and version.

Referenced by findToken(), and HttpTokens::FilteredTokens::opApply().

void resize inout Token[]  tokens,
int  size
[inline, static]
 

Resize this stack by extending the array.

Definition at line 244 of file TokenStack.d.

References MaxTokenStackSize, and Token.

Referenced by push(), and this().


Member Data Documentation

int depth [private]
 

Definition at line 69 of file TokenStack.d.

Referenced by clone().

Token [] tokens [private]
 

Definition at line 70 of file TokenStack.d.

Referenced by clone().

const int MaxTokenStackSize = 256 [static, private]
 

Definition at line 72 of file TokenStack.d.

Referenced by resize().


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