381 |
381 |
382 // ----------------------------------------------------------------------------- |
382 // ----------------------------------------------------------------------------- |
383 // CPSRequestHandler::LookupMatchL() |
383 // CPSRequestHandler::LookupMatchL() |
384 // Sends a request to the predictive search engine to perform a search. |
384 // Sends a request to the predictive search engine to perform a search. |
385 // ----------------------------------------------------------------------------- |
385 // ----------------------------------------------------------------------------- |
386 EXPORT_C void CPSRequestHandler::LookupMatchL(const CPsQuery& aSearchQuery, |
386 EXPORT_C void CPSRequestHandler::LookupMatchL( const CPsQuery& aSearchQuery, |
387 const TDesC& aSearchData, |
387 const TDesC& aSearchData, |
388 TDes& aMatch ) |
388 TDes& aMatch ) |
389 { |
389 { |
390 PRINT ( _L("Enter CPSRequestHandler::LookupMatchL") ); |
390 PRINT ( _L("Enter CPSRequestHandler::LookupMatchL") ); |
391 |
391 |
392 // ----------------------- Search Query ---------------------- |
392 // ----------------------- Search Query ---------------------- |
393 |
393 |
543 for ( TInt j = 0; j < searchResults[i]->DataElementCount(); j++ ) |
543 for ( TInt j = 0; j < searchResults[i]->DataElementCount(); j++ ) |
544 { |
544 { |
545 if ( searchResults[i]->Data(j) ) |
545 if ( searchResults[i]->Data(j) ) |
546 { |
546 { |
547 PRINT3 ( _L("CPSRequestHandler::HandleSearchResultsL: Results[%d,%d] = %S"), |
547 PRINT3 ( _L("CPSRequestHandler::HandleSearchResultsL: Results[%d,%d] = %S"), |
548 i, j, &searchResults[i]->Data(j)->Des() ); |
548 i, j, &*(searchResults[i]->Data(j)) ); |
549 } |
549 } |
550 } |
550 } |
551 } |
551 } |
552 #endif // _DEBUG |
552 #endif // _DEBUG |
553 |
553 |
1260 { |
1260 { |
1261 iObservers[i]->CachingStatus(aStatus, aError); |
1261 iObservers[i]->CachingStatus(aStatus, aError); |
1262 } |
1262 } |
1263 } |
1263 } |
1264 |
1264 |
|
1265 // ----------------------------------------------------------------------------- |
|
1266 // CPSRequestHandler::GetAdaptiveGridCharactersL() |
|
1267 // |
|
1268 // ----------------------------------------------------------------------------- |
|
1269 EXPORT_C void CPSRequestHandler::GetAdaptiveGridCharactersL( const MDesCArray& aDataStores, |
|
1270 const TDesC& aSearchText, |
|
1271 const TBool aCompanyName, |
|
1272 TDes& aAdaptiveGrid ) |
|
1273 { |
|
1274 /* |
|
1275 * aSearchText is unused in the current implementation. |
|
1276 * If/when this API method will support grids at bigger level it will be used. |
|
1277 * Grids at bigger level can be kept in a multilevel Adaptive Grid cache, or could |
|
1278 * be calculated inside PCS Engine. There are two implementation choices. |
|
1279 */ |
|
1280 |
|
1281 PRINT ( _L("Enter CPSRequestHandler::GetAdaptiveGridCharactersL") ); |
|
1282 |
|
1283 if ( aSearchText.Length() > KPsAdaptiveGridSupportedMaxLen ) |
|
1284 { |
|
1285 PRINT1 ( _L("CPSRequestHandler::GetAdaptiveGridCharactersL: Too many chars in search text, Max supported is %d"), |
|
1286 KPsAdaptiveGridSupportedMaxLen ); |
|
1287 } |
|
1288 else |
|
1289 { |
|
1290 // -------------------- Data Stores -------------------- |
|
1291 |
|
1292 // Temp buffer |
|
1293 CBufFlat* dataBuffer = CBufFlat::NewL( KBufferMaxLen ); |
|
1294 CleanupStack::PushL( dataBuffer ); |
|
1295 |
|
1296 // Stream over the temp buffer |
|
1297 RBufWriteStream dataStream( *dataBuffer ); |
|
1298 dataStream.PushL(); |
|
1299 |
|
1300 // Write the URI count in the stream |
|
1301 TInt dataStoresCount = aDataStores.MdcaCount(); |
|
1302 dataStream.WriteUint16L( dataStoresCount ); |
|
1303 |
|
1304 for ( TUint i=0; i < dataStoresCount; i++ ) |
|
1305 { |
|
1306 // Write the URI details in the stream |
|
1307 TPtrC16 uri = aDataStores.MdcaPoint(i); |
|
1308 dataStream.WriteUint16L( uri.Length() ); |
|
1309 dataStream << uri; |
|
1310 } |
|
1311 |
|
1312 // Create a HBufC8 for IPC |
|
1313 HBufC8* storesDataBuffer = HBufC8::NewL( dataBuffer->Size() ); |
|
1314 TPtr8 storesDataBufferPtr( storesDataBuffer->Des() ); |
|
1315 dataBuffer->Read( 0, storesDataBufferPtr, dataBuffer->Size() ); |
|
1316 |
|
1317 CleanupStack::PopAndDestroy( 2, dataBuffer ); // dataBuffer, dataStream |
|
1318 CleanupStack::PushL( storesDataBuffer ); |
|
1319 |
|
1320 // ----------------------------------------------------- |
|
1321 |
|
1322 iSession.GetAdaptiveGridL( storesDataBuffer->Des(), aCompanyName, aAdaptiveGrid ); |
|
1323 |
|
1324 // Cleanup |
|
1325 CleanupStack::PopAndDestroy(storesDataBuffer); |
|
1326 } |
|
1327 |
|
1328 #ifdef _DEBUG |
|
1329 for ( TUint i=0; i < aDataStores.MdcaCount(); i++ ) |
|
1330 { |
|
1331 TPtrC16 ptr = aDataStores.MdcaPoint(i); |
|
1332 PRINT2 ( _L("CPSRequestHandler::GetAdaptiveGridCharactersL: Data Store [%d]: %S"), |
|
1333 i, &ptr ); |
|
1334 } |
|
1335 PRINT1 ( _L("CPSRequestHandler::GetAdaptiveGridCharactersL: Search Text: %S"), &aSearchText ); |
|
1336 PRINT1 ( _L("CPSRequestHandler::GetAdaptiveGridCharactersL: Company Name: %d"), aCompanyName ); |
|
1337 PRINT1 ( _L("CPSRequestHandler::GetAdaptiveGridCharactersL: Grid: %S"), &aAdaptiveGrid ); |
|
1338 #endif // _DEBUG |
|
1339 |
|
1340 PRINT ( _L("End CPSRequestHandler::GetAdaptiveGridCharactersL") ); |
|
1341 } |
|
1342 |
1265 // End of File |
1343 // End of File |