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

0001 /*
0002     SPDX-FileCopyrightText: 2010 Mario Bensi <mbensi@ipsquad.net>
0003 
0004     SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0005 */
0006 
0007 #ifndef SOLID_BACKENDS_FSTAB_FSTABMANAGER_H
0008 #define SOLID_BACKENDS_FSTAB_FSTABMANAGER_H
0009 
0010 #include <QSet>
0011 #include <QStringList>
0012 #include <solid/deviceinterface.h>
0013 #include <solid/devices/ifaces/devicemanager.h>
0014 
0015 namespace Solid
0016 {
0017 namespace Backends
0018 {
0019 namespace Fstab
0020 {
0021 class AbstractDeviceFactory;
0022 
0023 class FstabManager : public Solid::Ifaces::DeviceManager
0024 {
0025     Q_OBJECT
0026 
0027 public:
0028     explicit FstabManager(QObject *parent);
0029     ~FstabManager() override;
0030 
0031     QString udiPrefix() const override;
0032     QSet<Solid::DeviceInterface::Type> supportedInterfaces() const override;
0033     QStringList allDevices() override;
0034     QStringList devicesFromQuery(const QString &parentUdi, Solid::DeviceInterface::Type type) override;
0035     QObject *createDevice(const QString &udi) override;
0036 
0037 Q_SIGNALS:
0038     void mtabChanged(const QString &device);
0039 
0040 private Q_SLOTS:
0041     void onFstabChanged();
0042     void onMtabChanged();
0043 
0044 private:
0045     QSet<Solid::DeviceInterface::Type> m_supportedInterfaces;
0046     QStringList m_deviceList;
0047     void _k_updateDeviceList();
0048 };
0049 
0050 }
0051 }
0052 }
0053 
0054 #endif