/** * SPDX-FileCopyrightText: 2013 Albert Vaca <albertvaka@gmail.com> * * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL */ #ifndef PLUGINLOADER_H #define PLUGINLOADER_H #include <QObject> #include <QHash> #include <QString> #include <KPluginMetaData> #include "kdeconnectcore_export.h" class Device; class KdeConnectPlugin; class KPluginFactory; class KDECONNECTCORE_EXPORT PluginLoader { public: static PluginLoader* instance(); QStringList getPluginList() const; KPluginMetaData getPluginInfo(const QString& name) const; KdeConnectPlugin* instantiatePluginForDevice(const QString& name, Device* device) const; QStringList incomingCapabilities() const; QStringList outgoingCapabilities() const; QSet<QString> pluginsForCapabilities(const QSet<QString>& incoming, const QSet<QString>& outgoing); private: PluginLoader(); QHash<QString, KPluginMetaData> plugins; #ifdef SAILFISHOS QHash<QString, KPluginFactory*> pluginsFactories; #endif }; #endif