summaryrefslogtreecommitdiffstats
path: root/src/Client/InformationManager.h
diff options
context:
space:
mode:
authorMatthias Schiffer <matthias@gamezock.de>2008-11-17 08:25:02 +0100
committerMatthias Schiffer <matthias@gamezock.de>2008-11-17 08:25:02 +0100
commit62ca019532b28527facf6ab133742c2a190f15d6 (patch)
tree2b02963ed8a8a0d21dbe42885c2e284d3c60620c /src/Client/InformationManager.h
parent2b83ae7c71dc706fb4fd7b4efc4a8ffee8dfe522 (diff)
downloadmad-62ca019532b28527facf6ab133742c2a190f15d6.tar
mad-62ca019532b28527facf6ab133742c2a190f15d6.zip
Configurable von Initializable ableiten; InformationManager ist jetzt auch ein Initializable
Diffstat (limited to 'src/Client/InformationManager.h')
-rw-r--r--src/Client/InformationManager.h26
1 files changed, 14 insertions, 12 deletions
diff --git a/src/Client/InformationManager.h b/src/Client/InformationManager.h
index bf2d67a..739c359 100644
--- a/src/Client/InformationManager.h
+++ b/src/Client/InformationManager.h
@@ -24,6 +24,7 @@
#include <memory>
#include <Common/HostInfo.h>
+#include <Common/Initializable.h>
#include <Common/Request.h>
namespace Mad {
@@ -39,7 +40,7 @@ class HostListPacket;
namespace Client {
-class InformationManager {
+class InformationManager : public Common::Initializable {
private:
class DaemonStateUpdateRequest : public Common::RequestHandler {
protected:
@@ -49,32 +50,33 @@ class InformationManager {
DaemonStateUpdateRequest() {}
};
- static std::auto_ptr<InformationManager> informationManager;
+ static InformationManager informationManager;
std::map<std::string, Common::HostInfo> daemons;
- bool initFinished;
+
+ bool updating;
// Prevent shallow copy
InformationManager(const InformationManager &o);
InformationManager& operator=(const InformationManager &o);
- InformationManager(Net::Connection *connection);
+ InformationManager() : updating(false) {}
void daemonListRequestFinished(const Common::Request<Net::Packets::HostListPacket> &request);
- public:
- ~InformationManager();
+ protected:
+ virtual void doInit();
+ virtual void doUninit();
+ public:
static InformationManager* getInformationManager() {
- return informationManager.get();
+ return &informationManager;
}
- static void init(Net::Connection *connection) {
- informationManager = std::auto_ptr<InformationManager>(new InformationManager(connection));
- }
+ void updateDaemonList(Net::Connection *con);
- bool isInitialised() const {
- return initFinished;
+ bool isUpdating() const {
+ return updating;
}
const std::map<std::string, Common::HostInfo>& getDaemons() const {