File indexing completed on 2024-04-28 07:49:05
0001 /* 0002 SPDX-FileCopyrightText: 2012-2013 Jan Grulich <jgrulich@redhat.com> 0003 SPDX-FileCopyrightText: 2013 Daniel Nicoletti <dantti12@gmail.com> 0004 0005 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0006 */ 0007 0008 #ifndef NETWORKMANAGERQT_CONNECTION_SETTINGS_H 0009 #define NETWORKMANAGERQT_CONNECTION_SETTINGS_H 0010 0011 #include "setting.h" 0012 #include <networkmanagerqt/networkmanagerqt_export.h> 0013 0014 #undef signals 0015 #include <libnm/NetworkManager.h> 0016 #define signals Q_SIGNALS 0017 0018 #include <QDateTime> 0019 #include <QHash> 0020 #include <QString> 0021 0022 namespace NetworkManager 0023 { 0024 class ConnectionSettingsPrivate; 0025 0026 /** 0027 * Represents collection of all connection settings 0028 */ 0029 class NETWORKMANAGERQT_EXPORT ConnectionSettings 0030 { 0031 Q_ENUMS(ConnectionType) 0032 public: 0033 typedef QSharedPointer<ConnectionSettings> Ptr; 0034 typedef QList<Ptr> List; 0035 enum ConnectionType { 0036 Unknown = 0, 0037 Adsl, 0038 Bluetooth, 0039 Bond, 0040 Bridge, 0041 Cdma, 0042 Gsm, 0043 Infiniband, 0044 OLPCMesh, 0045 Pppoe, 0046 Vlan, 0047 Vpn, 0048 Wimax, 0049 Wired, 0050 Wireless, 0051 Team, 0052 Generic, 0053 Tun, 0054 IpTunnel, 0055 WireGuard, 0056 }; 0057 0058 enum AutoconnectSlaves { 0059 SlavesDefault = -1, 0060 DoNotConnectSlaves = 0, 0061 ConnectAllSlaves = 1, 0062 }; 0063 0064 enum Lldp { 0065 LldpDefault = -1, 0066 LldpDisable = 0, 0067 LldpEnableRx = 1, 0068 }; 0069 0070 // FIXME same enum as in device.h, unfortunately it's not possible to use that one 0071 // maybe in future move all enums into one header so they can be used across all classes 0072 enum Metered { 0073 MeteredUnknown = 0, 0074 MeteredYes = 1, 0075 MeteredNo = 2, 0076 MeteredGuessYes = 3, 0077 MeteredGuessNo = 4, 0078 }; 0079 0080 enum Mdns { 0081 MdnsDefault = -1, 0082 MdnsNo = 0, 0083 MdnsResolve = 1, 0084 MdnsResolveAndRespond = 2 0085 }; 0086 0087 static ConnectionType typeFromString(const QString &typeString); 0088 static QString typeAsString(const ConnectionType type); 0089 static QString createNewUuid(); 0090 0091 ConnectionSettings(); 0092 explicit ConnectionSettings(ConnectionType type, NMBluetoothCapabilities bt_cap = NM_BT_CAPABILITY_DUN); 0093 explicit ConnectionSettings(const ConnectionSettings::Ptr &other); 0094 explicit ConnectionSettings(const NMVariantMapMap &map); 0095 virtual ~ConnectionSettings(); 0096 0097 QString name() const; 0098 0099 void fromMap(const NMVariantMapMap &map); 0100 void fromMeCard(const QVariantMap &map); 0101 0102 NMVariantMapMap toMap() const; 0103 0104 void setId(const QString &id); 0105 QString id() const; 0106 0107 void setUuid(const QString &uuid); 0108 QString uuid() const; 0109 0110 void setInterfaceName(const QString &interfaceName); 0111 QString interfaceName() const; 0112 0113 void setConnectionType(ConnectionType type, NMBluetoothCapabilities bt_cap = NM_BT_CAPABILITY_DUN); 0114 ConnectionType connectionType() const; 0115 0116 void addToPermissions(const QString &user, const QString &type); 0117 void setPermissions(const QHash<QString, QString> &perm); 0118 QHash<QString, QString> permissions() const; 0119 0120 void setAutoconnect(bool autoconnect); 0121 bool autoconnect() const; 0122 0123 void setAutoconnectPriority(int priority); 0124 int autoconnectPriority() const; 0125 0126 void setTimestamp(const QDateTime ×tamp); 0127 QDateTime timestamp() const; 0128 0129 void setReadOnly(bool readonly); 0130 bool readOnly() const; 0131 0132 void setZone(const QString &zone); 0133 QString zone() const; 0134 0135 bool isSlave() const; 0136 0137 void setMaster(const QString &master); 0138 QString master() const; 0139 0140 void setSlaveType(const QString &type); 0141 QString slaveType() const; 0142 0143 void setSecondaries(const QStringList &secondaries); 0144 QStringList secondaries() const; 0145 0146 void setGatewayPingTimeout(quint32 timeout); 0147 quint32 gatewayPingTimeout() const; 0148 0149 void setAutoconnectRetries(int retries); 0150 int autoconnectRetries() const; 0151 0152 void setAutoconnectSlaves(AutoconnectSlaves autoconnectSlaves); 0153 AutoconnectSlaves autoconnectSlaves() const; 0154 0155 void setLldp(Lldp lldp); 0156 Lldp lldp() const; 0157 0158 void setMetered(Metered metered); 0159 Metered metered() const; 0160 0161 void setMdns(Mdns mdns); 0162 Mdns mdns() const; 0163 0164 void setStableId(const QString &stableId); 0165 QString stableId() const; 0166 0167 Setting::Ptr setting(Setting::SettingType type) const; 0168 Setting::Ptr setting(const QString &type) const; 0169 0170 Setting::List settings() const; 0171 0172 protected: 0173 ConnectionSettingsPrivate *d_ptr; 0174 0175 private: 0176 Q_DECLARE_PRIVATE(ConnectionSettings) 0177 }; 0178 0179 NETWORKMANAGERQT_EXPORT QDebug operator<<(QDebug dbg, const ConnectionSettings &setting); 0180 0181 } 0182 0183 #endif // NETWORKMANAGERQT_CONNECTION_SETTINGS_H