feature/ipc_mgsqueue_printer #57
|
@ -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_
|
|
@ -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;
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue