--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/phonebookengines/VirtualPhonebook/VPbkCntModel/inc/CFindInTextDefOperation.h Tue Feb 02 10:12:17 2010 +0200
@@ -0,0 +1,96 @@
+/*
+* Copyright (c) 2006-2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: A find operation that uses
+* CContactDataBase::FindInTextDefAsyncL
+*
+*/
+
+
+#ifndef C_CFINDINTEXTDEFOPERATION_H
+#define C_CFINDINTEXTDEFOPERATION_H
+
+#include <e32base.h>
+#include <cntdb.h>
+#include <MVPbkContactOperation.h>
+
+// FORWARD DECLARATIONS
+class MVPbkFieldTypeList;
+class MVPbkContactFindFromStoresObserver;
+class CVPbkContactLinkArray;
+
+namespace VPbkCntModel {
+
+// FORWARD DECLARATIONS
+class CContactStore;
+
+/**
+ * A find operation that uses CContactDataBase::FindInTextDefAsyncL
+ *
+ */
+NONSHARABLE_CLASS(CFindInTextDefOperation)
+ : public CBase,
+ public MVPbkContactOperation,
+ private MIdleFindObserver
+ {
+public:
+ static CFindInTextDefOperation* NewL(
+ CContactStore& aContactStore,
+ const MDesC16Array& aSearchStrings,
+ const MVPbkFieldTypeList& aFieldTypes,
+ MVPbkContactFindFromStoresObserver& aObserver,
+ const TCallBack& aWordParserCallBack );
+ virtual ~CFindInTextDefOperation();
+
+// from base class MVPbkContactOperation
+ void StartL();
+ void Cancel();
+
+private:
+// from base class MIdleFindObserver
+ void IdleFindCallback();
+
+private:
+
+ CFindInTextDefOperation( CContactStore& aContactStore,
+ MVPbkContactFindFromStoresObserver& aObserver,
+ const TCallBack& aWordParserCallBack );
+ void ConstructL( const MDesC16Array& aSearchStrings,
+ const MVPbkFieldTypeList& aFieldTypes );
+ static TInt ConvertResults( TAny* aThis );
+ TInt ConvertResultsL();
+ void HandleError( TInt aError );
+
+private: // data
+ /// Ref: the store implementation
+ CContactStore& iStore;
+ /// Ref: the observer of the operation
+ MVPbkContactFindFromStoresObserver& iObserver;
+ /// Ref: the word parser from the client
+ TCallBack iWordParserCallBack;
+ /// Own: the search strings
+ CDesCArrayFlat* iSearchStrings;
+ /// Own: defines the field types that used for searching
+ CContactTextDef* iTextDefs;
+ /// Own: a find operation from contact model
+ CIdleFinder* iAsyncFinder;
+ /// Own: matched contact ids
+ CContactIdArray* iContactIds;
+ /// Own: an idle for asynchronous find completion
+ CIdle* iIdle;
+ /// Own: an arrau of contact find results
+ CVPbkContactLinkArray* iResults;
+ };
+} // VPbkCntModel
+
+#endif // C_CFINDINTEXTDEFOPERATION_H