00001
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #ifndef __Processes_h
00030 #define __Processes_h
00031
00032 #if HAVE_CONFIG_H
00033 #include "config.h"
00034 #endif
00035
00036 #include <string>
00037 #include <map>
00038 #include <boost/shared_ptr.hpp>
00039 #include <boost/thread/mutex.hpp>
00040
00042
00044
00045 namespace Gizmod {
00046
00048
00050
00055 class Process {
00056 public:
00057
00058 std::string Name;
00059 unsigned int PID;
00060 std::string State;
00061
00062
00063
00064
00065 Process();
00066 virtual ~Process();
00067
00068 private:
00069
00070
00071
00072 };
00073
00075
00077
00082 class Processes {
00083 public:
00084
00085
00086
00087 Processes();
00088 virtual ~Processes();
00089
00090
00091 static int isProcessRunning(std::string ProcessName);
00092 static void setTimeBetweenUpdates(float Seconds);
00093 static void updateProcessTree();
00094
00095 private:
00096
00097
00098
00099 static unsigned long mLastUpdateTime;
00100 static unsigned long mMsBetweenUpdates;
00101 static boost::mutex mMutexUpdate;
00102 static std::map< std::string, boost::shared_ptr<Process> > mProcesses;
00103 };
00104
00106
00107 }
00108
00109 #endif // __Processes_h