• Skip to content
  • Skip to link menu
  • KDE API Reference
  • kdelibs-4.14.38 API Reference
  • KDE Home
  • Contact Us
 

Solid

  • solid
  • solid
storagedrive.cpp
Go to the documentation of this file.
1/*
2 Copyright 2006-2007 Kevin Ottens <ervin@kde.org>
3
4 This library is free software; you can redistribute it and/or
5 modify it under the terms of the GNU Lesser General Public
6 License as published by the Free Software Foundation; either
7 version 2.1 of the License, or (at your option) version 3, or any
8 later version accepted by the membership of KDE e.V. (or its
9 successor approved by the membership of KDE e.V.), which shall
10 act as a proxy defined in Section 6 of version 3 of the license.
11
12 This library is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 Lesser General Public License for more details.
16
17 You should have received a copy of the GNU Lesser General Public
18 License along with this library. If not, see <http://www.gnu.org/licenses/>.
19*/
20
21#include "storagedrive.h"
22#include "storagedrive_p.h"
23
24#include "soliddefs_p.h"
25#include <solid/ifaces/storagedrive.h>
26#include "predicate.h"
27#include "storageaccess.h"
28#include "device.h"
29#include "device_p.h"
30
31Solid::StorageDrive::StorageDrive(QObject *backendObject)
32 : DeviceInterface(*new StorageDrivePrivate(), backendObject)
33{
34}
35
36Solid::StorageDrive::StorageDrive(StorageDrivePrivate &dd, QObject *backendObject)
37 : DeviceInterface(dd, backendObject)
38{
39
40}
41
42Solid::StorageDrive::~StorageDrive()
43{
44
45}
46
47Solid::StorageDrive::Bus Solid::StorageDrive::bus() const
48{
49 Q_D(const StorageDrive);
50 return_SOLID_CALL(Ifaces::StorageDrive *, d->backendObject(), Platform, bus());
51}
52
53Solid::StorageDrive::DriveType Solid::StorageDrive::driveType() const
54{
55 Q_D(const StorageDrive);
56 return_SOLID_CALL(Ifaces::StorageDrive *, d->backendObject(), HardDisk, driveType());
57}
58
59bool Solid::StorageDrive::isRemovable() const
60{
61 Q_D(const StorageDrive);
62 return_SOLID_CALL(Ifaces::StorageDrive *, d->backendObject(), false, isRemovable());
63}
64
65bool Solid::StorageDrive::isHotpluggable() const
66{
67 Q_D(const StorageDrive);
68 return_SOLID_CALL(Ifaces::StorageDrive *, d->backendObject(), false, isHotpluggable());
69}
70
71qulonglong Solid::StorageDrive::size() const
72{
73 Q_D(const StorageDrive);
74 return_SOLID_CALL(Ifaces::StorageDrive *, d->backendObject(), false, size());
75}
76
77bool Solid::StorageDrive::isInUse() const
78{
79 Q_D(const StorageDrive);
80 Predicate p(DeviceInterface::StorageAccess);
81 QList<Device> devices = Device::listFromQuery(p, d->devicePrivate()->udi());
82
83 bool inUse = false;
84 foreach (const Device &dev, devices) {
85 if (dev.is<Solid::StorageAccess>()) {
86 const Solid::StorageAccess* access = dev.as<Solid::StorageAccess>();
87 inUse |= (access->isAccessible());
88 }
89 }
90 return inUse;
91}
92
93#include "storagedrive.moc"
94
QObject
Solid::DeviceInterface
Base class of all the device interfaces.
Definition: deviceinterface.h:43
Solid::DeviceInterface::StorageDrive
@ StorageDrive
Definition: deviceinterface.h:68
Solid::DeviceInterface::StorageAccess
@ StorageAccess
Definition: deviceinterface.h:68
Solid::Device
This class allows applications to deal with devices available in the underlying system.
Definition: device.h:49
Solid::Device::is
bool is() const
Tests if a device provides a given device interface.
Definition: device.h:263
Solid::Device::listFromQuery
static QList< Device > listFromQuery(const Predicate &predicate, const QString &parentUdi=QString())
Retrieves a list of devices of the system given matching the given constraints (parent and predicate)
Definition: devicemanager.cpp:122
Solid::Device::as
DevIface * as()
Retrieves a specialized interface to interact with the device corresponding to a given device interfa...
Definition: device.h:238
Solid::Predicate
This class implements predicates for devices.
Definition: predicate.h:46
Solid::StorageAccess
This device interface is available on volume devices to access them (i.e.
Definition: storageaccess.h:43
Solid::StorageAccess::isAccessible
bool isAccessible() const
Indicates if this volume is mounted.
Definition: storageaccess.cpp:65
Solid::StorageDrivePrivate
Definition: storagedrive_p.h:29
Solid::StorageDrive
This device interface is available on storage devices.
Definition: storagedrive.h:40
Solid::StorageDrive::isInUse
bool isInUse() const
Indicates if the storage device is currently in use i.e.
Definition: storagedrive.cpp:77
Solid::StorageDrive::bus
Bus bus
Definition: storagedrive.h:43
Solid::StorageDrive::size
qulonglong size
Definition: storagedrive.h:48
Solid::StorageDrive::isHotpluggable
bool isHotpluggable() const
Indicates if this storage device can be plugged or unplugged while the computer is running.
Definition: storagedrive.cpp:65
Solid::StorageDrive::DriveType
DriveType
This enum type defines the type of drive a storage device can be.
Definition: storagedrive.h:78
Solid::StorageDrive::isRemovable
bool isRemovable() const
Indicates if the media contained by this drive can be removed.
Definition: storagedrive.cpp:59
Solid::StorageDrive::driveType
DriveType driveType
Definition: storagedrive.h:44
Solid::StorageDrive::Bus
Bus
This enum type defines the type of bus a storage device is attached to.
Definition: storagedrive.h:63
Solid::StorageDrive::~StorageDrive
virtual ~StorageDrive()
Destroys a StorageDrive object.
Definition: storagedrive.cpp:42
device.h
device_p.h
predicate.h
soliddefs_p.h
return_SOLID_CALL
#define return_SOLID_CALL(Type, Object, Default, Method)
Definition: soliddefs_p.h:26
storageaccess.h
storagedrive.h
storagedrive_p.h
This file is part of the KDE documentation.
Documentation copyright © 1996-2023 The KDE developers.
Generated on Mon Feb 20 2023 00:00:00 by doxygen 1.9.6 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

Solid

Skip menu "Solid"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Related Pages

kdelibs-4.14.38 API Reference

Skip menu "kdelibs-4.14.38 API Reference"
  • DNSSD
  • Interfaces
  •   KHexEdit
  •   KMediaPlayer
  •   KSpeech
  •   KTextEditor
  • kconf_update
  • KDE3Support
  •   KUnitTest
  • KDECore
  • KDED
  • KDEsu
  • KDEUI
  • KDEWebKit
  • KDocTools
  • KFile
  • KHTML
  • KImgIO
  • KInit
  • kio
  • KIOSlave
  • KJS
  •   KJS-API
  •   WTF
  • kjsembed
  • KNewStuff
  • KParts
  • KPty
  • Kross
  • KUnitConversion
  • KUtils
  • Nepomuk
  • Plasma
  • Solid
  • Sonnet
  • ThreadWeaver
Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal