summaryrefslogtreecommitdiffabout
authorMichael Krelin <hacker@klever.net>2008-01-01 14:09:08 (UTC)
committer Michael Krelin <hacker@klever.net>2008-01-04 18:24:38 (UTC)
commitb52ad4dc051835fdf8417f748bf40ba4c17449d4 (patch) (side-by-side diff)
tree01c9fd136f2dcf8f16c7f016b1fdf8e5582b0182
parent15d089da9f7682bc3524b6a278cfcd64621e7db2 (diff)
downloadlibopkele-b52ad4dc051835fdf8417f748bf40ba4c17449d4.zip
libopkele-b52ad4dc051835fdf8417f748bf40ba4c17449d4.tar.gz
libopkele-b52ad4dc051835fdf8417f748bf40ba4c17449d4.tar.bz2
output thrown exceptions to clog stream
Signed-off-by: Michael Krelin <hacker@klever.net>
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--include/Makefile.am3
-rw-r--r--include/opkele/debug.h17
-rw-r--r--include/opkele/exception.h7
-rw-r--r--lib/exception.cc16
4 files changed, 37 insertions, 6 deletions
diff --git a/include/Makefile.am b/include/Makefile.am
index 26cb614..1076c12 100644
--- a/include/Makefile.am
+++ b/include/Makefile.am
@@ -14,7 +14,8 @@ nobase_include_HEADERS = \
opkele/discovery.h \
opkele/uris.h \
opkele/tr1-mem.h
EXTRA_DIST = \
opkele/data.h \
opkele/curl.h opkele/expat.h \
- opkele/util.h
+ opkele/util.h \
+ opkele/debug.h
diff --git a/include/opkele/debug.h b/include/opkele/debug.h
new file mode 100644
index 0000000..a02f8d4
--- a/dev/null
+++ b/include/opkele/debug.h
@@ -0,0 +1,17 @@
+#ifndef __OPKELE_DEBUG_H
+#define __OPKELE_DEBUG_H
+
+#ifdef NDEBUG
+
+#define D_(x) ((void)0)
+#define DOUT_(x) ((void)0)
+
+#else /* NDEBUG */
+
+#define D_(x) x
+#include <iostream>
+#define DOUT_(x) std::clog << x << std::endl
+
+#endif /* NDEBUG */
+
+#endif /* __OPKELE_DEBUG_H */
diff --git a/include/opkele/exception.h b/include/opkele/exception.h
index 36bd07a..64f189e 100644
--- a/include/opkele/exception.h
+++ b/include/opkele/exception.h
@@ -74,19 +74,16 @@ namespace opkele {
std::exception
# endif
{
public:
# ifdef OPKELE_HAVE_KONFORKA
explicit
- exception(const string& fi,const string& fu,int l,const string& w)
- : konforka::exception(fi,fu,l,w) { }
+ exception(const string& fi,const string& fu,int l,const string& w);
# else /* OPKELE_HAVE_KONFORKA */
string _what;
- explicit
- exception(const string& w)
- : _what(w) { }
+ explicit exception(const string& w);
virtual ~exception() throw();
virtual const char * what() const throw();
# endif /* OPKELE_HAVE_KONFORKA */
};
/**
diff --git a/lib/exception.cc b/lib/exception.cc
index 510982e..0b775f7 100644
--- a/lib/exception.cc
+++ b/lib/exception.cc
@@ -1,20 +1,36 @@
#include <openssl/err.h>
#include <curl/curl.h>
#include <opkele/exception.h>
+#include <opkele/debug.h>
namespace opkele {
# ifndef OPKELE_HAVE_KONFORKA
+ exception::exception(const string& w)
+ : _what(w)
+ {
+ DOUT_("throwing exception(\""<<w<<"\")");
+ }
+
exception::~exception() throw() {
}
const char *exception::what() const throw() {
return _what.c_str();
}
+
+# else
+ exception::exception(const string& fi,const string& fu,int l,const string& w)
+ : konforka::exception(fi,fu,l,w)
+ {
+ DOUT_("throwing exception(\""<<w<<"\")");
+ DOUT_(" from "<<fi<<':'<<fu<<':'<<l);
+ }
+
# endif
exception_openssl::exception_openssl(OPKELE_E_PARS)
: exception(OPKELE_E_CONS_ w+" ["+ERR_error_string(ERR_peek_last_error(),0)+']'),
_error(ERR_peek_last_error()),
_ssl_string(ERR_error_string(_error,0)) {