diff -r 2b7283837edb -r 3104fc151679 uiservicetab/vimpststorage/inc/cvimpststoragevpbklocalstore.h --- a/uiservicetab/vimpststorage/inc/cvimpststoragevpbklocalstore.h Thu Aug 19 09:41:53 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,329 +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: Class that provides handling of vpbk local store -* -*/ - - -#ifndef C_CVIMPSTSTORAGELOCALSTORE_H -#define C_CVIMPSTSTORAGELOCALSTORE_H - -#include -#include -#include - -#include "mvimpststoragevpbkcontactstore.h" -#include "mvimpststoragevpbkstorehandler.h" - -//forward declaration -class CVIMPSTStorageVPbkStoreHandler; -class MVPbkViewContact; -class CVPbkContactIdConverter; -class MVIMPSTStorageVPbkStoreHandler; -class MVIMPSTStorageServiceCacheWriter; -class MVPbkContactLink; -class MVPbkStoreContact; -class CVPbkContactLinkArray; -class MVIMPSTStorageContact; - -// CLASS DECLARATION -/** - * vpbk local store - * This class implements the use of Virtual Phonebook for Local Store(Contacts.cdb) - * - * @lib vimpststorage.lib - * @since S60 5.0 - */ -NONSHARABLE_CLASS( CVIMPSTStorageVPbkLocalStore ) : public CActive, - public MVIMPSTStorageVPbkContactStore, - public MVIMPSTStorageVPbkStoreHandler - - - { - - public: - - /** - * Two-phased constructor. - * - * @param aContactDb, contact database - * @param aListId, Default List ID - * @param aServiceId - Service Id - * @param aServiceName - Service Name - * @param aStorageView, Ref to Storage (CVIMPSTStorageViewId) - */ - static CVIMPSTStorageVPbkLocalStore* NewL(const TDesC& aContactDb, const TDesC& aServiceName, - MVIMPSTStorageServiceCacheWriter& aServiceCacheWriter ); - - /** - * Two-phased constructor. - * - * @param aContactDb, contact database - * @param aListId, Default List ID - * @param aServiceId - Service Id - * @param aServiceName - Service Name - * @param aStorageView, Ref to Storage (CVIMPSTStorageViewId) - */ - static CVIMPSTStorageVPbkLocalStore* NewLC( const TDesC& aContactDb, const TDesC& aServiceName, - MVIMPSTStorageServiceCacheWriter& aServiceCacheWriter ); - - /** - * Standard C++ destructor - */ - ~CVIMPSTStorageVPbkLocalStore(); - - public: // from MVIMPSTStorageVPbkContactStore - - /** - * See @MVIMPSTStorageVPbkContactStore - * @ return ETrue - **/ - TBool LocalStore() const ; - - TInt CreateVPbkContactL( const TDesC& aUserId, - const TDesC& aDisplayName, - TBool aInvitationAutoAccept = EFalse) ; - - TInt RemoveVPbkContactL(const MVPbkContactLink& aContactLink) ; - - TInt RemoveVPbkContactsL(const MVPbkContactLink& aContactLink) ; - - TInt RetrieveVPbkXSPIdL(const TDesC8& aPackedLinks ) ; - - TInt CreateRetriveVPbkContactL(TInt aIndexToUse ) ; - - TInt deleteRetriveVPbkContactL(TInt aIndexToUse ) ; - - TInt UpdateAvatarFieldDataL(const MVPbkContactLink& aContactLink, - const TDesC8& aAvatartData ); - - TInt RemoveAvatarFieldL(MVPbkStoreContact& aStoreContact); - - - void AddVPbkFetchContactsL( RArray &aFirstNameList, - RArray &aServiceField ) ; - - TInt RemoveAllVPbkContactsL() ; - - const TDesC& GetRetrieveVPbkXSPIdL(TInt aIndex ) ; - - void DeleteDatabaseL() ; - - public : // MVIMPSTStorageVPbkStoreHandler - /** - * From MVPbkContactStoreObserver - * Callback: Store event occured - * - * @since S60 5.0 - * @param aContactStore, contact store - * @param aStoreEvent, event - */ - void HandleVPbkStoreEventL(TVIMPSTVPbkStoreEvent aVPbkStoreEvent) ; - - private: // From CActive - void RunL(); - void DoCancel(); - TInt RunError(TInt aError ); - - private: - - /** - * Issues Request - * - */ - void IssueRequest(); - - - private: - - /** - * Check if database exists - * @return ETrue, if database exists. - */ - TBool DbExists(); - - /** - * Creates new CPermanentFileStore stream and creates database on it. - */ - void CreateDbL(); - - /** - * Open existing database. - */ - - void OpenDbL(); - - - /** - * Close database. - */ - void CloseDb(); - - /* - * Create tables to database - */ - void CreateTablesL(); - - - /** - * Add a column to colset - * @param aName Name of column - * @param aType Type of column - * @param aColset Colset, where column is added. - * @param aMaxLength Maximum column length - * 0 = use columns default value - */ - void AddColumnL( const TDesC& aName, TDbColType aType, - CDbColSet* aColset ); - - - /* - * Leaves if free diskspace is low. - * @param aSize amount of free diskspace needed. - */ - void DoFreespaceLevelCheckL( TInt aSize ); - - - /** - * Opens database table - */ - void OpenTableL(); - - /** - * Closes database table - */ - void CloseTable(); - - - /** - * Seek a specific row with given contactlink in the database file. - * @param aColNo The column number (KContactLink) - * @param aContactLink - Packed Contact Link - * @return ETrue if seek successful, otherwise EFalse - */ - TBool SeekRowL( TDbColNo aColNo, TDesC8& aContactLink ); - - - /** - * Seek a specific row with given contact identifier in the database file. - * @param aColNo The column number (KContactId) - * @param aContactId - Contact identifier - * @return ETrue if seek successful, otherwise EFalse - */ - TBool SeekRowL( TDbColNo aColNo, TInt32& aContactId ); - - - /** - * Write the given data to the database file - * @param aContactLink - Packed Contact Link - * @param aIdentifier - Contact identifier - */ - void WriteToStoreDbL( TInt32& aIdentifier ); - - - /** - * Reads first contact from storage - * @param aContactLink - Packed Contact Link - * @return KErrNone, if successful. - */ - void ReadCurrentL( TInt32& aContactLink); - - - /** - * Reads next contact from storage - * @param aContactLink - Packed Contact Link - * @return KErrNone, if successful. - */ - TInt ReadNextL( TInt32& aContactId ); - - /** - * Reads first contact from storage - * @param aContactLink - Packed Contact Link - * @return KErrNone, if successful. - */ - TInt ReadFirstL( TInt32& aContactLink ); - - - /* - * Deletes contact from storage - * @param aContactId - Contact Identifier of the Contact to Delete - */ - void DeleteContactFromInternalStoreL( TInt32& aContactId ); - - void DeleteAllContactFromInternalStoreL(); - - - private: // Implementation - - /** - * Standard C++ constructor - */ - CVIMPSTStorageVPbkLocalStore(MVIMPSTStorageServiceCacheWriter& aServiceCacheWriter); - - /** - * Performs the 2nd phase of construction. - * - * @param aContactDb, contact database address - * @param aServiceName, service name - */ - void ConstructL(const TDesC& aContactDb, const TDesC& aServiceName ); - - /* - * helper method for deleting entry from iFetchContactsToBeAdded - */ - void ResetAndDestroyLocalArrayL(); - - /* - * compare both string without colon part - * return ETrue if both contact are same - */ - TBool IsSameContactIdL(const TDesC& aFirstId, const TDesC& aSecondId ); - - private: // Data - - MVIMPSTStorageServiceCacheWriter& iServiceCacheWriter; - // Own: pointer to a class which interact with Virtual phonebook - CVIMPSTStorageVPbkStoreHandler* iVPbkStoreHandler; - - // own , contact id converter to and from link - CVPbkContactIdConverter* iIdConverter; - - //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 - - HBufC* iLocalDBName; - - RArray iFetchContactsToBeAdded; - - TVIMPSTFetchingSteps iFetchStep; - - RPointerArray iRetrivedContactArray; - // owns : id of invitation geting accepted - HBufC* iInviteId; - }; - -#endif // C_CVIMPSTSTORAGELOCALSTORE_H - -// End of file