diff options
Diffstat (limited to 'source/libs/asura-lib-utils/io')
-rw-r--r-- | source/libs/asura-lib-utils/io/binding/_data_buffer.cpp | 1 | ||||
-rw-r--r-- | source/libs/asura-lib-utils/io/io_batch_task.cpp | 0 | ||||
-rw-r--r-- | source/libs/asura-lib-utils/io/io_batch_task.h | 31 | ||||
-rw-r--r-- | source/libs/asura-lib-utils/io/io_task.cpp | 4 | ||||
-rw-r--r-- | source/libs/asura-lib-utils/io/io_task.h | 2 |
5 files changed, 35 insertions, 3 deletions
diff --git a/source/libs/asura-lib-utils/io/binding/_data_buffer.cpp b/source/libs/asura-lib-utils/io/binding/_data_buffer.cpp index 6725bc4..cd73b31 100644 --- a/source/libs/asura-lib-utils/io/binding/_data_buffer.cpp +++ b/source/libs/asura-lib-utils/io/binding/_data_buffer.cpp @@ -42,6 +42,7 @@ namespace AsuraEngine size_t size = lua_tonumber(L, 1); DataBuffer* buffer = new DataBuffer(size); buffer->PushLuaxUserdata(state); + return 1; } else { diff --git a/source/libs/asura-lib-utils/io/io_batch_task.cpp b/source/libs/asura-lib-utils/io/io_batch_task.cpp new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/source/libs/asura-lib-utils/io/io_batch_task.cpp diff --git a/source/libs/asura-lib-utils/io/io_batch_task.h b/source/libs/asura-lib-utils/io/io_batch_task.h new file mode 100644 index 0000000..c0be921 --- /dev/null +++ b/source/libs/asura-lib-utils/io/io_batch_task.h @@ -0,0 +1,31 @@ +#ifndef __ASURA_IO_BATCH_TASK_H__ +#define __ASURA_IO_BATCH_TASK_H__ + +#include "io_task.h" + +namespace AsuraEngine +{ + namespace IO + { + + /// + /// дһύһtableδؽ + /// + class IOBatchTask ASURA_FINAL : public AEThreading::Task + { + public: + + private: + + /// + /// ÿһĽṹ£ + /// { path = "", } + /// + Luax::LuaxMemberRef mTasks; + + }; + + } +} + +#endif
\ No newline at end of file diff --git a/source/libs/asura-lib-utils/io/io_task.cpp b/source/libs/asura-lib-utils/io/io_task.cpp index 38e21ad..361b9c5 100644 --- a/source/libs/asura-lib-utils/io/io_task.cpp +++ b/source/libs/asura-lib-utils/io/io_task.cpp @@ -38,11 +38,11 @@ namespace AsuraEngine return true; } - void IOTask::Invoke() + void IOTask::Invoke(lua_State* invokeThreaad) { if (mCallback) { - LuaxScopedState state(LuaEnv::Get()->GetMainThread()); + LuaxScopedState state(invokeThreaad); if (PushLuaxMemberRef(state, mCallback)) { PushLuaxMemberRef(state, mBufferRef); diff --git a/source/libs/asura-lib-utils/io/io_task.h b/source/libs/asura-lib-utils/io/io_task.h index 5f454ee..8f04142 100644 --- a/source/libs/asura-lib-utils/io/io_task.h +++ b/source/libs/asura-lib-utils/io/io_task.h @@ -35,7 +35,7 @@ namespace AsuraEngine ~IOTask(); bool Execute() override ; - void Invoke() override; + void Invoke(lua_State* invokeThreaad) override; private: |