1/*
2 SPDX-FileCopyrightText: 2018 Pranav Gade <pranavgade20@gmail.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_DCBSETTING_H
8#define NETWORKMANAGERQT_DCBSETTING_H
9
10#include "setting.h"
11#include <networkmanagerqt/networkmanagerqt_export.h>
12
13#include <QString>
14
15namespace NetworkManager
16{
17class DcbSettingPrivate;
18
19/*!
20 * \class NetworkManager::DcbSetting
21 * \inheaderfile NetworkManagerQt/DcbSetting
22 * \inmodule NetworkManagerQt
23 *
24 * \brief Represents Dcb setting.
25 */
26class NETWORKMANAGERQT_EXPORT DcbSetting : public Setting
27{
28public:
29 /*!
30 * \typedef NetworkManager::DcbSetting::Ptr
31 */
32 typedef QSharedPointer<DcbSetting> Ptr;
33 /*!
34 * \typedef NetworkManager::DcbSetting::List
35 */
36 typedef QList<Ptr> List;
37
38 /*!
39 *
40 * \value None
41 * \value Enable
42 * \value Advertise
43 * \value Willing
44 */
45 enum DcbFlagType {
46 None = 0,
47 Enable = 0x01,
48 Advertise = 0x02,
49 Willing = 0x04,
50 };
51 Q_DECLARE_FLAGS(DcbFlags, DcbFlagType)
52
53 /*!
54 */
55 DcbSetting();
56 /*!
57 */
58 explicit DcbSetting(const Ptr &other);
59 ~DcbSetting() override;
60
61 QString name() const override;
62
63 /*!
64 */
65 void setAppFcoeMode(const QString &mode);
66 /*!
67 */
68 QString appFcoeMode() const;
69
70 /*!
71 */
72 void setAppFcoePriority(qint32 priority);
73 /*!
74 */
75 qint32 appFcoePriority() const;
76
77 /*!
78 */
79 void setAppFipPriority(qint32 priority);
80 /*!
81 */
82 qint32 appFipPriority() const;
83
84 /*!
85 */
86 void setAppIscsiPriority(qint32 priority);
87 /*!
88 */
89 qint32 appIscsiPriority() const;
90
91 /*!
92 */
93 void setAppFcoeFlags(DcbFlags flags);
94 /*!
95 */
96 DcbFlags appFcoeFlags() const;
97
98 /*!
99 */
100 void setAppFipFlags(DcbFlags flags);
101 /*!
102 */
103 DcbFlags appFipFlags() const;
104
105 /*!
106 */
107 void setAppIscsiFlags(DcbFlags flags);
108 /*!
109 */
110 DcbFlags appIscsiFlags() const;
111
112 /*!
113 */
114 void setPriorityGroupFlags(DcbFlags flags);
115 /*!
116 */
117 DcbFlags priorityGroupFlags() const;
118
119 /*!
120 */
121 void setPriorityFlowControlFlags(DcbFlags flags);
122 /*!
123 */
124 DcbFlags priorityFlowControlFlags() const;
125
126 /*!
127 */
128 void setPriorityFlowControl(quint32 userPriority, bool enabled);
129 /*!
130 */
131 bool priorityFlowControl(quint32 userPriority) const;
132 /*!
133 */
134 void setPriorityFlowControl(const UIntList &list);
135 /*!
136 */
137 UIntList priorityFlowControl() const;
138
139 /*!
140 */
141 void setPriorityBandwidth(quint32 userPriority, quint32 bandwidthPercent);
142 /*!
143 */
144 quint32 priorityBandwidth(quint32 userPriority) const;
145 /*!
146 */
147 void setPriorityBandwidth(const UIntList &list);
148 /*!
149 */
150 UIntList priorityBandwidth() const;
151
152 /*!
153 */
154 void setPriorityGroupBandwidth(quint32 groupId, quint32 bandwidthPercent);
155 /*!
156 */
157 quint32 priorityGroupBandwidth(quint32 groupId) const;
158 /*!
159 */
160 void setPriorityGroupBandwidth(const UIntList &list);
161 /*!
162 */
163 UIntList priorityGroupBandwidth() const;
164
165 /*!
166 */
167 void setPriorityGroupId(quint32 userPriority, quint32 groupId);
168 /*!
169 */
170 quint32 priorityGroupId(quint32 userPriority) const;
171 /*!
172 */
173 void setPriorityGroupId(const UIntList &list);
174 /*!
175 */
176 UIntList priorityGroupId() const;
177
178 /*!
179 */
180 void setPriorityStrictBandwidth(quint32 userPriority, bool strict);
181 /*!
182 */
183 bool priorityStrictBandwidth(quint32 userPriority) const;
184 /*!
185 */
186 void setPriorityStrictBandwidth(const UIntList &list);
187 /*!
188 */
189 UIntList priorityStrictBandwidth() const;
190
191 /*!
192 */
193 void setPriorityTrafficClass(quint32 userPriority, quint32 trafficClass);
194 /*!
195 */
196 quint32 priorityTrafficClass(quint32 userPriority) const;
197 /*!
198 */
199 void setPriorityTrafficClass(const UIntList &list);
200 /*!
201 */
202 UIntList priorityTrafficClass() const;
203
204 void fromMap(const QVariantMap &setting) override;
205
206 QVariantMap toMap() const override;
207
208protected:
209 DcbSettingPrivate *d_ptr;
210
211private:
212 Q_DECLARE_PRIVATE(DcbSetting)
213};
214Q_DECLARE_OPERATORS_FOR_FLAGS(DcbSetting::DcbFlags)
215
216NETWORKMANAGERQT_EXPORT QDebug operator<<(QDebug dbg, const DcbSetting &setting);
217
218}
219
220#endif // NETWORKMANAGERQT_DCBSETTING_H
221

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