summaryrefslogtreecommitdiff
path: root/Source/modules/asura-base/FileSystem/IOTask.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/modules/asura-base/FileSystem/IOTask.cpp')
-rw-r--r--Source/modules/asura-base/FileSystem/IOTask.cpp86
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