File indexing completed on 2024-04-28 15:33:08

0001 /*
0002     SPDX-FileCopyrightText: 2014 Jan Grulich <jgrulich@redhat.com>
0003 
0004     SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0005 */
0006 
0007 #ifndef NETWORKMANAGERQT_FAKE_NETWORK_DEVICE_H
0008 #define NETWORKMANAGERQT_FAKE_NETWORK_DEVICE_H
0009 
0010 #include <QObject>
0011 
0012 #include <QDBusObjectPath>
0013 
0014 #include "../device.h"
0015 #include "../generictypes.h"
0016 
0017 class Device : public QObject
0018 {
0019     Q_OBJECT
0020     Q_CLASSINFO("D-Bus Interface", "org.kde.fakenetwork.Device")
0021 public:
0022     explicit Device(QObject *parent = nullptr);
0023     ~Device() override;
0024 
0025     Q_PROPERTY(QDBusObjectPath ActiveConnection READ activeConnection)
0026     Q_PROPERTY(bool Autoconnect READ autoconnect WRITE setAutoconnect)
0027     Q_PROPERTY(QList<QDBusObjectPath> AvailableConnections READ availableConnections)
0028     Q_PROPERTY(uint Capabilities READ capabilities)
0029     Q_PROPERTY(uint DeviceType READ deviceType)
0030     Q_PROPERTY(QDBusObjectPath Dhcp4Config READ dhcp4Config)
0031     Q_PROPERTY(QDBusObjectPath Dhcp6Config READ dhcp6Config)
0032     Q_PROPERTY(QString Driver READ driver)
0033     Q_PROPERTY(QString DriverVersion READ driverVersion)
0034     Q_PROPERTY(bool FirmwareMissing READ firmwareMissing)
0035     Q_PROPERTY(QString FirmwareVersion READ firmwareVersion)
0036     Q_PROPERTY(QString Interface READ interface)
0037     Q_PROPERTY(int Ip4Address READ ip4Address)
0038     Q_PROPERTY(QDBusObjectPath Ip4Config READ ip4Config)
0039     Q_PROPERTY(QDBusObjectPath Ip6Config READ ip6Config)
0040     Q_PROPERTY(QString IpInterface READ ipInterface)
0041     Q_PROPERTY(bool Managed READ managed)
0042     Q_PROPERTY(uint Mtu READ mtu)
0043     Q_PROPERTY(uint State READ state)
0044     Q_PROPERTY(DeviceDBusStateReason StateReason READ stateReason)
0045     Q_PROPERTY(QString Udi READ udi)
0046 
0047     QDBusObjectPath activeConnection() const;
0048     bool autoconnect() const;
0049     void setAutoconnect(bool autoconnect);
0050     QList<QDBusObjectPath> availableConnections() const;
0051     uint capabilities() const;
0052     uint deviceType() const;
0053     QDBusObjectPath dhcp4Config() const;
0054     QDBusObjectPath dhcp6Config() const;
0055     QString driver() const;
0056     QString driverVersion() const;
0057     bool firmwareMissing() const;
0058     QString firmwareVersion() const;
0059     QString interface() const;
0060     int ip4Address() const;
0061     QDBusObjectPath ip4Config() const;
0062     QDBusObjectPath ip6Config() const;
0063     QString ipInterface() const;
0064     bool managed() const;
0065     uint mtu() const;
0066     uint state() const;
0067     DeviceDBusStateReason stateReason() const;
0068     QString udi() const;
0069 
0070     /* Not part of DBus interface */
0071     void addAvailableConnection(const QDBusObjectPath &availableConnection);
0072     void removeAvailableConnection(const QDBusObjectPath &availableConnection);
0073     void setActiveConnection(const QString &activeConnection);
0074     void setCapabilities(uint capabilities);
0075     QString deviceInterface() const;
0076     QString devicePath() const;
0077     void setDevicePath(const QString &devicePath);
0078     void setDeviceType(uint deviceType);
0079     void setDhcp4Config(const QString &config);
0080     void setDhcp6Config(const QString &config);
0081     void setDriver(const QString &driver);
0082     void setDriverVersion(const QString &driverVersion);
0083     void setFirmwareMissing(bool firmwareMissing);
0084     void setFirmwareVersion(const QString &firmwareVersion);
0085     void setInterface(const QString &interface);
0086     void setIpv4Address(int address);
0087     void setIp4Config(const QString &config);
0088     void setIp6Config(const QString &config);
0089     void setIpInterface(const QString &interface);
0090     void setManaged(bool managed);
0091     void setMtu(uint mtu);
0092     virtual void setState(uint state);
0093     void setStateReason(const DeviceDBusStateReason &reason);
0094     void setUdi(const QString &udi);
0095 
0096 public Q_SLOTS:
0097     Q_SCRIPTABLE void Disconnect();
0098 
0099 Q_SIGNALS:
0100     void activeConnectionRemoved(const QDBusObjectPath &activeConnection);
0101     Q_SCRIPTABLE void StateChanged(uint new_state, uint old_state, uint reason);
0102 
0103 private:
0104     QDBusObjectPath m_activeConnection;
0105     bool m_autoconnect;
0106     QList<QDBusObjectPath> m_availableConnections;
0107     uint m_capabilities;
0108     QString m_devicePath;
0109     uint m_deviceType;
0110     QDBusObjectPath m_dhcp4Config;
0111     QDBusObjectPath m_dhcp6Config;
0112     QString m_driver;
0113     QString m_driverVersion;
0114     bool m_firmwareMissing;
0115     QString m_firmwareVersion;
0116     QString m_interface;
0117     int m_ip4Address;
0118     QDBusObjectPath m_ip4Config;
0119     QDBusObjectPath m_ip6Config;
0120     QString m_ipInterface;
0121     bool m_managed;
0122     uint m_mtu;
0123     QString m_physicalPortId;
0124     uint m_state;
0125     DeviceDBusStateReason m_stateReason;
0126     QString m_udi;
0127 };
0128 
0129 #endif