|
PionNetworkLibrary
|
#include <writer.hpp>


Public Member Functions | |
| 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_ptr & | get_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... | |
Protected Types | |
| 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... | |
Protected Member Functions | |
| writer (const tcp::connection_ptr &tcp_conn, finished_handler_t handler) | |
| virtual void | handle_write (const boost::system::error_code &write_error, std::size_t bytes_written)=0 |
| virtual void | prepare_buffers_for_send (http::message::write_buffers_t &write_buffers)=0 |
| virtual write_handler_t | bind_to_write_handler (void)=0 |
| returns a function bound to writer::handle_write() More... | |
| void | finished_writing (const boost::system::error_code &ec) |
| called after we have finished sending the HTTP message More... | |
writer: used to asynchronously send HTTP messages
|
protected |
function called after the HTTP message has been sent
|
protected |
data type for a function that handles write operations
|
inlineprotected |
protected constructor: only derived classes may create objects
| tcp_conn | TCP connection used to send the message |
| handler | function called after the request has been sent |
|
inlinevirtual |
default destructor
|
protectedpure virtual |
returns a function bound to writer::handle_write()
Implemented in pion::http::response_writer, and pion::http::request_writer.
|
inline |
clears out all of the memory buffers used to cache payload content data
Referenced by pion::http::request_writer::handle_write().
|
inlineprotected |
called after we have finished sending the HTTP message
Referenced by pion::http::request_writer::handle_write().
|
inline |
returns a shared pointer to the TCP connection
Referenced by pion::http::request_writer::prepare_buffers_for_send().
|
inline |
returns the length of the payload content (in bytes)
Referenced by pion::http::request_writer::prepare_buffers_for_send().
|
inline |
returns the logger currently in use
Referenced by pion::http::request_writer::handle_write().
|
protectedpure virtual |
called after the message is sent
| write_error | error status from the last write operation |
| bytes_written | number of bytes sent by the last write operation |
Implemented in pion::http::response_writer, and pion::http::request_writer.
|
protectedpure virtual |
initializes a vector of write buffers with the HTTP message information
| write_buffers | vector of write buffers to initialize |
Implemented in pion::http::response_writer, and pion::http::request_writer.
|
inline |
Sends all data buffered as a single HTTP message (without chunking). Following a call to this function, it is not thread safe to use your reference to the writer object.
|
inline |
Sends all data buffered as a single HTTP message (without chunking). Following a call to this function, it is not thread safe to use your reference to the writer object until the send_handler has been called.
| send_handler | function that is called after the message has been sent to the client. Your callback function must end the connection by calling connection::finish(). |
|
inline |
Sends all data buffered as a single HTTP chunk. Following a call to this function, it is not thread safe to use your reference to the writer object until the send_handler has been called.
| send_handler | function that is called after the chunk has been sent to the client. Your callback function must end by calling one of send_chunk() or send_final_chunk(). Also, be sure to clear() the writer before writing data to it. |
References pion::tcp::connection::LIFECYCLE_CLOSE.
|
inline |
Sends all data buffered (if any) and also sends the final HTTP chunk. This function (either overloaded version) must be called following any calls to send_chunk(). Following a call to this function, it is not thread safe to use your reference to the writer object until the send_handler has been called.
| send_handler | function that is called after the message has been sent to the client. Your callback function must end the connection by calling connection::finish(). |
|
inline |
Sends all data buffered (if any) and also sends the final HTTP chunk. This function (either overloaded version) must be called following any calls to send_chunk(). Following a call to this function, it is not thread safe to use your reference to the writer object.
|
inline |
returns true if we are sending a chunked message to the client
Referenced by pion::http::request_writer::handle_write(), and pion::http::request_writer::prepare_buffers_for_send().
|
inline |
sets the logger to be used
Referenced by pion::http::request_writer::request_writer().
|
inline |
sets whether or not the client supports chunked messages
|
inline |
returns true if the client supports chunked messages
|
inline |
write text (non-binary) payload content
| data | the data to append to the payload content |
|
inline |
|
inline |
write binary payload content
| data | points to the binary data to append to the payload content |
| length | the length, in bytes, of the binary data |
|
inline |
write text (non-binary) payload content; the data written is not copied, and therefore must persist until the message has finished sending
| data | the data to append to the payload content |
Referenced by pion::http::request_writer::request_writer().
|
inline |
write binary payload content; the data written is not copied, and therefore must persist until the message has finished sending
| data | points to the binary data to append to the payload content |
| length | the length, in bytes, of the binary data |