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 #ifndef MODEMMANAGERQT_FAKE_MODEM_OBJECT_MANAGER_H
0008 #define MODEMMANAGERQT_FAKE_MODEM_OBJECT_MANAGER_H
0009 
0010 #include "generictypes.h"
0011 #include "generictypes_p.h"
0012 
0013 #include <QDBusAbstractAdaptor>
0014 #include <QDBusObjectPath>
0015 
0016 class ObjectManager : public QDBusAbstractAdaptor
0017 {
0018     Q_OBJECT
0019     Q_CLASSINFO("D-Bus Interface", "org.freedesktop.DBus.ObjectManager")
0020 public:
0021     explicit ObjectManager(QObject *parent = nullptr);
0022     ~ObjectManager() override;
0023 
0024     void addInterfaces(const QDBusObjectPath &object_path, const ModemManager::MMVariantMapMap &interfaces_and_properties);
0025     void removeInterfaces(const QDBusObjectPath &object_path, const QStringList &interfaces);
0026 public Q_SLOTS:
0027     Q_SCRIPTABLE ModemManager::DBUSManagerStruct GetManagedObjects();
0028 
0029 Q_SIGNALS:
0030     Q_SCRIPTABLE void InterfacesAdded(const QDBusObjectPath &object_path, const ModemManager::MMVariantMapMap &interfaces_and_properties);
0031     Q_SCRIPTABLE void InterfacesRemoved(const QDBusObjectPath &object_path, const QStringList &interfaces);
0032 
0033 private:
0034     QMap<QDBusObjectPath, ModemManager::MMVariantMapMap> m_managedObjects;
0035 };
0036 
0037 #endif