/usr/include/corelinux/Exception.hpp is in libcorelinux-dev 0.4.32-7.4ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 | #if !defined (__EXCEPTION_HPP)
#define __EXCEPTION_HPP
/*
CoreLinux++
Copyright (C) 1999 CoreLinux Consortium
The CoreLinux++ Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The CoreLinux++ Library Library is distributed in the hope that it will
be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
*/
#if !defined IN_COMMON_HPP
#error except.hpp is included by common.hpp only.
#endif
#include <string>
//
// Base exception class
//
namespace corelinux
{
DECLARE_CLASS( Exception );
// Define a reference to line number
DECLARE_TYPE( Dword, LineNum );
/**
Exception is the base exception class used in the CoreLinux++ libraries.
It is provided to support a rich base from which domain Exceptions may
derive.
*/
class Exception
{
public:
/// Exception Severity States
enum Severity
{
CONTINUABLE = 1, /// System can continue processing
THREADFATAL, /// Exception may prove to be thread fatal
PROCESSFATAL, /// Exception may prove to be process fatal
THREADTERMINATE, /// System should kill thread
PROCESSTERMINATE /// System should exit
};
/**
Default Constructor
@param why describes why the exception was thrown
@param file The source module throwing the exception
@param line The line of source throwing the exception
@param severity The Exception::Severity of the Exception
@param outOfMemory An out of memory indicator
*/
Exception
(
CharCptr why,
CharCptr file,
LineNum line,
Severity severity = Exception::CONTINUABLE,
bool outOfMemory = false
);
/**
Copy constructor
@param Exception const reference
*/
Exception( ExceptionCref crOther );
/// Virtual Destructor
virtual ~Exception(void);
//
// Operator overloads
//
/**
Assignment operator overload
@param Exception const reference
@return Exception reference to self
*/
ExceptionRef operator = ( ExceptionCref otherRef );
/**
Comparisson operator overload
@param Exception const reference
@return true if equal, false otherwise
*/
bool operator==( ExceptionCref otherRef );
//
// Accessor methods
//
/**
Accessor
@return Const reference to module name where
Exception was thrown
*/
const std::string & getFile( void ) const;
/**
Accessor
@return Const reference to line number in module where
Exception was thrown
*/
LineNumCref getLine( void ) const;
/**
Accessor
@return Const reference to Exception explanation.
*/
const std::string & getWhy( void ) const;
/**
Accessor
@return Const reference to Severity of Exception.
*/
const Severity & getSeverity( void ) const;
/**
Accessor
@return Const reference to the unwind stack description.
*/
const std::string & getUnwind( void ) const;
/**
Accessor
@return true if out of memory exception, false otherwise
*/
bool isOutOfMemory( void ) const
{ return theOutOfMemoryFlag;}
//
// Mutator methods
//
/**
Append unwind information to the Exception.
Clients should use this service to identify
themselves and specify any changes to severity.
*/
void addUnwindInfo( CharCptr unwindInfo );
/// Change the severity to Severity::THREADFATAL
void setThreadFatalSeverity( void );
/// Change the severity to Severity::PROCESSFATAL
void setProcessFatalSeverity( void );
/**
Change the severity to Severity::THREADTERMINATE. This is
useful to the catcher that the thread should be
cleaned up.
*/
void setThreadTerminateSeverity( void );
/**
Change the severity to Severity::PROCESSTERMINATE. This is
useful to the catcher that the process should exit
*/
void setProcessTerminateSeverity( void );
protected:
/**
Exceptions must have a reason.
Default constructor is not allowed.
*/
Exception( void );
/**
Exception constructor for use by derivations
*/
Exception
(
CharCptr file,
LineNum line,
Severity severity = Exception::CONTINUABLE,
bool outOfMemory = false
);
/// Changes the exception reason
void setWhy( const std::string & );
/// Changes the exception reason
void setWhy( CharCptr );
private:
private:
// Reason why the exception is being thrown.
std::string theReason;
// File that threw the exception.
std::string theFile;
// Severity of the exception.
Severity theSeverity;
// Unwind information added as exception is unwound from
// stack.
std::string theUnwindInfo;
// Line number in the file throwing the exception.
LineNum theLine;
// Flag that indicates if there is a low memory situation.
bool theOutOfMemoryFlag;
};
}
#endif // !defined __EXCEPTION_HPP
/*
Common rcs information do not modify
$Author: frankc $
$Revision: 1.2 $
$Date: 2000/07/28 01:37:09 $
$Locker: $
*/
|