Solid
processor.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_PROCESSOR_H 00022 #define SOLID_PROCESSOR_H 00023 00024 #include <solid/solid_export.h> 00025 00026 #include <solid/deviceinterface.h> 00027 00028 namespace Solid 00029 { 00030 class ProcessorPrivate; 00031 class Device; 00032 00036 class SOLID_EXPORT Processor : public DeviceInterface 00037 { 00038 Q_OBJECT 00039 Q_ENUMS(InstructionSet) 00040 Q_FLAGS(InstructionSets) 00041 Q_PROPERTY(int number READ number) 00042 Q_PROPERTY(qulonglong maxSpeed READ maxSpeed) 00043 Q_PROPERTY(bool canChangeFrequency READ canChangeFrequency) 00044 Q_PROPERTY(InstructionSets instructionSets READ instructionSets) 00045 Q_DECLARE_PRIVATE(Processor) 00046 friend class Device; 00047 00048 private: 00057 explicit Processor(QObject *backendObject); 00058 00059 public: 00064 enum InstructionSet { 00065 NoExtensions = 0x0, 00066 IntelMmx = 0x1, 00067 IntelSse = 0x2, 00068 IntelSse2 = 0x4, 00069 IntelSse3 = 0x8, 00070 IntelSse4 = 0x10, 00071 Amd3DNow = 0x20, 00072 AltiVec = 0x40 00073 }; 00074 00075 /* 00076 * The flags for the Extension enum. 00077 */ 00078 Q_DECLARE_FLAGS(InstructionSets, InstructionSet) 00079 00080 00081 00084 virtual ~Processor(); 00085 00092 static Type deviceInterfaceType() { return DeviceInterface::Processor; } 00093 00099 int number() const; 00100 00107 int maxSpeed() const; 00108 00117 bool canChangeFrequency() const; 00118 00125 InstructionSets instructionSets() const; 00126 }; 00127 } 00128 00129 Q_DECLARE_OPERATORS_FOR_FLAGS(Solid::Processor::InstructionSets) 00130 00131 #endif
KDE 4.6 API Reference