File indexing completed on 2024-03-24 04:02:55
0001 /* 0002 SPDX-FileCopyrightText: 2012-2013 Jan Grulich <jgrulich@redhat.com> 0003 0004 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0005 */ 0006 0007 #include "vlansetting.h" 0008 #include "vlansetting_p.h" 0009 0010 // define the deprecated&dropped values 0011 #define NM_SETTING_VLAN_INTERFACE_NAME "interface-name" 0012 0013 #include <QDebug> 0014 0015 NetworkManager::VlanSettingPrivate::VlanSettingPrivate() 0016 : name(NM_SETTING_VLAN_SETTING_NAME) 0017 , id(0) 0018 , flags(VlanSetting::None) 0019 { 0020 } 0021 0022 NetworkManager::VlanSetting::VlanSetting() 0023 : Setting(Setting::Vlan) 0024 , d_ptr(new VlanSettingPrivate()) 0025 { 0026 } 0027 0028 NetworkManager::VlanSetting::VlanSetting(const Ptr &other) 0029 : Setting(other) 0030 , d_ptr(new VlanSettingPrivate()) 0031 { 0032 setInterfaceName(other->interfaceName()); 0033 setParent(other->parent()); 0034 setId(other->id()); 0035 setFlags(other->flags()); 0036 setIngressPriorityMap(other->ingressPriorityMap()); 0037 setEgressPriorityMap(other->egressPriorityMap()); 0038 } 0039 0040 NetworkManager::VlanSetting::~VlanSetting() 0041 { 0042 delete d_ptr; 0043 } 0044 0045 QString NetworkManager::VlanSetting::name() const 0046 { 0047 Q_D(const VlanSetting); 0048 0049 return d->name; 0050 } 0051 0052 void NetworkManager::VlanSetting::setInterfaceName(const QString &name) 0053 { 0054 Q_D(VlanSetting); 0055 0056 d->interfaceName = name; 0057 } 0058 0059 QString NetworkManager::VlanSetting::interfaceName() const 0060 { 0061 Q_D(const VlanSetting); 0062 0063 return d->interfaceName; 0064 } 0065 0066 void NetworkManager::VlanSetting::setParent(const QString &parent) 0067 { 0068 Q_D(VlanSetting); 0069 0070 d->parent = parent; 0071 } 0072 0073 QString NetworkManager::VlanSetting::parent() const 0074 { 0075 Q_D(const VlanSetting); 0076 0077 return d->parent; 0078 } 0079 0080 void NetworkManager::VlanSetting::setId(quint32 id) 0081 { 0082 Q_D(VlanSetting); 0083 0084 d->id = id; 0085 } 0086 0087 quint32 NetworkManager::VlanSetting::id() const 0088 { 0089 Q_D(const VlanSetting); 0090 0091 return d->id; 0092 } 0093 0094 void NetworkManager::VlanSetting::setFlags(NetworkManager::VlanSetting::Flags flags) 0095 { 0096 Q_D(VlanSetting); 0097 0098 d->flags = flags; 0099 } 0100 0101 NetworkManager::VlanSetting::Flags NetworkManager::VlanSetting::flags() const 0102 { 0103 Q_D(const VlanSetting); 0104 0105 return d->flags; 0106 } 0107 0108 void NetworkManager::VlanSetting::setIngressPriorityMap(const QStringList &map) 0109 { 0110 Q_D(VlanSetting); 0111 0112 d->ingressPriorityMap = map; 0113 } 0114 0115 QStringList NetworkManager::VlanSetting::ingressPriorityMap() const 0116 { 0117 Q_D(const VlanSetting); 0118 0119 return d->ingressPriorityMap; 0120 } 0121 0122 void NetworkManager::VlanSetting::setEgressPriorityMap(const QStringList &map) 0123 { 0124 Q_D(VlanSetting); 0125 0126 d->egressPriorityMap = map; 0127 } 0128 0129 QStringList NetworkManager::VlanSetting::egressPriorityMap() const 0130 { 0131 Q_D(const VlanSetting); 0132 0133 return d->egressPriorityMap; 0134 } 0135 0136 void NetworkManager::VlanSetting::fromMap(const QVariantMap &setting) 0137 { 0138 if (setting.contains(QLatin1String(NM_SETTING_VLAN_INTERFACE_NAME))) { 0139 setInterfaceName(setting.value(QLatin1String(NM_SETTING_VLAN_INTERFACE_NAME)).toString()); 0140 } 0141 0142 if (setting.contains(QLatin1String(NM_SETTING_VLAN_PARENT))) { 0143 setParent(setting.value(QLatin1String(NM_SETTING_VLAN_PARENT)).toString()); 0144 } 0145 0146 if (setting.contains(QLatin1String(NM_SETTING_VLAN_ID))) { 0147 setId(setting.value(QLatin1String(NM_SETTING_VLAN_ID)).toUInt()); 0148 } 0149 0150 if (setting.contains(QLatin1String(NM_SETTING_VLAN_FLAGS))) { 0151 setFlags((Flag)setting.value(QLatin1String(NM_SETTING_VLAN_FLAGS)).toUInt()); 0152 } 0153 0154 if (setting.contains(QLatin1String(NM_SETTING_VLAN_INGRESS_PRIORITY_MAP))) { 0155 setIngressPriorityMap(setting.value(QLatin1String(NM_SETTING_VLAN_INGRESS_PRIORITY_MAP)).toStringList()); 0156 } 0157 0158 if (setting.contains(QLatin1String(NM_SETTING_VLAN_EGRESS_PRIORITY_MAP))) { 0159 setEgressPriorityMap(setting.value(QLatin1String(NM_SETTING_VLAN_EGRESS_PRIORITY_MAP)).toStringList()); 0160 } 0161 } 0162 0163 QVariantMap NetworkManager::VlanSetting::toMap() const 0164 { 0165 QVariantMap setting; 0166 0167 if (!interfaceName().isEmpty()) { 0168 setting.insert(QLatin1String(NM_SETTING_VLAN_INTERFACE_NAME), interfaceName()); 0169 } 0170 0171 if (!parent().isEmpty()) { 0172 setting.insert(QLatin1String(NM_SETTING_VLAN_PARENT), parent()); 0173 } 0174 0175 if (id()) { 0176 setting.insert(QLatin1String(NM_SETTING_VLAN_ID), id()); 0177 } 0178 0179 if (flags() != None) { 0180 setting.insert(QLatin1String(NM_SETTING_VLAN_FLAGS), (int)flags()); 0181 } 0182 0183 if (!ingressPriorityMap().isEmpty()) { 0184 setting.insert(QLatin1String(NM_SETTING_VLAN_INGRESS_PRIORITY_MAP), ingressPriorityMap()); 0185 } 0186 0187 if (!egressPriorityMap().isEmpty()) { 0188 setting.insert(QLatin1String(NM_SETTING_VLAN_EGRESS_PRIORITY_MAP), egressPriorityMap()); 0189 } 0190 0191 return setting; 0192 } 0193 0194 QDebug NetworkManager::operator<<(QDebug dbg, const NetworkManager::VlanSetting &setting) 0195 { 0196 dbg.nospace() << "type: " << setting.typeAsString(setting.type()) << '\n'; 0197 dbg.nospace() << "initialized: " << !setting.isNull() << '\n'; 0198 0199 dbg.nospace() << NM_SETTING_VLAN_INTERFACE_NAME << ": " << setting.interfaceName() << '\n'; 0200 dbg.nospace() << NM_SETTING_VLAN_PARENT << ": " << setting.parent() << '\n'; 0201 dbg.nospace() << NM_SETTING_VLAN_ID << ": " << setting.id() << '\n'; 0202 dbg.nospace() << NM_SETTING_VLAN_FLAGS << ": " << setting.flags() << '\n'; 0203 dbg.nospace() << NM_SETTING_VLAN_INGRESS_PRIORITY_MAP << ": " << setting.ingressPriorityMap() << '\n'; 0204 dbg.nospace() << NM_SETTING_VLAN_EGRESS_PRIORITY_MAP << ": " << setting.egressPriorityMap() << '\n'; 0205 0206 return dbg.maybeSpace(); 0207 }