diff options
| author | Alan Conway <aconway@apache.org> | 2006-10-12 18:52:49 +0000 |
|---|---|---|
| committer | Alan Conway <aconway@apache.org> | 2006-10-12 18:52:49 +0000 |
| commit | bcf9338623912e6a1b79211be0220fbeb2a6a548 (patch) | |
| tree | d77547bd4ab63f248438b17b5c03f75d2b8d28dc /qpid/cpp/common/error/inc | |
| parent | 9dd364f138fda7587243ca675173236d2182ba2b (diff) | |
| download | qpid-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.h | 46 | ||||
| -rw-r--r-- | qpid/cpp/common/error/inc/QpidError.h | 25 | ||||
| -rw-r--r-- | qpid/cpp/common/error/inc/QpidErrorIO.h | 29 |
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; -} - - |
