11 #include <unordered_map>
17 #include <boost/algorithm/string/predicate.hpp>
48 if (boost::iequals(header,
"Content-Length")) {
55 inline const std::string&
header(std::string name)
const {
110 std::cout << kv.first <<
": " << kv.second << std::endl;
145 #endif // _HTTP_BASE_H_
void write_content(socket &sock)
tasks::tools::buffer m_data_buffer
std::size_t write(const char *data, std::size_t size)
void write_data(socket &sock)
Write a HTTP object to a socket.
virtual void prepare_data_buffer()=0
Prepare a HTTP request/response to be sent.
std::size_t m_content_length
void write_headers(socket &sock)
void set_state(io_state state)
std::ostream m_content_ostream
std::size_t read(char *data, std::size_t size)
std::size_t write(std::string s)
const char * content_p() const
void set_header(std::string header, std::string value)
virtual void clear()
Reset the http object.
std::istream & content_istream()
std::unordered_map< std::string, std::string > m_headers
tasks::tools::buffer m_content_buffer
std::istream m_content_istream
std::size_t content_length() const
std::size_t write(const std::string &s)
const std::string & header(std::string name) const
static const std::string NO_VAL
std::ostream & content_ostream()