phoneengine/PhoneCntFinder/ContactService/inc/CPhCntContactManager.h
changeset 0 5f000ab63145
child 31 ba54057fe027
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneengine/PhoneCntFinder/ContactService/inc/CPhCntContactManager.h	Mon Jan 18 20:18:27 2010 +0200
@@ -0,0 +1,362 @@
+/*
+* 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:  Offers services from phonebook.
+*
+*/
+
+#ifndef CPHCNTCONTACTMANAGER_H
+#define CPHCNTCONTACTMANAGER_H
+
+#include <e32base.h>
+#include <MVPbkContactStoreListObserver.h>
+#include "MPhCntContactManager.h"
+#include "mphcntvoipcontactfinder.h"
+
+class CVPbkContactManager;
+class CVPbkContactStoreUriArray;
+class MPbk2ContactNameFormatter;
+class CPbk2SortOrderManager;
+class CVPbkContactIdConverter;
+class CVPbkSpeedDialAttribute;
+class CPbk2ImageManager;
+class CVPbkFieldTypeRefsList;
+class CPhCntContactStoreUris;
+class MPhCntStoreLoaderObserver;
+
+/**
+ *  Offers services from phonebook.
+ *
+ *  @lib PhoneCntFinder
+ *  @since S60 v3.1
+ */
+NONSHARABLE_CLASS( CPhCntContactManager ): 
+    public CBase, 
+    public MPhCntContactManager, 
+    public MVPbkContactStoreListObserver,
+    public MPhCntVoipContactFinder
+    {
+public:
+    
+    /**
+     * Static constructor.
+     *
+     * @since S60 v3.1
+     */
+    static CPhCntContactManager* NewL();
+    
+    /**
+     * Destructor.
+     *
+     * @Since S60 v3.1
+     */
+    ~CPhCntContactManager();
+    
+    /**
+     * Gives reference to contact manager.
+     *
+     * @since S60 v3.2
+     * @return Contact manager.
+     */
+    CVPbkContactManager& ContactManager() const;
+    
+    /**
+     * Return list of additional contact stores
+     * @since S60 v3.2
+     * @return Array of additional contact stores
+     */
+    const CVPbkContactStoreUriArray& AdditionalContactStoreUris();
+
+    
+// From base class MPhCntContactManager
+
+	/**
+	 * From MPhCntContactManager.
+	 *
+	 * @since S60 v3.1
+	 * @see MPhCntContactManager.
+	 */
+    MVPbkContactOperationBase* RetrieveContactL(
+        const MVPbkContactLink& aLink,
+        MVPbkSingleContactOperationObserver& aObserver );
+       
+    /**
+	 * From MPhCntContactManager.
+	 *
+	 * @since S60 v3.1
+	 * @see MPhCntContactManager.
+	 */ 
+    MVPbkContactStoreList& ContactStoresL() const;
+   
+    /**
+     * From MPhCntContactManager.
+	 *
+	 * @since S60 v3.1
+	 * @see MPhCntContactManager.
+	 */
+    MPhCntContactMatchStrategy* CreateContactMatchStrategyL(
+            MVPbkContactFindObserver& aObserver,
+            TBool aRemoveDuplicates );
+   
+    /**
+     * From MPhCntContactManager.
+     *
+     * @since S60 v3.1
+     * @see MPhCntContactManager.
+     */         
+    MPbk2ContactNameFormatter& ContactNameFormatter();
+   
+    /**
+     * From MPhCntContactManager.
+     *
+     * @since S60 v3.1
+     * @see MPhCntContactManager.
+     */
+    MVPbkContactLinkArray* ConvertContactIdsToLinksL(  
+        const CArrayFix<TContactItemId>& aContactId ) const;
+    
+    /**
+     * From MPhCntContactManager.
+     *
+     * @since S60 v3.1
+     * @see MPhCntContactManager.
+     */    
+    MVPbkContactLink* ConvertContactIdToLinkL( 
+        TContactItemId aContactId ) const;   
+        
+    /**
+     * From MPhCntContactManager.
+     *
+     * @since S60 v3.1
+     * @see MPhCntContactManager.
+     */
+    TContactItemId ConvertContactLinkToContactId(
+        const MVPbkContactLink& aContactLink ) const;
+    
+    /**
+     * From MPhCntContactManager.
+     *
+     * @since S60 v3.2
+     * @see MPhCntContactManager.
+     */   
+    MVPbkContactLink* ConvertDescriptorToLinkL( const TDesC8& aPackedLink ) const;
+     
+    /**
+     * From MPhCntContactManager.
+     *
+     * @since S60 v3.1
+     * @see MPhCntContactManager.
+     */   
+    MVPbkContactOperationBase* RetrieveSpeedDialContactLinkL(
+        const TInt aSpeedDialPosition,
+        MVPbkContactFindObserver& aObserver );
+        
+    /**
+     * From MPhCntContactManager.
+     *
+     * @since S60 v3.2
+     * @see MPhCntContactManager.
+     */   
+	TBool HasSpeedDialL(        
+		const TInt aSpeedDialPosition,
+		const MVPbkStoreContactField& aField );
+    
+    /**
+     * Retrieves contacts thumbnail. To cancel the thumbnail
+     * fetch, delete operation.
+     *
+     * @since S60 v3.1
+     * @param aContact Contact, which thumbnail is fetched.
+     * @param aThumbnailFieldType Thumbnails field type.
+     * @param aObserver Observer of the fetch.
+     */
+    MPbk2ImageOperation* RetrieveImageL(
+        MVPbkStoreContact& aStoreContact,
+        const MVPbkFieldType& aThumbnailFieldType,
+        MPbk2ImageGetObserver& aObserver );
+    
+    /**
+     * From MPhCntContactManager.
+     *
+     * @since S60 v3.2
+     * @see MPhCntContactManager.
+     */   
+    CVPbkFieldTypeSelector* CreateFieldTypeSelectorL() const;
+    
+    /**
+     * From MPhCntContactManager.
+     *
+     * @since S60 v3.2
+     * @see MPhCntContactManager.
+     */  
+    void AppendFilterToSelectorL( CVPbkFieldTypeSelector& aSelector,
+        TVPbkContactViewFilter aFilter );
+
+    /**
+     * From MPhCntContactManager. 
+     *
+     * @since   S60 v9.1
+     * @see MPhCntContactManager.
+     */
+    void LoadContactStoreL( const TDesC8& aContactLink,
+        MPhCntStoreLoaderObserver& aObserver );
+
+    /**
+     * From MPhCntContactManager. 
+     *
+     * @since   S60 v9.1
+     * @see MPhCntContactManager.
+     */    
+    void LoadContactStoreWithUriL(
+        const TDesC& aStoreUri,
+        MPhCntStoreLoaderObserver& aObserver );
+ 
+    /**
+     * From MPhCntContactManager. 
+     *
+     * @since   S60 v9.1
+     * @see MPhCntContactManager.
+     */
+    CPhCntContactStoreUris& ContactStoreUrisL();
+	
+// From base class MPhCntContactFinder
+    
+    /**
+     * From base class MPhCntVoipContactFinder
+     * Finds voip contacts, with given URI or partial URI. To cancel
+     * the find, destroy the returned operation.
+     * @since S60 v3.1
+     * @param aSipURI Sip uri defining wanted matches.
+     * @param aObserver Observer of the operation.
+     * @return Operation.
+     */
+    MVPbkContactOperationBase* FindVoipContactsL( 
+        const TDesC& aSipURI,
+        MVPbkContactFindObserver& aObserver ) const;
+
+// From base class MVPbkContactStoreListObserver
+    
+    /**
+     * From MVPbkContactStoreListObserver.
+     * 
+     * @since S60 v3.1
+     * @see MVPbkContactStoreListObserver
+     */	
+    void OpenComplete();
+    
+// From base class MVPbkContactStoreObserver 
+
+    /**
+     * From MVPbkContactStoreObserver.
+     * 
+     * @since S60 v3.1
+     * @see MVPbkContactStoreObserver
+     */
+    void StoreReady( MVPbkContactStore& aContactStore );
+    
+    /**
+     * From MVPbkContactStoreObserver.
+     * 
+     * @since S60 v3.1
+     * @see MVPbkContactStoreObserver
+     */
+    void StoreUnavailable( MVPbkContactStore& aContactStore, TInt aReason );
+    
+    /**
+     * From MVPbkContactStoreObserver.
+     * 
+     * @since S60 v3.1
+     * @see MVPbkContactStoreObserver
+     */
+    void HandleStoreEventL(
+        MVPbkContactStore& aContactStore, 
+        TVPbkContactStoreEvent aStoreEvent);
+    
+private:
+        
+    CPhCntContactManager();
+    
+    void ConstructL();
+    
+    /**
+     * Adds voip field types.
+     * 
+     * @since S60 v3.1
+     * @param aVoipFieldType VoIP field type.
+     */
+    void AddVoipFieldTypeL( const MVPbkFieldType* aVoipFieldType );
+    
+private:
+
+    /**
+     * Contact manager.
+     * Own.
+     */
+    CVPbkContactManager* iContactManager;
+    
+    /**
+     * Contact name formatter.
+     * Own.
+     */
+    MPbk2ContactNameFormatter* iContactNameFormatter;
+    
+    /**
+     * Sort order.
+     * Own.
+     */
+    CPbk2SortOrderManager* iSortOrder;
+    
+    /**
+     * Contact id converter.
+     * Own.
+     */
+    CVPbkContactIdConverter* iContactIdConverter;
+    
+    /**
+     * Contact store.
+     * Not own.
+     */
+    MVPbkContactStore* iContactDBStore;
+    
+    /**
+     * Speed dial.
+     * Own 
+     */
+     CVPbkSpeedDialAttribute* iSpeedDialAttribute;
+     
+     /**
+      * For retrieveing thumbnail from contact.
+      * own.
+      */
+     CPbk2ImageManager* iImageManager;
+     
+     /**
+      * For finding voip contacts.
+      * Own.
+      */
+     CVPbkFieldTypeRefsList* iVoipFieldTypeList;
+    
+     /**
+      * Contact store uris
+      * Own.
+      */
+     CPhCntContactStoreUris* iContactStoreUris;
+    
+     /**
+      * Store loader observer.
+      * Not own.
+      */
+     MPhCntStoreLoaderObserver* iStoreLoaderObserver;
+    };
+
+#endif // CPHCNTCONTACTMANAGER_H
\ No newline at end of file