#include "NodeContext.h" NodeContext::NodeContext() { udp = new WiFiUDP(); memberList = new std::map(); hostname = ""; self.hostname = ""; self.ip = IPAddress(); self.lastSeen = 0; self.status = NodeInfo::INACTIVE; } NodeContext::NodeContext(std::initializer_list> initialLabels) : NodeContext() { for (const auto& kv : initialLabels) { self.labels[kv.first] = kv.second; } } NodeContext::~NodeContext() { delete udp; delete memberList; } void NodeContext::on(const std::string& event, EventCallback cb) { eventRegistry[event].push_back(cb); } void NodeContext::fire(const std::string& event, void* data) { for (auto& cb : eventRegistry[event]) { cb(data); } }