summaryrefslogtreecommitdiff
path: root/boost/beast/http/status.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/beast/http/status.hpp')
-rw-r--r--boost/beast/http/status.hpp167
1 files changed, 167 insertions, 0 deletions
diff --git a/boost/beast/http/status.hpp b/boost/beast/http/status.hpp
new file mode 100644
index 0000000000..8d7938ca0c
--- /dev/null
+++ b/boost/beast/http/status.hpp
@@ -0,0 +1,167 @@
+//
+// Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
+//
+// Distributed under the Boost Software License, Version 1.0. (See accompanying
+// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+//
+// Official repository: https://github.com/boostorg/beast
+//
+
+#ifndef BOOST_BEAST_HTTP_STATUS_HPP
+#define BOOST_BEAST_HTTP_STATUS_HPP
+
+#include <boost/beast/core/detail/config.hpp>
+#include <boost/beast/core/string.hpp>
+#include <iosfwd>
+
+namespace boost {
+namespace beast {
+namespace http {
+
+enum class status : unsigned
+{
+ /** An unknown status-code.
+
+ This value indicates that the value for the status code
+ is not in the list of commonly recognized status codes.
+ Callers interested in the exactly value should use the
+ interface which provides the raw integer.
+ */
+ unknown = 0,
+
+ continue_ = 100,
+ switching_protocols = 101,
+ processing = 102,
+
+ ok = 200,
+ created = 201,
+ accepted = 202,
+ non_authoritative_information = 203,
+ no_content = 204,
+ reset_content = 205,
+ partial_content = 206,
+ multi_status = 207,
+ already_reported = 208,
+ im_used = 226,
+
+ multiple_choices = 300,
+ moved_permanently = 301,
+ found = 302,
+ see_other = 303,
+ not_modified = 304,
+ use_proxy = 305,
+ temporary_redirect = 307,
+ permanent_redirect = 308,
+
+ bad_request = 400,
+ unauthorized = 401,
+ payment_required = 402,
+ forbidden = 403,
+ not_found = 404,
+ method_not_allowed = 405,
+ not_acceptable = 406,
+ proxy_authentication_required = 407,
+ request_timeout = 408,
+ conflict = 409,
+ gone = 410,
+ length_required = 411,
+ precondition_failed = 412,
+ payload_too_large = 413,
+ uri_too_long = 414,
+ unsupported_media_type = 415,
+ range_not_satisfiable = 416,
+ expectation_failed = 417,
+ misdirected_request = 421,
+ unprocessable_entity = 422,
+ locked = 423,
+ failed_dependency = 424,
+ upgrade_required = 426,
+ precondition_required = 428,
+ too_many_requests = 429,
+ request_header_fields_too_large = 431,
+ connection_closed_without_response = 444,
+ unavailable_for_legal_reasons = 451,
+ client_closed_request = 499,
+
+ internal_server_error = 500,
+ not_implemented = 501,
+ bad_gateway = 502,
+ service_unavailable = 503,
+ gateway_timeout = 504,
+ http_version_not_supported = 505,
+ variant_also_negotiates = 506,
+ insufficient_storage = 507,
+ loop_detected = 508,
+ not_extended = 510,
+ network_authentication_required = 511,
+ network_connect_timeout_error = 599
+};
+
+/** Represents the class of a status-code.
+*/
+enum class status_class : unsigned
+{
+ /// Unknown status-class
+ unknown = 0,
+
+ /// The request was received, continuing processing.
+ informational = 1,
+
+ /// The request was successfully received, understood, and accepted.
+ successful = 2,
+
+ /// Further action needs to be taken in order to complete the request.
+ redirection = 3,
+
+ /// The request contains bad syntax or cannot be fulfilled.
+ client_error = 4,
+
+ /// The server failed to fulfill an apparently valid request.
+ server_error = 5,
+};
+
+/** Converts the integer to a known status-code.
+
+ If the integer does not match a known status code,
+ @ref status::unknown is returned.
+*/
+status
+int_to_status(unsigned v);
+
+/** Convert an integer to a status_class.
+
+ @param v The integer representing a status code.
+
+ @return The status class. If the integer does not match
+ a known status class, @ref status_class::unknown is returned.
+*/
+status_class
+to_status_class(unsigned v);
+
+/** Convert a status_code to a status_class.
+
+ @param v The status code to convert.
+
+ @return The status class.
+*/
+status_class
+to_status_class(status v);
+
+/** Returns the obsolete reason-phrase text for a status code.
+
+ @param v The status code to use.
+*/
+string_view
+obsolete_reason(status v);
+
+/// Outputs the standard reason phrase of a status code to a stream.
+std::ostream&
+operator<<(std::ostream&, status);
+
+} // http
+} // beast
+} // boost
+
+#include <boost/beast/http/impl/status.ipp>
+
+#endif