Files
spore/src/NodeContext.cpp
2025-09-13 10:40:15 +02:00

33 lines
782 B
C++

#include "NodeContext.h"
NodeContext::NodeContext() {
udp = new WiFiUDP();
memberList = new std::map<String, NodeInfo>();
hostname = "";
self.hostname = "";
self.ip = IPAddress();
self.lastSeen = 0;
self.status = NodeInfo::INACTIVE;
}
NodeContext::NodeContext(std::initializer_list<std::pair<String, String>> 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);
}
}