File indexing completed on 2024-04-21 04:00:04

0001 /*
0002     SPDX-FileCopyrightText: Pranav Gade <pranavgade20@gmail.com>
0003 
0004     SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0005 */
0006 
0007 #include "ovsinterfacesetting.h"
0008 #include "ovsinterfacesetting_p.h"
0009 
0010 #include <QDebug>
0011 
0012 #if !NM_CHECK_VERSION(1, 10, 0)
0013 #define NM_SETTING_OVS_INTERFACE_SETTING_NAME "ovs-interface"
0014 #define NM_SETTING_OVS_INTERFACE_TYPE "type"
0015 #endif
0016 
0017 NetworkManager::OvsInterfaceSettingPrivate::OvsInterfaceSettingPrivate()
0018     : name(NM_SETTING_OVS_INTERFACE_SETTING_NAME)
0019 {
0020 }
0021 
0022 NetworkManager::OvsInterfaceSetting::OvsInterfaceSetting()
0023     : Setting(Setting::OvsInterface)
0024     , d_ptr(new OvsInterfaceSettingPrivate())
0025 {
0026 }
0027 
0028 NetworkManager::OvsInterfaceSetting::OvsInterfaceSetting(const Ptr &other)
0029     : Setting(other)
0030     , d_ptr(new OvsInterfaceSettingPrivate())
0031 {
0032     setInterfaceType(other->interfaceType());
0033 }
0034 
0035 NetworkManager::OvsInterfaceSetting::~OvsInterfaceSetting()
0036 {
0037     delete d_ptr;
0038 }
0039 
0040 QString NetworkManager::OvsInterfaceSetting::name() const
0041 {
0042     Q_D(const OvsInterfaceSetting);
0043 
0044     return d->name;
0045 }
0046 
0047 void NetworkManager::OvsInterfaceSetting::setInterfaceType(const QString &type)
0048 {
0049     Q_D(OvsInterfaceSetting);
0050 
0051     d->type = type;
0052 }
0053 
0054 QString NetworkManager::OvsInterfaceSetting::interfaceType() const
0055 {
0056     Q_D(const OvsInterfaceSetting);
0057 
0058     return d->type;
0059 }
0060 
0061 void NetworkManager::OvsInterfaceSetting::fromMap(const QVariantMap &setting)
0062 {
0063     if (setting.contains(QLatin1String(NM_SETTING_OVS_INTERFACE_TYPE))) {
0064         setInterfaceType(setting.value(QLatin1String(NM_SETTING_OVS_INTERFACE_TYPE)).toString());
0065     }
0066 }
0067 
0068 QVariantMap NetworkManager::OvsInterfaceSetting::toMap() const
0069 {
0070     QVariantMap setting;
0071 
0072     if (!interfaceType().isEmpty()) {
0073         setting.insert(QLatin1String(NM_SETTING_OVS_INTERFACE_TYPE), interfaceType());
0074     }
0075 
0076     return setting;
0077 }
0078 
0079 QDebug NetworkManager::operator<<(QDebug dbg, const NetworkManager::OvsInterfaceSetting &setting)
0080 {
0081     dbg.nospace() << "type: " << setting.typeAsString(setting.type()) << '\n';
0082     dbg.nospace() << "initialized: " << !setting.isNull() << '\n';
0083 
0084     dbg.nospace() << NM_SETTING_OVS_INTERFACE_TYPE << ": " << setting.type() << '\n';
0085 
0086     return dbg.maybeSpace();
0087 }