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

0001 /*
0002     SPDX-FileCopyrightText: 2012-2013 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_WIRED_SETTING_H
0008 #define NETWORKMANAGERQT_WIRED_SETTING_H
0009 
0010 #include "setting.h"
0011 #include <networkmanagerqt/networkmanagerqt_export.h>
0012 
0013 #include <QStringList>
0014 
0015 namespace NetworkManager
0016 {
0017 class WiredSettingPrivate;
0018 
0019 /**
0020  * Represents wired setting
0021  */
0022 class NETWORKMANAGERQT_EXPORT WiredSetting : public Setting
0023 {
0024 public:
0025     typedef QSharedPointer<WiredSetting> Ptr;
0026     typedef QList<Ptr> List;
0027     enum PortType {
0028         UnknownPort = 0,
0029         Tp,
0030         Aui,
0031         Bnc,
0032         Mii,
0033     };
0034 
0035     enum DuplexType {
0036         UnknownDuplexType = 0,
0037         Half,
0038         Full,
0039     };
0040 
0041     enum S390Nettype {
0042         Undefined = 0,
0043         Qeth,
0044         Lcs,
0045         Ctc,
0046     };
0047 
0048     enum WakeOnLanFlag {
0049         WakeOnLanPhy = 1 << 1,
0050         WakeOnLanUnicast = 1 << 2,
0051         WakeOnLanMulticast = 1 << 3,
0052         WakeOnLanBroadcast = 1 << 4,
0053         WakeOnLanArp = 1 << 5,
0054         WakeOnLanMagic = 1 << 6,
0055         /* Special values */
0056         WakeOnLanDefault = 1 << 0,
0057         WakeOnLanIgnore = 1 << 15,
0058     };
0059     Q_DECLARE_FLAGS(WakeOnLanFlags, WakeOnLanFlag)
0060     Q_FLAGS(WakeOnLanFlag)
0061 
0062     WiredSetting();
0063     explicit WiredSetting(const Ptr &other);
0064     ~WiredSetting() override;
0065 
0066     QString name() const override;
0067 
0068     void setPort(PortType port);
0069     PortType port() const;
0070 
0071     void setSpeed(quint32 speed);
0072     quint32 speed() const;
0073 
0074     void setDuplexType(DuplexType type);
0075     DuplexType duplexType() const;
0076 
0077     void setAutoNegotiate(bool autoNegotiate);
0078     bool autoNegotiate() const;
0079 
0080     QString generateMacAddressMask() const;
0081     void setGenerateMacAddressMask(const QString &mask);
0082 
0083     void setMacAddress(const QByteArray &address);
0084     QByteArray macAddress() const;
0085 
0086     void setClonedMacAddress(const QByteArray &address);
0087     QByteArray clonedMacAddress() const;
0088 
0089     void setMacAddressBlacklist(const QStringList &list);
0090     QStringList macAddressBlacklist() const;
0091 
0092     void setMtu(quint32 mtu);
0093     quint32 mtu() const;
0094 
0095     void setS390Subchannels(const QStringList &channels);
0096     QStringList s390Subchannels() const;
0097 
0098     void setS390NetType(S390Nettype type);
0099     S390Nettype s390NetType() const;
0100 
0101     void setS390Options(const QMap<QString, QString> &options);
0102     QMap<QString, QString> s390Options() const;
0103 
0104     WakeOnLanFlags wakeOnLan() const;
0105     void setWakeOnLan(WakeOnLanFlags wol);
0106 
0107     QString wakeOnLanPassword() const;
0108     void setWakeOnLanPassword(const QString &password);
0109 
0110     QString assignedMacAddress() const;
0111     void setAssignedMacAddress(const QString &assignedMacAddress);
0112 
0113     void fromMap(const QVariantMap &setting) override;
0114 
0115     QVariantMap toMap() const override;
0116 
0117 protected:
0118     WiredSettingPrivate *d_ptr;
0119 
0120 private:
0121     Q_DECLARE_PRIVATE(WiredSetting)
0122 };
0123 
0124 NETWORKMANAGERQT_EXPORT QDebug operator<<(QDebug dbg, const WiredSetting &setting);
0125 
0126 Q_DECLARE_OPERATORS_FOR_FLAGS(WiredSetting::WakeOnLanFlags)
0127 
0128 }
0129 
0130 #endif // NETWORKMANAGERQT_WIRED_SETTING_H