bugfix/ai-static-analysis #82

Open
localhorst wants to merge 15 commits from bugfix/ai-static-analysis into master
2 changed files with 105 additions and 103 deletions
Showing only changes of commit 46e8dae697 - Show all commits

View File

@ -135,6 +135,10 @@ void reHDD::ThreadUserInput()
{
while (true)
{
Drive *tmpSelectedDrive = getSelectedDrive();
if (tmpSelectedDrive != nullptr)
{
// cout << TUI::readUserInput() << endl;
switch (TUI::readUserInput())
{
@ -159,11 +163,11 @@ void reHDD::ThreadUserInput()
case TUI::UserInput::Delete:
// cout << "Delete" << endl;
if (getSelectedDrive() != nullptr)
if (tmpSelectedDrive != nullptr)
{
if (getSelectedDrive()->state == Drive::NONE)
if (tmpSelectedDrive->state == Drive::NONE)
{
getSelectedDrive()->state = Drive::DELETE_SELECTED;
tmpSelectedDrive->state = Drive::DELETE_SELECTED;
}
}
@ -171,15 +175,10 @@ void reHDD::ThreadUserInput()
break;
case TUI::UserInput::Shred:
// cout << "Shred" << endl;
if (getSelectedDrive() != nullptr)
if (tmpSelectedDrive->state == Drive::NONE)
{
if (getSelectedDrive()->state == Drive::NONE)
{
getSelectedDrive()->state = Drive::SHRED_SELECTED;
tmpSelectedDrive->state = Drive::SHRED_SELECTED;
}
}
ui->updateTUI(&listDrives, u8SelectedEntry);
break;
case TUI::UserInput::ShredAll:
@ -209,6 +208,7 @@ void reHDD::ThreadUserInput()
}
}
}
}
void reHDD::ThreadShred(Drive *const pDrive)
{
@ -224,13 +224,14 @@ void reHDD::ThreadShred(Drive *const pDrive)
void reHDD::ThreadDelete()
{
if (getSelectedDrive() != nullptr)
Drive *tmpSelectedDrive = getSelectedDrive();
if (tmpSelectedDrive != nullptr)
{
getSelectedDrive()->setActionStartTimestamp(); // save timestamp at start of deleting
Delete::deleteDrive(getSelectedDrive()); // blocking, no thread
getSelectedDrive()->state = Drive::TaskState::NONE; // delete finished
getSelectedDrive()->bWasDeleted = true;
Logger::logThis()->info("Finished delete for: " + getSelectedDrive()->getModelName() + "-" + getSelectedDrive()->getSerial());
tmpSelectedDrive->setActionStartTimestamp(); // save timestamp at start of deleting
Delete::deleteDrive(tmpSelectedDrive); // blocking, no thread
tmpSelectedDrive->state = Drive::TaskState::NONE; // delete finished
tmpSelectedDrive->bWasDeleted = true;
Logger::logThis()->info("Finished delete for: " + tmpSelectedDrive->getModelName() + "-" + tmpSelectedDrive->getSerial());
ui->updateTUI(&listDrives, u8SelectedEntry);
}
}
@ -313,7 +314,6 @@ void reHDD::searchDrives(std::list<Drive> *plistDrives)
if (!fp)
{
Logger::logThis()->error("Unable to execute lsblk to scan drives");
pclose(fp);
exit(EXIT_FAILURE);
}
@ -620,22 +620,21 @@ void reHDD::handleArrowKey(TUI::UserInput userInput)
void reHDD::handleEnter()
{
if (getSelectedDrive() != nullptr)
Drive *tmpSelectedDrive = getSelectedDrive();
if (tmpSelectedDrive != nullptr)
{
if (getSelectedDrive()->state == Drive::TaskState::SHRED_SELECTED)
if (tmpSelectedDrive->state == Drive::TaskState::SHRED_SELECTED)
{
Logger::logThis()->info("Started shred/check for: " + getSelectedDrive()->getModelName() + "-" + getSelectedDrive()->getSerial());
getSelectedDrive()->state = Drive::TaskState::SHRED_ACTIVE;
// task for drive is running --> don't show more task options
Drive *pTmpDrive = getSelectedDrive();
thread(ThreadShred, pTmpDrive).detach();
Logger::logThis()->info("Started shred/check for: " + tmpSelectedDrive->getModelName() + "-" + tmpSelectedDrive->getSerial());
tmpSelectedDrive->state = Drive::TaskState::SHRED_ACTIVE;
// task for drive is running --> don't show more task option
thread(ThreadShred, tmpSelectedDrive).detach();
}
if (getSelectedDrive()->state == Drive::TaskState::DELETE_SELECTED)
if (tmpSelectedDrive->state == Drive::TaskState::DELETE_SELECTED)
{
Logger::logThis()->info("Started delete for: " + getSelectedDrive()->getModelName() + "-" + getSelectedDrive()->getSerial());
getSelectedDrive()->state = Drive::TaskState::DELETE_ACTIVE;
Logger::logThis()->info("Started delete for: " + tmpSelectedDrive->getModelName() + "-" + tmpSelectedDrive->getSerial());
tmpSelectedDrive->state = Drive::TaskState::DELETE_ACTIVE;
// task for drive is running --> don't show more task options
thread(ThreadDelete).detach();
}
@ -644,17 +643,18 @@ void reHDD::handleEnter()
void reHDD::handleESC()
{
if (getSelectedDrive() != nullptr)
Drive *tmpSelectedDrive = getSelectedDrive();
if (tmpSelectedDrive != nullptr)
{
if (getSelectedDrive()->state == Drive::TaskState::SHRED_SELECTED)
if (tmpSelectedDrive->state == Drive::TaskState::SHRED_SELECTED)
{
getSelectedDrive()->state = Drive::TaskState::NONE;
tmpSelectedDrive->state = Drive::TaskState::NONE;
// task for drive is selected --> remove selection
}
if (getSelectedDrive()->state == Drive::TaskState::DELETE_SELECTED)
if (tmpSelectedDrive->state == Drive::TaskState::DELETE_SELECTED)
{
getSelectedDrive()->state = Drive::TaskState::NONE;
tmpSelectedDrive->state = Drive::TaskState::NONE;
// task for drive is selected --> remove selection
}
}
@ -662,12 +662,13 @@ void reHDD::handleESC()
void reHDD::handleAbort()
{
if (getSelectedDrive() != nullptr)
Drive *tmpSelectedDrive = getSelectedDrive();
if (tmpSelectedDrive != nullptr)
{
if (getSelectedDrive()->state == Drive::SHRED_ACTIVE || getSelectedDrive()->state == Drive::DELETE_ACTIVE)
if (tmpSelectedDrive->state == Drive::SHRED_ACTIVE || tmpSelectedDrive->state == Drive::DELETE_ACTIVE)
{
getSelectedDrive()->state = Drive::NONE;
Logger::logThis()->info("Abort-Shred-Signal for: " + getSelectedDrive()->getModelName() + "-" + getSelectedDrive()->getSerial());
tmpSelectedDrive->state = Drive::NONE;
Logger::logThis()->info("Abort-Shred-Signal for: " + tmpSelectedDrive->getModelName() + "-" + tmpSelectedDrive->getSerial());
// task for drive is running --> remove selection
}
}