2020-05-01 18:31:02 +02:00
/**
2020-05-02 22:06:47 +02:00
* @ file drive . h
* @ brief represent physical drive
* @ author hendrik schutter
* @ date 01.05 .2020
2020-05-01 18:31:02 +02:00
*/
# ifndef DRIVE_H_
# define DRIVE_H_
2020-05-02 22:06:47 +02:00
# include "reHDD.h"
2020-05-01 18:31:02 +02:00
2020-05-02 17:15:55 +02:00
class Drive
{
2020-08-09 21:41:28 +02:00
public :
enum TaskState { NONE ,
SHRED_SELECTED ,
SHRED_ACTIVE ,
DELETE_SELECTED ,
2020-08-23 09:26:32 +02:00
DELETE_ACTIVE
2020-08-09 21:41:28 +02:00
} state ;
2020-08-23 11:04:10 +02:00
2020-08-23 09:26:32 +02:00
bool bWasShredded = false ;
bool bWasDeleteted = false ;
2020-08-09 21:41:28 +02:00
private :
string sPath ;
string sModelFamily ;
string sModelName ;
string sSerial ;
uint64_t u64Capacity = 0U ; //in byte
uint32_t u32ErrorCount = 0U ;
uint32_t u32PowerOnHours = 0U ; //in hours
uint32_t u32PowerCycles = 0U ;
2020-08-28 15:28:57 +02:00
double d32TaskPercentage = 0U ; //in percent for Shred (1 to 100)
2020-08-09 21:41:28 +02:00
2020-05-01 22:18:01 +02:00
protected :
2020-05-01 18:31:02 +02:00
2020-05-01 22:18:01 +02:00
public :
2020-05-02 17:15:55 +02:00
Drive ( string path )
{
this - > sPath = path ;
2020-05-01 22:18:01 +02:00
}
string getPath ( void ) ;
2020-05-02 00:49:11 +02:00
string getModelFamily ( void ) ;
string getModelName ( void ) ;
2020-05-01 22:18:01 +02:00
string getSerial ( void ) ;
2020-05-02 13:25:27 +02:00
uint64_t getCapacity ( void ) ; //in byte
2020-05-01 22:18:01 +02:00
uint32_t getErrorCount ( void ) ;
2020-05-02 13:25:27 +02:00
uint32_t getPowerOnHours ( void ) ; //in hours
uint32_t getPowerCycles ( void ) ;
2020-05-01 22:18:01 +02:00
2020-05-02 00:49:11 +02:00
void setDriveSMARTData ( string modelFamily ,
string modelName ,
2020-05-01 22:18:01 +02:00
string serial ,
2020-05-02 13:25:27 +02:00
uint64_t capacity ,
2020-05-01 22:18:01 +02:00
uint32_t errorCount ,
uint32_t powerOnHours ,
2020-05-02 13:25:27 +02:00
uint32_t powerCycles ) ;
2020-05-01 22:18:01 +02:00
2020-08-04 22:35:29 +02:00
string sCapacityToText ( ) ;
2020-08-07 12:07:29 +02:00
string sErrorCountToText ( ) ;
string sPowerOnHoursToText ( ) ;
string sPowerCyclesToText ( ) ;
2020-08-04 22:35:29 +02:00
2020-08-28 15:28:57 +02:00
void setTaskPercentage ( double d32TaskPercentage ) ;
double getTaskPercentage ( void ) ;
2020-08-03 22:40:07 +02:00
2020-05-01 18:31:02 +02:00
} ;
# endif // DRIVE_H_