From b2efd0e71420139f37ca1f32a29566b370e281cb Mon Sep 17 00:00:00 2001 From: Manolis Dermitzakis Date: Fri, 30 Jan 2026 14:04:21 +0200 Subject: [PATCH 1/2] feat: refactor onEvent callback --- Cpp/src/ArcscriptHelpers.h | 4 ++-- Cpp/src/ArcscriptTranspiler.cpp | 2 +- Cpp/src/ArcscriptTranspiler.h | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cpp/src/ArcscriptHelpers.h b/Cpp/src/ArcscriptHelpers.h index b33c8b3..5d9f1f0 100755 --- a/Cpp/src/ArcscriptHelpers.h +++ b/Cpp/src/ArcscriptHelpers.h @@ -33,9 +33,9 @@ class ArcscriptState { std::string currentElement; std::map visits; - void (*emit) (const char* eventName); + std::function(emit); - ArcscriptState(std::string elementId, std::map varValues, std::map _visits, void (*_emit) (const char* eventName)) { + ArcscriptState(std::string elementId, std::map varValues, std::map _visits, std::function _emit) { currentElement = elementId; variableValues = varValues; for(const auto var : variableValues) { diff --git a/Cpp/src/ArcscriptTranspiler.cpp b/Cpp/src/ArcscriptTranspiler.cpp index 9452e1e..62d9965 100755 --- a/Cpp/src/ArcscriptTranspiler.cpp +++ b/Cpp/src/ArcscriptTranspiler.cpp @@ -60,7 +60,7 @@ TranspilerOutput ArcscriptTranspiler::runScript(std::string code) { return result; } -UTranspilerOutput* runScriptExport(const char* code, const char* elId, UVariable* variables, size_t varLength, UVisit* visits, size_t visitsLength, void (*onEvent)(const char*)) +UTranspilerOutput* runScriptExport(const char* code, const char* elId, UVariable* variables, size_t varLength, UVisit* visits, size_t visitsLength, std::function onEvent) { Arcweave::TranspilerOutput transpilerOutput; diff --git a/Cpp/src/ArcscriptTranspiler.h b/Cpp/src/ArcscriptTranspiler.h index 4ce4126..ea00940 100755 --- a/Cpp/src/ArcscriptTranspiler.h +++ b/Cpp/src/ArcscriptTranspiler.h @@ -137,7 +137,7 @@ namespace Arcweave ArcscriptState state; - ArcscriptTranspiler(std::string elId, std::map initVars, std::map _visits, void (*onEvent)(const char*)) : state(elId, initVars, _visits, onEvent) { }; + ArcscriptTranspiler(std::string elId, std::map initVars, std::map _visits, std::function onEvent) : state(elId, initVars, _visits, onEvent) { }; /** * Runs the arcscript code and returns it's results. @@ -149,5 +149,5 @@ namespace Arcweave //ARCSCRIPTTRANSPILER_API UTranspilerOutput URunScript(char* code); }; }; -EXPORTED Arcweave::UTranspilerOutput* runScriptExport(const char* code, const char* elId, Arcweave::UVariable* variables, size_t varLength, Arcweave::UVisit* visits, size_t visitsLength, void (*onEvent)(const char*)); +EXPORTED Arcweave::UTranspilerOutput* runScriptExport(const char* code, const char* elId, Arcweave::UVariable* variables, size_t varLength, Arcweave::UVisit* visits, size_t visitsLength, std::function onEvent); EXPORTED void deallocateOutput(Arcweave::UTranspilerOutput* output); From 807e5d7882e26b6e8b5bf3ca4edd0b587195e4ae Mon Sep 17 00:00:00 2001 From: Emmanouil Dermitzakis Date: Sat, 31 Jan 2026 21:14:28 +0200 Subject: [PATCH 2/2] fix: add necessary header --- Cpp/.gitignore | 1 + Cpp/src/ArcscriptHelpers.h | 1 + 2 files changed, 2 insertions(+) diff --git a/Cpp/.gitignore b/Cpp/.gitignore index d1860aa..d495376 100644 --- a/Cpp/.gitignore +++ b/Cpp/.gitignore @@ -5,3 +5,4 @@ cmake-build-debug-visual-studio cmake-build-debug cmake-build-release-visual-studio cmake-build-release +.vs \ No newline at end of file diff --git a/Cpp/src/ArcscriptHelpers.h b/Cpp/src/ArcscriptHelpers.h index 5d9f1f0..0713a90 100755 --- a/Cpp/src/ArcscriptHelpers.h +++ b/Cpp/src/ArcscriptHelpers.h @@ -5,6 +5,7 @@ #include #include #include +#include #include "ArcscriptOutputs.h" namespace Arcweave {