1/*
2 SPDX-FileCopyrightText: 2019 Jan Grulich <jgrulich@redhat.com>
3
4 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
5*/
6
7#ifndef NETWORKMANAGERQT_WIREGUARD_SETTING_H
8#define NETWORKMANAGERQT_WIREGUARD_SETTING_H
9
10#include "setting.h"
11#include <networkmanagerqt/networkmanagerqt_export.h>
12
13#include <QString>
14
15namespace NetworkManager
16{
17class WireGuardSettingPrivate;
18
19/*!
20 * \class NetworkManager::WireGuardSetting
21 * \inheaderfile NetworkManagerQt/WireGuardSetting
22 * \inmodule NetworkManagerQt
23 *
24 * \brief Represents generic setting.
25 */
26class NETWORKMANAGERQT_EXPORT WireGuardSetting : public Setting
27{
28public:
29 /*!
30 * \typedef NetworkManager::WireGuardSetting::Ptr
31 */
32 typedef QSharedPointer<WireGuardSetting> Ptr;
33 /*!
34 * \typedef NetworkManager::WireGuardSetting::List
35 */
36 typedef QList<Ptr> List;
37 /*!
38 */
39 WireGuardSetting();
40 /*!
41 */
42 explicit WireGuardSetting(const Ptr &other);
43 ~WireGuardSetting() override;
44
45 QString name() const override;
46
47 /*!
48 */
49 quint32 fwmark() const;
50 /*!
51 */
52 void setFwmark(quint32 fwmark);
53
54 /*!
55 */
56 quint32 listenPort() const;
57 /*!
58 */
59 void setListenPort(quint32 port);
60
61 /*!
62 */
63 quint32 mtu() const;
64 /*!
65 */
66 void setMtu(quint32 mtu);
67
68 /*!
69 */
70 bool peerRoutes() const;
71 /*!
72 */
73 void setPeerRoutes(bool peerRoutes);
74
75 /*!
76 */
77 NMVariantMapList peers() const;
78 /*!
79 */
80 void setPeers(const NMVariantMapList &peers);
81
82 /*!
83 */
84 QString privateKey() const;
85 /*!
86 */
87 void setPrivateKey(const QString &key);
88
89 /*!
90 */
91 SecretFlags privateKeyFlags() const;
92 /*!
93 */
94 void setPrivateKeyFlags(SecretFlags flags);
95
96 void secretsFromMap(const QVariantMap &secrets) override;
97
98 QVariantMap secretsToMap() const override;
99
100 void secretsFromStringMap(const NMStringMap &map) override;
101
102 NMStringMap secretsToStringMap() const override;
103
104 /*
105 * Required "preshared-key" properties from "peers" property will be returned
106 * as strings in format "peers.public-key.preshared-key".
107 */
108 QStringList needSecrets(bool requestNew = false) const override;
109
110 void fromMap(const QVariantMap &setting) override;
111
112 QVariantMap toMap() const override;
113
114protected:
115 WireGuardSettingPrivate *d_ptr;
116
117private:
118 Q_DECLARE_PRIVATE(WireGuardSetting)
119};
120
121NETWORKMANAGERQT_EXPORT QDebug operator<<(QDebug dbg, const WireGuardSetting &setting);
122
123}
124
125#endif // NETWORKMANAGERQT_WIREGUARD_SETTING_H
126

source code of networkmanager-qt/src/settings/wireguardsetting.h