summaryrefslogtreecommitdiffstats
path: root/src/Client/InformationManager.cpp
diff options
context:
space:
mode:
authorMatthias Schiffer <matthias@gamezock.de>2009-06-18 22:03:02 +0200
committerMatthias Schiffer <matthias@gamezock.de>2009-06-18 22:03:02 +0200
commit7234fe326d16d6bf9f4374a09ddc6ef790e6723f (patch)
tree437d4c40eeb1e9b34b369e4b82064a1572c7dac9 /src/Client/InformationManager.cpp
parentbf561f8226e97f4ace4f04bddf198175e91ee7f0 (diff)
downloadmad-7234fe326d16d6bf9f4374a09ddc6ef790e6723f.tar
mad-7234fe326d16d6bf9f4374a09ddc6ef790e6723f.zip
Globale Variablen durch Application-Klasse ersetzt
Diffstat (limited to 'src/Client/InformationManager.cpp')
-rw-r--r--src/Client/InformationManager.cpp30
1 files changed, 15 insertions, 15 deletions
diff --git a/src/Client/InformationManager.cpp b/src/Client/InformationManager.cpp
index c5ff9f8..a4a63fb 100644
--- a/src/Client/InformationManager.cpp
+++ b/src/Client/InformationManager.cpp
@@ -18,40 +18,40 @@
*/
#include "InformationManager.h"
+#include "Application.h"
#include "Requests/DaemonListRequest.h"
-#include <Core/Logger.h>
+
#include <Common/RequestManager.h>
namespace Mad {
namespace Client {
-InformationManager InformationManager::informationManager;
-
-
void InformationManager::DaemonStateUpdateRequestHandler::handleRequest(boost::shared_ptr<const Common::XmlPacket> packet, Common::XmlPacket *ret) {
// TODO Require authentication
+ InformationManager *informationManager = dynamic_cast<Application&>(*getApplication()).getInformationManager();
+
{
- boost::lock_guard<boost::mutex> lock(informationManager.mutex);
+ boost::lock_guard<boost::mutex> lock(informationManager->mutex);
- std::map<std::string, Common::HostInfo>::iterator host = informationManager.daemons.find((*packet)["name"]);
- if(host != informationManager.daemons.end())
+ std::map<std::string, Common::HostInfo>::iterator host = informationManager->daemons.find((*packet)["name"]);
+ if(host != informationManager->daemons.end())
host->second.setState((*packet)["state"]);
else
- Core::Logger::log(Core::Logger::WARNING, "Received a state update for an unknown host.");
+ getApplication()->log(Core::LoggerBase::WARNING, "Received a state update for an unknown host.");
}
ret->setType("OK");
}
-void InformationManager::doInit() {
- Common::RequestManager::get()->registerPacketType<DaemonStateUpdateRequestHandler>("UpdateHostState");
+InformationManager::InformationManager(Application *application0) : application(application0), updating(false) {
+ application->getRequestManager()->registerPacketType<DaemonStateUpdateRequestHandler>("UpdateHostState");
}
-void InformationManager::doDeinit() {
- Common::RequestManager::get()->unregisterPacketType("UpdateHostState");
+InformationManager::~InformationManager() {
+ application->getRequestManager()->unregisterPacketType("UpdateHostState");
}
void InformationManager::updateDaemonList(Common::Connection *con) {
@@ -60,10 +60,10 @@ void InformationManager::updateDaemonList(Common::Connection *con) {
if(updating)
return;
- updateRequest = boost::shared_ptr<Requests::DaemonListRequest>(new Requests::DaemonListRequest);
+ updateRequest = boost::shared_ptr<Requests::DaemonListRequest>(new Requests::DaemonListRequest(application));
updateRequest->connectSignalFinished(boost::bind(&InformationManager::daemonListRequestFinished, this, _1, _2));
- Common::RequestManager::get()->sendRequest(con, updateRequest);
+ application->getRequestManager()->sendRequest(con, updateRequest);
updating = true;
}
@@ -72,7 +72,7 @@ void InformationManager::daemonListRequestFinished(boost::shared_ptr<const Commo
boost::lock_guard<boost::mutex> lock(mutex);
if(!packet || error) {
- Core::Logger::logf(Core::Logger::CRITICAL, "Host list request failed: %s", error.strerror().c_str());
+ application->logf(Core::LoggerBase::CRITICAL, "Host list request failed: %s", error.strerror().c_str());
}
else {
const Common::XmlPacket::Element &hostInfo = (*packet)["hosts"];