File indexing completed on 2024-04-21 04:00:04
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 "olpcmeshsetting.h" 0008 #include "olpcmeshsetting_p.h" 0009 0010 #include <QDebug> 0011 0012 NetworkManager::OlpcMeshSettingPrivate::OlpcMeshSettingPrivate() 0013 : name(NM_SETTING_OLPC_MESH_SETTING_NAME) 0014 , channel(0) 0015 { 0016 } 0017 0018 NetworkManager::OlpcMeshSetting::OlpcMeshSetting() 0019 : Setting(Setting::Bond) 0020 , d_ptr(new OlpcMeshSettingPrivate()) 0021 { 0022 } 0023 0024 NetworkManager::OlpcMeshSetting::OlpcMeshSetting(const Ptr &other) 0025 : Setting(other) 0026 , d_ptr(new OlpcMeshSettingPrivate()) 0027 { 0028 setSsid(other->ssid()); 0029 setChannel(other->channel()); 0030 setDhcpAnycastAddress(other->dhcpAnycastAddress()); 0031 } 0032 0033 NetworkManager::OlpcMeshSetting::~OlpcMeshSetting() 0034 { 0035 delete d_ptr; 0036 } 0037 0038 QString NetworkManager::OlpcMeshSetting::name() const 0039 { 0040 Q_D(const OlpcMeshSetting); 0041 0042 return d->name; 0043 } 0044 0045 void NetworkManager::OlpcMeshSetting::setSsid(const QByteArray &ssid) 0046 { 0047 Q_D(OlpcMeshSetting); 0048 0049 d->ssid = ssid; 0050 } 0051 0052 QByteArray NetworkManager::OlpcMeshSetting::ssid() const 0053 { 0054 Q_D(const OlpcMeshSetting); 0055 0056 return d->ssid; 0057 } 0058 0059 void NetworkManager::OlpcMeshSetting::setChannel(quint32 channel) 0060 { 0061 Q_D(OlpcMeshSetting); 0062 0063 d->channel = channel; 0064 } 0065 0066 quint32 NetworkManager::OlpcMeshSetting::channel() const 0067 { 0068 Q_D(const OlpcMeshSetting); 0069 0070 return d->channel; 0071 } 0072 0073 void NetworkManager::OlpcMeshSetting::setDhcpAnycastAddress(const QByteArray &address) 0074 { 0075 Q_D(OlpcMeshSetting); 0076 0077 d->dhcpAnycastAddress = address; 0078 } 0079 0080 QByteArray NetworkManager::OlpcMeshSetting::dhcpAnycastAddress() const 0081 { 0082 Q_D(const OlpcMeshSetting); 0083 0084 return d->dhcpAnycastAddress; 0085 } 0086 0087 void NetworkManager::OlpcMeshSetting::fromMap(const QVariantMap &setting) 0088 { 0089 if (setting.contains(QLatin1String(NM_SETTING_OLPC_MESH_SSID))) { 0090 setSsid(setting.value(QLatin1String(NM_SETTING_OLPC_MESH_SSID)).toByteArray()); 0091 } 0092 0093 if (setting.contains(QLatin1String(NM_SETTING_OLPC_MESH_CHANNEL))) { 0094 setChannel(setting.value(QLatin1String(NM_SETTING_OLPC_MESH_CHANNEL)).toUInt()); 0095 } 0096 0097 if (setting.contains(QLatin1String(NM_SETTING_OLPC_MESH_DHCP_ANYCAST_ADDRESS))) { 0098 setDhcpAnycastAddress(setting.value(QLatin1String(NM_SETTING_OLPC_MESH_DHCP_ANYCAST_ADDRESS)).toByteArray()); 0099 } 0100 } 0101 0102 QVariantMap NetworkManager::OlpcMeshSetting::toMap() const 0103 { 0104 QVariantMap setting; 0105 0106 if (!ssid().isEmpty()) { 0107 setting.insert(QLatin1String(NM_SETTING_OLPC_MESH_SSID), ssid()); 0108 } 0109 0110 if (channel()) { 0111 setting.insert(QLatin1String(NM_SETTING_OLPC_MESH_CHANNEL), channel()); 0112 } 0113 0114 if (!dhcpAnycastAddress().isEmpty()) { 0115 setting.insert(QLatin1String(NM_SETTING_OLPC_MESH_DHCP_ANYCAST_ADDRESS), dhcpAnycastAddress()); 0116 } 0117 0118 return setting; 0119 } 0120 0121 QDebug NetworkManager::operator<<(QDebug dbg, const NetworkManager::OlpcMeshSetting &setting) 0122 { 0123 dbg.nospace() << "type: " << setting.typeAsString(setting.type()) << '\n'; 0124 dbg.nospace() << "initialized: " << !setting.isNull() << '\n'; 0125 0126 dbg.nospace() << NM_SETTING_OLPC_MESH_SSID << ": " << setting.ssid() << '\n'; 0127 dbg.nospace() << NM_SETTING_OLPC_MESH_CHANNEL << ": " << setting.channel() << '\n'; 0128 dbg.nospace() << NM_SETTING_OLPC_MESH_DHCP_ANYCAST_ADDRESS << ": " << setting.dhcpAnycastAddress() << '\n'; 0129 0130 return dbg.maybeSpace(); 0131 }