File indexing completed on 2024-04-21 04:00:00

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_WIRELESS_DEVICE_H
0008 #define NETWORKMANAGERQT_FAKE_NETWORK_WIRELESS_DEVICE_H
0009 
0010 #include <QObject>
0011 
0012 #include <QDBusObjectPath>
0013 
0014 #include "../device.h"
0015 #include "../generictypes.h"
0016 
0017 #include "accesspoint.h"
0018 #include "device.h"
0019 
0020 class WirelessDevice : public Device
0021 {
0022     Q_OBJECT
0023     Q_CLASSINFO("D-Bus Interface", "org.kde.fakenetwork.Device.Wireless")
0024 public:
0025     explicit WirelessDevice(QObject *parent = nullptr);
0026     ~WirelessDevice() override;
0027 
0028     Q_PROPERTY(QList<QDBusObjectPath> AccessPoints READ accessPoints)
0029     Q_PROPERTY(QDBusObjectPath ActiveAccessPoint READ activeAccessPoint)
0030     Q_PROPERTY(uint Bitrate READ bitrate)
0031     Q_PROPERTY(QString HwAddress READ hwAddress)
0032     Q_PROPERTY(uint Mode READ mode)
0033     Q_PROPERTY(QString PermHwAddress READ permHwAddress)
0034     Q_PROPERTY(uint WirelessCapabilities READ wirelessCapabilities)
0035 
0036     QList<QDBusObjectPath> accessPoints() const;
0037     QDBusObjectPath activeAccessPoint() const;
0038     uint bitrate() const;
0039     QString hwAddress() const;
0040     uint mode() const;
0041     QString permHwAddress() const;
0042     uint wirelessCapabilities() const;
0043 
0044     /* Not part of DBus interface */
0045     void addAccessPoint(AccessPoint *accessPoint);
0046     void removeAccessPoint(AccessPoint *accessPoint);
0047     void setActiveAccessPoint(const QString &activeAccessPoint);
0048     void setBitrate(uint bitrate);
0049     void setHwAddress(const QString &hwAddress);
0050     void setMode(uint mode);
0051     void setPermHwAddress(const QString &permHwAddress);
0052     void setState(uint state) override;
0053     void setWirelessCapabilities(uint capabilities);
0054 
0055 public Q_SLOTS:
0056     Q_SCRIPTABLE QList<QDBusObjectPath> GetAccessPoints();
0057     Q_SCRIPTABLE QList<QDBusObjectPath> GetAllAccessPoints();
0058     Q_SCRIPTABLE void RequestScan(const QVariantMap &options);
0059 
0060 Q_SIGNALS:
0061     Q_SCRIPTABLE void AccessPointAdded(const QDBusObjectPath &access_point);
0062     Q_SCRIPTABLE void AccessPointRemoved(const QDBusObjectPath &access_point);
0063     Q_SCRIPTABLE void PropertiesChanged(const QVariantMap &properties);
0064 
0065 private:
0066     QMap<QDBusObjectPath, AccessPoint *> m_accessPoints;
0067     QDBusObjectPath m_activeAccessPoint;
0068     uint m_bitrate;
0069     QString m_hwAddress;
0070     uint m_mode;
0071     QString m_permHwAddress;
0072     uint m_wirelessCapabilities;
0073 
0074     /* Not part of DBus interface */
0075     int m_accessPointCounter;
0076 };
0077 
0078 #endif