ksys: Rename message classes for more clarity

This commit is contained in:
Léo Lam
2021-01-31 11:51:38 +01:00
parent de0480c330
commit d6ee0c9183
15 changed files with 169 additions and 171 deletions
+6 -6
View File
@@ -9,16 +9,16 @@ target_sources(uking PRIVATE
Thread/ManagedTaskHandle.h
Thread/MessageDispatcherBase.cpp
Thread/MessageDispatcherBase.h
Thread/MessageReceiver.cpp
Thread/MessageReceiver.h
Thread/MessageReceiverAdapter.cpp
Thread/MessageReceiverAdapter.h
Thread/MessageReceiverEx.cpp
Thread/MessageReceiverEx.h
Thread/MessageTransceiverBase.cpp
Thread/MessageTransceiverBase.h
Thread/MessageTransceiverId.cpp
Thread/MessageTransceiverId.h
Thread/MessageTransceiverIdGen.cpp
Thread/MessageTransceiverIdGen.h
Thread/MessageTransceiverIdGenEx.cpp
Thread/MessageTransceiverIdGenEx.h
Thread/MessageTransceiverIdGenExAdapter.cpp
Thread/MessageTransceiverIdGenExAdapter.h
Thread/Task.cpp
Thread/Task.h
Thread/TaskData.h
@@ -0,0 +1,21 @@
#include "KingSystem/Utils/Thread/MessageReceiver.h"
namespace ksys {
u32 MessageReceiver::sId{};
MessageReceiver::MessageReceiver() : mTransceiverId(sId, this) {}
MessageReceiver::~MessageReceiver() = default;
MesTransceiverId* MessageReceiver::getId() {
return &mTransceiverId;
}
bool MessageReceiver::m1(void*) {
return true;
}
void MessageReceiver::m2(void* x) {}
} // namespace ksys
@@ -5,14 +5,14 @@
namespace ksys {
class MesTransceiverIdGen {
class MessageReceiver {
public:
MesTransceiverIdGen();
virtual ~MesTransceiverIdGen();
MessageReceiver();
virtual ~MessageReceiver();
virtual MesTransceiverId* getId();
virtual bool m1(void*);
virtual void m2(void* x);
virtual void setField0(const u32& value) { mTransceiverId._0 = value; }
virtual void setField0(const u32& value) { mTransceiverId.queue_id = value; }
protected:
MesTransceiverId mTransceiverId;
@@ -0,0 +1,18 @@
#include "KingSystem/Utils/Thread/MessageReceiverAdapter.h"
namespace ksys {
MessageReceiverAdapter::MessageReceiverAdapter(MessageReceiver* wrapped)
: mReceiver(wrapped) {}
MessageReceiverAdapter::~MessageReceiverAdapter() = default;
bool MessageReceiverAdapter::m6(void* x) {
return mReceiver->m1(x);
}
void MessageReceiverAdapter::m7(void* x) {
return mReceiver->m2(x);
}
} // namespace ksys
@@ -0,0 +1,21 @@
#pragma once
#include "KingSystem/Utils/Thread/MessageReceiverEx.h"
namespace ksys {
class MessageReceiverAdapter : public MessageReceiverEx {
SEAD_RTTI_OVERRIDE(MessageReceiverAdapter, MessageReceiverEx)
public:
explicit MessageReceiverAdapter(MessageReceiver* wrapped);
~MessageReceiverAdapter() override;
protected:
bool m6(void* x) override;
void m7(void* x) override;
private:
MessageReceiver* mReceiver;
};
} // namespace ksys
@@ -0,0 +1,53 @@
#include "KingSystem/Utils/Thread/MessageReceiverEx.h"
namespace ksys {
MessageReceiverEx::MessageReceiverEx() = default;
MessageReceiverEx::~MessageReceiverEx() = default;
bool MessageReceiverEx::m1(void* x) {
return m6(x);
}
void MessageReceiverEx::m2(void* x) {
m7(x);
--mCounter;
static_cast<void>(mCounter.load());
}
bool MessageReceiverEx::checkFlag() const {
return mFlag && *mFlag == 1;
}
bool MessageReceiverEx::checkCounter() const {
return mCounter > 0;
}
void MessageReceiverEx::setFlag(bool update_counter) {
if (mFlag) {
if (update_counter)
mCounter.increment();
*mFlag = 1;
}
}
bool MessageReceiverEx::m6(void* x) {
return true;
}
void MessageReceiverEx::m7(void* x) {}
void MessageReceiverEx::setFlagPointer(u8* ptr) {
if (ptr) {
mFlag = ptr;
*mFlag = 0;
}
}
void MessageReceiverEx::clearFlagPointer() {
*mFlag = 0;
mFlag = nullptr;
}
} // namespace ksys
@@ -2,14 +2,14 @@
#include <prim/seadRuntimeTypeInfo.h>
#include <thread/seadAtomic.h>
#include "KingSystem/Utils/Thread/MessageTransceiverIdGen.h"
#include "KingSystem/Utils/Thread/MessageReceiver.h"
namespace ksys {
class MesTransceiverIdGenEx : public MesTransceiverIdGen {
class MessageReceiverEx : public MessageReceiver {
public:
MesTransceiverIdGenEx();
~MesTransceiverIdGenEx() override;
MessageReceiverEx();
~MessageReceiverEx() override;
bool m1(void*) override;
void m2(void* x) override;
@@ -20,7 +20,7 @@ public:
void setFlagPointer(u8* ptr);
void clearFlagPointer();
SEAD_RTTI_BASE(MesTransceiverIdGenEx)
SEAD_RTTI_BASE(MessageReceiverEx)
protected:
virtual bool m6(void* x);
@@ -1,5 +1,5 @@
#include "KingSystem/Utils/Thread/MessageTransceiverBase.h"
#include "KingSystem/Utils/Thread/MessageTransceiverIdGenEx.h"
#include "KingSystem/Utils/Thread/MessageReceiverEx.h"
namespace ksys {
@@ -6,7 +6,7 @@ namespace ksys {
class MessageDispatcherBase;
struct MesTransceiverId;
class MesTransceiverIdGenEx;
class MessageReceiverEx;
class MessageTransceiverBase {
public:
@@ -18,7 +18,7 @@ public:
virtual bool m3();
virtual bool m4();
virtual bool m5();
virtual MesTransceiverIdGenEx* getGenerator() const = 0;
virtual MessageReceiverEx* getGenerator() const = 0;
MessageDispatcherBase* getDispatcher();
static void setGlobalDispatcher(MessageDispatcherBase* dispatcher);
@@ -6,33 +6,31 @@
namespace ksys {
class MesTransceiverIdGen;
class MessageReceiver;
struct MesTransceiverId {
MesTransceiverId() { reset(); }
MesTransceiverId(u32& id, MesTransceiverIdGen* generator)
: _0(0xffffffff), id(++id), generator(generator) {}
MesTransceiverId(u32& id, MessageReceiver* receiver) : id(++id), receiver(receiver) {}
~MesTransceiverId() { reset(); }
void reset() {
_0 = 0xffffffff;
queue_id = 0xffffffff;
id = 0xffffffff;
generator = nullptr;
receiver = nullptr;
next = nullptr;
}
MesTransceiverId& operator=(const MesTransceiverId& other) {
_0 = other._0;
queue_id = other.queue_id;
id = other.id;
generator = other.generator;
receiver = other.receiver;
next = other.next;
return *this;
}
u32 _0{};
u32 id{};
MesTransceiverIdGen* generator{};
u32 queue_id = 0xffffffff;
u32 id = 0xffffffff;
MessageReceiver* receiver{};
MesTransceiverId** next{};
};
KSYS_CHECK_SIZE_NX150(MesTransceiverId, 0x18);
@@ -1,21 +0,0 @@
#include "KingSystem/Utils/Thread/MessageTransceiverIdGen.h"
namespace ksys {
u32 MesTransceiverIdGen::sId{};
MesTransceiverIdGen::MesTransceiverIdGen() : mTransceiverId(sId, this) {}
MesTransceiverIdGen::~MesTransceiverIdGen() = default;
MesTransceiverId* MesTransceiverIdGen::getId() {
return &mTransceiverId;
}
bool MesTransceiverIdGen::m1(void*) {
return true;
}
void MesTransceiverIdGen::m2(void* x) {}
} // namespace ksys
@@ -1,53 +0,0 @@
#include "KingSystem/Utils/Thread/MessageTransceiverIdGenEx.h"
namespace ksys {
MesTransceiverIdGenEx::MesTransceiverIdGenEx() = default;
MesTransceiverIdGenEx::~MesTransceiverIdGenEx() = default;
bool MesTransceiverIdGenEx::m1(void* x) {
return m6(x);
}
void MesTransceiverIdGenEx::m2(void* x) {
m7(x);
--mCounter;
static_cast<void>(mCounter.load());
}
bool MesTransceiverIdGenEx::checkFlag() const {
return mFlag && *mFlag == 1;
}
bool MesTransceiverIdGenEx::checkCounter() const {
return mCounter > 0;
}
void MesTransceiverIdGenEx::setFlag(bool update_counter) {
if (mFlag) {
if (update_counter)
mCounter.increment();
*mFlag = 1;
}
}
bool MesTransceiverIdGenEx::m6(void* x) {
return true;
}
void MesTransceiverIdGenEx::m7(void* x) {}
void MesTransceiverIdGenEx::setFlagPointer(u8* ptr) {
if (ptr) {
mFlag = ptr;
*mFlag = 0;
}
}
void MesTransceiverIdGenEx::clearFlagPointer() {
*mFlag = 0;
mFlag = nullptr;
}
} // namespace ksys
@@ -1,18 +0,0 @@
#include "KingSystem/Utils/Thread/MessageTransceiverIdGenExAdapter.h"
namespace ksys {
MesTransceiverIdGenExAdapter::MesTransceiverIdGenExAdapter(MesTransceiverIdGen* wrapped)
: mGenerator(wrapped) {}
MesTransceiverIdGenExAdapter::~MesTransceiverIdGenExAdapter() = default;
bool MesTransceiverIdGenExAdapter::m6(void* x) {
return mGenerator->m1(x);
}
void MesTransceiverIdGenExAdapter::m7(void* x) {
return mGenerator->m2(x);
}
} // namespace ksys
@@ -1,21 +0,0 @@
#pragma once
#include "KingSystem/Utils/Thread/MessageTransceiverIdGenEx.h"
namespace ksys {
class MesTransceiverIdGenExAdapter : public MesTransceiverIdGenEx {
SEAD_RTTI_OVERRIDE(MesTransceiverIdGenExAdapter, MesTransceiverIdGenEx)
public:
explicit MesTransceiverIdGenExAdapter(MesTransceiverIdGen* wrapped);
~MesTransceiverIdGenExAdapter() override;
protected:
bool m6(void* x) override;
void m7(void* x) override;
private:
MesTransceiverIdGen* mGenerator;
};
} // namespace ksys