summaryrefslogtreecommitdiff
path: root/cpp/common/error
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/common/error')
-rw-r--r--cpp/common/error/inc/QpidError.h47
-rw-r--r--cpp/common/error/inc/QpidErrorIO.h29
2 files changed, 76 insertions, 0 deletions
diff --git a/cpp/common/error/inc/QpidError.h b/cpp/common/error/inc/QpidError.h
new file mode 100644
index 0000000000..a739b506c7
--- /dev/null
+++ b/cpp/common/error/inc/QpidError.h
@@ -0,0 +1,47 @@
+/*
+ *
+ * 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 <string>
+
+#ifndef __QpidError__
+#define __QpidError__
+
+namespace qpid {
+
+class QpidError{
+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(){}
+
+};
+
+#define THROW_QPID_ERROR(A, B) throw QpidError(A, B, __FILE__, __LINE__)
+
+}
+
+#define PROTOCOL_ERROR 10000
+#define APR_ERROR 20000
+#define FRAMING_ERROR 30000
+#define CLIENT_ERROR 40000
+#define INTERNAL_ERROR 50000
+
+#endif
diff --git a/cpp/common/error/inc/QpidErrorIO.h b/cpp/common/error/inc/QpidErrorIO.h
new file mode 100644
index 0000000000..4f9bd3ce26
--- /dev/null
+++ b/cpp/common/error/inc/QpidErrorIO.h
@@ -0,0 +1,29 @@
+/*
+ *
+ * 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;
+}
+
+