1#if defined(HAVE_CONFIG_H)
15#define RESIPROCATE_SUBSYSTEM Subsystem::SIP
95 pb.
data(mValue, startMark);
103 return new Token(*
this);
109 return new (location)
Token(*
this);
115 return new (pool)
Token(*
this, pool);
133 return ParameterFactories[type](type, pb, terminators, pool);
153#define defineParam(_enum, _name, _type, _RFC_ref_ignored) \
154_enum##_Param::DType& \
155Token::param(const _enum##_Param& paramType) \
158 _enum##_Param::Type* p = \
159 static_cast<_enum##_Param::Type*>(getParameterByEnum(paramType.getTypeNum())); \
162 p = new _enum##_Param::Type(paramType.getTypeNum()); \
163 mParameters.push_back(p); \
168const _enum##_Param::DType& \
169Token::param(const _enum##_Param& paramType) const \
172 _enum##_Param::Type* p = \
173 static_cast<_enum##_Param::Type*>(getParameterByEnum(paramType.getTypeNum())); \
176 InfoLog(<< "Missing parameter " _name " " << ParameterTypes::ParameterNames[paramType.getTypeNum()]); \
177 DebugLog(<< *this); \
178 throw Exception("Missing parameter " _name, __FILE__, __LINE__); \
204defineParam(appId,
"app-id",
DataParameter,
"draft-ietf-sipping-config-framework-05 (renamed to auid in 06, which was then removed in 08)");
#define defineParam(_enum, _name, _type, _RFC_ref_ignored)
Generically represents miscellaneous parameter data.
An alternative to std::string, encapsulates an arbitrary buffer of bytes.
Represents various parameters that are indicated to be in effect merely by being present,...
virtual ParameterTypes::Type getTypeNum() const =0
Parameter *(* Factory)(ParameterTypes::Type, ParseBuffer &, const std::bitset< 256 > &terminators, PoolBase *pool)
Provides string-parsing functionality with protection from buffer overflow.
CurrentPosition skipWhitespace()
CurrentPosition skipToChar(char c)
CurrentPosition skipToOneOf(const char *cs)
void data(Data &data, const char *start) const
make the passed in data share memory with the buffer (uses Data::Share)
static const char * Whitespace
Base class for all SIP grammar elements that can have parameters.
Parameter * getParameterByEnum(ParameterTypes::Type type) const
ParserCategory & operator=(const ParserCategory &rhs)
void removeParameterByEnum(ParameterTypes::Type type)
void parseParameters(ParseBuffer &pb)
EncodeStream & encodeParameters(EncodeStream &str) const
Encodes parameters as they should appear on the wire.
Represents the "q" parameter value of the RFC 3261 grammar.
Generically represents miscellaneous parameter data that is encoded using double quotes.
static const char * SEMI_COLON
Represents the "token" element in the RFC 3261 grammar.
bool operator!=(const Token &rhs) const
bool exists(const Param< Token > ¶mType) const
virtual Parameter * createParam(ParameterTypes::Type type, ParseBuffer &pb, const std::bitset< 256 > &terminators, PoolBase *pool)
const Data & value() const
Gets the value (ie; no parameters) of this Token as a Data&.
virtual ParserCategory * clone() const
bool isEqual(const Token &rhs) const
virtual EncodeStream & encodeParsed(EncodeStream &str) const
bool operator<(const Token &rhs) const
void remove(const Param< Token > ¶mType)
Token & operator=(const Token &)
virtual void parse(ParseBuffer &pb)
bool operator==(const Token &rhs) const
Generically represents unsigned 32-bit integer values conveyed by SIP parameters.
dcm! – add UnusedChecking(_enum) below;