diff options
| author | Léo Lam <leo@leolam.fr> | 2021-02-03 22:23:39 +0100 |
|---|---|---|
| committer | Léo Lam <leo@leolam.fr> | 2021-02-03 23:52:03 +0100 |
| commit | e237bf4b5d0556e91309927c99ccbfe4874c1b63 (patch) | |
| tree | 1fdd74fe77902f2f021bde9d06db6a3781e9e1d8 /src/KingSystem/Utils/Thread | |
| parent | df58679ddae8a97b1a64fe3ec62298b11b86a76d (diff) | |
ksys: Rename messaging system members for clarity
Diffstat (limited to 'src/KingSystem/Utils/Thread')
| -rw-r--r-- | src/KingSystem/Utils/Thread/Message.cpp | 4 | ||||
| -rw-r--r-- | src/KingSystem/Utils/Thread/Message.h | 6 | ||||
| -rw-r--r-- | src/KingSystem/Utils/Thread/MessageDispatcher.cpp | 2 | ||||
| -rw-r--r-- | src/KingSystem/Utils/Thread/MessageReceiverEx.cpp | 14 | ||||
| -rw-r--r-- | src/KingSystem/Utils/Thread/MessageReceiverEx.h | 6 | ||||
| -rw-r--r-- | src/KingSystem/Utils/Thread/MessageTransceiverBase.cpp | 18 | ||||
| -rw-r--r-- | src/KingSystem/Utils/Thread/MessageTransceiverBase.h | 15 |
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; } |
