DAWorkbench 0.0.1
DAWorkbench API
载入中...
搜索中...
未找到
DAAbstractPlugin.h
1#ifndef DAABSTRACTPLUGIN_H
2#define DAABSTRACTPLUGIN_H
3#include <memory>
4#include <QtPlugin>
5#include <QObject>
6#include "DAPluginSupportGlobal.h"
7#include "DAAbstractSettingPage.h"
8namespace DA
9{
10class DACoreInterface;
11class DAAbstractArchiveTask;
19class DAPLUGINSUPPORT_API DAAbstractPlugin
20{
21 DA_DECLARE_PRIVATE(DAAbstractPlugin)
22 friend class DAPluginOption;
23 friend class DAPluginManager;
24
25public:
27 virtual ~DAAbstractPlugin();
28
29 // 插件id
30 virtual QString getIID() const = 0;
31
36 virtual QString getName() const = 0;
37
42 virtual QString getVersion() const = 0;
43
48 virtual QString getDescription() const = 0;
49
54 virtual void retranslate();
55
62 virtual bool initialize();
63
69 virtual bool finalize();
70
76 virtual DAAbstractSettingPage* createSettingPage();
77
85 virtual std::shared_ptr< DAAbstractArchiveTask > createArchiveTask(bool isSave);
86
87 // 获取core
88 DACoreInterface* core() const;
89
90protected:
91 void setCore(DACoreInterface* c);
92};
93} // namespace DA
94
95// 封装成插件需要在原本封装dll的基础上添加以下语句
96QT_BEGIN_NAMESPACE
97#define DAABSTRACTPLUGIN_IID "org.da.abstract.plugin"
98Q_DECLARE_INTERFACE(DA::DAAbstractPlugin, DAABSTRACTPLUGIN_IID)
99QT_END_NAMESPACE
100
101#endif // DAABSTRACTPLUGIN_H
所有插件的基类
Definition DAAbstractPlugin.h:20
virtual QString getName() const =0
插件名
virtual QString getVersion() const =0
插件版本
virtual QString getDescription() const =0
插件描述
配置页面的基类,所有配置页面都继承此类
Definition DAAbstractSettingPage.h:22
APP的核心接口
Definition DACoreInterface.h:24
此类为插件管理类,作为单例,管理整个程序的插件加载和释放
Definition DAPluginManager.h:15
用于插件的加载操作
Definition DAPluginOption.h:13
序列化类都是带异常的,使用中需要处理异常
Definition AppMainWindow.cpp:44