#ifndef HTTP_H #define HTTP_H #include #include #include #include typedef std::map stringmap; typedef stringmap HTTPHeaders; typedef stringmap HTTPQuery; class HTTPRequest { public: std::string type, path, httpver; HTTPQuery query; HTTPHeaders headers; HTTPRequest(std::istream& is); static void url_decode(std::string& str); }; class HTTPResponse { private: HTTPHeaders headers; boost::asio::ip::tcp::socket& socket; void write_headers(); bool headers_written; public: int code; std::string httpver, status; HTTPResponse(boost::asio::ip::tcp::socket& socket_); void add_header(std::string key, std::string value); void write(char *data, unsigned int len); void write(std::string str); }; #endif