diff options
Diffstat (limited to '')
-rw-r--r-- | src/libraries/Runnr.h | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/src/libraries/Runnr.h b/src/libraries/Runnr.h index 0e0fc73..ba5c17e 100644 --- a/src/libraries/Runnr.h +++ b/src/libraries/Runnr.h | |||
@@ -4,12 +4,82 @@ | |||
4 | #include <ctype.h> | 4 | #include <ctype.h> |
5 | 5 | ||
6 | #include <Eina.h> | 6 | #include <Eina.h> |
7 | #include <Ecore.h> | ||
8 | #include <Ecore_Con.h> | ||
7 | 9 | ||
8 | #include <lua.h> | 10 | #include <lua.h> |
9 | #include <luajit.h> | 11 | #include <luajit.h> |
10 | #include <lualib.h> | 12 | #include <lualib.h> |
11 | #include <lauxlib.h> | 13 | #include <lauxlib.h> |
12 | 14 | ||
15 | // Stick with Plan C for now. | ||
16 | #define THREADIT 0 | ||
17 | |||
18 | typedef enum | ||
19 | { | ||
20 | RUNNR_COMPILING, | ||
21 | RUNNR_NOT_STARTED, | ||
22 | RUNNR_RUNNING, | ||
23 | RUNNR_WAIT, | ||
24 | RUNNR_READY, | ||
25 | RUNNR_RESET, | ||
26 | RUNNR_FINISHED | ||
27 | } runnrStatus; | ||
28 | |||
29 | typedef struct _LuaCompile LuaCompile; | ||
30 | typedef void (* compileCb)(LuaCompile *compiler); | ||
31 | |||
32 | typedef struct _LuaCompile | ||
33 | { | ||
34 | char *file, *SID, *luaName; | ||
35 | int bugCount; | ||
36 | void *data; | ||
37 | Ecore_Con_Client *client; | ||
38 | compileCb cb; | ||
39 | } LuaCompiler; | ||
40 | |||
41 | typedef struct _script script; | ||
42 | typedef void (* RunnrServerCb)(script *me, const char *message); | ||
43 | |||
44 | typedef struct _script | ||
45 | { | ||
46 | Eina_Clist node; | ||
47 | #if THREADIT | ||
48 | Eina_Lock mutex; | ||
49 | Ecore_Thread *me; | ||
50 | #endif | ||
51 | void *data; | ||
52 | char SID[PATH_MAX]; | ||
53 | char *name; | ||
54 | char fileName[PATH_MAX]; | ||
55 | char binName[PATH_MAX]; | ||
56 | lua_State *L; | ||
57 | struct timeval startTime; | ||
58 | float timerTime; | ||
59 | runnrStatus status; | ||
60 | RunnrServerCb send2server; | ||
61 | Eina_Clist messages; | ||
62 | Ecore_Con_Client *client; | ||
63 | Ecore_Timer *timer; | ||
64 | } script; | ||
65 | |||
66 | typedef struct | ||
67 | { | ||
68 | Eina_Clist node; | ||
69 | script *s; | ||
70 | const char message[PATH_MAX]; | ||
71 | } scriptMessage; | ||
72 | |||
73 | |||
74 | script *scriptAdd(char *file, char *SID, RunnrServerCb send2server, void *data); | ||
75 | void compileScript(LuaCompiler *compiler); | ||
76 | void runScript(script *me); | ||
77 | void resetScript(script *me); | ||
78 | script *getScript(char *SID); | ||
79 | void takeScript(script *me); | ||
80 | void releaseScript(script *me); | ||
81 | void send2script(const char *SID, const char *message); | ||
82 | void printScriptsStatus(); | ||
13 | 83 | ||
14 | void dumpStack(lua_State *L, int i); | 84 | void dumpStack(lua_State *L, int i); |
15 | void doLuaString(lua_State *L, char *string, char *module); | 85 | void doLuaString(lua_State *L, char *string, char *module); |