/* SPDX-FileCopyrightText: 2007-2008 Robert Knight SPDX-License-Identifier: GPL-2.0-or-later */ #ifndef UNIXPROCESSINFO_H #define UNIXPROCESSINFO_H #include "ProcessInfo.h" namespace Konsole { /** * Implementation of ProcessInfo for Unix platforms which uses * the /proc filesystem */ class UnixProcessInfo : public ProcessInfo { public: /** * Constructs a new instance of UnixProcessInfo. * See ProcessInfo::newInstance() */ explicit UnixProcessInfo(int pid); protected: /** * Implementation of ProcessInfo::readProcessInfo(); calls the * four private methods below in turn. */ void readProcessInfo(int pid) override; void readUserName(void) override; private: /** * Read the standard process information -- PID, parent PID, foreground PID. * @param pid process ID to use * @return true on success */ virtual bool readProcInfo(int pid) = 0; /** * Determine what arguments were passed to the process. Sets _arguments. * @param pid process ID to use * @return true on success */ virtual bool readArguments(int pid) = 0; }; } #endif