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