File indexing completed on 2024-05-12 04:01:48

0001 /*
0002     SPDX-FileCopyrightText: 2010 Michael Zanetti <mzanetti@kde.org>
0003     SPDX-FileCopyrightText: 2010 Lukas Tinkl <ltinkl@redhat.com>
0004 
0005     SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0006 
0007 */
0008 
0009 #ifndef UPOWERMANAGER_H
0010 #define UPOWERMANAGER_H
0011 
0012 #include "solid/devices/ifaces/devicemanager.h"
0013 #include "upowerdbusinterface.h"
0014 
0015 #include <QSet>
0016 
0017 namespace Solid
0018 {
0019 namespace Backends
0020 {
0021 namespace UPower
0022 {
0023 class UPowerManager : public Solid::Ifaces::DeviceManager
0024 {
0025     Q_OBJECT
0026 
0027 public:
0028     UPowerManager(QObject *parent);
0029     ~UPowerManager() override;
0030     QObject *createDevice(const QString &udi) override;
0031     QStringList devicesFromQuery(const QString &parentUdi, Solid::DeviceInterface::Type type) override;
0032     QStringList allDevices() override;
0033     QSet<Solid::DeviceInterface::Type> supportedInterfaces() const override;
0034     QString udiPrefix() const override;
0035 
0036 private Q_SLOTS:
0037     void onDeviceAdded(const QDBusObjectPath &path);
0038     void onDeviceRemoved(const QDBusObjectPath &path);
0039 
0040 private:
0041     QSet<Solid::DeviceInterface::Type> m_supportedInterfaces;
0042     UPower::DBusInterface m_manager;
0043     QStringList m_knownDevices;
0044 };
0045 
0046 }
0047 }
0048 }
0049 #endif // UPOWERMANAGER_H