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