File indexing completed on 2024-05-12 17:00:14

0001 /*
0002     SPDX-FileCopyrightText: 2020 David Redondo <kde@david-redondo.de>
0003 
0004     SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
0005 */
0006 
0007 #ifndef CPU_H
0008 #define CPU_H
0009 
0010 #include <systemstats/SensorObject.h>
0011 
0012 class BaseCpuObject : public KSysGuard::SensorObject {
0013 public:
0014 protected:
0015     BaseCpuObject(const QString &id, const QString &name, KSysGuard::SensorContainer *parent);
0016 
0017     virtual void initialize();
0018     virtual void makeSensors();
0019 
0020     KSysGuard::SensorProperty *m_usage = nullptr;
0021     KSysGuard::SensorProperty *m_system = nullptr;
0022     KSysGuard::SensorProperty *m_user = nullptr;
0023     KSysGuard::SensorProperty *m_wait = nullptr;
0024 };
0025 
0026 class CpuObject : public BaseCpuObject {
0027 public:
0028     CpuObject(const QString &id, const QString &name, KSysGuard::SensorContainer *parent);
0029     void initialize() override;
0030 protected:
0031     void makeSensors() override;
0032 
0033     KSysGuard::SensorProperty *m_frequency = nullptr;
0034     KSysGuard::SensorProperty *m_temperature = nullptr;
0035 };
0036 
0037 class AllCpusObject : public BaseCpuObject {
0038 public:
0039     AllCpusObject(KSysGuard::SensorContainer *parent);
0040     void setCounts(unsigned int cpuCount, unsigned int coreCount);
0041     void initialize() override;
0042 protected:
0043     void makeSensors() override;
0044 
0045     KSysGuard::SensorProperty *m_cpuCount = nullptr;
0046     KSysGuard::SensorProperty *m_coreCount = nullptr;
0047 };
0048 
0049 #endif