Prozess.h 2.1 KB

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