summaryrefslogtreecommitdiffstats
path: root/src/Client/SystemCommands.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/Client/SystemCommands.cpp')
-rw-r--r--src/Client/SystemCommands.cpp78
1 files changed, 43 insertions, 35 deletions
diff --git a/src/Client/SystemCommands.cpp b/src/Client/SystemCommands.cpp
index 5b2d4e5..6c0f91d 100644
--- a/src/Client/SystemCommands.cpp
+++ b/src/Client/SystemCommands.cpp
@@ -40,53 +40,53 @@ void SystemCommands::printFSInfo(boost::shared_ptr<const Common::XmlPacket> &pac
"kB", "MB", "GB", "TB", ""
};
- for(size_t i = 0; i < (*packet)["filesystems"].getSize(); ++i) {
- const Common::XmlPacket::Entry &fs = (*packet)["filesystems"][i];
+ const Common::XmlPacket::List *list = packet->getList("filesystems");
- unsigned usedUnit = 0, totalUnit = 0;
+ if(list) {
+ for(Common::XmlPacket::List::const_iterator fs = list->begin(); fs != list->end(); ++fs) {
+ unsigned usedUnit = 0, totalUnit = 0;
- float used = fs["usedSize"];
- float total = fs["totalSize"];
- float available = fs["availableSize"];
+ float used = fs->get<float>("usedSize");
+ float total = fs->get<float>("totalSize");
+ float available = fs->get<float>("availableSize");
- while(used >= 1024 && !units[usedUnit+1].empty()) {
- ++usedUnit;
- used /= 1024;
- available /= 1024;
- }
+ while(used >= 1024 && !units[usedUnit+1].empty()) {
+ ++usedUnit;
+ used /= 1024;
+ available /= 1024;
+ }
- while(total >= 1024 && !units[totalUnit+1].empty()) {
- ++totalUnit;
- total /= 1024;
- }
+ while(total >= 1024 && !units[totalUnit+1].empty()) {
+ ++totalUnit;
+ total /= 1024;
+ }
- std::string name = fs["name"];
- std::string mountedOn = fs["mountedOn"];
+ std::string name = fs->get<const std::string&>("name");
+ std::string mountedOn = fs->get<const std::string&>("mountedOn");
- std::string nameString = mountedOn + " (" + name + ")";
+ std::string nameString = mountedOn + " (" + name + ")";
- if(nameString.length() < 32) {
- nameString.resize(32, ' ');
- }
- else {
- nameString += "\n\t";
- nameString.resize(nameString.length() + 32, ' ');
- }
+ if(nameString.length() < 32) {
+ nameString.resize(32, ' ');
+ }
+ else {
+ nameString += "\n\t";
+ nameString.resize(nameString.length() + 32, ' ');
+ }
- std::printf("\t%s%.*f%s", nameString.c_str(), (used < 10) ? 2 : 1, used, (usedUnit == totalUnit) ? "" : (" " + units[usedUnit]).c_str());
- std::printf("/%.*f %s (%.1f%%)\n", (total < 10) ? 2 : 1, total, units[totalUnit].c_str(), std::min(100*used/(used+available), 100.0f));
+ std::printf("\t%s%.*f%s", nameString.c_str(), (used < 10) ? 2 : 1, used, (usedUnit == totalUnit) ? "" : (" " + units[usedUnit]).c_str());
+ std::printf("/%.*f %s (%.1f%%)\n", (total < 10) ? 2 : 1, total, units[totalUnit].c_str(), std::min(100*used/(used+available), 100.0f));
+ }
}
std::printf("\n");
}
void SystemCommands::printHostStatus(boost::shared_ptr<const Common::XmlPacket> &packet) {
- unsigned long uptime = (*packet)["uptime"];
+ unsigned long uptime = packet->get<unsigned long>("uptime");
if(uptime) {
- unsigned long uptime = (*packet)["uptime"];
-
unsigned long days = uptime/86400;
unsigned long hours = (uptime%86400)/3600;
unsigned long minutes = (uptime%3600)/60;
@@ -97,18 +97,23 @@ void SystemCommands::printHostStatus(boost::shared_ptr<const Common::XmlPacket>
std::printf("%lu:%02lu", hours, minutes);
- std::printf(" (load average: %.2f %.2f %.2f, %lu processes)", (float)(*packet)["loadAvg1"], (float)(*packet)["loadAvg5"], (float)(*packet)["loadAvg15"], (unsigned long)(*packet)["nProcesses"]);
+ std::printf(" (load average: %.2f %.2f %.2f, %lu processes)",
+ packet->get<float>("loadAvg1"), packet->get<float>("loadAvg5"),
+ packet->get<float>("loadAvg15"), packet->get<unsigned long>("nProcesses"));
std::printf("\n\n");
}
- if((unsigned long)(*packet)["totalMem"] && (unsigned long)(*packet)["freeMem"]) {
+ float totalMem = packet->get<unsigned long>("totalMem");
+ float freeMem = packet->get<unsigned long>("freeMem");
+
+ if(totalMem && freeMem) {
const std::string units[] = {
"kB", "MB", "GB", "TB", ""
};
unsigned unit = 0;
- float totalMem = (*packet)["totalMem"], usedMem = totalMem-(float)(*packet)["freeMem"];
+ float usedMem = totalMem-freeMem;
while(totalMem >= 1024 && !units[unit+1].empty()) {
++unit;
@@ -119,9 +124,12 @@ void SystemCommands::printHostStatus(boost::shared_ptr<const Common::XmlPacket>
std::printf("\tMemory usage:\t%.*f/%.*f %s", (usedMem < 10) ? 2 : 1, usedMem, (totalMem < 10) ? 2 : 1, totalMem, units[unit].c_str());
std::printf(" (%.1f%%)\n", usedMem*100.0f/totalMem);
- if((unsigned long)(*packet)["totalSwap"] && (unsigned long)(*packet)["freeSwap"]) {
+ totalMem = packet->get<unsigned long>("totalSwap");
+ freeMem = packet->get<unsigned long>("freeSwap");
+
+ if(totalMem && freeMem) {
unit = 0;
- totalMem = (*packet)["totalSwap"]; usedMem = totalMem-(float)(*packet)["freeSwap"];
+ usedMem = totalMem-freeMem;
while(totalMem >= 1024 && !units[unit+1].empty()) {
++unit;