File indexing completed on 2024-05-12 05:38:45
0001 /* 0002 SPDX-FileCopyrightText: 2009 Benjamin K. Stuhl <bks24@cornell.edu> 0003 0004 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0005 */ 0006 0007 #pragma once 0008 0009 #include <QList> 0010 #include <QObject> 0011 #include <QString> 0012 #include <QStringList> 0013 #include <QVariant> 0014 0015 namespace UdevQt 0016 { 0017 class DevicePrivate; 0018 class Device 0019 { 0020 public: 0021 Device(); 0022 Device(const Device &other); 0023 ~Device(); 0024 Device &operator=(const Device &other); 0025 0026 bool isValid() const; 0027 QString subsystem() const; 0028 QString devType() const; 0029 QString name() const; 0030 QString sysfsPath() const; 0031 int sysfsNumber() const; 0032 QString driver() const; 0033 QString primaryDeviceFile() const; 0034 QStringList alternateDeviceSymlinks() const; 0035 QStringList deviceProperties() const; 0036 QStringList sysfsProperties() const; 0037 Device parent() const; 0038 0039 // ### should this really be a QVariant? as far as udev knows, everything is a string... 0040 // see also Client::devicesByProperty 0041 QVariant deviceProperty(const QString &name) const; 0042 QString decodedDeviceProperty(const QString &name) const; 0043 QVariant sysfsProperty(const QString &name) const; 0044 Device ancestorOfType(const QString &subsys, const QString &devtype) const; 0045 0046 private: 0047 explicit Device(DevicePrivate *devPrivate); 0048 friend class Client; 0049 friend class ClientPrivate; 0050 0051 DevicePrivate *d; 0052 }; 0053 0054 typedef QList<Device> DeviceList; 0055 0056 }