19 #ifndef IRCCD_DAEMON_TRANSPORT_SERVER_HPP
20 #define IRCCD_DAEMON_TRANSPORT_SERVER_HPP
27 #include <irccd/sysconfig.hpp>
31 #include <unordered_set>
32 #include <type_traits>
34 #include <irccd/acceptor.hpp>
38 class transport_client;
133 using client_set = std::unordered_set<std::shared_ptr<transport_client>>;
138 using accept_handler = std::function<void (std::error_code, std::shared_ptr<transport_client>)>;
142 std::unique_ptr<acceptor> acceptor_;
143 std::string password_;
146 void do_greetings(std::shared_ptr<transport_client>,
accept_handler);
284 #endif // !IRCCD_DAEMON_TRANSPORT_SERVER_HPP
void set_password(std::string password) noexcept
void accept(accept_handler handler)
error
Transport related errors.
Definition: transport_server.hpp:205
auto get_clients() const noexcept -> const client_set &
auto make_error_code(bot_error::error e) noexcept -> std::error_code
Abstract stream acceptor interface.
Definition: acceptor.hpp:52
auto transport_category() noexcept -> const std::error_category &
Transport error.
Definition: transport_server.hpp:200
transport_error(error code) noexcept
Abstract transport server class.
Definition: transport_server.hpp:128
auto get_password() const noexcept -> const std::string &
Parent namespace.
Definition: acceptor.hpp:43
std::function< void(std::error_code, std::shared_ptr< transport_client >)> accept_handler
Definition: transport_server.hpp:138
Main irccd namespace.
Definition: bot.hpp:41
transport_server(std::unique_ptr< acceptor > acceptor) noexcept
std::unordered_set< std::shared_ptr< transport_client > > client_set
Definition: transport_server.hpp:133