diff options
Diffstat (limited to 'src/Common/RequestHandlers/FSInfoRequestHandler.cpp')
-rw-r--r-- | src/Common/RequestHandlers/FSInfoRequestHandler.cpp | 57 |
1 files changed, 13 insertions, 44 deletions
diff --git a/src/Common/RequestHandlers/FSInfoRequestHandler.cpp b/src/Common/RequestHandlers/FSInfoRequestHandler.cpp index 845258b..7ac4644 100644 --- a/src/Common/RequestHandlers/FSInfoRequestHandler.cpp +++ b/src/Common/RequestHandlers/FSInfoRequestHandler.cpp @@ -18,62 +18,31 @@ */ #include "FSInfoRequestHandler.h" -#include <Net/Exception.h> -#include "../Logger.h" - -#include <boost/bind.hpp> +#include "../SystemManager.h" namespace Mad { namespace Common { namespace RequestHandlers { -void FSInfoRequestHandler::handlePacket(boost::shared_ptr<const XmlPacket> packet) { - if(packet->getType() != "FSInfo") { - Logger::log(Logger::ERROR, "Received an unexpected packet."); - - XmlPacket ret; - ret.setType("Error"); - ret.add("ErrorCode", Net::Exception::UNEXPECTED_PACKET); - - sendPacket(ret); - - signalFinished(); - return; - } - +void FSInfoRequestHandler::handleRequest(boost::shared_ptr<const Common::XmlPacket> packet _UNUSED_PARAMETER_, Common::XmlPacket *ret) { // TODO Require authentication std::vector<SystemManager::FSInfo> fsInfo; + SystemManager::get()->getFSInfo(&fsInfo); - XmlPacket ret; - - try { - SystemManager::get()->getFSInfo(&fsInfo); - - ret.setType("OK"); - ret.addList("filesystems"); + ret->setType("OK"); + ret->addList("filesystems"); - for(std::vector<SystemManager::FSInfo>::const_iterator fs = fsInfo.begin(); fs != fsInfo.end(); ++fs) { - ret["filesystems"].addEntry(); - XmlPacket::Entry &entry = ret["filesystems"].back(); + for(std::vector<SystemManager::FSInfo>::const_iterator fs = fsInfo.begin(); fs != fsInfo.end(); ++fs) { + (*ret)["filesystems"].addEntry(); + XmlPacket::Entry &entry = (*ret)["filesystems"].back(); - entry.add("name", fs->fsName); - entry.add("mountedOn", fs->mountedOn); - entry.add("totalSize", fs->total); - entry.add("usedSize", fs->used); - entry.add("availableSize", fs->available); - } + entry.add("name", fs->fsName); + entry.add("mountedOn", fs->mountedOn); + entry.add("totalSize", fs->total); + entry.add("usedSize", fs->used); + entry.add("availableSize", fs->available); } - catch(Net::Exception e) { - ret.setType("Error"); - ret.add("ErrorCode", e.getErrorCode()); - ret.add("SubCode", e.getSubCode()); - ret.add("SubSubCode", e.getSubSubCode()); - ret.add("Where", e.getWhere()); - } - - sendPacket(ret); - signalFinished(); } } |