File indexing completed on 2024-04-28 15:33:10
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 0101 NMVariantMapMap toMap() const; 0102 0103 void setId(const QString &id); 0104 QString id() const; 0105 0106 void setUuid(const QString &uuid); 0107 QString uuid() const; 0108 0109 void setInterfaceName(const QString &interfaceName); 0110 QString interfaceName() const; 0111 0112 void setConnectionType(ConnectionType type, NMBluetoothCapabilities bt_cap = NM_BT_CAPABILITY_DUN); 0113 ConnectionType connectionType() const; 0114 0115 void addToPermissions(const QString &user, const QString &type); 0116 void setPermissions(const QHash<QString, QString> &perm); 0117 QHash<QString, QString> permissions() const; 0118 0119 void setAutoconnect(bool autoconnect); 0120 bool autoconnect() const; 0121 0122 void setAutoconnectPriority(int priority); 0123 int autoconnectPriority() const; 0124 0125 void setTimestamp(const QDateTime ×tamp); 0126 QDateTime timestamp() const; 0127 0128 void setReadOnly(bool readonly); 0129 bool readOnly() const; 0130 0131 void setZone(const QString &zone); 0132 QString zone() const; 0133 0134 bool isSlave() const; 0135 0136 void setMaster(const QString &master); 0137 QString master() const; 0138 0139 void setSlaveType(const QString &type); 0140 QString slaveType() const; 0141 0142 void setSecondaries(const QStringList &secondaries); 0143 QStringList secondaries() const; 0144 0145 void setGatewayPingTimeout(quint32 timeout); 0146 quint32 gatewayPingTimeout() const; 0147 0148 void setAutoconnectRetries(int retries); 0149 int autoconnectRetries() const; 0150 0151 void setAutoconnectSlaves(AutoconnectSlaves autoconnectSlaves); 0152 AutoconnectSlaves autoconnectSlaves() const; 0153 0154 void setLldp(Lldp lldp); 0155 Lldp lldp() const; 0156 0157 void setMetered(Metered metered); 0158 Metered metered() const; 0159 0160 void setMdns(Mdns mdns); 0161 Mdns mdns() const; 0162 0163 void setStableId(const QString &stableId); 0164 QString stableId() const; 0165 0166 Setting::Ptr setting(Setting::SettingType type) const; 0167 Setting::Ptr setting(const QString &type) const; 0168 0169 Setting::List settings() const; 0170 0171 protected: 0172 ConnectionSettingsPrivate *d_ptr; 0173 0174 private: 0175 Q_DECLARE_PRIVATE(ConnectionSettings) 0176 }; 0177 0178 NETWORKMANAGERQT_EXPORT QDebug operator<<(QDebug dbg, const ConnectionSettings &setting); 0179 0180 } 0181 0182 #endif // NETWORKMANAGERQT_CONNECTION_SETTINGS_H