20 lines
589 B
C++
20 lines
589 B
C++
|
#include "PusTmRouteByFilterHelper.h"
|
||
|
|
||
|
#include <fsfw/ipc/MessageQueueIF.h>
|
||
|
|
||
|
PusTmRouteByFilterHelper::PusTmRouteByFilterHelper() = default;
|
||
|
|
||
|
bool PusTmRouteByFilterHelper::packetMatches(PusTmReader& reader, MessageQueueId_t& destination) {
|
||
|
for (const auto filterAndDest : routerMap) {
|
||
|
if (filterAndDest.first.packetMatches(reader)) {
|
||
|
destination = filterAndDest.second;
|
||
|
return true;
|
||
|
}
|
||
|
}
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
void PusTmRouteByFilterHelper::addRouting(PusPacketFilter filter, MessageQueueId_t destination) {
|
||
|
routerMap.emplace_back(std::move(filter), destination);
|
||
|
}
|