From 6c668279df7d812bb8fa26ac67e837c51276ffae Mon Sep 17 00:00:00 2001 From: Pino Toscano Date: Sat, 5 Oct 2024 03:39:06 +0200 Subject: [PATCH] AppStatisticMonitor: add empty data provider for non-implemented OSes Add a NullDataProvider to support building & running on OSes that do not have an actual data provider implemented (currently Linux, Windows, macOS). Limit also the instantiation of a LinuxDataProvider to Linux, as that data provider is built only on Linux. Change-Id: Ia9bea9e6d76ee6558efe62e16a9fcf559ab0a4d7 Reviewed-by: Artem Sokolovskii --- .../appstatisticsmonitor/idataprovider.cpp | 24 ++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/src/plugins/appstatisticsmonitor/idataprovider.cpp b/src/plugins/appstatisticsmonitor/idataprovider.cpp index 23d443c76e2..0d5d8a2fe8c 100644 --- a/src/plugins/appstatisticsmonitor/idataprovider.cpp +++ b/src/plugins/appstatisticsmonitor/idataprovider.cpp @@ -329,14 +329,36 @@ private: }; #endif +// ------------------------- NullDataProvider -------------------------------- + +class NullDataProvider : public IDataProvider +{ +public: + NullDataProvider(qint64 pid, QObject *parent = nullptr) + : IDataProvider(pid, parent) + {} + + double getCpuConsumption() + { + return 0.0; + } + + double getMemoryConsumption() + { + return 0.0; + } +}; + IDataProvider *createDataProvider(qint64 pid) { #ifdef Q_OS_WIN return new WindowsDataProvider(pid); #elif defined(Q_OS_MACOS) return new MacDataProvider(pid); -#else // Q_OS_LINUX +#elif defined(Q_OS_LINUX) return new LinuxDataProvider(pid); +#else + return new NullDataProvider(pid); #endif }