File indexing completed on 2024-06-09 04:00:35

0001 /*
0002     SPDX-FileCopyrightText: 2006 Michaƫl Larouche <michael.larouche@kdemail.net>
0003 
0004     SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0005 */
0006 #ifndef SOLID_BACKENDS_FAKEHW_FAKEDEVICE_H
0007 #define SOLID_BACKENDS_FAKEHW_FAKEDEVICE_H
0008 
0009 #include <solid/devices/ifaces/device.h>
0010 
0011 #include <QMap>
0012 #include <QSharedPointer>
0013 
0014 namespace Solid
0015 {
0016 namespace Backends
0017 {
0018 namespace Fake
0019 {
0020 class FakeDevice : public Solid::Ifaces::Device
0021 {
0022     Q_OBJECT
0023 public:
0024     FakeDevice(const QString &udi, const QMap<QString, QVariant> &propertyMap);
0025     FakeDevice(const FakeDevice &dev);
0026     ~FakeDevice() override;
0027 
0028 public Q_SLOTS:
0029     QString udi() const override;
0030     QString parentUdi() const override;
0031     QString vendor() const override;
0032     QString product() const override;
0033     QString icon() const override;
0034     QStringList emblems() const override;
0035     QString description() const override;
0036 
0037     virtual QVariant property(const QString &key) const;
0038     virtual QMap<QString, QVariant> allProperties() const;
0039     virtual bool propertyExists(const QString &key) const;
0040     virtual bool setProperty(const QString &key, const QVariant &value);
0041     virtual bool removeProperty(const QString &key);
0042 
0043     virtual bool lock(const QString &reason);
0044     virtual bool unlock();
0045     virtual bool isLocked() const;
0046     virtual QString lockReason() const;
0047 
0048     void setBroken(bool broken);
0049     bool isBroken();
0050     void raiseCondition(const QString &condition, const QString &reason);
0051 
0052 public:
0053     bool queryDeviceInterface(const Solid::DeviceInterface::Type &type) const override;
0054     QObject *createDeviceInterface(const Solid::DeviceInterface::Type &type) override;
0055 
0056 Q_SIGNALS:
0057     void propertyChanged(const QMap<QString, int> &changes);
0058     void conditionRaised(const QString &condition, const QString &reason);
0059 
0060 private:
0061     class Private;
0062     QSharedPointer<Private> d;
0063 };
0064 }
0065 }
0066 }
0067 
0068 #endif // SOLID_BACKENDS_FAKEHW_FAKEDEVICE_H