DtkNetworkManager
NetworkManager DBus interface binding for Qt
dipv4setting.h
1// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd.
2//
3// SPDX-License-Identifier: LGPL-3.0-or-later
4
5#ifndef DIPV4SETTING_H
6#define DIPV4SETTING_H
7
8#include "dnmsetting.h"
10#include <QStringList>
11#include <QHostAddress>
12
13#define DTK_NM_SETTING_IP4_CONFIG_SETTING_NAME NM_SETTING_IP4_CONFIG_SETTING_NAME
14#define DTK_NM_SETTING_IP4_CONFIG_METHOD NM_SETTING_IP_CONFIG_METHOD
15#define DTK_NM_SETTING_IP4_CONFIG_DNS NM_SETTING_IP_CONFIG_DNS
16#define DTK_NM_SETTING_IP4_CONFIG_DNS_SEARCH NM_SETTING_IP_CONFIG_DNS_SEARCH
17#define DTK_NM_SETTING_IP4_CONFIG_ADDRESSES NM_SETTING_IP_CONFIG_ADDRESSES
18#define DTK_NM_SETTING_IP4_CONFIG_GATEWAY NM_SETTING_IP_CONFIG_GATEWAY
19#define DTK_NM_SETTING_IP4_CONFIG_ROUTES NM_SETTING_IP_CONFIG_ROUTES
20#define DTK_NM_SETTING_IP4_CONFIG_ROUTE_METRIC NM_SETTING_IP_CONFIG_ROUTE_METRIC
21#define DTK_NM_SETTING_IP4_CONFIG_IGNORE_AUTO_ROUTES NM_SETTING_IP_CONFIG_IGNORE_AUTO_ROUTES
22#define DTK_NM_SETTING_IP4_CONFIG_IGNORE_AUTO_DNS NM_SETTING_IP_CONFIG_IGNORE_AUTO_DNS
23#define DTK_NM_SETTING_IP4_CONFIG_DHCP_HOSTNAME NM_SETTING_IP_CONFIG_DHCP_HOSTNAME
24#define DTK_NM_SETTING_IP4_CONFIG_DHCP_SEND_HOSTNAME NM_SETTING_IP_CONFIG_DHCP_SEND_HOSTNAME
25#define DTK_NM_SETTING_IP4_CONFIG_NEVER_DEFAULT NM_SETTING_IP_CONFIG_NEVER_DEFAULT
26#define DTK_NM_SETTING_IP4_CONFIG_MAY_FAIL NM_SETTING_IP_CONFIG_MAY_FAIL
27#define DTK_NM_SETTING_IP4_CONFIG_DHCP_CLIENT_ID NM_SETTING_IP4_CONFIG_DHCP_CLIENT_ID
28#define DTK_NM_SETTING_IP4_CONFIG_METHOD_AUTO NM_SETTING_IP4_CONFIG_METHOD_AUTO
29#define DTK_NM_SETTING_IP4_CONFIG_METHOD_LINK_LOCAL NM_SETTING_IP4_CONFIG_METHOD_LINK_LOCAL
30#define DTK_NM_SETTING_IP4_CONFIG_METHOD_MANUAL NM_SETTING_IP4_CONFIG_METHOD_MANUAL
31#define DTK_NM_SETTING_IP4_CONFIG_METHOD_SHARED NM_SETTING_IP4_CONFIG_METHOD_SHARED
32#define DTK_NM_SETTING_IP4_CONFIG_METHOD_DISABLED NM_SETTING_IP4_CONFIG_METHOD_DISABLED
33#define DTK_NM_SETTING_IP4_CONFIG_DAD_TIMEOUT NM_SETTING_IP_CONFIG_DAD_TIMEOUT
34#define DTK_NM_SETTING_IP4_CONFIG_DHCP_FQDN NM_SETTING_IP4_CONFIG_DHCP_FQDN
35#define DTK_NM_SETTING_IP4_CONFIG_DNS_OPTIONS NM_SETTING_IP_CONFIG_DNS_OPTIONS
36#define DTK_NM_SETTING_IP4_CONFIG_DNS_PRIORITY NM_SETTING_IP_CONFIG_DNS_PRIORITY
37#define DTK_NM_SETTING_IP4_CONFIG_GATEWAY NM_SETTING_IP_CONFIG_GATEWAY
38#define DTK_NM_SETTING_IP4_CONFIG_ROUTE_DATA "route-data"
39#define DTK_NM_SETTING_IP4_CONFIG_ADDRESS_DATA "address-data"
40
41DNETWORKMANAGER_BEGIN_NAMESPACE
42
43class DIpv4SettingPrivate;
44
46{
47public:
49 explicit DIpv4Setting(const QSharedPointer<DIpv4Setting> &other);
50 ~DIpv4Setting() override = default;
51 QString name() const override;
52
53 void setMethod(NMConfigMethod method);
54 NMConfigMethod method() const;
55
56 void setDns(const QList<QHostAddress> &dns);
57 QList<QHostAddress> dns() const;
58
59 void setDnsSearch(const QStringList &domains);
60 QStringList dnsSearch() const;
61
62 void setRouteMetric(int metric);
63 int routeMetric() const;
64
65 void setIgnoreAutoRoutes(bool ignore);
66 bool ignoreAutoRoutes() const;
67
68 void setIgnoreAutoDns(bool ignore);
69 bool ignoreAutoDns() const;
70
71 void setDhcpClientId(const QString &id);
72 QString dhcpClientId() const;
73
74 void setDhcpSendHostname(bool send);
75 bool dhcpSendHostname() const;
76
77 void setDhcpHostname(const QString &hostname);
78 QString dhcpHostname() const;
79
80 void setNeverDefault(bool neverDefault);
81 bool neverDefault() const;
82
83 void setMayFail(bool mayFail);
84 bool mayFail() const;
85
86 void setDadTimeout(qint32 timeout);
87 qint32 dadTimeout() const;
88
89 void setDhcpFqdn(const QString &fqdn);
90 QString dhcpFqdn() const;
91
92 void setDnsOptions(const QStringList &options);
93 QStringList dnsOptions() const;
94
95 void setDnsPriority(qint32 priority);
96 qint32 dnsPriority() const;
97
98 void setGateway(const QString &gateway);
99 QString gateway() const;
100
101 void setAddressData(const QList<Config> &addressData);
102 QList<Config> addressData() const;
103
104 void setRouteData(const QList<Config> &routeData);
105 QList<Config> routeData() const;
106
107 void fromMap(const Config &setting) override;
108
109 Config toMap() const override;
110
111protected:
112 QScopedPointer<DIpv4SettingPrivate> d_ptr;
113
114private:
115 Q_DECLARE_PRIVATE(DIpv4Setting)
116};
117
118DNETWORKMANAGER_END_NAMESPACE
119
120#endif
Definition: dipv4setting.h:46
DNMSetting类
Definition: dnmsetting.h:26
NMConfigMethod
本枚举代表Ipv4/Ipv6配置文件中method配置项的值
Definition: dnetworkmanagertypes.h:247