-rw-r--r-- | include/sitecing/exception.h | 275 |
1 files changed, 275 insertions, 0 deletions
diff --git a/include/sitecing/exception.h b/include/sitecing/exception.h index 985fc6d..857a8e6 100644 --- a/include/sitecing/exception.h +++ b/include/sitecing/exception.h @@ -42,16 +42,23 @@ namespace sitecing { * 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") { } @@ -60,8 +67,11 @@ namespace sitecing { * 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") { } @@ -71,16 +81,23 @@ namespace sitecing { * 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") { } @@ -89,8 +106,11 @@ namespace sitecing { * 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") { } @@ -99,8 +119,11 @@ namespace sitecing { * 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") { } @@ -109,8 +132,11 @@ namespace sitecing { * 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") { } @@ -119,8 +145,11 @@ namespace sitecing { * 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") { } @@ -129,8 +158,11 @@ namespace sitecing { * 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") { } @@ -139,8 +171,11 @@ namespace sitecing { * 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") { } @@ -150,16 +185,23 @@ namespace sitecing { * 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") { } @@ -168,8 +210,11 @@ namespace sitecing { * 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") { } @@ -178,8 +223,11 @@ namespace sitecing { * 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") { } @@ -188,8 +236,11 @@ namespace sitecing { * 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") { } @@ -198,8 +249,11 @@ namespace sitecing { * 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") { } @@ -208,8 +262,11 @@ namespace sitecing { * 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") { } @@ -219,8 +276,11 @@ namespace sitecing { * 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") { } @@ -230,16 +290,23 @@ namespace sitecing { * 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") { } @@ -248,8 +315,11 @@ namespace sitecing { * 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") { } @@ -258,8 +328,11 @@ namespace sitecing { * 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") { } @@ -268,8 +341,11 @@ namespace sitecing { * 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") { } @@ -278,8 +354,11 @@ namespace sitecing { * 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") { } @@ -288,8 +367,11 @@ namespace sitecing { * 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") { } @@ -298,8 +380,11 @@ namespace sitecing { * 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") { } @@ -308,8 +393,11 @@ namespace sitecing { * Proxy authentication required. */ class http_status_407 : public http_status_4xx { public: + /** + * @param m HTTP status message + */ explicit http_status_407(const string& m) : http_status_4xx("407",m) { } explicit http_status_407() : http_status_4xx("407","Proxy authentication required") { } @@ -318,8 +406,11 @@ namespace sitecing { * Request timeout. */ class http_status_408 : public http_status_4xx { public: + /** + * @param m HTTP status message + */ explicit http_status_408(const string& m) : http_status_4xx("408",m) { } explicit http_status_408() : http_status_4xx("408","Request timeout") { } @@ -328,8 +419,11 @@ namespace sitecing { * Conflict. */ class http_status_409 : public http_status_4xx { public: + /** + * @param m HTTP status message + */ explicit http_status_409(const string& m) : http_status_4xx("409",m) { } explicit http_status_409() : http_status_4xx("409","Conflict") { } @@ -338,8 +432,11 @@ namespace sitecing { * Gone. */ class http_status_410 : public http_status_4xx { public: + /** + * @param m HTTP status message + */ explicit http_status_410(const string& m) : http_status_4xx("410",m) { } explicit http_status_410() : http_status_4xx("410","Gone") { } @@ -348,8 +445,11 @@ namespace sitecing { * Length required. */ class http_status_411 : public http_status_4xx { public: + /** + * @param m HTTP status message + */ explicit http_status_411(const string& m) : http_status_4xx("411",m) { } explicit http_status_411() : http_status_4xx("411","Length required") { } @@ -358,8 +458,11 @@ namespace sitecing { * Precondition failed. */ class http_status_412 : public http_status_4xx { public: + /** + * @param m HTTP status message + */ explicit http_status_412(const string& m) : http_status_4xx("412",m) { } explicit http_status_412() : http_status_4xx("412","Precondition failed") { } @@ -368,8 +471,11 @@ namespace sitecing { * Request entity too large. */ class http_status_413 : public http_status_4xx { public: + /** + * @param m HTTP status message + */ explicit http_status_413(const string& m) : http_status_4xx("413",m) { } explicit http_status_413() : http_status_4xx("413","Request entity too large") { } @@ -378,8 +484,11 @@ namespace sitecing { * Request URI too long. */ class http_status_414 : public http_status_4xx { public: + /** + * @param m HTTP status message + */ explicit http_status_414(const string& m) : http_status_4xx("414",m) { } explicit http_status_414() : http_status_4xx("414","Request URI too long") { } @@ -388,8 +497,11 @@ namespace sitecing { * Unsupported media type. */ class http_status_415 : public http_status_4xx { public: + /** + * @param m HTTP status message + */ explicit http_status_415(const string& m) : http_status_4xx("415",m) { } explicit http_status_415() : http_status_4xx("415","Unsupported media type") { } @@ -398,8 +510,11 @@ namespace sitecing { * Requested range not satisfiable. */ class http_status_416 : public http_status_4xx { public: + /** + * @param m HTTP status message + */ explicit http_status_416(const string& m) : http_status_4xx("416",m) { } explicit http_status_416() : http_status_4xx("416","Requested range not satisfiable") { } @@ -408,8 +523,11 @@ namespace sitecing { * Expectation failed. */ class http_status_417 : public http_status_4xx { public: + /** + * @param m HTTP status message + */ explicit http_status_417(const string& m) : http_status_4xx("417",m) { } explicit http_status_417() : http_status_4xx("417","Expectation failed") { } @@ -419,16 +537,23 @@ namespace sitecing { * Server error. */ class http_status_5xx : public http_status { public: + /** + * @param s HTTP status + * @param m HTTP status message + */ explicit http_status_5xx(const string& s,const string& m) : http_status(s,m) { } }; /** * Internal server error. */ class http_status_500 : public http_status_5xx { public: + /** + * @param m HTTP status message + */ explicit http_status_500(const string& m) : http_status_5xx("500",m) { } explicit http_status_500() : http_status_5xx("500","Internal server error") { } @@ -437,8 +562,11 @@ namespace sitecing { * Not implemented. */ class http_status_501 : public http_status_5xx { public: + /** + * @param m HTTP status message + */ explicit http_status_501(const string& m) : http_status_5xx("501",m) { } explicit http_status_501() : http_status_5xx("501","Not implemented") { } @@ -447,8 +575,11 @@ namespace sitecing { * Bad gateway. */ class http_status_502 : public http_status_5xx { public: + /** + * @param m HTTP status message + */ explicit http_status_502(const string& m) : http_status_5xx("502",m) { } explicit http_status_502() : http_status_5xx("502","Bad gateway") { } @@ -457,8 +588,11 @@ namespace sitecing { * Service unavailable. */ class http_status_503 : public http_status_5xx { public: + /** + * @param m HTTP status message + */ explicit http_status_503(const string& m) : http_status_5xx("503",m) { } explicit http_status_503() : http_status_5xx("503","Service unavailable") { } @@ -467,8 +601,11 @@ namespace sitecing { * Gateway timeout. */ class http_status_504 : public http_status_5xx { public: + /** + * @param m HTTP status message + */ explicit http_status_504(const string& m) : http_status_5xx("504",m) { } explicit http_status_504() : http_status_5xx("504","Gateway timeout") { } @@ -477,65 +614,203 @@ namespace sitecing { * HTTP version not supported. */ class http_status_505 : public http_status_5xx { public: + /** + * @param m HTTP status message + */ explicit http_status_505(const string& m) : http_status_5xx("505",m) { } explicit http_status_505() : http_status_5xx("505","HTTP version not supported") { } }; // Aliases + /** + * Convenience alias for informational http status exceptions + */ typedef http_status_1xx http_status_informational; + /** + * @see http_status_100 + */ typedef http_status_100 http_status_continue; + /** + * @see http_status_101 + */ typedef http_status_101 http_status_switching_protocols; + /** + * Convenience alias for success http status exceptions + */ typedef http_status_2xx http_status_sucessful; + /** + * @see http_status_200 + */ typedef http_status_200 http_status_ok; + /** + * @see http_status_201 + */ typedef http_status_201 http_status_created; + /** + * @see http_status_202 + */ typedef http_status_202 http_status_accepted; + /** + * @see http_status_203 + */ typedef http_status_203 http_status_non_authoritative_information; + /** + * @see http_status_204 + */ typedef http_status_204 http_status_no_content; + /** + * @see http_status_205 + */ typedef http_status_205 http_status_reset_content; + /** + * @see http_status_206 + */ typedef http_status_206 http_status_partial_content; + /** + * Convenience alias for redirection http status exceptions + */ typedef http_status_3xx http_status_redirection; + /** + * @see http_status_200 + */ typedef http_status_300 http_status_multiple_choices; + /** + * @see http_status_301 + */ typedef http_status_301 http_status_moved_permanently; + /** + * @see http_status_302 + */ typedef http_status_302 http_status_found; + /** + * @see http_status_303 + */ typedef http_status_303 http_status_see_other; + /** + * @see http_status_304 + */ typedef http_status_304 http_status_not_modified; + /** + * @see http_status_305 + */ typedef http_status_305 http_status_use_proxy; // 306 is unused and reserved + /** + * @see http_status_307 + */ typedef http_status_307 http_status_temporary_redirect; + /** + * Convenience alias for client error http exceptions + */ typedef http_status_4xx http_status_client_error; + /** + * @see http_status_400 + */ typedef http_status_400 http_status_bad_request; + /** + * @see http_status_401 + */ typedef http_status_401 http_status_unauthorized; + /** + * @see http_status_402 + */ typedef http_status_402 http_status_payment_required; + /** + * @see http_status_403 + */ typedef http_status_403 http_status_forbidden; + /** + * @see http_status_404 + */ typedef http_status_404 http_status_not_found; + /** + * @see http_status_405 + */ typedef http_status_405 http_status_method_not_allowed; + /** + * @see http_status_406 + */ typedef http_status_406 http_status_not_acceptable; + /** + * @see http_status_407 + */ typedef http_status_407 http_status_proxy_authentication_required; + /** + * @see http_status_408 + */ typedef http_status_408 http_status_request_timeout; + /** + * @see http_status_409 + */ typedef http_status_409 http_status_conflict; + /** + * @see http_status_410 + */ typedef http_status_410 http_status_gone; + /** + * @see http_status_411 + */ typedef http_status_411 http_status_length_required; + /** + * @see http_status_412 + */ typedef http_status_412 http_status_precondition_failed; + /** + * @see http_status_413 + */ typedef http_status_413 http_status_request_entity_too_large; + /** + * @see http_status_414 + */ typedef http_status_414 http_status_requrest_uri_too_long; + /** + * @see http_status_415 + */ typedef http_status_415 http_status_unsupported_media_type; + /** + * @see http_status_416 + */ typedef http_status_416 http_status_required_range_not_satisfiable; + /** + * @see http_status_417 + */ typedef http_status_417 http_status_expectation_failed; + /** + * Convenience alias for server error http exceptions + */ typedef http_status_5xx http_status_server_error; + /** + * @see http_status_500 + */ typedef http_status_500 http_status_internal_server_error; + /** + * @see http_status_501 + */ typedef http_status_501 http_status_not_implemented; + /** + * @see http_status_502 + */ typedef http_status_502 http_status_bad_gateway; + /** + * @see http_status_503 + */ typedef http_status_503 http_status_service_unavailable; + /** + * @see http_status_504 + */ typedef http_status_504 http_status_gateway_timeout; + /** + * @see http_status_505 + */ typedef http_status_505 http_status_http_version_not_supported; } |