// Copyright (c) 2019 Egor Tensin // This file is part of the "math-server" project. // For details, see https://github.com/egor-tensin/math-server. // Distributed under the MIT License. #pragma once #include #include #include #include namespace math::server { class Session; using SessionPtr = std::shared_ptr; class SessionManager { public: SessionManager() = default; SessionPtr make_session(boost::asio::io_context&); void start(const SessionPtr&); void stop(const SessionPtr&); void stop_all(); private: std::mutex m_mtx; std::unordered_set m_sessions; }; } // namespace math::server