ksys/res: Add MemoryTask

This commit is contained in:
Léo Lam
2020-09-27 14:41:13 +02:00
parent 50ebf5116f
commit 2930173f65
4 changed files with 87 additions and 14 deletions
+4 -2
View File
@@ -86,6 +86,8 @@ target_sources(uking PRIVATE
resCache.h
resCacheCriticalSection.cpp
resCacheCriticalSection.h
resControlTask.cpp
resControlTask.h
resCurrentResNameMgr.cpp
resCurrentResNameMgr.h
resEntryFactory.cpp
@@ -94,8 +96,8 @@ target_sources(uking PRIVATE
resHandle.h
resLoadRequest.cpp
resLoadRequest.h
resControlTask.cpp
resControlTask.h
resMemoryTask.cpp
resMemoryTask.h
resOffsetReadFileDevice.cpp
resOffsetReadFileDevice.h
resResourceMgrTask.cpp
+23
View File
@@ -0,0 +1,23 @@
#include "KingSystem/Resource/resMemoryTask.h"
#include "KingSystem/Resource/resSystem.h"
namespace ksys::res {
MemoryTask::MemoryTask(sead::Heap* heap) : util::ManagedTask(heap) {}
void MemoryTask::onRun_() {}
void MemoryTask::prepareImpl_(util::TaskRequest* req_) {
auto* req = static_cast<MemoryTaskRequest*>(req_);
mData._8 = req->mData_8;
mData._c = req->mData_c;
mData.mStr = req->mData_mStr;
setUserData();
}
void MemoryTask::preRemoveImpl_() {
if (returnFalse())
stubbedLogFunction();
}
} // namespace ksys::res
+48
View File
@@ -0,0 +1,48 @@
#pragma once
#include <prim/seadSafeString.h>
#include "KingSystem/Utils/Thread/ManagedTask.h"
#include "KingSystem/Utils/Thread/TaskData.h"
#include "KingSystem/Utils/Types.h"
namespace ksys::res {
class MemoryTaskData : public util::TaskData {
SEAD_RTTI_OVERRIDE(MemoryTaskData, util::TaskData)
public:
virtual ~MemoryTaskData() = default;
bool _8 = false;
s32 _c = -1;
sead::FixedSafeString<128> mStr;
};
KSYS_CHECK_SIZE_NX150(MemoryTaskData, 0xa8);
class MemoryTask : public util::ManagedTask {
SEAD_RTTI_OVERRIDE(MemoryTask, util::ManagedTask)
public:
explicit MemoryTask(sead::Heap* heap);
~MemoryTask() override { ; }
private:
void onRun_() override;
void prepareImpl_(util::TaskRequest* req) override;
void preRemoveImpl_() override;
void setUserData() { util::ManagedTask::setUserData(&mData); }
MemoryTaskData mData;
};
KSYS_CHECK_SIZE_NX150(MemoryTask, 0x168);
class MemoryTaskRequest : public util::TaskRequest {
SEAD_RTTI_OVERRIDE(MemoryTaskRequest, util::TaskRequest)
public:
MemoryTaskRequest() = default;
bool mData_8 = false;
s32 mData_c = -1;
sead::FixedSafeString<128> mData_mStr;
};
} // namespace ksys::res