#ifndef Prozess_H #define Prozess_H #include "Betriebssystem.h" #include "ReferenceCounter.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 : public virtual ReferenceCounter { private: #ifdef WIN32 int numProcessors; ULARGE_INTEGER lastCPU, lastSysCPU, lastUserCPU; void* pHandle; #endif public: //! Konstruktor DLLEXPORT Prozess(); //! nicht constant #ifdef WIN32 //! Setzt den Prozess, der überwacht werden soll (Nur für Windows) DLLEXPORT void setProcess(void* pHandle); #endif //! Gibt den CPU verbrauch des Prozesses zurück DLLEXPORT double getCPU() const; //! Gibt den Speicherverbrauch des Prozesses zurück DLLEXPORT __int64 getMem() const; #ifdef WIN32 //! Gibt detailierte Informationen über den Speicherverbrauch des //! Prozesses zurück (Nur für Windows) DLLEXPORT MemoryInfo getMemInfo() const; //! Gibt die Anzahl der Threads zurück (Nur für Windows) DLLEXPORT int getThreadAnzahl() const; #endif }; } // namespace Framework #endif