File indexing completed on 2024-04-14 03:57:42

0001 /*
0002     SPDX-FileCopyrightText: 2014 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 "genericdevice_p.h"
0008 #include "manager.h"
0009 #include "nmdebug.h"
0010 
0011 NetworkManager::GenericDevicePrivate::GenericDevicePrivate(const QString &path, GenericDevice *q)
0012     : DevicePrivate(path, q)
0013 #ifdef NMQT_STATIC
0014     , iface(NetworkManagerPrivate::DBUS_SERVICE, path, QDBusConnection::sessionBus())
0015 #else
0016     , iface(NetworkManagerPrivate::DBUS_SERVICE, path, QDBusConnection::systemBus())
0017 #endif
0018 {
0019 }
0020 
0021 NetworkManager::GenericDevicePrivate::~GenericDevicePrivate()
0022 {
0023 }
0024 
0025 NetworkManager::GenericDevice::GenericDevice(const QString &path, QObject *parent)
0026     : Device(*new NetworkManager::GenericDevicePrivate(path, this), parent)
0027 {
0028     Q_D(GenericDevice);
0029 
0030     QVariantMap initialProperties = NetworkManagerPrivate::retrieveInitialProperties(d->iface.staticInterfaceName(), path);
0031     if (!initialProperties.isEmpty()) {
0032         d->propertiesChanged(initialProperties);
0033     }
0034 }
0035 
0036 NetworkManager::GenericDevice::~GenericDevice()
0037 {
0038 }
0039 
0040 NetworkManager::Device::Type NetworkManager::GenericDevice::type() const
0041 {
0042     return NetworkManager::Device::Generic;
0043 }
0044 
0045 QString NetworkManager::GenericDevice::hardwareAddress() const
0046 {
0047     Q_D(const GenericDevice);
0048     return d->hwAddress;
0049 }
0050 
0051 QString NetworkManager::GenericDevice::typeDescription() const
0052 {
0053     Q_D(const GenericDevice);
0054     return d->typeDescription;
0055 }
0056 
0057 void NetworkManager::GenericDevicePrivate::propertyChanged(const QString &property, const QVariant &value)
0058 {
0059     Q_Q(GenericDevice);
0060 
0061     if (property == QLatin1String("HwAddress")) {
0062         hwAddress = value.toString();
0063         Q_EMIT q->hardwareAddressChanged(hwAddress);
0064     } else if (property == QLatin1String("TypeDescription")) {
0065         typeDescription = value.toString();
0066         Q_EMIT q->permanentHardwareAddressChanged(typeDescription);
0067     } else {
0068         DevicePrivate::propertyChanged(property, value);
0069     }
0070 }
0071 
0072 #include "moc_genericdevice.cpp"
0073 #include "moc_genericdevice_p.cpp"