From 19bc13783a7451c81848ea132614a8df11c7740a Mon Sep 17 00:00:00 2001 From: "Forlot Romain [IoT.bzh]" Date: Mon, 4 Sep 2017 23:37:22 +0200 Subject: Initial commit Change-Id: I2bb38bffdd92602659670901b8442201b7c56214 Signed-off-by: Romain Forlot --- signal-composer-binding/ctl-lua.h | 75 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 signal-composer-binding/ctl-lua.h (limited to 'signal-composer-binding/ctl-lua.h') diff --git a/signal-composer-binding/ctl-lua.h b/signal-composer-binding/ctl-lua.h new file mode 100644 index 0000000..b5b1414 --- /dev/null +++ b/signal-composer-binding/ctl-lua.h @@ -0,0 +1,75 @@ +#ifdef SUSE_LUA_INCDIR +#include +#include +#include +#else +#include +#include +#include +#endif + +#include + +#include "signal-composer-binding.hpp" + +#ifndef CONTROL_DOSCRIPT_PRE +#define CONTROL_DOSCRIPT_PRE "doscript" +#endif + +#ifndef CONTROL_CONFIG_PRE +#define CONTROL_CONFIG_PRE "onload" +#endif + +#ifndef CONTROL_LUA_EVENT +#define CONTROL_LUA_EVENT "luaevt" +#endif + +typedef int (*timerCallbackT)(void *context); + +typedef struct TimerHandleS { + int count; + int delay; + const char*label; + void *context; + timerCallbackT callback; + sd_event_source *evtSource; +} TimerHandleT; + +int TimerEvtInit (void); +afb_event TimerEvtGet(void); +void TimerEvtStart(TimerHandleT *timerHandle, timerCallbackT callback, void *context); +void TimerEvtStop(TimerHandleT *timerHandle); + +typedef enum { + CTL_MODE_NONE=0, + CTL_MODE_API, + CTL_MODE_CB, + CTL_MODE_LUA, +} CtlRequestModeT; + +typedef enum { + CTL_SOURCE_CLOSE=-1, + CTL_SOURCE_UNKNOWN=0, + CTL_SOURCE_ONLOAD=1, + CTL_SOURCE_OPEN=2, + CTL_SOURCE_EVENT=3, +} DispatchSourceT; + +typedef struct DispatchActionS{ + const char *info; + const char* label; + CtlRequestModeT mode; + const char* api; + const char* call; + json_object *argsJ; + int timeout; + int (*actionCB)(DispatchSourceT source, const char*label, json_object *argsJ, json_object *queryJ, void *context); +} DispatchActionT; + +typedef enum { + LUA_DOCALL, + LUA_DOSTRING, + LUA_DOSCRIPT, +} LuaDoActionT; + +typedef int (*Lua2cFunctionT)(char *funcname, json_object *argsJ, void*context); -- cgit 1.2.3-korg