База для асинхронного сервера
This commit is contained in:
8
src/http_server.cpp
Normal file
8
src/http_server.cpp
Normal file
@ -0,0 +1,8 @@
|
||||
#include "http_server.h"
|
||||
|
||||
#include <boost/asio/dispatch.hpp>
|
||||
#include <iostream>
|
||||
|
||||
namespace http_server
|
||||
{
|
||||
}
|
21
src/http_server.h
Normal file
21
src/http_server.h
Normal file
@ -0,0 +1,21 @@
|
||||
#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>
|
||||
void ServeHttp(net::io_context& ioc, const tcp::endpoint& endpoint, RequestHandler&& handler)
|
||||
{
|
||||
// Напишите недостающий код, используя информацию из урока
|
||||
}
|
||||
}
|
8
src/listener.cpp
Normal file
8
src/listener.cpp
Normal file
@ -0,0 +1,8 @@
|
||||
#include "http_server.h"
|
||||
|
||||
#include <boost/asio/dispatch.hpp>
|
||||
#include <iostream>
|
||||
|
||||
namespace http_server
|
||||
{
|
||||
} // namespace http_server
|
23
src/listener.h
Normal file
23
src/listener.h
Normal file
@ -0,0 +1,23 @@
|
||||
#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>
|
||||
|
||||
namespace http_server
|
||||
{
|
||||
namespace net = boost::asio;
|
||||
using tcp = net::ip::tcp;
|
||||
namespace beast = boost::beast;
|
||||
namespace http = beast::http;
|
||||
|
||||
template<typename RequestHandler>
|
||||
class Listener : public std::enable_shared_from_this<Listener<RequestHandler>>
|
||||
{
|
||||
// Напишите недостающий код, используя информацию из урока
|
||||
};
|
||||
} // namespace http_server
|
4
src/sdk.h
Normal file
4
src/sdk.h
Normal file
@ -0,0 +1,4 @@
|
||||
#pragma once
|
||||
#ifdef WIN32
|
||||
#include <sdkddkver.h>
|
||||
#endif
|
8
src/session.cpp
Normal file
8
src/session.cpp
Normal file
@ -0,0 +1,8 @@
|
||||
#include "http_server.h"
|
||||
|
||||
#include <boost/asio/dispatch.hpp>
|
||||
#include <iostream>
|
||||
|
||||
namespace http_server
|
||||
{
|
||||
} // namespace http_server
|
24
src/session.h
Normal file
24
src/session.h
Normal file
@ -0,0 +1,24 @@
|
||||
#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 "session_base.h"
|
||||
|
||||
namespace http_server {
|
||||
|
||||
namespace net = boost::asio;
|
||||
using tcp = net::ip::tcp;
|
||||
namespace beast = boost::beast;
|
||||
namespace http = beast::http;
|
||||
|
||||
template <typename RequestHandler>
|
||||
class Session : public SessionBase, public std::enable_shared_from_this<Session<RequestHandler>> {
|
||||
// Напишите недостающий код, используя информацию из урока
|
||||
};
|
||||
} // namespace http_server
|
8
src/session_base.cpp
Normal file
8
src/session_base.cpp
Normal file
@ -0,0 +1,8 @@
|
||||
#include "http_server.h"
|
||||
|
||||
#include <boost/asio/dispatch.hpp>
|
||||
#include <iostream>
|
||||
|
||||
namespace http_server
|
||||
{
|
||||
} // namespace http_server
|
20
src/session_base.h
Normal file
20
src/session_base.h
Normal file
@ -0,0 +1,20 @@
|
||||
#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>
|
||||
|
||||
namespace http_server {
|
||||
|
||||
namespace net = boost::asio;
|
||||
using tcp = net::ip::tcp;
|
||||
namespace beast = boost::beast;
|
||||
namespace http = beast::http;
|
||||
class SessionBase {
|
||||
// Напишите недостающий код, используя информацию из урока
|
||||
};
|
||||
} // namespace http_server
|
Reference in New Issue
Block a user