Coverage Report

Created: 2024-07-23 06:39

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