diff options
Diffstat (limited to 'src/Common/SystemManager.h')
-rw-r--r-- | src/Common/SystemManager.h | 28 |
1 files changed, 13 insertions, 15 deletions
diff --git a/src/Common/SystemManager.h b/src/Common/SystemManager.h index 20d3c05..ef66db8 100644 --- a/src/Common/SystemManager.h +++ b/src/Common/SystemManager.h @@ -24,7 +24,7 @@ #include <string> #include <vector> -#include <boost/function.hpp> +#include <boost/smart_ptr.hpp> namespace Mad { namespace Common { @@ -34,12 +34,14 @@ class SystemBackend; class SystemManager { private: struct Compare { - bool operator() (const SystemBackend *b1, const SystemBackend *b2); + bool operator() (boost::shared_ptr<SystemBackend> b1, boost::shared_ptr<SystemBackend> b2); }; static SystemManager systemManager; - std::set<SystemBackend*, Compare> backends; + std::set<boost::shared_ptr<SystemBackend>, Compare> backends; + + SystemManager() {} public: struct FSInfo { @@ -50,26 +52,22 @@ class SystemManager { long long available; }; - private: - SystemManager() {} - - public: - void registerBackend(SystemBackend *backend) { + void registerBackend(boost::shared_ptr<SystemBackend> backend) { backends.insert(backend); } - void unregisterBackend(SystemBackend *backend) { + void unregisterBackend(boost::shared_ptr<SystemBackend> backend) { backends.erase(backend); } - bool getUptimeInfo(const boost::function2<void, unsigned long, unsigned long> &callback); - bool getMemoryInfo(const boost::function4<void, unsigned long, unsigned long, unsigned long, unsigned long> &callback); - bool getLoadInfo(const boost::function5<void, unsigned long, unsigned long, float, float, float> &callback); + bool getUptimeInfo(unsigned long *uptime, unsigned long *idleTime); + bool getMemoryInfo(unsigned long *totalMem, unsigned long *freeMem, unsigned long *totalSwap, unsigned long *freeSwap); + bool getLoadInfo(unsigned long *currentLoad, unsigned long *nProcesses, float *loadAvg1, float *loadAvg5, float *loadAvg15); - bool getFSInfo(const boost::function1<void, const std::vector<FSInfo>& > &callback); + bool getFSInfo(std::vector<FSInfo> *fsInfo); - bool shutdown(const boost::function0<void> &callback); - bool reboot(const boost::function0<void> &callback); + bool shutdown(); + bool reboot(); static SystemManager *get() { return &systemManager; |