示例#1
0
void ResourceWindow::onRefresh()
{
    ErrorLogger* logger  = ErrorLogger::Instance();

    if(m_pManager->updateResource(m_pComputer->getName()))
    {
        YarpBroker broker;
        broker.init();
    
        string strServer = m_pComputer->getName();
        if(strServer[0] != '/')
            strServer = string("/") + strServer;
        // Processes list
        ProcessContainer processes;
        if(broker.getAllProcesses(strServer.c_str(), processes))
        {
            m_pComputer->getProcesses().clear();
            for(unsigned int i=0; i<processes.size(); i++)
                m_pComputer->getProcesses().push_back(processes[i]);
        }
        else
            logger->addError(broker.error());        

        updateWidget();
    }
    m_pParent->reportErrors();
}
示例#2
0
文件: manager.cpp 项目: lessc0de/yarp
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;
}
示例#3
0
文件: manager.cpp 项目: lessc0de/yarp
bool Manager::updateResources(void)
{
    YarpBroker broker;
    broker.init();

    // finding all available yarp ports
    vector<string> ports;
    broker.getAllPorts(ports);

    ResourcePContainer allresources = knowledge.getResources();
    for(unsigned int i=0; i<allresources.size(); i++)
    {
        Computer* comp = dynamic_cast<Computer*>(allresources[i]);
        if(updateResource(comp))
        {
            //set all as unavailable
            for(int i=0; i<comp->peripheralCount(); i++)
            {
                ResYarpPort* res =
                    dynamic_cast<ResYarpPort*>(&comp->getPeripheralAt(i));
                if(res)
                    res->setAvailability(false);
            }

            // adding all available yarp ports as peripherals
            for(unsigned int i=0; i<ports.size(); i++)
            {
                ResYarpPort resport;
                resport.setName(ports[i].c_str());
                resport.setPort(ports[i].c_str());

                bool bfound = false;
                for(int i=0; i<comp->peripheralCount(); i++)
                {
                    ResYarpPort* res =
                        dynamic_cast<ResYarpPort*>(&comp->getPeripheralAt(i));
                    if(res && (string(res->getName()) == string(resport.getName())))
                    {
                        res->setAvailability(true);
                        bfound = true;
                        break;
                    }
                }
                if(!bfound)
                    comp->addPeripheral(resport);
            }
        }
    } // end of for

    return true;
}