4 #include <boost/asio.hpp>
5 #include <boost/beast.hpp>
14 using Request = boost::beast::http::request<boost::beast::http::string_body>;
15 using Response = boost::beast::http::response<boost::beast::http::string_body>;
23 class HttpServer :
public std::enable_shared_from_this<HttpServer> {
25 HttpServer(boost::asio::io_context& io, boost::asio::ip::tcp::endpoint ep,
const addr_t& node_addr,
26 const std::shared_ptr<HttpProcessor>& request_processor);
47 boost::asio::ip::tcp::endpoint
ep_;
62 explicit HttpConnection(
const std::shared_ptr<HttpServer>& http_server);
65 virtual std::shared_ptr<HttpConnection>
getShared();
73 boost::beast::http::request<boost::beast::http::string_body>
request_;
74 boost::beast::http::response<boost::beast::http::string_body>
response_;
Definition: FixedHash.h:35
Definition: http_server.hpp:60
void stop()
Definition: http_server.cpp:81
virtual ~HttpConnection()
Definition: http_server.hpp:63
HttpConnection(const std::shared_ptr< HttpServer > &http_server)
Definition: http_server.cpp:78
void read()
Definition: http_server.cpp:92
boost::asio::ip::tcp::socket & getSocket()
Definition: http_server.hpp:64
boost::asio::ip::tcp::socket socket_
Definition: http_server.hpp:71
boost::beast::flat_buffer buffer_
Definition: http_server.hpp:72
virtual std::shared_ptr< HttpConnection > getShared()
Definition: http_server.cpp:69
std::shared_ptr< HttpServer > server_
Definition: http_server.hpp:70
boost::beast::http::response< boost::beast::http::string_body > response_
Definition: http_server.hpp:74
boost::beast::http::request< boost::beast::http::string_body > request_
Definition: http_server.hpp:73
Definition: http_server.hpp:12
virtual Response process(const Request &request)=0
boost::beast::http::request< boost::beast::http::string_body > Request
Definition: http_server.hpp:14
boost::beast::http::response< boost::beast::http::string_body > Response
Definition: http_server.hpp:15
Definition: http_server.hpp:23
friend HttpHandler
Definition: http_server.hpp:38
friend HttpConnection
Definition: http_server.hpp:37
std::shared_ptr< HttpConnection > createConnection()
Definition: http_server.cpp:21
boost::asio::ip::tcp::endpoint ep_
Definition: http_server.hpp:47
bool start()
Definition: http_server.cpp:23
std::shared_ptr< HttpProcessor > request_processor_
Definition: http_server.hpp:41
bool stop()
Definition: http_server.cpp:59
std::atomic< bool > stopped_
Definition: http_server.hpp:44
HttpServer(boost::asio::io_context &io, boost::asio::ip::tcp::endpoint ep, const addr_t &node_addr, const std::shared_ptr< HttpProcessor > &request_processor)
Definition: http_server.cpp:5
boost::asio::ip::tcp::acceptor acceptor_
Definition: http_server.hpp:46
std::shared_ptr< HttpServer > getShared()
Definition: http_server.cpp:12
virtual ~HttpServer()
Definition: http_server.hpp:28
void accept()
Definition: http_server.cpp:43
boost::asio::io_context & io_context_
Definition: http_server.hpp:45
boost::asio::io_context & getIoContext()
Definition: http_server.hpp:34
#define LOG_OBJECTS_DEFINE
Definition: logger.hpp:60
Definition: http_processor.hpp:11