Malloy
Toggle main menu visibility
Loading...
Searching...
No Matches
lib
malloy
server
listener.hpp
1
#pragma once
2
3
#include <boost/asio/ip/tcp.hpp>
4
#include <boost/beast/core/error.hpp>
5
6
#include <filesystem>
7
#include <memory>
8
#include <string>
9
10
namespace
boost::asio
11
{
12
class
io_context;
13
}
14
15
namespace
boost::asio::ssl
16
{
17
class
context;
18
}
19
20
namespace
spdlog
21
{
22
class
logger;
23
}
24
25
namespace
malloy::server
26
{
27
class
router
;
28
32
class
listener
:
33
public
std::enable_shared_from_this<listener>
34
{
35
public
:
48
listener
(
49
std::shared_ptr<spdlog::logger> logger,
50
std::shared_ptr<spdlog::logger> connection_logger,
51
boost::asio::io_context& ioc,
52
std::shared_ptr<boost::asio::ssl::context> tls_ctx,
53
const
boost::asio::ip::tcp::endpoint&
endpoint
,
54
std::shared_ptr<malloy::server::router>
router
,
55
std::shared_ptr<const std::filesystem::path> http_doc_root,
56
std::string agent_string
57
);
58
62
listener
(
const
listener
& other) =
delete
;
63
67
listener
(
listener
&& other)
noexcept
=
delete
;
68
72
virtual
73
~listener
() =
default
;
74
81
listener
&
82
operator=
(
const
listener
& rhs) =
delete
;
83
90
listener
&
91
operator=
(
listener
&& rhs)
noexcept
=
delete
;
92
96
void
97
run
();
98
104
[[nodiscard]]
105
std::shared_ptr<malloy::server::router>
106
router
() const noexcept
107
{
108
return
m_router;
109
}
110
111
private
:
112
std::shared_ptr<spdlog::logger> m_logger;
113
std::shared_ptr<spdlog::logger> m_connection_logger;
114
boost::asio::io_context& m_io_ctx;
115
std::shared_ptr<boost::asio::ssl::context> m_tls_ctx;
116
boost::asio::ip::tcp::acceptor m_acceptor;
117
std::shared_ptr<malloy::server::router> m_router;
118
std::shared_ptr<const std::filesystem::path> m_doc_root;
119
std::string m_agent_string;
120
124
void
125
do_accept();
126
133
void
134
on_accept(boost::beast::error_code ec, boost::asio::ip::tcp::socket socket);
135
};
136
137
}
malloy::server::listener::listener
listener(const listener &other)=delete
malloy::server::listener::listener
listener(std::shared_ptr< spdlog::logger > logger, std::shared_ptr< spdlog::logger > connection_logger, boost::asio::io_context &ioc, std::shared_ptr< boost::asio::ssl::context > tls_ctx, const boost::asio::ip::tcp::endpoint &endpoint, std::shared_ptr< malloy::server::router > router, std::shared_ptr< const std::filesystem::path > http_doc_root, std::string agent_string)
malloy::server::listener::router
std::shared_ptr< malloy::server::router > router() const noexcept
Definition
listener.hpp:106
malloy::server::listener::operator=
listener & operator=(const listener &rhs)=delete
malloy::server::listener::~listener
virtual ~listener()=default
malloy::server::listener::run
void run()
Definition
listener.cpp:68
malloy::server::listener::listener
listener(listener &&other) noexcept=delete
malloy::server::listener::operator=
listener & operator=(listener &&rhs) noexcept=delete
malloy::server::router
Definition
router.hpp:103
malloy::server::endpoint
Definition
endpoint.hpp:10
Generated by
1.18.0