void CBlastScopeSource::x_InitBlastDatabaseDataLoader(CRef<CSeqDB> db_handle) { if ( !m_Config.m_UseBlastDbs ) { return; } if (db_handle.Empty()) { ERR_POST(Warning << "No BLAST database handle provided"); } else { try { m_BlastDbLoaderName = CBlastDbDataLoader::RegisterInObjectManager (*m_ObjMgr, db_handle, m_Config.m_UseFixedSizeSlices, CObjectManager::eNonDefault).GetLoader()->GetName(); _ASSERT( !m_BlastDbLoaderName.empty() ); _TRACE("Registered BLAST DB data loader '" << m_BlastDbLoaderName << "' as non-default"); } catch (const exception& e) { // in case of error when initializing the BLAST database, just // ignore the exception as the remote BLAST database data loader // will be the fallback (just issue a warning) ERR_POST(Warning << "Error initializing local BLAST database data " << "loader: '" << e.what() << "'"); const CBlastDbDataLoader::EDbType dbtype = db_handle->GetSequenceType() == CSeqDB::eProtein ? CBlastDbDataLoader::eProtein : CBlastDbDataLoader::eNucleotide; try { m_BlastDbLoaderName = CRemoteBlastDbDataLoader::RegisterInObjectManager (*m_ObjMgr, db_handle->GetDBNameList(), dbtype, m_Config.m_UseFixedSizeSlices, CObjectManager::eNonDefault, CObjectManager::kPriority_NotSet) .GetLoader()->GetName(); _ASSERT( !m_BlastDbLoaderName.empty() ); _TRACE("Registered BLAST DB data loader '" << m_BlastDbLoaderName << "' as non-default"); } catch (const CSeqDBException& e) { ERR_POST(Warning << "Error initializing remote BLAST database " << "data loader: " << e.GetMsg()); } } } }