2023-09-13 14:20:40 +02:00
|
|
|
#pragma once
|
|
|
|
#include "sdk.h"
|
|
|
|
// boost.beast будет использовать std::string_view вместо boost::string_view
|
|
|
|
#define BOOST_BEAST_USE_STD_STRING_VIEW
|
|
|
|
|
|
|
|
#include <boost/asio/ip/tcp.hpp>
|
|
|
|
#include <boost/asio/strand.hpp>
|
|
|
|
#include <boost/beast/core.hpp>
|
|
|
|
#include <boost/beast/http.hpp>
|
|
|
|
|
|
|
|
#include "listener.h"
|
|
|
|
#include "session.h"
|
|
|
|
|
|
|
|
namespace http_server
|
|
|
|
{
|
|
|
|
template<typename RequestHandler>
|
2023-11-04 00:05:40 +01:00
|
|
|
void ServeHttp(net::io_context& ioc,
|
|
|
|
const tcp::endpoint& endpoint,
|
|
|
|
RequestHandler&& handler)
|
2023-09-13 14:20:40 +02:00
|
|
|
{
|
2023-11-04 00:05:40 +01:00
|
|
|
using MyListener = Listener<std::decay_t < RequestHandler>>;
|
2023-09-14 20:39:36 +02:00
|
|
|
|
2023-11-04 00:05:40 +01:00
|
|
|
std::make_shared<MyListener>(ioc,
|
|
|
|
endpoint,
|
|
|
|
std::forward<RequestHandler>(handler))->Run();
|
2023-09-13 14:20:40 +02:00
|
|
|
}
|
|
|
|
}
|