summaryrefslogtreecommitdiff
path: root/ACE/protocols/ace/INet/HTTP_Status.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'ACE/protocols/ace/INet/HTTP_Status.cpp')
-rw-r--r--ACE/protocols/ace/INet/HTTP_Status.cpp197
1 files changed, 197 insertions, 0 deletions
diff --git a/ACE/protocols/ace/INet/HTTP_Status.cpp b/ACE/protocols/ace/INet/HTTP_Status.cpp
new file mode 100644
index 00000000000..48917c29595
--- /dev/null
+++ b/ACE/protocols/ace/INet/HTTP_Status.cpp
@@ -0,0 +1,197 @@
+// $Id$
+
+#include "ace/INet/HTTP_Status.h"
+#include "ace/INet/HeaderBase.h"
+#include "ace/OS_NS_stdlib.h"
+
+#if !defined (__ACE_INLINE__)
+#include "ace/INet/HTTP_Status.inl"
+#endif
+
+
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace HTTP
+ {
+
+ const ACE_CString Status::HTTP_REASON_CONTINUE = "Continue";
+ const ACE_CString Status::HTTP_REASON_SWITCHING_PROTOCOLS = "Switching Protocols";
+ const ACE_CString Status::HTTP_REASON_OK = "OK";
+ const ACE_CString Status::HTTP_REASON_CREATED = "Created";
+ const ACE_CString Status::HTTP_REASON_ACCEPTED = "Accepted";
+ const ACE_CString Status::HTTP_REASON_NONAUTHORITATIVE = "Non-Authoritative Information";
+ const ACE_CString Status::HTTP_REASON_NO_CONTENT = "No Content";
+ const ACE_CString Status::HTTP_REASON_RESET_CONTENT = "Reset Content";
+ const ACE_CString Status::HTTP_REASON_PARTIAL_CONTENT = "Partial Content";
+ const ACE_CString Status::HTTP_REASON_MULTIPLE_CHOICES = "Multiple Choices";
+ const ACE_CString Status::HTTP_REASON_MOVED_PERMANENTLY = "Moved Permanently";
+ const ACE_CString Status::HTTP_REASON_FOUND = "Found";
+ const ACE_CString Status::HTTP_REASON_SEE_OTHER = "See Other";
+ const ACE_CString Status::HTTP_REASON_NOT_MODIFIED = "Not Modified";
+ const ACE_CString Status::HTTP_REASON_USEPROXY = "Use Proxy";
+ const ACE_CString Status::HTTP_REASON_TEMPORARY_REDIRECT = "Temporary Redirect";
+ const ACE_CString Status::HTTP_REASON_BAD_REQUEST = "Bad Request";
+ const ACE_CString Status::HTTP_REASON_UNAUTHORIZED = "Unauthorized";
+ const ACE_CString Status::HTTP_REASON_PAYMENT_REQUIRED = "Payment Required";
+ const ACE_CString Status::HTTP_REASON_FORBIDDEN = "Forbidden";
+ const ACE_CString Status::HTTP_REASON_NOT_FOUND = "Not Found";
+ const ACE_CString Status::HTTP_REASON_METHOD_NOT_ALLOWED = "Method Not Allowed";
+ const ACE_CString Status::HTTP_REASON_NOT_ACCEPTABLE = "Not Acceptable";
+ const ACE_CString Status::HTTP_REASON_PROXY_AUTHENTICATION_REQUIRED = "Proxy Authentication Required";
+ const ACE_CString Status::HTTP_REASON_REQUEST_TIMEOUT = "Request Time-out";
+ const ACE_CString Status::HTTP_REASON_CONFLICT = "Conflict";
+ const ACE_CString Status::HTTP_REASON_GONE = "Gone";
+ const ACE_CString Status::HTTP_REASON_LENGTH_REQUIRED = "Length Required";
+ const ACE_CString Status::HTTP_REASON_PRECONDITION_FAILED = "Precondition Failed";
+ const ACE_CString Status::HTTP_REASON_REQUESTENTITYTOOLARGE = "Request Entity Too Large";
+ const ACE_CString Status::HTTP_REASON_REQUESTURITOOLONG = "Request-URI Too Large";
+ const ACE_CString Status::HTTP_REASON_UNSUPPORTEDMEDIATYPE = "Unsupported Media Type";
+ const ACE_CString Status::HTTP_REASON_REQUESTED_RANGE_NOT_SATISFIABLE = "Requested Range Not Satisfiable";
+ const ACE_CString Status::HTTP_REASON_EXPECTATION_FAILED = "Expectation Failed";
+ const ACE_CString Status::HTTP_REASON_INTERNAL_SERVER_ERROR = "Internal Server Error";
+ const ACE_CString Status::HTTP_REASON_NOT_IMPLEMENTED = "Not Implemented";
+ const ACE_CString Status::HTTP_REASON_BAD_GATEWAY = "Bad Gateway";
+ const ACE_CString Status::HTTP_REASON_SERVICE_UNAVAILABLE = "Service Unavailable";
+ const ACE_CString Status::HTTP_REASON_GATEWAY_TIMEOUT = "Gateway Time-out";
+ const ACE_CString Status::HTTP_REASON_VERSION_NOT_SUPPORTED = "HTTP Version not supported";
+ const ACE_CString Status::HTTP_REASON_UNKNOWN = "???";
+
+ Status::Status()
+ : code_ (HTTP_NONE)
+ {
+ }
+
+ Status::Status(Code status)
+ : code_ (status)
+ {
+ reason_ = get_reason(this->code_);
+ }
+
+ Status::Status(Code status, const ACE_CString& reason)
+ : code_ (status), reason_ (reason)
+ {
+ }
+
+ Status::Status(const Status& status)
+ {
+ *this = status;
+ }
+
+ Status& Status::operator =(const Status& status)
+ {
+ this->code_ = status.get_status ();
+ this->reason_ = status.get_reason ();
+ return *this;
+ }
+
+ void Status::set_status(const ACE_CString& status)
+ {
+ Code istat = (Code)ACE_OS::atoi (status.c_str ());
+ if (istat == HTTP_NONE || get_reason (istat) == HTTP_REASON_UNKNOWN)
+ {
+ this->code_ = INVALID;
+ }
+ else
+ {
+ this->code_ = istat;
+ }
+ }
+
+ const ACE_CString& Status::get_reason(Code status)
+ {
+ switch (status)
+ {
+ case HTTP_NONE:
+ return ACE::INet::HeaderBase::EMPTY;
+ case HTTP_CONTINUE:
+ return HTTP_REASON_CONTINUE;
+ case HTTP_SWITCHING_PROTOCOLS:
+ return HTTP_REASON_SWITCHING_PROTOCOLS;
+ case HTTP_OK:
+ return HTTP_REASON_OK;
+ case HTTP_CREATED:
+ return HTTP_REASON_CREATED;
+ case HTTP_ACCEPTED:
+ return HTTP_REASON_ACCEPTED;
+ case HTTP_NONAUTHORITATIVE:
+ return HTTP_REASON_NONAUTHORITATIVE;
+ case HTTP_NO_CONTENT:
+ return HTTP_REASON_NO_CONTENT;
+ case HTTP_RESET_CONTENT:
+ return HTTP_REASON_RESET_CONTENT;
+ case HTTP_PARTIAL_CONTENT:
+ return HTTP_REASON_PARTIAL_CONTENT;
+ case HTTP_MULTIPLE_CHOICES:
+ return HTTP_REASON_MULTIPLE_CHOICES;
+ case HTTP_MOVED_PERMANENTLY:
+ return HTTP_REASON_MOVED_PERMANENTLY;
+ case HTTP_FOUND:
+ return HTTP_REASON_FOUND;
+ case HTTP_SEE_OTHER:
+ return HTTP_REASON_SEE_OTHER;
+ case HTTP_NOT_MODIFIED:
+ return HTTP_REASON_NOT_MODIFIED;
+ case HTTP_USEPROXY:
+ return HTTP_REASON_USEPROXY;
+ case HTTP_TEMPORARY_REDIRECT:
+ return HTTP_REASON_TEMPORARY_REDIRECT;
+ case HTTP_BAD_REQUEST:
+ return HTTP_REASON_BAD_REQUEST;
+ case HTTP_UNAUTHORIZED:
+ return HTTP_REASON_UNAUTHORIZED;
+ case HTTP_PAYMENT_REQUIRED:
+ return HTTP_REASON_PAYMENT_REQUIRED;
+ case HTTP_FORBIDDEN:
+ return HTTP_REASON_FORBIDDEN;
+ case HTTP_NOT_FOUND:
+ return HTTP_REASON_NOT_FOUND;
+ case HTTP_METHOD_NOT_ALLOWED:
+ return HTTP_REASON_METHOD_NOT_ALLOWED;
+ case HTTP_NOT_ACCEPTABLE:
+ return HTTP_REASON_NOT_ACCEPTABLE;
+ case HTTP_PROXY_AUTHENTICATION_REQUIRED:
+ return HTTP_REASON_PROXY_AUTHENTICATION_REQUIRED;
+ case HTTP_REQUEST_TIMEOUT:
+ return HTTP_REASON_REQUEST_TIMEOUT;
+ case HTTP_CONFLICT:
+ return HTTP_REASON_CONFLICT;
+ case HTTP_GONE:
+ return HTTP_REASON_GONE;
+ case HTTP_LENGTH_REQUIRED:
+ return HTTP_REASON_LENGTH_REQUIRED;
+ case HTTP_PRECONDITION_FAILED:
+ return HTTP_REASON_PRECONDITION_FAILED;
+ case HTTP_REQUESTENTITYTOOLARGE:
+ return HTTP_REASON_REQUESTENTITYTOOLARGE;
+ case HTTP_REQUESTURITOOLONG:
+ return HTTP_REASON_REQUESTURITOOLONG;
+ case HTTP_UNSUPPORTEDMEDIATYPE:
+ return HTTP_REASON_UNSUPPORTEDMEDIATYPE;
+ case HTTP_REQUESTED_RANGE_NOT_SATISFIABLE:
+ return HTTP_REASON_REQUESTED_RANGE_NOT_SATISFIABLE;
+ case HTTP_EXPECTATION_FAILED:
+ return HTTP_REASON_EXPECTATION_FAILED;
+ case HTTP_INTERNAL_SERVER_ERROR:
+ return HTTP_REASON_INTERNAL_SERVER_ERROR;
+ case HTTP_NOT_IMPLEMENTED:
+ return HTTP_REASON_NOT_IMPLEMENTED;
+ case HTTP_BAD_GATEWAY:
+ return HTTP_REASON_BAD_GATEWAY;
+ case HTTP_SERVICE_UNAVAILABLE:
+ return HTTP_REASON_SERVICE_UNAVAILABLE;
+ case HTTP_GATEWAY_TIMEOUT:
+ return HTTP_REASON_GATEWAY_TIMEOUT;
+ case HTTP_VERSION_NOT_SUPPORTED:
+ return HTTP_REASON_VERSION_NOT_SUPPORTED;
+ default:
+ return HTTP_REASON_UNKNOWN;
+ }
+ }
+
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL