diff options
Diffstat (limited to 'includes/LuaTask.h')
-rw-r--r-- | includes/LuaTask.h | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/includes/LuaTask.h b/includes/LuaTask.h index 48cef97..37d64fa 100644 --- a/includes/LuaTask.h +++ b/includes/LuaTask.h @@ -11,7 +11,7 @@ class LuaMainTask; class LuaExecCell { public: - LuaExecCell() : m_detached(false) { } + LuaExecCell(); virtual ~LuaExecCell() { } void detach() { m_detached = true; } void exec(LuaMainTask * mainTask); @@ -19,7 +19,7 @@ class LuaExecCell { virtual void run(Lua &) = 0; private: Events::Async m_event; - bool m_detached; + bool m_detached = false; friend class LuaTask; }; @@ -31,6 +31,14 @@ class LuaExecString : public LuaExecCell { String m_str; }; +class LuaExecFile : public LuaExecCell { + public: + LuaExecFile(IO<Handle> file) : m_file(file) { } + private: + virtual void run(Lua &); + IO<Handle> m_file; +}; + class LuaTask : public Task { public: ~LuaTask() { L.weaken(); } @@ -45,17 +53,15 @@ class LuaTask : public Task { class LuaMainTask : public Task { public: - LuaMainTask() : m_stopping(false) { } - ~LuaMainTask() { L.close(); } + LuaMainTask(); + ~LuaMainTask(); void stop(); virtual const char * getName() const { return "LuaMainTask"; } private: void exec(LuaExecCell * cell); virtual void Do(); Lua L; - Events::Async m_queueEvent; - Queue<LuaExecCell> m_queue; - bool m_stopping; + TQueue<LuaExecCell> m_queue; friend class LuaExecCell; }; |