diff -r d4f567ce2e7c -r 5b6f26637ad3 phonebookengines_old/contactsmodel/tsrc/cntfindplugin/src/cntfindplugin.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/phonebookengines_old/contactsmodel/tsrc/cntfindplugin/src/cntfindplugin.cpp Tue Aug 31 15:05:21 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 +#include + +// 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; + } +