]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/boost/beast/http/status.hpp
bump version to 18.2.2-pve1
[ceph.git] / ceph / src / boost / boost / beast / http / status.hpp
1 //
2 // Copyright (c) 2016-2019 Vinnie Falco (vinnie dot falco at gmail dot com)
3 //
4 // Distributed under the Boost Software License, Version 1.0. (See accompanying
5 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6 //
7 // Official repository: https://github.com/boostorg/beast
8 //
9
10 #ifndef BOOST_BEAST_HTTP_STATUS_HPP
11 #define BOOST_BEAST_HTTP_STATUS_HPP
12
13 #include <boost/beast/core/detail/config.hpp>
14 #include <boost/beast/core/string.hpp>
15 #include <iosfwd>
16
17 namespace boost {
18 namespace beast {
19 namespace http {
20
21 enum class status : unsigned
22 {
23 /** An unknown status-code.
24
25 This value indicates that the value for the status code
26 is not in the list of commonly recognized status codes.
27 Callers interested in the exactly value should use the
28 interface which provides the raw integer.
29 */
30 unknown = 0,
31
32 continue_ = 100,
33
34 /** Switching Protocols
35
36 This status indicates that a request to switch to a new
37 protocol was accepted and applied by the server. A successful
38 response to a WebSocket Upgrade HTTP request will have this
39 code.
40 */
41 switching_protocols = 101,
42
43 processing = 102,
44
45 ok = 200,
46 created = 201,
47 accepted = 202,
48 non_authoritative_information = 203,
49 no_content = 204,
50 reset_content = 205,
51 partial_content = 206,
52 multi_status = 207,
53 already_reported = 208,
54 im_used = 226,
55
56 multiple_choices = 300,
57 moved_permanently = 301,
58 found = 302,
59 see_other = 303,
60 not_modified = 304,
61 use_proxy = 305,
62 temporary_redirect = 307,
63 permanent_redirect = 308,
64
65 bad_request = 400,
66 unauthorized = 401,
67 payment_required = 402,
68 forbidden = 403,
69 not_found = 404,
70 method_not_allowed = 405,
71 not_acceptable = 406,
72 proxy_authentication_required = 407,
73 request_timeout = 408,
74 conflict = 409,
75 gone = 410,
76 length_required = 411,
77 precondition_failed = 412,
78 payload_too_large = 413,
79 uri_too_long = 414,
80 unsupported_media_type = 415,
81 range_not_satisfiable = 416,
82 expectation_failed = 417,
83 misdirected_request = 421,
84 unprocessable_entity = 422,
85 locked = 423,
86 failed_dependency = 424,
87 upgrade_required = 426,
88 precondition_required = 428,
89 too_many_requests = 429,
90 request_header_fields_too_large = 431,
91 connection_closed_without_response = 444,
92 unavailable_for_legal_reasons = 451,
93 client_closed_request = 499,
94
95 internal_server_error = 500,
96 not_implemented = 501,
97 bad_gateway = 502,
98 service_unavailable = 503,
99 gateway_timeout = 504,
100 http_version_not_supported = 505,
101 variant_also_negotiates = 506,
102 insufficient_storage = 507,
103 loop_detected = 508,
104 not_extended = 510,
105 network_authentication_required = 511,
106 network_connect_timeout_error = 599
107 };
108
109 /** Represents the class of a status-code.
110 */
111 enum class status_class : unsigned
112 {
113 /// Unknown status-class
114 unknown = 0,
115
116 /// The request was received, continuing processing.
117 informational = 1,
118
119 /// The request was successfully received, understood, and accepted.
120 successful = 2,
121
122 /// Further action needs to be taken in order to complete the request.
123 redirection = 3,
124
125 /// The request contains bad syntax or cannot be fulfilled.
126 client_error = 4,
127
128 /// The server failed to fulfill an apparently valid request.
129 server_error = 5,
130 };
131
132 /** Converts the integer to a known status-code.
133
134 If the integer does not match a known status code,
135 @ref status::unknown is returned.
136 */
137 BOOST_BEAST_DECL
138 status
139 int_to_status(unsigned v);
140
141 /** Convert an integer to a status_class.
142
143 @param v The integer representing a status code.
144
145 @return The status class. If the integer does not match
146 a known status class, @ref status_class::unknown is returned.
147 */
148 BOOST_BEAST_DECL
149 status_class
150 to_status_class(unsigned v);
151
152 /** Convert a status_code to a status_class.
153
154 @param v The status code to convert.
155
156 @return The status class.
157 */
158 BOOST_BEAST_DECL
159 status_class
160 to_status_class(status v);
161
162 /** Returns the obsolete reason-phrase text for a status code.
163
164 @param v The status code to use.
165 */
166 BOOST_BEAST_DECL
167 string_view
168 obsolete_reason(status v);
169
170 /// Outputs the standard reason phrase of a status code to a stream.
171 BOOST_BEAST_DECL
172 std::ostream&
173 operator<<(std::ostream&, status);
174
175 } // http
176 } // beast
177 } // boost
178
179 #ifdef BOOST_BEAST_HEADER_ONLY
180 #include <boost/beast/http/impl/status.ipp>
181 #endif
182
183 #endif