/[escript]/branches/windows_from_1431_trunk/finley/src/CPPAdapter/FinleyAdapterException.h
ViewVC logotype

Contents of /branches/windows_from_1431_trunk/finley/src/CPPAdapter/FinleyAdapterException.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1451 - (show annotations)
Thu Feb 28 14:14:12 2008 UTC (13 years, 1 month ago) by phornby
File MIME type: text/plain
File size: 2130 byte(s)
Compiles and passes run_tests on debian.

The Exception scheme has been reworked somewhat. All classes
manage their own internal copies of strings using strin manipulations only.
Class name strings are kept as class static consts, and virtual function
pick up the right class name string and concatinate with the reason string to form the
message string.

Only the copy constructor is implemented, so there can be no funny business with
class name strings. operator=() is gone, and good riddance to it.


1
2 /* $Id$ */
3
4 /*******************************************************
5 *
6 * Copyright 2003-2007 by ACceSS MNRF
7 * Copyright 2007 by University of Queensland
8 *
9 * http://esscc.uq.edu.au
10 * Primary Business: Queensland, Australia
11 * Licensed under the Open Software License version 3.0
12 * http://www.opensource.org/licenses/osl-3.0.php
13 *
14 *******************************************************/
15
16 #if !defined finley_FinleyAdapterException_20040526_H
17 #define finley_FinleyAdapterException_20040526_H
18 #include "system_dep.h"
19
20 #include "esysUtils/EsysException.h"
21
22 namespace finley
23 {
24
25 /**
26 \brief
27 FinleyAdapterException exception class.
28
29 Description:
30 FinleyAdapterException exception class.
31 The class provides a public function returning the exception name
32 */
33 class FinleyAdapterException : public esysUtils::EsysException
34 {
35
36 protected:
37
38 typedef EsysException Parent;
39
40 public:
41 /**
42 \brief
43 Default constructor for the exception.
44 */
45 FINLEY_DLL_API
46 FinleyAdapterException() : Parent() { updateMessage();}
47 /**
48 \brief
49 Constructor for the exception.
50 */
51 FINLEY_DLL_API
52 FinleyAdapterException(const char *cstr) : Parent(cstr) { updateMessage();}
53 /**
54 \brief
55 Constructor for the exception.
56 */
57 FINLEY_DLL_API
58 FinleyAdapterException(const std::string &str) :
59 Parent(str) { updateMessage();}
60 /**
61 \brief
62 Copy Constructor for the exception.
63 */
64 FINLEY_DLL_API
65 FinleyAdapterException(const FinleyAdapterException &other) : Parent(other)
66 {
67 updateMessage();
68 }
69
70 /// Destructor
71 FINLEY_DLL_API
72 virtual ~FinleyAdapterException() THROW() {}
73 /**
74 \brief
75 Returns the name of the exception.
76 */
77 FINLEY_DLL_API
78 virtual const std::string & exceptionName() const;
79
80 private:
81
82 //
83 // the exception name is immutable and class-wide.
84 // Inheritor note; you need one of these too.
85 // and an overloaded exceptionName() in your .cpp implementation file.
86 static const std::string exceptionNameValue;
87 };
88
89 } // end of namespace
90 #endif

Properties

Name Value
svn:eol-style native
svn:keywords Author Date Id Revision

  ViewVC Help
Powered by ViewVC 1.1.26