From 3bced067a4144381e59ce4bd0eb749eeff5ad1f4 Mon Sep 17 00:00:00 2001 From: chai Date: Thu, 28 Mar 2019 08:56:15 +0800 Subject: *misc --- source/libs/asura-lib-utils/io/io_task.cpp | 15 +++++++++++++-- source/libs/asura-lib-utils/io/io_task.h | 8 ++++---- 2 files changed, 17 insertions(+), 6 deletions(-) (limited to 'source/libs/asura-lib-utils/io') diff --git a/source/libs/asura-lib-utils/io/io_task.cpp b/source/libs/asura-lib-utils/io/io_task.cpp index a96c293..1a50e56 100644 --- a/source/libs/asura-lib-utils/io/io_task.cpp +++ b/source/libs/asura-lib-utils/io/io_task.cpp @@ -1,5 +1,8 @@ #include "io_task.h" +using namespace AEScripting; +using namespace Luax; + namespace AsuraEngine { namespace IO @@ -20,9 +23,17 @@ namespace AsuraEngine return true; } - void IOTask::Invoke() + void IOTask::Invoke(lua_State* thread) { - + if (mCallback) + { + LuaxScopedState state(thread); + if (PushLuaxMemberRef(state, mCallback)) + { + PushLuaxMemberRef(state, mDstRef); + state.Call(1, 0); + } + } } } diff --git a/source/libs/asura-lib-utils/io/io_task.h b/source/libs/asura-lib-utils/io/io_task.h index aa5b38e..a79b2a8 100644 --- a/source/libs/asura-lib-utils/io/io_task.h +++ b/source/libs/asura-lib-utils/io/io_task.h @@ -4,7 +4,7 @@ #include #include "../scripting/portable.hpp" -#include "../threading/thread_task.h" +#include "../threading/task.h" #include "data_buffer.h" @@ -18,7 +18,7 @@ namespace AsuraEngine /// class IOTask ASURA_FINAL : public AEScripting::Portable - , public AEThreading::ThreadTask + , public AEThreading::Task { public: @@ -28,13 +28,13 @@ namespace AsuraEngine ~IOTask(); bool Execute() override ; - void Invoke() override; + void Invoke(lua_State* thread) override; private: std::string mPath; - DataBuffer* mDst; + DataBuffer* mDst; Luax::LuaxMemberRef mDstRef; LUAX_DECL_METHOD(_New); -- cgit v1.1-26-g67d0