DtkNetworkManager
NetworkManager DBus interface binding for Qt
dnetworkmanager.h
浏览该文件的文档.
1// SPDX-FileCopyrightText: 2022 - 2023 UnionTech Software Technology Co., Ltd.
2//
3// SPDX-License-Identifier: LGPL-3.0-or-later
4
5#ifndef DNETWORKMANAGER_H
6#define DNETWORKMANAGER_H
7
9#include "dnmsetting.h"
10#include <DExpected>
11#include <QSharedPointer>
12
13DNETWORKMANAGER_BEGIN_NAMESPACE
14
15class DNetworkManagerPrivate;
16class DDevice;
17class DActiveConnection;
18
19using DCORE_NAMESPACE::DExpected;
20
21class DNetworkManager : public QObject
22{
23 Q_OBJECT
24public:
25 explicit DNetworkManager(QObject *parent = nullptr);
26 ~DNetworkManager() override;
27
28 Q_PROPERTY(bool networkingEnabled READ networkingEnabled NOTIFY networkingEnabledChanged)
29 Q_PROPERTY(bool wirelessEnabled READ wirelessEnabled WRITE setWirelessEnabled NOTIFY wirelessEnabledChanged)
30 Q_PROPERTY(bool wirelessHardwareEnabled READ wirelessHardwareEnabled NOTIFY wirelessHardwareEnabledChanged)
31 Q_PROPERTY(QList<quint64> activeConnections READ getActiveConnectionsIdList NOTIFY activeConnectionsChanged)
32 Q_PROPERTY(quint64 primaryConnection READ primaryConnection NOTIFY primaryConnectionChanged)
33 Q_PROPERTY(DNMSetting::SettingType primaryConnectionType READ primaryConnectionType NOTIFY primaryConnectionTypeChanged)
34 Q_PROPERTY(NMState state READ state NOTIFY StateChanged)
35 Q_PROPERTY(NMConnectivityState connectivity READ connectivity NOTIFY connectivityChanged)
36
37 bool networkingEnabled() const;
38 bool wirelessEnabled() const;
39 void setWirelessEnabled(const bool enable) const;
40 bool wirelessHardwareEnabled() const;
41 QList<quint64> getActiveConnectionsIdList() const;
42 quint64 primaryConnection() const;
43 DNMSetting::SettingType primaryConnectionType() const;
44 NMState state() const;
45 NMConnectivityState connectivity() const;
46
47public Q_SLOTS:
48
49 DExpected<QList<quint64>> getDeviceIdList() const;
50 DExpected<quint64> activateConnection(const quint64 connId, const quint64 deviceId, const qint64 objId = 0) const;
51 DExpected<NewConn> addAndActivateConnection(const SettingDesc &conn, const quint64 deviceId, const qint64 objId = 0) const;
52 DExpected<void> deactivateConnection(const quint64 activeConnId) const;
53 DExpected<void> enable(const bool enabled) const;
54 DExpected<QMap<QString, QString>> permissions() const;
55 DExpected<NMConnectivityState> checkConnectivity() const;
56 DExpected<QSharedPointer<DDevice>> getDeviceObject(const quint64 id) const;
57 DExpected<QSharedPointer<DActiveConnection>> getActiveConnectionObject(const quint64 id) const;
58
59Q_SIGNALS:
60
61 void networkingEnabledChanged(const bool enable);
62 void wirelessEnabledChanged(const bool enable);
63 void wirelessHardwareEnabledChanged(const bool enable);
64 void activeConnectionsChanged(const QList<quint64> &connIds);
65 void primaryConnectionChanged(const quint64 connId);
66 void primaryConnectionTypeChanged(const DNMSetting::SettingType &type);
67 void connectivityChanged(const NMConnectivityState connState);
68 void DeviceAdded(const quint64 deviceId);
69 void DeviceRemoved(const quint64 deviceId);
70 void CheckPermissions();
71 void StateChanged(const NMState state);
72
73private:
74 QScopedPointer<DNetworkManagerPrivate> d_ptr;
75 Q_DECLARE_PRIVATE(DNetworkManager)
76};
77
78DNETWORKMANAGER_END_NAMESPACE
79
80#endif
对于活动连接属性的封装
Definition: dactiveconnection.h:17
对于所有设备都有的属性和方法的封装
Definition: ddevice.h:18
DNMSetting类
Definition: dnmsetting.h:26
对于NetworkManager连接管理功能的封装
Definition: dnetworkmanager.h:22
NMConnectivityState
指示当前NetworkManager连通性的状态
Definition: dnetworkmanagertypes.h:31
NMState
指示当前NetworkManager的状态
Definition: dnetworkmanagertypes.h:20
新的连接
Definition: dnetworkmanagertypes.h:260