Prozess.h 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. #ifndef Prozess_H
  2. #define Prozess_H
  3. #include "Betriebssystem.h"
  4. #include "ReferenceCounter.h"
  5. #ifdef WIN32
  6. #pragma comment( lib, "Psapi.lib" )
  7. #endif
  8. namespace Framework
  9. {
  10. #ifdef WIN32
  11. struct MemoryInfo; //! aus dieser Datei
  12. #endif
  13. class Prozess; //! aus dieser Datei
  14. #ifdef WIN32
  15. struct MemoryInfo
  16. {
  17. unsigned long ausgelagerteFehler;
  18. __int64 höchsteAusgelagerterSpeicher;
  19. __int64 ausgelagerterSpeicher;
  20. __int64 höchsterAusgelagerterPool;
  21. __int64 ausgelagerterPool;
  22. __int64 höchsterNichtAusgelagerterPool;
  23. __int64 nichtAusgelagerterPool;
  24. __int64 vorreservierterSpeicher;
  25. __int64 höchsterVorreservierterSpeicher;
  26. };
  27. #endif
  28. //! Diese Klasse findet informationen über einen laufenden Prozess heraus (CPU, MEM)
  29. //! Bei Ubuntu immer der eigene Prozess
  30. class Prozess : public virtual ReferenceCounter
  31. {
  32. private:
  33. #ifdef WIN32
  34. int numProcessors;
  35. ULARGE_INTEGER lastCPU, lastSysCPU, lastUserCPU;
  36. void *pHandle;
  37. #endif
  38. public:
  39. //! Konstruktor
  40. DLLEXPORT Prozess();
  41. //! nicht constant
  42. #ifdef WIN32
  43. //! Setzt den Prozess, der überwacht werden soll (Nur für Windows)
  44. DLLEXPORT void setProcess( void *pHandle );
  45. #endif
  46. //! Gibt den CPU verbrauch des Prozesses zurück
  47. DLLEXPORT double getCPU() const;
  48. //! Gibt den Speicherverbrauch des Prozesses zurück
  49. DLLEXPORT __int64 getMem() const;
  50. #ifdef WIN32
  51. //! Gibt detailierte Informationen über den Speicherverbrauch des Prozesses zurück (Nur für Windows)
  52. DLLEXPORT MemoryInfo getMemInfo() const;
  53. //! Gibt die Anzahl der Threads zurück (Nur für Windows)
  54. DLLEXPORT int getThreadAnzahl() const;
  55. #endif
  56. };
  57. }
  58. #endif