Solid
storagedrive.h
Go to the documentation of this file.
00001 /* 00002 Copyright 2006-2007 Kevin Ottens <ervin@kde.org> 00003 00004 This library is free software; you can redistribute it and/or 00005 modify it under the terms of the GNU Lesser General Public 00006 License as published by the Free Software Foundation; either 00007 version 2.1 of the License, or (at your option) version 3, or any 00008 later version accepted by the membership of KDE e.V. (or its 00009 successor approved by the membership of KDE e.V.), which shall 00010 act as a proxy defined in Section 6 of version 3 of the license. 00011 00012 This library is distributed in the hope that it will be useful, 00013 but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00015 Lesser General Public License for more details. 00016 00017 You should have received a copy of the GNU Lesser General Public 00018 License along with this library. If not, see <http://www.gnu.org/licenses/>. 00019 */ 00020 00021 #ifndef SOLID_STORAGEDRIVE_H 00022 #define SOLID_STORAGEDRIVE_H 00023 00024 #include <solid/solid_export.h> 00025 00026 #include <solid/deviceinterface.h> 00027 00028 namespace Solid 00029 { 00030 class StorageDrivePrivate; 00031 class Device; 00032 00039 class SOLID_EXPORT StorageDrive : public DeviceInterface 00040 { 00041 Q_OBJECT 00042 Q_ENUMS(Bus DriveType) 00043 Q_PROPERTY(Bus bus READ bus) 00044 Q_PROPERTY(DriveType driveType READ driveType) 00045 Q_PROPERTY(bool removable READ isRemovable) 00046 Q_PROPERTY(bool hotpluggable READ isHotpluggable) 00047 Q_PROPERTY(bool inUse READ isInUse) 00048 Q_PROPERTY(qulonglong size READ size) 00049 Q_DECLARE_PRIVATE(StorageDrive) 00050 friend class Device; 00051 00052 public: 00063 enum Bus { Ide, Usb, Ieee1394, Scsi, Sata, Platform }; 00064 00078 enum DriveType { HardDisk, CdromDrive, Floppy, Tape, CompactFlash, MemoryStick, SmartMedia, SdMmc, Xd }; 00079 00080 00081 private: 00090 explicit StorageDrive(QObject *backendObject); 00091 00092 public: 00096 virtual ~StorageDrive(); 00097 00098 00105 static Type deviceInterfaceType() { return DeviceInterface::StorageDrive; } 00106 00107 00115 Bus bus() const; 00116 00123 DriveType driveType() const; 00124 00133 bool isRemovable() const; 00134 00141 bool isHotpluggable() const; 00142 00148 qulonglong size() const; 00149 00157 bool isInUse() const; 00158 00159 protected: 00163 StorageDrive(StorageDrivePrivate &dd, QObject *backendObject); 00164 }; 00165 } 00166 00167 #endif // SOLID_STORAGEDRIVE_H
KDE 4.6 API Reference