395 HBufC* searchQuery = HBufC::NewLC(KSqlQueryMaxLen); |
395 HBufC* searchQuery = HBufC::NewLC(KSqlQueryMaxLen); |
396 TPtr searchQueryPtr(searchQuery->Des()); |
396 TPtr searchQueryPtr(searchQuery->Des()); |
397 aMessage.ReadL(1, searchQueryPtr); |
397 aMessage.ReadL(1, searchQueryPtr); |
398 |
398 |
399 CheckForManagerL(); |
399 CheckForManagerL(); |
400 CContactIdArray* arrayPtr = iManager->GetPersistenceLayer().ContactProperties().SearchIdListL(searchQuery->Des()); |
400 |
401 CleanupStack::PushL(arrayPtr); |
401 CBufSeg* buffer = iManager->GetPersistenceLayer().ContactProperties().DetailsListL(searchQuery->Des()); |
402 TPtr8 cntIDBuff = iPackager.PackL(*arrayPtr); |
402 if (aMessage.GetDesMaxLength(0) >= buffer->Size()) |
403 TInt length = cntIDBuff.Length(); |
403 { |
404 CleanupStack::PopAndDestroy(); //arrayPtr |
404 TInt offset = 0; |
405 CleanupStack::PopAndDestroy(); //searchQuery |
405 while (offset < buffer->Size()) |
406 |
406 { |
407 // Write data if client buffer is large enough otherwise return the |
407 TPtr8 ptr = buffer->Ptr(offset); |
408 // required buffer size. |
408 aMessage.WriteL(0, ptr, offset); |
409 if(aMessage.GetDesMaxLength(0) >= length) |
409 offset += ptr.Size(); |
410 { |
410 } |
411 aMessage.WriteL(0, cntIDBuff); |
|
412 aMessage.Complete(KErrNone); |
411 aMessage.Complete(KErrNone); |
413 } |
412 } |
414 else |
413 else |
415 { |
414 { |
416 aMessage.Complete(length); |
415 aMessage.Complete(buffer->Size()); |
417 } |
416 } |
418 |
417 |
419 |
418 delete buffer; |
|
419 CleanupStack::PopAndDestroy(); //searchQuery |
420 } |
420 } |
421 |
421 |
422 |
422 |
423 void CCntFileManagerMsgHandler::GetDefinitionsForExistingViewL(const RMessage2& aMessage) |
423 void CCntFileManagerMsgHandler::GetDefinitionsForExistingViewL(const RMessage2& aMessage) |
424 { |
424 { |
425 DefinitionsOfExistingViewsL(aMessage); |
425 DefinitionsOfExistingViewsL(aMessage); |
426 } |
426 } |
427 |
427 |
|
428 |
428 void CCntFileManagerMsgHandler::FilesSizeL(const RMessage2& aMessage) |
429 void CCntFileManagerMsgHandler::FilesSizeL(const RMessage2& aMessage) |
429 { |
430 { |
430 CheckForManagerL(); |
431 CheckForManagerL(); |
431 aMessage.Complete(iManager->FileSizeL()); |
432 aMessage.Complete(iManager->FileSizeL()); |
432 } |
433 } |