#ifndef MISSION_TMTC_PERSISTENTSINGLETMSTORETASK_H_ #define MISSION_TMTC_PERSISTENTSINGLETMSTORETASK_H_ #include <fsfw/objectmanager/SystemObject.h> #include <fsfw/tasks/ExecutableObjectIF.h> #include <mission/com/TmStoreTaskBase.h> #include <mission/com/VirtualChannel.h> #include <mission/tmtc/PersistentTmStoreWithTmQueue.h> class PersistentSingleTmStoreTask : public TmStoreTaskBase, public ExecutableObjectIF { public: PersistentSingleTmStoreTask(object_id_t objectId, StorageManagerIF& ipcStore, PersistentTmStoreWithTmQueue& storeWithQueue, VirtualChannel& channel, Event eventIfDumpDone, Event eventIfCancelled, SdCardMountedIF& sdcMan, const std::atomic_bool& ptmeLocked); ReturnValue_t performOperation(uint8_t opCode) override; private: PersistentTmStoreWithTmQueue& storeWithQueue; DumpContext dumpContext; Countdown tcHandlingCd = Countdown(400); Countdown graceDelayDuringDumping = Countdown(100); bool initStoresIfPossible() override; void startTransition(Mode_t mode, Submode_t submode) override; }; #endif /* MISSION_TMTC_PERSISTENTSINGLETMSTORETASK_H_ */