#pragma once #include "Globals.h" #include "NodeContext.h" #include "NodeInfo.h" #include #include #include #include #include class ClusterManager { public: ClusterManager(NodeContext& ctx); void sendDiscovery(); void listenForDiscovery(); void addOrUpdateNode(const String& nodeHost, IPAddress nodeIP); void updateAllNodeStatuses(); void removeDeadNodes(); void printMemberList(); const std::map& getMemberList() const { return *ctx.memberList; } void fetchNodeInfo(const IPAddress& ip); void updateLocalNodeResources(); void heartbeatTaskCallback(); void updateAllMembersInfoTaskCallback(); private: NodeContext& ctx; };