summaryrefslogtreecommitdiffabout
path: root/include/sitecing/exception.h
Side-by-side diff
Diffstat (limited to 'include/sitecing/exception.h') (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 @@
#ifndef __SITECING_EXCEPTION_H
#define __SITECING_EXCEPTION_H
+#include <string>
+
/**
* @file
* @brief The site-C-ing specific exceptions.
*/
/**
* @brief The main site-C-ing namespace.
*/
namespace sitecing {
+ using std::string;
// TODO: status specifics
/**
* The http status to return.
*/
class http_status {
public:
/**
* The status string.
*/
string status;
/**
* The message to follow the status string.
*/
string message;
/**
* @param s HTTP status.
* @param m HTTP status message.
*/
http_status(const string& s,const string& m)
: status(s), message(m) { }
virtual ~http_status() throw() { }
};
// per RFC 2616
/**
* Informational.
*/
class http_status_1xx : public http_status {
public:
/**
* @param s HTTP status
* @param m HTTP status message
*/
explicit http_status_1xx(const string &s,const string& m)
: http_status(s,m) { }
};
/**
* Continue.
*/
class http_status_100 : public http_status_1xx {
public:
/**
* @param m HTTP status message
*/
explicit http_status_100(const string& m)
: http_status_1xx("100",m) { }
explicit http_status_100()
: http_status_1xx("100","Continue") { }
};
/**
* Switching protocols.
*/
class http_status_101 : public http_status_1xx {
public:
/**
* @param m HTTP status message
*/
explicit http_status_101(const string& m)
: http_status_1xx("101",m) { }
explicit http_status_101()
: http_status_1xx("101","Switching protocols") { }
};
/**
* Successful.
*/
class http_status_2xx : public http_status {
public:
/**
* @param s HTTP status message
* @param m HTTP status message
*/
explicit http_status_2xx(const string& s,const string& m)
: http_status(s,m) { }
};
/**
* OK.
*/
class http_status_200 : public http_status_2xx {
public:
/**
* @param m HTTP status message
*/
explicit http_status_200(const string& m)
: http_status_2xx("200",m) { }
explicit http_status_200()
: http_status_2xx("200","OK") { }
};
/**
* Created.
*/
class http_status_201 : public http_status_2xx {
public:
/**
* @param m HTTP status message
*/
explicit http_status_201(const string& m)
: http_status_2xx("201",m) { }
explicit http_status_201()
: http_status_2xx("201","Created") { }
};
/**
* Accepted.
*/
class http_status_202 : public http_status_2xx {
public:
/**
* @param m HTTP status message
*/
explicit http_status_202(const string& m)
: http_status_2xx("202",m) { }
explicit http_status_202()
: http_status_2xx("202","Accepted") { }
};
/**
* Non-authoritative infortmation.
*/
class http_status_203 : public http_status_2xx {
public:
/**
* @param m HTTP status message
*/
explicit http_status_203(const string& m)
: http_status_2xx("203",m) { }
explicit http_status_203()
: http_status_2xx("203","Non-authoritative information") { }
};
/**
* No content.
*/
class http_status_204 : public http_status_2xx {
public:
/**
* @param m HTTP status message
*/
explicit http_status_204(const string& m)
: http_status_2xx("204",m) { }
explicit http_status_204()
: http_status_2xx("204","No content") { }
};
/**
* Reset content.
*/
class http_status_205 : public http_status_2xx {
public:
/**
* @param m HTTP status message
*/
explicit http_status_205(const string& m)
: http_status_2xx("205",m) { }
explicit http_status_205()
: http_status_2xx("205","Reset content") { }
};
/**
* Partial content.
*/
class http_status_206 : public http_status_2xx {
public:
/**
* @param m HTTP status message
*/
explicit http_status_206(const string& m)
: http_status_2xx("206",m) { }
explicit http_status_206()
: http_status_2xx("206","Partial content") { }
};
/**
* Redirection.
*/
class http_status_3xx : public http_status {
public:
/**
* @param s HTTP status
* @param m HTTP status message
*/
explicit http_status_3xx(const string& s,const string& m)
: http_status(s,m) { }
};
/**
* Multiple choices.
*/
class http_status_300 : public http_status_3xx {
public:
/**
* @param m HTTP status message
*/
explicit http_status_300(const string& m)
: http_status_3xx("300",m) { }
explicit http_status_300()
: http_status_3xx("300","Multiple choices") { }
};
/**
* Moved permanently.
*/
class http_status_301 : public http_status_3xx {
public:
/**
* @param m HTTP status message
*/
explicit http_status_301(const string& m)
: http_status_3xx("301",m) { }
explicit http_status_301()
: http_status_3xx("301","Moved permanently") { }
};
/**
* Found.
*/
class http_status_302 : public http_status_3xx {
public:
/**
* @param m HTTP status message
*/
explicit http_status_302(const string& m)
: http_status_3xx("302",m) { }
explicit http_status_302()
: http_status_3xx("302","Found") { }
};
/**
* See other.
*/
class http_status_303 : public http_status_3xx {
public:
/**
* @param m HTTP status message
*/
explicit http_status_303(const string& m)
: http_status_3xx("303",m) { }
explicit http_status_303()
: http_status_3xx("303","See other") { }
};
/**
* Not modified.
*/
class http_status_304 : public http_status_3xx {
public:
/**
* @param m HTTP status message
*/
explicit http_status_304(const string& m)
: http_status_3xx("304",m) { }
explicit http_status_304()
: http_status_3xx("304","Not modified") { }
};
/**
* Use proxy.
*/
class http_status_305 : public http_status_3xx {
public:
/**
* @param m HTTP status message
*/
explicit http_status_305(const string& m)
: http_status_3xx("305",m) { }
explicit http_status_305()
: http_status_3xx("305","Use proxy") { }
};
// 306 is unused and reserved
/**
* Temporary redirect.
*/
class http_status_307 : public http_status_3xx {
public:
/**
* @param m HTTP status message
*/
explicit http_status_307(const string& m)
: http_status_3xx("307",m) { }
explicit http_status_307()
: http_status_3xx("307","Temporary redirect") { }
};
/**
* Error.
*/
class http_status_4xx : public http_status {
public:
/**
* @param s HTTP status
* @param m HTTP status message
*/
explicit http_status_4xx(const string& s,const string& m)
: http_status(s,m) { }
};
/**
* Bad request.
*/
class http_status_400 : public http_status_4xx {
public:
/**
* @param m HTTP status message
*/
explicit http_status_400(const string& m)
: http_status_4xx("400",m) { }
explicit http_status_400()
: http_status_4xx("400","Bad request") { }
};
/**
* Unauthorized.
*/
class http_status_401 : public http_status_4xx {
public:
/**
* @param m HTTP status message
*/
explicit http_status_401(const string& m)
: http_status_4xx("401",m) { }
explicit http_status_401()
: http_status_4xx("401","Unauthorized") { }
};
/**
* Payment required.
*/
class http_status_402 : public http_status_4xx {
public:
/**
* @param m HTTP status message
*/
explicit http_status_402(const string& m)
: http_status_4xx("402",m) { }
explicit http_status_402()
: http_status_4xx("402","Payment required") { }
};
/**
* Forbidden.
*/
class http_status_403 : public http_status_4xx {
public:
/**
* @param m HTTP status message
*/
explicit http_status_403(const string& m)
: http_status_4xx("403",m) { }
explicit http_status_403()
: http_status_4xx("403","Forbidden") { }
};
/**
* Not found.
*/
class http_status_404 : public http_status_4xx {
public:
/**
* @param m HTTP status message
*/
explicit http_status_404(const string& m)
: http_status_4xx("404",m) { }
explicit http_status_404()
: http_status_4xx("404","Not found") { }
};
/**
* Method not allowed.
*/
class http_status_405 : public http_status_4xx {
public:
/**
* @param m HTTP status message
*/
explicit http_status_405(const string& m)
: http_status_4xx("405",m) { }
explicit http_status_405()
: http_status_4xx("405","Method not allowed") { }
};
/**
* Not acceptable.
*/
class http_status_406 : public http_status_4xx {
public:
/**
* @param m HTTP status message
*/
explicit http_status_406(const string& m)
: http_status_4xx("406",m) { }
explicit http_status_406()
: http_status_4xx("406","Not acceptable") { }
};
/**
* Proxy authentication required.
*/
class http_status_407 : public http_status_4xx {
public: