predictivesearch/PcsAlgorithm/Algorithm2/src/CPcsAlgorithm2MultiSearchHelper.cpp
branchRCL_3
changeset 21 b3431bff8c19
parent 0 e686773b3f54
child 32 2828b4d142c0
equal deleted inserted replaced
15:e8e3147d53eb 21:b3431bff8c19
   128     // Create CPcsAlgorithm2FilterHelper object to be used for filtering the results
   128     // Create CPcsAlgorithm2FilterHelper object to be used for filtering the results
   129     TSortType sortType = aSettings.GetSortType();
   129     TSortType sortType = aSettings.GetSortType();
   130     CPcsAlgorithm2FilterHelper* filterHelper = CPcsAlgorithm2FilterHelper::NewL(sortType);
   130     CPcsAlgorithm2FilterHelper* filterHelper = CPcsAlgorithm2FilterHelper::NewL(sortType);
   131     RPointerArray<CPcsPoolElement> elements;
   131     RPointerArray<CPcsPoolElement> elements;
   132 
   132 
   133     // Get the initial search elements using the first key of first query
       
   134     TBuf<50> numericKeyStr;
       
   135     TPtrC queryPtr = aPsQuery[0]->QueryAsStringLC();
       
   136     keyMap->GetNumericKeyString(queryPtr, numericKeyStr);
       
   137     CleanupStack::PopAndDestroy();
       
   138 
       
   139     iMultiSearchResultsArr.ResetAndDestroy();
   133     iMultiSearchResultsArr.ResetAndDestroy();
   140 
   134 
   141     // Get the data stores  
   135     // Get the data stores  
   142     RPointerArray<TDesC> aDataStores;
   136     RPointerArray<TDesC> aDataStores;
   143     aSettings.SearchUrisL(aDataStores);
   137     aSettings.SearchUrisL(aDataStores);
   144 
   138 
   145     // Get the required display fields from the client
   139     // Get the required display fields from the client
   146     RArray<TInt> requiredDataFields;
   140     RArray<TInt> requiredDataFields;
   147     aSettings.DisplayFieldsL(requiredDataFields);
   141     aSettings.DisplayFieldsL(requiredDataFields);
   148 
   142 
   149     // Search based on first key str
   143     // Search from cache based on first character
   150     TInt numValue = keyMap->PoolIdForCharacter(numericKeyStr[0]);
   144     const CPsQueryItem& firstCharItem = aPsQuery[0]->GetItemAtL(0);
       
   145     TInt numValue  = keyMap->PoolIdForCharacter( firstCharItem.Character() );
       
   146     
   151     // Get the elements from all the databases
   147     // Get the elements from all the databases
   152     for (int dsIndex = 0; dsIndex < aDataStores.Count(); dsIndex++)
   148     for (int dsIndex = 0; dsIndex < aDataStores.Count(); dsIndex++)
   153         {
   149         {
   154         RPointerArray<CPsData> *temp = new (ELeave) RPointerArray<CPsData> ();
   150         RPointerArray<CPsData> *temp = new (ELeave) RPointerArray<CPsData> ();
   155         iMultiSearchResultsArr.Append(temp);
   151         iMultiSearchResultsArr.Append(temp);