71 lines
1.6 KiB
C
71 lines
1.6 KiB
C
![]() |
#ifndef WORKERFACTORY_H
|
|||
|
#define WORKERFACTORY_H
|
|||
|
|
|||
|
#include <QObject>
|
|||
|
#include "../common/mydefine.h"
|
|||
|
#include "../common/reflect.h"
|
|||
|
|
|||
|
/**
|
|||
|
* @brief 备份还原相关任务处理类基类
|
|||
|
*/
|
|||
|
class Worker : public QObject
|
|||
|
{
|
|||
|
Q_OBJECT
|
|||
|
public:
|
|||
|
explicit Worker();
|
|||
|
virtual ~Worker();
|
|||
|
|
|||
|
signals:
|
|||
|
// 检测结果信号
|
|||
|
void checkResult(int result);
|
|||
|
// 进度百分比
|
|||
|
void progress(int currentRate);
|
|||
|
// 工作结果信号
|
|||
|
void workResult(bool result);
|
|||
|
// 任务取消
|
|||
|
void cancel();
|
|||
|
|
|||
|
public slots:
|
|||
|
// 环境检测
|
|||
|
void checkEnv();
|
|||
|
|
|||
|
// 任务处理
|
|||
|
void doWork();
|
|||
|
|
|||
|
protected:
|
|||
|
// 环境检测,个性化部分派生类去实现
|
|||
|
virtual bool checkEnvEx();
|
|||
|
|
|||
|
// 任务处理,个性化部分派生类去实现
|
|||
|
virtual void doWorkEx();
|
|||
|
|
|||
|
// 任务取消,个性化部分派生类去实现
|
|||
|
virtual void cancelEx();
|
|||
|
|
|||
|
public:
|
|||
|
void setParam(const BackupWrapper& backupWrapper) { m_backupWrapper = backupWrapper; }
|
|||
|
|
|||
|
public:
|
|||
|
// 同一时间只能运行一个备份/还原等操作
|
|||
|
BackupWrapper m_backupWrapper;
|
|||
|
// 是否取消操作
|
|||
|
bool m_bCancel;
|
|||
|
};
|
|||
|
|
|||
|
/**
|
|||
|
* @brief 备份还原相关任务工厂类
|
|||
|
*/
|
|||
|
class WorkerFactory
|
|||
|
{
|
|||
|
public:
|
|||
|
/**
|
|||
|
* @brief 根据操作类型和位置创建相应的处理类
|
|||
|
* @param type 操作类型,如:系统备份, 系统还原
|
|||
|
* @param position 本地备份还是U盘备份: 0-本地备份;1-移动设备备份
|
|||
|
* @return Worker派生类对象指针,需调用者释放此对象
|
|||
|
*/
|
|||
|
static Worker * createWorker(int type, int position);
|
|||
|
};
|
|||
|
|
|||
|
#endif // WORKERFACTORY_H
|