/
isachkov
/
crypto_server
Обзор
Документация
Войти
/
isachkov
/
crypto_server
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
include/crypto_chat/server.hpp
40 строк
894 B
Ivan Sachkov
CryptoServer
15 май 2024, 20:26
15 май 2024, 20:26
9de0f1f
Код
Авторство
О чём код?
#pragma once #include "executor.hpp" #include "ssl_provider.hpp" #include "client_session.hpp" #include "util.hpp" #include <unordered_map> class Server { public: Server(Executor&, SSLProvider&); Server(const Server&) = delete; Server(Server&&) = delete; Server& operator=(const Server&) = delete; Server& operator=(Server&&) = delete; ~Server(); void set_location(std::string address, std::string port); [[nodiscard]] int run(); private: bool bind_and_listen(); void accept_incoming_client(); std::string address_{"0.0.0.0"}; std::string port_{"8080"}; int acceptor_{-1}; AddrInfoPtr location_; Executor& exec_; SSLProvider& ssl_provider_; std::unordered_map<int, ClientSessionPtr> sessions_; // How many pending incomming connections we may keep in the queue constexpr static auto listen_backlog_size_ = 128; };