diff -r 000000000000 -r 5e5d6b214f4f uiservicetab/vimpststorage/inc/mvimpststoragevpbkstorehandler.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/uiservicetab/vimpststorage/inc/mvimpststoragevpbkstorehandler.h Tue Feb 02 10:12:18 2010 +0200 @@ -0,0 +1,133 @@ + +/* +* 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 implementatio from vpbkstorage handler to store +* +*/ + + +#ifndef MVIMPSTSTORAGEVPBKSTOREHANDLER_H +#define MVIMPSTSTORAGEVPBKSTOREHANDLER_H + +#include +#include + +class MVPbkContactViewBase; +class MVPbkContactLink; +class MVPbkContactStore; +class MVPbkStoreContact; + +/** + * A class for a contact store event. + * + * The contact store event contains the type of the event and + * possibly a contact link to a changed contact. + */ +enum TVIMPSTVPbkStoreEventType + { + EVPbkUnknownEvent = -1, + EVPbkUnknownChanges = 0, + EVPbkContactAdded , + EVPbkContactDeleted, + EVPbkContactChanged, + EVPbkContactRetriving, + EVPbkContactFetching, + EVPbkContactReading, + EVPbkUpdatingAvatar, + EVPbkContactSynchronizing, + EVPbkContactReadCompleted + }; + + class TVIMPSTVPbkStoreEvent + { + + public: // Interface + + /** + * Constructor + * + * @param aEventType The type of the contact store event + * @param aContactLink The identifier of the changed contact or NULL. + * The link is not owned by this class. + */ + TVIMPSTVPbkStoreEvent( TVIMPSTVPbkStoreEventType aEventType, + MVPbkContactLink* aContactLink = NULL, + MVPbkStoreContact* aContact = NULL , + const TDesC& aUserId = KNullDesC , + const TDesC& aName = KNullDesC, + const TDesC8& aAvatarContent = KNullDesC8 ); + + public: + /// Own: Type of the event that has happened + TVIMPSTVPbkStoreEventType iEventType; + /// Ref: Link to the contact that is accociated with the event or NULL. + /// The link is valid only during HandleStoreEventL function call + /// and client can not take the ownership of the instance. + // Client must clone the link if it needs it later. + MVPbkContactLink* iContactLink; + ///Own: Spare for future extension + MVPbkStoreContact* iVPbkContact; + ///Own: Spare for future extension + TPtrC iUserId; + ///Own: Spare for future extension + TPtrC iDisplayName; + // owns avatar content + TPtrC8 iAvatarContent; + }; + +inline TVIMPSTVPbkStoreEvent::TVIMPSTVPbkStoreEvent( + TVIMPSTVPbkStoreEventType aEventType, + MVPbkContactLink* aContactLink, + MVPbkStoreContact* aContact, + const TDesC& aUserId , + const TDesC& aName , + const TDesC8& aAvatarContent ) : + iEventType(aEventType), + iContactLink(aContactLink), + iVPbkContact( aContact ), + iUserId(aUserId ), + iDisplayName( aName ), + iAvatarContent( aAvatarContent ) + { + } +/** + * Interface for contact data container observer + * + * @lib vimpststorage.dll + * @since 5.0 + */ +class MVIMPSTStorageVPbkStoreHandler + { + public: // New functions + + /** + * From MVPbkContactStoreObserver + * Callback: Store event occured + * + * @since S60 5.0 + * @param aContactStore, contact store + * @param aStoreEvent, event + */ + virtual void HandleVPbkStoreEventL(TVIMPSTVPbkStoreEvent aVPbkStoreEvent) = 0 ; + + + /** + * Virtual destructor + */ + virtual ~MVIMPSTStorageVPbkStoreHandler() {}; + }; + +#endif // MVIMPSTSTOREDCONTACTSOBSERVER_H + +// End of File