From 5d94fe647e59aaec7775f1e1bd4a4982b677af01 Mon Sep 17 00:00:00 2001 From: Vegard Storheil Eriksen Date: Wed, 29 Dec 2010 22:08:06 +0100 Subject: HTTPServer/HTTPConnection cleanup. --- httpd.h | 57 +++++++++++++++++++++++++-------------------------------- 1 file changed, 25 insertions(+), 32 deletions(-) (limited to 'httpd.h') diff --git a/httpd.h b/httpd.h index f9c0930..0fd601f 100644 --- a/httpd.h +++ b/httpd.h @@ -1,37 +1,30 @@ #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); -}; +#include "http_connection.h" + +#include +#include + +#include + +namespace HTTP { + typedef boost::function Handler; + + class Server { + public: + Server(boost::asio::io_service& io_service, const tcp::endpoint& endpoint); + + void add_handler(const std::string& name, Handler handler); + + private: + void start_accept(); + void handle_accept(Connection::p new_connection, const boost::system::error_code& error); + + tcp::acceptor acceptor_; + + std::map handlers; + }; +} #endif -- cgit v1.2.3