Fastly Compute C++ SDK
Loading...
Searching...
No Matches
status_code.h
Go to the documentation of this file.
1#ifndef FASTLY_HTTP_STATUS_CODE_H
2#define FASTLY_HTTP_STATUS_CODE_H
3
4#include <cstdint>
5#include <cstdlib>
6#include <fastly/error.h>
7#include <fastly/expected.h>
8#include <fastly/sdk-sys.h>
9#include <iostream>
10#include <optional>
11
12namespace fastly::http {
13
15public:
16 StatusCode() = default;
17
19 constexpr StatusCode(uint16_t code) : value(code) {
20 if (code < 100 || code >= 1000) {
21 std::cerr << "Invalid StatusCode value.";
22 std::abort();
23 }
24 }
25
29 static const StatusCode CONTINUE;
37 static const StatusCode PROCESSING;
41 static const StatusCode OK;
45 static const StatusCode CREATED;
49 static const StatusCode ACCEPTED;
57 static const StatusCode NO_CONTENT;
77 static const StatusCode IM_USED;
89 static const StatusCode FOUND;
93 static const StatusCode SEE_OTHER;
101 static const StatusCode USE_PROXY;
125 static const StatusCode FORBIDDEN;
129 static const StatusCode NOT_FOUND;
149 static const StatusCode CONFLICT;
153 static const StatusCode GONE;
197 static const StatusCode LOCKED;
204 static const StatusCode TOO_EARLY;
268
269 constexpr bool operator==(StatusCode a) const { return value == a.value; }
270 constexpr bool operator!=(StatusCode a) const { return value != a.value; }
271 explicit operator bool() const = delete;
272
279 std::optional<StatusCode> from_code(uint16_t code);
280
282 uint16_t as_code();
283
302 tl::expected<std::optional<std::string>, fastly::FastlyError>
304
307
310
313
316
319
320private:
321 uint16_t value;
322};
323
324} // namespace fastly::http
325
326#endif
Definition error.h:12
static const StatusCode PRECONDITION_REQUIRED
Definition status_code.h:212
constexpr bool operator!=(StatusCode a) const
Definition status_code.h:270
static const StatusCode SERVICE_UNAVAILABLE
Definition status_code.h:239
static const StatusCode PRECONDITION_FAILED
Definition status_code.h:161
static const StatusCode REQUEST_HEADER_FIELDS_TOO_LARGE
Definition status_code.h:220
static const StatusCode FOUND
Definition status_code.h:89
static const StatusCode BAD_REQUEST
Definition status_code.h:113
static const StatusCode NON_AUTHORITATIVE_INFORMATION
Definition status_code.h:53
std::optional< StatusCode > from_code(uint16_t code)
static const StatusCode GATEWAY_TIMEOUT
Definition status_code.h:243
static const StatusCode UNAUTHORIZED
Definition status_code.h:117
static const StatusCode NOT_MODIFIED
Definition status_code.h:97
static const StatusCode LOCKED
Definition status_code.h:197
uint16_t as_code()
Returns the uint16_t corresponding to this StatusCode.
static const StatusCode CREATED
Definition status_code.h:45
static const StatusCode BAD_GATEWAY
Definition status_code.h:235
static const StatusCode VARIANT_ALSO_NEGOTIATES
Definition status_code.h:251
static const StatusCode UPGRADE_REQUIRED
Definition status_code.h:208
static const StatusCode UNPROCESSABLE_ENTITY
Definition status_code.h:193
static const StatusCode OK
Definition status_code.h:41
static const StatusCode NOT_IMPLEMENTED
Definition status_code.h:231
static const StatusCode NETWORK_AUTHENTICATION_REQUIRED
Definition status_code.h:267
static const StatusCode RANGE_NOT_SATISFIABLE
Definition status_code.h:177
static const StatusCode CONFLICT
Definition status_code.h:149
constexpr bool operator==(StatusCode a) const
Definition status_code.h:269
static const StatusCode LOOP_DETECTED
Definition status_code.h:259
static const StatusCode UNSUPPORTED_MEDIA_TYPE
Definition status_code.h:173
static const StatusCode PERMANENT_REDIRECT
Definition status_code.h:109
static const StatusCode NOT_FOUND
Definition status_code.h:129
tl::expected< std::optional< std::string >, fastly::FastlyError > canonical_reason()
bool is_success()
Check if status is within 200-299.
static const StatusCode IM_A_TEAPOT
Definition status_code.h:185
static const StatusCode LENGTH_REQUIRED
Definition status_code.h:157
static const StatusCode RESET_CONTENT
Definition status_code.h:61
static const StatusCode REQUEST_TIMEOUT
Definition status_code.h:145
bool is_informational()
Check if status is within 100-199.
static const StatusCode PARTIAL_CONTENT
Definition status_code.h:65
static const StatusCode INTERNAL_SERVER_ERROR
Definition status_code.h:227
bool is_server_error()
Check if status is within 500-599.
static const StatusCode PROXY_AUTHENTICATION_REQUIRED
Definition status_code.h:141
static const StatusCode MOVED_PERMANENTLY
Definition status_code.h:85
bool is_redirection()
Check if status is within 300-399.
static const StatusCode METHOD_NOT_ALLOWED
Definition status_code.h:133
static const StatusCode ALREADY_REPORTED
Definition status_code.h:73
static const StatusCode SWITCHING_PROTOCOLS
Definition status_code.h:33
static const StatusCode NOT_EXTENDED
Definition status_code.h:263
static const StatusCode SEE_OTHER
Definition status_code.h:93
static const StatusCode HTTP_VERSION_NOT_SUPPORTED
Definition status_code.h:247
static const StatusCode URI_TOO_LONG
Definition status_code.h:169
static const StatusCode TOO_MANY_REQUESTS
Definition status_code.h:216
static const StatusCode IM_USED
Definition status_code.h:77
static const StatusCode CONTINUE
Definition status_code.h:29
static const StatusCode MULTIPLE_CHOICES
Definition status_code.h:81
static const StatusCode TEMPORARY_REDIRECT
Definition status_code.h:105
static const StatusCode FORBIDDEN
Definition status_code.h:125
static const StatusCode MISDIRECTED_REQUEST
Definition status_code.h:189
static const StatusCode PROCESSING
Definition status_code.h:37
static const StatusCode NOT_ACCEPTABLE
Definition status_code.h:137
static const StatusCode TOO_EARLY
Definition status_code.h:204
static const StatusCode FAILED_DEPENDENCY
Definition status_code.h:201
static const StatusCode USE_PROXY
Definition status_code.h:101
static const StatusCode GONE
Definition status_code.h:153
static const StatusCode UNAVAILABLE_FOR_LEGAL_REASONS
Definition status_code.h:223
static const StatusCode PAYMENT_REQUIRED
Definition status_code.h:121
static const StatusCode NO_CONTENT
Definition status_code.h:57
static const StatusCode ACCEPTED
Definition status_code.h:49
static const StatusCode MULTI_STATUS
Definition status_code.h:69
static const StatusCode INSUFFICIENT_STORAGE
Definition status_code.h:255
bool is_client_error()
Check if status is within 400-499.
constexpr StatusCode(uint16_t code)
Creates a new StatusCode. Panics if the code is out of range.
Definition status_code.h:19
static const StatusCode EXPECTATION_FAILED
Definition status_code.h:181
static const StatusCode PAYLOAD_TOO_LARGE
Definition status_code.h:165
Definition backend.h:13