1// SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd.
2//
3// SPDX-License-Identifier: GPL-3.0-or-later
4
5#ifndef LIFECYCLE_H
6#define LIFECYCLE_H
7
8#include "pluginmanager.h"
9#include "framework/lifecycle/pluginmetaobject.h"
10#include "framework/lifecycle/plugin.h"
11#include "framework/framework_global.h"
12
13#include <QString>
14#include <QObject>
15
16DPF_BEGIN_NAMESPACE
17
18class LifeCycle final : public QObject
19{
20 Q_OBJECT
21public:
22 static PluginManager* getPluginManagerInstance();
23 static void setPluginIID(const QString &pluginIID);
24 static QString pluginIID();
25 static QStringList pluginPaths();
26 static void setPluginPaths(const QStringList &pluginPaths);
27 static QStringList servicePaths();
28 static void setServicePaths(const QStringList &servicePaths);
29 static PluginMetaObjectPointer pluginMetaObj(const QString &pluginName,
30 const QString version = "");
31 static bool readPlugins();
32 static bool loadPlugins();
33 static void shutdownPlugins();
34 static void setSettings(PluginSetting *settings);
35
36 static bool loadPlugin(PluginMetaObjectPointer &pointer);
37 static void shutdownPlugin(PluginMetaObjectPointer &pointer);
38};
39
40DPF_END_NAMESPACE
41
42#endif // LIFECYCLE_H
43