10 #ifndef __PION_HTTPRESPONSE_HEADER__
11 #define __PION_HTTPRESPONSE_HEADER__
13 #include <boost/shared_ptr.hpp>
14 #include <boost/lexical_cast.hpp>
15 #include <pion/PionConfig.hpp>
16 #include <pion/net/HTTPMessage.hpp>
17 #include <pion/net/HTTPRequest.hpp>
38 : m_status_code(RESPONSE_CODE_OK),
39 m_status_message(RESPONSE_MESSAGE_OK)
50 : m_status_code(RESPONSE_CODE_OK), m_status_message(RESPONSE_MESSAGE_OK),
51 m_request_method(request_method)
57 m_status_code(http_response.m_status_code),
58 m_status_message(http_response.m_status_message),
59 m_request_method(http_response.m_request_method)
65 : m_status_code(RESPONSE_CODE_OK),
66 m_status_message(RESPONSE_MESSAGE_OK)
75 m_status_code = RESPONSE_CODE_OK;
76 m_status_message = RESPONSE_MESSAGE_OK;
77 m_request_method.clear();
82 return (m_request_method == REQUEST_METHOD_HEAD
83 || (m_status_code >= 100 && m_status_code <= 199)
84 || m_status_code == 204 || m_status_code == 205
85 || m_status_code == 304
96 m_request_method = http_request.
getMethod();
109 m_status_message = msg;
127 inline void setCookie(
const std::string& name,
const std::string& value) {
129 addHeader(HEADER_SET_COOKIE, set_cookie_header);
140 inline void setCookie(
const std::string& name,
const std::string& value,
141 const std::string& path)
144 addHeader(HEADER_SET_COOKIE, set_cookie_header);
155 inline void setCookie(
const std::string& name,
const std::string& value,
156 const std::string& path,
const unsigned long max_age)
159 addHeader(HEADER_SET_COOKIE, set_cookie_header);
169 inline void setCookie(
const std::string& name,
const std::string& value,
170 const unsigned long max_age)
173 addHeader(HEADER_SET_COOKIE, set_cookie_header);
179 addHeader(HEADER_SET_COOKIE, set_cookie_header);
183 inline void deleteCookie(
const std::string& name,
const std::string& path) {
185 addHeader(HEADER_SET_COOKIE, set_cookie_header);
202 m_first_line += boost::lexical_cast<std::string>(m_status_code);
205 m_first_line += m_status_message;
212 unsigned int m_status_code;
215 std::string m_status_message;
218 std::string m_request_method;
223 typedef boost::shared_ptr<HTTPResponse> HTTPResponsePtr;