File indexing completed on 2024-05-19 05:30:18
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 FREEBSDCPU_H 0008 #define FREEBSDCPU_H 0009 0010 #include "cpu.h" 0011 #include "cpuplugin_p.h" 0012 #include "usagecomputer.h" 0013 0014 namespace KSysGuard { 0015 template <typename T> 0016 class SysctlSensor; 0017 } 0018 class LoadAverages; 0019 0020 class FreeBsdCpuObject : public CpuObject { 0021 public: 0022 FreeBsdCpuObject(int cpuNumber, const QString &name, KSysGuard::SensorContainer *parent); 0023 void update(long system, long user, long idle); 0024 void initialize() override; 0025 private: 0026 void makeSensors() override; 0027 0028 UsageComputer m_usageComputer; 0029 const QByteArray m_sysctlPrefix; // "dev.cpu.<n>" 0030 }; 0031 0032 class FreeBsdAllCpusObject : public AllCpusObject { 0033 public: 0034 using AllCpusObject::AllCpusObject; 0035 void update(long system, long user, long idle); 0036 private: 0037 UsageComputer m_usageComputer; 0038 }; 0039 0040 class FreeBsdCpuPluginPrivate : public CpuPluginPrivate { 0041 public: 0042 FreeBsdCpuPluginPrivate(CpuPlugin *q); 0043 void update() override; 0044 private: 0045 FreeBsdAllCpusObject *m_allCpus; 0046 QList<FreeBsdCpuObject *> m_cpus; 0047 LoadAverages *m_loadAverages; 0048 }; 0049 0050 #endif