#ifndef MISSION_TMTC_PERSISTENTTMSTOREWITHTMQUEUE_H_
#define MISSION_TMTC_PERSISTENTTMSTOREWITHTMQUEUE_H_
#include <mission/tmtc/PersistentTmStore.h>

class PersistentTmStoreWithTmQueue : public PersistentTmStore, public AcceptsTelemetryIF {
 public:
  PersistentTmStoreWithTmQueue(PersistentTmStoreArgs args, const char* storeName,
                               uint32_t tmQueueDepth);

  ReturnValue_t handleNextTm();

  [[nodiscard]] const char* getName() const override;
  [[nodiscard]] MessageQueueId_t getReportReceptionQueue(uint8_t virtualChannel) const override;

 private:
  const char* storeName;
  MessageQueueIF* tmQueue;
};

#endif /* MISSION_TMTC_PERSISTENTTMSTOREWITHTMQUEUE_H_ */