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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1451 - (hide annotations)
Thu Feb 28 14:14:12 2008 UTC (14 years, 5 months 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 ksteube 1312
2     /* $Id$ */
3    
4     /*******************************************************
5 trankine 1442 *
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 ksteube 1312
16 jgs 82 #if !defined finley_FinleyAdapterException_20040526_H
17     #define finley_FinleyAdapterException_20040526_H
18 woo409 757 #include "system_dep.h"
19 jgs 82
20 robwdcock 682 #include "esysUtils/EsysException.h"
21 jgs 472
22 trankine 1442 namespace finley
23     {
24 jgs 82
25 trankine 1442 /**
26     \brief
27     FinleyAdapterException exception class.
28 jgs 82
29 trankine 1442 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 jgs 82
36 phornby 1449 protected:
37    
38     typedef EsysException Parent;
39    
40 trankine 1442 public:
41     /**
42     \brief
43     Default constructor for the exception.
44     */
45 phornby 1451 FINLEY_DLL_API
46 phornby 1450 FinleyAdapterException() : Parent() { updateMessage();}
47 trankine 1442 /**
48     \brief
49     Constructor for the exception.
50     */
51 phornby 1451 FINLEY_DLL_API
52 phornby 1450 FinleyAdapterException(const char *cstr) : Parent(cstr) { updateMessage();}
53 trankine 1442 /**
54     \brief
55     Constructor for the exception.
56     */
57 phornby 1451 FINLEY_DLL_API
58 phornby 1450 FinleyAdapterException(const std::string &str) :
59     Parent(str) { updateMessage();}
60     /**
61     \brief
62     Copy Constructor for the exception.
63     */
64 phornby 1451 FINLEY_DLL_API
65 phornby 1450 FinleyAdapterException(const FinleyAdapterException &other) : Parent(other)
66     {
67     updateMessage();
68     }
69 jgs 82
70 trankine 1442 /// Destructor
71     FINLEY_DLL_API
72 phornby 1447 virtual ~FinleyAdapterException() THROW() {}
73 trankine 1442 /**
74     \brief
75     Returns the name of the exception.
76     */
77     FINLEY_DLL_API
78     virtual const std::string & exceptionName() const;
79 phornby 1020
80 trankine 1442 private:
81 jgs 82
82 trankine 1442 //
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 jgs 82 } // 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