File indexing completed on 2024-03-24 04:02:50
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 "infinibandsetting.h" 0008 #include "infinibandsetting_p.h" 0009 0010 #include <QDebug> 0011 0012 NetworkManager::InfinibandSettingPrivate::InfinibandSettingPrivate() 0013 : name(NM_SETTING_INFINIBAND_SETTING_NAME) 0014 , mtu(0) 0015 , transportMode(InfinibandSetting::Unknown) 0016 , pKey(-1) 0017 { 0018 } 0019 0020 NetworkManager::InfinibandSetting::InfinibandSetting() 0021 : Setting(Setting::Infiniband) 0022 , d_ptr(new InfinibandSettingPrivate()) 0023 { 0024 } 0025 0026 NetworkManager::InfinibandSetting::InfinibandSetting(const NetworkManager::InfinibandSetting::Ptr &other) 0027 : Setting(other) 0028 , d_ptr(new InfinibandSettingPrivate()) 0029 { 0030 setMacAddress(other->macAddress()); 0031 setMtu(other->mtu()); 0032 setTransportMode(other->transportMode()); 0033 setPKey(other->pKey()); 0034 setParent(other->parent()); 0035 } 0036 0037 NetworkManager::InfinibandSetting::~InfinibandSetting() 0038 { 0039 delete d_ptr; 0040 } 0041 0042 QString NetworkManager::InfinibandSetting::name() const 0043 { 0044 Q_D(const InfinibandSetting); 0045 0046 return d->name; 0047 } 0048 0049 void NetworkManager::InfinibandSetting::setMacAddress(const QByteArray &address) 0050 { 0051 Q_D(InfinibandSetting); 0052 0053 d->macAddress = address; 0054 } 0055 0056 QByteArray NetworkManager::InfinibandSetting::macAddress() const 0057 { 0058 Q_D(const InfinibandSetting); 0059 0060 return d->macAddress; 0061 } 0062 0063 void NetworkManager::InfinibandSetting::setMtu(quint32 mtu) 0064 { 0065 Q_D(InfinibandSetting); 0066 0067 d->mtu = mtu; 0068 } 0069 0070 quint32 NetworkManager::InfinibandSetting::mtu() const 0071 { 0072 Q_D(const InfinibandSetting); 0073 0074 return d->mtu; 0075 } 0076 0077 void NetworkManager::InfinibandSetting::setTransportMode(NetworkManager::InfinibandSetting::TransportMode mode) 0078 { 0079 Q_D(InfinibandSetting); 0080 0081 d->transportMode = mode; 0082 } 0083 0084 NetworkManager::InfinibandSetting::TransportMode NetworkManager::InfinibandSetting::transportMode() const 0085 { 0086 Q_D(const InfinibandSetting); 0087 0088 return d->transportMode; 0089 } 0090 0091 void NetworkManager::InfinibandSetting::setPKey(qint32 key) 0092 { 0093 Q_D(InfinibandSetting); 0094 0095 d->pKey = key; 0096 } 0097 0098 qint32 NetworkManager::InfinibandSetting::pKey() const 0099 { 0100 Q_D(const InfinibandSetting); 0101 0102 return d->pKey; 0103 } 0104 0105 void NetworkManager::InfinibandSetting::setParent(const QString &parent) 0106 { 0107 Q_D(InfinibandSetting); 0108 0109 d->parent = parent; 0110 } 0111 0112 QString NetworkManager::InfinibandSetting::parent() const 0113 { 0114 Q_D(const InfinibandSetting); 0115 0116 return d->parent; 0117 } 0118 0119 void NetworkManager::InfinibandSetting::fromMap(const QVariantMap &setting) 0120 { 0121 if (setting.contains(QLatin1String(NM_SETTING_INFINIBAND_MAC_ADDRESS))) { 0122 setMacAddress(setting.value(QLatin1String(NM_SETTING_INFINIBAND_MAC_ADDRESS)).toByteArray()); 0123 } 0124 0125 if (setting.contains(QLatin1String(NM_SETTING_INFINIBAND_MTU))) { 0126 setMtu(setting.value(QLatin1String(NM_SETTING_INFINIBAND_MTU)).toUInt()); 0127 } 0128 0129 if (setting.contains(QLatin1String(NM_SETTING_INFINIBAND_TRANSPORT_MODE))) { 0130 QString mode = setting.value(QLatin1String(NM_SETTING_INFINIBAND_TRANSPORT_MODE)).toString(); 0131 0132 if (mode == "datagram") { 0133 setTransportMode(Datagram); 0134 } else if (mode == "connected") { 0135 setTransportMode(Connected); 0136 } 0137 } 0138 0139 if (setting.contains(QLatin1String(NM_SETTING_INFINIBAND_P_KEY))) { 0140 setPKey(setting.value(QLatin1String(NM_SETTING_INFINIBAND_P_KEY)).toInt()); 0141 } 0142 0143 if (setting.contains(QLatin1String(NM_SETTING_INFINIBAND_PARENT))) { 0144 setParent(setting.value(QLatin1String(NM_SETTING_INFINIBAND_PARENT)).toString()); 0145 } 0146 } 0147 0148 QVariantMap NetworkManager::InfinibandSetting::toMap() const 0149 { 0150 QVariantMap setting; 0151 0152 if (!macAddress().isEmpty()) { 0153 setting.insert(QLatin1String(NM_SETTING_INFINIBAND_MAC_ADDRESS), macAddress()); 0154 } 0155 0156 if (mtu()) { 0157 setting.insert(QLatin1String(NM_SETTING_INFINIBAND_MTU), mtu()); 0158 } 0159 0160 if (transportMode() != Unknown) { 0161 if (transportMode() == Datagram) { 0162 setting.insert(QLatin1String(NM_SETTING_INFINIBAND_TRANSPORT_MODE), "datagram"); 0163 } else if (transportMode() == Connected) { 0164 setting.insert(QLatin1String(NM_SETTING_INFINIBAND_TRANSPORT_MODE), "connected"); 0165 } 0166 } 0167 0168 if (pKey() != -1) { 0169 setting.insert(QLatin1String(NM_SETTING_INFINIBAND_P_KEY), pKey()); 0170 } 0171 0172 if (!parent().isEmpty()) { 0173 setting.insert(QLatin1String(NM_SETTING_INFINIBAND_PARENT), parent()); 0174 } 0175 0176 return setting; 0177 } 0178 0179 QDebug NetworkManager::operator<<(QDebug dbg, const NetworkManager::InfinibandSetting &setting) 0180 { 0181 dbg.nospace() << "type: " << setting.typeAsString(setting.type()) << '\n'; 0182 dbg.nospace() << "initialized: " << !setting.isNull() << '\n'; 0183 0184 dbg.nospace() << NM_SETTING_INFINIBAND_MAC_ADDRESS << ": " << setting.macAddress() << '\n'; 0185 dbg.nospace() << NM_SETTING_INFINIBAND_MTU << ": " << setting.mtu() << '\n'; 0186 dbg.nospace() << NM_SETTING_INFINIBAND_TRANSPORT_MODE << ": " << setting.transportMode() << '\n'; 0187 dbg.nospace() << NM_SETTING_INFINIBAND_P_KEY << ": " << setting.pKey() << '\n'; 0188 dbg.nospace() << NM_SETTING_INFINIBAND_PARENT << ": " << setting.parent() << '\n'; 0189 0190 return dbg.maybeSpace(); 0191 }