summaryrefslogtreecommitdiff
path: root/Runtime/FileSystem
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2021-10-25 23:29:21 +0800
committerchai <chaifix@163.com>2021-10-25 23:29:21 +0800
commit7ecf913256fb396e3027aac3318d996a716a52ef (patch)
tree4540835c881a63b665e2a692bf30115fd29e8bb0 /Runtime/FileSystem
parent0816cd70ca1a213b6ed872bcf3c0bf0912473722 (diff)
+ job system
Diffstat (limited to 'Runtime/FileSystem')
-rw-r--r--Runtime/FileSystem/File.cpp0
-rw-r--r--Runtime/FileSystem/File.h9
-rw-r--r--Runtime/FileSystem/FileJobs.cpp27
-rw-r--r--Runtime/FileSystem/FileJobs.h22
-rw-r--r--Runtime/FileSystem/FileSystem.cpp9
-rw-r--r--Runtime/FileSystem/FileSystem.h24
-rw-r--r--Runtime/FileSystem/Unzip.h3
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
+
+