File indexing completed on 2024-04-21 04:00:00
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 "bondsetting.h" 0008 #include "bondsetting_p.h" 0009 0010 #define NM_SETTING_BOND_INTERFACE_NAME "interface-name" 0011 0012 #include <QDebug> 0013 0014 NetworkManager::BondSettingPrivate::BondSettingPrivate() 0015 : name(NM_SETTING_BOND_SETTING_NAME) 0016 { 0017 } 0018 0019 NetworkManager::BondSetting::BondSetting() 0020 : Setting(Setting::Bond) 0021 , d_ptr(new BondSettingPrivate()) 0022 { 0023 } 0024 0025 NetworkManager::BondSetting::BondSetting(const Ptr &other) 0026 : Setting(other) 0027 , d_ptr(new BondSettingPrivate()) 0028 { 0029 setInterfaceName(other->interfaceName()); 0030 setOptions(other->options()); 0031 } 0032 0033 NetworkManager::BondSetting::~BondSetting() 0034 { 0035 delete d_ptr; 0036 } 0037 0038 QString NetworkManager::BondSetting::name() const 0039 { 0040 Q_D(const BondSetting); 0041 0042 return d->name; 0043 } 0044 0045 void NetworkManager::BondSetting::setInterfaceName(const QString &name) 0046 { 0047 Q_D(BondSetting); 0048 0049 d->interfaceName = name; 0050 } 0051 0052 QString NetworkManager::BondSetting::interfaceName() const 0053 { 0054 Q_D(const BondSetting); 0055 0056 return d->interfaceName; 0057 } 0058 0059 void NetworkManager::BondSetting::addOption(const QString &option, const QString &value) 0060 { 0061 Q_D(BondSetting); 0062 0063 d->options.insert(option, value); 0064 } 0065 0066 void NetworkManager::BondSetting::setOptions(const NMStringMap &options) 0067 { 0068 Q_D(BondSetting); 0069 0070 d->options = options; 0071 } 0072 0073 NMStringMap NetworkManager::BondSetting::options() const 0074 { 0075 Q_D(const BondSetting); 0076 0077 return d->options; 0078 } 0079 0080 void NetworkManager::BondSetting::fromMap(const QVariantMap &setting) 0081 { 0082 if (setting.contains(QLatin1String(NM_SETTING_BOND_INTERFACE_NAME))) { 0083 setInterfaceName(setting.value(QLatin1String(NM_SETTING_BOND_INTERFACE_NAME)).toString()); 0084 } 0085 0086 if (setting.contains(QLatin1String(NM_SETTING_BOND_OPTIONS))) { 0087 setOptions(qdbus_cast<NMStringMap>(setting.value(QLatin1String(NM_SETTING_BOND_OPTIONS)))); 0088 } 0089 } 0090 0091 QVariantMap NetworkManager::BondSetting::toMap() const 0092 { 0093 QVariantMap setting; 0094 if (!interfaceName().isEmpty()) { 0095 setting.insert(QLatin1String(NM_SETTING_BOND_INTERFACE_NAME), interfaceName()); 0096 } 0097 if (!options().isEmpty()) { 0098 setting.insert(QLatin1String(NM_SETTING_BOND_OPTIONS), QVariant::fromValue<NMStringMap>(options())); 0099 } 0100 0101 return setting; 0102 } 0103 0104 QDebug NetworkManager::operator<<(QDebug dbg, const NetworkManager::BondSetting &setting) 0105 { 0106 dbg.nospace() << "type: " << setting.typeAsString(setting.type()) << '\n'; 0107 dbg.nospace() << "initialized: " << !setting.isNull() << '\n'; 0108 0109 dbg.nospace() << NM_SETTING_BOND_INTERFACE_NAME << ": " << setting.interfaceName() << '\n'; 0110 dbg.nospace() << NM_SETTING_BOND_OPTIONS << ": " << setting.options() << '\n'; 0111 0112 return dbg.maybeSpace(); 0113 }