diff -r 41a7f70b3818 -r 5266b1f337bd phoneengine/PhoneCntFinder/ContactService/inc/MPhCntContactManager.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/phoneengine/PhoneCntFinder/ContactService/inc/MPhCntContactManager.h Wed Sep 01 12:30:10 2010 +0100 @@ -0,0 +1,235 @@ +/* +* Copyright (c) 2006 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: Interface for phonebook services. +* +*/ + + +#ifndef MPHCNTCONTACTMANAGER_H +#define MPHCNTCONTACTMANAGER_H + +#include +#include + +class MVPbkContactLink; +class MVPbkSingleContactOperationObserver; +class MVPbkContactOperationBase; +class MVPbkContactStoreList; +class MVPbkContactFindObserver; +class MPhCntContactMatchStrategy; +class MPbk2ContactNameFormatter; +class CVPbkContactIdConverter; +class MVPbkContactLinkArray; +class MVPbkContactFindObserver; +class MPbk2ImageOperation; +class MPbk2ImageGetObserver; +class MVPbkFieldType; +class MVPbkStoreContact; +class MVPbkStoreContactField; +class CVPbkFieldTypeSelector; +class MPhCntStoreLoaderObserver; +class CPhCntContactStoreUris; + +/** + * Interface for phonebook services. + * + * @since S60 v3.1 + * @lib PhoneCntFinder.lib + */ +NONSHARABLE_CLASS( MPhCntContactManager ) + { +public: + + enum TDuplicateRemovalStrategy { + ERemoveDuplicates, + EDontRemoveDuplicates + }; + + /** + * Retrieves contact from phonebook. + * + * @since S60 v3.1 + * @param aLink Link to the contact. + * @param aObserver Observer for the retrieval. + * @return Handle to the retrieval operation. + */ + virtual MVPbkContactOperationBase* RetrieveContactL( + const MVPbkContactLink& aLink, + MVPbkSingleContactOperationObserver& aObserver) = 0; + + /** + * Gives the list of contact stores. + * + * @since S60 v3.1 + * @return List of contact stores. + */ + virtual MVPbkContactStoreList& ContactStoresL() const = 0; + + /** + * Factory method for creating contact match strategy. + * + * @since S60 v3.1 + * @param aObserver Contact match strategy observer. + * @param aStrategy Contact dupe removal strategy + * @return New contact match strategy instance. + */ + virtual MPhCntContactMatchStrategy* CreateContactMatchStrategyL( + MVPbkContactFindObserver& aObserver, + TDuplicateRemovalStrategy aStrategy )= 0; + + /** + * Gives access to contact name formatter. + * + * @since S60 v3.1 + * @return Contact name formatter. + */ + virtual MPbk2ContactNameFormatter& ContactNameFormatter() = 0; + + /** + * Converts contact ids to contact links. + * + * @since S60 v3.1 + * @param aContactId Array of contact ids. + * @return Array of contact links. Ownership given. + */ + virtual MVPbkContactLinkArray* ConvertContactIdsToLinksL( + const CArrayFix& aContactId ) const = 0; + + /** + * Converts contact id to contact link. + * + * @since S60 v3.1 + * @param aContactId Contact id from Contact DB. + * @return Concact link, ownership is given to caller. + * If the aContactId is KNullContactId then then returned value is NULL. + */ + virtual MVPbkContactLink* ConvertContactIdToLinkL( + TContactItemId aContactId ) const = 0; + + /** + * Converts contact link to contact id. + * + * @since S60 v3.1 + * @param aContactLink Reference to contactlink. + * @return Contact id. + */ + virtual TContactItemId ConvertContactLinkToContactId( + const MVPbkContactLink& aContactLink ) const = 0; + + /** + * Converts packed link descriptor to contact link. + * + * @since S60 v3.2 + * @param aPackeLink Link prepresented as desctiptor. + * @return Contact link. Returns null if aPackedLink length is 0. + */ + virtual MVPbkContactLink* ConvertDescriptorToLinkL( + const TDesC8& aPackedLink ) const = 0; + + /** + * Retrieves contact, which has been assinged to speeddial position + * aSpeedDialPosition. + * + * @since S60 v3.1 + * @param aSpeedDialPosition Speed dial position. + * @param aObserver Observer for operation. + * @return Operation, ownership is given to caller. + */ + virtual MVPbkContactOperationBase* RetrieveSpeedDialContactLinkL( + const TInt aSpeedDialPosition, + MVPbkContactFindObserver& aObserver ) = 0; + + /** + * Indicates whether the speed dial attribute has been set for the given position. + * + * @since S60 v3.2 + * @see MPhCntContactManager. + * @param aSpeedDialPosition Speed dial position. + * @param aField Field to be evaluated. + * @return ETrue if aField has a matching speed dial position, + * EFalse otherwise. + */ + virtual TBool HasSpeedDialL( + const TInt aSpeedDialPosition, + const MVPbkStoreContactField& aField ) = 0; + + /** + * Retrieves contacts image. To cancel the thumbnail + * fetch, delete operation. + * + * @since S60 v3.1 + * @param aContact Contact, which image is fetched. + * @param aFieldType Field type. + * @param aObserver Observer of the fetch. + */ + virtual MPbk2ImageOperation* RetrieveImageL( + MVPbkStoreContact& aStoreContact, + const MVPbkFieldType& aFieldType, + MPbk2ImageGetObserver& aObserver ) = 0; + + /** + * Creates field type selector. + * + * @since S60 v3.2 + */ + virtual CVPbkFieldTypeSelector* CreateFieldTypeSelectorL() const = 0; + + /** + * Appends filter to selector. + * + * @since S60 v3.2 + * @param aSelector Selector to append the filter. + * @param aFilter The filter to be appended. + */ + virtual void AppendFilterToSelectorL( CVPbkFieldTypeSelector& aSelector, + TVPbkContactViewFilter aFilter ) = 0; + + /** + * Loads the store specified in the contact link and adds the store to + * the list of stores handled by this manager. + * + * @since S60 v9.1 + * @param aContactLink A contact link containing store to load. + * @param aObserver An observer for the loading process. + */ + virtual void LoadContactStoreL( const TDesC8& aContactLink, + MPhCntStoreLoaderObserver& aObserver ) = 0; + + /** + * Loads the store specified by the URI and adds the store to + * the list of stores handled by this manager. + * + * @since S60 v9.1 + * @param aStoreUri A URI of the store to load. + * @param aObserver An observer for the loading process. + */ + virtual void LoadContactStoreWithUriL( + const TDesC& aStoreUri, + MPhCntStoreLoaderObserver& aObserver ) = 0; + + /** + * Return contact store uri's. + * + * @since S60 v9.1 + */ + virtual CPhCntContactStoreUris& ContactStoreUrisL() = 0; + +protected: + + MPhCntContactManager(){}; + + virtual ~MPhCntContactManager() {}; + }; + +#endif