#ifndef FSFW_DATAPOOLLOCAL_PROVIDESDATAPOOLSUBSCRIPTION_H_ #define FSFW_DATAPOOLLOCAL_PROVIDESDATAPOOLSUBSCRIPTION_H_ #include #include #include "fsfw/housekeeping/AcceptsHkPacketsIF.h" #include "fsfw/ipc/MessageQueueIF.h" #include "fsfw/ipc/messageQueueDefinitions.h" #include "fsfw/returnvalues/returnvalue.h" #include "localPoolDefinitions.h" namespace subdp { struct ParamsBase { ParamsBase(sid_t sid, bool enableReporting, dur_millis_t collectionIntervalMs) : sid(sid), enableReporting(enableReporting), collectionIntervalMs(collectionIntervalMs) {} [[nodiscard]] bool isDiagnostics() const { return diagnostics; } sid_t sid; bool enableReporting; dur_millis_t collectionIntervalMs; MessageQueueId_t receiver = MessageQueueIF::NO_QUEUE; protected: bool diagnostics; }; struct RegularHkPeriodicParams : public ParamsBase { RegularHkPeriodicParams(sid_t sid, bool enableReporting, dur_millis_t collectionIntervalMs) : ParamsBase(sid, enableReporting, collectionIntervalMs) {} }; struct RegularHkUpdateParams : public ParamsBase { RegularHkUpdateParams(sid_t sid, bool enableReporting) : ParamsBase(sid, enableReporting, 0) {} }; struct DiagnosticsHkUpdateParams : public ParamsBase { DiagnosticsHkUpdateParams(sid_t sid, bool enableReporting) : ParamsBase(sid, enableReporting, 0) {} }; } // namespace subdp #endif /* FSFW_DATAPOOLLOCAL_PROVIDESDATAPOOLSUBSCRIPTION_H_ */