--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/uiservicetab/vimpststorage/inc/cvimpststoragevpbkserverstore.h Wed Sep 01 12:33:36 2010 +0100
@@ -0,0 +1,175 @@
+/*
+* 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 server store
+*
+*/
+
+
+#ifndef C_CVIMPSTSTORAGESERVERSTORE_H
+#define C_CVIMPSTSTORAGESERVERSTORE_H
+
+#include <e32base.h>
+#include "mvimpststoragevpbkcontactstore.h"
+#include "mvimpststoragevpbkstorehandler.h"
+
+class CVIMPSTStorageVPbkStoreHandler;
+class MVIMPSTStorageServiceCacheWriter;
+class MVPbkContactLink;
+class MVPbkStoreContact;
+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( CVIMPSTStorageVPbkServerStore ) : 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 CVIMPSTStorageVPbkServerStore* 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 CVIMPSTStorageVPbkServerStore* NewLC( const TDesC& aContactDb,
+ const TDesC& aServiceName,
+ MVIMPSTStorageServiceCacheWriter& aServiceCacheWriter );
+
+ /**
+ * Standard C++ destructor
+ */
+ ~CVIMPSTStorageVPbkServerStore();
+
+ 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 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 <TPtrC> &aFirstNameList,
+ RArray <TPtrC> &aServiceField ) ;
+
+ const TDesC& GetRetrieveVPbkXSPIdL(TInt aIndex ) ;
+
+ TInt RemoveAllVPbkContactsL();
+
+
+ void DeleteDatabaseL();
+ public :
+ /**
+ * 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: // Implementation
+
+ /**
+ * Standard C++ constructor
+ */
+ CVIMPSTStorageVPbkServerStore(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 deleing the etry from iFetchContactsToBeAdded
+ */
+ void ResetAndDestroyLocalArrayL();
+
+
+ private: // Data
+ MVIMPSTStorageServiceCacheWriter& iServiceCacheWriter;
+ // Own: pointer to a class which interact with Virtual phonebook
+ CVIMPSTStorageVPbkStoreHandler* iVPbkStoreHandler;
+ // owns : fetched contacts
+ RArray<TVIMPSTContactInfo> iFetchContactsToBeAdded;
+ // owns
+ TVIMPSTFetchingSteps iFetchStep;
+ // owns : list of xsp id
+ RPointerArray<HBufC> iRetrivedXSPIdArray;
+
+
+ };
+
+#endif // C_CVIMPSTSTORAGELOCALSTORE_H
+
+// End of file