#ifndef MISSION_TMTC_TMFUNNELBASE_H_ #define MISSION_TMTC_TMFUNNELBASE_H_ #include <fsfw/objectmanager/SystemObject.h> #include <fsfw/storagemanager/StorageManagerIF.h> #include <fsfw/tmtcservices/AcceptsTelemetryIF.h> #include <vector> class TmFunnelBase : public AcceptsTelemetryIF, public SystemObject { public: TmFunnelBase(object_id_t objectId, StorageManagerIF& tmStore, uint32_t tmMsgDepth); void addDestination(const AcceptsTelemetryIF& downlinkDestination, uint8_t vcid = 0); [[nodiscard]] MessageQueueId_t getReportReceptionQueue(uint8_t virtualChannel) const override; virtual ~TmFunnelBase(); protected: StorageManagerIF& tmStore; std::vector<std::pair<MessageQueueId_t, uint8_t>> destinations; MessageQueueIF* tmQueue = nullptr; }; #endif /* MISSION_TMTC_TMFUNNELBASE_H_ */