feat: use lambdas again for task registration

This commit is contained in:
2025-08-22 16:16:07 +02:00
parent 07032b56ca
commit c8d21a12ad

View File

@@ -11,23 +11,12 @@ ClusterManager::ClusterManager(NodeContext& ctx, TaskManager& taskMgr) : ctx(ctx
} }
void ClusterManager::registerTasks() { void ClusterManager::registerTasks() {
// Register all cluster-related tasks using std::bind taskManager.registerTask("discovery_send", ctx.config.discovery_interval_ms, [this]() { sendDiscovery(); });
taskManager.registerTask("discovery_send", ctx.config.discovery_interval_ms, taskManager.registerTask("discovery_listen", ctx.config.discovery_interval_ms / 10, [this]() { listenForDiscovery(); });
std::bind(&ClusterManager::sendDiscovery, this)); taskManager.registerTask("status_update", ctx.config.status_update_interval_ms, [this]() { updateAllNodeStatuses(); removeDeadNodes(); });
taskManager.registerTask("discovery_listen", ctx.config.discovery_interval_ms / 10, taskManager.registerTask("print_members", ctx.config.print_interval_ms, [this]() { printMemberList(); });
std::bind(&ClusterManager::listenForDiscovery, this)); taskManager.registerTask("heartbeat", ctx.config.heartbeat_interval_ms, [this]() { heartbeatTaskCallback(); });
taskManager.registerTask("status_update", ctx.config.status_update_interval_ms, taskManager.registerTask("update_members_info", ctx.config.member_info_update_interval_ms, [this]() { updateAllMembersInfoTaskCallback(); });
std::bind([](ClusterManager* cm) {
cm->updateAllNodeStatuses();
cm->removeDeadNodes();
}, this));
taskManager.registerTask("print_members", ctx.config.print_interval_ms,
std::bind(&ClusterManager::printMemberList, this));
taskManager.registerTask("heartbeat", ctx.config.heartbeat_interval_ms,
std::bind(&ClusterManager::heartbeatTaskCallback, this));
taskManager.registerTask("update_members_info", ctx.config.member_info_update_interval_ms,
std::bind(&ClusterManager::updateAllMembersInfoTaskCallback, this));
Serial.println("[ClusterManager] Registered all cluster tasks"); Serial.println("[ClusterManager] Registered all cluster tasks");
} }