1/*
2 SPDX-FileCopyrightText: 2012-2013 Jan Grulich <jgrulich@redhat.com>
3
4 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
5*/
6
7#ifndef NETWORKMANAGERQT_WIRED_SETTING_H
8#define NETWORKMANAGERQT_WIRED_SETTING_H
9
10#include "setting.h"
11#include <networkmanagerqt/networkmanagerqt_export.h>
12
13#include <QStringList>
14
15namespace NetworkManager
16{
17class WiredSettingPrivate;
18
19/*!
20 * \class NetworkManager::WiredSetting
21 * \inheaderfile NetworkManagerQt/WiredSetting
22 * \inmodule NetworkManagerQt
23 *
24 * \brief Represents wired setting.
25 */
26class NETWORKMANAGERQT_EXPORT WiredSetting : public Setting
27{
28public:
29 /*!
30 * \typedef NetworkManager::WiredSetting::Ptr
31 */
32 typedef QSharedPointer<WiredSetting> Ptr;
33 /*!
34 * \typedef NetworkManager::WiredSetting::List
35 */
36 typedef QList<Ptr> List;
37 /*!
38 *
39 * \value UnknownPort
40 * \value Tp
41 * \value Aui
42 * \value Bnc
43 * \value Mii
44 */
45 enum PortType {
46 UnknownPort = 0,
47 Tp,
48 Aui,
49 Bnc,
50 Mii,
51 };
52
53 /*!
54 *
55 * \value UnknownDuplexType
56 * \value Half
57 * \value Full
58 */
59 enum DuplexType {
60 UnknownDuplexType = 0,
61 Half,
62 Full,
63 };
64
65 /*!
66 *
67 * \value Undefined
68 * \value Qeth
69 * \value Lcs
70 * \value Ctc
71 */
72 enum S390Nettype {
73 Undefined = 0,
74 Qeth,
75 Lcs,
76 Ctc,
77 };
78
79 /*!
80 *
81 * \value WakeOnLanPhy
82 * \value WakeOnLanUnicast
83 * \value WakeOnLanMulticast
84 * \value WakeOnLanBroadcast
85 * \value WakeOnLanArp
86 * \value WakeOnLanMagic
87 *
88 * Special values
89 *
90 * \value WakeOnLanDefault
91 * \value WakeOnLanIgnore
92 */
93 enum WakeOnLanFlag {
94 WakeOnLanPhy = 1 << 1,
95 WakeOnLanUnicast = 1 << 2,
96 WakeOnLanMulticast = 1 << 3,
97 WakeOnLanBroadcast = 1 << 4,
98 WakeOnLanArp = 1 << 5,
99 WakeOnLanMagic = 1 << 6,
100 WakeOnLanDefault = 1 << 0,
101 WakeOnLanIgnore = 1 << 15,
102 };
103 Q_DECLARE_FLAGS(WakeOnLanFlags, WakeOnLanFlag)
104 Q_FLAGS(WakeOnLanFlag)
105
106 /*!
107 */
108 WiredSetting();
109 /*!
110 */
111 explicit WiredSetting(const Ptr &other);
112 ~WiredSetting() override;
113
114 QString name() const override;
115
116 /*!
117 */
118 void setPort(PortType port);
119 /*!
120 */
121 PortType port() const;
122
123 /*!
124 */
125 void setSpeed(quint32 speed);
126 /*!
127 */
128 quint32 speed() const;
129
130 /*!
131 */
132 void setDuplexType(DuplexType type);
133 /*!
134 */
135 DuplexType duplexType() const;
136
137 /*!
138 */
139 void setAutoNegotiate(bool autoNegotiate);
140 /*!
141 */
142 bool autoNegotiate() const;
143
144 /*!
145 */
146 QString generateMacAddressMask() const;
147 /*!
148 */
149 void setGenerateMacAddressMask(const QString &mask);
150
151 /*!
152 */
153 void setMacAddress(const QByteArray &address);
154 /*!
155 */
156 QByteArray macAddress() const;
157
158 /*!
159 */
160 void setClonedMacAddress(const QByteArray &address);
161 /*!
162 */
163 QByteArray clonedMacAddress() const;
164
165 /*!
166 */
167 void setMacAddressBlacklist(const QStringList &list);
168 /*!
169 */
170 QStringList macAddressBlacklist() const;
171
172 /*!
173 */
174 void setMtu(quint32 mtu);
175 /*!
176 */
177 quint32 mtu() const;
178
179 /*!
180 */
181 void setS390Subchannels(const QStringList &channels);
182 /*!
183 */
184 QStringList s390Subchannels() const;
185
186 /*!
187 */
188 void setS390NetType(S390Nettype type);
189 /*!
190 */
191 S390Nettype s390NetType() const;
192
193 /*!
194 */
195 void setS390Options(const QMap<QString, QString> &options);
196 /*!
197 */
198 QMap<QString, QString> s390Options() const;
199
200 /*!
201 */
202 WakeOnLanFlags wakeOnLan() const;
203 /*!
204 */
205 void setWakeOnLan(WakeOnLanFlags wol);
206
207 /*!
208 */
209 QString wakeOnLanPassword() const;
210 /*!
211 */
212 void setWakeOnLanPassword(const QString &password);
213
214 /*!
215 */
216 QString assignedMacAddress() const;
217 /*!
218 */
219 void setAssignedMacAddress(const QString &assignedMacAddress);
220
221 void fromMap(const QVariantMap &setting) override;
222
223 QVariantMap toMap() const override;
224
225protected:
226 WiredSettingPrivate *d_ptr;
227
228private:
229 Q_DECLARE_PRIVATE(WiredSetting)
230};
231
232NETWORKMANAGERQT_EXPORT QDebug operator<<(QDebug dbg, const WiredSetting &setting);
233
234Q_DECLARE_OPERATORS_FOR_FLAGS(WiredSetting::WakeOnLanFlags)
235
236}
237
238#endif // NETWORKMANAGERQT_WIRED_SETTING_H
239

source code of networkmanager-qt/src/settings/wiredsetting.h