/[escript]/trunk/escript/src/TransportProblemException.h
ViewVC logotype

Contents of /trunk/escript/src/TransportProblemException.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1649 - (show annotations)
Tue Jul 15 08:41:02 2008 UTC (10 years, 9 months ago) by phornby
File MIME type: text/plain
File size: 2361 byte(s)
Make operator=() on exception non-virtual. Should silence the Altix compiler.
However, if an exception is cast to another parent type, and
operator=() is called when the exception so cast is an l-value in the assignment,
an "incomplete" assignment will occur, copying only the parent class members of the 
l-value in the assignmnet.
1
2 /* $Id$ */
3
4 /*******************************************************
5 *
6 * Copyright 2007 by University of Queensland
7 *
8 * http://esscc.uq.edu.au
9 * Primary Business: Queensland, Australia
10 * Licensed under the Open Software License version 3.0
11 * http://www.opensource.org/licenses/osl-3.0.php
12 *
13 *******************************************************/
14
15 #if !defined escript_TransportProblemException_20040608_H
16 #define escript_TransportProblemException_20040608_H
17
18 #include "system_dep.h"
19 #include "esysUtils/EsysException.h"
20
21 namespace escript
22 {
23
24 /**
25 \brief
26 TransportProblemException exception class.
27
28 Description:
29 TransportProblemException exception class.
30 The class provides a public function returning the exception name
31 */
32 class TransportProblemException : public esysUtils::EsysException {
33
34 protected:
35
36 typedef EsysException Parent;
37
38 public:
39 /**
40 \brief
41 Default constructor for the exception.
42 */
43 ESCRIPT_DLL_API
44 TransportProblemException() : Parent() { updateMessage();}
45 /**
46 \brief
47 Constructor for the exception.
48 */
49 ESCRIPT_DLL_API
50 TransportProblemException(const char *cstr) :
51 Parent(cstr) { updateMessage();}
52 /**
53 \brief
54 Constructor for the exception.
55 */
56 ESCRIPT_DLL_API
57 TransportProblemException(const std::string &str) :
58 Parent(str) { updateMessage();}
59 /**
60 \brief
61 Copy Constructor for the exception.
62 */
63 ESCRIPT_DLL_API
64 TransportProblemException(const TransportProblemException &other) :
65 Parent(other)
66 {
67 updateMessage();
68 }
69
70 ESCRIPT_DLL_API
71 inline TransportProblemException &
72 operator=(const TransportProblemException &other ) THROW_ANY
73 {
74 Parent::operator=(other);
75 updateMessage();
76 return *this;
77 }
78
79 /// Destructor
80 ESCRIPT_DLL_API
81 virtual ~TransportProblemException() THROW_ANY {}
82 /**
83 \brief
84 Returns the name of the exception.
85 */
86 ESCRIPT_DLL_API
87 virtual const std::string & exceptionName() const;
88
89 private:
90
91 //
92 // the exception name is immutable and class-wide.
93 // Inheritor note; you need one of these too.
94 // and an overloaded exceptionName() in your .cpp implementation file.
95 static const std::string exceptionNameValue;
96 };
97
98 } // end of namespace
99
100 #endif

Properties

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

  ViewVC Help
Powered by ViewVC 1.1.26