summaryrefslogtreecommitdiff
path: root/qpid/cpp/common/error/inc
diff options
context:
space:
mode:
authorAlan Conway <aconway@apache.org>2006-10-12 18:52:49 +0000
committerAlan Conway <aconway@apache.org>2006-10-12 18:52:49 +0000
commitbcf9338623912e6a1b79211be0220fbeb2a6a548 (patch)
treed77547bd4ab63f248438b17b5c03f75d2b8d28dc /qpid/cpp/common/error/inc
parent9dd364f138fda7587243ca675173236d2182ba2b (diff)
downloadqpid-python-bcf9338623912e6a1b79211be0220fbeb2a6a548.tar.gz
Converted broker to a class for use in tests, plugins etc.
qpid::Exception base class for all exceptions, inherits std::exception. Require boost on all platforms: http://www.boost.org, 'yum boost' on fedora. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@463376 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/cpp/common/error/inc')
-rw-r--r--qpid/cpp/common/error/inc/Exception.h46
-rw-r--r--qpid/cpp/common/error/inc/QpidError.h25
-rw-r--r--qpid/cpp/common/error/inc/QpidErrorIO.h29
3 files changed, 58 insertions, 42 deletions
diff --git a/qpid/cpp/common/error/inc/Exception.h b/qpid/cpp/common/error/inc/Exception.h
new file mode 100644
index 0000000000..709538c851
--- /dev/null
+++ b/qpid/cpp/common/error/inc/Exception.h
@@ -0,0 +1,46 @@
+#ifndef _Exception_
+#define _Exception_
+
+/*
+ *
+ * Copyright (c) 2006 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include <exception>
+#include <string>
+
+namespace qpid
+{
+ /**
+ * Exception base class for all Qpid exceptions.
+ */
+ class Exception : public std::exception
+ {
+ protected:
+ std::string whatStr;
+
+ public:
+ Exception() throw() {}
+ Exception(const std::string& str) throw() : whatStr(str) {}
+ Exception(const char* str) throw() : whatStr(str) {}
+ virtual ~Exception() throw();
+
+ const char* what() const throw() { return whatStr.c_str(); }
+ virtual std::string toString() const throw() { return whatStr; }
+ };
+}
+
+#endif /*!_Exception_*/
diff --git a/qpid/cpp/common/error/inc/QpidError.h b/qpid/cpp/common/error/inc/QpidError.h
index a739b506c7..3310c71a88 100644
--- a/qpid/cpp/common/error/inc/QpidError.h
+++ b/qpid/cpp/common/error/inc/QpidError.h
@@ -1,3 +1,5 @@
+#ifndef __QpidError__
+#define __QpidError__
/*
*
* Copyright (c) 2006 The Apache Software Foundation
@@ -16,23 +18,20 @@
*
*/
#include <string>
-
-#ifndef __QpidError__
-#define __QpidError__
+#include "Exception.h"
namespace qpid {
-class QpidError{
-public:
- const int code;
- const std::string msg;
- const std::string file;
- const int line;
+ class QpidError : public Exception {
+ public:
+ const int code;
+ const std::string msg;
+ const std::string file;
+ const int line;
- inline QpidError(int _code, const std::string& _msg, const std::string& _file, int _line) : code(_code), msg(_msg), file(_file), line(_line) {}
- ~QpidError(){}
-
-};
+ QpidError(int _code, const std::string& _msg, const std::string& _file, int _line) throw();
+ ~QpidError() throw();
+ };
#define THROW_QPID_ERROR(A, B) throw QpidError(A, B, __FILE__, __LINE__)
diff --git a/qpid/cpp/common/error/inc/QpidErrorIO.h b/qpid/cpp/common/error/inc/QpidErrorIO.h
deleted file mode 100644
index 4f9bd3ce26..0000000000
--- a/qpid/cpp/common/error/inc/QpidErrorIO.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- *
- * Copyright (c) 2006 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-#include "QpidError.h"
-#include <ostream>
-
-std::ostream& operator <<(std::ostream& out, const QpidError& error)
-{
- out << "Qpid Error [" << error.code << "] " << error.msg
- << " (" << error.file << ":" << error.line << ")";
- return out;
-}
-
-