diff options
| author | Léo Lam <leo@leolam.fr> | 2021-01-31 11:51:38 +0100 |
|---|---|---|
| committer | Léo Lam <leo@leolam.fr> | 2021-01-31 11:56:06 +0100 |
| commit | d6ee0c9183ceb4ba19b59256b47a1a45ab50c3e7 (patch) | |
| tree | fb7c4a0871281f9d925c702e5ce3a6db2ff41377 /src/KingSystem/Utils/Thread/MessageReceiverEx.cpp | |
| parent | de0480c330431dddde62494acbe8753e9aaa82a9 (diff) | |
ksys: Rename message classes for more clarity
Diffstat (limited to 'src/KingSystem/Utils/Thread/MessageReceiverEx.cpp')
| -rw-r--r-- | src/KingSystem/Utils/Thread/MessageReceiverEx.cpp | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/src/KingSystem/Utils/Thread/MessageReceiverEx.cpp b/src/KingSystem/Utils/Thread/MessageReceiverEx.cpp new file mode 100644 index 00000000..06006cea --- /dev/null +++ b/src/KingSystem/Utils/Thread/MessageReceiverEx.cpp @@ -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 |
