Reuse SmartStatus::Overall enum for SmartDiskInformation.

This commit is contained in:
Andrius Štikonas 2018-04-09 15:27:07 +01:00
parent 622def3b56
commit b5d0b500cf
3 changed files with 13 additions and 47 deletions

View File

@ -34,9 +34,8 @@ SmartDiskInformation::SmartDiskInformation() :
m_BadAttributeNow(false), m_BadAttributeNow(false),
m_BadAttributeInThePast(false), m_BadAttributeInThePast(false),
m_SelfTestExecutionStatus(SmartDiskInformation::SMART_SELF_TEST_EXECUTION_STATUS_SUCCESS_OR_NEVER), m_SelfTestExecutionStatus(SmartDiskInformation::SMART_SELF_TEST_EXECUTION_STATUS_SUCCESS_OR_NEVER),
m_Overall(SmartDiskInformation::Overall::BadStatus) m_Overall(SmartStatus::Overall::Bad)
{ {
} }
/** Update the number of bad sectors based on reallocated sector count and current pending sector attributes data */ /** Update the number of bad sectors based on reallocated sector count and current pending sector attributes data */
@ -62,35 +61,35 @@ void SmartDiskInformation::updateBadSectors()
void SmartDiskInformation::updateOverall() void SmartDiskInformation::updateOverall()
{ {
if (!smartStatus()) { if (!smartStatus()) {
m_Overall = Overall::BadStatus; m_Overall = SmartStatus::Overall::Bad;
return; return;
} }
quint64 sector_threshold = u64log2(size() / 512) * 1024; quint64 sector_threshold = u64log2(size() / 512) * 1024;
if (badSectors() >= sector_threshold) { if (badSectors() >= sector_threshold) {
m_Overall = Overall::BadSectorsMany; m_Overall = SmartStatus::Overall::BadSectorsMany;
return; return;
} }
validateBadAttributes(); validateBadAttributes();
if (m_BadAttributeNow) { if (m_BadAttributeNow) {
m_Overall = Overall::BadAttributeNow; m_Overall = SmartStatus::Overall::BadNow;
return; return;
} }
if (badSectors() > 0) { if (badSectors() > 0) {
m_Overall = Overall::BadSector; m_Overall = SmartStatus::Overall::BadSectors;
return; return;
} }
if (m_BadAttributeInThePast) { if (m_BadAttributeInThePast) {
m_Overall = Overall::BadAttributeInThePast; m_Overall = SmartStatus::Overall::BadPast;
return; return;
} }
m_Overall = Overall::Good; m_Overall = SmartStatus::Overall::Good;
} }
/** Update the temperature value based on SMART attributes /** Update the temperature value based on SMART attributes

View File

@ -1,5 +1,6 @@
/************************************************************************* /*************************************************************************
* Copyright (C) 2018 by Caio Carvalho <caiojcarvalho@gmail.com> * * Copyright (C) 2018 by Caio Carvalho <caiojcarvalho@gmail.com> *
* Copyright (C) 2018 by Andrius Štikonas <andrius@stikonas.eu> *
* * * *
* This program is free software; you can redistribute it and/or * * This program is free software; you can redistribute it and/or *
* modify it under the terms of the GNU General Public License as * * modify it under the terms of the GNU General Public License as *
@ -18,6 +19,8 @@
#ifndef KPMCORE_SMARTDISKINFORMATION_H #ifndef KPMCORE_SMARTDISKINFORMATION_H
#define KPMCORE_SMARTDISKINFORMATION_H #define KPMCORE_SMARTDISKINFORMATION_H
#include "core/smartstatus.h"
#include <QList> #include <QList>
#include <QString> #include <QString>
@ -47,16 +50,6 @@ public:
_SMART_SELF_TEST_EXECUTION_STATUS_MAX _SMART_SELF_TEST_EXECUTION_STATUS_MAX
}; };
/** SMART overall state */
enum class Overall {
Good,
BadAttributeInThePast,
BadSector,
BadAttributeNow,
BadSectorsMany,
BadStatus,
};
public: public:
SmartDiskInformation(); SmartDiskInformation();
@ -104,7 +97,7 @@ public:
return m_SelfTestExecutionStatus; /**< @return SMART self execution status */ return m_SelfTestExecutionStatus; /**< @return SMART self execution status */
} }
Overall overall() const SmartStatus::Overall overall() const
{ {
return m_Overall; /**< @return SMART overall status */ return m_Overall; /**< @return SMART overall status */
} }
@ -191,7 +184,7 @@ private:
bool m_BadAttributeNow; bool m_BadAttributeNow;
bool m_BadAttributeInThePast; bool m_BadAttributeInThePast;
SmartSelfTestExecutionStatus m_SelfTestExecutionStatus; SmartSelfTestExecutionStatus m_SelfTestExecutionStatus;
Overall m_Overall; SmartStatus::Overall m_Overall;
QList<SmartAttributeParsedData> m_Attributes; QList<SmartAttributeParsedData> m_Attributes;
}; };

View File

@ -115,33 +115,7 @@ void SmartStatus::update()
} }
switch (disk->overall()) { setOverall(disk->overall());
case SmartDiskInformation::Overall::Good:
setOverall(Overall::Good);
break;
case SmartDiskInformation::Overall::BadAttributeInThePast:
setOverall(Overall::BadPast);
break;
case SmartDiskInformation::Overall::BadSector:
setOverall(Overall::BadSectors);
break;
case SmartDiskInformation::Overall::BadAttributeNow:
setOverall(Overall::BadNow);
break;
case SmartDiskInformation::Overall::BadSectorsMany:
setOverall(Overall::BadSectorsMany);
break;
default:
case SmartDiskInformation::Overall::BadStatus:
setOverall(Overall::Bad);
break;
}
setTemp(disk->temperature()); setTemp(disk->temperature());