123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- //
- // connection_manager.hpp
- // ~~~~~~~~~~~~~~~~~~~~~~
- //
- // Copyright (c) 2003-2019 Christopher M. Kohlhoff (chris at kohlhoff dot com)
- //
- // Distributed under the Boost Software License, Version 1.0. (See accompanying
- // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- //
- #ifndef HTTP_CONNECTION_MANAGER_HPP
- #define HTTP_CONNECTION_MANAGER_HPP
- #include <set>
- #include "connection.hpp"
- namespace http {
- namespace server {
- /// Manages open connections so that they may be cleanly stopped when the server
- /// needs to shut down.
- class connection_manager
- {
- public:
- connection_manager(const connection_manager&) = delete;
- connection_manager& operator=(const connection_manager&) = delete;
- /// Construct a connection manager.
- connection_manager();
- /// Add the specified connection to the manager and start it.
- void start(connection_ptr c);
- /// Stop the specified connection.
- void stop(connection_ptr c);
- /// Stop all connections.
- void stop_all();
- private:
- /// The managed connections.
- std::set<connection_ptr> connections_;
- };
- } // namespace server
- } // namespace http
- #endif // HTTP_CONNECTION_MANAGER_HPP
|