1
0
mirror of https://github.com/tomahawk-player/tomahawk.git synced 2025-02-22 19:05:05 +01:00

* Only store results in Pipeline when we're working on temporary queries - e.g. for the rest-API.

This commit is contained in:
Christian Muehlhaeuser 2013-03-31 05:33:35 +02:00
parent d0631bf75e
commit 3745cd247e
2 changed files with 27 additions and 12 deletions

View File

@ -306,9 +306,13 @@ Pipeline::reportResults( QID qid, const QList< result_ptr >& results )
if ( !cleanResults.isEmpty() )
{
q->addResults( cleanResults );
foreach ( const result_ptr& r, cleanResults )
if ( m_queries_temporary.contains( q ) )
{
m_rids.insert( r->id(), r );
foreach ( const result_ptr& r, cleanResults )
{
m_rids.insert( r->id(), r );
}
}
if ( q->solved() && !q->isFullTextQuery() )
@ -552,13 +556,31 @@ Pipeline::decQIDState( const Tomahawk::query_ptr& query )
void
Pipeline::onTemporaryQueryTimer()
{
QMutexLocker lock( &m_mut );
tDebug() << Q_FUNC_INFO;
QMutexLocker lock( &m_mut );
m_temporaryQueryTimer.stop();
for ( int i = m_queries_temporary.count() - 1; i >= 0; i-- )
{
query_ptr q = m_queries_temporary.takeAt( i );
m_qids.remove( q->id() );
foreach ( const Tomahawk::result_ptr& r, q->results() )
m_rids.remove( r->id() );
}
}
query_ptr
Pipeline::query( const QID& qid ) const
{
return m_qids.value( qid );
}
result_ptr
Pipeline::result( const RID& rid ) const
{
return m_rids.value( rid );
}

View File

@ -67,15 +67,8 @@ public:
void addResolver( Resolver* r );
void removeResolver( Resolver* r );
query_ptr query( const QID& qid ) const
{
return m_qids.value( qid );
}
result_ptr result( const RID& rid ) const
{
return m_rids.value( rid );
}
query_ptr query( const QID& qid ) const;
result_ptr result( const RID& rid ) const;
bool isResolving( const query_ptr& q ) const;