xref: /haiku/src/apps/activitymonitor/SystemInfo.h (revision b671e9bbdbd10268a042b4f4cc4317ccd03d105e)
1 /*
2  * Copyright 2008, Axel Dörfler, axeld@pinc-software.de. All rights reserved.
3  * Distributed under the terms of the MIT License.
4  */
5 #ifndef SYSTEM_INFO_H
6 #define SYSTEM_INFO_H
7 
8 
9 #include <OS.h>
10 
11 #include <system_info.h>
12 
13 
14 class SystemInfoHandler;
15 
16 
17 class SystemInfo {
18 public:
19 						SystemInfo(SystemInfoHandler* handler = NULL);
20 						~SystemInfo();
21 
22 			uint64		CachedMemory() const;
23 			uint64		UsedMemory() const;
24 			uint64		MaxMemory() const;
25 
26 			uint32		PageFaults() const;
27 
28 			uint64		MaxSwapSpace() const;
29 			uint64		UsedSwapSpace() const;
30 
31 			uint32		UsedSemaphores() const;
32 			uint32		MaxSemaphores() const;
33 
34 			uint32		UsedPorts() const;
35 			uint32		MaxPorts() const;
36 
37 			uint32		UsedThreads() const;
38 			uint32		MaxThreads() const;
39 
40 			uint32		UsedTeams() const;
41 			uint32		MaxTeams() const;
42 
43 			bigtime_t	Time() const { return fTime; }
44 			uint32		CPUCount() const { return fSystemInfo.cpu_count; }
45 			const system_info& Info() const { return fSystemInfo; }
46 
47 			uint64		NetworkReceived();
48 			uint64		NetworkSent();
49 
50 			uint32		UsedRunningApps() const;
51 			uint32		MaxRunningApps() const;
52 
53 			uint32		ClipboardSize() const;
54 			uint32		ClipboardTextSize() const;
55 
56 			uint32		MediaNodes() const;
57 			uint32		MediaConnections() const;	// UNIMPLEMENTED
58 			uint32		MediaBuffers() const;		// UNIMPLEMENTED
59 
60 private:
61 			void		_RetrieveNetwork();
62 
63 	system_info			fSystemInfo;
64 	system_memory_info	fMemoryInfo;
65 	bigtime_t			fTime;
66 	bool				fRetrievedNetwork;
67 	uint64				fBytesReceived;
68 	uint64				fBytesSent;
69 	uint32				fRunningApps;
70 	uint32				fClipboardSize;
71 	uint32				fClipboardTextSize;
72 	uint32				fMediaNodes;
73 	uint32				fMediaConnections;
74 	uint32				fMediaBuffers;
75 };
76 
77 #endif	// SYSTEM_INFO_H
78