diff options
Diffstat (limited to 'Runtime/FileSystem')
-rw-r--r-- | Runtime/FileSystem/File.cpp | 0 | ||||
-rw-r--r-- | Runtime/FileSystem/File.h | 9 | ||||
-rw-r--r-- | Runtime/FileSystem/FileJobs.cpp | 27 | ||||
-rw-r--r-- | Runtime/FileSystem/FileJobs.h | 22 | ||||
-rw-r--r-- | Runtime/FileSystem/FileSystem.cpp | 9 | ||||
-rw-r--r-- | Runtime/FileSystem/FileSystem.h | 24 | ||||
-rw-r--r-- | Runtime/FileSystem/Unzip.h | 3 |
7 files changed, 61 insertions, 33 deletions
diff --git a/Runtime/FileSystem/File.cpp b/Runtime/FileSystem/File.cpp new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/Runtime/FileSystem/File.cpp diff --git a/Runtime/FileSystem/File.h b/Runtime/FileSystem/File.h new file mode 100644 index 0000000..19e780d --- /dev/null +++ b/Runtime/FileSystem/File.h @@ -0,0 +1,9 @@ +#pragma once +#include "Runtime/Lua/LuaHelper.h" + +class File +{ +public: + + +}; diff --git a/Runtime/FileSystem/FileJobs.cpp b/Runtime/FileSystem/FileJobs.cpp new file mode 100644 index 0000000..29e99a4 --- /dev/null +++ b/Runtime/FileSystem/FileJobs.cpp @@ -0,0 +1,27 @@ +#include <fstream> +#include "FileJobs.h" + +using namespace std; + +void ReadFilesJob::Dispacth(void* param) +{ + LUA_BIND_STATE((lua_State*)param); + if (!callback) + return; + callback.PushRef(state); + state.Call(0, 0); +} + +void ReadFilesJob::Process() +{ + if (IsFinished()) + return; + ifstream infile; + infile.open(files[cur]); + ++cur; +} + +bool ReadFilesJob::IsFinished() +{ + return cur >= files.size(); +}
\ No newline at end of file diff --git a/Runtime/FileSystem/FileJobs.h b/Runtime/FileSystem/FileJobs.h new file mode 100644 index 0000000..2e53a39 --- /dev/null +++ b/Runtime/FileSystem/FileJobs.h @@ -0,0 +1,22 @@ +#pragma once + +#include <vector> +#include "Runtime/Threading/Job.h" +#include "Runtime/Lua/LuaHelper.h" +#include "Runtime/Threading/JobSystem.h" + +class ReadFilesJob : public Job +{ +public: + ReadFilesJob(LuaBind::VM* vm) : callback(vm), cur(0) {} + ~ReadFilesJob() {} + + void Dispacth(void* param) override; + void Process() override; + bool IsFinished() override; + + int cur = 0; //当前处理的文件 + std::vector<std::string> files; // 文件路径 + LuaBind::StrongRef callback; // 完成后的回调函数 + +}; diff --git a/Runtime/FileSystem/FileSystem.cpp b/Runtime/FileSystem/FileSystem.cpp deleted file mode 100644 index 8816f78..0000000 --- a/Runtime/FileSystem/FileSystem.cpp +++ /dev/null @@ -1,9 +0,0 @@ -#include "FileSystem.h" - -FileSystem& GetFileSystem() { - if (!FileSystem::m_Instance) - { - FileSystem::m_Instance = new FileSystem(); - } - return *FileSystem::m_Instance; -} diff --git a/Runtime/FileSystem/FileSystem.h b/Runtime/FileSystem/FileSystem.h deleted file mode 100644 index aae39c1..0000000 --- a/Runtime/FileSystem/FileSystem.h +++ /dev/null @@ -1,24 +0,0 @@ -#ifndef FILESYSTEM_H -#define FILESYSTEM_H - -#include <string> - -class FileSystem -{ -public: - std::string GetDataPath(); - std::string GetPersistentPath(); - std::string GetTempPath(); - -private: - FileSystem(); - - static FileSystem* m_Instance; - - friend FileSystem& GetFileSystem(); - -}; - -FileSystem& GetFileSystem(); - -#endif
\ No newline at end of file diff --git a/Runtime/FileSystem/Unzip.h b/Runtime/FileSystem/Unzip.h index e69de29..45dcbb0 100644 --- a/Runtime/FileSystem/Unzip.h +++ b/Runtime/FileSystem/Unzip.h @@ -0,0 +1,3 @@ +#pragma once + + |