File indexing completed on 2024-04-14 03:57:39
0001 /* 0002 SPDX-FileCopyrightText: 2019 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_WIREGUARD_SETTING_H 0008 #define NETWORKMANAGERQT_WIREGUARD_SETTING_H 0009 0010 #include "setting.h" 0011 #include <networkmanagerqt/networkmanagerqt_export.h> 0012 0013 #include <QString> 0014 0015 namespace NetworkManager 0016 { 0017 class WireGuardSettingPrivate; 0018 0019 /** 0020 * Represents generic setting 0021 */ 0022 class NETWORKMANAGERQT_EXPORT WireGuardSetting : public Setting 0023 { 0024 public: 0025 typedef QSharedPointer<WireGuardSetting> Ptr; 0026 typedef QList<Ptr> List; 0027 WireGuardSetting(); 0028 explicit WireGuardSetting(const Ptr &other); 0029 ~WireGuardSetting() override; 0030 0031 QString name() const override; 0032 0033 quint32 fwmark() const; 0034 void setFwmark(quint32 fwmark); 0035 0036 quint32 listenPort() const; 0037 void setListenPort(quint32 port); 0038 0039 quint32 mtu() const; 0040 void setMtu(quint32 mtu); 0041 0042 bool peerRoutes() const; 0043 void setPeerRoutes(bool peerRoutes); 0044 0045 NMVariantMapList peers() const; 0046 void setPeers(const NMVariantMapList &peers); 0047 0048 QString privateKey() const; 0049 void setPrivateKey(const QString &key); 0050 0051 SecretFlags privateKeyFlags() const; 0052 void setPrivateKeyFlags(SecretFlags flags); 0053 0054 void secretsFromMap(const QVariantMap &secrets) override; 0055 0056 QVariantMap secretsToMap() const override; 0057 0058 void secretsFromStringMap(const NMStringMap &map) override; 0059 0060 NMStringMap secretsToStringMap() const override; 0061 0062 /* 0063 * Required "preshared-key" properties from "peers" property will be returned 0064 * as strings in format "peers.public-key.preshared-key". 0065 */ 0066 QStringList needSecrets(bool requestNew = false) const override; 0067 0068 void fromMap(const QVariantMap &setting) override; 0069 0070 QVariantMap toMap() const override; 0071 0072 protected: 0073 WireGuardSettingPrivate *d_ptr; 0074 0075 private: 0076 Q_DECLARE_PRIVATE(WireGuardSetting) 0077 }; 0078 0079 NETWORKMANAGERQT_EXPORT QDebug operator<<(QDebug dbg, const WireGuardSetting &setting); 0080 0081 } 0082 0083 #endif // NETWORKMANAGERQT_WIREGUARD_SETTING_H