diff options
Diffstat (limited to 'Source/modules/asura-base/FileSystem/IOTask.cpp')
-rw-r--r-- | Source/modules/asura-base/FileSystem/IOTask.cpp | 86 |
1 files changed, 42 insertions, 44 deletions
diff --git a/Source/modules/asura-base/FileSystem/IOTask.cpp b/Source/modules/asura-base/FileSystem/IOTask.cpp index 9152a6e..493ee9f 100644 --- a/Source/modules/asura-base/FileSystem/IOTask.cpp +++ b/Source/modules/asura-base/FileSystem/IOTask.cpp @@ -6,56 +6,54 @@ using namespace AEScripting; using namespace Luax; -namespace AsuraEngine +namespace_begin(AsuraEngine) +namespace_begin(FileSystem) + +IOTask::IOTask(const std::string& path, DataBuffer* buffer, IOTaskType type) + : m_Path(path) + , m_Buffer(buffer) { - namespace FileSystem - { + if (buffer) + buffer->Retain(); +} - IOTask::IOTask(const std::string& path, DataBuffer* buffer, IOTaskType type) - : m_Path(path) - , m_Buffer(buffer) - { - if (buffer) - buffer->Retain(); - } +IOTask::~IOTask() +{ + if (m_Buffer) + m_Buffer->Release(); +} - IOTask::~IOTask() - { - if (m_Buffer) - m_Buffer->Release(); - } +bool IOTask::Execute() +{ + File file(m_Path); + if (m_Type == IOTASK_TYPE_WRITE) + { - bool IOTask::Execute() - { - File file(m_Path); - if (m_Type == IOTASK_TYPE_WRITE) - { - - } - // pathȡݱmBuffer - else if (m_Type == IOTASK_TYPE_READ) - { - if (!m_Buffer) - return false; - file.Open(File::FILE_MODE_READ); - file.ReadAll(m_Buffer); - file.Close(); - } - return true; - } + } + // pathȡݱmBuffer + else if (m_Type == IOTASK_TYPE_READ) + { + if (!m_Buffer) + return false; + file.Open(File::FILE_MODE_READ); + file.ReadAll(m_Buffer); + file.Close(); + } + return true; +} - void IOTask::Invoke(lua_State* invokeThreaad) +void IOTask::Invoke(lua_State* invokeThreaad) +{ + if (m_Callback) + { + LuaxScopedState state(invokeThreaad); + if (this->PushLuaxMemberRef(state, m_Callback)) { - if (m_Callback) - { - LuaxScopedState state(invokeThreaad); - if (this->PushLuaxMemberRef(state, m_Callback)) - { - this->PushLuaxMemberRef(state, m_BufferRef); - state.Call(1, 0); - } - } + this->PushLuaxMemberRef(state, m_BufferRef); + state.Call(1, 0); } - } } + +namespace_end +namespace_end
\ No newline at end of file |