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