File indexing completed on 2024-04-14 03:57:32
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 "bridgeportsetting.h" 0008 #include "bridgeportsetting_p.h" 0009 0010 #include <QDebug> 0011 0012 NetworkManager::BridgePortSettingPrivate::BridgePortSettingPrivate() 0013 : name(NM_SETTING_BRIDGE_PORT_SETTING_NAME) 0014 , priority(32) 0015 , pathCost(100) 0016 , hairpinMode(false) 0017 { 0018 } 0019 0020 NetworkManager::BridgePortSetting::BridgePortSetting() 0021 : Setting(Setting::BridgePort) 0022 , d_ptr(new BridgePortSettingPrivate()) 0023 { 0024 } 0025 0026 NetworkManager::BridgePortSetting::BridgePortSetting(const NetworkManager::BridgePortSetting::Ptr &other) 0027 : Setting(other) 0028 , d_ptr(new BridgePortSettingPrivate()) 0029 { 0030 setPriority(other->priority()); 0031 setPathCost(other->pathCost()); 0032 setHairpinMode(other->hairpinMode()); 0033 } 0034 0035 NetworkManager::BridgePortSetting::~BridgePortSetting() 0036 { 0037 delete d_ptr; 0038 } 0039 0040 QString NetworkManager::BridgePortSetting::name() const 0041 { 0042 Q_D(const BridgePortSetting); 0043 0044 return d->name; 0045 } 0046 0047 void NetworkManager::BridgePortSetting::setPriority(quint32 priority) 0048 { 0049 Q_D(BridgePortSetting); 0050 0051 d->priority = priority; 0052 } 0053 0054 quint32 NetworkManager::BridgePortSetting::priority() const 0055 { 0056 Q_D(const BridgePortSetting); 0057 0058 return d->priority; 0059 } 0060 0061 void NetworkManager::BridgePortSetting::setPathCost(quint32 cost) 0062 { 0063 Q_D(BridgePortSetting); 0064 0065 d->pathCost = cost; 0066 } 0067 0068 quint32 NetworkManager::BridgePortSetting::pathCost() const 0069 { 0070 Q_D(const BridgePortSetting); 0071 0072 return d->pathCost; 0073 } 0074 0075 void NetworkManager::BridgePortSetting::setHairpinMode(bool enable) 0076 { 0077 Q_D(BridgePortSetting); 0078 0079 d->hairpinMode = enable; 0080 } 0081 0082 bool NetworkManager::BridgePortSetting::hairpinMode() const 0083 { 0084 Q_D(const BridgePortSetting); 0085 0086 return d->hairpinMode; 0087 } 0088 0089 void NetworkManager::BridgePortSetting::fromMap(const QVariantMap &setting) 0090 { 0091 if (setting.contains(QLatin1String(NM_SETTING_BRIDGE_PORT_PRIORITY))) { 0092 setPriority(setting.value(QLatin1String(NM_SETTING_BRIDGE_PORT_PRIORITY)).toUInt()); 0093 } 0094 0095 if (setting.contains(QLatin1String(NM_SETTING_BRIDGE_PORT_PATH_COST))) { 0096 setPathCost(setting.value(QLatin1String(NM_SETTING_BRIDGE_PORT_PATH_COST)).toUInt()); 0097 } 0098 0099 if (setting.contains(QLatin1String(NM_SETTING_BRIDGE_PORT_HAIRPIN_MODE))) { 0100 setHairpinMode(setting.value(QLatin1String(NM_SETTING_BRIDGE_PORT_HAIRPIN_MODE)).toBool()); 0101 } 0102 } 0103 0104 QVariantMap NetworkManager::BridgePortSetting::toMap() const 0105 { 0106 QVariantMap setting; 0107 0108 if (priority() != 32) { 0109 setting.insert(QLatin1String(NM_SETTING_BRIDGE_PORT_PRIORITY), priority()); 0110 } 0111 0112 if (pathCost() != 100) { 0113 setting.insert(QLatin1String(NM_SETTING_BRIDGE_PORT_PATH_COST), pathCost()); 0114 } 0115 0116 if (hairpinMode()) { 0117 setting.insert(QLatin1String(NM_SETTING_BRIDGE_PORT_PATH_COST), hairpinMode()); 0118 } 0119 0120 return setting; 0121 } 0122 0123 QDebug NetworkManager::operator<<(QDebug dbg, const NetworkManager::BridgePortSetting &setting) 0124 { 0125 dbg.nospace() << "type: " << setting.typeAsString(setting.type()) << '\n'; 0126 dbg.nospace() << "initialized: " << !setting.isNull() << '\n'; 0127 0128 dbg.nospace() << NM_SETTING_BRIDGE_PORT_PRIORITY << ": " << setting.priority() << '\n'; 0129 dbg.nospace() << NM_SETTING_BRIDGE_PORT_PATH_COST << ": " << setting.pathCost() << '\n'; 0130 dbg.nospace() << NM_SETTING_BRIDGE_PORT_PATH_COST << ": " << setting.hairpinMode() << '\n'; 0131 0132 return dbg.maybeSpace(); 0133 }