File indexing completed on 2024-05-12 17:08:30
0001 /* 0002 * SPDX-FileCopyrightText: 2018-2019 Daniel Vrátil <dvratil@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 FAKEDEVICE_H 0008 #define FAKEDEVICE_H 0009 0010 #include <QDBusObjectPath> 0011 #include <QJsonObject> 0012 #include <QObject> 0013 0014 class FakeDeviceException : public std::runtime_error 0015 { 0016 public: 0017 FakeDeviceException(const QString &what) 0018 : std::runtime_error(what.toStdString()) 0019 { 0020 } 0021 }; 0022 0023 class FakeDevice : public QObject 0024 { 0025 Q_OBJECT 0026 Q_CLASSINFO("D-Bus Interface", "org.freedesktop.bolt1.Device") 0027 0028 Q_PROPERTY(QString Uid READ uid CONSTANT) 0029 Q_PROPERTY(QString Name READ name CONSTANT) 0030 Q_PROPERTY(QString Vendor READ vendor CONSTANT) 0031 Q_PROPERTY(QString Type READ type CONSTANT) 0032 Q_PROPERTY(QString Status READ status CONSTANT) 0033 Q_PROPERTY(QString AuthFlags READ authFlags CONSTANT) 0034 Q_PROPERTY(QString Parent READ parent CONSTANT) 0035 Q_PROPERTY(QString SysfsPath READ sysfsPath CONSTANT) 0036 Q_PROPERTY(bool Stored READ stored CONSTANT) 0037 Q_PROPERTY(QString Policy READ policy CONSTANT) 0038 Q_PROPERTY(QString Key READ key CONSTANT) 0039 Q_PROPERTY(QString Label READ label WRITE setLabel NOTIFY labelChanged) 0040 Q_PROPERTY(quint64 ConnectTime READ connectTime CONSTANT) 0041 Q_PROPERTY(quint64 AuthorizeTime READ authorizeTime CONSTANT) 0042 Q_PROPERTY(quint64 StoreTime READ storeTime CONSTANT) 0043 public: 0044 explicit FakeDevice(const QString &uid, QObject *parent = nullptr); 0045 explicit FakeDevice(const QJsonObject &json, QObject *parent = nullptr); 0046 ~FakeDevice() override; 0047 0048 QDBusObjectPath dbusPath() const; 0049 0050 QString uid() const; 0051 QString name() const; 0052 void setName(const QString &name); 0053 QString vendor() const; 0054 void setVendor(const QString &vendor); 0055 QString type() const; 0056 void setType(const QString &type); 0057 QString status() const; 0058 void setStatus(const QString &status); 0059 QString authFlags() const; 0060 void setAuthFlags(const QString &authFlags); 0061 QString parent() const; 0062 void setParent(const QString &parent); 0063 QString sysfsPath() const; 0064 void setSysfsPath(const QString &sysfsPath); 0065 bool stored() const; 0066 void setStored(bool stored); 0067 QString policy() const; 0068 void setPolicy(const QString &policy); 0069 QString key() const; 0070 void setKey(const QString &key); 0071 QString label() const; 0072 void setLabel(const QString &label); 0073 quint64 connectTime() const; 0074 void setConnectTime(quint64 connectTime); 0075 quint64 authorizeTime() const; 0076 void setAuthorizeTime(quint64 authorizeTime); 0077 quint64 storeTime() const; 0078 void setStoreTime(quint64 storeTime); 0079 0080 public Q_SLOTS: 0081 void Authorize(const QString &flags); 0082 0083 Q_SIGNALS: 0084 void labelChanged(const QString &label); 0085 0086 private: 0087 QDBusObjectPath mDBusPath; 0088 0089 QString mUid; 0090 QString mName; 0091 QString mVendor; 0092 QString mType; 0093 QString mStatus = QStringLiteral("unknown"); 0094 QString mAuthFlags = QStringLiteral("none"); 0095 QString mParent; 0096 QString mSysfsPath; 0097 QString mPolicy = QStringLiteral("unknown"); 0098 QString mKey; 0099 QString mLabel; 0100 quint64 mConnectTime = 0; 0101 quint64 mAuthorizeTime = 0; 0102 quint64 mStoreTime = 0; 0103 bool mStored = false; 0104 }; 0105 0106 #endif