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