diff options
author | Forlot Romain [IoT.bzh] <claneys@iot.bzh> | 2017-09-04 23:37:22 +0200 |
---|---|---|
committer | Romain Forlot <romain.forlot@iot.bzh> | 2017-12-14 10:59:55 +0100 |
commit | 19bc13783a7451c81848ea132614a8df11c7740a (patch) | |
tree | b61995b1af0914559f6de6461bda3dd76f2e724c /signal-composer-binding/ctl-lua.h | |
parent | 29168eb150eae139685c40c0bec22a5b7485cb66 (diff) |
Initial commit
Change-Id: I2bb38bffdd92602659670901b8442201b7c56214
Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
Diffstat (limited to 'signal-composer-binding/ctl-lua.h')
-rw-r--r-- | signal-composer-binding/ctl-lua.h | 75 |
1 files changed, 75 insertions, 0 deletions
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 <lua5.3/lua.h> +#include <lua5.3/lauxlib.h> +#include <lua5.3/lualib.h> +#else +#include <lua.h> +#include <lauxlib.h> +#include <lualib.h> +#endif + +#include <json-c/json.h> + +#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); |