pion::http::response Class Reference

`#include <response.hpp>`

Inherits pion::http::message.

## Public Member Functions

| response (const http::request &http_request_ptr)
| response (const std::string &request_method)
| response (const response &http_response)
| copy constructor
| response (void)
virtual | ~response ()
| virtual destructor
virtual void | clear (void)
| clears all response data
virtual bool | is_content_length_implied (void) const
| the content length may be implied for certain types of responses
void | update_request_info (const http::request &http_request)
void | set_status_code (unsigned int n)
| sets the HTTP response status code
void | set_status_message (const std::string &msg)
| sets the HTTP response status message
unsigned int | get_status_code (void) const
| returns the HTTP response status code
const std::string & | get_status_message (void) const
| returns the HTTP response status message
void | set_cookie (const std::string &name, const std::string &value)
void | set_cookie (const std::string &name, const std::string &value, const std::string &path)
void | set_cookie (const std::string &name, const std::string &value, const std::string &path, const unsigned long max_age)
void | set_cookie (const std::string &name, const std::string &value, const unsigned long max_age)
void | delete_cookie (const std::string &name)
| deletes cookie called name by adding a Set-Cookie header (cookie has no path)
void | delete_cookie (const std::string &name, const std::string &path)
| deletes cookie called name by adding a Set-Cookie header (cookie has a path)
void | set_last_modified (const unsigned long t)
| sets the time that the response was last modified (Last-Modified)
Public Member Functions inherited from pion::http::message
| message (void)
| constructs a new HTTP message object
| message (const message &http_msg)
| copy constructor
message & | operator= (const message &http_msg)
| assignment operator
virtual | ~message ()
| virtual destructor
bool | is_valid (void) const
| returns true if the message is valid
bool | get_chunks_supported (void) const
| returns true if chunked transfer encodings are supported
boost::asio::ip::address & | get_remote_ip (void)
| returns IP address of the remote endpoint
boost::uint16_t | get_version_major (void) const
| returns the major HTTP version number
boost::uint16_t | get_version_minor (void) const
| returns the minor HTTP version number
std::string | get_version_string (void) const
| returns a string representation of the HTTP version (i.e. "HTTP/1.1")
size_t | get_content_length (void) const
| returns the length of the payload content (in bytes)
bool | is_chunked (void) const
| returns true if the message content is chunked
bool | is_content_buffer_allocated () const
| returns true if buffer for content is allocated
std::size_t | get_content_buffer_size () const
| returns size of allocated buffer
char * | get_content (void)
| returns a pointer to the payload content, or empty string if there is none
const char * | get_content (void) const
| returns a const pointer to the payload content, or empty string if there is none
chunk_cache_t & | get_chunk_cache (void)
| returns a reference to the chunk cache
const std::string & | get_header (const std::string &key) const
| returns a value for the header if any are defined; otherwise, an empty string
ihash_multimap & | get_headers (void)
| returns a reference to the HTTP headers
bool | has_header (const std::string &key) const
| returns true if at least one value for the header is defined
const std::string & | get_cookie (const std::string &key) const
ihash_multimap & | get_cookies (void)
| returns the cookie parameters
bool | has_cookie (const std::string &key) const
void | add_cookie (const std::string &key, const std::string &value)
void | change_cookie (const std::string &key, const std::string &value)
void | delete_cookie (const std::string &key)
const std::string & | get_first_line (void) const
| returns a string containing the first line for the HTTP message
bool | has_missing_packets () const
| true if there were missing packets
void | set_missing_packets (bool newVal)
| set to true when missing packets detected
bool | has_data_after_missing_packets () const
| true if more data seen after the missing packets
void | set_data_after_missing_packet (bool newVal)
void | set_is_valid (bool b=true)
| sets whether or not the message is valid
void | set_chunks_supported (bool b)
| set to true if chunked transfer encodings are supported
void | set_remote_ip (const boost::asio::ip::address &ip)
| sets IP address of the remote endpoint
void | set_version_major (const boost::uint16_t n)
| sets the major HTTP version number
void | set_version_minor (const boost::uint16_t n)
| sets the minor HTTP version number
void | set_content_length (size_t n)
| sets the length of the payload content (in bytes)
void | set_do_not_send_content_length (void)
| if called, the content-length will not be sent in the HTTP headers
data_status_t | get_status () const
| return the data receival status
void | set_status (data_status_t newVal)
void | update_content_length_using_header (void)
| sets the length of the payload content using the Content-Length header
void | update_transfer_encoding_using_header (void)
| sets the transfer coding using the Transfer-Encoding header
char * | create_content_buffer (void)
void | set_content (const std::string &content)
| resets payload content to match the value of a string
void | clear_content (void)
| clears payload content buffer
void | set_content_type (const std::string &type)
| sets the content type for the message payload
void | add_header (const std::string &key, const std::string &value)
| adds a value for the HTTP header named key
void | change_header (const std::string &key, const std::string &value)
| changes the value for the HTTP header named key
void | delete_header (const std::string &key)
| removes all values for the HTTP header named key
bool | check_keep_alive (void) const
| returns true if the HTTP connection may be kept alive
void | prepare_buffers_for_send (write_buffers_t &write_buffers, const bool keep_alive, const bool using_chunks)
std::size_t | send (tcp::connection &tcp_conn, boost::system::error_code &ec, bool headers_only=false)
std::size_t | receive (tcp::connection &tcp_conn, boost::system::error_code &ec, parser &http_parser)
std::size_t | receive (tcp::connection &tcp_conn, boost::system::error_code &ec, bool headers_only=false, std::size_t max_content_length=static_cast< size_t >(-1))
std::size_t | write (std::ostream &out, boost::system::error_code &ec, bool headers_only=false)
std::size_t | read (std::istream &in, boost::system::error_code &ec, parser &http_parser)
std::size_t | read (std::istream &in, boost::system::error_code &ec, bool headers_only=false, std::size_t max_content_length=static_cast< size_t >(-1))
void | concatenate_chunks (void)
Public Member Functions inherited from pion::http::types
virtual | ~types ()
| virtual destructor

## Protected Member Functions

virtual void | update_first_line (void) const
| updates the string containing the first line for the HTTP message
virtual void | append_cookie_headers (void)
| appends HTTP headers for any cookies defined by the http::message
Protected Member Functions inherited from pion::http::message
void | prepare_headers_for_send (const bool keep_alive, const bool using_chunks)
void | append_headers (write_buffers_t &write_buffers)
void | clear_first_line (void) const

## Additional Inherited Members

Public Types inherited from pion::http::message
enum | data_status_t { STATUS_NONE, STATUS_TRUNCATED, STATUS_PARTIAL, STATUS_OK }
| defines message data integrity status codes
typedef std::vector< boost::asio::const_buffer > | write_buffers_t
| data type for I/O write buffers (these wrap existing data to be sent)
typedef std::vector< char > | chunk_cache_t
| used to cache chunked data
Static Public Member Functions inherited from pion::http::types
static std::string | get_date_string (const time_t t)
| converts time_t format into an HTTP-date string
static std::string | make_query_string (const ihash_multimap &query_params)
| builds an HTTP query string from a collection of query parameters
static std::string | make_set_cookie_header (const std::string &name, const std::string &value, const std::string &path, const bool has_max_age=false, const unsigned long max_age=0)
Static Public Attributes inherited from pion::http::types
static const std::string | STRING_EMPTY
static const std::string | STRING_CRLF
static const std::string | STRING_HTTP_VERSION
static const std::string | HEADER_NAME_VALUE_DELIMITER
static const std::string | COOKIE_NAME_VALUE_DELIMITER
static const std::string | HEADER_HOST
static const std::string | HEADER_COOKIE
static const std::string | HEADER_SET_COOKIE
static const std::string | HEADER_CONNECTION
static const std::string | HEADER_CONTENT_TYPE
static const std::string | HEADER_CONTENT_LENGTH
static const std::string | HEADER_CONTENT_LOCATION
static const std::string | HEADER_CONTENT_ENCODING
static const std::string | HEADER_CONTENT_DISPOSITION
static const std::string | HEADER_LAST_MODIFIED
static const std::string | HEADER_IF_MODIFIED_SINCE
static const std::string | HEADER_TRANSFER_ENCODING
static const std::string | HEADER_LOCATION
static const std::string | HEADER_AUTHORIZATION
static const std::string | HEADER_REFERER
static const std::string | HEADER_USER_AGENT
static const std::string | HEADER_X_FORWARDED_FOR
static const std::string | HEADER_CLIENT_IP
static const std::string | CONTENT_TYPE_HTML
static const std::string | CONTENT_TYPE_TEXT
static const std::string | CONTENT_TYPE_XML
static const std::string | CONTENT_TYPE_URLENCODED
static const std::string | CONTENT_TYPE_MULTIPART_FORM_DATA
static const std::string | REQUEST_METHOD_HEAD
static const std::string | REQUEST_METHOD_GET
static const std::string | REQUEST_METHOD_PUT
static const std::string | REQUEST_METHOD_POST
static const std::string | REQUEST_METHOD_DELETE
static const std::string | RESPONSE_MESSAGE_OK
static const std::string | RESPONSE_MESSAGE_CREATED
static const std::string | RESPONSE_MESSAGE_ACCEPTED
static const std::string | RESPONSE_MESSAGE_NO_CONTENT
static const std::string | RESPONSE_MESSAGE_FOUND
static const std::string | RESPONSE_MESSAGE_UNAUTHORIZED
static const std::string | RESPONSE_MESSAGE_FORBIDDEN
static const std::string | RESPONSE_MESSAGE_NOT_FOUND
static const std::string | RESPONSE_MESSAGE_METHOD_NOT_ALLOWED
static const std::string | RESPONSE_MESSAGE_NOT_MODIFIED
static const std::string | RESPONSE_MESSAGE_BAD_REQUEST
static const std::string | RESPONSE_MESSAGE_SERVER_ERROR
static const std::string | RESPONSE_MESSAGE_NOT_IMPLEMENTED
static const std::string | RESPONSE_MESSAGE_CONTINUE
static const unsigned int | RESPONSE_CODE_OK = 200
static const unsigned int | RESPONSE_CODE_CREATED = 201
static const unsigned int | RESPONSE_CODE_ACCEPTED = 202
static const unsigned int | RESPONSE_CODE_NO_CONTENT = 204
static const unsigned int | RESPONSE_CODE_FOUND = 302
static const unsigned int | RESPONSE_CODE_UNAUTHORIZED = 401
static const unsigned int | RESPONSE_CODE_FORBIDDEN = 403
static const unsigned int | RESPONSE_CODE_NOT_FOUND = 404
static const unsigned int | RESPONSE_CODE_METHOD_NOT_ALLOWED = 405
static const unsigned int | RESPONSE_CODE_NOT_MODIFIED = 304
static const unsigned int | RESPONSE_CODE_BAD_REQUEST = 400
static const unsigned int | RESPONSE_CODE_SERVER_ERROR = 500
static const unsigned int | RESPONSE_CODE_NOT_IMPLEMENTED = 501
static const unsigned int | RESPONSE_CODE_CONTINUE = 100
Static Protected Member Functions inherited from pion::http::message
template<typename DictionaryType >
static const std::string & | get_value (const DictionaryType &dict, const std::string &key)
template<typename DictionaryType >
static void | change_value (DictionaryType &dict, const std::string &key, const std::string &value)
template<typename DictionaryType >
static void | delete_value (DictionaryType &dict, const std::string &key)
Protected Attributes inherited from pion::http::message
std::string | m_first_line

## Detailed Description

response: container for HTTP response information

Definition at line 27 of file response.hpp.

## Constructor & Destructor Documentation

## response() [1/3]

pion::http::response::response | ( | const http::request & | http_request_ptr | ) |

inline

constructs a new response object for a particular request

Parameters

  http_request_ptr | the request that this is responding to

Definition at line 37 of file response.hpp.

References update_request_info().

## response() [2/3]

pion::http::response::response | ( | const std::string & | request_method | ) |

inline

constructs a new response object for a particular request method

Parameters

  request_method | the method used by the HTTP request we are responding to

Definition at line 49 of file response.hpp.

## response() [3/3]

pion::http::response::response | ( | void |  | ) |

inline

default constructor: you are strongly encouraged to use one of the other constructors, since response parsing is influenced by the request method

Definition at line 64 of file response.hpp.

## Member Function Documentation

## set_cookie() [1/4]

void pion::http::response::set_cookie | ( | const std::string & | name,
|  | const std::string & | value
| ) |  |

inline

sets a cookie by adding a Set-Cookie header (see RFC 2109) the cookie will be discarded by the user-agent when it closes

Parameters

  name | the name of the cookie
  value | the value of the cookie

Definition at line 134 of file response.hpp.

References pion::http::message::add_header(), and pion::http::types::make_set_cookie_header().

Referenced by append_cookie_headers().

## set_cookie() [2/4]

void pion::http::response::set_cookie | ( | const std::string & | name,
|  | const std::string & | value,
|  | const std::string & | path
| ) |  |

inline

sets a cookie by adding a Set-Cookie header (see RFC 2109) the cookie will be discarded by the user-agent when it closes

Parameters

  name | the name of the cookie
  value | the value of the cookie
  path | the path of the cookie

Definition at line 147 of file response.hpp.

References pion::http::message::add_header(), and pion::http::types::make_set_cookie_header().

## set_cookie() [3/4]

void pion::http::response::set_cookie | ( | const std::string & | name,
|  | const std::string & | value,
|  | const std::string & | path,
|  | const unsigned long | max_age
| ) |  |

inline

sets a cookie by adding a Set-Cookie header (see RFC 2109)

Parameters

  name | the name of the cookie
  value | the value of the cookie
  path | the path of the cookie
  max_age | the life of the cookie, in seconds (0 = discard)

Definition at line 162 of file response.hpp.

References pion::http::message::add_header(), and pion::http::types::make_set_cookie_header().

## set_cookie() [4/4]

void pion::http::response::set_cookie | ( | const std::string & | name,
|  | const std::string & | value,
|  | const unsigned long | max_age
| ) |  |

inline

sets a cookie by adding a Set-Cookie header (see RFC 2109)

Parameters

  name | the name of the cookie
  value | the value of the cookie
  max_age | the life of the cookie, in seconds (0 = discard)

Definition at line 176 of file response.hpp.

References pion::http::message::add_header(), and pion::http::types::make_set_cookie_header().

## update_request_info()

void pion::http::response::update_request_info | ( | const http::request & | http_request | ) |

inline

Updates HTTP request information for the response object (use this if the response cannot be constructed using the request)

Parameters

  http_request | the request that this is responding to

Definition at line 95 of file response.hpp.

References pion::http::request::get_method(), pion::http::message::get_version_major(), pion::http::message::get_version_minor(), pion::http::message::set_chunks_supported(), set_status_code(), set_status_message(), pion::http::message::set_version_major(), and pion::http::message::set_version_minor().

Referenced by response().

The documentation for this class was generated from the following file:

- include/pion/http/response.hpp