predictivesearch/PcsServerClientAPI/src/CPsRequestHandler.cpp
branchRCL_3
changeset 39 a6539d1e8e43
parent 35 4ae315f230bc
child 64 c1e8ba0c2b16
equal deleted inserted replaced
35:4ae315f230bc 39:a6539d1e8e43
   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