diff -r 000000000000 -r 5f000ab63145 phoneengine/PhoneCntFinder/ContactService/inc/cphcntstoreloaderimpl.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/phoneengine/PhoneCntFinder/ContactService/inc/cphcntstoreloaderimpl.h Mon Jan 18 20:18:27 2010 +0200 @@ -0,0 +1,138 @@ +/* +* Copyright (c) 2008 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: Phone contact data store loader implementation. +* +*/ + + +#ifndef C_PHCNTSTORELOADERIMPL_H +#define C_PHCNTSTORELOADERIMPL_H + +#include "mphcntstoreloader.h" +#include "mphcntstoreloaderobserver.h" +#include "cphcntasynctosync.h" + +class MPhCntContactManager; +class MVPbkContactStore; + +/** + * Implements services to load contact data stores. + * + * @lib phonecntfinder + * @since S60 9.1 + */ +NONSHARABLE_CLASS( CPhCntStoreLoaderImpl ) + : + public CPhCntAsyncToSync, + public MPhCntStoreLoader, + public MPhCntStoreLoaderObserver + { + +public: + + /** + * Two-phased constructor. + * @param aManager Contact manager. + */ + static CPhCntStoreLoaderImpl* NewL( MPhCntContactManager& aManager ); + + /** + * Two-phased constructor. + * @param aManager Contact manager. + */ + static CPhCntStoreLoaderImpl* NewLC( MPhCntContactManager& aManager ); + + /** + * Destructor. + */ + virtual ~CPhCntStoreLoaderImpl(); + +// from base class MPhCntStoreLoader + + /** + * From MPhCntStoreLoader. + * + * @since S60 v9.1 + * @see MPhCntStoreLoader. + */ + TBool IsContactStoreLoaded( const TDesC8& aContactLink ) const; + + /** + * From MPhCntStoreLoader. + * + * @since S60 v9.1 + * @see MPhCntStoreLoader. + */ + void LoadContactStoreL( const TDesC8& aContactLink, + MPhCntStoreLoaderObserver& aObserver ); + +// from base class MPhCntStoreLoaderObserver + + /** + * From MPhCntStoreLoaderObserver. + * + * @since S60 v9.1 + * @see MPhCntStoreLoaderObserver. + */ + void ContactStoreLoadingCompleted( + MVPbkContactStore* aStore, TInt aErrorCode ); +public: + /** + * Loads contact store with uri + * + * @since S60 v5.1 + * @param aStoreUri Uri of the store to be loaded. + */ + TInt LoadContactStoreWithUri( const TDesC& aStoreUri ); + +protected: + /** + * From CPhCntAsyncToSync. + * + * @since S60 v3.2 + * @see CPhCntAsyncToSync. + */ + void DoMakeAsyncRequestL(); +private: + + CPhCntStoreLoaderImpl( MPhCntContactManager& aManager ); + + void ConstructL(); + + TBool IsContactStoreLoadedL( const TDesC8& aContactLink ) const; + + TBool IsContactStoreLoadedL( const TDesC16& aContactStoreUri ) const; +private: // data + + /** + * Contact manager. + * Not own. + */ + MPhCntContactManager& iContactManager; + + /** + * Observer for contact store loading process. + * Not own. + */ + MPhCntStoreLoaderObserver* iObserver; + + /** + * Pointer to uri of the store to be loaded. + * Not own. + */ + const TDesC* iStoreUri; + }; + +#endif // C_PHCNTSTORELOADERIMPL_H +