#pragma once #include "DirectConnection.hpp" #include "IpAddress.hpp" namespace sibs { class BootstrapException : public std::runtime_error { public: BootstrapException(const std::string &errMsg) : std::runtime_error(errMsg) {} }; class BootstrapNode { DISABLE_COPY(BootstrapNode) public: // Throws BootstrapException on error BootstrapNode(const Ipv4 &address); ~BootstrapNode(); private: void acceptConnections(); private: DirectConnections connections; int socket; std::thread acceptConnectionsThread; }; }