Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef ACE_HTTP_STATUS_H
00010 #define ACE_HTTP_STATUS_H
00011
00012 #include "ace/pre.h"
00013
00014 #include "ace/config-all.h"
00015
00016 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00017 # pragma once
00018 #endif
00019
00020 #include "ace/SString.h"
00021 #include "ace/INet/INet_Export.h"
00022
00023 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
00024
00025 namespace ACE
00026 {
00027 namespace HTTP
00028 {
00029
00030
00031
00032
00033
00034
00035 class ACE_INET_Export Status
00036 {
00037 public:
00038 enum Code
00039 {
00040 INVALID = -1,
00041 HTTP_NONE = 0,
00042 HTTP_CONTINUE = 100,
00043 HTTP_SWITCHING_PROTOCOLS = 101,
00044 HTTP_OK = 200,
00045 HTTP_CREATED = 201,
00046 HTTP_ACCEPTED = 202,
00047 HTTP_NONAUTHORITATIVE = 203,
00048 HTTP_NO_CONTENT = 204,
00049 HTTP_RESET_CONTENT = 205,
00050 HTTP_PARTIAL_CONTENT = 206,
00051 HTTP_MULTIPLE_CHOICES = 300,
00052 HTTP_MOVED_PERMANENTLY = 301,
00053 HTTP_FOUND = 302,
00054 HTTP_SEE_OTHER = 303,
00055 HTTP_NOT_MODIFIED = 304,
00056 HTTP_USEPROXY = 305,
00057
00058 HTTP_TEMPORARY_REDIRECT = 307,
00059 HTTP_BAD_REQUEST = 400,
00060 HTTP_UNAUTHORIZED = 401,
00061 HTTP_PAYMENT_REQUIRED = 402,
00062 HTTP_FORBIDDEN = 403,
00063 HTTP_NOT_FOUND = 404,
00064 HTTP_METHOD_NOT_ALLOWED = 405,
00065 HTTP_NOT_ACCEPTABLE = 406,
00066 HTTP_PROXY_AUTHENTICATION_REQUIRED = 407,
00067 HTTP_REQUEST_TIMEOUT = 408,
00068 HTTP_CONFLICT = 409,
00069 HTTP_GONE = 410,
00070 HTTP_LENGTH_REQUIRED = 411,
00071 HTTP_PRECONDITION_FAILED = 412,
00072 HTTP_REQUESTENTITYTOOLARGE = 413,
00073 HTTP_REQUESTURITOOLONG = 414,
00074 HTTP_UNSUPPORTEDMEDIATYPE = 415,
00075 HTTP_REQUESTED_RANGE_NOT_SATISFIABLE = 416,
00076 HTTP_EXPECTATION_FAILED = 417,
00077 HTTP_INTERNAL_SERVER_ERROR = 500,
00078 HTTP_NOT_IMPLEMENTED = 501,
00079 HTTP_BAD_GATEWAY = 502,
00080 HTTP_SERVICE_UNAVAILABLE = 503,
00081 HTTP_GATEWAY_TIMEOUT = 504,
00082 HTTP_VERSION_NOT_SUPPORTED = 505
00083 };
00084
00085
00086 Status();
00087
00088
00089 Status(Code status);
00090
00091
00092 Status(Code status, const ACE_CString& reason);
00093
00094
00095 Status(const Status& status);
00096
00097
00098 Status& operator =(const Status& status);
00099
00100
00101 void set_status(Code status);
00102
00103
00104
00105 void set_status(const ACE_CString& status);
00106
00107
00108 Code get_status() const;
00109
00110
00111 void set_reason(const ACE_CString& reason);
00112
00113
00114 const ACE_CString& get_reason() const;
00115
00116
00117 void set_status_and_reason(Code status);
00118
00119
00120 bool is_valid () const;
00121
00122
00123 bool is_ok () const;
00124
00125
00126 operator bool () const;
00127
00128
00129 bool operator !() const;
00130
00131
00132 static const ACE_CString& get_reason(Code status);
00133
00134 static const ACE_CString HTTP_REASON_CONTINUE;
00135 static const ACE_CString HTTP_REASON_SWITCHING_PROTOCOLS;
00136 static const ACE_CString HTTP_REASON_OK;
00137 static const ACE_CString HTTP_REASON_CREATED;
00138 static const ACE_CString HTTP_REASON_ACCEPTED;
00139 static const ACE_CString HTTP_REASON_NONAUTHORITATIVE;
00140 static const ACE_CString HTTP_REASON_NO_CONTENT;
00141 static const ACE_CString HTTP_REASON_RESET_CONTENT;
00142 static const ACE_CString HTTP_REASON_PARTIAL_CONTENT;
00143 static const ACE_CString HTTP_REASON_MULTIPLE_CHOICES;
00144 static const ACE_CString HTTP_REASON_MOVED_PERMANENTLY;
00145 static const ACE_CString HTTP_REASON_FOUND;
00146 static const ACE_CString HTTP_REASON_SEE_OTHER;
00147 static const ACE_CString HTTP_REASON_NOT_MODIFIED;
00148 static const ACE_CString HTTP_REASON_USEPROXY;
00149 static const ACE_CString HTTP_REASON_TEMPORARY_REDIRECT;
00150 static const ACE_CString HTTP_REASON_BAD_REQUEST;
00151 static const ACE_CString HTTP_REASON_UNAUTHORIZED;
00152 static const ACE_CString HTTP_REASON_PAYMENT_REQUIRED;
00153 static const ACE_CString HTTP_REASON_FORBIDDEN;
00154 static const ACE_CString HTTP_REASON_NOT_FOUND;
00155 static const ACE_CString HTTP_REASON_METHOD_NOT_ALLOWED;
00156 static const ACE_CString HTTP_REASON_NOT_ACCEPTABLE;
00157 static const ACE_CString HTTP_REASON_PROXY_AUTHENTICATION_REQUIRED;
00158 static const ACE_CString HTTP_REASON_REQUEST_TIMEOUT;
00159 static const ACE_CString HTTP_REASON_CONFLICT;
00160 static const ACE_CString HTTP_REASON_GONE;
00161 static const ACE_CString HTTP_REASON_LENGTH_REQUIRED;
00162 static const ACE_CString HTTP_REASON_PRECONDITION_FAILED;
00163 static const ACE_CString HTTP_REASON_REQUESTENTITYTOOLARGE;
00164 static const ACE_CString HTTP_REASON_REQUESTURITOOLONG;
00165 static const ACE_CString HTTP_REASON_UNSUPPORTEDMEDIATYPE;
00166 static const ACE_CString HTTP_REASON_REQUESTED_RANGE_NOT_SATISFIABLE;
00167 static const ACE_CString HTTP_REASON_EXPECTATION_FAILED;
00168 static const ACE_CString HTTP_REASON_INTERNAL_SERVER_ERROR;
00169 static const ACE_CString HTTP_REASON_NOT_IMPLEMENTED;
00170 static const ACE_CString HTTP_REASON_BAD_GATEWAY;
00171 static const ACE_CString HTTP_REASON_SERVICE_UNAVAILABLE;
00172 static const ACE_CString HTTP_REASON_GATEWAY_TIMEOUT;
00173 static const ACE_CString HTTP_REASON_VERSION_NOT_SUPPORTED;
00174 static const ACE_CString HTTP_REASON_UNKNOWN;
00175
00176 private:
00177 Code code_;
00178 ACE_CString reason_;
00179 };
00180 }
00181 }
00182
00183 ACE_END_VERSIONED_NAMESPACE_DECL
00184
00185 #if defined (__ACE_INLINE__)
00186 #include "ace/INet/HTTP_Status.inl"
00187 #endif
00188
00189 #include "ace/post.h"
00190 #endif