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); |