Merge branch 'master' into feature/failed-state
This commit is contained in:
@ -14,7 +14,7 @@ class Drive
|
||||
{
|
||||
|
||||
public:
|
||||
enum TaskState
|
||||
enum class TaskState
|
||||
{
|
||||
NONE,
|
||||
SHRED_SELECTED,
|
||||
@ -25,23 +25,28 @@ public:
|
||||
DELETE_SELECTED,
|
||||
DELETE_ACTIVE,
|
||||
FROZEN
|
||||
} state;
|
||||
};
|
||||
|
||||
enum ConnectionType
|
||||
enum class ConnectionType
|
||||
{
|
||||
UNKNOWN,
|
||||
USB,
|
||||
SATA,
|
||||
NVME
|
||||
} connectionType;
|
||||
};
|
||||
|
||||
struct
|
||||
struct ShredSpeed
|
||||
{
|
||||
time_t u32ShredTimeDelta;
|
||||
std::chrono::time_point<std::chrono::system_clock> chronoShredTimestamp;
|
||||
std::chrono::time_point<std::chrono::system_clock>
|
||||
chronoShredTimestamp;
|
||||
unsigned long ulWrittenBytes;
|
||||
unsigned long ulSpeedMetricBytesWritten;
|
||||
} sShredSpeed;
|
||||
};
|
||||
|
||||
std::atomic<TaskState> state;
|
||||
std::atomic<ConnectionType> connectionType;
|
||||
std::atomic<ShredSpeed> sShredSpeed;
|
||||
|
||||
bool bWasShredded = false; // all shred iterations done
|
||||
bool bWasShredStarted = false; // shred was atleast once started
|
||||
@ -49,9 +54,10 @@ public:
|
||||
bool bWasDeleted = false;
|
||||
bool bIsOffline = false;
|
||||
uint32_t u32DriveChecksumAfterShredding = 0U;
|
||||
uint16_t u16DriveIndex = 0U; // Index of TUI list
|
||||
|
||||
private:
|
||||
string sPath;
|
||||
std::string sPath;
|
||||
time_t u32Timestamp = 0U; // unix timestamp for detecting a frozen drive
|
||||
double d32TaskPercentage = 0U; // in percent for Shred (1 to 100)
|
||||
time_t u32TimestampTaskStart = 0U; // unix timestamp for duration of an action
|
||||
@ -59,9 +65,9 @@ private:
|
||||
|
||||
struct
|
||||
{
|
||||
string sModelFamily;
|
||||
string sModelName;
|
||||
string sSerial;
|
||||
std::string sModelFamily;
|
||||
std::string sModelName;
|
||||
std::string sSerial;
|
||||
uint64_t u64Capacity = 0U; // in byte
|
||||
uint32_t u32ErrorCount = 0U;
|
||||
uint32_t u32PowerOnHours = 0U; // in hours
|
||||
@ -74,15 +80,27 @@ private:
|
||||
|
||||
protected:
|
||||
public:
|
||||
Drive(string path)
|
||||
// Copy constructor
|
||||
Drive(const Drive &other);
|
||||
|
||||
// Copy assignment operator
|
||||
Drive &operator=(const Drive &other);
|
||||
|
||||
// Move constructor
|
||||
Drive(Drive &&other) noexcept;
|
||||
|
||||
// Move assignment operator
|
||||
Drive &operator=(Drive &&other) noexcept;
|
||||
|
||||
Drive(std::string path)
|
||||
{
|
||||
this->sPath = path;
|
||||
}
|
||||
|
||||
string getPath(void);
|
||||
string getModelFamily(void);
|
||||
string getModelName(void);
|
||||
string getSerial(void);
|
||||
std::string getPath(void);
|
||||
std::string getModelFamily(void);
|
||||
std::string getModelName(void);
|
||||
std::string getSerial(void);
|
||||
uint64_t getCapacity(void); // in byte
|
||||
uint32_t getErrorCount(void);
|
||||
uint32_t getPowerOnHours(void); // in hours
|
||||
@ -90,20 +108,20 @@ public:
|
||||
uint32_t getTemperature(void); // in Fahrenheit, just kidding: degree Celsius
|
||||
void checkFrozenDrive(void);
|
||||
|
||||
void setDriveSMARTData(string modelFamily,
|
||||
string modelName,
|
||||
string serial,
|
||||
void setDriveSMARTData(std::string modelFamily,
|
||||
std::string modelName,
|
||||
std::string serial,
|
||||
uint64_t capacity,
|
||||
uint32_t errorCount,
|
||||
uint32_t powerOnHours,
|
||||
uint32_t powerCycles,
|
||||
uint32_t temperature);
|
||||
|
||||
string sCapacityToText();
|
||||
string sErrorCountToText();
|
||||
string sPowerOnHoursToText();
|
||||
string sPowerCyclesToText();
|
||||
string sTemperatureToText();
|
||||
std::string sCapacityToText();
|
||||
std::string sErrorCountToText();
|
||||
std::string sPowerOnHoursToText();
|
||||
std::string sPowerCyclesToText();
|
||||
std::string sTemperatureToText();
|
||||
|
||||
void setTaskPercentage(double d32TaskPercentage);
|
||||
double getTaskPercentage(void);
|
||||
|
||||
Reference in New Issue
Block a user