summaryrefslogtreecommitdiff
path: root/src/KingSystem/Utils/Thread/MessageReceiverEx.cpp
diff options
context:
space:
mode:
authorLéo Lam <leo@leolam.fr>2021-01-31 11:51:38 +0100
committerLéo Lam <leo@leolam.fr>2021-01-31 11:56:06 +0100
commitd6ee0c9183ceb4ba19b59256b47a1a45ab50c3e7 (patch)
treefb7c4a0871281f9d925c702e5ce3a6db2ff41377 /src/KingSystem/Utils/Thread/MessageReceiverEx.cpp
parentde0480c330431dddde62494acbe8753e9aaa82a9 (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.cpp53
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