File indexing completed on 2024-04-28 03:59:49

0001 /*
0002     SPDX-FileCopyrightText: 2015 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 MODEMMANAGERQT_FAKE_MODEM_MODEM_H
0008 #define MODEMMANAGERQT_FAKE_MODEM_MODEM_H
0009 
0010 #include "generictypes.h"
0011 
0012 #include <QObject>
0013 
0014 #include <QDBusObjectPath>
0015 
0016 class Modem : public QObject
0017 {
0018     Q_OBJECT
0019     Q_CLASSINFO("D-Bus Interface", "org.kde.fakemodem.Modem")
0020 public:
0021     explicit Modem(QObject *parent = nullptr);
0022     ~Modem() override;
0023 
0024     Q_PROPERTY(uint AccessTechnologies READ accessTechnologies)
0025     Q_PROPERTY(QList<QDBusObjectPath> Bearers READ bearers)
0026     Q_PROPERTY(ModemManager::UIntList CurrentBands READ currentBands)
0027     Q_PROPERTY(uint CurrentCapabilities READ currentCapabilities)
0028     Q_PROPERTY(ModemManager::CurrentModesType CurrentModes READ currentModes)
0029     Q_PROPERTY(QString Device READ device)
0030     Q_PROPERTY(QString DeviceIdentifier READ deviceIdentifier)
0031     Q_PROPERTY(QStringList Drivers READ drivers)
0032     Q_PROPERTY(QString EquipmentIdentifier READ equipmentIdentifier)
0033     Q_PROPERTY(QString Manufacturer READ manufacturer)
0034     Q_PROPERTY(uint MaxActiveBearers READ maxActiveBearers)
0035     Q_PROPERTY(uint MaxBearers READ maxBearers)
0036     Q_PROPERTY(QString Model READ model)
0037     Q_PROPERTY(QStringList OwnNumbers READ ownNumbers)
0038     Q_PROPERTY(QString Plugin READ plugin)
0039     Q_PROPERTY(ModemManager::PortList Ports READ ports)
0040     Q_PROPERTY(uint PowerState READ powerState)
0041     Q_PROPERTY(QString PrimaryPort READ primaryPort)
0042     Q_PROPERTY(QString Revision READ revision)
0043     Q_PROPERTY(ModemManager::SignalQualityPair SignalQuality READ signalQuality)
0044     Q_PROPERTY(QDBusObjectPath Sim READ sim)
0045     Q_PROPERTY(int State READ state)
0046     Q_PROPERTY(uint StateFailedReason READ stateFailedReason)
0047     Q_PROPERTY(ModemManager::UIntList SupportedBands READ supportedBands)
0048     Q_PROPERTY(ModemManager::UIntList SupportedCapabilities READ supportedCapabilities)
0049     Q_PROPERTY(uint SupportedIpFamilies READ supportedIpFamilies)
0050     Q_PROPERTY(ModemManager::SupportedModesType SupportedModes READ supportedModes)
0051     Q_PROPERTY(uint UnlockRequired READ unlockRequired)
0052     Q_PROPERTY(ModemManager::UnlockRetriesMap UnlockRetries READ unlockRetries)
0053 
0054     uint accessTechnologies() const;
0055     QList<QDBusObjectPath> bearers() const;
0056     ModemManager::UIntList currentBands() const;
0057     uint currentCapabilities() const;
0058     ModemManager::CurrentModesType currentModes() const;
0059     QString device() const;
0060     QString deviceIdentifier() const;
0061     QStringList drivers() const;
0062     QString equipmentIdentifier() const;
0063     QString manufacturer() const;
0064     uint maxActiveBearers() const;
0065     uint maxBearers() const;
0066     QString model() const;
0067     QStringList ownNumbers() const;
0068     QString plugin() const;
0069     ModemManager::PortList ports() const;
0070     uint powerState() const;
0071     QString primaryPort() const;
0072     QString revision() const;
0073     ModemManager::SignalQualityPair signalQuality() const;
0074     QDBusObjectPath sim() const;
0075     int state() const;
0076     uint stateFailedReason() const;
0077     ModemManager::UIntList supportedBands() const;
0078     ModemManager::UIntList supportedCapabilities() const;
0079     uint supportedIpFamilies() const;
0080     ModemManager::SupportedModesType supportedModes() const;
0081     uint unlockRequired() const;
0082     ModemManager::UnlockRetriesMap unlockRetries() const;
0083 
0084     /* Not part of DBus interface */
0085     void addBearer(const QDBusObjectPath &bearer);
0086     void removeBearer(const QDBusObjectPath &bearer);
0087     QString modemPath() const;
0088     void setEnableNotifications(bool enable);
0089     void setAccessTechnologies(uint technologies);
0090     void setDevice(const QString &device);
0091     void setDeviceIdentifier(const QString &deviceIdentifier);
0092     void setDrivers(const QStringList &drivers);
0093     void setEquipmentIdentifier(const QString &identifier);
0094     void setManufacturer(const QString &manufacturer);
0095     void setMaxActiveBearers(uint bearers);
0096     void setMaxBearers(uint bearers);
0097     void setModemPath(const QString &path);
0098     void setModel(const QString &model);
0099     void setOwnNumbers(const QStringList &numbers);
0100     void setPlugin(const QString &plugin);
0101     void setPorts(const ModemManager::PortList &ports);
0102     void setPrimaryPort(const QString &port);
0103     void setRevision(const QString &revision);
0104     void setSignalQuality(const ModemManager::SignalQualityPair &signalQuality);
0105     void setSim(const QDBusObjectPath &sim);
0106     void setState(int state);
0107     void setStateFailedReason(uint reason);
0108     void setSupportedBands(const ModemManager::UIntList &bands);
0109     void setSupportedCapabilities(const ModemManager::UIntList &capabilities);
0110     void setSupportedIpFamilies(uint families);
0111     void setSupportedModes(const ModemManager::SupportedModesType &modes);
0112     void setUnlockRequired(uint unlockRequired);
0113     void setUnlockRetries(const ModemManager::UnlockRetriesMap &unlockRetries);
0114 
0115     QVariantMap toMap() const;
0116 
0117 public Q_SLOTS:
0118     Q_SCRIPTABLE QString Command(const QString &cmd, uint timeout);
0119     Q_SCRIPTABLE QDBusObjectPath CreateBearer(const QVariantMap &properties);
0120     Q_SCRIPTABLE void DeleteBearer(const QDBusObjectPath &bearer);
0121     Q_SCRIPTABLE void Enable(bool enable);
0122     Q_SCRIPTABLE void FactoryReset(const QString &code);
0123     Q_SCRIPTABLE QList<QDBusObjectPath> ListBearers();
0124     Q_SCRIPTABLE void Reset();
0125     Q_SCRIPTABLE void SetCurrentBands(const QList<uint> &bands);
0126     Q_SCRIPTABLE void SetCurrentCapabilities(uint capabilities);
0127     Q_SCRIPTABLE void SetCurrentModes(ModemManager::CurrentModesType modes);
0128     Q_SCRIPTABLE void SetPowerState(uint state);
0129 
0130 Q_SIGNALS:
0131     Q_SCRIPTABLE void StateChanged(int oldState, int newState, uint reason);
0132 
0133 private:
0134     uint m_accessTechnologies;
0135     QList<QDBusObjectPath> m_bearers;
0136     ModemManager::UIntList m_currentBands;
0137     uint m_currentCapabilities;
0138     ModemManager::CurrentModesType m_currentModes;
0139     QString m_device;
0140     QString m_deviceIdentifier;
0141     QStringList m_drivers;
0142     bool m_enabledNotifications;
0143     QString m_equipmentIdentifier;
0144     QString m_manufacturer;
0145     uint m_maxActiveBearers;
0146     uint m_maxBearers;
0147     QString m_path;
0148     QString m_model;
0149     QStringList m_ownNumbers;
0150     QString m_plugin;
0151     ModemManager::PortList m_ports;
0152     uint m_powerState;
0153     QString m_primaryPort;
0154     QString m_revision;
0155     ModemManager::SignalQualityPair m_signalQuality;
0156     QDBusObjectPath m_sim;
0157     int m_state;
0158     uint m_stateFailedReason;
0159     ModemManager::UIntList m_supportedBands;
0160     ModemManager::UIntList m_supportedCapabilities;
0161     uint m_supportedIpFamilies;
0162     ModemManager::SupportedModesType m_supportedModes;
0163     uint m_unlockRequired;
0164     ModemManager::UnlockRetriesMap m_unlockRetries;
0165 };
0166 
0167 #endif