Ejemplo n.º 1
0
ConstructionExtensionPtr FactoryProgressUpdater::uniqueTo(FactoryPtr factory, float value, int week2finish, const std::string& name)
{
  if( !factory.isValid() )
  {
    Logger::warning( "WARNING!!! Factory not initialized" );
    crashhandler::printstack();
    return ConstructionExtensionPtr();
  }

  if( name.empty() )
  {
    Logger::warning( "WARNING!!! Cant assigned named extension without name" );
    return ConstructionExtensionPtr();
  }

  ConstructionExtensionList exts = factory->extensions();
  foreach( it, exts )
  {
    if( (*it)->name() == name )
      return ConstructionExtensionPtr();
  }

  ConstructionExtensionPtr ret = assignTo( factory, value, week2finish );
  ret->setName( name );

  return ret;
}