1#if defined(HAVE_CONFIG_H)
15#define RESIPROCATE_SUBSYSTEM Subsystem::SIP
83 if (!pb.
eof() && isdigit(
static_cast< unsigned char >(*p)))
110 return ParameterFactories[type](type, pb, terminators, pool);
130#define defineParam(_enum, _name, _type, _RFC_ref_ignored) \
131_enum##_Param::DType& \
132ExpiresCategory::param(const _enum##_Param& paramType) \
135 _enum##_Param::Type* p = \
136 static_cast<_enum##_Param::Type*>(getParameterByEnum(paramType.getTypeNum())); \
139 p = new _enum##_Param::Type(paramType.getTypeNum()); \
140 mParameters.push_back(p); \
145const _enum##_Param::DType& \
146ExpiresCategory::param(const _enum##_Param& paramType) const \
149 _enum##_Param::Type* p = \
150 static_cast<_enum##_Param::Type*>(getParameterByEnum(paramType.getTypeNum())); \
153 InfoLog(<< "Missing parameter " _name " " << ParameterTypes::ParameterNames[paramType.getTypeNum()]); \
154 DebugLog(<< *this); \
155 throw Exception("Missing parameter " _name, __FILE__, __LINE__); \
#define defineParam(_enum, _name, _type, _RFC_ref_ignored)
Generically represents miscellaneous parameter data.
Represents the header field value for an Expires-type header.
ExpiresCategory & operator=(const ExpiresCategory &)
virtual void parse(ParseBuffer &pb)
bool exists(const Param< ExpiresCategory > ¶mType) const
virtual EncodeStream & encodeParsed(EncodeStream &str) const
virtual ParserCategory * clone() const
void remove(const Param< ExpiresCategory > ¶mType)
virtual Parameter * createParam(ParameterTypes::Type type, ParseBuffer &pb, const std::bitset< 256 > &terminators, PoolBase *pool)
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.
uint32_t uInt32()
dcm! – merge these, ask about length checks
CurrentPosition skipWhitespace()
CurrentPosition skipToChar(char c)
CurrentPosition position() const
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.
static const char * SEMI_COLON
dcm! – add UnusedChecking(_enum) below;