1 #include "ace/INet/HTTP_Status.h"
2 #include "ace/INet/HeaderBase.h"
3 #include "ace/OS_NS_stdlib.h"
5 #if !defined (__ACE_INLINE__)
6 #include "ace/INet/HTTP_Status.inl"
10 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
16 const ACE_CString
Status::HTTP_REASON_CONTINUE
= "Continue";
17 const ACE_CString
Status::HTTP_REASON_SWITCHING_PROTOCOLS
= "Switching Protocols";
18 const ACE_CString
Status::HTTP_REASON_OK
= "OK";
19 const ACE_CString
Status::HTTP_REASON_CREATED
= "Created";
20 const ACE_CString
Status::HTTP_REASON_ACCEPTED
= "Accepted";
21 const ACE_CString
Status::HTTP_REASON_NONAUTHORITATIVE
= "Non-Authoritative Information";
22 const ACE_CString
Status::HTTP_REASON_NO_CONTENT
= "No Content";
23 const ACE_CString
Status::HTTP_REASON_RESET_CONTENT
= "Reset Content";
24 const ACE_CString
Status::HTTP_REASON_PARTIAL_CONTENT
= "Partial Content";
25 const ACE_CString
Status::HTTP_REASON_MULTIPLE_CHOICES
= "Multiple Choices";
26 const ACE_CString
Status::HTTP_REASON_MOVED_PERMANENTLY
= "Moved Permanently";
27 const ACE_CString
Status::HTTP_REASON_FOUND
= "Found";
28 const ACE_CString
Status::HTTP_REASON_SEE_OTHER
= "See Other";
29 const ACE_CString
Status::HTTP_REASON_NOT_MODIFIED
= "Not Modified";
30 const ACE_CString
Status::HTTP_REASON_USEPROXY
= "Use Proxy";
31 const ACE_CString
Status::HTTP_REASON_TEMPORARY_REDIRECT
= "Temporary Redirect";
32 const ACE_CString
Status::HTTP_REASON_BAD_REQUEST
= "Bad Request";
33 const ACE_CString
Status::HTTP_REASON_UNAUTHORIZED
= "Unauthorized";
34 const ACE_CString
Status::HTTP_REASON_PAYMENT_REQUIRED
= "Payment Required";
35 const ACE_CString
Status::HTTP_REASON_FORBIDDEN
= "Forbidden";
36 const ACE_CString
Status::HTTP_REASON_NOT_FOUND
= "Not Found";
37 const ACE_CString
Status::HTTP_REASON_METHOD_NOT_ALLOWED
= "Method Not Allowed";
38 const ACE_CString
Status::HTTP_REASON_NOT_ACCEPTABLE
= "Not Acceptable";
39 const ACE_CString
Status::HTTP_REASON_PROXY_AUTHENTICATION_REQUIRED
= "Proxy Authentication Required";
40 const ACE_CString
Status::HTTP_REASON_REQUEST_TIMEOUT
= "Request Time-out";
41 const ACE_CString
Status::HTTP_REASON_CONFLICT
= "Conflict";
42 const ACE_CString
Status::HTTP_REASON_GONE
= "Gone";
43 const ACE_CString
Status::HTTP_REASON_LENGTH_REQUIRED
= "Length Required";
44 const ACE_CString
Status::HTTP_REASON_PRECONDITION_FAILED
= "Precondition Failed";
45 const ACE_CString
Status::HTTP_REASON_REQUESTENTITYTOOLARGE
= "Request Entity Too Large";
46 const ACE_CString
Status::HTTP_REASON_REQUESTURITOOLONG
= "Request-URI Too Large";
47 const ACE_CString
Status::HTTP_REASON_UNSUPPORTEDMEDIATYPE
= "Unsupported Media Type";
48 const ACE_CString
Status::HTTP_REASON_REQUESTED_RANGE_NOT_SATISFIABLE
= "Requested Range Not Satisfiable";
49 const ACE_CString
Status::HTTP_REASON_EXPECTATION_FAILED
= "Expectation Failed";
50 const ACE_CString
Status::HTTP_REASON_INTERNAL_SERVER_ERROR
= "Internal Server Error";
51 const ACE_CString
Status::HTTP_REASON_NOT_IMPLEMENTED
= "Not Implemented";
52 const ACE_CString
Status::HTTP_REASON_BAD_GATEWAY
= "Bad Gateway";
53 const ACE_CString
Status::HTTP_REASON_SERVICE_UNAVAILABLE
= "Service Unavailable";
54 const ACE_CString
Status::HTTP_REASON_GATEWAY_TIMEOUT
= "Gateway Time-out";
55 const ACE_CString
Status::HTTP_REASON_VERSION_NOT_SUPPORTED
= "HTTP Version not supported";
56 const ACE_CString
Status::HTTP_REASON_UNKNOWN
= "???";
63 Status::Status(Code status
)
66 reason_
= get_reason(this->code_
);
69 Status::Status(Code status
, const ACE_CString
& reason
)
70 : code_ (status
), reason_ (reason
)
74 Status::Status(const Status
& status
)
79 Status
& Status::operator =(const Status
& status
)
81 this->code_
= status
.get_status ();
82 this->reason_
= status
.get_reason ();
86 void Status::set_status(const ACE_CString
& status
)
88 Code istat
= (Code
)ACE_OS::atoi (status
.c_str ());
89 if (istat
== HTTP_NONE
|| get_reason (istat
) == HTTP_REASON_UNKNOWN
)
91 this->code_
= INVALID
;
99 const ACE_CString
& Status::get_reason(Code status
)
104 return ACE::INet::HeaderBase::EMPTY
;
106 return HTTP_REASON_CONTINUE
;
107 case HTTP_SWITCHING_PROTOCOLS
:
108 return HTTP_REASON_SWITCHING_PROTOCOLS
;
110 return HTTP_REASON_OK
;
112 return HTTP_REASON_CREATED
;
114 return HTTP_REASON_ACCEPTED
;
115 case HTTP_NONAUTHORITATIVE
:
116 return HTTP_REASON_NONAUTHORITATIVE
;
117 case HTTP_NO_CONTENT
:
118 return HTTP_REASON_NO_CONTENT
;
119 case HTTP_RESET_CONTENT
:
120 return HTTP_REASON_RESET_CONTENT
;
121 case HTTP_PARTIAL_CONTENT
:
122 return HTTP_REASON_PARTIAL_CONTENT
;
123 case HTTP_MULTIPLE_CHOICES
:
124 return HTTP_REASON_MULTIPLE_CHOICES
;
125 case HTTP_MOVED_PERMANENTLY
:
126 return HTTP_REASON_MOVED_PERMANENTLY
;
128 return HTTP_REASON_FOUND
;
130 return HTTP_REASON_SEE_OTHER
;
131 case HTTP_NOT_MODIFIED
:
132 return HTTP_REASON_NOT_MODIFIED
;
134 return HTTP_REASON_USEPROXY
;
135 case HTTP_TEMPORARY_REDIRECT
:
136 return HTTP_REASON_TEMPORARY_REDIRECT
;
137 case HTTP_BAD_REQUEST
:
138 return HTTP_REASON_BAD_REQUEST
;
139 case HTTP_UNAUTHORIZED
:
140 return HTTP_REASON_UNAUTHORIZED
;
141 case HTTP_PAYMENT_REQUIRED
:
142 return HTTP_REASON_PAYMENT_REQUIRED
;
144 return HTTP_REASON_FORBIDDEN
;
146 return HTTP_REASON_NOT_FOUND
;
147 case HTTP_METHOD_NOT_ALLOWED
:
148 return HTTP_REASON_METHOD_NOT_ALLOWED
;
149 case HTTP_NOT_ACCEPTABLE
:
150 return HTTP_REASON_NOT_ACCEPTABLE
;
151 case HTTP_PROXY_AUTHENTICATION_REQUIRED
:
152 return HTTP_REASON_PROXY_AUTHENTICATION_REQUIRED
;
153 case HTTP_REQUEST_TIMEOUT
:
154 return HTTP_REASON_REQUEST_TIMEOUT
;
156 return HTTP_REASON_CONFLICT
;
158 return HTTP_REASON_GONE
;
159 case HTTP_LENGTH_REQUIRED
:
160 return HTTP_REASON_LENGTH_REQUIRED
;
161 case HTTP_PRECONDITION_FAILED
:
162 return HTTP_REASON_PRECONDITION_FAILED
;
163 case HTTP_REQUESTENTITYTOOLARGE
:
164 return HTTP_REASON_REQUESTENTITYTOOLARGE
;
165 case HTTP_REQUESTURITOOLONG
:
166 return HTTP_REASON_REQUESTURITOOLONG
;
167 case HTTP_UNSUPPORTEDMEDIATYPE
:
168 return HTTP_REASON_UNSUPPORTEDMEDIATYPE
;
169 case HTTP_REQUESTED_RANGE_NOT_SATISFIABLE
:
170 return HTTP_REASON_REQUESTED_RANGE_NOT_SATISFIABLE
;
171 case HTTP_EXPECTATION_FAILED
:
172 return HTTP_REASON_EXPECTATION_FAILED
;
173 case HTTP_INTERNAL_SERVER_ERROR
:
174 return HTTP_REASON_INTERNAL_SERVER_ERROR
;
175 case HTTP_NOT_IMPLEMENTED
:
176 return HTTP_REASON_NOT_IMPLEMENTED
;
177 case HTTP_BAD_GATEWAY
:
178 return HTTP_REASON_BAD_GATEWAY
;
179 case HTTP_SERVICE_UNAVAILABLE
:
180 return HTTP_REASON_SERVICE_UNAVAILABLE
;
181 case HTTP_GATEWAY_TIMEOUT
:
182 return HTTP_REASON_GATEWAY_TIMEOUT
;
183 case HTTP_VERSION_NOT_SUPPORTED
:
184 return HTTP_REASON_VERSION_NOT_SUPPORTED
;
186 return HTTP_REASON_UNKNOWN
;
193 ACE_END_VERSIONED_NAMESPACE_DECL