本文整理汇总了C++中tomahawk::result_ptr::isValid方法的典型用法代码示例。如果您正苦于以下问题:C++ result_ptr::isValid方法的具体用法?C++ result_ptr::isValid怎么用?C++ result_ptr::isValid使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类tomahawk::result_ptr
的用法示例。
在下文中一共展示了result_ptr::isValid方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: results
void
DatabaseCommand_Resolve::resolve( DatabaseImpl* lib )
{
QList<Tomahawk::result_ptr> res;
// STEP 1
QList< QPair<int, float> > tracks = lib->search( m_query );
if ( tracks.length() == 0 )
{
qDebug() << "No candidates found in first pass, aborting resolve" << m_query->queryTrack()->toString();
emit results( m_query->id(), res );
return;
}
// STEP 2
TomahawkSqlQuery files_query = lib->newquery();
QStringList trksl;
for ( int k = 0; k < tracks.count(); k++ )
trksl.append( QString::number( tracks.at( k ).first ) );
QString trksToken = QString( "file_join.track IN (%1)" ).arg( trksl.join( "," ) );
QString sql = QString( "SELECT "
"url, mtime, size, md5, mimetype, duration, bitrate, " //0
"file_join.artist, file_join.album, file_join.track, " //7
"file_join.composer, file_join.discnumber, " //10
"artist.name as artname, " //12
"album.name as albname, " //13
"track.name as trkname, " //14
"composer.name as cmpname, " //15
"file.source, " //16
"file_join.albumpos, " //17
"artist.id as artid, " //18
"album.id as albid, " //19
"composer.id as cmpid " //20
"FROM file, file_join, artist, track "
"LEFT JOIN album ON album.id = file_join.album "
"LEFT JOIN artist AS composer ON composer.id = file_join.composer "
"WHERE "
"artist.id = file_join.artist AND "
"track.id = file_join.track AND "
"file.id = file_join.file AND "
"(%1)" )
.arg( trksToken );
files_query.prepare( sql );
files_query.exec();
while ( files_query.next() )
{
source_ptr s;
QString url = files_query.value( 0 ).toString();
if ( files_query.value( 16 ).toUInt() == 0 )
{
s = SourceList::instance()->getLocal();
}
else
{
s = SourceList::instance()->get( files_query.value( 16 ).toUInt() );
if ( s.isNull() )
{
qDebug() << "Could not find source" << files_query.value( 16 ).toUInt();
continue;
}
url = QString( "servent://%1\t%2" ).arg( s->nodeId() ).arg( url );
}
Tomahawk::result_ptr result = Tomahawk::Result::get( url );
if ( result->isValid() )
{
tDebug( LOGVERBOSE ) << "Result already cached:" << result->toString();
res << result;
continue;
}
track_ptr track = Track::get( files_query.value( 12 ).toString(), files_query.value( 14 ).toString(), files_query.value( 13 ).toString(), files_query.value( 5 ).toUInt(), files_query.value( 15 ).toString(), files_query.value( 17 ).toUInt(), files_query.value( 11 ).toUInt() );
result->setTrack( track );
result->setModificationTime( files_query.value( 1 ).toUInt() );
result->setSize( files_query.value( 2 ).toUInt() );
result->setMimetype( files_query.value( 4 ).toString() );
result->setBitrate( files_query.value( 6 ).toUInt() );
result->setTrackId( files_query.value( 9 ).toUInt() );
result->setRID( uuid() );
TomahawkSqlQuery attrQuery = lib->newquery();
QVariantMap attr;
attrQuery.prepare( "SELECT k, v FROM track_attributes WHERE id = ?" );
attrQuery.bindValue( 0, result->trackId() );
attrQuery.exec();
while ( attrQuery.next() )
{
attr[ attrQuery.value( 0 ).toString() ] = attrQuery.value( 1 ).toString();
}
//.........这里部分代码省略.........