reSIProcate
SIP stack, Dialog Usage Manager and related libraries
Loading...
Searching...
No Matches
QValueParameter.cxx
Go to the documentation of this file.
1#if defined(HAVE_CONFIG_H)
2#include "config.h"
3#endif
4
9#include "rutil/Logger.hxx"
11
12using namespace resip;
13using namespace std;
14
15#define RESIPROCATE_SUBSYSTEM Subsystem::SIP
16
18 ParseBuffer& pb,
19 const std::bitset<256>& terminators)
20 : Parameter(type),
21 mValue(0)
22{
23 pb.skipWhitespace();
24 if (!pb.eof() && *pb.position() != '=')
25 {
26 throw ParseException("parameter constructor expected '='",
27 "QValueParameter", __FILE__, __LINE__);
28 }
29 pb.skipChar();
30 pb.skipWhitespace();
31
32 // .dlb. not zero terminated; no error detection
33 mValue.setValue(pb.qVal());
34}
35
40
43{
44 return new QValueParameter(*this);
45}
46
48QValueParameter::encode(EncodeStream& stream) const
49{
50 return stream << getName() << Symbols::EQUALS << mValue;
51}
52
54resip::operator<<(EncodeStream& stream, const QValue& qvalue)
55{
56 return qvalue.encode(stream);
57}
58
59/* ====================================================================
60 * The Vovida Software License, Version 1.0
61 *
62 * Copyright (c) 2000 Vovida Networks, Inc. All rights reserved.
63 *
64 * Redistribution and use in source and binary forms, with or without
65 * modification, are permitted provided that the following conditions
66 * are met:
67 *
68 * 1. Redistributions of source code must retain the above copyright
69 * notice, this list of conditions and the following disclaimer.
70 *
71 * 2. Redistributions in binary form must reproduce the above copyright
72 * notice, this list of conditions and the following disclaimer in
73 * the documentation and/or other materials provided with the
74 * distribution.
75 *
76 * 3. The names "VOCAL", "Vovida Open Communication Application Library",
77 * and "Vovida Open Communication Application Library (VOCAL)" must
78 * not be used to endorse or promote products derived from this
79 * software without prior written permission. For written
80 * permission, please contact vocal@vovida.org.
81 *
82 * 4. Products derived from this software may not be called "VOCAL", nor
83 * may "VOCAL" appear in their name, without prior written
84 * permission of Vovida Networks, Inc.
85 *
86 * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED
87 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
88 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND
89 * NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL VOVIDA
90 * NETWORKS, INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT DAMAGES
91 * IN EXCESS OF $1,000, NOR FOR ANY INDIRECT, INCIDENTAL, SPECIAL,
92 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
93 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
94 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
95 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
96 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
97 * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
98 * DAMAGE.
99 *
100 * ====================================================================
101 *
102 * This software consists of voluntary contributions made by Vovida
103 * Networks, Inc. and many individuals on behalf of Vovida Networks,
104 * Inc. For more information on Vovida Networks, Inc., please see
105 * <http://www.vovida.org/>.
106 *
107 */
virtual const Data & getName() const
Definition Parameter.cxx:23
Provides string-parsing functionality with protection from buffer overflow.
CurrentPosition skipWhitespace()
CurrentPosition position() const
CurrentPosition skipChar()
BaseException used to indicate parse failures.
Represents the "q" parameter value of the RFC 3261 grammar.
virtual EncodeStream & encode(EncodeStream &stream) const
returns "q=3" or equivalent in the stream it receives
QValueParameter(ParameterTypes::Type, ParseBuffer &pb, const std::bitset< 256 > &terminators)
constructor
virtual Parameter * clone() const
creates a new QValueParameter object that is a copy of this one.
EncodeStream & encode(EncodeStream &stream) const
Definition QValue.cxx:22
void setValue(int val)
Definition QValue.hxx:73
static const char * EQUALS
Definition Symbols.hxx:29
dcm! – add UnusedChecking(_enum) below;
EncodeStream & operator<<(EncodeStream &strm, const BaseException &e)
#define EncodeStream