diff -r 5e5d6b214f4f -r 81eeb8c83ce5 uiservicetab/vimpstdetailsviewplugin/inc/cvimpstdetailscontacthandler.h --- a/uiservicetab/vimpstdetailsviewplugin/inc/cvimpstdetailscontacthandler.h Tue Feb 02 10:12:18 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,414 +0,0 @@ -/* -* 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: contact handler class implementaion to virtual phonebook observers - * -*/ - - -#ifndef CVIMPSTCONTACTHANDLER_H -#define CVIMPSTCONTACTHANDLER_H - -#include -#include -#include -#include - -#include -#include -#include -#include - -// forward declaration -class CVPbkContactManager; -class MVPbkContactLinkArray; -class MVPbkContactLink; -class MVPbkStoreContact; -class MVPbkContactOperationBase; -class MVPbkContactStoreList; -class MVIMPSTDetailsViewContactObserver; -class MCCAParameter; - -enum TStoreType - { - EStoreUnkwon = -1, - EStoreLocal, - EStoreServer - }; -/** - * contact handler class implementaion to virtual phoneboo observers - * @lib vimpstdetailsviewplugin.dll - * @since S60 v5.0 - */ -class CVIMPSTDetailsContactHandler : public CActive, - public MVPbkSingleContactOperationObserver, - public MVPbkContactFindObserver, - public MVPbkContactStoreListObserver - { - - public: - - /** - * Two-phased constructor. - * @param aParameter , reference to plugin parameter - * @param aObserver , reference to contact view class - * @param aServiceStoreUri , service store name - * @return instance of same class - * @since S60 v5.0 - * - */ - static CVIMPSTDetailsContactHandler* NewL( MCCAParameter& aParameter, - MVIMPSTDetailsViewContactObserver& aObserver, - const TDesC& aServiceStoreUri, - const TDesC& aServiceName, - TUint aserviceId); - - /** - * Destructor. - * @since S60 v5.0 - */ - ~CVIMPSTDetailsContactHandler(); - - /** - * set the specified link ,it take the ownership of links. - * @param aLinks , links to set - * @param aReadXspId , need to read xsp id from contacts.cdb or not - * @since S60 v5.0 - */ - void SetLinks( MVPbkContactLinkArray* aLinks,TBool aReadXspId ); - - /** - * @return XSPuserId. - * @since S60 v5.0 - */ - const TDesC& GetXSPUserId(); - - /** - * @return List of all open store. - * @since S60 v5.0 - */ - MVPbkContactStoreList& ContactStoresL(); - - /** - * @return store type - * @since S60 v5.0 - */ - TStoreType StoreType(); - - /** - * @return current iCurrentLink. - * @since S60 v5.0 - */ - MVPbkContactLinkArray* Links() const; - - /** - * cancel the ongoing request. - * @since S60 v5.0 - */ - void CancelOngoingRequest(); - - public: // From CActive - /** - * from CActive. - * @since S60 v5.0 - */ - void RunL(); - - /** - * from CActive. - * @since S60 v5.0 - */ - TInt RunError(TInt aError); - - /** - * from CActive. - * @since S60 v5.0 - */ - void DoCancel(); - - public: // From MVPbkSingleContactOperationObserver - - /** - * from MVPbkSingleContactOperationObserver. - * Called when the operation is completed. - * - * A client has the operation as a member and it can delete the operation - * instance in this function call. If the implementation of the store - * calls the function from the operation instance it must not handle - * any member data after calling it. - * - * @param aOperation The completed operation. - * @param aContact The contact returned by the operation. - * A client must take the ownership immediately. - * - * NOTE: - * If you use CleanupStack for MVPbkStoreContact - * Use MVPbkStoreContact::PushL or - * CleanupDeletePushL from e32base.h. - * (Do Not Use CleanupStack::PushL(TAny*) because - * then the virtual destructor of the M-class - * won't be called when the object is deleted). - * @since S60 v5.0 - */ - void VPbkSingleContactOperationComplete( - MVPbkContactOperationBase& aOperation, - MVPbkStoreContact* aContact); - - /** - * from MVPbkSingleContactOperationObserver. - * Called if the operation fails. - * - * A client has the operation as a member and it can delete the operation - * instance in this function call. If the implementation of the store - * calls the function from the operation instance it must not handle - * any member data after calling it. - * - * @param aOperation The failed operation. - * @param aError An error code of the failure. - * @since S60 v5.0 - */ - void VPbkSingleContactOperationFailed( - MVPbkContactOperationBase& aOperation, - TInt aError); - - public: // From MVPbkContactFindObserver - /** - * Called when find is complete. Caller takes ownership of the results - * In case of an error during find, the aResults may contain only - * partial results of the find - * - * @param aResults Array of contact links that matched the find - * Callee must take ownership of this object in - * the start of the function, ie. in case the - * function leaves the results must be destroyed. - * The find operation can be destroyed at the end - * of this callback. - */ - void FindCompleteL( MVPbkContactLinkArray* aResults ) ; - - /** - * Called in case the find fails for some reason. The find operation - * can be destroyed at the end of this callback. - * - * @param aError One of the system wide error codes. - * KErrNotReady if store is not ready (not open or unavailable) - */ - void FindFailed( TInt aError ) ; - - /* - * get the display name of the contact to show in the status pane - */ - - HBufC* GetDisplayNameLC(); - - private: // From MVPbkContactStoreListObserver - - /** - * from MVPbkContactStoreListObserver - * Called when the opening process is complete. - * - * Before this all stores have sent StoreReady or StoreUnavailable - * event. The client can not trust that all stores are available - * for use when this is called. - * @since S60 v5.0 - */ - void OpenComplete(); - - /** - * from MVPbkContactStoreListObserver - * Called when a contact store is ready to use. - * - * @param aContactStore The store that is ready. - * @since S60 v5.0 - */ - void StoreReady(MVPbkContactStore& aContactStore ); - - /** - * from MVPbkContactStoreListObserver - * Called when a contact store becomes unavailable. - * - * Client may inspect the reason of the unavailability and decide - * whether or not it will keep the store opened (ie. listen to - * the store events). - * - * @param aContactStore The store that became unavailable. - * @param aReason The reason why the store is unavailable. - * This is one of the system wide error codes. - * @since S60 v5.0 - */ - void StoreUnavailable(MVPbkContactStore& aContactStore, TInt aReason ); - - /** - * from MVPbkContactStoreListObserver - * Called when changes occur in the contact store. - * - * @see TVPbkContactStoreEvent - * @param aContactStore A store whose event it is. - * @param aStoreEvent The event that has occurred. - * @since S60 v5.0 - */ - void HandleStoreEventL(MVPbkContactStore& aContactStore, TVPbkContactStoreEvent aStoreEvent ); - - - private: - - /** - * default constructor - * @param aObserver , contact observer - * @since S60 v5.0 - */ - CVIMPSTDetailsContactHandler( MVIMPSTDetailsViewContactObserver& aObserver, TUint aserviceId ); - - /** - * provides two phase constrcution. - * @param aPluginParameter , plugin parameter - * @param aServiceStoreUri , service store name - * @since S60 v5.0 - */ - void ConstructL( MCCAParameter& aParameter, const TDesC& aServiceStoreUri, const TDesC& aServiceName ); - - /** - * helper method for issue pending request. - * @param aError , error if any - * @since S60 v5.0 - */ - void IssueRequest(TInt aError = KErrNone); - - /* API to be used for local store only - * to check whether the phonebook contact is a buddy the service installed - * @ param aCurrentLink of the phonebook contact - * return ETrue if the link is a buddy of that service - * @since S60 v5.0 - */ - TBool CheckWhetherValidLocalLinkL( - const MVPbkContactLink& aCurrentLink ); - - /* API to be used for local store service only - * to check whether the local %service_name%.db (which has contact identifiers) - * exsists already - */ - TBool DbExists(); - /* API to be used for local store only - * open's the local %service_name%.db file - */ - void OpenDbL(); - - /* API to be used for local store only - * close's the local %service_name%.db file - */ - void CloseDb(); - - /* API to be used for local store only - * search the identifier aIdentifier passed in the ColNo aColNo of the db file - * return ETrue if the identifier is found in the db col - * @since S60 v5.0 - */ - TBool SeekRowL( TDbColNo aColNo, TInt32& aIdentifier ); - - /* API to be used for local store only - * open db table - * @since S60 v5.0 - */ - void OpenTableL(); - - - private: // data - - /** - * Not own : Reference to details view plugin - */ - MVIMPSTDetailsViewContactObserver& iObserver; - - /** - * own :Reference to contact manager. - */ - CVPbkContactManager* iContactManager; - - /** - * owns : reference to link array - */ - MVPbkContactLinkArray* iLinks; - - /** - * not owns : reference to contact link which is owned by iLinks - */ - const MVPbkContactLink* iCurrentLink; - - /** - * owns : reference to operation base contact - */ - MVPbkContactOperationBase* iRetrieveOperation; - - /** - * owns : extracted user id from pbk xsp id - */ - HBufC* iXSPUserId; - - /** - * owns : if ETrue , xsp id need to read - */ - TBool iReadXspId; - - /** - * owns : list of open store - */ - MVPbkContactStoreList* iStoreList; - - /** - * owns : reference to active chedular - */ - CActiveSchedulerWait iWait; - - /** - * owns : service store uri - */ - HBufC* iServiceStoreUri; - - - /** - * Owned : Pointer to MVPbkStoreContact - */ - MVPbkStoreContact* iStoreContact; - - // owns : store type - TStoreType iStoreType; - - // owns, service name - HBufC* iServiceName; - - - //Ownns - DB Store - CPermanentFileStore* iFileStore; - - //File Stream - RFs iFs; - - //DataBase Object for Creating/Opening/Closing DB - RDbStoreDatabase iDb; - - // current column set - CDbColSet* iColset; // owned - - - RDbTable iTable; // current table - - // own , contact id converter to and from link - CVPbkContactIdConverter* iIdConverter; - - TUint iServiceId; - - }; - -#endif // CVIMPSTCONTACTHANDLER_H - -// End of File