From 02b9e16833acbdaa820bd3b8b64d652a41a8ff58 Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Tue, 23 Jun 2009 18:54:46 +0200 Subject: XmlPacket-Klasse ?berarbeitet --- src/Client/InformationManager.cpp | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) (limited to 'src/Client/InformationManager.cpp') diff --git a/src/Client/InformationManager.cpp b/src/Client/InformationManager.cpp index a4a63fb..a618eb3 100644 --- a/src/Client/InformationManager.cpp +++ b/src/Client/InformationManager.cpp @@ -35,9 +35,9 @@ void InformationManager::DaemonStateUpdateRequestHandler::handleRequest(boost::s { boost::lock_guard lock(informationManager->mutex); - std::map::iterator host = informationManager->daemons.find((*packet)["name"]); + std::map::iterator host = informationManager->daemons.find(packet->get("name")); if(host != informationManager->daemons.end()) - host->second.setState((*packet)["state"]); + host->second.setState(packet->get("state")); else getApplication()->log(Core::LoggerBase::WARNING, "Received a state update for an unknown host."); } @@ -75,17 +75,19 @@ void InformationManager::daemonListRequestFinished(boost::shared_ptrlogf(Core::LoggerBase::CRITICAL, "Host list request failed: %s", error.strerror().c_str()); } else { - const Common::XmlPacket::Element &hostInfo = (*packet)["hosts"]; + const Common::XmlPacket::List *list = packet->getList("hosts"); daemons.clear(); - for(size_t i = 0; i < hostInfo.getSize(); ++i) { - Common::HostInfo info; - info.setName(hostInfo[i]["name"]); - info.setIP(hostInfo[i]["address"]); - info.setState(hostInfo[i]["state"]); + if(list) { + for(Common::XmlPacket::List::const_iterator entry = list->begin(); entry != list->end(); ++entry) { + Common::HostInfo info; + info.setName(entry->get("name")); + info.setIP(entry->get("address")); + info.setState(entry->get("state")); - daemons.insert(std::make_pair(info.getName(), info)); + daemons.insert(std::make_pair(info.getName(), info)); + } } } -- cgit v1.2.3