File indexing completed on 2024-04-21 04:00:02
0001 /* 0002 SPDX-FileCopyrightText: 2018 Pranav Gade <pranavgade20@gmail.com> 0003 0004 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0005 */ 0006 0007 #ifndef NETWORKMANAGERQT_DCBSETTING_H 0008 #define NETWORKMANAGERQT_DCBSETTING_H 0009 0010 #include "setting.h" 0011 #include <networkmanagerqt/networkmanagerqt_export.h> 0012 0013 #include <QString> 0014 0015 namespace NetworkManager 0016 { 0017 class DcbSettingPrivate; 0018 0019 /** 0020 * Represents Dcb setting 0021 */ 0022 class NETWORKMANAGERQT_EXPORT DcbSetting : public Setting 0023 { 0024 public: 0025 typedef QSharedPointer<DcbSetting> Ptr; 0026 typedef QList<Ptr> List; 0027 0028 enum DcbFlagType { 0029 None = 0, 0030 Enable = 0x01, 0031 Advertise = 0x02, 0032 Willing = 0x04, 0033 }; 0034 Q_DECLARE_FLAGS(DcbFlags, DcbFlagType) 0035 0036 DcbSetting(); 0037 explicit DcbSetting(const Ptr &other); 0038 ~DcbSetting() override; 0039 0040 QString name() const override; 0041 0042 void setAppFcoeMode(const QString &mode); 0043 QString appFcoeMode() const; 0044 0045 void setAppFcoePriority(qint32 priority); 0046 qint32 appFcoePriority() const; 0047 0048 void setAppFipPriority(qint32 priority); 0049 qint32 appFipPriority() const; 0050 0051 void setAppIscsiPriority(qint32 priority); 0052 qint32 appIscsiPriority() const; 0053 0054 void setAppFcoeFlags(DcbFlags flags); 0055 DcbFlags appFcoeFlags() const; 0056 0057 void setAppFipFlags(DcbFlags flags); 0058 DcbFlags appFipFlags() const; 0059 0060 void setAppIscsiFlags(DcbFlags flags); 0061 DcbFlags appIscsiFlags() const; 0062 0063 void setPriorityGroupFlags(DcbFlags flags); 0064 DcbFlags priorityGroupFlags() const; 0065 0066 void setPriorityFlowControlFlags(DcbFlags flags); 0067 DcbFlags priorityFlowControlFlags() const; 0068 0069 void setPriorityFlowControl(quint32 userPriority, bool enabled); 0070 bool priorityFlowControl(quint32 userPriority) const; 0071 void setPriorityFlowControl(const UIntList &list); 0072 UIntList priorityFlowControl() const; 0073 0074 void setPriorityBandwidth(quint32 userPriority, quint32 bandwidthPercent); 0075 quint32 priorityBandwidth(quint32 userPriority) const; 0076 void setPriorityBandwidth(const UIntList &list); 0077 UIntList priorityBandwidth() const; 0078 0079 void setPriorityGroupBandwidth(quint32 groupId, quint32 bandwidthPercent); 0080 quint32 priorityGroupBandwidth(quint32 groupId) const; 0081 void setPriorityGroupBandwidth(const UIntList &list); 0082 UIntList priorityGroupBandwidth() const; 0083 0084 void setPriorityGroupId(quint32 userPriority, quint32 groupId); 0085 quint32 priorityGroupId(quint32 userPriority) const; 0086 void setPriorityGroupId(const UIntList &list); 0087 UIntList priorityGroupId() const; 0088 0089 void setPriorityStrictBandwidth(quint32 userPriority, bool strict); 0090 bool priorityStrictBandwidth(quint32 userPriority) const; 0091 void setPriorityStrictBandwidth(const UIntList &list); 0092 UIntList priorityStrictBandwidth() const; 0093 0094 void setPriorityTrafficClass(quint32 userPriority, quint32 trafficClass); 0095 quint32 priorityTrafficClass(quint32 userPriority) const; 0096 void setPriorityTrafficClass(const UIntList &list); 0097 UIntList priorityTrafficClass() const; 0098 0099 void fromMap(const QVariantMap &setting) override; 0100 0101 QVariantMap toMap() const override; 0102 0103 protected: 0104 DcbSettingPrivate *d_ptr; 0105 0106 private: 0107 Q_DECLARE_PRIVATE(DcbSetting) 0108 }; 0109 Q_DECLARE_OPERATORS_FOR_FLAGS(DcbSetting::DcbFlags) 0110 0111 NETWORKMANAGERQT_EXPORT QDebug operator<<(QDebug dbg, const DcbSetting &setting); 0112 0113 } 0114 0115 #endif // NETWORKMANAGERQT_DCBSETTING_H