phonebookengines/contactsmodel/cntsrv/src/CCntFileManagerMsgHandler.cpp
changeset 31 2a11b5b00470
parent 24 0ba2181d7c28
child 46 efe85016a067
--- a/phonebookengines/contactsmodel/cntsrv/src/CCntFileManagerMsgHandler.cpp	Mon May 03 12:24:20 2010 +0300
+++ b/phonebookengines/contactsmodel/cntsrv/src/CCntFileManagerMsgHandler.cpp	Fri May 14 15:42:23 2010 +0300
@@ -56,7 +56,7 @@
 	ECntGetDatabaseReady,
 	ECntFetchTemplateIds,
 	ECntFetchGroupIdLists,
-	ECntSearchResultIdLists,
+	ECntSearchResultList,
 	ECntFilesSize,
 	ECntGetDefinitionsForExistingView
 	};
@@ -397,26 +397,26 @@
     aMessage.ReadL(1, searchQueryPtr);
     
     CheckForManagerL();
-    CContactIdArray* arrayPtr = iManager->GetPersistenceLayer().ContactProperties().SearchIdListL(searchQuery->Des());
-    CleanupStack::PushL(arrayPtr);
-	TPtr8 cntIDBuff = iPackager.PackL(*arrayPtr); 
-    TInt length = cntIDBuff.Length();
-	CleanupStack::PopAndDestroy(); //arrayPtr
-    CleanupStack::PopAndDestroy(); //searchQuery
-	
-    // Write data if client buffer is large enough otherwise return the
-    // required buffer size.
-    if(aMessage.GetDesMaxLength(0) >= length)
-        { 
-        aMessage.WriteL(0, cntIDBuff); 
+
+    CBufSeg* buffer = iManager->GetPersistenceLayer().ContactProperties().DetailsListL(searchQuery->Des());
+    if (aMessage.GetDesMaxLength(0) >= buffer->Size())
+        {
+        TInt offset = 0;
+        while (offset < buffer->Size())
+            {
+            TPtr8 ptr = buffer->Ptr(offset);
+            aMessage.WriteL(0, ptr, offset);
+            offset += ptr.Size();
+            }
         aMessage.Complete(KErrNone);
         }
     else
-        { 
-        aMessage.Complete(length);  
+        {
+        aMessage.Complete(buffer->Size());
         }
-	
-	
+
+    delete buffer;
+    CleanupStack::PopAndDestroy(); //searchQuery
     }
     
 
@@ -425,6 +425,7 @@
 	DefinitionsOfExistingViewsL(aMessage);
 	}
 
+
 void CCntFileManagerMsgHandler::FilesSizeL(const RMessage2& aMessage)
 	{
 	CheckForManagerL();