phonebookengines_old/contactsmodel/tsrc/cntfindplugin/src/cntfindplugin.cpp
changeset 40 b46a585f6909
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phonebookengines_old/contactsmodel/tsrc/cntfindplugin/src/cntfindplugin.cpp	Fri Jun 11 13:29:23 2010 +0300
@@ -0,0 +1,160 @@
+// Copyright (c) 2002-2009 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 simple find implementation of the interface CFindUtilInterface
+// 
+//
+
+#include <cntviewfindconfig.h>
+#include <ecom/implementationproxy.h>
+
+// Static DLL functions
+
+// ____________________________________________________________________________
+// 
+/**
+	@class CFindUtilBase
+	Intended usage: This class implements the functionality promised by 
+	the CFindUtilInterface defintion class. It does little apart from 
+	implementing a simple find,as a demonsration of using ECOM to load a test
+	plugin.
+ */
+class CFindUtilBase : public CContactViewFindConfigInterface
+{
+// Methods
+public:
+/**
+	@fn				NewL(TAny* aInitParams)
+	Intended Usage	: Standardised safe construction which leaves nothing the cleanup stack.
+	Error Condition	: Leaves with error code.
+	@leave KErrNoMemory.
+	@since			7.0
+	@param			None
+	@return			CFindUtilBase* The class instance.
+	@pre 			None
+	@post			CFindUtilBase has been constructed,
+					and initialised.
+ */
+	static CFindUtilBase* NewL();
+
+/**
+	@fn				~CFindUtilBase()
+	Intended Usage	: Default Destructor	
+	Error Condition	: None	
+	@since			7.0
+	@pre 			CFindUtilBase has been constructed
+	@post			CFindUtilBase has been completely destroyed.
+ */
+	virtual ~CFindUtilBase();
+
+public:
+	//Methods that implement the pure virtual functions defined as part of the interface.
+	virtual void OpenL() ;
+	virtual void Close() ;
+	virtual TBool Match(const TDesC& aContactsField, const TDesC& aWord);	
+	virtual TBool IsWordValidForMatching(const TDesC& aWord);
+	virtual TBool MatchRefineL( const TDesC& aItemString, const TDesC &aSearchText);
+
+private:
+/**
+	@fn				CFindUtilBase()
+	Intended Usage	: Default Constructor : usable only by derived classes	
+	Error Condition	: None	
+	@since			7.0
+	@pre 			None
+	@post			CFindUtilBase has been constructed
+ */
+	CFindUtilBase();
+
+};  // End of CFindUtilBase definition
+
+// __________________________________________________________________________
+// Implementation
+
+CFindUtilBase* CFindUtilBase::NewL()
+// Intended Usage	: Safe construction which leaves nothing upon the cleanup stack	
+// Error Condition	: Will leave with an appropriate error code	
+// Dependencies	: CBase
+// @param			" "
+// @return			CFindUtilBase* a pointer to the fully instantiated CFindUtilBase object
+// @pre 			None
+// @post			The object has been fully instantiated
+// Static member
+	{
+	CFindUtilBase* self=new(ELeave) CFindUtilBase();  // calls c'tor
+	return self;
+	}
+
+CFindUtilBase::~CFindUtilBase()
+// Default virtual d'tor
+	{
+	}
+
+CFindUtilBase::CFindUtilBase()
+// Default c'tor for use by derived and 
+// static construction methods only
+: CContactViewFindConfigInterface()
+	{
+	}
+
+void CFindUtilBase::OpenL()
+	{
+	}
+
+void CFindUtilBase::Close()
+	{
+	}
+
+TBool CFindUtilBase::Match(const TDesC& aContactsField, const TDesC& aWord)
+	{
+	TInt srchLen = aWord.Length();
+	if (!aContactsField.Length() || (srchLen > aContactsField.Length()))
+		{
+		return EFalse;
+		}
+	TPtrC matchStr(aContactsField.Left(srchLen));
+	return (matchStr.MatchC(aWord) != KErrNotFound);
+	}
+
+TBool CFindUtilBase::IsWordValidForMatching(const TDesC& aWord)
+	{
+		if(aWord == aWord)
+			return ETrue;
+		return EFalse;
+	}
+
+
+TBool CFindUtilBase::MatchRefineL( const TDesC& aItemString, const TDesC &aSearchText)
+	{
+	if(aItemString.MatchC(aSearchText))
+		{
+		return ETrue;
+		}
+	return EFalse;
+	}
+
+// __________________________________________________________________________
+// Exported proxy for instantiation method resolution
+// Define the interface UIDs
+const TImplementationProxy ImplementationTable[] = 
+	{
+		IMPLEMENTATION_PROXY_ENTRY(0x101F8012,	CFindUtilBase::NewL),
+	};
+
+EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount)
+	{
+	aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
+
+	return ImplementationTable;
+	}
+