File indexing completed on 2024-05-12 05:29:22

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 #pragma once
0008 
0009 #include "kactivitymanagerd_plugin_export.h"
0010 
0011 // Qt
0012 #include <QDBusVariant>
0013 #include <QObject>
0014 #include <QString>
0015 #include <QStringList>
0016 
0017 // Utils
0018 #include <utils/d_ptr.h>
0019 
0020 /**
0021  * Module
0022  */
0023 class KACTIVITYMANAGERD_PLUGIN_EXPORT Module : public QObject
0024 {
0025     Q_OBJECT
0026 
0027 public:
0028     explicit Module(const QString &name, QObject *parent = nullptr);
0029     ~Module() override;
0030 
0031     static QObject *get(const QString &name);
0032     static QHash<QString, QObject *> &get();
0033 
0034     virtual bool isFeatureOperational(const QStringList &feature) const;
0035     virtual bool isFeatureEnabled(const QStringList &feature) const;
0036     virtual void setFeatureEnabled(const QStringList &feature, bool value);
0037     virtual QStringList listFeatures(const QStringList &feature) const;
0038 
0039     virtual QDBusVariant featureValue(const QStringList &property) const;
0040     virtual void setFeatureValue(const QStringList &property, const QDBusVariant &value);
0041 
0042 private:
0043     D_PTR;
0044 };