File indexing completed on 2024-06-09 04:00:40

0001 /*
0002     SPDX-FileCopyrightText: 2010 Rafael Fernández López <ereslibre@kde.org>
0003 
0004     SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0005 */
0006 
0007 #ifndef SOLID_BACKENDS_UDEV_PROCESSOR_H
0008 #define SOLID_BACKENDS_UDEV_PROCESSOR_H
0009 
0010 #include "udevdeviceinterface.h"
0011 #include <solid/devices/ifaces/processor.h>
0012 
0013 namespace Solid
0014 {
0015 namespace Backends
0016 {
0017 namespace UDev
0018 {
0019 class UDevDevice;
0020 
0021 class Processor : public DeviceInterface, virtual public Solid::Ifaces::Processor
0022 {
0023     Q_OBJECT
0024     Q_INTERFACES(Solid::Ifaces::Processor)
0025 
0026 public:
0027     Processor(UDevDevice *device);
0028     ~Processor() override;
0029 
0030     int number() const override;
0031     int maxSpeed() const override;
0032     bool canChangeFrequency() const override;
0033     Solid::Processor::InstructionSets instructionSets() const override;
0034 
0035 private:
0036     enum CanChangeFrequencyEnum {
0037         NotChecked,
0038         CanChangeFreq,
0039         CannotChangeFreq,
0040     };
0041     mutable CanChangeFrequencyEnum m_canChangeFrequency;
0042     mutable int m_maxSpeed;
0043     QString prefix() const;
0044 };
0045 }
0046 }
0047 }
0048 
0049 #endif // SOLID_BACKENDS_UDEV_PROCESSOR_H