metadataengine/client/src/mdequery.cpp
changeset 23 33ae025ac1e8
parent 21 50bf9db68373
child 40 910a23996aa0
equal deleted inserted replaced
21:50bf9db68373 23:33ae025ac1e8
   407     // Transfer ownership of the results to the query.
   407     // Transfer ownership of the results to the query.
   408     for (i = 0; i < newCount; i++)
   408     for (i = 0; i < newCount; i++)
   409         {
   409         {
   410         iResults[firstNewItemIndex + i].iOwned = ETrue;
   410         iResults[firstNewItemIndex + i].iOwned = ETrue;
   411         }
   411         }
   412 
   412     
   413     const TInt observerCount = iObservers.Count();
   413     for( TInt i = iObservers.Count() - 1; i >=0; i-- )
   414     
       
   415 	for (i = 0; i < observerCount; i++)
       
   416 		{
   414 		{
   417 		MMdEQueryObserver* observer = iObservers[i];
   415 		MMdEQueryObserver* observer = iObservers[i];
   418 		observer->HandleQueryNewResults( *this, firstNewItemIndex, newCount );
   416 		observer->HandleQueryNewResults( *this, firstNewItemIndex, newCount );
   419 		}
   417 		}
   420     }
   418     }
   424     {
   422     {
   425     __ASSERT_ALWAYS(iState != EStateNew && iState != EStateError,
   423     __ASSERT_ALWAYS(iState != EStateNew && iState != EStateError,
   426                     TMdEPanic::Panic(TMdEPanic::EInternal));
   424                     TMdEPanic::Panic(TMdEPanic::EInternal));
   427 
   425 
   428 	TInt firstNewItemIndex = iIdResults.Count();
   426 	TInt firstNewItemIndex = iIdResults.Count();
   429 	TInt i = 0;
       
   430 
   427 
   431     const TInt oldCount = iIdResults.Count();
   428     const TInt oldCount = iIdResults.Count();
   432 
   429 
   433     TRAPD(err, AppendResultsL(aNewResults));
   430     TRAPD(err, AppendResultsL(aNewResults));
   434     if (err != KErrNone)
   431     if (err != KErrNone)
   439             iIdResults.Remove(iIdResults.Count() - 1);
   436             iIdResults.Remove(iIdResults.Count() - 1);
   440             }
   437             }
   441         // Leave with the same error.
   438         // Leave with the same error.
   442         User::Leave(err);
   439         User::Leave(err);
   443         }
   440         }
   444 
   441     
   445     const TInt observerCount = iObservers.Count();
   442     for( TInt i = iObservers.Count() - 1; i >=0; i-- )
   446     
       
   447 	for (i = 0; i < observerCount; i++)
       
   448 		{
   443 		{
   449 		MMdEQueryObserver* observer = iObservers[i];
   444 		MMdEQueryObserver* observer = iObservers[i];
   450 		observer->HandleQueryNewResults(*this, firstNewItemIndex, 
   445 		observer->HandleQueryNewResults(*this, firstNewItemIndex, 
   451                                         aNewResults.Count());
   446                                         aNewResults.Count());
   452 		}
   447 		}
   453     }
   448     }
   454 
   449 
   455 void CMdEQuery::NotifyNewResultsL( const CDesCArray& aNewResults )
   450 void CMdEQuery::NotifyNewResultsL( const CDesCArray& aNewResults )
   456     {
   451     {
   457 	TInt firstNewItemIndex = aNewResults.Count();
   452 	TInt firstNewItemIndex = aNewResults.Count();
   458 	TInt i = 0;
       
   459 
   453 
   460 	TInt oldCount = 0;
   454 	TInt oldCount = 0;
   461 	if( iDistinctResults )
   455 	if( iDistinctResults )
   462 		{
   456 		{
   463 		oldCount = iDistinctResults->Count();
   457 		oldCount = iDistinctResults->Count();
   477             }
   471             }
   478         // Leave with the same error.
   472         // Leave with the same error.
   479         User::Leave(err);
   473         User::Leave(err);
   480         }
   474         }
   481 
   475 
   482     const TInt observerCount = iObservers.Count();
   476     for( TInt i = iObservers.Count() - 1; i >=0; i-- )
   483     
       
   484 	for (i = 0; i < observerCount; i++)
       
   485 		{
   477 		{
   486 		MMdEQueryObserver* observer = iObservers[i];
   478 		MMdEQueryObserver* observer = iObservers[i];
   487 		observer->HandleQueryNewResults( *this, firstNewItemIndex, 
   479 		observer->HandleQueryNewResults( *this, firstNewItemIndex, 
   488                                          aNewResults.Count() );
   480                                          aNewResults.Count() );
   489 		}
   481 		}