#ifndef HTTP_CONNECTION_HPP #define HTTP_CONNECTION_HPP #include "request_handler.hpp" #include #include #include #include #include #include #include using namespace std; using namespace boost::asio; using namespace boost::beast; class HttpConnection : public enable_shared_from_this { public: typedef shared_ptr pointer; static pointer create(io_context& io_context); ip::tcp::socket& socket(); void process_connection(); private: ip::tcp::socket socket_; boost::beast::flat_buffer buffer_; http::request request_; variant, http::response> response_; RequestHandler request_handler_; void read(); void write(); explicit HttpConnection(io_context& io_context); }; #endif