File indexing completed on 2024-04-28 16:49:57
0001 /* 0002 SPDX-FileCopyrightText: 2020 Arjen Hiemstra <ahiemstra@heimr.nl> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #include "read_procsmaps_runnable.h" 0008 0009 #include <QFile> 0010 0011 using namespace KSysGuard; 0012 0013 ReadProcSmapsRunnable::ReadProcSmapsRunnable(const QString &dir) 0014 : QObject() 0015 , m_dir(dir) 0016 { 0017 setAutoDelete(true); 0018 } 0019 0020 void ReadProcSmapsRunnable::run() 0021 { 0022 QFile file{m_dir + QStringLiteral("smaps_rollup")}; 0023 if (!file.open(QIODevice::ReadOnly)) { 0024 return; 0025 } 0026 0027 qulonglong pss = 0LL; 0028 auto buffer = QByteArray{1024, '\0'}; 0029 while (file.readLine(buffer.data(), buffer.size()) > 0) { 0030 if (buffer.startsWith("Pss:")) { 0031 pss += std::stoll(buffer.mid(sizeof("Pss:")).toStdString()); 0032 } 0033 } 0034 0035 file.close(); 0036 0037 Q_EMIT finished(pss); 0038 }