Files
spore/include/NodeContext.h

30 lines
713 B
C++

#pragma once
#include <WiFiUdp.h>
#include <map>
#include "NodeInfo.h"
#include <functional>
#include <string>
#include <initializer_list>
#include "Config.h"
#include "ApiTypes.h"
class NodeContext {
public:
NodeContext();
NodeContext(std::initializer_list<std::pair<String, String>> initialLabels);
~NodeContext();
WiFiUDP* udp;
String hostname;
IPAddress localIP;
NodeInfo self;
std::map<String, NodeInfo>* memberList;
Config config;
using EventCallback = std::function<void(void*)>;
std::map<std::string, std::vector<EventCallback>> eventRegistry;
void on(const std::string& event, EventCallback cb);
void fire(const std::string& event, void* data);
};