#include <writer.hpp>
Inherits noncopyable.
Inherited by pion::http::request_writer, and pion::http::response_writer.
|
virtual | ~writer () |
| default destructor
|
|
void | clear (void) |
| clears out all of the memory buffers used to cache payload content data
|
|
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
|
|
size_t | get_content_length (void) const |
| returns the length of the payload content (in bytes)
|
|
void | supports_chunked_messages (bool b) |
| sets whether or not the client supports chunked messages
|
|
bool | supports_chunked_messages () const |
| returns true if the client supports chunked messages
|
|
bool | sending_chunked_message () const |
| returns true if we are sending a chunked message to the client
|
|
void | set_logger (logger log_ptr) |
| sets the logger to be used
|
|
logger | get_logger (void) |
| returns the logger currently in use
|
|
|
typedef boost::function1< void, const boost::system::error_code & > | finished_handler_t |
| function called after the HTTP message has been sent
|
|
typedef boost::function2< void, const boost::system::error_code &, std::size_t > | write_handler_t |
| data type for a function that handles write operations
|
|
writer: used to asynchronously send HTTP messages
Definition at line 34 of file writer.hpp.
§ writer()
pion::http::writer::writer |
( |
const tcp::connection_ptr & |
tcp_conn, |
|
|
finished_handler_t |
handler |
|
) |
| |
|
inlineprotected |
protected constructor: only derived classes may create objects
- Parameters
-
tcp_conn | TCP connection used to send the message |
handler | function called after the request has been sent |
Definition at line 52 of file writer.hpp.
Referenced by pion::http::request_writer::handle_write().
§ handle_write()
virtual void pion::http::writer::handle_write |
( |
const boost::system::error_code & |
write_error, |
|
|
std::size_t |
bytes_written |
|
) |
| |
|
protectedpure virtual |
§ prepare_buffers_for_send()
§ send() [1/2]
void pion::http::writer::send |
( |
void |
| ) |
|
|
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.
Definition at line 166 of file writer.hpp.
§ send() [2/2]
template<typename SendHandler >
void pion::http::writer::send |
( |
SendHandler |
send_handler | ) |
|
|
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.
- Parameters
-
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(). |
Definition at line 180 of file writer.hpp.
§ send_chunk()
template<typename SendHandler >
void pion::http::writer::send_chunk |
( |
SendHandler |
send_handler | ) |
|
|
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.
- Parameters
-
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. |
Definition at line 195 of file writer.hpp.
§ send_final_chunk() [1/2]
template<typename SendHandler >
void pion::http::writer::send_final_chunk |
( |
SendHandler |
send_handler | ) |
|
|
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.
- Parameters
-
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(). |
Definition at line 218 of file writer.hpp.
§ send_final_chunk() [2/2]
void pion::http::writer::send_final_chunk |
( |
void |
| ) |
|
|
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.
Definition at line 230 of file writer.hpp.
§ write() [1/2]
template<typename T >
void pion::http::writer::write |
( |
const T & |
data | ) |
|
|
inline |
write text (non-binary) payload content
- Parameters
-
data | the data to append to the payload content |
Definition at line 106 of file writer.hpp.
§ write() [2/2]
void pion::http::writer::write |
( |
const void * |
data, |
|
|
size_t |
length |
|
) |
| |
|
inline |
write binary payload content
- Parameters
-
data | points to the binary data to append to the payload content |
length | the length, in bytes, of the binary data |
Definition at line 122 of file writer.hpp.
§ write_no_copy() [1/2]
void pion::http::writer::write_no_copy |
( |
const std::string & |
data | ) |
|
|
inline |
write text (non-binary) payload content; the data written is not copied, and therefore must persist until the message has finished sending
- Parameters
-
data | the data to append to the payload content |
Definition at line 137 of file writer.hpp.
Referenced by pion::http::request_writer::request_writer().
§ write_no_copy() [2/2]
void pion::http::writer::write_no_copy |
( |
void * |
data, |
|
|
size_t |
length |
|
) |
| |
|
inline |
write binary payload content; the data written is not copied, and therefore must persist until the message has finished sending
- Parameters
-
data | points to the binary data to append to the payload content |
length | the length, in bytes, of the binary data |
Definition at line 152 of file writer.hpp.
The documentation for this class was generated from the following files: