summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '3rdParty/CppUnit/src/Exception.cpp')
-rw-r--r--3rdParty/CppUnit/src/Exception.cpp126
1 files changed, 126 insertions, 0 deletions
diff --git a/3rdParty/CppUnit/src/Exception.cpp b/3rdParty/CppUnit/src/Exception.cpp
new file mode 100644
index 0000000..3bbe24b
--- /dev/null
+++ b/3rdParty/CppUnit/src/Exception.cpp
@@ -0,0 +1,126 @@
+#include <cppunit/Exception.h>
+
+
+CPPUNIT_NS_BEGIN
+
+
+#ifdef CPPUNIT_ENABLE_SOURCELINE_DEPRECATED
+/*!
+ * \deprecated Use SourceLine::isValid() instead.
+ */
+const std::string Exception::UNKNOWNFILENAME = "<unknown>";
+
+/*!
+ * \deprecated Use SourceLine::isValid() instead.
+ */
+const long Exception::UNKNOWNLINENUMBER = -1;
+#endif
+
+
+Exception::Exception( const Exception &other )
+ : std::exception( other )
+{
+ m_message = other.m_message;
+ m_sourceLine = other.m_sourceLine;
+}
+
+
+Exception::Exception( const Message &message,
+ const SourceLine &sourceLine )
+ : m_message( message )
+ , m_sourceLine( sourceLine )
+{
+}
+
+
+#ifdef CPPUNIT_ENABLE_SOURCELINE_DEPRECATED
+Exception::Exception( std::string message,
+ long lineNumber,
+ std::string fileName )
+ : m_message( message )
+ , m_sourceLine( fileName, lineNumber )
+{
+}
+#endif
+
+
+Exception::~Exception() throw()
+{
+}
+
+
+Exception &
+Exception::operator =( const Exception& other )
+{
+// Don't call superclass operator =(). VC++ STL implementation
+// has a bug. It calls the destructor and copy constructor of
+// std::exception() which reset the virtual table to std::exception.
+// SuperClass::operator =(other);
+
+ if ( &other != this )
+ {
+ m_message = other.m_message;
+ m_sourceLine = other.m_sourceLine;
+ }
+
+ return *this;
+}
+
+
+const char*
+Exception::what() const throw()
+{
+ Exception *mutableThis = CPPUNIT_CONST_CAST( Exception *, this );
+ mutableThis->m_whatMessage = m_message.shortDescription() + "\n" +
+ m_message.details();
+ return m_whatMessage.c_str();
+}
+
+
+SourceLine
+Exception::sourceLine() const
+{
+ return m_sourceLine;
+}
+
+
+Message
+Exception::message() const
+{
+ return m_message;
+}
+
+
+void
+Exception::setMessage( const Message &message )
+{
+ m_message = message;
+}
+
+
+#ifdef CPPUNIT_ENABLE_SOURCELINE_DEPRECATED
+long
+Exception::lineNumber() const
+{
+ return m_sourceLine.isValid() ? m_sourceLine.lineNumber() :
+ UNKNOWNLINENUMBER;
+}
+
+
+std::string
+Exception::fileName() const
+{
+ return m_sourceLine.isValid() ? m_sourceLine.fileName() :
+ UNKNOWNFILENAME;
+}
+#endif
+
+
+Exception *
+Exception::clone() const
+{
+ return new Exception( *this );
+}
+
+
+CPPUNIT_NS_END