Coverage Report

Created: 2024-07-23 06:39

/src/resiprocate/resip/stack/UInt32Parameter.hxx
Line
Count
Source (jump to first uncovered line)
1
#if !defined(RESIP_UINT32PARAMETER_HXX)
2
#define RESIP_UINT32PARAMETER_HXX 
3
4
#include "rutil/resipfaststreams.hxx"
5
6
#include "resip/stack/ParameterTypeEnums.hxx"
7
#include "resip/stack/Parameter.hxx"
8
#include "rutil/PoolBase.hxx"
9
#include <iosfwd>
10
11
namespace resip
12
{
13
14
class ParseBuffer;
15
16
/**
17
   @ingroup sip_grammar
18
19
   @brief Generically represents unsigned 32-bit integer values
20
   conveyed by SIP parameters.
21
*/
22
class UInt32Parameter : public Parameter
23
{
24
   public:
25
      typedef uint32_t Type;
26
27
      UInt32Parameter(ParameterTypes::Type, ParseBuffer& pb, const std::bitset<256>& terminators);
28
      explicit UInt32Parameter(ParameterTypes::Type type, uint32_t value = 0);
29
      
30
      static Parameter* decode(ParameterTypes::Type type, 
31
                                 ParseBuffer& pb, 
32
                                 const std::bitset<256>& terminators,
33
                                 PoolBase* pool)
34
10.4k
      {
35
10.4k
         return new (pool) UInt32Parameter(type, pb, terminators);
36
10.4k
      }
37
38
      virtual EncodeStream& encode(EncodeStream& stream) const;
39
40
      virtual Parameter* clone() const;
41
0
      Type& value() {return mValue;}
42
43
   private:
44
      uint32_t mValue;
45
};
46
 
47
}
48
49
#endif
50
51
/* ====================================================================
52
 * The Vovida Software License, Version 1.0 
53
 * 
54
 * Copyright (c) 2000 Vovida Networks, Inc.  All rights reserved.
55
 * 
56
 * Redistribution and use in source and binary forms, with or without
57
 * modification, are permitted provided that the following conditions
58
 * are met:
59
 * 
60
 * 1. Redistributions of source code must retain the above copyright
61
 *    notice, this list of conditions and the following disclaimer.
62
 * 
63
 * 2. Redistributions in binary form must reproduce the above copyright
64
 *    notice, this list of conditions and the following disclaimer in
65
 *    the documentation and/or other materials provided with the
66
 *    distribution.
67
 * 
68
 * 3. The names "VOCAL", "Vovida Open Communication Application Library",
69
 *    and "Vovida Open Communication Application Library (VOCAL)" must
70
 *    not be used to endorse or promote products derived from this
71
 *    software without prior written permission. For written
72
 *    permission, please contact vocal@vovida.org.
73
 *
74
 * 4. Products derived from this software may not be called "VOCAL", nor
75
 *    may "VOCAL" appear in their name, without prior written
76
 *    permission of Vovida Networks, Inc.
77
 * 
78
 * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED
79
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
80
 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND
81
 * NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL VOVIDA
82
 * NETWORKS, INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT DAMAGES
83
 * IN EXCESS OF $1,000, NOR FOR ANY INDIRECT, INCIDENTAL, SPECIAL,
84
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
85
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
86
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
87
 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
88
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
89
 * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
90
 * DAMAGE.
91
 * 
92
 * ====================================================================
93
 * 
94
 * This software consists of voluntary contributions made by Vovida
95
 * Networks, Inc. and many individuals on behalf of Vovida Networks,
96
 * Inc.  For more information on Vovida Networks, Inc., please see
97
 * <http://www.vovida.org/>.
98
 *
99
 */