DAWorkbench 0.0.1
DAWorkbench API
载入中...
搜索中...
未找到
DAPluginManager.h
1#ifndef FCPLUGINMANAGER_H
2#define FCPLUGINMANAGER_H
3#include <QObject>
4#include "DAPluginSupportGlobal.h"
5#include "DAAbstractPlugin.h"
6#include "DAPluginOption.h"
7#include <QDebug>
8namespace DA
9{
10
14class DAPLUGINSUPPORT_API DAPluginManager : public QObject
15{
16 Q_OBJECT
17 DA_DECLARE_PRIVATE(DAPluginManager)
18public:
19 explicit DAPluginManager(QObject* p = nullptr);
21 // 设置忽略列表
22 void setIgnoreList(const QStringList ignorePluginsName);
23
24 // 加载所有插件
25 virtual void loadAllPlugins(DACoreInterface* c);
26
27 // 是否已经加载
28 bool isLoaded() const;
29
30 // 设置插件路径
31 void setPluginPath(const QString& path);
32
33 // 插件数
34 int getPluginCount() const;
35
36 // 获取加载的插件名
37 QList< QString > getPluginNames() const;
38
39 // 获取所有插件信息
40 QList< DAPluginOption > getPluginOptions() const;
41
42 // 卸载相关
43 bool unloadPlugin(const QString& pluginName);
44 virtual bool unloadAllPlugins();
45
46
47 // 获取插件路径
48 static QString getPluginDirPath();
49
50 // 忽略文件名
51 static QString getPluginIgnoreFileName();
52Q_SIGNALS:
59 void beginLoadPlugin(const QString& pluginPath);
60
65 void pluginUnloaded(const QString& pluginPath);
66};
67
68// 格式化输出
69DAPLUGINSUPPORT_API QDebug operator<<(QDebug debug, const DAPluginManager& fmg);
70} // namespace DA
71
72#endif // FCPLUGINMANAGER_H
APP的核心接口
Definition DACoreInterface.h:24
此类为插件管理类,作为单例,管理整个程序的插件加载和释放
Definition DAPluginManager.h:15
void pluginUnloaded(const QString &pluginPath)
插件卸载
void beginLoadPlugin(const QString &pluginPath)
开始加载插件信号
序列化类都是带异常的,使用中需要处理异常
Definition AppMainWindow.cpp:44