1/*
2 SPDX-FileCopyrightText: 2008, 2010 Will Stephenson <wstephenson@kde.org>
3 SPDX-FileCopyrightText: 2013 Jan Grulich <jgrulich@redhat.com>
4
5 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
6*/
7
8#ifndef NETWORKMANAGERQT_NETWORKMANAGER_P_H
9#define NETWORKMANAGERQT_NETWORKMANAGER_P_H
10
11#include <QDBusServiceWatcher>
12#include <QMap>
13
14#include "activeconnection.h"
15#include "dbus/networkmanagerinterface.h"
16#include "device.h"
17
18#include "manager.h"
19
20namespace NetworkManager
21{
22class Device;
23class ActiveConnection;
24
25class NetworkManagerPrivate : public NetworkManager::Notifier
26{
27 Q_OBJECT
28public:
29 static const QString DBUS_SERVICE;
30 static const QString DBUS_DAEMON_INTERFACE;
31 static const QString DBUS_DAEMON_PATH;
32 static const QString DBUS_SETTINGS_PATH;
33 static const QString FDO_DBUS_PROPERTIES;
34 static const QString FDO_DBUS_OBJECT_MANAGER;
35
36 // Functions useful also for other classes
37 static QVariantMap retrieveInitialProperties(const QString &interfaceName, const QString &path);
38
39 NetworkManagerPrivate();
40 ~NetworkManagerPrivate() override;
41 QDBusServiceWatcher watcher;
42 OrgFreedesktopNetworkManagerInterface iface;
43 NetworkManager::Status nmState;
44 Connectivity m_connectivity;
45 bool m_isNetworkingEnabled;
46 bool m_isWimaxEnabled;
47 // TODO: mark it deprecated somehow?
48 bool m_isWimaxHardwareEnabled;
49 bool m_isWirelessEnabled;
50 bool m_isWirelessHardwareEnabled;
51 bool m_isWwanEnabled;
52 bool m_isWwanHardwareEnabled;
53 bool m_isConnectivityCheckAvailable;
54 bool m_isConnectivityCheckEnabled;
55 QString m_connectivityCheckUri;
56 QString m_activatingConnection;
57 QString m_primaryConnection;
58 NetworkManager::ConnectionSettings::ConnectionType m_primaryConnectionType;
59 NetworkManager::Device::MeteredStatus m_metered;
60 NetworkManager::DnsConfiguration m_globalDnsConfiguration;
61 QString m_version;
62 // to store NetworkManager's version.
63 int m_x;
64 int m_y;
65 int m_z;
66 void parseVersion(const QString &version);
67 int compareVersion(const QString &version);
68 int compareVersion(const int x, const int y, const int z) const;
69 bool checkVersion(const int x, const int y, const int z) const;
70 NetworkManager::Device::Types m_supportedInterfaceTypes;
71 NetworkManager::Device::Types supportedInterfaceTypes() const;
72
73 QMap<QString, ActiveConnection::Ptr> m_activeConnections;
74 ActiveConnection::Ptr findRegisteredActiveConnection(const QString &);
75 // manage device children
76 Device::Ptr findRegisteredNetworkInterface(const QString &uni);
77 Device::Ptr createNetworkInterface(const QString &uni);
78 QMap<QString, Device::Ptr> networkInterfaceMap;
79 // for frontend to call
80 QString version() const;
81 NetworkManager::Status status() const;
82 Device::List networkInterfaces();
83 Device::Ptr findNetworkInterface(const QString &uni);
84 Device::Ptr findDeviceByIpIface(const QString &iface);
85 bool isNetworkingEnabled() const;
86 bool isWirelessEnabled() const;
87 bool isWirelessHardwareEnabled() const;
88 bool isWwanEnabled() const;
89 bool isWwanHardwareEnabled() const;
90 bool isWimaxEnabled() const;
91 // TODO: mark it deprecated somehow?
92 bool isWimaxHardwareEnabled() const;
93 QDBusPendingReply<QDBusObjectPath> activateConnection(const QString &connectionUni, const QString &interfaceUni, const QString &connectionParameter);
94 QDBusPendingReply<QDBusObjectPath, QDBusObjectPath>
95 addAndActivateConnection(const NMVariantMapMap &connection, const QString &interfaceUni, const QString &connectionParameter);
96 QDBusPendingReply<QDBusObjectPath, QDBusObjectPath, QVariantMap>
97 addAndActivateConnection2(const NMVariantMapMap &connection, const QString &interfaceUni, const QString &connectionParameter, const QVariantMap &options);
98 QDBusPendingReply<> deactivateConnection(const QString &activeConnection);
99 ActiveConnection::List activeConnections();
100 QStringList activeConnectionsPaths() const;
101 QDBusPendingReply<QString, QString> getLogging();
102 void setNetworkingEnabled(bool enabled);
103 void setWirelessEnabled(bool enabled);
104 void setWwanEnabled(bool enabled);
105 // TODO: mark it deprecated somehow?
106 void setWimaxEnabled(bool enabled);
107 void sleep(bool sleep);
108 void setLogging(NetworkManager::LogLevel, NetworkManager::LogDomains);
109 NMStringMap permissions();
110 Connectivity connectivity() const;
111 QDBusPendingReply<uint> checkConnectivity();
112 ActiveConnection::Ptr primaryConnection();
113 ActiveConnection::Ptr activatingConnection();
114 NetworkManager::ConnectionSettings::ConnectionType primaryConnectionType();
115 bool isStartingUp() const;
116 NetworkManager::Device::MeteredStatus metered() const;
117 NetworkManager::DnsConfiguration globalDnsConfiguration() const;
118 void setGlobalDnsConfiguration(const NetworkManager::DnsConfiguration &configuration);
119 bool isConnectivityCheckAvailable() const;
120 bool isConnectivityCheckEnabled() const;
121 QString connectivityCheckUri() const;
122protected Q_SLOTS:
123 void init();
124 void onDeviceAdded(const QDBusObjectPath &state);
125 void onDeviceRemoved(const QDBusObjectPath &state);
126 void dbusPropertiesChanged(const QString &interfaceName, const QVariantMap &properties, const QStringList &invalidatedProperties);
127 void propertiesChanged(const QVariantMap &changedProperties);
128 void dbusInterfacesAdded(const QDBusObjectPath &path, const QVariantMap &addedInterfaces);
129 void daemonRegistered();
130 void daemonUnregistered();
131
132private:
133 void connectivityChanged(uint connectivity);
134 void stateChanged(uint state);
135 static NetworkManager::Connectivity convertConnectivity(uint connectivity);
136 static NetworkManager::Status convertNMState(uint state);
137};
138}
139#endif
140

source code of networkmanager-qt/src/manager_p.h