35 #include "ccntpackager.h" |
35 #include "ccntpackager.h" |
36 #include "ccntipccodes.h" |
36 #include "ccntipccodes.h" |
37 #include <cntviewstore.h> |
37 #include <cntviewstore.h> |
38 #include "cntviewprivate.h" |
38 #include "cntviewprivate.h" |
39 #include "cviewsubsessions.h" |
39 #include "cviewsubsessions.h" |
|
40 #include "cntpredictivesearch.h" |
40 |
41 |
41 const TInt KCntFileManagerIpcCodes[] = |
42 const TInt KCntFileManagerIpcCodes[] = |
42 { |
43 { |
43 ECntOpenDataBase, |
44 ECntOpenDataBase, |
44 ECntCreateDatabase, |
45 ECntCreateDatabase, |
71 |
73 |
72 CCntFileManagerMsgHandler::CCntFileManagerMsgHandler(CCntSession& aSession) |
74 CCntFileManagerMsgHandler::CCntFileManagerMsgHandler(CCntSession& aSession) |
73 :CCntMsgHandler(aSession) |
75 :CCntMsgHandler(aSession) |
74 { |
76 { |
75 } |
77 } |
76 |
78 |
|
79 // ---------------------------------------------------------------------------- |
|
80 // CntPredictiveSearch::ConstructL |
|
81 // ---------------------------------------------------------------------------- |
|
82 void CCntFileManagerMsgHandler::ConstructL() |
|
83 { |
|
84 predictiveSearch = CntPredictiveSearch::NewL(); |
|
85 } |
|
86 |
77 CCntFileManagerMsgHandler::~CCntFileManagerMsgHandler() |
87 CCntFileManagerMsgHandler::~CCntFileManagerMsgHandler() |
78 { |
88 { |
|
89 delete predictiveSearch; |
79 } |
90 } |
80 |
91 |
81 /** |
92 /** |
82 Delegates the incoming op code to a message handling method. |
93 Delegates the incoming op code to a message handling method. |
83 |
94 |
386 { |
397 { |
387 aMessage.Complete(length); |
398 aMessage.Complete(length); |
388 } |
399 } |
389 } |
400 } |
390 |
401 |
391 |
402 void CCntFileManagerMsgHandler::FetchPredictiveSearchResultsL(const RMessage2& aMessage) |
|
403 { |
|
404 const TInt KSqlQueryMaxLen = aMessage.GetDesLengthL(1); |
|
405 HBufC* searchQuery = HBufC::NewLC(KSqlQueryMaxLen); |
|
406 TPtr searchQueryPtr(searchQuery->Des()); |
|
407 aMessage.ReadL(1, searchQueryPtr); |
|
408 |
|
409 CheckForManagerL(); |
|
410 HBufC* newPredictiveQuery = predictiveSearch->CreateSQLQueryL(*searchQuery, 1 ); |
|
411 CleanupStack::PushL(newPredictiveQuery); |
|
412 CBufSeg* buffer = iManager->GetPersistenceLayer().ContactProperties().DetailsListL(newPredictiveQuery->Des()); |
|
413 if (aMessage.GetDesMaxLength(0) >= buffer->Size()) |
|
414 { |
|
415 TInt offset = 0; |
|
416 while (offset < buffer->Size()) |
|
417 { |
|
418 TPtr8 ptr = buffer->Ptr(offset); |
|
419 aMessage.WriteL(0, ptr, offset); |
|
420 offset += ptr.Size(); |
|
421 } |
|
422 aMessage.Complete(KErrNone); |
|
423 } |
|
424 else |
|
425 { |
|
426 aMessage.Complete(buffer->Size()); |
|
427 } |
|
428 |
|
429 delete buffer; |
|
430 CleanupStack::PopAndDestroy(); //searchQuery*/ |
|
431 CleanupStack::PopAndDestroy(); //newPredictiveQuery |
|
432 } |
392 void CCntFileManagerMsgHandler::FetchSearchResultsL(const RMessage2& aMessage) |
433 void CCntFileManagerMsgHandler::FetchSearchResultsL(const RMessage2& aMessage) |
393 { |
434 { |
394 const TInt KSqlQueryMaxLen = aMessage.GetDesLengthL(1); |
435 const TInt KSqlQueryMaxLen = aMessage.GetDesLengthL(1); |
395 HBufC* searchQuery = HBufC::NewLC(KSqlQueryMaxLen); |
436 HBufC* searchQuery = HBufC::NewLC(KSqlQueryMaxLen); |
396 TPtr searchQueryPtr(searchQuery->Des()); |
437 TPtr searchQueryPtr(searchQuery->Des()); |