diff options
| author | Léo Lam <leo@leolam.fr> | 2020-09-27 00:12:24 +0200 |
|---|---|---|
| committer | Léo Lam <leo@leolam.fr> | 2020-09-27 13:00:37 +0200 |
| commit | ba5a3c642d834a04800c6c6bc84cab7fe04ea0e2 (patch) | |
| tree | ed777a2af2b074182ee30e3cd4080c80f6958502 /src/KingSystem/Resource/resControlTask.h | |
| parent | b1926813b720b1f8088db62160cb60430b0b11f2 (diff) | |
ksys/res: Add ControlTask, TaskRequest
Diffstat (limited to 'src/KingSystem/Resource/resControlTask.h')
| -rw-r--r-- | src/KingSystem/Resource/resControlTask.h | 41 |
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 |
