PionNetworkLibrary
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros
pion::http::response_writer Class Reference

#include <response_writer.hpp>

Inheritance diagram for pion::http::response_writer:
Collaboration diagram for pion::http::response_writer:

Public Member Functions

virtual ~response_writer ()
 default destructor More...
 
http::responseget_response (void)
 returns a non-const reference to the response that will be sent More...
 
- Public Member Functions inherited from pion::http::writer
virtual ~writer ()
 default destructor More...
 
void clear (void)
 clears out all of the memory buffers used to cache payload content data More...
 
template<typename T >
void write (const T &data)
 
void write (std::ostream &(*iomanip)(std::ostream &))
 
void write (const void *data, size_t length)
 
void write_no_copy (const std::string &data)
 
void write_no_copy (void *data, size_t length)
 
void send (void)
 
template<typename SendHandler >
void send (SendHandler send_handler)
 
template<typename SendHandler >
void send_chunk (SendHandler send_handler)
 
template<typename SendHandler >
void send_final_chunk (SendHandler send_handler)
 
void send_final_chunk (void)
 
tcp::connection_ptrget_connection (void)
 returns a shared pointer to the TCP connection More...
 
size_t get_content_length (void) const
 returns the length of the payload content (in bytes) More...
 
void supports_chunked_messages (bool b)
 sets whether or not the client supports chunked messages More...
 
bool supports_chunked_messages () const
 returns true if the client supports chunked messages More...
 
bool sending_chunked_message () const
 returns true if we are sending a chunked message to the client More...
 
void set_logger (logger log_ptr)
 sets the logger to be used More...
 
logger get_logger (void)
 returns the logger currently in use More...
 

Static Public Member Functions

static boost::shared_ptr
< response_writer
create (const tcp::connection_ptr &tcp_conn, const http::response_ptr &http_response_ptr, finished_handler_t handler=finished_handler_t())
 
static boost::shared_ptr
< response_writer
create (const tcp::connection_ptr &tcp_conn, const http::request &http_request, finished_handler_t handler=finished_handler_t())
 

Protected Member Functions

 response_writer (const tcp::connection_ptr &tcp_conn, const http::response_ptr &http_response_ptr, finished_handler_t handler)
 
 response_writer (const tcp::connection_ptr &tcp_conn, const http::request &http_request, finished_handler_t handler)
 
virtual void prepare_buffers_for_send (http::message::write_buffers_t &write_buffers)
 
virtual write_handler_t bind_to_write_handler (void)
 returns a function bound to http::writer::handle_write() More...
 
virtual void handle_write (const boost::system::error_code &write_error, std::size_t bytes_written)
 
- Protected Member Functions inherited from pion::http::writer
 writer (const tcp::connection_ptr &tcp_conn, finished_handler_t handler)
 
void finished_writing (const boost::system::error_code &ec)
 called after we have finished sending the HTTP message More...
 

Additional Inherited Members

- Protected Types inherited from pion::http::writer
typedef boost::function1< void,
const
boost::system::error_code & > 
finished_handler_t
 function called after the HTTP message has been sent More...
 
typedef boost::function2< void,
const
boost::system::error_code
&, std::size_t > 
write_handler_t
 data type for a function that handles write operations More...
 

Detailed Description

response_writer: used to asynchronously send HTTP responses

Constructor & Destructor Documentation

virtual pion::http::response_writer::~response_writer ( )
inlinevirtual

default destructor

pion::http::response_writer::response_writer ( const tcp::connection_ptr tcp_conn,
const http::response_ptr http_response_ptr,
finished_handler_t  handler 
)
inlineprotected

protected constructor restricts creation of objects (use create())

Parameters
tcp_connTCP connection used to send the response
http_responsepointer to the response that will be sent
handlerfunction called after the request has been sent

References PION_GET_LOGGER.

pion::http::response_writer::response_writer ( const tcp::connection_ptr tcp_conn,
const http::request http_request,
finished_handler_t  handler 
)
inlineprotected

protected constructor restricts creation of objects (use create())

Parameters
tcp_connTCP connection used to send the response
http_requestthe request we are responding to
handlerfunction called after the request has been sent

References PION_GET_LOGGER.

Member Function Documentation

virtual write_handler_t pion::http::response_writer::bind_to_write_handler ( void  )
inlineprotectedvirtual

returns a function bound to http::writer::handle_write()

Implements pion::http::writer.

References handle_write().

static boost::shared_ptr<response_writer> pion::http::response_writer::create ( const tcp::connection_ptr tcp_conn,
const http::response_ptr http_response_ptr,
finished_handler_t  handler = finished_handler_t() 
)
inlinestatic

creates new response_writer objects

Parameters
tcp_connTCP connection used to send the response
http_responsepointer to the response that will be sent
handlerfunction called after the response has been sent
Returns
boost::shared_ptr<response_writer> shared pointer to the new writer object that was created

Referenced by pion::http::server::handle_bad_request(), pion::http::server::handle_forbidden_request(), pion::http::server::handle_method_not_allowed(), pion::http::server::handle_not_found_request(), pion::http::cookie_auth::handle_ok(), pion::http::cookie_auth::handle_redirection(), pion::http::server::handle_server_error(), pion::http::basic_auth::handle_unauthorized(), and pion::http::cookie_auth::handle_unauthorized().

static boost::shared_ptr<response_writer> pion::http::response_writer::create ( const tcp::connection_ptr tcp_conn,
const http::request http_request,
finished_handler_t  handler = finished_handler_t() 
)
inlinestatic

creates new response_writer objects

Parameters
tcp_connTCP connection used to send the response
http_requestthe request we are responding to
handlerfunction called after the request has been sent
Returns
boost::shared_ptr<response_writer> shared pointer to the new writer object that was created
http::response& pion::http::response_writer::get_response ( void  )
inline

returns a non-const reference to the response that will be sent

virtual void pion::http::response_writer::handle_write ( const boost::system::error_code &  write_error,
std::size_t  bytes_written 
)
inlineprotectedvirtual

called after the response is sent

Parameters
write_errorerror status from the last write operation
bytes_writtennumber of bytes sent by the last write operation

Implements pion::http::writer.

References PION_LOG_DEBUG.

Referenced by bind_to_write_handler().

virtual void pion::http::response_writer::prepare_buffers_for_send ( http::message::write_buffers_t write_buffers)
inlineprotectedvirtual

initializes a vector of write buffers with the HTTP message information

Parameters
write_buffersvector of write buffers to initialize

Implements pion::http::writer.


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