diff options
author | Matthias Schiffer <matthias@gamezock.de> | 2009-06-18 22:03:02 +0200 |
---|---|---|
committer | Matthias Schiffer <matthias@gamezock.de> | 2009-06-18 22:03:02 +0200 |
commit | 7234fe326d16d6bf9f4374a09ddc6ef790e6723f (patch) | |
tree | 437d4c40eeb1e9b34b369e4b82064a1572c7dac9 /src/Client/InformationManager.cpp | |
parent | bf561f8226e97f4ace4f04bddf198175e91ee7f0 (diff) | |
download | mad-7234fe326d16d6bf9f4374a09ddc6ef790e6723f.tar mad-7234fe326d16d6bf9f4374a09ddc6ef790e6723f.zip |
Globale Variablen durch Application-Klasse ersetzt
Diffstat (limited to 'src/Client/InformationManager.cpp')
-rw-r--r-- | src/Client/InformationManager.cpp | 30 |
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"]; |