File indexing completed on 2024-05-19 03:56:25
0001 /* 0002 0003 This file is part of the KDE Frameworks 0004 0005 SPDX-FileCopyrightText: 2019 Tobias C. Berner <tcberner@FreeBSD.org> 0006 0007 SPDX-License-Identifier: LGPL-2.1-only 0008 */ 0009 0010 #include "kprocesslist.h" 0011 #include "kprocesslist_unix_procstat_p.h" 0012 0013 #include <QDir> 0014 #include <QProcess> 0015 0016 using namespace KProcessList; 0017 0018 // Determine UNIX processes by using the procstat library 0019 KProcessInfoList KProcessList::processInfoList() 0020 { 0021 KProcessInfoList rc; 0022 0023 ProcStat pstat; 0024 if (!pstat) { 0025 return rc; 0026 } 0027 0028 ProcStatProcesses procs(pstat); 0029 for (const auto &process_info : procs) { 0030 rc.push_back(process_info); 0031 } 0032 0033 return rc; 0034 } 0035 0036 KProcessInfo KProcessList::processInfo(qint64 pid) 0037 { 0038 KProcessInfoList processInfoList = KProcessList::processInfoList(); 0039 auto testProcessIterator = std::find_if(processInfoList.begin(), processInfoList.end(), [pid](const KProcessList::KProcessInfo &info) { 0040 return info.pid() == pid; 0041 }); 0042 return testProcessIterator != processInfoList.end() ? *testProcessIterator : KProcessInfo{}; 0043 }