1#if defined(HAVE_CONFIG_H)
55#define defineHeader(_enum, _name, _type, _reference) \
57H_##_enum::getTypeNum() const {return Headers::_enum;} \
59void H_##_enum::merge(SipMessage& target, const SipMessage& embedded) \
61 if (embedded.exists(*this)) \
63 target.header(*this) = embedded.header(*this); \
67H_##_enum::H_##_enum() \
69 Headers::CommaTokenizing[Headers::_enum+1] = bool(Type::commaHandling & ParserCategory::CommasAllowedOutputMulti); \
70 Headers::CommaEncoding[Headers::_enum+1] = bool(Type::commaHandling & 2); \
71 Headers::HeaderNames[Headers::_enum+1] = _name; \
72 Headers::Multi[Headers::_enum+1] = false; \
73 HeaderBase::theHeaderInstances[Headers::_enum+1] = this; \
77H_##_enum::knownReturn(ParserContainerBase* container) \
79 return dynamic_cast<ParserContainer<_type>*>(container)->front(); \
83H_##_enum::makeContainer(HeaderFieldValueList* hfvs) const \
85 return new ParserContainer<_type>(hfvs,Headers::_enum); \
88H_##_enum resip::h_##_enum
90#define defineMultiHeader(_enum, _name, _type, _reference) \
92H_##_enum##s::getTypeNum() const {return Headers::_enum;} \
94void H_##_enum##s::merge(SipMessage& target, const SipMessage& embedded) \
96 if (embedded.exists(*this)) \
98 target.header(*this).append(embedded.header(*this)); \
102H_##_enum##s::H_##_enum##s() \
104 Headers::CommaTokenizing[Headers::_enum+1] = bool(Type::value_type::commaHandling & ParserCategory::CommasAllowedOutputMulti); \
105 Headers::CommaEncoding[Headers::_enum+1] = bool(Type::value_type::commaHandling & 2); \
106 Headers::HeaderNames[Headers::_enum+1] = _name; \
107 Headers::Multi[Headers::_enum+1] = true; \
108 HeaderBase::theHeaderInstances[Headers::_enum+1] = this; \
111ParserContainer<_type>& \
112H_##_enum##s::knownReturn(ParserContainerBase* container) \
114 return *dynamic_cast<ParserContainer<_type>*>(container); \
117ParserContainerBase* \
118H_##_enum##s::makeContainer(HeaderFieldValueList* hfvs) const \
120 return new ParserContainer<_type>(hfvs,Headers::_enum); \
123H_##_enum##s resip::h_##_enum##s
320H_RESIP_DO_NOT_USEs::getTypeNum()
const {
return Headers::RESIP_DO_NOT_USE;}
322H_RESIP_DO_NOT_USEs::H_RESIP_DO_NOT_USEs()
335H_RESIP_DO_NOT_USEs resip::h_RESIP_DO_NOT_USEs;
Represents the "credentials" and "challenge" elements in the SIP grammar.
Represents a CSeq header field value (this doesn't have an official name in the RFC 3261 grammar).
Represents the "callid" element in the SIP grammar.
An alternative to std::string, encapsulates an arbitrary buffer of bytes.
static const Data Empty
Constant that represents a zero-length data.
Represents the "SIP-date" element in the RFC 3261 grammar.
Represents the header field value for an Expires-type header.
Represents the "absoluteURI" element in the RFC 3261 grammar.
Represents an Identity header from RFC8824.
Represents the "media-type" element in the RFC 3261 grammar.
Represents the "name-addr" and the "addr-spec" elements in the RFC 3261 grammar.
@ CommasAllowedOutputMulti
Abstract Base class implemented in derived class ParserContainer.
Container class for ParserCategory, used by SipMessage to represent multi-valued headers (Contact,...
Represents the "token" element in the RFC 3261 grammar.
Represents the RAck header field value defined in the RFC 3262 grammar.
Represents a SIP message.
Represents the "header-value" element in the RFC 3261 grammar (ie, an unknown header field value).
Generically represents a token whose value can be wrapped and encoded using double quotes.
Represents the "token" element in the RFC 3261 grammar.
Represents a numeric-with-comment header field value.
Represents the "via-parm" element in the RFC 3261 grammar.
Represents the "warning-value" element in the RFC 3261 grammar.
dcm! – add UnusedChecking(_enum) below;
StatusLineType h_StatusLine
ParserContainer< Mime > Mimes
ParserContainer< GenericUri > GenericUris
H_PPreferredIdentitys h_PPreferredIdentities
H_SecurityVerifys h_SecurityVerifies
H_PAssertedIdentitys h_PAssertedIdentities
ParserContainer< NameAddr > NameAddrs
RequestLineType h_RequestLine
ParserContainer< StringCategory > StringCategories
H_AllowEventss h_AllowEvents