#pragma once #include #include #include #include "RemotePeer.hpp" /** * Information about the current state of our machine. * Used everywhere to determinate how to behave. */ class Context { public: int socket = -1; /// current socket file descriptor, used to communicate addrinfo* broadcastAddressInfo = nullptr; /// address used to broadcast messages std::shared_ptr server = nullptr; /// peer currently used as the server Peer me; /// information about our own machine std::map< std::uint32_t, std::shared_ptr > remotePeers {}; /// information about other machines std::chrono::high_resolution_clock::time_point latestPeerDiscovery; /// time of the latest discovered machine };