-rw-r--r-- | include/Makefile.am | 3 | ||||
-rw-r--r-- | include/opkele/debug.h | 17 | ||||
-rw-r--r-- | include/opkele/exception.h | 7 | ||||
-rw-r--r-- | lib/exception.cc | 16 |
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 @@ -16,5 +16,6 @@ nobase_include_HEADERS = \ 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 @@ -76,15 +76,12 @@ namespace opkele { { 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,18 +1,34 @@ #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)+']'), |