summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--include/sitecing/exception.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/include/sitecing/exception.h b/include/sitecing/exception.h
index 857a8e6..ccc7edd 100644
--- a/include/sitecing/exception.h
+++ b/include/sitecing/exception.h
@@ -1,396 +1,399 @@
1#ifndef __SITECING_EXCEPTION_H 1#ifndef __SITECING_EXCEPTION_H
2#define __SITECING_EXCEPTION_H 2#define __SITECING_EXCEPTION_H
3 3
4#include <string>
5
4/** 6/**
5 * @file 7 * @file
6 * @brief The site-C-ing specific exceptions. 8 * @brief The site-C-ing specific exceptions.
7 */ 9 */
8 10
9/** 11/**
10 * @brief The main site-C-ing namespace. 12 * @brief The main site-C-ing namespace.
11 */ 13 */
12namespace sitecing { 14namespace sitecing {
15 using std::string;
13 16
14 // TODO: status specifics 17 // TODO: status specifics
15 18
16 /** 19 /**
17 * The http status to return. 20 * The http status to return.
18 */ 21 */
19 class http_status { 22 class http_status {
20 public: 23 public:
21 /** 24 /**
22 * The status string. 25 * The status string.
23 */ 26 */
24 string status; 27 string status;
25 /** 28 /**
26 * The message to follow the status string. 29 * The message to follow the status string.
27 */ 30 */
28 string message; 31 string message;
29 32
30 /** 33 /**
31 * @param s HTTP status. 34 * @param s HTTP status.
32 * @param m HTTP status message. 35 * @param m HTTP status message.
33 */ 36 */
34 http_status(const string& s,const string& m) 37 http_status(const string& s,const string& m)
35 : status(s), message(m) { } 38 : status(s), message(m) { }
36 virtual ~http_status() throw() { } 39 virtual ~http_status() throw() { }
37 }; 40 };
38 41
39 // per RFC 2616 42 // per RFC 2616
40 43
41 /** 44 /**
42 * Informational. 45 * Informational.
43 */ 46 */
44 class http_status_1xx : public http_status { 47 class http_status_1xx : public http_status {
45 public: 48 public:
46 /** 49 /**
47 * @param s HTTP status 50 * @param s HTTP status
48 * @param m HTTP status message 51 * @param m HTTP status message
49 */ 52 */
50 explicit http_status_1xx(const string &s,const string& m) 53 explicit http_status_1xx(const string &s,const string& m)
51 : http_status(s,m) { } 54 : http_status(s,m) { }
52 }; 55 };
53 /** 56 /**
54 * Continue. 57 * Continue.
55 */ 58 */
56 class http_status_100 : public http_status_1xx { 59 class http_status_100 : public http_status_1xx {
57 public: 60 public:
58 /** 61 /**
59 * @param m HTTP status message 62 * @param m HTTP status message
60 */ 63 */
61 explicit http_status_100(const string& m) 64 explicit http_status_100(const string& m)
62 : http_status_1xx("100",m) { } 65 : http_status_1xx("100",m) { }
63 explicit http_status_100() 66 explicit http_status_100()
64 : http_status_1xx("100","Continue") { } 67 : http_status_1xx("100","Continue") { }
65 }; 68 };
66 /** 69 /**
67 * Switching protocols. 70 * Switching protocols.
68 */ 71 */
69 class http_status_101 : public http_status_1xx { 72 class http_status_101 : public http_status_1xx {
70 public: 73 public:
71 /** 74 /**
72 * @param m HTTP status message 75 * @param m HTTP status message
73 */ 76 */
74 explicit http_status_101(const string& m) 77 explicit http_status_101(const string& m)
75 : http_status_1xx("101",m) { } 78 : http_status_1xx("101",m) { }
76 explicit http_status_101() 79 explicit http_status_101()
77 : http_status_1xx("101","Switching protocols") { } 80 : http_status_1xx("101","Switching protocols") { }
78 }; 81 };
79 82
80 /** 83 /**
81 * Successful. 84 * Successful.
82 */ 85 */
83 class http_status_2xx : public http_status { 86 class http_status_2xx : public http_status {
84 public: 87 public:
85 /** 88 /**
86 * @param s HTTP status message 89 * @param s HTTP status message
87 * @param m HTTP status message 90 * @param m HTTP status message
88 */ 91 */
89 explicit http_status_2xx(const string& s,const string& m) 92 explicit http_status_2xx(const string& s,const string& m)
90 : http_status(s,m) { } 93 : http_status(s,m) { }
91 }; 94 };
92 /** 95 /**
93 * OK. 96 * OK.
94 */ 97 */
95 class http_status_200 : public http_status_2xx { 98 class http_status_200 : public http_status_2xx {
96 public: 99 public:
97 /** 100 /**
98 * @param m HTTP status message 101 * @param m HTTP status message
99 */ 102 */
100 explicit http_status_200(const string& m) 103 explicit http_status_200(const string& m)
101 : http_status_2xx("200",m) { } 104 : http_status_2xx("200",m) { }
102 explicit http_status_200() 105 explicit http_status_200()
103 : http_status_2xx("200","OK") { } 106 : http_status_2xx("200","OK") { }
104 }; 107 };
105 /** 108 /**
106 * Created. 109 * Created.
107 */ 110 */
108 class http_status_201 : public http_status_2xx { 111 class http_status_201 : public http_status_2xx {
109 public: 112 public:
110 /** 113 /**
111 * @param m HTTP status message 114 * @param m HTTP status message
112 */ 115 */
113 explicit http_status_201(const string& m) 116 explicit http_status_201(const string& m)
114 : http_status_2xx("201",m) { } 117 : http_status_2xx("201",m) { }
115 explicit http_status_201() 118 explicit http_status_201()
116 : http_status_2xx("201","Created") { } 119 : http_status_2xx("201","Created") { }
117 }; 120 };
118 /** 121 /**
119 * Accepted. 122 * Accepted.
120 */ 123 */
121 class http_status_202 : public http_status_2xx { 124 class http_status_202 : public http_status_2xx {
122 public: 125 public:
123 /** 126 /**
124 * @param m HTTP status message 127 * @param m HTTP status message
125 */ 128 */
126 explicit http_status_202(const string& m) 129 explicit http_status_202(const string& m)
127 : http_status_2xx("202",m) { } 130 : http_status_2xx("202",m) { }
128 explicit http_status_202() 131 explicit http_status_202()
129 : http_status_2xx("202","Accepted") { } 132 : http_status_2xx("202","Accepted") { }
130 }; 133 };
131 /** 134 /**
132 * Non-authoritative infortmation. 135 * Non-authoritative infortmation.
133 */ 136 */
134 class http_status_203 : public http_status_2xx { 137 class http_status_203 : public http_status_2xx {
135 public: 138 public:
136 /** 139 /**
137 * @param m HTTP status message 140 * @param m HTTP status message
138 */ 141 */
139 explicit http_status_203(const string& m) 142 explicit http_status_203(const string& m)
140 : http_status_2xx("203",m) { } 143 : http_status_2xx("203",m) { }
141 explicit http_status_203() 144 explicit http_status_203()
142 : http_status_2xx("203","Non-authoritative information") { } 145 : http_status_2xx("203","Non-authoritative information") { }
143 }; 146 };
144 /** 147 /**
145 * No content. 148 * No content.
146 */ 149 */
147 class http_status_204 : public http_status_2xx { 150 class http_status_204 : public http_status_2xx {
148 public: 151 public:
149 /** 152 /**
150 * @param m HTTP status message 153 * @param m HTTP status message
151 */ 154 */
152 explicit http_status_204(const string& m) 155 explicit http_status_204(const string& m)
153 : http_status_2xx("204",m) { } 156 : http_status_2xx("204",m) { }
154 explicit http_status_204() 157 explicit http_status_204()
155 : http_status_2xx("204","No content") { } 158 : http_status_2xx("204","No content") { }
156 }; 159 };
157 /** 160 /**
158 * Reset content. 161 * Reset content.
159 */ 162 */
160 class http_status_205 : public http_status_2xx { 163 class http_status_205 : public http_status_2xx {
161 public: 164 public:
162 /** 165 /**
163 * @param m HTTP status message 166 * @param m HTTP status message
164 */ 167 */
165 explicit http_status_205(const string& m) 168 explicit http_status_205(const string& m)
166 : http_status_2xx("205",m) { } 169 : http_status_2xx("205",m) { }
167 explicit http_status_205() 170 explicit http_status_205()
168 : http_status_2xx("205","Reset content") { } 171 : http_status_2xx("205","Reset content") { }
169 }; 172 };
170 /** 173 /**
171 * Partial content. 174 * Partial content.
172 */ 175 */
173 class http_status_206 : public http_status_2xx { 176 class http_status_206 : public http_status_2xx {
174 public: 177 public:
175 /** 178 /**
176 * @param m HTTP status message 179 * @param m HTTP status message
177 */ 180 */
178 explicit http_status_206(const string& m) 181 explicit http_status_206(const string& m)
179 : http_status_2xx("206",m) { } 182 : http_status_2xx("206",m) { }
180 explicit http_status_206() 183 explicit http_status_206()
181 : http_status_2xx("206","Partial content") { } 184 : http_status_2xx("206","Partial content") { }
182 }; 185 };
183 186
184 /** 187 /**
185 * Redirection. 188 * Redirection.
186 */ 189 */
187 class http_status_3xx : public http_status { 190 class http_status_3xx : public http_status {
188 public: 191 public:
189 /** 192 /**
190 * @param s HTTP status 193 * @param s HTTP status
191 * @param m HTTP status message 194 * @param m HTTP status message
192 */ 195 */
193 explicit http_status_3xx(const string& s,const string& m) 196 explicit http_status_3xx(const string& s,const string& m)
194 : http_status(s,m) { } 197 : http_status(s,m) { }
195 }; 198 };
196 /** 199 /**
197 * Multiple choices. 200 * Multiple choices.
198 */ 201 */
199 class http_status_300 : public http_status_3xx { 202 class http_status_300 : public http_status_3xx {
200 public: 203 public:
201 /** 204 /**
202 * @param m HTTP status message 205 * @param m HTTP status message
203 */ 206 */
204 explicit http_status_300(const string& m) 207 explicit http_status_300(const string& m)
205 : http_status_3xx("300",m) { } 208 : http_status_3xx("300",m) { }
206 explicit http_status_300() 209 explicit http_status_300()
207 : http_status_3xx("300","Multiple choices") { } 210 : http_status_3xx("300","Multiple choices") { }
208 }; 211 };
209 /** 212 /**
210 * Moved permanently. 213 * Moved permanently.
211 */ 214 */
212 class http_status_301 : public http_status_3xx { 215 class http_status_301 : public http_status_3xx {
213 public: 216 public:
214 /** 217 /**
215 * @param m HTTP status message 218 * @param m HTTP status message
216 */ 219 */
217 explicit http_status_301(const string& m) 220 explicit http_status_301(const string& m)
218 : http_status_3xx("301",m) { } 221 : http_status_3xx("301",m) { }
219 explicit http_status_301() 222 explicit http_status_301()
220 : http_status_3xx("301","Moved permanently") { } 223 : http_status_3xx("301","Moved permanently") { }
221 }; 224 };
222 /** 225 /**
223 * Found. 226 * Found.
224 */ 227 */
225 class http_status_302 : public http_status_3xx { 228 class http_status_302 : public http_status_3xx {
226 public: 229 public:
227 /** 230 /**
228 * @param m HTTP status message 231 * @param m HTTP status message
229 */ 232 */
230 explicit http_status_302(const string& m) 233 explicit http_status_302(const string& m)
231 : http_status_3xx("302",m) { } 234 : http_status_3xx("302",m) { }
232 explicit http_status_302() 235 explicit http_status_302()
233 : http_status_3xx("302","Found") { } 236 : http_status_3xx("302","Found") { }
234 }; 237 };
235 /** 238 /**
236 * See other. 239 * See other.
237 */ 240 */
238 class http_status_303 : public http_status_3xx { 241 class http_status_303 : public http_status_3xx {
239 public: 242 public:
240 /** 243 /**
241 * @param m HTTP status message 244 * @param m HTTP status message
242 */ 245 */
243 explicit http_status_303(const string& m) 246 explicit http_status_303(const string& m)
244 : http_status_3xx("303",m) { } 247 : http_status_3xx("303",m) { }
245 explicit http_status_303() 248 explicit http_status_303()
246 : http_status_3xx("303","See other") { } 249 : http_status_3xx("303","See other") { }
247 }; 250 };
248 /** 251 /**
249 * Not modified. 252 * Not modified.
250 */ 253 */
251 class http_status_304 : public http_status_3xx { 254 class http_status_304 : public http_status_3xx {
252 public: 255 public:
253 /** 256 /**
254 * @param m HTTP status message 257 * @param m HTTP status message
255 */ 258 */
256 explicit http_status_304(const string& m) 259 explicit http_status_304(const string& m)
257 : http_status_3xx("304",m) { } 260 : http_status_3xx("304",m) { }
258 explicit http_status_304() 261 explicit http_status_304()
259 : http_status_3xx("304","Not modified") { } 262 : http_status_3xx("304","Not modified") { }
260 }; 263 };
261 /** 264 /**
262 * Use proxy. 265 * Use proxy.
263 */ 266 */
264 class http_status_305 : public http_status_3xx { 267 class http_status_305 : public http_status_3xx {
265 public: 268 public:
266 /** 269 /**
267 * @param m HTTP status message 270 * @param m HTTP status message
268 */ 271 */
269 explicit http_status_305(const string& m) 272 explicit http_status_305(const string& m)
270 : http_status_3xx("305",m) { } 273 : http_status_3xx("305",m) { }
271 explicit http_status_305() 274 explicit http_status_305()
272 : http_status_3xx("305","Use proxy") { } 275 : http_status_3xx("305","Use proxy") { }
273 }; 276 };
274 // 306 is unused and reserved 277 // 306 is unused and reserved
275 /** 278 /**
276 * Temporary redirect. 279 * Temporary redirect.
277 */ 280 */
278 class http_status_307 : public http_status_3xx { 281 class http_status_307 : public http_status_3xx {
279 public: 282 public:
280 /** 283 /**
281 * @param m HTTP status message 284 * @param m HTTP status message
282 */ 285 */
283 explicit http_status_307(const string& m) 286 explicit http_status_307(const string& m)
284 : http_status_3xx("307",m) { } 287 : http_status_3xx("307",m) { }
285 explicit http_status_307() 288 explicit http_status_307()
286 : http_status_3xx("307","Temporary redirect") { } 289 : http_status_3xx("307","Temporary redirect") { }
287 }; 290 };
288 291
289 /** 292 /**
290 * Error. 293 * Error.
291 */ 294 */
292 class http_status_4xx : public http_status { 295 class http_status_4xx : public http_status {
293 public: 296 public:
294 /** 297 /**
295 * @param s HTTP status 298 * @param s HTTP status
296 * @param m HTTP status message 299 * @param m HTTP status message
297 */ 300 */
298 explicit http_status_4xx(const string& s,const string& m) 301 explicit http_status_4xx(const string& s,const string& m)
299 : http_status(s,m) { } 302 : http_status(s,m) { }
300 }; 303 };
301 /** 304 /**
302 * Bad request. 305 * Bad request.
303 */ 306 */
304 class http_status_400 : public http_status_4xx { 307 class http_status_400 : public http_status_4xx {
305 public: 308 public:
306 /** 309 /**
307 * @param m HTTP status message 310 * @param m HTTP status message
308 */ 311 */
309 explicit http_status_400(const string& m) 312 explicit http_status_400(const string& m)
310 : http_status_4xx("400",m) { } 313 : http_status_4xx("400",m) { }
311 explicit http_status_400() 314 explicit http_status_400()
312 : http_status_4xx("400","Bad request") { } 315 : http_status_4xx("400","Bad request") { }
313 }; 316 };
314 /** 317 /**
315 * Unauthorized. 318 * Unauthorized.
316 */ 319 */
317 class http_status_401 : public http_status_4xx { 320 class http_status_401 : public http_status_4xx {
318 public: 321 public:
319 /** 322 /**
320 * @param m HTTP status message 323 * @param m HTTP status message
321 */ 324 */
322 explicit http_status_401(const string& m) 325 explicit http_status_401(const string& m)
323 : http_status_4xx("401",m) { } 326 : http_status_4xx("401",m) { }
324 explicit http_status_401() 327 explicit http_status_401()
325 : http_status_4xx("401","Unauthorized") { } 328 : http_status_4xx("401","Unauthorized") { }
326 }; 329 };
327 /** 330 /**
328 * Payment required. 331 * Payment required.
329 */ 332 */
330 class http_status_402 : public http_status_4xx { 333 class http_status_402 : public http_status_4xx {
331 public: 334 public:
332 /** 335 /**
333 * @param m HTTP status message 336 * @param m HTTP status message
334 */ 337 */
335 explicit http_status_402(const string& m) 338 explicit http_status_402(const string& m)
336 : http_status_4xx("402",m) { } 339 : http_status_4xx("402",m) { }
337 explicit http_status_402() 340 explicit http_status_402()
338 : http_status_4xx("402","Payment required") { } 341 : http_status_4xx("402","Payment required") { }
339 }; 342 };
340 /** 343 /**
341 * Forbidden. 344 * Forbidden.
342 */ 345 */
343 class http_status_403 : public http_status_4xx { 346 class http_status_403 : public http_status_4xx {
344 public: 347 public:
345 /** 348 /**
346 * @param m HTTP status message 349 * @param m HTTP status message
347 */ 350 */
348 explicit http_status_403(const string& m) 351 explicit http_status_403(const string& m)
349 : http_status_4xx("403",m) { } 352 : http_status_4xx("403",m) { }
350 explicit http_status_403() 353 explicit http_status_403()
351 : http_status_4xx("403","Forbidden") { } 354 : http_status_4xx("403","Forbidden") { }
352 }; 355 };
353 /** 356 /**
354 * Not found. 357 * Not found.
355 */ 358 */
356 class http_status_404 : public http_status_4xx { 359 class http_status_404 : public http_status_4xx {
357 public: 360 public:
358 /** 361 /**
359 * @param m HTTP status message 362 * @param m HTTP status message
360 */ 363 */
361 explicit http_status_404(const string& m) 364 explicit http_status_404(const string& m)
362 : http_status_4xx("404",m) { } 365 : http_status_4xx("404",m) { }
363 explicit http_status_404() 366 explicit http_status_404()
364 : http_status_4xx("404","Not found") { } 367 : http_status_4xx("404","Not found") { }
365 }; 368 };
366 /** 369 /**
367 * Method not allowed. 370 * Method not allowed.
368 */ 371 */
369 class http_status_405 : public http_status_4xx { 372 class http_status_405 : public http_status_4xx {
370 public: 373 public:
371 /** 374 /**
372 * @param m HTTP status message 375 * @param m HTTP status message
373 */ 376 */
374 explicit http_status_405(const string& m) 377 explicit http_status_405(const string& m)
375 : http_status_4xx("405",m) { } 378 : http_status_4xx("405",m) { }
376 explicit http_status_405() 379 explicit http_status_405()
377 : http_status_4xx("405","Method not allowed") { } 380 : http_status_4xx("405","Method not allowed") { }
378 }; 381 };
379 /** 382 /**
380 * Not acceptable. 383 * Not acceptable.
381 */ 384 */
382 class http_status_406 : public http_status_4xx { 385 class http_status_406 : public http_status_4xx {
383 public: 386 public:
384 /** 387 /**
385 * @param m HTTP status message 388 * @param m HTTP status message
386 */ 389 */
387 explicit http_status_406(const string& m) 390 explicit http_status_406(const string& m)
388 : http_status_4xx("406",m) { } 391 : http_status_4xx("406",m) { }
389 explicit http_status_406() 392 explicit http_status_406()
390 : http_status_4xx("406","Not acceptable") { } 393 : http_status_4xx("406","Not acceptable") { }
391 }; 394 };
392 /** 395 /**
393 * Proxy authentication required. 396 * Proxy authentication required.
394 */ 397 */
395 class http_status_407 : public http_status_4xx { 398 class http_status_407 : public http_status_4xx {
396 public: 399 public: