File indexing completed on 2024-04-28 03:59:49
0001 /* 0002 SPDX-FileCopyrightText: 2015 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 "objectmanager.h" 0008 #include "dbus/fakedbus.h" 0009 0010 #include <QDBusMetaType> 0011 0012 ObjectManager::ObjectManager(QObject *parent) 0013 : QDBusAbstractAdaptor(parent) 0014 { 0015 qDBusRegisterMetaType<QDBusObjectPath>(); 0016 qDBusRegisterMetaType<ModemManager::MMVariantMapMap>(); 0017 qDBusRegisterMetaType<ModemManager::DBUSManagerStruct>(); 0018 } 0019 0020 ObjectManager::~ObjectManager() 0021 { 0022 } 0023 0024 void ObjectManager::addInterfaces(const QDBusObjectPath &object_path, const ModemManager::MMVariantMapMap &interfaces_and_properties) 0025 { 0026 if (m_managedObjects.contains(object_path)) { 0027 ModemManager::MMVariantMapMap map = m_managedObjects.value(object_path); 0028 map.insert(interfaces_and_properties); 0029 m_managedObjects.insert(object_path, map); 0030 } else { 0031 m_managedObjects.insert(object_path, interfaces_and_properties); 0032 } 0033 0034 Q_EMIT InterfacesAdded(object_path, interfaces_and_properties); 0035 } 0036 0037 void ObjectManager::removeInterfaces(const QDBusObjectPath &object_path, const QStringList &interfaces) 0038 { 0039 if (interfaces.contains(QLatin1String(MMQT_DBUS_INTERFACE_MODEM))) { 0040 m_managedObjects.remove(object_path); 0041 } else { 0042 ModemManager::MMVariantMapMap map = m_managedObjects.value(object_path); 0043 Q_FOREACH (const QString &key, interfaces) { 0044 map.remove(key); 0045 } 0046 m_managedObjects.insert(object_path, map); 0047 } 0048 0049 Q_EMIT InterfacesRemoved(object_path, interfaces); 0050 } 0051 0052 ModemManager::DBUSManagerStruct ObjectManager::GetManagedObjects() 0053 { 0054 return m_managedObjects; 0055 } 0056 0057 #include "moc_objectmanager.cpp"