File indexing completed on 2024-04-21 04:56:45
0001 /** 0002 * SPDX-FileCopyrightText: 2013 Albert Vaca <albertvaka@gmail.com> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 0005 */ 0006 0007 #ifndef PLUGINLOADER_H 0008 #define PLUGINLOADER_H 0009 0010 #include <QHash> 0011 #include <QObject> 0012 #include <QString> 0013 0014 #include <KPluginMetaData> 0015 0016 #include "kdeconnectcore_export.h" 0017 0018 class Device; 0019 class KdeConnectPlugin; 0020 class KPluginFactory; 0021 0022 class KDECONNECTCORE_EXPORT PluginLoader 0023 { 0024 public: 0025 static PluginLoader *instance(); 0026 0027 QStringList getPluginList() const; 0028 bool doesPluginExist(const QString &name) const; 0029 KPluginMetaData getPluginInfo(const QString &name) const; 0030 KdeConnectPlugin *instantiatePluginForDevice(const QString &name, Device *device) const; 0031 0032 QStringList incomingCapabilities() const; 0033 QStringList outgoingCapabilities() const; 0034 QSet<QString> pluginsForCapabilities(const QSet<QString> &incoming, const QSet<QString> &outgoing) const; 0035 0036 private: 0037 PluginLoader(); 0038 0039 QHash<QString, KPluginMetaData> plugins; 0040 }; 0041 0042 #endif