diff -r 2b7283837edb -r 3104fc151679 uiservicetab/vimpststorage/inc/cvimpststorageserviceview.h --- a/uiservicetab/vimpststorage/inc/cvimpststorageserviceview.h Thu Aug 19 09:41:53 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,454 +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: Storage view implementation -* -*/ - -#ifndef CVIMPSTSTORAGESERVICEVIEW_H -#define CVIMPSTSTORAGESERVICEVIEW_H - - -// INCLUDES -#include -#include -#include - -#include "mvimpststorageserviceview.h" -#include "tvimpststoragepanics.h" -#include "tvimpstenums.h" -#include "mvimpststorageitemmodel.h" -#include "mvimpststorageactiveobserver.h" - -// FORWARD DECLARATIONS -class CVIMPSTStorageContactList; -class CVIMPSTStorageContactSorter; -class MVIMPSTStorageVPbkContactStore; -class MVPbkContactLink; -class CVIMPSTStorageActiveHandler; - -// CLASS DECLARATION - -NONSHARABLE_CLASS ( CVIMPSTStorageServiceView ): public CBase, - public MVIMPSTStorageServiceView, - public MVIMPSTStorageServiceCacheWriter, - public MVIMPSTStorageItemModel, - public MVIMPSTStorageActiveObserver - - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - */ - static CVIMPSTStorageServiceView* NewL(TUint32 aServiceId, const TDesC& aStoreName, - const TDesC& aServiceName); - - /** - * Destructor. - */ - ~CVIMPSTStorageServiceView(); - - public: // New functions - - - TUint32 GetServiceId(); - - public: // Functions from base classes - - /** - * From MVIMPSTStorageServiceView - */ - void AddObserverL( MVIMPSTStorageContactsObserver* aObserver ) ; - - /** - * From MVIMPSTStorageServiceView - */ - void RemoveObserver( MVIMPSTStorageContactsObserver* aObserver ) ; - - /** - * From MVIMPSTStorageServiceView - */ - MVIMPSTStorageContact* FindContactByUserId( const TDesC& aUserId ) ; - - /** - * From MVIMPSTStorageServiceView - */ - MVIMPSTStorageContact* FindContactByLink(const MVPbkContactLink& aContactLink ) ; - - /** - * From MVIMPSTStorageServiceView - */ - TInt ListCount() const ; - - - /** - * From MVIMPSTStorageServiceView - */ - MVIMPSTStorageContactList& ListAt( TInt aIndex ) const ; - - - /** - * From MVIMPSTStorageServiceView - */ - MVIMPSTStorageContactList* FindContactList( const TDesC& aListId ) ; - - - /** - * From MVIMPSTStorageServiceView - */ - MVIMPSTStorageContactList* CreateContactListL( const TDesC& aContactListId, - const TDesC& aDisplayName ) ; - - - /** - * From MVIMPSTStorageServiceView - */ - void RemoveContactList( const TDesC& aContactListId ) ; - - - - /** - * From MVIMPSTStorageServiceView - */ - TInt ContactCount( TBool aSkipOfflineContacts = EFalse ) const ; - - - /** - * Update presence information of contact. - * @param aContactId Id of contact which presence is updated. - * @param aStatus. New presence status - * @param aAlias. New alias. - * @param aStatusText New status message text. - * @return MVIMPSTStorageContact* pointer of the contact - */ - MVIMPSTStorageContact* UpdatePresenceL(const TDesC& aContactId, - TVIMPSTEnums::TOnlineStatus aStatus, - const TDesC& aStatusText, - const TDesC8& aAvatarData, - TBool aIsClearingAvatar = EFalse) ; - - /** - * Update presence information of contact. - * @param aContactId Id of contact which presence is updated. - * @param aStatus. New presence status - * @param aAlias. New alias. - * @param aStatusText New status message text. - * @return MVIMPSTStorageContact* pointer of the contact - */ - MVIMPSTStorageContact* UpdateAvatarL(const TDesC& aContactId, - const TDesC8& aAvatarData ) ; - - /** - * add contact ot the virtual phonebook. - * @param aContact contact id to be added. - */ - MVIMPSTStorageContact* CreateNewContactL(const TDesC& aUserId, - const TDesC& aDisplayName = KNullDesC, - TBool aIsInvitationItem = EFalse, - TBool aInvitationAutoAccept = EFalse) ; - - /** - * add contact ot the virtual phonebook. - * @param aContact contact id to be added. - */ - TInt CreateNewContactFromRetrivedIdL( TInt aIndexToUse ); - - /** - * remove contact ot the virtual phonebook. - * @param aContact contact id to be removed. - */ - TInt DeleteNewContactFromRetrivedIdL( TInt aIndexToUse ); - - /** - * add contact ot the virtual phonebook. - * @param aContact contact id to be added. - */ - void CreateNewFetchContactsL( RArray &aFirstNameList, - RArray &aServiceField ) ; - - - /** - * add contact ot the virtual phonebook. - * @param aContact contact id to be added. - */ - TInt RemoveContactL( MVIMPSTStorageContact* aContact ) ; - - - /** - * From MVIMPSTStorageServiceView - */ - TBool IsLocalStore() const ; - - /** - * From MVIMPSTStorageServiceView - */ - void SetOwnUserIdL( const TDesC& aUserId ); - - - /** - * From MVIMPSTStorageServiceView - */ - TInt RetriveLinkXSPIdsL(const TDesC8& aContactPackLink ); - - /** - * From MVIMPSTStorageServiceView - */ - const TDesC& GetRetrieveXSPIdL(TInt aIndex ) ; - - /** - * From MVIMPSTStorageServiceView - */ - MVIMPSTStorageContact& OwnContactL(); - - /** - * From MVIMPSTStorageServiceView - */ - void DeleteDatabaseL(); - - /** - * From MVIMPSTStorageServiceView - */ - void SetUnnamedTextL(HBufC* aUnnamedText ); - - public: // MVIMPSTStorageServiceCacheWriter - - /** - * update existing contact - * @param aContactLink contact id to be updatated - * @param aUserId contact id to be updated - * @param aDisplayName contact display name to be updated - * @reurn the storage contact pointer if found else NULL - */ - MVIMPSTStorageContact* UpdateCacheContactL(const MVPbkContactLink& aContactLink, - const TDesC& aUserId, - const TDesC& aDisplayName, - const TDesC8& aAvatarContent ) ; - - /** - * add a new contact to cache - * @param aContactLink contact id to be add - * @param aUserId contact id to be add - * @param aDisplayName contact display name to be add - * @reurn the new storage contact pointer if contact is already exist return the smae - - */ - MVIMPSTStorageContact* AddContactToCacheL(const MVPbkContactLink& aContactLink, - const TDesC& aUserId, - const TDesC& aDisplayName, - const TDesC8& aAvatarContent, - TVIMPSTEnums::TVIMPSTStorgaeEventType aType ) ; - - /* - * remopve existing contact - * @param aContactLink contact id to be removed - * @param aUserId contact id to be removed - * @param aDisplayName contact display name to be removed - * @reurn the error if any - */ - TInt RemoveContactFromCacheL(const MVPbkContactLink& aContactLink,TVIMPSTEnums::TVIMPSTStorgaeEventType aType ) ; - - - /** - * Removes all contacts from cache and notify to observers - */ - void RemoveAllCacheContactsL() ; - - /** - * Read the default contact list if exist else create default list - * @return contact list pointer - */ - MVIMPSTStorageContactList* GetDefaultContactListL() ; - - /** - * find contact by user id - * @param aUserId contact id to be find - * @return storage contact pointer if found else NULL - */ - MVIMPSTStorageContact* FindCacheContactByUserId( const TDesC& aUserId ) ; - - - /** - * find contact by user id - * @param aContactLink contact link to be find - * @return storage contact pointer if found else NULL - */ - MVIMPSTStorageContact* FindCacheContactByLink(const MVPbkContactLink& aContactLink) ; - - /** - * add contact to the contact cache and notify the observers - * @param aContact contact id to be added. - */ - TInt AddStorageContactToCacheL(MVIMPSTStorageContact* aContactToAdd ); - - /** - * add contact to the contact cache and notify the observers - * @param aContact contact id to be added. - */ - void NotifyServiceViewL( TVIMPSTEnums::TVIMPSTStorgaeEventType aEventType, - MVIMPSTStorageContact* aContact = NULL ) ; - - public : //MVIMPSTStorageActiveObserver - - /** - * This call is made when the waiting completes - * @param aError error code for waiting error, KErrNone if completes without error - * - */ - void HandleDelayedNotificationL(TVIMPSTEnums::TVIMPSTStorgaeEventType aType, - MVIMPSTStorageContactList *aList, - MVIMPSTStorageContact* aContact, - TInt aContactIndex) ; - private: - - - /** - * C++ default constructor. - */ - CVIMPSTStorageServiceView(TUint32 aServiceId); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(const TDesC& aStoreName, const TDesC& aServiceName); - - - CVIMPSTStorageContactList* FindContactListInternal( const TDesC& aListId ); - - - TInt FindContactListById(const TDesC& aListId ); - - // TLinearOrder - static TInt ContactListOrderByDisplayName( - const CVIMPSTStorageContactList& aContactA, - const CVIMPSTStorageContactList& aContactB ); - - static TBool ContactListFindByContactListId( - const CVIMPSTStorageContactList& aContactA, - const CVIMPSTStorageContactList& aContactB ); - - - /** - * Notify all the observers about the given event - * @param aType The type of observer event - * @param aContact The contact in question - * (or -1 == KCAStorageDontKnowPos to force search for given contact id - * in aParameter) - * @param aFromPEC, ETrue, if event is coming from PEC - */ - void NotifyAllObserversL( TVIMPSTEnums::TVIMPSTStorgaeEventType aType, - MVIMPSTStorageContactList* aContactList, - MVIMPSTStorageContact* aContact, - TInt aContactIndex ); - - /** - * Notify all the observer about the given event after small delay - * If new notify events come during delay, then notify is "shifted" - * with new delay time and notify event is change to "multiplechanges". - * @param aType The type of observer event - * @param aContact The contact in question - * (or -1 == KCAStorageDontKnowPos to force search for given contact id - * in aParameter) - * @param aFromPEC, ETrue, if event is coming from PEC - */ - void NotifyAllObserversWithDelay( TVIMPSTEnums::TVIMPSTStorgaeEventType aType, - MVIMPSTStorageContactList* aContactList, - MVIMPSTStorageContact* aContact, - TInt aContactIndex ); - - - public : // from MVIMPSTStorageItemModel - - /** - * @return Count of items - */ - TInt Count() const; - - /** - * Returns List item at given index. - * @param aIndex - * @return List item - */ - MVIMPSTStorageItemModel::SItem Item( TInt aIndex ) const; - - /** - * @see MVIMPSTStorageItemModel - */ - TInt IndexOfContact( MVIMPSTStorageContact* aContact ) const; - - /** - * @see MVIMPSTStorageItemModel - */ - TInt IndexOfList( MVIMPSTStorageContactList* aList, - TBool aIgnoreOwnItem /*= EFalse*/, - TBool aIgnoreEmptyLists /*= ETrue*/ ) const; - - public : - - /** - * Sets the correct sorting method to storage - * according to current setting value - */ - void SetSort(); - - /** - * sort the contacts of list - * according to current setting value - */ - void Sort( const TDesC& aContactListId = KNullDesC ); - - - protected: // Functions from MDesCArray - - /** - * @see MDesCArray - */ - TInt MdcaCount() const; - - /** - * @see MDesCArray - */ - TPtrC MdcaPoint(TInt aIndex) const; - - private: // Data - - // observers list, used with MVIMPSTStorageServiceView inherited methods - RPointerArray< MVIMPSTStorageContactsObserver > iContactObservers; - - // list of contacts - RPointerArray< CVIMPSTStorageContactList > iContactListArray; // owns - - //Service ID - TUint32 iServiceId; - // owns : pointer to service store ,Local/Server - MVIMPSTStorageVPbkContactStore* iVPbkContactStore; - - /// Sorter for contacts. Owns - CVIMPSTStorageContactSorter* iContactSorter; - - /// Contact for own data - MVIMPSTStorageContact* iOwnContact; - /// Owns : refreshTimer - CVIMPSTStorageActiveHandler* iActiveHandler; - - // if ETrue meaning a invitation is getting added to cache - TBool iIsInvitationItem; - - // owns : unnamed text - HBufC* iUnNamedText; - - }; - -#endif // CVIMPSTSTORAGESERVICEVIEW_H - -// End of File