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

0001 /*
0002     SPDX-FileCopyrightText: 2013 Lukáš Tinkl <ltinkl@redhat.com>
0003     SPDX-FileCopyrightText: 2014 Jan Grulich <jgrulich@redhat.com>
0004 
0005     SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0006 */
0007 
0008 #include "device_p.h"
0009 #include "manager.h"
0010 #include "manager_p.h"
0011 #include "teamdevice_p.h"
0012 
0013 NetworkManager::TeamDevicePrivate::TeamDevicePrivate(const QString &path, TeamDevice *q)
0014     : DevicePrivate(path, q)
0015 #ifdef NMQT_STATIC
0016     , iface(NetworkManagerPrivate::DBUS_SERVICE, path, QDBusConnection::sessionBus())
0017 #else
0018     , iface(NetworkManagerPrivate::DBUS_SERVICE, path, QDBusConnection::systemBus())
0019 #endif
0020 {
0021 }
0022 
0023 NetworkManager::TeamDevicePrivate::~TeamDevicePrivate()
0024 {
0025 }
0026 
0027 NetworkManager::TeamDevice::TeamDevice(const QString &path, QObject *parent)
0028     : Device(*new TeamDevicePrivate(path, this), parent)
0029 {
0030     Q_D(TeamDevice);
0031 
0032     QVariantMap initialProperties = NetworkManagerPrivate::retrieveInitialProperties(d->iface.staticInterfaceName(), path);
0033     if (!initialProperties.isEmpty()) {
0034         d->propertiesChanged(initialProperties);
0035     }
0036 }
0037 
0038 NetworkManager::TeamDevice::~TeamDevice()
0039 {
0040 }
0041 
0042 NetworkManager::Device::Type NetworkManager::TeamDevice::type() const
0043 {
0044     return NetworkManager::Device::Team;
0045 }
0046 
0047 bool NetworkManager::TeamDevice::carrier() const
0048 {
0049     Q_D(const TeamDevice);
0050 
0051     return d->carrier;
0052 }
0053 
0054 QString NetworkManager::TeamDevice::hwAddress() const
0055 {
0056     Q_D(const TeamDevice);
0057 
0058     return d->hwAddress;
0059 }
0060 
0061 QStringList NetworkManager::TeamDevice::slaves() const
0062 {
0063     Q_D(const TeamDevice);
0064     return d->slaves;
0065 }
0066 
0067 QString NetworkManager::TeamDevice::config() const
0068 {
0069     Q_D(const TeamDevice);
0070     return d->config;
0071 }
0072 
0073 void NetworkManager::TeamDevicePrivate::propertyChanged(const QString &property, const QVariant &value)
0074 {
0075     Q_Q(TeamDevice);
0076 
0077     if (property == QLatin1String("Carrier")) {
0078         carrier = value.toBool();
0079         Q_EMIT q->carrierChanged(carrier);
0080     } else if (property == QLatin1String("HwAddress")) {
0081         hwAddress = value.toString();
0082         Q_EMIT q->hwAddressChanged(hwAddress);
0083     } else if (property == QLatin1String("Slaves")) {
0084         QStringList list;
0085         const QList<QDBusObjectPath> opList = qdbus_cast<QList<QDBusObjectPath>>(value);
0086         for (const QDBusObjectPath &op : opList) {
0087             list << op.path();
0088         }
0089         slaves = list;
0090         Q_EMIT q->slavesChanged(slaves);
0091     } else if (property == QLatin1String("Config")) {
0092         config = value.toString();
0093         Q_EMIT q->configChanged(config);
0094     } else {
0095         DevicePrivate::propertyChanged(property, value);
0096     }
0097 }
0098 
0099 #include "moc_teamdevice.cpp"
0100 #include "moc_teamdevice_p.cpp"