forked from linuxdeepin/dde-network-core
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdslcontroller.h
73 lines (54 loc) · 2.04 KB
/
dslcontroller.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
// SPDX-FileCopyrightText: 2018 - 2022 UnionTech Software Technology Co., Ltd.
//
// SPDX-License-Identifier: LGPL-3.0-or-later
#ifndef DSLCONTROLLER_H
#define DSLCONTROLLER_H
#include "networkconst.h"
#include "netutils.h"
#include <QMap>
#include <QObject>
namespace dde {
namespace network {
class DSLItem;
class NetworkDeviceBase;
class NetworkDBusProxy;
class DSLController : public QObject
{
Q_OBJECT
friend class NetworkInterProcesser;
friend class NetworkManagerProcesser;
public:
void connectItem(DSLItem *item); // 连接到当前的DSL
void connectItem(const QString &uuid); // 根据UUID连接当前DSL
void disconnectItem(); // 断开连接
inline QList<DSLItem *> items() const { return m_items; } // 返回所有的DSL列表
Q_SIGNALS:
void itemAdded(const QList<DSLItem *> &); // 新增DSL项目
void itemRemoved(const QList<DSLItem *> &); // 移除DSL项目
void itemChanged(const QList<DSLItem *> &); // 项目发生变化(一般是ID发生了变化)
void activeConnectionChanged(); // 连接状态发生变化
protected:
explicit DSLController(NetworkDBusProxy *networkInter, QObject *parent = Q_NULLPTR);
~DSLController();
void updateDevice(const QList<NetworkDeviceBase *> &devices);
void updateDSLItems(const QJsonArray &dsljson);
void updateActiveConnections(const QJsonObject &connectionJson); // 更新DSL的活动连接信息
private:
DSLItem *findItem(const QString &path);
DSLItem *findDSLItemByUuid(const QString &uuid);
private:
QList<DSLItem *> m_items;
NetworkDBusProxy *m_networkInter;
QMap<QString, QString> m_deviceInfo;
QString m_activePath;
};
class DSLItem : public ControllItems
{
friend class DSLController;
protected:
DSLItem();
~DSLItem();
};
}
}
#endif // UDSLCONTROLLER_H