Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Toggle main menu visibility
Loading...
Searching...
No Matches
qnetworkmanagerservice.h
Go to the documentation of this file.
1
// Copyright (C) 2021 The Qt Company Ltd.
2
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
// Qt-Security score:significant reason:default
4
5
#
ifndef
QNETWORKMANAGERSERVICE_H
6
#
define
QNETWORKMANAGERSERVICE_H
7
8
//
9
// W A R N I N G
10
// -------------
11
//
12
// This file is not part of the Qt API. It exists purely as an
13
// implementation detail. This header file may change from version to
14
// version without notice, or even be removed.
15
//
16
// We mean it.
17
//
18
19
#
include
<
QtCore
/
qvariant
.
h
>
20
#
include
<
QtCore
/
qmap
.
h
>
21
#
include
<
QtDBus
/
qdbusabstractinterface
.
h
>
22
23
#
include
<
optional
>
24
25
// Matches 'NMDeviceState' from https://developer.gnome.org/NetworkManager/stable/nm-dbus-types.html
26
enum
NMDeviceState
{
27
NM_DEVICE_STATE_UNKNOWN
= 0,
28
NM_DEVICE_STATE_UNMANAGED
= 10,
29
NM_DEVICE_STATE_UNAVAILABLE
= 20,
30
NM_DEVICE_STATE_DISCONNECTED
= 30,
31
NM_DEVICE_STATE_PREPARE
= 40,
32
NM_DEVICE_STATE_CONFIG
= 50,
33
NM_DEVICE_STATE_NEED_AUTH
= 60,
34
NM_DEVICE_STATE_IP_CONFIG
= 70,
35
NM_DEVICE_STATE_ACTIVATED
= 100,
36
NM_DEVICE_STATE_DEACTIVATING
= 110,
37
NM_DEVICE_STATE_FAILED
= 120
38
};
39
40
QT_BEGIN_NAMESPACE
41
42
class
QDBusObjectPath;
43
class
QNetworkManagerNetworkInformationBackend
;
44
45
// This tiny class exists for the purpose of seeing if NetworkManager is available without
46
// initializing everything the derived/full class needs.
47
class
QNetworkManagerInterfaceBase
:
public
QDBusAbstractInterface
48
{
49
Q_OBJECT
50
public
:
51
explicit
QNetworkManagerInterfaceBase
(
QObject
*
parent
=
nullptr
);
52
~
QNetworkManagerInterfaceBase
() =
default
;
53
54
static
bool
networkManagerAvailable
();
55
56
private
:
57
Q_DISABLE_COPY_MOVE
(
QNetworkManagerInterfaceBase
)
58
};
59
60
class
QNetworkManagerInterface
final
:
public
QNetworkManagerInterfaceBase
61
{
62
Q_OBJECT
63
64
public
:
65
// Matches 'NMState' from https://developer.gnome.org/NetworkManager/stable/nm-dbus-types.html
66
enum
NMState
{
67
NM_STATE_UNKNOWN
= 0,
68
NM_STATE_ASLEEP
= 10,
69
NM_STATE_DISCONNECTED
= 20,
70
NM_STATE_DISCONNECTING
= 30,
71
NM_STATE_CONNECTING
= 40,
72
NM_STATE_CONNECTED_LOCAL
= 50,
73
NM_STATE_CONNECTED_SITE
= 60,
74
NM_STATE_CONNECTED_GLOBAL
= 70
75
};
76
Q_ENUM(NMState)
77
// Matches 'NMConnectivityState' from
78
// https://developer.gnome.org/NetworkManager/stable/nm-dbus-types.html#NMConnectivityState
79
enum
NMConnectivityState
{
80
NM_CONNECTIVITY_UNKNOWN
= 0,
81
NM_CONNECTIVITY_NONE
= 1,
82
NM_CONNECTIVITY_PORTAL
= 2,
83
NM_CONNECTIVITY_LIMITED
= 3,
84
NM_CONNECTIVITY_FULL
= 4,
85
};
86
Q_ENUM
(
NMConnectivityState
)
87
// Matches 'NMDeviceType' from
88
// https://developer-old.gnome.org/NetworkManager/stable/nm-dbus-types.html#NMDeviceType
89
enum
NMDeviceType
{
90
NM_DEVICE_TYPE_UNKNOWN
= 0,
91
NM_DEVICE_TYPE_GENERIC
= 14,
92
NM_DEVICE_TYPE_ETHERNET
= 1,
93
NM_DEVICE_TYPE_WIFI
= 2,
94
NM_DEVICE_TYPE_UNUSED1
= 3,
95
NM_DEVICE_TYPE_UNUSED2
= 4,
96
NM_DEVICE_TYPE_BT
= 5,
97
NM_DEVICE_TYPE_OLPC_MESH
= 6,
98
NM_DEVICE_TYPE_WIMAX
= 7,
99
NM_DEVICE_TYPE_MODEM
= 8,
100
NM_DEVICE_TYPE_INFINIBAND
= 9,
101
NM_DEVICE_TYPE_BOND
= 10,
102
NM_DEVICE_TYPE_VLAN
= 11,
103
NM_DEVICE_TYPE_ADSL
= 12,
104
NM_DEVICE_TYPE_BRIDGE
= 13,
105
NM_DEVICE_TYPE_TEAM
= 15,
106
NM_DEVICE_TYPE_TUN
= 16,
107
NM_DEVICE_TYPE_IP_TUNNEL
= 17,
108
NM_DEVICE_TYPE_MACVLAN
= 18,
109
NM_DEVICE_TYPE_VXLAN
= 19,
110
NM_DEVICE_TYPE_VETH
= 20,
111
NM_DEVICE_TYPE_MACSEC
= 21,
112
NM_DEVICE_TYPE_DUMMY
= 22,
113
NM_DEVICE_TYPE_PPP
= 23,
114
NM_DEVICE_TYPE_OVS_INTERFACE
= 24,
115
NM_DEVICE_TYPE_OVS_PORT
= 25,
116
NM_DEVICE_TYPE_OVS_BRIDGE
= 26,
117
NM_DEVICE_TYPE_WPAN
= 27,
118
NM_DEVICE_TYPE_6LOWPAN
= 28,
119
NM_DEVICE_TYPE_WIREGUARD
= 29,
120
NM_DEVICE_TYPE_WIFI_P2P
= 30,
121
NM_DEVICE_TYPE_VRF
= 31,
122
};
123
// Matches 'NMMetered' from
124
// https://developer-old.gnome.org/NetworkManager/stable/nm-dbus-types.html#NMMetered
125
enum
NMMetered
{
126
NM_METERED_UNKNOWN
,
127
NM_METERED_YES
,
128
NM_METERED_NO
,
129
NM_METERED_GUESS_YES
,
130
NM_METERED_GUESS_NO
,
131
};
132
133
explicit
QNetworkManagerInterface
(QObject *parent =
nullptr
);
134
~
QNetworkManagerInterface
();
135
136
void
setBackend
(
QNetworkManagerNetworkInformationBackend
*ourBackend);
137
138
NMState
state
()
const
;
139
NMConnectivityState
connectivityState
()
const
;
140
NMDeviceType
deviceType
()
const
;
141
NMMetered
meteredState
()
const
;
142
143
bool
isValid
()
const
{
return
QDBusAbstractInterface::isValid() && validDBusConnection; }
144
145
private
Q_SLOTS
:
146
void
setProperties
(
const
QString
&
interfaceName
,
const
QMap
<
QString
,
QVariant
> &
map
,
147
const
QStringList
&
invalidatedProperties
);
148
149
private
:
150
Q_DISABLE_COPY_MOVE
(
QNetworkManagerInterface
)
151
152
NMDeviceType
extractDeviceType(
const
QDBusObjectPath &devicePath)
const
;
153
NMMetered
extractDeviceMetered(
const
QDBusObjectPath &devicePath)
const
;
154
155
std
::optional<QDBusObjectPath> primaryConnectionDevicePath()
const
;
156
157
QVariantMap propertyMap;
158
QNetworkManagerNetworkInformationBackend
*backend =
nullptr
;
159
bool
validDBusConnection =
true
;
160
};
161
162
class
PropertiesDBusInterface
:
public
QDBusAbstractInterface
163
{
164
public
:
165
PropertiesDBusInterface
(
const
QString &service,
const
QString &path,
const
QString &interface,
166
const
QDBusConnection &connection, QObject *parent =
nullptr
)
167
:
QDBusAbstractInterface
(
service
,
path
,
interface
.
toLatin1
().
data
(),
connection
,
parent
)
168
{
169
}
170
};
171
172
QT_END_NAMESPACE
173
174
#
endif
PropertiesDBusInterface
Definition
qnetworkmanagerservice.h:163
PropertiesDBusInterface::PropertiesDBusInterface
PropertiesDBusInterface(const QString &service, const QString &path, const QString &interface, const QDBusConnection &connection, QObject *parent=nullptr)
Definition
qnetworkmanagerservice.h:165
QNetworkManagerInterfaceBase
Definition
qnetworkmanagerservice.h:48
QNetworkManagerInterfaceBase::~QNetworkManagerInterfaceBase
~QNetworkManagerInterfaceBase()=default
QNetworkManagerInterfaceBase::networkManagerAvailable
static bool networkManagerAvailable()
Definition
qnetworkmanagerservice.cpp:57
QNetworkManagerInterface::state
NMState state() const
Definition
qnetworkmanagerservice.cpp:95
QNetworkManagerInterface::NMState
NMState
Definition
qnetworkmanagerservice.h:66
QNetworkManagerInterface::setBackend
void setBackend(QNetworkManagerNetworkInformationBackend *ourBackend)
Definition
qnetworkmanagerservice.cpp:178
QNetworkManagerInterface::connectivityState
NMConnectivityState connectivityState() const
Definition
qnetworkmanagerservice.cpp:103
QNetworkManagerInterface::QNetworkManagerInterface
QNetworkManagerInterface(QObject *parent=nullptr)
Definition
qnetworkmanagerservice.cpp:62
QNetworkManagerInterface::isValid
bool isValid() const
Definition
qnetworkmanagerservice.h:143
QNetworkManagerInterface::deviceType
NMDeviceType deviceType() const
Definition
qnetworkmanagerservice.cpp:136
QNetworkManagerInterface::NMConnectivityState
NMConnectivityState
Definition
qnetworkmanagerservice.h:79
QNetworkManagerInterface::NM_CONNECTIVITY_NONE
@ NM_CONNECTIVITY_NONE
Definition
qnetworkmanagerservice.h:81
QNetworkManagerInterface::NM_CONNECTIVITY_LIMITED
@ NM_CONNECTIVITY_LIMITED
Definition
qnetworkmanagerservice.h:83
QNetworkManagerInterface::NM_CONNECTIVITY_UNKNOWN
@ NM_CONNECTIVITY_UNKNOWN
Definition
qnetworkmanagerservice.h:80
QNetworkManagerInterface::NM_CONNECTIVITY_PORTAL
@ NM_CONNECTIVITY_PORTAL
Definition
qnetworkmanagerservice.h:82
QNetworkManagerInterface::NM_CONNECTIVITY_FULL
@ NM_CONNECTIVITY_FULL
Definition
qnetworkmanagerservice.h:84
QNetworkManagerInterface::~QNetworkManagerInterface
~QNetworkManagerInterface()
Definition
qnetworkmanagerservice.cpp:88
QNetworkManagerInterface::NMDeviceType
NMDeviceType
Definition
qnetworkmanagerservice.h:89
QNetworkManagerInterface::NM_DEVICE_TYPE_ADSL
@ NM_DEVICE_TYPE_ADSL
Definition
qnetworkmanagerservice.h:103
QNetworkManagerInterface::NM_DEVICE_TYPE_OLPC_MESH
@ NM_DEVICE_TYPE_OLPC_MESH
Definition
qnetworkmanagerservice.h:97
QNetworkManagerInterface::NM_DEVICE_TYPE_MACSEC
@ NM_DEVICE_TYPE_MACSEC
Definition
qnetworkmanagerservice.h:111
QNetworkManagerInterface::NM_DEVICE_TYPE_TEAM
@ NM_DEVICE_TYPE_TEAM
Definition
qnetworkmanagerservice.h:105
QNetworkManagerInterface::NM_DEVICE_TYPE_TUN
@ NM_DEVICE_TYPE_TUN
Definition
qnetworkmanagerservice.h:106
QNetworkManagerInterface::NM_DEVICE_TYPE_DUMMY
@ NM_DEVICE_TYPE_DUMMY
Definition
qnetworkmanagerservice.h:112
QNetworkManagerInterface::NM_DEVICE_TYPE_VRF
@ NM_DEVICE_TYPE_VRF
Definition
qnetworkmanagerservice.h:121
QNetworkManagerInterface::NM_DEVICE_TYPE_WPAN
@ NM_DEVICE_TYPE_WPAN
Definition
qnetworkmanagerservice.h:117
QNetworkManagerInterface::NM_DEVICE_TYPE_VXLAN
@ NM_DEVICE_TYPE_VXLAN
Definition
qnetworkmanagerservice.h:109
QNetworkManagerInterface::NM_DEVICE_TYPE_WIREGUARD
@ NM_DEVICE_TYPE_WIREGUARD
Definition
qnetworkmanagerservice.h:119
QNetworkManagerInterface::NM_DEVICE_TYPE_OVS_INTERFACE
@ NM_DEVICE_TYPE_OVS_INTERFACE
Definition
qnetworkmanagerservice.h:114
QNetworkManagerInterface::NM_DEVICE_TYPE_BRIDGE
@ NM_DEVICE_TYPE_BRIDGE
Definition
qnetworkmanagerservice.h:104
QNetworkManagerInterface::NM_DEVICE_TYPE_OVS_PORT
@ NM_DEVICE_TYPE_OVS_PORT
Definition
qnetworkmanagerservice.h:115
QNetworkManagerInterface::NM_DEVICE_TYPE_WIFI
@ NM_DEVICE_TYPE_WIFI
Definition
qnetworkmanagerservice.h:93
QNetworkManagerInterface::NM_DEVICE_TYPE_6LOWPAN
@ NM_DEVICE_TYPE_6LOWPAN
Definition
qnetworkmanagerservice.h:118
QNetworkManagerInterface::NM_DEVICE_TYPE_MACVLAN
@ NM_DEVICE_TYPE_MACVLAN
Definition
qnetworkmanagerservice.h:108
QNetworkManagerInterface::NM_DEVICE_TYPE_MODEM
@ NM_DEVICE_TYPE_MODEM
Definition
qnetworkmanagerservice.h:99
QNetworkManagerInterface::NM_DEVICE_TYPE_WIMAX
@ NM_DEVICE_TYPE_WIMAX
Definition
qnetworkmanagerservice.h:98
QNetworkManagerInterface::NM_DEVICE_TYPE_INFINIBAND
@ NM_DEVICE_TYPE_INFINIBAND
Definition
qnetworkmanagerservice.h:100
QNetworkManagerInterface::NM_DEVICE_TYPE_VETH
@ NM_DEVICE_TYPE_VETH
Definition
qnetworkmanagerservice.h:110
QNetworkManagerInterface::NM_DEVICE_TYPE_BT
@ NM_DEVICE_TYPE_BT
Definition
qnetworkmanagerservice.h:96
QNetworkManagerInterface::NM_DEVICE_TYPE_UNUSED2
@ NM_DEVICE_TYPE_UNUSED2
Definition
qnetworkmanagerservice.h:95
QNetworkManagerInterface::NM_DEVICE_TYPE_GENERIC
@ NM_DEVICE_TYPE_GENERIC
Definition
qnetworkmanagerservice.h:91
QNetworkManagerInterface::NM_DEVICE_TYPE_BOND
@ NM_DEVICE_TYPE_BOND
Definition
qnetworkmanagerservice.h:101
QNetworkManagerInterface::NM_DEVICE_TYPE_VLAN
@ NM_DEVICE_TYPE_VLAN
Definition
qnetworkmanagerservice.h:102
QNetworkManagerInterface::NM_DEVICE_TYPE_UNUSED1
@ NM_DEVICE_TYPE_UNUSED1
Definition
qnetworkmanagerservice.h:94
QNetworkManagerInterface::NM_DEVICE_TYPE_PPP
@ NM_DEVICE_TYPE_PPP
Definition
qnetworkmanagerservice.h:113
QNetworkManagerInterface::NM_DEVICE_TYPE_ETHERNET
@ NM_DEVICE_TYPE_ETHERNET
Definition
qnetworkmanagerservice.h:92
QNetworkManagerInterface::NM_DEVICE_TYPE_IP_TUNNEL
@ NM_DEVICE_TYPE_IP_TUNNEL
Definition
qnetworkmanagerservice.h:107
QNetworkManagerInterface::NM_DEVICE_TYPE_OVS_BRIDGE
@ NM_DEVICE_TYPE_OVS_BRIDGE
Definition
qnetworkmanagerservice.h:116
QNetworkManagerInterface::NM_DEVICE_TYPE_UNKNOWN
@ NM_DEVICE_TYPE_UNKNOWN
Definition
qnetworkmanagerservice.h:90
QNetworkManagerInterface::NM_DEVICE_TYPE_WIFI_P2P
@ NM_DEVICE_TYPE_WIFI_P2P
Definition
qnetworkmanagerservice.h:120
QNetworkManagerInterface::meteredState
NMMetered meteredState() const
Definition
qnetworkmanagerservice.cpp:143
QNetworkManagerInterface::NMMetered
NMMetered
Definition
qnetworkmanagerservice.h:125
QNetworkManagerInterface::NM_METERED_GUESS_NO
@ NM_METERED_GUESS_NO
Definition
qnetworkmanagerservice.h:130
QNetworkManagerInterface::NM_METERED_NO
@ NM_METERED_NO
Definition
qnetworkmanagerservice.h:128
QNetworkManagerInterface::NM_METERED_UNKNOWN
@ NM_METERED_UNKNOWN
Definition
qnetworkmanagerservice.h:126
QNetworkManagerInterface::NM_METERED_YES
@ NM_METERED_YES
Definition
qnetworkmanagerservice.h:127
QNetworkManagerInterface::NM_METERED_GUESS_YES
@ NM_METERED_GUESS_YES
Definition
qnetworkmanagerservice.h:129
QNetworkManagerNetworkInformationBackendFactory
Definition
qnetworkmanagernetworkinformationbackend.cpp:112
QNetworkManagerNetworkInformationBackendFactory::name
QString name() const override
Backend name, return the same in QNetworkInformationBackend::name().
Definition
qnetworkmanagernetworkinformationbackend.cpp:119
QNetworkManagerNetworkInformationBackendFactory::create
QNetworkInformationBackend * create(QNetworkInformation::Features requiredFeatures) const override
Create and return an instance of QNetworkInformationBackend.
Definition
qnetworkmanagernetworkinformationbackend.cpp:127
QNetworkManagerNetworkInformationBackendFactory::featuresSupported
QNetworkInformation::Features featuresSupported() const override
Features supported, return the same in QNetworkInformationBackend::featuresSupported().
Definition
qnetworkmanagernetworkinformationbackend.cpp:120
QNetworkManagerNetworkInformationBackendFactory::~QNetworkManagerNetworkInformationBackendFactory
~QNetworkManagerNetworkInformationBackendFactory()=default
QNetworkManagerNetworkInformationBackend
Definition
qnetworkmanagernetworkinformationbackend.h:25
QNetworkManagerNetworkInformationBackend::onStateChanged
void onStateChanged(QNetworkManagerInterface::NMState state)
Definition
qnetworkmanagernetworkinformationbackend.cpp:153
QNetworkManagerNetworkInformationBackend::name
QString name() const override
Backend name, return the same in QNetworkInformationBackendFactory::name().
Definition
qnetworkmanagernetworkinformationbackend.cpp:106
QNetworkManagerNetworkInformationBackend::onMeteredChanged
void onMeteredChanged(QNetworkManagerInterface::NMMetered metered)
Definition
qnetworkmanagernetworkinformationbackend.cpp:173
QNetworkManagerNetworkInformationBackend::~QNetworkManagerNetworkInformationBackend
~QNetworkManagerNetworkInformationBackend()=default
QNetworkManagerNetworkInformationBackend::onConnectivityChanged
void onConnectivityChanged(QNetworkManagerInterface::NMConnectivityState connectivityState)
Definition
qnetworkmanagernetworkinformationbackend.cpp:159
QNetworkManagerNetworkInformationBackend::onDeviceTypeChanged
void onDeviceTypeChanged(QNetworkManagerInterface::NMDeviceType deviceType)
Definition
qnetworkmanagernetworkinformationbackend.cpp:167
QNetworkManagerNetworkInformationBackend::featuresSupportedStatic
static QNetworkInformation::Features featuresSupportedStatic()
Definition
qnetworkmanagernetworkinformationbackend.h:39
QNetworkManagerNetworkInformationBackend::featuresSupported
QNetworkInformation::Features featuresSupported() const override
Features supported, return the same in QNetworkInformationBackendFactory::featuresSupported().
Definition
qnetworkmanagernetworkinformationbackend.h:32
QNetworkManagerNetworkInformationBackend::isValid
bool isValid() const
Definition
qnetworkmanagernetworkinformationbackend.h:46
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qsequentialanimationgroup.cpp:47
std
[33]
Definition
src_corelib_tools_qhash.cpp:421
backendName
static QString backendName()
Definition
qnetworkmanagernetworkinformationbackend.cpp:100
NMDeviceState
NMDeviceState
Definition
qnetworkmanagerservice.h:26
NM_DEVICE_STATE_ACTIVATED
@ NM_DEVICE_STATE_ACTIVATED
Definition
qnetworkmanagerservice.h:35
NM_DEVICE_STATE_UNMANAGED
@ NM_DEVICE_STATE_UNMANAGED
Definition
qnetworkmanagerservice.h:28
NM_DEVICE_STATE_FAILED
@ NM_DEVICE_STATE_FAILED
Definition
qnetworkmanagerservice.h:37
NM_DEVICE_STATE_IP_CONFIG
@ NM_DEVICE_STATE_IP_CONFIG
Definition
qnetworkmanagerservice.h:34
NM_DEVICE_STATE_PREPARE
@ NM_DEVICE_STATE_PREPARE
Definition
qnetworkmanagerservice.h:31
NM_DEVICE_STATE_DEACTIVATING
@ NM_DEVICE_STATE_DEACTIVATING
Definition
qnetworkmanagerservice.h:36
NM_DEVICE_STATE_CONFIG
@ NM_DEVICE_STATE_CONFIG
Definition
qnetworkmanagerservice.h:32
NM_DEVICE_STATE_UNAVAILABLE
@ NM_DEVICE_STATE_UNAVAILABLE
Definition
qnetworkmanagerservice.h:29
NM_DEVICE_STATE_NEED_AUTH
@ NM_DEVICE_STATE_NEED_AUTH
Definition
qnetworkmanagerservice.h:33
NM_DEVICE_STATE_DISCONNECTED
@ NM_DEVICE_STATE_DISCONNECTED
Definition
qnetworkmanagerservice.h:30
NM_DEVICE_STATE_UNKNOWN
@ NM_DEVICE_STATE_UNKNOWN
Definition
qnetworkmanagerservice.h:27
qtbase
src
plugins
networkinformation
networkmanager
qnetworkmanagerservice.h
Generated on
for Qt by
1.18.0