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