summaryrefslogtreecommitdiffabout
path: root/include/opkele
Unidiff
Diffstat (limited to 'include/opkele') (more/less context) (ignore whitespace changes)
-rw-r--r--include/opkele/debug.h17
-rw-r--r--include/opkele/exception.h7
2 files changed, 19 insertions, 5 deletions
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 @@
1#ifndef __OPKELE_DEBUG_H
2#define __OPKELE_DEBUG_H
3
4#ifdef NDEBUG
5
6 #define D_(x) ((void)0)
7 #define DOUT_(x)((void)0)
8
9#else /* NDEBUG */
10
11 #define D_(x) x
12#include <iostream>
13 #define DOUT_(x)std::clog << x << std::endl
14
15#endif /* NDEBUG */
16
17#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
@@ -1,262 +1,259 @@
1#ifndef __OPKELE_EXCEPTION_H 1#ifndef __OPKELE_EXCEPTION_H
2#define __OPKELE_EXCEPTION_H 2#define __OPKELE_EXCEPTION_H
3 3
4/** 4/**
5 * @file 5 * @file
6 * @brief opkele exceptions 6 * @brief opkele exceptions
7 */ 7 */
8 8
9#include <curl/curl.h> 9#include <curl/curl.h>
10 10
11#include <opkele/opkele-config.h> 11#include <opkele/opkele-config.h>
12#ifdef OPKELE_HAVE_KONFORKA 12#ifdef OPKELE_HAVE_KONFORKA
13# include <konforka/exception.h> 13# include <konforka/exception.h>
14/** 14/**
15 * the exception parameters declaration 15 * the exception parameters declaration
16 */ 16 */
17# define OPKELE_E_PARS const string& fi,const string&fu,int l,const string& w 17# define OPKELE_E_PARS const string& fi,const string&fu,int l,const string& w
18/** 18/**
19 * the exception parameters list to pass to constructor 19 * the exception parameters list to pass to constructor
20 */ 20 */
21# define OPKELE_E_CONS_ fi,fu,l, 21# define OPKELE_E_CONS_ fi,fu,l,
22/** 22/**
23 * the exception codepoint specification 23 * the exception codepoint specification
24 */ 24 */
25# define OPKELE_CP_ CODEPOINT, 25# define OPKELE_CP_ CODEPOINT,
26/** 26/**
27 * open function-try-block 27 * open function-try-block
28 */ 28 */
29# define OPKELE_FUNC_TRY try 29# define OPKELE_FUNC_TRY try
30/** 30/**
31 * the simple rethrow of konforka-based exception 31 * the simple rethrow of konforka-based exception
32 */ 32 */
33# define OPKELE_RETHROW catch(konforka::exception& e) { e.see(CODEPOINT); throw; } 33# define OPKELE_RETHROW catch(konforka::exception& e) { e.see(CODEPOINT); throw; }
34#else /* OPKELE_HAVE_KONFORKA */ 34#else /* OPKELE_HAVE_KONFORKA */
35# include <exception> 35# include <exception>
36# include <string> 36# include <string>
37/** 37/**
38 * the exception parameter declaration 38 * the exception parameter declaration
39 */ 39 */
40# define OPKELE_E_PARS const string& w 40# define OPKELE_E_PARS const string& w
41/** 41/**
42 * the dummy prefix for exception parameters list to prepend in the absence of 42 * the dummy prefix for exception parameters list to prepend in the absence of
43 * konforka library 43 * konforka library
44 */ 44 */
45# define OPKELE_E_CONS_ 45# define OPKELE_E_CONS_
46/** 46/**
47 * the dummy placeholder for konforka exception codepoint specification 47 * the dummy placeholder for konforka exception codepoint specification
48 */ 48 */
49# define OPKELE_CP_ 49# define OPKELE_CP_
50/** 50/**
51 * the dummy define for the opening function-try-block 51 * the dummy define for the opening function-try-block
52 */ 52 */
53# define OPKELE_FUNC_TRY 53# define OPKELE_FUNC_TRY
54/** 54/**
55 * the dummy define for the konforka-based rethrow of exception 55 * the dummy define for the konforka-based rethrow of exception
56 */ 56 */
57# define OPKELE_RETHROW 57# define OPKELE_RETHROW
58#endif /* OPKELE_HAVE_KONFORKA */ 58#endif /* OPKELE_HAVE_KONFORKA */
59/** 59/**
60 * the exception parameters list to pass to constructor 60 * the exception parameters list to pass to constructor
61 */ 61 */
62# define OPKELE_E_CONS OPKELE_E_CONS_ w 62# define OPKELE_E_CONS OPKELE_E_CONS_ w
63 63
64namespace opkele { 64namespace opkele {
65 using std::string; 65 using std::string;
66 66
67 /** 67 /**
68 * the base opkele exception class 68 * the base opkele exception class
69 */ 69 */
70 class exception : public 70 class exception : public
71# ifdef OPKELE_HAVE_KONFORKA 71# ifdef OPKELE_HAVE_KONFORKA
72 konforka::exception 72 konforka::exception
73# else 73# else
74 std::exception 74 std::exception
75# endif 75# endif
76 { 76 {
77 public: 77 public:
78# ifdef OPKELE_HAVE_KONFORKA 78# ifdef OPKELE_HAVE_KONFORKA
79 explicit 79 explicit
80 exception(const string& fi,const string& fu,int l,const string& w) 80 exception(const string& fi,const string& fu,int l,const string& w);
81 : konforka::exception(fi,fu,l,w) { }
82# else /* OPKELE_HAVE_KONFORKA */ 81# else /* OPKELE_HAVE_KONFORKA */
83 string _what; 82 string _what;
84 explicit 83 explicit exception(const string& w);
85 exception(const string& w)
86 : _what(w) { }
87 virtual ~exception() throw(); 84 virtual ~exception() throw();
88 virtual const char * what() const throw(); 85 virtual const char * what() const throw();
89# endif /* OPKELE_HAVE_KONFORKA */ 86# endif /* OPKELE_HAVE_KONFORKA */
90 }; 87 };
91 88
92 /** 89 /**
93 * thrown in case of failed conversion 90 * thrown in case of failed conversion
94 */ 91 */
95 class failed_conversion : public exception { 92 class failed_conversion : public exception {
96 public: 93 public:
97 failed_conversion(OPKELE_E_PARS) 94 failed_conversion(OPKELE_E_PARS)
98 : exception(OPKELE_E_CONS) { } 95 : exception(OPKELE_E_CONS) { }
99 }; 96 };
100 /** 97 /**
101 * thrown in case of failed lookup (either parameter or persistent store) 98 * thrown in case of failed lookup (either parameter or persistent store)
102 */ 99 */
103 class failed_lookup : public exception { 100 class failed_lookup : public exception {
104 public: 101 public:
105 failed_lookup(OPKELE_E_PARS) 102 failed_lookup(OPKELE_E_PARS)
106 : exception(OPKELE_E_CONS) { } 103 : exception(OPKELE_E_CONS) { }
107 }; 104 };
108 /** 105 /**
109 * thrown in case of bad input (either local or network) 106 * thrown in case of bad input (either local or network)
110 */ 107 */
111 class bad_input : public exception { 108 class bad_input : public exception {
112 public: 109 public:
113 bad_input(OPKELE_E_PARS) 110 bad_input(OPKELE_E_PARS)
114 : exception(OPKELE_E_CONS) { } 111 : exception(OPKELE_E_CONS) { }
115 }; 112 };
116 113
117 /** 114 /**
118 * thrown on failed assertion 115 * thrown on failed assertion
119 */ 116 */
120 class failed_assertion : public exception { 117 class failed_assertion : public exception {
121 public: 118 public:
122 failed_assertion(OPKELE_E_PARS) 119 failed_assertion(OPKELE_E_PARS)
123 : exception(OPKELE_E_CONS) { } 120 : exception(OPKELE_E_CONS) { }
124 }; 121 };
125 122
126 /** 123 /**
127 * thrown if the handle being retrieved is invalid 124 * thrown if the handle being retrieved is invalid
128 */ 125 */
129 class invalid_handle : public exception { 126 class invalid_handle : public exception {
130 public: 127 public:
131 invalid_handle(OPKELE_E_PARS) 128 invalid_handle(OPKELE_E_PARS)
132 : exception(OPKELE_E_CONS) { } 129 : exception(OPKELE_E_CONS) { }
133 }; 130 };
134 /** 131 /**
135 * thrown if the handle passed to check_authentication request is not 132 * thrown if the handle passed to check_authentication request is not
136 * stateless 133 * stateless
137 */ 134 */
138 class stateful_handle : public exception { 135 class stateful_handle : public exception {
139 public: 136 public:
140 stateful_handle(OPKELE_E_PARS) 137 stateful_handle(OPKELE_E_PARS)
141 : exception(OPKELE_E_CONS) { } 138 : exception(OPKELE_E_CONS) { }
142 }; 139 };
143 140
144 /** 141 /**
145 * thrown if check_authentication request fails 142 * thrown if check_authentication request fails
146 */ 143 */
147 class failed_check_authentication : public exception { 144 class failed_check_authentication : public exception {
148 public: 145 public:
149 failed_check_authentication(OPKELE_E_PARS) 146 failed_check_authentication(OPKELE_E_PARS)
150 : exception(OPKELE_E_CONS) { } 147 : exception(OPKELE_E_CONS) { }
151 }; 148 };
152 149
153 /** 150 /**
154 * thrown if the id_res request result is negative 151 * thrown if the id_res request result is negative
155 */ 152 */
156 class id_res_failed : public exception { 153 class id_res_failed : public exception {
157 public: 154 public:
158 id_res_failed(OPKELE_E_PARS) 155 id_res_failed(OPKELE_E_PARS)
159 : exception(OPKELE_E_CONS) { } 156 : exception(OPKELE_E_CONS) { }
160 }; 157 };
161 /** 158 /**
162 * thrown if the user_setup_url is provided with negative response 159 * thrown if the user_setup_url is provided with negative response
163 */ 160 */
164 class id_res_setup : public id_res_failed { 161 class id_res_setup : public id_res_failed {
165 public: 162 public:
166 string setup_url; 163 string setup_url;
167 id_res_setup(OPKELE_E_PARS,const string& su) 164 id_res_setup(OPKELE_E_PARS,const string& su)
168 : id_res_failed(OPKELE_E_CONS), setup_url(su) { } 165 : id_res_failed(OPKELE_E_CONS), setup_url(su) { }
169 ~id_res_setup() throw() { } 166 ~id_res_setup() throw() { }
170 }; 167 };
171 /** 168 /**
172 * thrown in case of signature mismatch 169 * thrown in case of signature mismatch
173 */ 170 */
174 class id_res_mismatch : public id_res_failed { 171 class id_res_mismatch : public id_res_failed {
175 public: 172 public:
176 id_res_mismatch(OPKELE_E_PARS) 173 id_res_mismatch(OPKELE_E_PARS)
177 : id_res_failed(OPKELE_E_CONS) { } 174 : id_res_failed(OPKELE_E_CONS) { }
178 }; 175 };
179 176
180 /** 177 /**
181 * thrown if the association has expired before it could've been verified. 178 * thrown if the association has expired before it could've been verified.
182 */ 179 */
183 class id_res_expired_on_delivery : public id_res_failed { 180 class id_res_expired_on_delivery : public id_res_failed {
184 public: 181 public:
185 id_res_expired_on_delivery(OPKELE_E_PARS) 182 id_res_expired_on_delivery(OPKELE_E_PARS)
186 : id_res_failed(OPKELE_E_CONS) { } 183 : id_res_failed(OPKELE_E_CONS) { }
187 }; 184 };
188 185
189 /** 186 /**
190 * openssl malfunction occured 187 * openssl malfunction occured
191 */ 188 */
192 class exception_openssl : public exception { 189 class exception_openssl : public exception {
193 public: 190 public:
194 unsigned long _error; 191 unsigned long _error;
195 string _ssl_string; 192 string _ssl_string;
196 exception_openssl(OPKELE_E_PARS); 193 exception_openssl(OPKELE_E_PARS);
197 ~exception_openssl() throw() { } 194 ~exception_openssl() throw() { }
198 }; 195 };
199 196
200 /** 197 /**
201 * network operation related error occured 198 * network operation related error occured
202 */ 199 */
203 class exception_network : public exception { 200 class exception_network : public exception {
204 public: 201 public:
205 exception_network(OPKELE_E_PARS) 202 exception_network(OPKELE_E_PARS)
206 : exception(OPKELE_E_CONS) { } 203 : exception(OPKELE_E_CONS) { }
207 }; 204 };
208 205
209 /** 206 /**
210 * network operation related error occured, specifically, related to 207 * network operation related error occured, specifically, related to
211 * libcurl 208 * libcurl
212 */ 209 */
213 class exception_curl : public exception_network { 210 class exception_curl : public exception_network {
214 public: 211 public:
215 CURLcode _error; 212 CURLcode _error;
216 string _curl_string; 213 string _curl_string;
217 exception_curl(OPKELE_E_PARS); 214 exception_curl(OPKELE_E_PARS);
218 exception_curl(OPKELE_E_PARS,CURLcode e); 215 exception_curl(OPKELE_E_PARS,CURLcode e);
219 ~exception_curl() throw() { } 216 ~exception_curl() throw() { }
220 }; 217 };
221 218
222 /** 219 /**
223 * exception thrown in case of failed discovery 220 * exception thrown in case of failed discovery
224 */ 221 */
225 class failed_discovery : public exception { 222 class failed_discovery : public exception {
226 public: 223 public:
227 failed_discovery(OPKELE_E_PARS) 224 failed_discovery(OPKELE_E_PARS)
228 : exception(OPKELE_E_CONS) { } 225 : exception(OPKELE_E_CONS) { }
229 }; 226 };
230 227
231 /** 228 /**
232 * unsuccessfull xri resolution 229 * unsuccessfull xri resolution
233 */ 230 */
234 class failed_xri_resolution : public failed_discovery { 231 class failed_xri_resolution : public failed_discovery {
235 public: 232 public:
236 long _code; 233 long _code;
237 failed_xri_resolution(OPKELE_E_PARS,long _c=-1) 234 failed_xri_resolution(OPKELE_E_PARS,long _c=-1)
238 : failed_discovery(OPKELE_E_CONS), _code(_c) { } 235 : failed_discovery(OPKELE_E_CONS), _code(_c) { }
239 }; 236 };
240 237
241 /** 238 /**
242 * not implemented (think pure virtual) member function executed, signfies 239 * not implemented (think pure virtual) member function executed, signfies
243 * programmer error 240 * programmer error
244 */ 241 */
245 class not_implemented : public exception { 242 class not_implemented : public exception {
246 public: 243 public:
247 not_implemented(OPKELE_E_PARS) 244 not_implemented(OPKELE_E_PARS)
248 : exception(OPKELE_E_CONS) { } 245 : exception(OPKELE_E_CONS) { }
249 }; 246 };
250 247
251 /** 248 /**
252 * internal error, indicates internal libopkele problem 249 * internal error, indicates internal libopkele problem
253 */ 250 */
254 class internal_error : public exception { 251 class internal_error : public exception {
255 public: 252 public:
256 internal_error(OPKELE_E_PARS) 253 internal_error(OPKELE_E_PARS)
257 : exception(OPKELE_E_CONS) { } 254 : exception(OPKELE_E_CONS) { }
258 }; 255 };
259 256
260} 257}
261 258
262#endif /* __OPKELE_EXCEPTION_H */ 259#endif /* __OPKELE_EXCEPTION_H */