QtCanpool 3.3.0
载入中...
搜索中...
未找到
qxpluginmanager.h
浏览该文件的文档.
1
5#ifndef QXPLUGINMANAGER_H
6#define QXPLUGINMANAGER_H
7
8#include "qxplugin_global.h"
9#include "qxplugincontext.h"
10#include "qxpluginspec.h"
11
12#include <QtCore/QList>
13#include <QtCore/QObject>
14#include <QtCore/QStringList>
15#include <QtCore/QVersionNumber>
16
17#include <functional>
18
20
21class QxPluginManagerPrivate;
22
39class QX_PLUGIN_EXPORT QxPluginManager : public QObject
40{
41 Q_OBJECT
42public:
43 explicit QxPluginManager(QObject *parent = Q_NULLPTR);
44 ~QxPluginManager() override;
45
46 void setPluginPaths(const QStringList &paths);
47 QStringList pluginPaths() const;
48
50 void setDisabledPlugins(const QStringList &ids);
51 QStringList disabledPlugins() const;
52
58 void setEnabledPlugins(const QStringList &ids);
59 QStringList enabledPlugins() const;
60
62 void setRequiredInterfaceVersion(int version);
63 int requiredInterfaceVersion() const;
64
66 void setHostVersion(const QVersionNumber &version);
67 QVersionNumber hostVersion() const;
68 bool hasHostVersion() const;
69
71 void setContext(QxPluginContext *context);
72 QxPluginContext *context() const;
73
75 void loadPlugins();
77 void shutdown();
78
80 void registerStaticPlugin(const QString &key, const QJsonObject &metaData, std::function<QxPlugin *()> factory);
81
83 QList<QxPluginSpec *> specs() const;
91 QList<QxPluginSpec *> allSpecs() const;
92 QxPluginSpec *spec(const QString &id) const;
93 QxPlugin *plugin(const QString &id) const;
94
96 bool hasError() const;
98 QString errorString() const;
99
100Q_SIGNALS:
104 void pluginFailed(QxPluginSpec *spec, const QString &reason);
105private:
107};
108
110
111#endif // QXPLUGINMANAGER_H
The thin surface a plugin programs against.
Discovers, orders, loads and isolates QtCanpool plugins.
void pluginFailed(QxPluginSpec *spec, const QString &reason)
A plugin was set aside; reason is the same string spec()->error() holds.
void pluginInitialized(QxPluginSpec *spec)
A plugin reached the Initialized state.
A read-only view of one plugin's metadata, plus the runtime state the manager attaches to it.
Copyright (C) 2026 maminjie canpool@163.com SPDX-License-Identifier: MulanPSL-2.0
#define QX_DECLARE_PRIVATE(Class)
#define Q_NULLPTR
Copyleft (C) 2025 maminjie canpool@163.com SPDX-License-Identifier: MulanPSL-2.0
#define QX_PLUGIN_BEGIN_NAMESPACE
#define QX_PLUGIN_END_NAMESPACE
#define QX_PLUGIN_EXPORT