🪄 Formats EventEndpoint

This commit is contained in:
Rune Harlyk
2024-07-09 20:04:03 +02:00
committed by Rune Harlyk
parent 23a2ea566d
commit 3c8775de3d
+18 -24
View File
@@ -21,43 +21,37 @@
#include <StatefulService.h> #include <StatefulService.h>
template <class T> template <class T>
class EventEndpoint class EventEndpoint {
{ public:
public: EventEndpoint(JsonStateReader<T> stateReader, JsonStateUpdater<T> stateUpdater, StatefulService<T> *statefulService,
EventEndpoint(JsonStateReader<T> stateReader, EventSocket *socket, const char *event)
JsonStateUpdater<T> stateUpdater, : _stateReader(stateReader),
StatefulService<T> *statefulService, _stateUpdater(stateUpdater),
EventSocket *socket, const char *event) : _stateReader(stateReader), _statefulService(statefulService),
_stateUpdater(stateUpdater), _socket(socket),
_statefulService(statefulService), _event(event) {
_socket(socket), _statefulService->addUpdateHandler([&](const String &originId) { syncState(originId); }, false);
_event(event)
{
_statefulService->addUpdateHandler([&](const String &originId)
{ syncState(originId); },
false);
} }
void begin() void begin() {
{ _socket->onEvent(_event,
_socket->onEvent(_event, std::bind(&EventEndpoint::updateState, this, std::placeholders::_1, std::placeholders::_2)); std::bind(&EventEndpoint::updateState, this, std::placeholders::_1, std::placeholders::_2));
_socket->onSubscribe(_event, std::bind(&EventEndpoint::syncState, this, std::placeholders::_1, std::placeholders::_2)); _socket->onSubscribe(_event,
std::bind(&EventEndpoint::syncState, this, std::placeholders::_1, std::placeholders::_2));
} }
private: private:
JsonStateReader<T> _stateReader; JsonStateReader<T> _stateReader;
JsonStateUpdater<T> _stateUpdater; JsonStateUpdater<T> _stateUpdater;
StatefulService<T> *_statefulService; StatefulService<T> *_statefulService;
EventSocket *_socket; EventSocket *_socket;
const char *_event; const char *_event;
void updateState(JsonObject &root, int originId) void updateState(JsonObject &root, int originId) {
{
_statefulService->update(root, _stateUpdater, String(originId)); _statefulService->update(root, _stateUpdater, String(originId));
} }
void syncState(const String &originId, bool sync = false) void syncState(const String &originId, bool sync = false) {
{
JsonDocument jsonDocument; JsonDocument jsonDocument;
JsonObject root = jsonDocument.to<JsonObject>(); JsonObject root = jsonDocument.to<JsonObject>();
String output; String output;