Coverage Report

Created: 2024-04-23 06:04

/src/resiprocate/rutil/BaseException.hxx
Line
Count
Source (jump to first uncovered line)
1
#if !defined(RESIP_BASEEXCEPTION_HXX)
2
#define RESIP_BASEEXCEPTION_HXX 
3
4
#ifdef HAVE_CONFIG_H
5
#include "config.h"
6
#endif
7
8
#include <exception>
9
#include <iostream>
10
11
#include "rutil/Data.hxx"
12
13
namespace resip
14
{
15
16
/**
17
   @brief The abstract base-class for all exceptions thrown by resip code.
18
*/
19
class BaseException : public std::exception
20
{
21
   public:
22
      virtual const char* name() const noexcept = 0;
23
24
0
      const Data& getMessage() const noexcept { return message; }
25
0
      const char* what() const noexcept override { return message.data(); }
26
      
27
   protected:
28
      BaseException(const Data& msg,
29
                    const Data& file,
30
                    int line);
31
      
32
      resip::Data message;
33
      resip::Data fileName;
34
      int lineNumber;
35
36
#ifndef RESIP_USE_STL_STREAMS
37
      friend EncodeStream& operator<<(EncodeStream& strm, const BaseException& e);
38
#endif
39
      friend std::ostream& operator<<(std::ostream& strm, const BaseException& e);
40
};
41
42
#ifndef RESIP_USE_STL_STREAMS
43
EncodeStream& operator<<(EncodeStream& strm, const BaseException& e);
44
#endif
45
std::ostream& operator<<(std::ostream& strm, const BaseException& e);
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
 */