diff options
| author | Léo Lam <leo@leolam.fr> | 2021-01-31 16:30:11 +0100 |
|---|---|---|
| committer | Léo Lam <leo@leolam.fr> | 2021-01-31 21:50:43 +0100 |
| commit | 36bed5720761f3d02ce2c16040cd33b753abf66c (patch) | |
| tree | 9bf783c35a0d4c938de554bfed92b1bdfc558169 /src/KingSystem/Utils/Thread/MessageProcessor.cpp | |
| parent | 27f8a7bdda5c616c71248545ece924d0eafb746a (diff) | |
ksys: Start adding MessageDispatcher
Diffstat (limited to 'src/KingSystem/Utils/Thread/MessageProcessor.cpp')
| -rw-r--r-- | src/KingSystem/Utils/Thread/MessageProcessor.cpp | 19 |
1 files changed, 3 insertions, 16 deletions
diff --git a/src/KingSystem/Utils/Thread/MessageProcessor.cpp b/src/KingSystem/Utils/Thread/MessageProcessor.cpp index 296d24a8..88ce1b93 100644 --- a/src/KingSystem/Utils/Thread/MessageProcessor.cpp +++ b/src/KingSystem/Utils/Thread/MessageProcessor.cpp @@ -1,5 +1,4 @@ #include "KingSystem/Utils/Thread/MessageProcessor.h" -#include <tuple> #include "KingSystem/Utils/Thread/Message.h" #include "KingSystem/Utils/Thread/MessageAck.h" #include "KingSystem/Utils/Thread/MessageReceiver.h" @@ -10,18 +9,6 @@ MessageProcessor::MessageProcessor(Logger* logger) : mLogger(logger) {} MessageProcessor::~MessageProcessor() = default; -static bool checkTransceiver(const MesTransceiverId& id) { - if (!id.next) - return false; - - MesTransceiverId* next = *id.next; - if (!next) - return false; - - const auto& fields = [](const MesTransceiverId& i) { return std::tie(i.queue_id, i.id); }; - return fields(id) == fields(*next); -} - bool MessageProcessor::process(Message* message) { message->decrementDelay(); @@ -32,17 +19,17 @@ bool MessageProcessor::process(Message* message) { bool dest_valid = false; const auto& dest = message->getDestination(); - if (checkTransceiver(dest)) { + if (Message::checkTransceiver(dest)) { success = dest.receiver->receive(*message) & 1; mLogger->log(*message, success); dest_valid = true; } const auto& src = message->getSource(); - if (!message->hasDelayer() || checkTransceiver(src)) { + if (!message->hasDelayer() || Message::checkTransceiver(src)) { if (message->shouldAck()) { const auto& source = message->getSource(); - if (checkTransceiver(source)) { + if (Message::checkTransceiver(source)) { auto* receiver = source.receiver; const MessageAck ack{dest_valid, success, message->getDestination(), message->getType(), message->getUserData()}; |
