23 Server(Connection::Protocol protocol, std::shared_ptr<Connection::Handler> handler, std::shared_ptr<Logger> logger)
noexcept;
62 virtual
ExpectedVoid Connect(const std::
string& host, const
unsigned short& port) noexcept override;
67 virtual
void Disconnect() noexcept override;
81 void RemoveClient(Socket::
Client& client) noexcept;
87 void RemoveClientAsync(Socket::
Client& client) noexcept;
93 void DisconnectClient(Socket::
Client& client) noexcept;
108 std::thread m_accept_thread;
109 std::mutex m_clients_mutex;
110 std::vector<Socket::
Client> m_clients;
111 std::mutex m_msg_threads_mutex;
112 std::unordered_map<
Connection::Handler::Type, std::thread> m_msg_threads;
117 void DisconnectAllClients() noexcept;
122 void AcceptClients() noexcept;
128 void StartClientCommunication(Socket::
Client& client) noexcept;
134 void HandleClientMessages(Socket::
Client& client) noexcept;