bool Manager::updateResource(GenericResource* resource) { YarpBroker broker; broker.init(); Computer* comp = dynamic_cast<Computer*>(resource); if(!comp || !strlen(comp->getName())) return false; if(compareString(comp->getName(), "localhost")) return false; yarp::os::SystemInfoSerializer info; string strServer = comp->getName(); if(strServer[0] != '/') strServer = string("/") + strServer; if(!broker.getSystemInfo(strServer.c_str(), info)) { logger->addError(broker.error()); comp->setAvailability(false); } else { comp->setAvailability(true); comp->getMemory().setTotalSpace(info.memory.totalSpace*1024); comp->getMemory().setFreeSpace(info.memory.freeSpace*1024); comp->getStorage().setTotalSpace(info.storage.totalSpace*1024); comp->getStorage().setFreeSpace(info.storage.freeSpace*1024); //comp->getNetwork().setIP4(info.network.ip4.c_str()); //comp->getNetwork().setIP6(info.network.ip6.c_str()); //comp->getNetwork().setMAC(info.network.mac.c_str()); comp->getProcessor().setArchitecture(info.processor.architecture.c_str()); comp->getProcessor().setCores(info.processor.cores); comp->getProcessor().setSiblings(info.processor.siblings); comp->getProcessor().setFrequency(info.processor.frequency); comp->getProcessor().setModel(info.processor.model.c_str()); LoadAvg load; load.loadAverageInstant = (double)info.load.cpuLoadInstant; load.loadAverage1 = info.load.cpuLoad1; load.loadAverage5 = info.load.cpuLoad5; load.loadAverage15 = info.load.cpuLoad15; comp->getProcessor().setCPULoad(load); comp->getPlatform().setName(info.platform.name.c_str()); comp->getPlatform().setDistribution(info.platform.distribution.c_str()); comp->getPlatform().setRelease(info.platform.release.c_str()); } return true; }
bool Manager::loadApplication(const char* szAppName) { __CHECK_NULLPTR(szAppName); if(!allStopped()) { logger->addError("Please stop current running application first."); return false; } strAppName = szAppName; // set all resources as unavailable ResourcePContainer allresources = knowledge.getResources(); for(unsigned int i=0; i<allresources.size(); i++) { Computer* comp = dynamic_cast<Computer*>(allresources[i]); if(comp) comp->setAvailability(false); } return prepare(true); }