File indexing completed on 2024-05-12 16:59:20

0001 /*
0002  *   SPDX-FileCopyrightText: 2014-2016 Ivan Cukic <ivan.cukic@kde.org>
0003  *
0004  *   SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
0005  */
0006 
0007 #ifndef MODULE_H
0008 #define MODULE_H
0009 
0010 #include "kactivitymanagerd_plugin_export.h"
0011 
0012 // Qt
0013 #include <QDBusVariant>
0014 #include <QObject>
0015 #include <QString>
0016 #include <QStringList>
0017 
0018 // Utils
0019 #include <utils/d_ptr.h>
0020 
0021 /**
0022  * Module
0023  */
0024 class KACTIVITYMANAGERD_PLUGIN_EXPORT Module : public QObject
0025 {
0026     Q_OBJECT
0027 
0028 public:
0029     explicit Module(const QString &name, QObject *parent = nullptr);
0030     ~Module() override;
0031 
0032     static QObject *get(const QString &name);
0033     static QHash<QString, QObject *> &get();
0034 
0035     virtual bool isFeatureOperational(const QStringList &feature) const;
0036     virtual bool isFeatureEnabled(const QStringList &feature) const;
0037     virtual void setFeatureEnabled(const QStringList &feature, bool value);
0038     virtual QStringList listFeatures(const QStringList &feature) const;
0039 
0040     virtual QDBusVariant featureValue(const QStringList &property) const;
0041     virtual void setFeatureValue(const QStringList &property, const QDBusVariant &value);
0042 
0043 private:
0044     D_PTR;
0045 };
0046 
0047 #endif // MODULE_H