summaryrefslogtreecommitdiff
path: root/src/KingSystem/Utils/Thread
diff options
context:
space:
mode:
authorLéo Lam <leo@leolam.fr>2021-02-03 22:23:39 +0100
committerLéo Lam <leo@leolam.fr>2021-02-03 23:52:03 +0100
commite237bf4b5d0556e91309927c99ccbfe4874c1b63 (patch)
tree1fdd74fe77902f2f021bde9d06db6a3781e9e1d8 /src/KingSystem/Utils/Thread
parentdf58679ddae8a97b1a64fe3ec62298b11b86a76d (diff)
ksys: Rename messaging system members for clarity
Diffstat (limited to 'src/KingSystem/Utils/Thread')
-rw-r--r--src/KingSystem/Utils/Thread/Message.cpp4
-rw-r--r--src/KingSystem/Utils/Thread/Message.h6
-rw-r--r--src/KingSystem/Utils/Thread/MessageDispatcher.cpp2
-rw-r--r--src/KingSystem/Utils/Thread/MessageReceiverEx.cpp14
-rw-r--r--src/KingSystem/Utils/Thread/MessageReceiverEx.h6
-rw-r--r--src/KingSystem/Utils/Thread/MessageTransceiverBase.cpp18
-rw-r--r--src/KingSystem/Utils/Thread/MessageTransceiverBase.h15
7 files changed, 38 insertions, 27 deletions
diff --git a/src/KingSystem/Utils/Thread/Message.cpp b/src/KingSystem/Utils/Thread/Message.cpp
index 6841197c..186f8095 100644
--- a/src/KingSystem/Utils/Thread/Message.cpp
+++ b/src/KingSystem/Utils/Thread/Message.cpp
@@ -33,7 +33,7 @@ void* Message::getUserData() const {
return mUserData;
}
-u32 Message::getField48() const {
+u32 Message::getBrokerId() const {
return mBrokerId;
}
@@ -55,7 +55,7 @@ void Message::setDestination(const MesTransceiverId& dest) {
mDestination = dest;
}
-void Message::setField48(const u32& v) {
+void Message::setBrokerId(const u32& v) {
mBrokerId = v;
}
diff --git a/src/KingSystem/Utils/Thread/Message.h b/src/KingSystem/Utils/Thread/Message.h
index 654688c2..b61ec25c 100644
--- a/src/KingSystem/Utils/Thread/Message.h
+++ b/src/KingSystem/Utils/Thread/Message.h
@@ -50,7 +50,7 @@ public:
mDestination = other.getDestination();
mType = other.getType();
mUserData = other.getUserData();
- mBrokerId = other.getField48();
+ mBrokerId = other.getBrokerId();
mDelayParams = other.mDelayParams;
mShouldAck = other.shouldAck();
return *this;
@@ -60,10 +60,10 @@ public:
virtual const MesTransceiverId& getDestination() const;
virtual const MessageType& getType() const;
virtual void* getUserData() const;
- virtual u32 getField48() const;
+ virtual u32 getBrokerId() const;
virtual bool shouldAck() const;
virtual void setDestination(const MesTransceiverId& dest);
- virtual void setField48(const u32& v);
+ virtual void setBrokerId(const u32& v);
virtual bool shouldBeProcessed() const;
bool hasDelayer() const { return mDelayParams.delayer != nullptr; }
diff --git a/src/KingSystem/Utils/Thread/MessageDispatcher.cpp b/src/KingSystem/Utils/Thread/MessageDispatcher.cpp
index 840e001f..b1bdcf24 100644
--- a/src/KingSystem/Utils/Thread/MessageDispatcher.cpp
+++ b/src/KingSystem/Utils/Thread/MessageDispatcher.cpp
@@ -194,7 +194,7 @@ void MessageDispatcher::registerTransceiver(MessageReceiverEx& receiver) {
}
void MessageDispatcher::deregisterTransceiver(MessageReceiverEx& receiver) {
- if (receiver.checkFlag() && receiver.checkCounter())
+ if (receiver.checkFlag() && receiver.isWaitingForAck())
mUpdateEndEvent.wait();
const auto lock = sead::makeScopedLock(mCritSection);
diff --git a/src/KingSystem/Utils/Thread/MessageReceiverEx.cpp b/src/KingSystem/Utils/Thread/MessageReceiverEx.cpp
index 40a7b894..91564f13 100644
--- a/src/KingSystem/Utils/Thread/MessageReceiverEx.cpp
+++ b/src/KingSystem/Utils/Thread/MessageReceiverEx.cpp
@@ -12,22 +12,22 @@ int MessageReceiverEx::receive(const Message& message) {
void MessageReceiverEx::receive(const MessageAck& ack) {
handleAck(ack);
- --mCounter;
- static_cast<void>(mCounter.load());
+ --mNumPendingAcks;
+ static_cast<void>(mNumPendingAcks.load());
}
bool MessageReceiverEx::checkFlag() const {
return mFlag && *mFlag == 1;
}
-bool MessageReceiverEx::checkCounter() const {
- return mCounter > 0;
+bool MessageReceiverEx::isWaitingForAck() const {
+ return mNumPendingAcks > 0;
}
-void MessageReceiverEx::setFlag(bool update_counter) {
+void MessageReceiverEx::setFlag(bool ack_requested) {
if (mFlag) {
- if (update_counter)
- mCounter.increment();
+ if (ack_requested)
+ mNumPendingAcks.increment();
*mFlag = 1;
}
}
diff --git a/src/KingSystem/Utils/Thread/MessageReceiverEx.h b/src/KingSystem/Utils/Thread/MessageReceiverEx.h
index 80a10a15..b53c85f7 100644
--- a/src/KingSystem/Utils/Thread/MessageReceiverEx.h
+++ b/src/KingSystem/Utils/Thread/MessageReceiverEx.h
@@ -14,8 +14,8 @@ public:
void receive(const MessageAck& ack) override;
bool checkFlag() const;
- bool checkCounter() const;
- void setFlag(bool update_counter);
+ bool isWaitingForAck() const;
+ void setFlag(bool ack_requested);
u8* getFlagPointer() const { return mFlag; }
void setFlagPointer(u8* ptr);
@@ -29,7 +29,7 @@ protected:
private:
u8* mFlag{};
- sead::Atomic<s32> mCounter;
+ sead::Atomic<s32> mNumPendingAcks;
};
} // namespace ksys
diff --git a/src/KingSystem/Utils/Thread/MessageTransceiverBase.cpp b/src/KingSystem/Utils/Thread/MessageTransceiverBase.cpp
index d1c8a023..540c1f80 100644
--- a/src/KingSystem/Utils/Thread/MessageTransceiverBase.cpp
+++ b/src/KingSystem/Utils/Thread/MessageTransceiverBase.cpp
@@ -14,23 +14,29 @@ bool MessageTransceiverBase::checkReceiverFlag() const {
return getReceiver()->checkFlag();
}
-bool MessageTransceiverBase::checkReceiverCounter() const {
- return getReceiver()->checkCounter();
+bool MessageTransceiverBase::isWaitingForAck() const {
+ return getReceiver()->isWaitingForAck();
}
-bool MessageTransceiverBase::m2() {
+bool MessageTransceiverBase::sendMessage(const MesTransceiverId& dest, const MessageType& type,
+ void* user_data, bool ack) {
return false;
}
-bool MessageTransceiverBase::m3() {
+bool MessageTransceiverBase::sendMessageOnProcessingThread(const MesTransceiverId& dest,
+ const MessageType& type, void* user_data,
+ bool ack) {
return false;
}
-bool MessageTransceiverBase::m4() {
+bool MessageTransceiverBase::sendMessage(IMessageBroker& broker, const MessageType& type,
+ void* user_data, bool ack) {
return false;
}
-bool MessageTransceiverBase::m5() {
+bool MessageTransceiverBase::sendMessageOnProcessingThread(IMessageBroker& broker,
+ const MessageType& type, void* user_data,
+ bool ack) {
return false;
}
diff --git a/src/KingSystem/Utils/Thread/MessageTransceiverBase.h b/src/KingSystem/Utils/Thread/MessageTransceiverBase.h
index 33ff4580..21ff106a 100644
--- a/src/KingSystem/Utils/Thread/MessageTransceiverBase.h
+++ b/src/KingSystem/Utils/Thread/MessageTransceiverBase.h
@@ -9,17 +9,22 @@ class IMessageBrokerRegister;
class MessageDispatcherBase;
struct MesTransceiverId;
class MessageReceiverEx;
+struct MessageType;
class MessageTransceiverBase {
public:
MessageTransceiverBase();
virtual ~MessageTransceiverBase();
bool checkReceiverFlag() const;
- bool checkReceiverCounter() const;
- virtual bool m2();
- virtual bool m3();
- virtual bool m4();
- virtual bool m5();
+ bool isWaitingForAck() const;
+ virtual bool sendMessage(const MesTransceiverId& dest, const MessageType& type, void* user_data,
+ bool ack);
+ virtual bool sendMessageOnProcessingThread(const MesTransceiverId& dest,
+ const MessageType& type, void* user_data, bool ack);
+ virtual bool sendMessage(IMessageBroker& broker, const MessageType& type, void* user_data,
+ bool ack);
+ virtual bool sendMessageOnProcessingThread(IMessageBroker& broker, const MessageType& type,
+ void* user_data, bool ack);
virtual MessageReceiverEx* getReceiver() const = 0;
MessageDispatcherBase* getDispatcher();
MesTransceiverId* getId() const { return mId; }