From 7ecf913256fb396e3027aac3318d996a716a52ef Mon Sep 17 00:00:00 2001 From: chai Date: Mon, 25 Oct 2021 23:29:21 +0800 Subject: + job system --- Runtime/FileSystem/File.cpp | 0 Runtime/FileSystem/File.h | 9 +++++++++ Runtime/FileSystem/FileJobs.cpp | 27 +++++++++++++++++++++++++++ Runtime/FileSystem/FileJobs.h | 22 ++++++++++++++++++++++ Runtime/FileSystem/FileSystem.cpp | 9 --------- Runtime/FileSystem/FileSystem.h | 24 ------------------------ Runtime/FileSystem/Unzip.h | 3 +++ 7 files changed, 61 insertions(+), 33 deletions(-) create mode 100644 Runtime/FileSystem/File.cpp create mode 100644 Runtime/FileSystem/File.h create mode 100644 Runtime/FileSystem/FileJobs.cpp create mode 100644 Runtime/FileSystem/FileJobs.h delete mode 100644 Runtime/FileSystem/FileSystem.cpp delete mode 100644 Runtime/FileSystem/FileSystem.h (limited to 'Runtime/FileSystem') diff --git a/Runtime/FileSystem/File.cpp b/Runtime/FileSystem/File.cpp new file mode 100644 index 0000000..e69de29 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 +#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 +#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 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 - -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 + + -- cgit v1.1-26-g67d0