#ifndef Prozess_H #define Prozess_H #include "Betriebssystem.h" #ifdef WIN32 #pragma comment( lib, "Psapi.lib" ) #endif namespace Framework { #ifdef WIN32 struct MemoryInfo; //! aus dieser Datei #endif class Prozess; //! aus dieser Datei #ifdef WIN32 struct MemoryInfo { unsigned long ausgelagerteFehler; __int64 höchsteAusgelagerterSpeicher; __int64 ausgelagerterSpeicher; __int64 höchsterAusgelagerterPool; __int64 ausgelagerterPool; __int64 höchsterNichtAusgelagerterPool; __int64 nichtAusgelagerterPool; __int64 vorreservierterSpeicher; __int64 höchsterVorreservierterSpeicher; }; #endif //! Diese Klasse findet informationen über einen laufenden Prozess heraus (CPU, MEM) //! Bei Ubuntu immer der eigene Prozess class Prozess { private: #ifdef WIN32 int numProcessors; ULARGE_INTEGER lastCPU, lastSysCPU, lastUserCPU; void *pHandle; #endif int ref; public: //! Konstruktor __declspec( dllexport ) Prozess(); //! nicht constant #ifdef WIN32 //! Setzt den Prozess, der überwacht werden soll (Nur für Windows) __declspec( dllexport ) void setProcess( void *pHandle ); #endif //! Gibt den CPU verbrauch des Prozesses zurück __declspec( dllexport ) double getCPU() const; //! Gibt den Speicherverbrauch des Prozesses zurück __declspec( dllexport ) __int64 getMem() const; #ifdef WIN32 //! Gibt detailierte Informationen über den Speicherverbrauch des Prozesses zurück (Nur für Windows) __declspec( dllexport ) MemoryInfo getMemInfo() const; //! Gibt die Anzahl der Threads zurück (Nur für Windows) __declspec( dllexport ) int getThreadAnzahl() const; #endif //! Erhöht den Reference Counting Zähler. //! \return this. __declspec( dllexport ) Prozess *getThis(); //! Verringert den Reference Counting Zähler. Wenn der Zähler 0 erreicht, wird das Zeichnung automatisch gelöscht. //! \return 0. __declspec( dllexport ) Prozess *release(); }; } #endif