diff options
author | Roland Reichwein <mail@reichwein.it> | 2023-02-26 08:54:17 +0100 |
---|---|---|
committer | Roland Reichwein <mail@reichwein.it> | 2023-02-26 08:54:17 +0100 |
commit | c9fa963e71258c5adfb71cf1996cd1bcb33df0bb (patch) | |
tree | a40d2260bf03ea5adfca798aef5d49d6a1984cad /whiteboard.h |
Start with copy of whiteboard
Diffstat (limited to 'whiteboard.h')
-rw-r--r-- | whiteboard.h | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/whiteboard.h b/whiteboard.h new file mode 100644 index 0000000..53036ac --- /dev/null +++ b/whiteboard.h @@ -0,0 +1,35 @@ +#pragma once + +#include <filesystem> +#include <memory> +#include <mutex> +#include <string> + +#include <boost/asio/ip/tcp.hpp> + +#include "diff.h" +#include "config.h" +#include "connectionregistry.h" +#include "storage.h" + +class Whiteboard +{ +public: + Whiteboard(); + int run(int argc, char* argv[]); + +private: + std::unique_ptr<Config> m_config; + std::unique_ptr<Storage> m_storage; + std::mutex m_storage_mutex; + + ConnectionRegistry m_registry; + + std::unique_ptr<boost::asio::io_context> m_ioc; + std::unique_ptr<boost::asio::ip::tcp::acceptor> m_acceptor; + + void do_accept(); + void on_accept(boost::system::error_code ec, boost::asio::ip::tcp::socket socket); + void touch_all_connections(); +}; + |