1#if defined(HAVE_CONFIG_H)
17#define RESIPROCATE_SUBSYSTEM Subsystem::SIP
65 return new (location)
CallID(*
this);
71 return new (pool)
CallID(*
this, pool);
95 pb.
data(mValue, start);
115 return ParameterFactories[type](type, pb, terminators, pool);
135#define defineParam(_enum, _name, _type, _RFC_ref_ignored) \
136_enum##_Param::DType& \
137CallID::param(const _enum##_Param& paramType) \
140 _enum##_Param::Type* p = \
141 static_cast<_enum##_Param::Type*>(getParameterByEnum(paramType.getTypeNum())); \
144 p = new _enum##_Param::Type(paramType.getTypeNum()); \
145 mParameters.push_back(p); \
150const _enum##_Param::DType& \
151CallID::param(const _enum##_Param& paramType) const \
154 _enum##_Param::Type* p = \
155 static_cast<_enum##_Param::Type*>(getParameterByEnum(paramType.getTypeNum())); \
158 InfoLog(<< "Missing parameter " _name " " << ParameterTypes::ParameterNames[paramType.getTypeNum()]); \
159 DebugLog(<< *this); \
160 throw Exception("Missing parameter " _name, __FILE__, __LINE__); \
#define defineParam(_enum, _name, _type, _RFC_ref_ignored)
Represents the "callid" element in the SIP grammar.
void remove(const Param< CallID > ¶mType)
bool operator==(const CallID &) const
bool exists(const Param< CallID > ¶mType) const
CallID & operator=(const CallID &)
virtual void parse(ParseBuffer &pb)
virtual EncodeStream & encodeParsed(EncodeStream &str) const
virtual ParserCategory * clone() const
virtual Parameter * createParam(ParameterTypes::Type type, ParseBuffer &pb, const std::bitset< 256 > &terminators, PoolBase *pool)
Generically represents miscellaneous parameter data.
An alternative to std::string, encapsulates an arbitrary buffer of bytes.
static std::bitset< 256 > toBitset(const resip::Data &chars)
Creates a bitset reflecting the contents of this data (as a set) ie.
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()
void assertNotEof() const
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.
static const char * SEMI_COLON
dcm! – add UnusedChecking(_enum) below;