|
reSIProcate/stack
9694
|
Represents the "token" element in the RFC 3261 grammar. More...
#include <Token.hxx>


Public Types | |
| enum | { commaHandling = CommasAllowedOutputCommas } |
Public Member Functions | |
| Token () | |
| Token (const Data &d) | |
| Token (const HeaderFieldValue &hfv, Headers::Type type, PoolBase *pool=0) | |
| Token (const Token &orig, PoolBase *pool=0) | |
| Token & | operator= (const Token &) |
| bool | isEqual (const Token &rhs) const |
| bool | operator== (const Token &rhs) const |
| bool | operator!= (const Token &rhs) const |
| bool | operator< (const Token &rhs) const |
| const Data & | value () const |
| Gets the value (ie; no parameters) of this Token as a Data&. | |
| Data & | value () |
| virtual void | parse (ParseBuffer &pb) |
| virtual ParserCategory * | clone () const |
| virtual ParserCategory * | clone (void *location) const |
| virtual ParserCategory * | clone (PoolBase *pool) const |
| virtual EncodeStream & | encodeParsed (EncodeStream &str) const |
| virtual Parameter * | createParam (ParameterTypes::Type type, ParseBuffer &pb, const std::bitset< 256 > &terminators, PoolBase *pool) |
| bool | exists (const Param< Token > ¶mType) const |
| void | remove (const Param< Token > ¶mType) |
| defineParam (text,"text", ExistsOrDataParameter,"RFC 3840") | |
| defineParam (dAlg,"d-alg", DataParameter,"RFC 3329") | |
| defineParam (dQop,"d-qop", DataParameter,"RFC 3329") | |
| defineParam (dVer,"d-ver", QuotedDataParameter,"RFC 3329") | |
| defineParam (expires,"expires", UInt32Parameter,"RFC 3261") | |
| defineParam (filename,"filename", DataParameter,"RFC 2183") | |
| defineParam (fromTag,"from-tag", DataParameter,"RFC 4235") | |
| defineParam (handling,"handling", DataParameter,"RFC 3261") | |
| defineParam (id,"id", DataParameter,"RFC 3265") | |
| defineParam (q,"q", QValueParameter,"RFC 3261") | |
| defineParam (reason,"reason", DataParameter,"RFC 3265") | |
| defineParam (retryAfter,"retry-after", UInt32Parameter,"RFC 3265") | |
| defineParam (toTag,"to-tag", DataParameter,"RFC 4235") | |
| defineParam (extension,"ext", DataParameter,"RFC 3966") | |
| defineParam (profileType,"profile-type", DataParameter,"RFC 6080") | |
| defineParam (vendor,"vendor", QuotedDataParameter,"RFC 6080") | |
| defineParam (model,"model", QuotedDataParameter,"RFC 6080") | |
| defineParam (version,"version", QuotedDataParameter,"RFC 6080") | |
| defineParam (effectiveBy,"effective-by", UInt32Parameter,"RFC 6080") | |
| defineParam (document,"document", DataParameter,"draft-ietf-sipping-config-framework-07 (removed in 08)") | |
| defineParam (appId,"app-id", DataParameter,"draft-ietf-sipping-config-framework-05 (renamed to auid in 06, which was then removed in 08)") | |
| defineParam (networkUser,"network-user", DataParameter,"draft-ietf-sipping-config-framework-11 (removed in 12)") | |
| defineParam (require,"require", DataParameter,"RFC 5373") | |
Private Attributes | |
| Data | mValue |
Static Private Attributes | |
| static ParameterTypes::Factory | ParameterFactories [ParameterTypes::MAX_PARAMETER] = {0} |
| anonymous enum |
| Token::Token | ( | ) |
| Token::Token | ( | const Data & | d | ) | [explicit] |
Definition at line 26 of file Token.cxx.
: ParserCategory(), mValue(d) {}
| Token::Token | ( | const HeaderFieldValue & | hfv, |
| Headers::Type | type, | ||
| PoolBase * | pool = 0 |
||
| ) |
Definition at line 31 of file Token.cxx.
: ParserCategory(hfv, type, pool), mValue() {}
Definition at line 36 of file Token.cxx.
: ParserCategory(rhs, pool), mValue(rhs.mValue) {}
| ParserCategory * Token::clone | ( | ) | const [virtual] |
Implements resip::ParserCategory.
Definition at line 101 of file Token.cxx.
References Token().
{
return new Token(*this);
}

| ParserCategory * Token::clone | ( | void * | location | ) | const [virtual] |
Implements resip::ParserCategory.
Definition at line 107 of file Token.cxx.
References Token().
{
return new (location) Token(*this);
}

| ParserCategory * Token::clone | ( | PoolBase * | pool | ) | const [virtual] |
Implements resip::ParserCategory.
Definition at line 113 of file Token.cxx.
References Token().
{
return new (pool) Token(*this, pool);
}

| Parameter * Token::createParam | ( | ParameterTypes::Type | type, |
| ParseBuffer & | pb, | ||
| const std::bitset< 256 > & | terminators, | ||
| PoolBase * | pool | ||
| ) | [virtual] |
Reimplemented from resip::ParserCategory.
Definition at line 129 of file Token.cxx.
References resip::ParameterTypes::MAX_PARAMETER, ParameterFactories, type, and resip::ParameterTypes::UNKNOWN.
{
if(type > ParameterTypes::UNKNOWN && type < ParameterTypes::MAX_PARAMETER && ParameterFactories[type])
{
return ParameterFactories[type](type, pb, terminators, pool);
}
return 0;
}
| resip::Token::defineParam | ( | text | , |
| "text" | , | ||
| ExistsOrDataParameter | , | ||
| "RFC 3840" | |||
| ) |
| resip::Token::defineParam | ( | dAlg | , |
| "d-alg" | , | ||
| DataParameter | , | ||
| "RFC 3329" | |||
| ) |
| resip::Token::defineParam | ( | dQop | , |
| "d-qop" | , | ||
| DataParameter | , | ||
| "RFC 3329" | |||
| ) |
| resip::Token::defineParam | ( | dVer | , |
| "d-ver" | , | ||
| QuotedDataParameter | , | ||
| "RFC 3329" | |||
| ) |
| resip::Token::defineParam | ( | expires | , |
| "expires" | , | ||
| UInt32Parameter | , | ||
| "RFC 3261" | |||
| ) |
| resip::Token::defineParam | ( | filename | , |
| "filename" | , | ||
| DataParameter | , | ||
| "RFC 2183" | |||
| ) |
| resip::Token::defineParam | ( | fromTag | , |
| "from-tag" | , | ||
| DataParameter | , | ||
| "RFC 4235" | |||
| ) |
| resip::Token::defineParam | ( | handling | , |
| "handling" | , | ||
| DataParameter | , | ||
| "RFC 3261" | |||
| ) |
| resip::Token::defineParam | ( | id | , |
| "id" | , | ||
| DataParameter | , | ||
| "RFC 3265" | |||
| ) |
| resip::Token::defineParam | ( | q | , |
| "q" | , | ||
| QValueParameter | , | ||
| "RFC 3261" | |||
| ) |
| resip::Token::defineParam | ( | reason | , |
| "reason" | , | ||
| DataParameter | , | ||
| "RFC 3265" | |||
| ) |
| resip::Token::defineParam | ( | retryAfter | , |
| "retry-after" | , | ||
| UInt32Parameter | , | ||
| "RFC 3265" | |||
| ) |
| resip::Token::defineParam | ( | toTag | , |
| "to-tag" | , | ||
| DataParameter | , | ||
| "RFC 4235" | |||
| ) |
| resip::Token::defineParam | ( | extension | , |
| "ext" | , | ||
| DataParameter | , | ||
| "RFC 3966" | |||
| ) |
| resip::Token::defineParam | ( | profileType | , |
| "profile-type" | , | ||
| DataParameter | , | ||
| "RFC 6080" | |||
| ) |
| resip::Token::defineParam | ( | vendor | , |
| "vendor" | , | ||
| QuotedDataParameter | , | ||
| "RFC 6080" | |||
| ) |
| resip::Token::defineParam | ( | model | , |
| "model" | , | ||
| QuotedDataParameter | , | ||
| "RFC 6080" | |||
| ) |
| resip::Token::defineParam | ( | version | , |
| "version" | , | ||
| QuotedDataParameter | , | ||
| "RFC 6080" | |||
| ) |
| resip::Token::defineParam | ( | effectiveBy | , |
| "effective-by" | , | ||
| UInt32Parameter | , | ||
| "RFC 6080" | |||
| ) |
| resip::Token::defineParam | ( | document | , |
| "document" | , | ||
| DataParameter | , | ||
| "draft-ietf-sipping-config-framework-07 (removed in 08)" | |||
| ) |
| resip::Token::defineParam | ( | appId | , |
| "app-id" | , | ||
| DataParameter | , | ||
| "draft-ietf-sipping-config-framework-05 (renamed to auid in 06, which was then removed in 08)" | |||
| ) |
| resip::Token::defineParam | ( | networkUser | , |
| "network-user" | , | ||
| DataParameter | , | ||
| "draft-ietf-sipping-config-framework-11 (removed in 12)" | |||
| ) |
| resip::Token::defineParam | ( | require | , |
| "require" | , | ||
| DataParameter | , | ||
| "RFC 5373" | |||
| ) |
| EncodeStream & Token::encodeParsed | ( | EncodeStream & | str | ) | const [virtual] |
Implements resip::LazyParser.
Definition at line 119 of file Token.cxx.
References resip::ParserCategory::encodeParameters(), and mValue.
{
str << mValue;
encodeParameters(str);
return str;
}

Definition at line 139 of file Token.cxx.
References resip::LazyParser::checkParsed(), resip::ParserCategory::getParameterByEnum(), and resip::ParamBase::getTypeNum().
Referenced by main().
{
checkParsed();
bool ret = getParameterByEnum(paramType.getTypeNum()) != NULL;
return ret;
}

| bool Token::isEqual | ( | const Token & | rhs | ) | const |
| bool Token::operator!= | ( | const Token & | rhs | ) | const |
| bool Token::operator< | ( | const Token & | rhs | ) | const |
| bool Token::operator== | ( | const Token & | rhs | ) | const |
| void Token::parse | ( | ParseBuffer & | pb | ) | [virtual] |
Implements resip::LazyParser.
Definition at line 91 of file Token.cxx.
References resip::ParseBuffer::data(), mValue, resip::ParserCategory::parseParameters(), resip::Symbols::SEMI_COLON, resip::ParseBuffer::skipToChar(), resip::ParseBuffer::skipToOneOf(), resip::ParseBuffer::skipWhitespace(), and resip::ParseBuffer::Whitespace.
Referenced by resip::Contents::preParseHeaders().
{
const char* startMark = pb.skipWhitespace();
pb.skipToOneOf(ParseBuffer::Whitespace, Symbols::SEMI_COLON);
pb.data(mValue, startMark);
pb.skipToChar(Symbols::SEMI_COLON[0]);
parseParameters(pb);
}

Definition at line 147 of file Token.cxx.
References resip::LazyParser::checkParsed(), resip::ParamBase::getTypeNum(), and resip::ParserCategory::removeParameterByEnum().
{
checkParsed();
removeParameterByEnum(paramType.getTypeNum());
}

| const Data & Token::value | ( | ) | const |
Gets the value (ie; no parameters) of this Token as a Data&.
Definition at line 77 of file Token.cxx.
References resip::LazyParser::checkParsed(), and mValue.
Referenced by isEqual(), main(), resip::Helper::make405(), operator!=(), operator<(), operator==(), and resip::TuIM::sendNotify().
{
checkParsed();
return mValue;
}

| Data & Token::value | ( | ) |
Definition at line 84 of file Token.cxx.
References resip::LazyParser::checkParsed(), and mValue.
{
checkParsed();
return mValue;
}

Data resip::Token::mValue [private] |
Definition at line 90 of file Token.hxx.
Referenced by encodeParsed(), operator=(), parse(), and value().
ParameterTypes::Factory Token::ParameterFactories = {0} [static, private] |
Definition at line 92 of file Token.hxx.
Referenced by createParam().
1.7.5.1