summaryrefslogtreecommitdiff
path: root/src/KingSystem/Resource/resControlTask.h
diff options
context:
space:
mode:
authorLéo Lam <leo@leolam.fr>2020-09-27 00:12:24 +0200
committerLéo Lam <leo@leolam.fr>2020-09-27 13:00:37 +0200
commitba5a3c642d834a04800c6c6bc84cab7fe04ea0e2 (patch)
treeed777a2af2b074182ee30e3cd4080c80f6958502 /src/KingSystem/Resource/resControlTask.h
parentb1926813b720b1f8088db62160cb60430b0b11f2 (diff)
ksys/res: Add ControlTask, TaskRequest
Diffstat (limited to 'src/KingSystem/Resource/resControlTask.h')
-rw-r--r--src/KingSystem/Resource/resControlTask.h41
1 files changed, 41 insertions, 0 deletions
diff --git a/src/KingSystem/Resource/resControlTask.h b/src/KingSystem/Resource/resControlTask.h
new file mode 100644
index 00000000..8bebc1fd
--- /dev/null
+++ b/src/KingSystem/Resource/resControlTask.h
@@ -0,0 +1,41 @@
+#pragma once
+
+#include <prim/seadSafeString.h>
+#include "KingSystem/Resource/resLoadRequest.h"
+#include "KingSystem/Utils/Thread/ManagedTask.h"
+#include "KingSystem/Utils/Thread/TaskData.h"
+#include "KingSystem/Utils/Types.h"
+
+namespace ksys::res {
+
+class Handle;
+class ResourceUnit;
+
+class ControlTaskData : public util::TaskData {
+ SEAD_RTTI_OVERRIDE(ControlTaskData, util::TaskData)
+public:
+ virtual ~ControlTaskData() = default;
+
+ bool mHasResLoadReq = false;
+ ResourceUnit* mPackResUnit = nullptr;
+ Handle* mResHandle = nullptr;
+ sead::FixedSafeString<128> mResPath;
+ LoadRequest mResLoadReq;
+};
+KSYS_CHECK_SIZE_NX150(ControlTaskData, 0x138);
+
+class ControlTask : public util::ManagedTask {
+ SEAD_RTTI_OVERRIDE(ControlTask, util::ManagedTask)
+public:
+ explicit ControlTask(sead::Heap* heap);
+
+private:
+ void onRun_() override;
+ void prepareImpl_(util::TaskRequest* req) override;
+ void preRemoveImpl_() override;
+
+ ControlTaskData mData;
+};
+KSYS_CHECK_SIZE_NX150(ControlTask, 0x1f8);
+
+} // namespace ksys::res