DAWorkbench 0.0.1
DAWorkbench API
载入中...
搜索中...
未找到
DAZipArchiveThreadWrapper.h
1#ifndef DAZIPARCHIVETHREADWRAPPER_H
2#define DAZIPARCHIVETHREADWRAPPER_H
3#include "DAGuiAPI.h"
4#include <QObject>
5#include <QString>
6#include <QDomDocument>
7#include "DAAbstractArchiveTask.h"
8#include "DAChartItemsManager.h"
9namespace DA
10{
11
15class DAGUI_API DAZipArchiveThreadWrapper : public QObject
16{
17 Q_OBJECT
18 DA_DECLARE_PRIVATE(DAZipArchiveThreadWrapper)
19public:
20 DAZipArchiveThreadWrapper(QObject* par = nullptr);
22 // 是否繁忙
23 bool isBusy() const;
24 // 保存任务
25 std::shared_ptr< DAAbstractArchiveTask > appendByteSaveTask(const QString& zipRelatePath, const QByteArray& data);
26 std::shared_ptr< DAAbstractArchiveTask > appendXmlSaveTask(const QString& zipRelatePath, const QDomDocument& data);
27 std::shared_ptr< DAAbstractArchiveTask > appendFileSaveTask(const QString& zipRelatePath, const QString& localFilePath);
28 std::shared_ptr< DAAbstractArchiveTask > appendChartItemSaveTask(const QString& zipRelateFolderPath,
29 DAChartItemsManager chartItemMgr);
30 // 读取任务
31 std::shared_ptr< DAAbstractArchiveTask > appendByteLoadTask(const QString& zipRelatePath, int code);
32 std::shared_ptr< DAAbstractArchiveTask > appendXmlLoadTask(const QString& zipRelatePath, int code);
33 std::shared_ptr< DAAbstractArchiveTask > appendFileLoadTask(const QString& zipRelatePath, int code);
34 std::shared_ptr< DAAbstractArchiveTask > appendChartItemLoadTask(const QString& zipRelateFolderPath, int code);
35 // 添加任务
36 bool appendTask(const std::shared_ptr< DAAbstractArchiveTask >& task);
37public Q_SLOTS:
38 bool save(const QString& filePath);
39 bool load(const QString& filePath);
40private Q_SLOTS:
41 void onTaskFinish(int code);
42 void onTaskProgress(std::shared_ptr< DAAbstractArchiveTask > task, int mode);
43Q_SIGNALS:
48 void beginSave(const QString& path);
49
54 void beginLoad(const QString& path);
55
60 void saved(bool success);
61
66 void loaded(bool success);
67
74 void taskProgress(std::shared_ptr< DA::DAAbstractArchiveTask > task, int mode);
75
76private:
77 void init();
78};
79} // end DA
80
81#endif // DAZIPARCHIVETHREADWRAPPER_H
这个类用于管理和记录整个绘图的所有QwtPlotItem,主要用于持久化的时候,记录QwtPlotItem和key的对应关系
Definition DAChartItemsManager.h:17
DAZipArchive的多线程封装,此类内部维护着一个线程,封装了
Definition DAZipArchiveThreadWrapper.h:16
void taskProgress(std::shared_ptr< DA::DAAbstractArchiveTask > task, int mode)
当前进度信号 对于读取操作,这个函数会携带读取的结果
void loaded(bool success)
加载结束信号
void beginSave(const QString &path)
开始保存信号
void saved(bool success)
保存结束信号
void beginLoad(const QString &path)
开始加载信号
序列化类都是带异常的,使用中需要处理异常
Definition AppMainWindow.cpp:44