From e109f3584a0298f786c9db2eaf8a297f5dfdd485 Mon Sep 17 00:00:00 2001 From: Rune Harlyk Date: Sat, 23 Nov 2024 12:56:54 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=86=98=20Adds=20helper=20function?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ESP32-sveltekit/template/stateful_service.h | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/esp32/lib/ESP32-sveltekit/template/stateful_service.h b/esp32/lib/ESP32-sveltekit/template/stateful_service.h index fd3ec60..fcc43c8 100644 --- a/esp32/lib/ESP32-sveltekit/template/stateful_service.h +++ b/esp32/lib/ESP32-sveltekit/template/stateful_service.h @@ -104,10 +104,7 @@ class StatefulService { beginTransaction(); StateUpdateResult result = stateUpdater(_state); endTransaction(); - callHookHandlers(originId, result); - if (result == StateUpdateResult::CHANGED) { - callUpdateHandlers(originId); - } + notifyStateChange(originId, result); return result; } @@ -122,10 +119,7 @@ class StatefulService { beginTransaction(); StateUpdateResult result = stateUpdater(jsonObject, _state); endTransaction(); - callHookHandlers(originId, result); - if (result == StateUpdateResult::CHANGED) { - callUpdateHandlers(originId); - } + notifyStateChange(originId, result); return result; } @@ -168,6 +162,13 @@ class StatefulService { inline void beginTransaction() { xSemaphoreTakeRecursive(_accessMutex, portMAX_DELAY); } inline void endTransaction() { xSemaphoreGiveRecursive(_accessMutex); } + void notifyStateChange(const String &originId, StateUpdateResult &result) { + callHookHandlers(originId, result); + if (result == StateUpdateResult::CHANGED) { + callUpdateHandlers(originId); + } + } + SemaphoreHandle_t _accessMutex; std::list _updateHandlers; std::list _hookHandlers;