4#include <boost/asio.hpp>
5#include <boost/beast.hpp>
15 using Request = boost::beast::http::request<boost::beast::http::string_body>;
16 using Response = boost::beast::http::response<boost::beast::http::string_body>;
24class HttpServer :
public std::enable_shared_from_this<HttpServer> {
26 HttpServer(boost::asio::io_context& io, boost::asio::ip::tcp::endpoint ep,
27 const std::shared_ptr<HttpProcessor>& request_processor, std::shared_ptr<metrics::JsonRpcMetrics> metrics);
44 std::shared_ptr<metrics::JsonRpcMetrics>
metrics_;
50 boost::asio::ip::tcp::endpoint
ep_;
65 explicit HttpConnection(
const std::shared_ptr<HttpServer>& http_server);
68 virtual std::shared_ptr<HttpConnection>
getShared();
76 boost::beast::http::request<boost::beast::http::string_body>
request_;
77 boost::beast::http::response<boost::beast::http::string_body>
response_;
Definition http_server.hpp:63
void stop()
Definition http_server.cpp:90
boost::asio::ip::tcp::socket & getSocket()
Definition http_server.hpp:67
virtual ~HttpConnection()
Definition http_server.hpp:66
void read()
Definition http_server.cpp:101
boost::asio::ip::tcp::socket socket_
Definition http_server.hpp:74
boost::beast::flat_buffer buffer_
Definition http_server.hpp:75
virtual std::shared_ptr< HttpConnection > getShared()
Definition http_server.cpp:78
std::shared_ptr< HttpServer > server_
Definition http_server.hpp:73
boost::beast::http::response< boost::beast::http::string_body > response_
Definition http_server.hpp:77
boost::beast::http::request< boost::beast::http::string_body > request_
Definition http_server.hpp:76
Definition http_server.hpp:13
virtual Response process(const Request &request)=0
boost::beast::http::request< boost::beast::http::string_body > Request
Definition http_server.hpp:15
boost::beast::http::response< boost::beast::http::string_body > Response
Definition http_server.hpp:16
Definition http_server.hpp:24
friend HttpHandler
Definition http_server.hpp:40
friend HttpConnection
Definition http_server.hpp:39
std::shared_ptr< HttpConnection > createConnection()
Definition http_server.cpp:28
logger::Logger getLogger() const
Definition http_server.cpp:30
boost::asio::ip::tcp::endpoint ep_
Definition http_server.hpp:50
bool start()
Definition http_server.cpp:32
std::shared_ptr< HttpProcessor > request_processor_
Definition http_server.hpp:43
bool stop()
Definition http_server.cpp:68
std::atomic< bool > stopped_
Definition http_server.hpp:47
logger::Logger logger_
Definition http_server.hpp:51
boost::asio::ip::tcp::acceptor acceptor_
Definition http_server.hpp:49
std::shared_ptr< HttpServer > getShared()
Definition http_server.cpp:19
virtual ~HttpServer()
Definition http_server.hpp:29
void accept()
Definition http_server.cpp:52
boost::asio::io_context & io_context_
Definition http_server.hpp:48
std::shared_ptr< metrics::JsonRpcMetrics > metrics_
Definition http_server.hpp:44
boost::asio::io_context & getIoContext()
Definition http_server.hpp:35
std::shared_ptr< spdlog::logger > Logger
Definition logging.hpp:12
Definition http_processor.hpp:11