You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					41 lines
				
				966 B
			
		
		
			
		
	
	
					41 lines
				
				966 B
			| 
											4 years ago
										 | #include <optional>
 | ||
|  | #include <string>
 | ||
|  | #include <unordered_map>
 | ||
|  | #include <vector>
 | ||
|  | 
 | ||
|  | #include "cereal/messaging/messaging.h"
 | ||
|  | 
 | ||
|  | struct CPUTime {
 | ||
|  |   int id;
 | ||
|  |   unsigned long utime, ntime, stime, itime;
 | ||
|  |   unsigned long iowtime, irqtime, sirqtime;
 | ||
|  | };
 | ||
|  | 
 | ||
|  | struct ProcCache {
 | ||
|  |   int pid;
 | ||
|  |   std::string name, exe;
 | ||
|  |   std::vector<std::string> cmdline;
 | ||
|  | };
 | ||
|  | 
 | ||
|  | struct ProcStat {
 | ||
|  |   int pid, ppid, processor;
 | ||
|  |   char state;
 | ||
|  |   long cutime, cstime, priority, nice, num_threads;
 | ||
|  |   unsigned long utime, stime, vms, rss;
 | ||
|  |   unsigned long long starttime;
 | ||
|  |   std::string name;
 | ||
|  | };
 | ||
|  | 
 | ||
|  | namespace Parser {
 | ||
|  | 
 | ||
|  | std::vector<int> pids();
 | ||
|  | std::optional<ProcStat> procStat(std::string stat);
 | ||
|  | std::vector<std::string> cmdline(std::istream &stream);
 | ||
|  | std::vector<CPUTime> cpuTimes(std::istream &stream);
 | ||
|  | std::unordered_map<std::string, uint64_t> memInfo(std::istream &stream);
 | ||
|  | const ProcCache &getProcExtraInfo(int pid, const std::string &name);
 | ||
|  | 
 | ||
|  | };  // namespace Parser
 | ||
|  | 
 | ||
|  | void buildProcLogMessage(MessageBuilder &msg);
 |