#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 hoechsteAusgelagerterSpeicher; __int64 ausgelagerterSpeicher; __int64 hoechsterAusgelagerterPool; __int64 ausgelagerterPool; __int64 hoechsterNichtAusgelagerterPool; __int64 nichtAusgelagerterPool; __int64 vorreservierterSpeicher; __int64 hoechsterVorreservierterSpeicher; }; #endif //! Diese Klasse findet informationen ueber 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 ueberwacht werden soll (Nur fuer Windows) DLLEXPORT void setProcess(void* pHandle); #endif //! Gibt den CPU verbrauch des Prozesses zurueck DLLEXPORT double getCPU() const; //! Gibt den Speicherverbrauch des Prozesses zurueck DLLEXPORT __int64 getMem() const; #ifdef WIN32 //! Gibt detailierte Informationen ueber den Speicherverbrauch des //! Prozesses zurueck (Nur fuer Windows) DLLEXPORT MemoryInfo getMemInfo() const; //! Gibt die Anzahl der Threads zurueck (Nur fuer Windows) DLLEXPORT int getThreadAnzahl() const; #endif }; } // namespace Framework #endif