#ifndef MISSION_TMTC_PUSTMROUTER_H_ #define MISSION_TMTC_PUSTMROUTER_H_ #include <fsfw/ipc/messageQueueDefinitions.h> #include <mission/tmtc/PusPacketFilter.h> /** * Simple composition of concrecte @PusPacketFilters which also maps them to * a destination ID. */ class PusTmRouteByFilterHelper { public: PusTmRouteByFilterHelper(); /** * Checks whether the packet matches any of the inserted filters and returns * the destination if it does. Currently only supports one destination. * @param reader * @param destination * @return */ bool packetMatches(PusTmReader& reader, MessageQueueId_t& destination); void addRouting(PusPacketFilter filter, MessageQueueId_t destination); private: std::vector<std::pair<PusPacketFilter, MessageQueueId_t>> routerMap; }; #endif /* MISSION_TMTC_PUSTMROUTER_H_ */