#include "PersistentLogTmStoreTask.h" #include #include PersistentLogTmStoreTask::PersistentLogTmStoreTask(object_id_t objectId, StorageManagerIF& ipcStore, LogStores stores, VirtualChannel& channel, SdCardMountedIF& sdcMan) : TmStoreTaskBase(objectId, ipcStore, channel, sdcMan), stores(stores) {} ReturnValue_t PersistentLogTmStoreTask::performOperation(uint8_t opCode) { while (true) { if (not cyclicStoreCheck()) { continue; } bool someonesBusy = false; bool busy = false; busy = handleOneStore(stores.okStore, persTmStore::DUMP_OK_STORE_DONE); if (busy) { someonesBusy = true; } busy = handleOneStore(stores.notOkStore, persTmStore::DUMP_NOK_STORE_DONE); if (busy) { someonesBusy = true; } busy = handleOneStore(stores.miscStore, persTmStore::DUMP_MISC_STORE_DONE); if (busy) { someonesBusy = true; } if (not someonesBusy) { TaskFactory::delayTask(40); } } } bool PersistentLogTmStoreTask::initStoresIfPossible() { if (sdcMan.isSdCardUsable(std::nullopt)) { stores.okStore.initializeTmStore(); stores.miscStore.initializeTmStore(); stores.notOkStore.initializeTmStore(); return true; } return false; }