diff options
Diffstat (limited to 'httpd.h')
-rw-r--r-- | httpd.h | 35 |
1 files changed, 35 insertions, 0 deletions
@@ -0,0 +1,35 @@ +#ifndef HTTPD_H +#define HTTPD_H + +#include <boost/asio.hpp> +#include <boost/enable_shared_from_this.hpp> + +using boost::asio::ip::tcp; + +class HTTPConnection : public boost::enable_shared_from_this<HTTPConnection> { + friend class HTTPServer; + + private: + HTTPConnection(boost::asio::io_service& io_service); + void handle_write(const boost::system::error_code& error, size_t bytes_transferred); + tcp::socket socket; + + public: + typedef boost::shared_ptr<HTTPConnection> 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); +}; + +#endif |