Warning, file /system/kpmcore/src/core/smartdiskinformation.h was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001 /* 0002 SPDX-FileCopyrightText: 2018 Caio Jordão Carvalho <caiojcarvalho@gmail.com> 0003 SPDX-FileCopyrightText: 2018-2019 Andrius Štikonas <andrius@stikonas.eu> 0004 0005 SPDX-License-Identifier: GPL-3.0-or-later 0006 */ 0007 0008 #ifndef KPMCORE_SMARTDISKINFORMATION_H 0009 #define KPMCORE_SMARTDISKINFORMATION_H 0010 0011 #include "core/smartstatus.h" 0012 0013 #include <QList> 0014 #include <QString> 0015 0016 class SmartAttributeParsedData; 0017 0018 /** Disk information retrieved by SMART. 0019 0020 It includes a list with your SMART attributes. 0021 0022 @author Caio Jordão Carvalho <caiojcarvalho@gmail.com> 0023 */ 0024 class SmartDiskInformation 0025 { 0026 public: 0027 SmartDiskInformation(); 0028 0029 public: 0030 void updateBadSectors(); 0031 0032 void updateOverall(); 0033 0034 bool updateTemperature(); 0035 0036 bool updatePowerOn(); 0037 0038 bool updatePowerCycle(); 0039 0040 SmartAttributeParsedData *findAttribute(quint32 id); 0041 0042 public: 0043 const QString model() const 0044 { 0045 return m_ModelName; /**< @return the disk model name */ 0046 } 0047 0048 const QString firmware() const 0049 { 0050 return m_FirmwareVersion; /**< @return the disk firmware version */ 0051 } 0052 0053 const QString serial() const 0054 { 0055 return m_SerialNumber; /**< @return the disk serial number */ 0056 } 0057 0058 quint64 sectors() const 0059 { 0060 return m_Sectors; /**< @return disk size */ 0061 } 0062 0063 bool smartStatus() const 0064 { 0065 return m_SmartStatus; /**< @return a boolean representing SMART status */ 0066 } 0067 0068 SmartStatus::SelfTestStatus selfTestExecutionStatus() const 0069 { 0070 return m_SelfTestExecutionStatus; /**< @return SMART self execution status */ 0071 } 0072 0073 SmartStatus::Overall overall() const 0074 { 0075 return m_Overall; /**< @return SMART overall status */ 0076 } 0077 0078 quint64 temperature() const 0079 { 0080 return m_Temperature; /**< @return disk temperature in kelvin */ 0081 } 0082 0083 quint64 badSectors() const 0084 { 0085 return m_BadSectors; /**< @return the number of bad sectors */ 0086 } 0087 0088 quint64 poweredOn() const 0089 { 0090 return m_PoweredOn; /**< @return quantity of time that device is powered on */ 0091 } 0092 0093 quint64 powerCycles() const 0094 { 0095 return m_PowerCycles; /**< @return quantity of power cycles */ 0096 } 0097 0098 QList<SmartAttributeParsedData> attributes() const 0099 { 0100 return m_Attributes; /**< @return a list that contains the disk SMART attributes */ 0101 } 0102 0103 public: 0104 void setModel(QString modelName) 0105 { 0106 m_ModelName = modelName; 0107 } 0108 0109 void setFirmware(QString firmware) 0110 { 0111 m_FirmwareVersion = firmware; 0112 } 0113 0114 void setSerial(QString serial) 0115 { 0116 m_SerialNumber = serial; 0117 } 0118 0119 void setSectors(quint64 numSectors) 0120 { 0121 m_Sectors = numSectors; 0122 } 0123 0124 void setPowerCycles(quint64 powerCycleCt) 0125 { 0126 m_PowerCycles = powerCycleCt; 0127 } 0128 0129 void setSmartStatus(bool smartStatus) 0130 { 0131 m_SmartStatus = smartStatus; 0132 } 0133 0134 void setSelfTestExecutionStatus(SmartStatus::SelfTestStatus status) 0135 { 0136 m_SelfTestExecutionStatus = status; 0137 } 0138 0139 void addAttribute(SmartAttributeParsedData &attribute) 0140 { 0141 m_Attributes << attribute; 0142 } 0143 0144 protected: 0145 void validateBadAttributes(); 0146 0147 private: 0148 QString m_ModelName; 0149 QString m_FirmwareVersion; 0150 QString m_SerialNumber; 0151 quint64 m_Sectors; 0152 quint64 m_Temperature; 0153 quint64 m_BadSectors; 0154 quint64 m_PoweredOn; 0155 quint64 m_PowerCycles; 0156 bool m_SmartStatus; 0157 bool m_BadAttributeNow; 0158 bool m_BadAttributeInThePast; 0159 SmartStatus::SelfTestStatus m_SelfTestExecutionStatus; 0160 SmartStatus::Overall m_Overall; 0161 QList<SmartAttributeParsedData> m_Attributes; 0162 }; 0163 0164 #endif // SMARTDISKINFORMATION_H