pion  5.0.6
Public Member Functions | Protected Member Functions | List of all members
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
 
messageoperator= (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_tget_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

pion::http::response::response ( const http::request http_request_ptr)
inline

constructs a new response object for a particular request

Parameters
http_request_ptrthe request that this is responding to

Definition at line 37 of file response.hpp.

References update_request_info().

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

constructs a new response object for a particular request method

Parameters
request_methodthe method used by the HTTP request we are responding to

Definition at line 49 of file response.hpp.

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

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
namethe name of the cookie
valuethe 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().

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
namethe name of the cookie
valuethe value of the cookie
paththe 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().

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
namethe name of the cookie
valuethe value of the cookie
paththe path of the cookie
max_agethe 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().

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
namethe name of the cookie
valuethe value of the cookie
max_agethe 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().

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_requestthe 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: