From 0e3c3380d519b033500b4ed1ccd3acf707c34372 Mon Sep 17 00:00:00 2001 From: Vegard Storheil Eriksen Date: Sun, 2 Jan 2011 22:28:26 +0100 Subject: Merge HTTPResponse into HTTP::Connection. --- http_connection.h | 29 +++++++++++++++++++++++++---- 1 file changed, 25 insertions(+), 4 deletions(-) (limited to 'http_connection.h') diff --git a/http_connection.h b/http_connection.h index 5a01273..446f0af 100644 --- a/http_connection.h +++ b/http_connection.h @@ -2,6 +2,7 @@ #define HTTP_CONNECTION_H #include +#include #include #include @@ -20,9 +21,6 @@ namespace HTTP { typedef boost::function Handler; typedef std::list PathList; - //! Start reading the request headers. - void read_request(Handler callback); - //! Request method. std::string method; @@ -47,16 +45,39 @@ namespace HTTP { //! Send error. void send_error(int code, std::string name); - tcp::socket socket; + //! Add response header. + void add_header(std::string key, std::string value); + + //! Send data. + void send_data(const std::string& data); + void send_data(const void* data, std::size_t size); + private: + typedef std::vector > HeaderList; + + //! Constructor. Connection(boost::asio::io_service& io_service); + + //! Start reading the request headers. + void read_request(Handler callback); + void handle_write(const boost::system::error_code& error, size_t bytes_transferred); void handle_read(const boost::system::error_code& error, size_t bytes_transferred, Handler callback); + tcp::socket socket; boost::asio::streambuf buf; + //! Response headers. + HeaderList response_headers; + //! Parse request headers. bool parse_request(boost::asio::streambuf& buf); + + //! Write response headers. + void write_headers(); + + //! Response headers written? + bool headers_written; }; typedef Connection::Handler Handler; -- cgit v1.2.3