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.
		
		
		
		
		
			
		
			
				
					
					
						
							40 lines
						
					
					
						
							966 B
						
					
					
				
			
		
		
	
	
							40 lines
						
					
					
						
							966 B
						
					
					
				| #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, rss;
 | |
|   unsigned long utime, stime, vms;
 | |
|   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);
 | |
| 
 |