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 |