1 /* 2 SPDX-FileCopyrightText: 2017 René J.V. Bertin <rjvbertin@gmail.com> 3 4 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 5 */ 6 7 #ifndef SOLID_BACKENDS_IOKIT_VOLUME_H 8 #define SOLID_BACKENDS_IOKIT_VOLUME_H 9 10 #include "dadictionary_p.h" 11 #include "iokitblock.h" 12 #include <solid/devices/ifaces/storagevolume.h> 13 14 #include <DiskArbitration/DiskArbitration.h> 15 16 namespace Solid 17 { 18 namespace Backends 19 { 20 namespace IOKit 21 { 22 class IOKitVolume : public Block, virtual public Solid::Ifaces::StorageVolume 23 { 24 Q_OBJECT 25 Q_INTERFACES(Solid::Ifaces::StorageVolume) 26 27 public: 28 IOKitVolume(IOKitDevice *device); 29 IOKitVolume(const IOKitDevice *device); 30 virtual ~IOKitVolume(); 31 32 bool isIgnored() const override; 33 Solid::StorageVolume::UsageType usage() const override; 34 QString fsType() const override; 35 QString label() const override; 36 QString uuid() const override; 37 qulonglong size() const override; 38 QString encryptedContainerUdi() const override; 39 40 QString vendor() const; 41 QString product() const; 42 QString description() const; 43 44 DADiskRef daRef() const; 45 46 private: 47 DADictionary *daDict; 48 }; 49 } 50 } 51 } 52 53 #endif // SOLID_BACKENDS_IOKIT_VOLUME_H 54