Ejemplo n.º 1
0
Config* Server::chooseConfig( const fabric::ConfigParams& p )
{
    if( !isConnected( ))
        return 0;

    ClientPtr client = getClient();
    fabric::ConfigParams params( p );

    if( params.getName().empty( ))
        params.setName( client->getName( ));
    if( params.getWorkDir().empty( ))
        params.setWorkDir( Global::getWorkDir( ));
    if( params.getRenderClient().empty( ))
        params.setRenderClient( Global::getProgramName( ));
    if( params.getGPUFilter().empty( ))
        params.setGPUFilter( client->getGPUFilter( ));

    if( params.getRenderClient().empty( ))
        LBWARN << "No render client in ConfigParams specified" << std::endl;

    lunchbox::Request< void* > request = client->registerRequest< void* >();
    send( fabric::CMD_SERVER_CHOOSE_CONFIG )
        << request << params << eq::Global::getConfigFile();

    while( !request.isReady( ))
        getClient()->processCommand();

    return static_cast< Config* >( request.wait( ));
}
Ejemplo n.º 2
0
Config* Server::chooseConfig( const fabric::ConfigParams& p )
{
    if( !isConnected( ))
        return 0;

    ClientPtr client = getClient();
    fabric::ConfigParams params( p );

    if( params.getWorkDir().empty( ))
        params.setWorkDir( Global::getWorkDir( ));
    if( params.getRenderClient().empty( ))
        params.setRenderClient( Global::getProgramName( ));
    if( params.getGPUFilter().empty( ))
        params.setGPUFilter( client->getGPUFilter( ));

    if( params.getRenderClient().empty( ))
    {
        LBWARN << "No render client in ConfigParams specified" << std::endl;
        return 0;
    }

    const uint32_t requestID =  client->registerRequest();

    send( fabric::CMD_SERVER_CHOOSE_CONFIG )
        << requestID << params << eq::Global::getConfigFile();

    while( !client->isRequestServed( requestID ))
        getClient()->processCommand();

    void* ptr = 0;
    client->waitRequest( requestID, ptr );
    return static_cast<Config*>( ptr );
}