4 * @author Martin Corino <mcorino@remedy.nl>
7 #ifndef ACE_HTTP_STATUS_H
8 #define ACE_HTTP_STATUS_H
10 #include /**/ "ace/pre.h"
12 #include /**/ "ace/config-all.h"
14 #if !defined (ACE_LACKS_PRAGMA_ONCE)
16 #endif /* ACE_LACKS_PRAGMA_ONCE */
18 #include "ace/SString.h"
19 #include "ace/INet/INet_Export.h"
21 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
28 * @class ACE_HTTP_Status
30 * @brief Encapsulates HTTP status codes and reasons.
33 class ACE_INET_Export Status
41 HTTP_SWITCHING_PROTOCOLS
= 101,
45 HTTP_NONAUTHORITATIVE
= 203,
46 HTTP_NO_CONTENT
= 204,
47 HTTP_RESET_CONTENT
= 205,
48 HTTP_PARTIAL_CONTENT
= 206,
49 HTTP_MULTIPLE_CHOICES
= 300,
50 HTTP_MOVED_PERMANENTLY
= 301,
53 HTTP_NOT_MODIFIED
= 304,
56 HTTP_TEMPORARY_REDIRECT
= 307,
57 HTTP_BAD_REQUEST
= 400,
58 HTTP_UNAUTHORIZED
= 401,
59 HTTP_PAYMENT_REQUIRED
= 402,
62 HTTP_METHOD_NOT_ALLOWED
= 405,
63 HTTP_NOT_ACCEPTABLE
= 406,
64 HTTP_PROXY_AUTHENTICATION_REQUIRED
= 407,
65 HTTP_REQUEST_TIMEOUT
= 408,
68 HTTP_LENGTH_REQUIRED
= 411,
69 HTTP_PRECONDITION_FAILED
= 412,
70 HTTP_REQUESTENTITYTOOLARGE
= 413,
71 HTTP_REQUESTURITOOLONG
= 414,
72 HTTP_UNSUPPORTEDMEDIATYPE
= 415,
73 HTTP_REQUESTED_RANGE_NOT_SATISFIABLE
= 416,
74 HTTP_EXPECTATION_FAILED
= 417,
75 HTTP_INTERNAL_SERVER_ERROR
= 500,
76 HTTP_NOT_IMPLEMENTED
= 501,
77 HTTP_BAD_GATEWAY
= 502,
78 HTTP_SERVICE_UNAVAILABLE
= 503,
79 HTTP_GATEWAY_TIMEOUT
= 504,
80 HTTP_VERSION_NOT_SUPPORTED
= 505
83 /// Constructor; sets value to OK
86 /// Constructor; sets corresponding reason
90 Status(Code status
, const ACE_CString
& reason
);
93 Status(const Status
& status
);
96 Status
& operator =(const Status
& status
);
98 /// Set the status code.
99 void set_status(Code status
);
101 /// Set the status code.
102 /// String must contain valid numeric code.
103 void set_status(const ACE_CString
& status
);
105 /// Return the status code.
106 Code
get_status() const;
108 /// Set the reason phrase.
109 void set_reason(const ACE_CString
& reason
);
111 /// Return the reason phrase.
112 const ACE_CString
& get_reason() const;
114 /// Set the status code and corresponding reason phrase.
115 void set_status_and_reason(Code status
);
117 /// Return true if status code != INVALID
118 bool is_valid () const;
120 /// Return true if status code == OK
123 /// Return true in case of a *valid* HTTP status
124 operator bool () const;
126 /// Return true if status code == INVALID
127 bool operator !() const;
129 /// Returns an appropriate reason phrase
130 static const ACE_CString
& get_reason(Code status
);
132 static const ACE_CString HTTP_REASON_CONTINUE
;
133 static const ACE_CString HTTP_REASON_SWITCHING_PROTOCOLS
;
134 static const ACE_CString HTTP_REASON_OK
;
135 static const ACE_CString HTTP_REASON_CREATED
;
136 static const ACE_CString HTTP_REASON_ACCEPTED
;
137 static const ACE_CString HTTP_REASON_NONAUTHORITATIVE
;
138 static const ACE_CString HTTP_REASON_NO_CONTENT
;
139 static const ACE_CString HTTP_REASON_RESET_CONTENT
;
140 static const ACE_CString HTTP_REASON_PARTIAL_CONTENT
;
141 static const ACE_CString HTTP_REASON_MULTIPLE_CHOICES
;
142 static const ACE_CString HTTP_REASON_MOVED_PERMANENTLY
;
143 static const ACE_CString HTTP_REASON_FOUND
;
144 static const ACE_CString HTTP_REASON_SEE_OTHER
;
145 static const ACE_CString HTTP_REASON_NOT_MODIFIED
;
146 static const ACE_CString HTTP_REASON_USEPROXY
;
147 static const ACE_CString HTTP_REASON_TEMPORARY_REDIRECT
;
148 static const ACE_CString HTTP_REASON_BAD_REQUEST
;
149 static const ACE_CString HTTP_REASON_UNAUTHORIZED
;
150 static const ACE_CString HTTP_REASON_PAYMENT_REQUIRED
;
151 static const ACE_CString HTTP_REASON_FORBIDDEN
;
152 static const ACE_CString HTTP_REASON_NOT_FOUND
;
153 static const ACE_CString HTTP_REASON_METHOD_NOT_ALLOWED
;
154 static const ACE_CString HTTP_REASON_NOT_ACCEPTABLE
;
155 static const ACE_CString HTTP_REASON_PROXY_AUTHENTICATION_REQUIRED
;
156 static const ACE_CString HTTP_REASON_REQUEST_TIMEOUT
;
157 static const ACE_CString HTTP_REASON_CONFLICT
;
158 static const ACE_CString HTTP_REASON_GONE
;
159 static const ACE_CString HTTP_REASON_LENGTH_REQUIRED
;
160 static const ACE_CString HTTP_REASON_PRECONDITION_FAILED
;
161 static const ACE_CString HTTP_REASON_REQUESTENTITYTOOLARGE
;
162 static const ACE_CString HTTP_REASON_REQUESTURITOOLONG
;
163 static const ACE_CString HTTP_REASON_UNSUPPORTEDMEDIATYPE
;
164 static const ACE_CString HTTP_REASON_REQUESTED_RANGE_NOT_SATISFIABLE
;
165 static const ACE_CString HTTP_REASON_EXPECTATION_FAILED
;
166 static const ACE_CString HTTP_REASON_INTERNAL_SERVER_ERROR
;
167 static const ACE_CString HTTP_REASON_NOT_IMPLEMENTED
;
168 static const ACE_CString HTTP_REASON_BAD_GATEWAY
;
169 static const ACE_CString HTTP_REASON_SERVICE_UNAVAILABLE
;
170 static const ACE_CString HTTP_REASON_GATEWAY_TIMEOUT
;
171 static const ACE_CString HTTP_REASON_VERSION_NOT_SUPPORTED
;
172 static const ACE_CString HTTP_REASON_UNKNOWN
;
181 ACE_END_VERSIONED_NAMESPACE_DECL
183 #if defined (__ACE_INLINE__)
184 #include "ace/INet/HTTP_Status.inl"
187 #include /**/ "ace/post.h"
188 #endif /* ACE_HTTP_STATUS_H */