File indexing completed on 2024-05-12 04:01:50
0001 /* 0002 SPDX-FileCopyrightText: 2005-2007 Kevin Ottens <ervin@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0005 */ 0006 0007 #ifndef SOLID_DEVICE_P_H 0008 #define SOLID_DEVICE_P_H 0009 0010 #include <QMap> 0011 #include <QObject> 0012 #include <QPointer> 0013 #include <QSharedData> 0014 0015 #include <ifaces/device.h> 0016 0017 #if defined(Q_OS_WIN32) 0018 #undef interface 0019 #endif 0020 0021 namespace Solid 0022 { 0023 class DevicePrivate : public QObject, public QSharedData 0024 { 0025 Q_OBJECT 0026 public: 0027 explicit DevicePrivate(const QString &udi); 0028 ~DevicePrivate() override; 0029 0030 QString udi() const 0031 { 0032 return m_udi; 0033 } 0034 0035 Ifaces::Device *backendObject() const 0036 { 0037 return m_backendObject.data(); 0038 } 0039 void setBackendObject(Ifaces::Device *object); 0040 0041 DeviceInterface *interface(const DeviceInterface::Type &type) const; 0042 void setInterface(const DeviceInterface::Type &type, DeviceInterface *interface); 0043 0044 public Q_SLOTS: 0045 void _k_destroyed(QObject *object); 0046 0047 private: 0048 QString m_udi; 0049 QPointer<Ifaces::Device> m_backendObject; 0050 QMap<DeviceInterface::Type, QPointer<DeviceInterface>> m_ifaces; 0051 }; 0052 } 0053 0054 #endif