summaryrefslogtreecommitdiff
path: root/src/KingSystem/Utils/Thread/MessageTransceiverTxOnly.cpp
diff options
context:
space:
mode:
authorLéo Lam <leo@leolam.fr>2021-02-05 01:20:18 +0100
committerLéo Lam <leo@leolam.fr>2021-02-05 02:03:41 +0100
commitf861dcaec31d9a63934d741e9f4b02109d973564 (patch)
tree06571fa44f8ef8317ae81e5a2cecdc6be0a17477 /src/KingSystem/Utils/Thread/MessageTransceiverTxOnly.cpp
parent96612361e6365d8eb731d5f485756b0fb7bcf35a (diff)
ksys: Add MessageTransceiverTxOnly
Diffstat (limited to 'src/KingSystem/Utils/Thread/MessageTransceiverTxOnly.cpp')
-rw-r--r--src/KingSystem/Utils/Thread/MessageTransceiverTxOnly.cpp46
1 files changed, 46 insertions, 0 deletions
diff --git a/src/KingSystem/Utils/Thread/MessageTransceiverTxOnly.cpp b/src/KingSystem/Utils/Thread/MessageTransceiverTxOnly.cpp
new file mode 100644
index 00000000..7cbd11b9
--- /dev/null
+++ b/src/KingSystem/Utils/Thread/MessageTransceiverTxOnly.cpp
@@ -0,0 +1,46 @@
+#include "KingSystem/Utils/Thread/MessageTransceiverTxOnly.h"
+#include "KingSystem/Utils/Thread/MessageTransceiverCommon.h"
+
+namespace ksys {
+
+MessageTransceiverTxOnly::MessageTransceiverTxOnly(IHandler& handler) : mReceiver(handler) {
+ registerReceiver(mReceiver);
+}
+
+MessageTransceiverTxOnly::~MessageTransceiverTxOnly() {
+ deregisterReceiver(mReceiver);
+}
+
+MessageReceiverEx* MessageTransceiverTxOnly::getReceiver() {
+ return &mReceiver;
+}
+
+bool MessageTransceiverTxOnly::sendMessage(const MesTransceiverId& dest, const MessageType& type,
+ void* user_data, bool ack) {
+ return sendMessageImpl(this, dest, type, user_data, ack);
+}
+
+bool MessageTransceiverTxOnly::sendMessageOnProcessingThread(const MesTransceiverId& dest,
+ const MessageType& type,
+ void* user_data, bool ack) {
+ return sendMessageOnProcessingThreadImpl(this, dest, type, user_data, ack);
+}
+
+bool MessageTransceiverTxOnly::sendMessage(IMessageBroker& broker, const MessageType& type,
+ void* user_data, bool ack) {
+ return sendMessageImpl(this, broker, type, user_data, ack);
+}
+
+bool MessageTransceiverTxOnly::sendMessageOnProcessingThread(IMessageBroker& broker,
+ const MessageType& type,
+ void* user_data, bool ack) {
+ return sendMessageOnProcessingThreadImpl(this, broker, type, user_data, ack);
+}
+
+MessageTransceiverTxOnly::Receiver::~Receiver() = default;
+
+void MessageTransceiverTxOnly::Receiver::handleAck(const MessageAck& ack) {
+ mHandler.handleAck(ack);
+}
+
+} // namespace ksys