#ifndef HTTPD_H #define HTTPD_H #include #include using boost::asio::ip::tcp; class HTTPConnection : public boost::enable_shared_from_this { friend class HTTPServer; private: HTTPConnection(boost::asio::io_service& io_service); 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); tcp::socket socket; boost::asio::streambuf buf; public: typedef boost::shared_ptr pointer; static pointer create(boost::asio::io_service& io_service); void start(); }; class HTTPServer { private: void start_accept(); void handle_accept(HTTPConnection::pointer new_connection, const boost::system::error_code& error); tcp::acceptor acceptor_; public: HTTPServer(boost::asio::io_service& io_service, const tcp::endpoint& endpoint); }; #endif