create printer class

This commit is contained in:
Hendrik Schutter 2022-11-24 19:03:33 +01:00
parent 6f5e0584bf
commit ce696f676a
5 changed files with 116 additions and 2 deletions

55
include/printer.h Normal file
View File

@ -0,0 +1,55 @@
/**
* @file printer.h
* @brief Send drive data to printer service using ipc msg queue
* @author Hendrik Schutter
* @date 24.11.2022
*/
#ifndef PRINTER_H_
#define PRINTER_H_
#include "reHDD.h"
#define STR_BUFFER_SIZE 64U
typedef struct
{
char caDriveIndex[STR_BUFFER_SIZE];
char caDriveHours[STR_BUFFER_SIZE];
char caDriveCycles[STR_BUFFER_SIZE];
char caDriveErrors[STR_BUFFER_SIZE];
char caDriveShredTimestamp[STR_BUFFER_SIZE];
char caDriveShredDuration[STR_BUFFER_SIZE];
char caDriveCapacity[STR_BUFFER_SIZE];
char caDriveState[STR_BUFFER_SIZE];
char caDriveModelFamiliy[STR_BUFFER_SIZE];
char caDriveModelName[STR_BUFFER_SIZE];
char caDriveSerialnumber[STR_BUFFER_SIZE];
char caDriveReHddVersion[STR_BUFFER_SIZE];
} t_driveData;
typedef struct
{
long msg_queue_type;
t_driveData driveData;
} t_msgQueueData;
class Printer
{
protected:
public:
static Printer* getPrinter();
void print();
private:
static bool instanceFlag;
static Printer *single;
Printer();
~Printer();
};
#endif // PRINTER_H_

View File

@ -64,6 +64,7 @@ using namespace std;
#include "shred.h"
#include "delete.h"
#include "tui.h"
#include "printer.h"
#include "logger/logger.h"
extern Logger* logging;

View File

@ -18,8 +18,6 @@ Logger* Logger::single = NULL;
/**
* \brief create new logger instance
* \param path to log file
* \param struct with data
* \return instance of Logger
*/
Logger::Logger()

59
src/printer.cpp Normal file
View File

@ -0,0 +1,59 @@
/**
* @file printer.cpp
* @brief Send drive data to printer service using ipc msg queue
* @author Hendrik Schutter
* @date 24.11.2022
*/
#include "../include/reHDD.h"
bool Printer::instanceFlag = false;
Printer* Printer::single = NULL;
/**
* \brief create new Printer instance
* \param path to log file
* \param struct with data
* \return instance of Printer
*/
Printer::Printer()
{
}
/**
* \brief deconstructor
* \return void
*/
Printer::~Printer()
{
instanceFlag = false;
}
/**
* \brief send data to msg queue
* \return void
*/
void Printer::print(){
}
/**
* \brief return a instance of the printer
* \return printer obj
*/
Printer* Printer::getPrinter()
{
if (!instanceFlag)
{
single = new Printer(); //create new obj
instanceFlag = true;
return single;
}
else
{
return single; //return existing obj
}
}

View File

@ -202,6 +202,7 @@ int Shred::shredDrive(Drive* drive, int* ipSignalFd)
{
drive->state= Drive::NONE;
drive->setTaskPercentage(0.0);
Printer::getPrinter()->print();
Logger::logThis()->info("Finished shred/check for: " + drive->getModelName() + "-" + drive->getSerial());
}
return 0;