1 /** 2 * SPDX-FileCopyrightText: 2013 Albert Vaca <albertvaka@gmail.com> 3 * 4 * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 5 */ 6 7 #ifndef PLUGINLOADER_H 8 #define PLUGINLOADER_H 9 10 #include <QObject> 11 #include <QHash> 12 #include <QString> 13 14 #include <KPluginMetaData> 15 16 #include "kdeconnectcore_export.h" 17 18 class Device; 19 class KdeConnectPlugin; 20 class KPluginFactory; 21 22 class KDECONNECTCORE_EXPORT PluginLoader 23 { 24 25 public: 26 static PluginLoader* instance(); 27 28 QStringList getPluginList() const; 29 KPluginMetaData getPluginInfo(const QString& name) const; 30 KdeConnectPlugin* instantiatePluginForDevice(const QString& name, Device* device) const; 31 32 QStringList incomingCapabilities() const; 33 QStringList outgoingCapabilities() const; 34 QSet<QString> pluginsForCapabilities(const QSet<QString>& incoming, const QSet<QString>& outgoing); 35 36 private: 37 PluginLoader(); 38 39 QHash<QString, KPluginMetaData> plugins; 40 #ifdef SAILFISHOS 41 QHash<QString, KPluginFactory*> pluginsFactories; 42 #endif 43 }; 44 45 #endif 46