mirror of
https://github.com/QuasarApp/QuasarAppLib.git
synced 2025-04-26 17:54:40 +00:00
added doctor header
This commit is contained in:
parent
8a93dd9062
commit
eb18b6c969
17
doctor.cpp
Normal file
17
doctor.cpp
Normal file
@ -0,0 +1,17 @@
|
||||
/*
|
||||
* Copyright (C) 2018-2022 QuasarApp.
|
||||
* Distributed under the lgplv3 software license, see the accompanying
|
||||
* Everyone is permitted to copy and distribute verbatim copies
|
||||
* of this license document, but changing it is not allowed.
|
||||
*/
|
||||
|
||||
#include "doctor.h"
|
||||
|
||||
namespace QuasarAppUtils {
|
||||
|
||||
Doctor::Doctor()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
}
|
73
doctor.h
Normal file
73
doctor.h
Normal file
@ -0,0 +1,73 @@
|
||||
/*
|
||||
* Copyright (C) 2018-2022 QuasarApp.
|
||||
* Distributed under the lgplv3 software license, see the accompanying
|
||||
* Everyone is permitted to copy and distribute verbatim copies
|
||||
* of this license document, but changing it is not allowed.
|
||||
*/
|
||||
|
||||
#ifndef DOCTOR_H
|
||||
#define DOCTOR_H
|
||||
|
||||
#include <QSharedPointer>
|
||||
|
||||
namespace QuasarAppUtils {
|
||||
|
||||
class iPill;
|
||||
/**
|
||||
* @brief The Doctor class is class that execute pills objects.
|
||||
* The Doctor check issue that will be executed and if the issue realy then execute fix.
|
||||
* @warning This is dangerous system because you may create bug in pill and doctor that will execute this pill may broke users app.
|
||||
* @see iPill
|
||||
*/
|
||||
class Doctor: public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
/**
|
||||
* @brief Doctor This is base contructor of doctor calss.
|
||||
* @param base This is list of known issues.
|
||||
*/
|
||||
Doctor(const QList<QSharedPointer<iPill>>& base);
|
||||
|
||||
/**
|
||||
* @brief diagnostick This method run full diagnostick of this application.
|
||||
* If the @a fix is true then doctor try fix the foundet issues.
|
||||
* If the @a fix value if false then the Doctor emit the sigTroubleDetected signal.
|
||||
* @param fix set this argument to tru if you want fix all foundet issues.
|
||||
*/
|
||||
void diagnostick(bool fix = false) const;
|
||||
|
||||
/**
|
||||
* @brief fix
|
||||
* @param pill
|
||||
*/
|
||||
void fix(const QList<QSharedPointer<iPill>>& pill) const;
|
||||
signals:
|
||||
/**
|
||||
* @brief sigTroubleDetected This signal will emited when The doctor object found issues in this application.
|
||||
* @param issues
|
||||
* @see Doctor::diagnostick
|
||||
*/
|
||||
void sigTroubleDetected(QList<QSharedPointer<iPill>> issues);
|
||||
|
||||
/**
|
||||
* @brief sigFixesFailed This signal emited when the doctor can't fix foundet issues.
|
||||
* @param issues This is list of the unfixable issues.
|
||||
*/
|
||||
void sigFixesFailed(QList<QSharedPointer<iPill>> issues);
|
||||
|
||||
/**
|
||||
* @brief sigFixesFinishedSuccessful This signal emited when the doctor fix foundet issues successfull.
|
||||
* @param issues This is list of the fixed issues.
|
||||
*/
|
||||
void sigFixesFinishedSuccessful(QList<QSharedPointer<iPill>> issues);
|
||||
|
||||
|
||||
private:
|
||||
QHash<QString, QSharedPointer<iPill>> _pillsData;
|
||||
};
|
||||
|
||||
|
||||
}
|
||||
|
||||
#endif // DOCTOR_H
|
19
ipill.cpp
Normal file
19
ipill.cpp
Normal file
@ -0,0 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2018-2022 QuasarApp.
|
||||
* Distributed under the lgplv3 software license, see the accompanying
|
||||
* Everyone is permitted to copy and distribute verbatim copies
|
||||
* of this license document, but changing it is not allowed.
|
||||
*/
|
||||
|
||||
|
||||
#include "ipill.h"
|
||||
|
||||
namespace QuasarAppUtils {
|
||||
|
||||
iPill::iPill()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
73
ipill.h
Normal file
73
ipill.h
Normal file
@ -0,0 +1,73 @@
|
||||
/*
|
||||
* Copyright (C) 2018-2022 QuasarApp.
|
||||
* Distributed under the lgplv3 software license, see the accompanying
|
||||
* Everyone is permitted to copy and distribute verbatim copies
|
||||
* of this license document, but changing it is not allowed.
|
||||
*/
|
||||
|
||||
|
||||
#ifndef IPILL_H
|
||||
#define IPILL_H
|
||||
|
||||
#include <QString>
|
||||
|
||||
|
||||
namespace QuasarAppUtils {
|
||||
|
||||
/**
|
||||
* @brief The iPill class is base interface for the pill object.
|
||||
* The Pill object is independet tool that must be fix one issue for runned application.
|
||||
*
|
||||
* ## For Example:
|
||||
*
|
||||
* You has a sume bug, but you don't known about this bug.
|
||||
* This big broken the database for your users, but you still don't known about this.
|
||||
* You found this bug and create new patch for fix it, but databae of your users alredy broken, and you users can't fix this issues yasterself.
|
||||
* So you can create a pill for fix broked database and delive to your users for fix thes issue.
|
||||
*
|
||||
* The Pill object structure should be has:
|
||||
* * The Action that should be check if contains this issue or not ...
|
||||
* * The Action taht should be fix issue.
|
||||
* * Description of the issue.
|
||||
* * Name of the issue.
|
||||
*
|
||||
* * @see iPill
|
||||
*/
|
||||
class iPill
|
||||
{
|
||||
public:
|
||||
iPill();
|
||||
|
||||
/**
|
||||
* @brief name This method should be return name of this pill.
|
||||
* @return name of this pill.
|
||||
*/
|
||||
virtual QString name() const = 0;
|
||||
|
||||
/**
|
||||
* @brief description This method should be return dital description of the issue that this pill will fix after execute (accept).
|
||||
* @return string valeu with description.
|
||||
*/
|
||||
virtual QString description() const = 0;
|
||||
|
||||
protected:
|
||||
|
||||
/**
|
||||
* @brief diagnostick This method execute action that should be check if exits issues or not.
|
||||
* @note This method will executed only on the Doctor object.
|
||||
* @return true if the issues is detected.
|
||||
*/
|
||||
virtual bool diagnostick() const = 0;
|
||||
|
||||
/**
|
||||
* @brief fix This method should be fix detected issue.
|
||||
* @return true if the issue fixes successful else false
|
||||
*/
|
||||
virtual bool fix() const = 0;
|
||||
|
||||
|
||||
friend class Doctor;
|
||||
};
|
||||
|
||||
}
|
||||
#endif // IPILL_H
|
Loading…
x
Reference in New Issue
Block a user