DtkNetworkManager
NetworkManager DBus interface binding for Qt
dnmsetting.h
浏览该文件的文档.
1// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd.
2//
3// SPDX-License-Identifier: LGPL-3.0-or-later
4
5#ifndef DNMSETTING_H
6#define DNMSETTING_H
7
8#include "dnetworkmanager_global.h"
9#include <QSharedPointer>
10#include <QString>
11#include <QVariant>
12
13#undef signals // avoiding gio signals(pointers to pointers) conflicts with Qt defined signals macro
14#include <libnm/NetworkManager.h>
15#define signals Q_SIGNALS
16
17#if !NM_CHECK_VERSION(1, 16, 0)
18#define NM_SETTING_WIREGUARD_SETTING_NAME "wireguard"
19#endif
20
21DNETWORKMANAGER_BEGIN_NAMESPACE
22
23class DNMSettingPrivate;
24
26{
27public:
28 enum class SettingType {
29 Unknown,
30 Adsl,
31 Cdma,
32 Gsm,
33 Infiniband,
34 Ipv4,
35 Ipv6,
36 Ppp,
37 Pppoe,
38 Security8021x,
39 Serial,
40 Vpn,
41 Wired,
42 Wireless,
43 WirelessSecurity,
44 Bluetooth,
45 OlpcMesh,
46 Vlan,
47 Wimax,
48 Bond,
49 Bridge,
50 BridgePort,
51 Team,
52 Generic,
53 Tun,
54 Vxlan,
55 IpTunnel,
56 Proxy,
57 User,
58 OvsBridge,
59 OvsInterface,
60 OvsPatch,
61 OvsPort,
62 Match,
63 Tc,
64 TeamPort,
65 Macsec,
66 Dcb,
67 WireGuard
68 };
69
70 enum class SecretFlagType { None = 0, AgentOwned = 0x01, NotSaved = 0x02, NotRequired = 0x04 };
71 Q_DECLARE_FLAGS(SecretFlags, SecretFlagType)
72
73 static QString typeToString(const SettingType type);
74 static SettingType stringToType(const QString &str);
75
76 explicit DNMSetting() = default;
77 explicit DNMSetting(SettingType type);
78 explicit DNMSetting(const QSharedPointer<DNMSetting> &setting);
79 virtual ~DNMSetting();
80
81 virtual void fromMap(const QVariantMap &map) = 0;
82 virtual QVariantMap toMap() const = 0;
83 virtual QString name() const = 0;
84
85 void setType(SettingType type);
86 SettingType type() const;
87
88 bool isInit() const;
89 void setInit(bool init);
90
91 virtual QStringList needSecrets(bool request = false) const;
92
93 virtual QVariantMap secretsToMap() const;
94 virtual void mapToSecrets(const QVariantMap &secrets);
95
96 virtual void stringMapTosecrets(const QMap<QString, QString> &map);
97 virtual QMap<QString, QString> secretsToStringMap() const;
98
99protected:
100 QScopedPointer<DNMSettingPrivate> d_ptr;
101
102private:
103 Q_DECLARE_PRIVATE(DNMSetting)
104};
105
106Q_DECLARE_OPERATORS_FOR_FLAGS(DNMSetting::SecretFlags)
107
108DNETWORKMANAGER_END_NAMESPACE
109
110#endif
DNMSetting类
Definition: dnmsetting.h:26