/* SPDX-FileCopyrightText: 2020 Vlad Zahorodnii SPDX-License-Identifier: GPL-2.0-or-later */ #pragma once #include "effect/globals.h" #include #include #include namespace KWin { class Plugin; /** * The PluginManager class loads and unloads binary compositor extensions. */ class KWIN_EXPORT PluginManager : public QObject { Q_OBJECT public: PluginManager(); ~PluginManager() override; QStringList loadedPlugins() const; QStringList availablePlugins() const; public Q_SLOTS: bool loadPlugin(const QString &pluginId); void unloadPlugin(const QString &pluginId); private: bool loadPlugin(const KPluginMetaData &metadata); std::map> m_plugins; }; } // namespace KWin