diff -r 356f28cd5ca0 -r ed599363c2d7 calendarengines/caldav/inc/caldavengine.h --- a/calendarengines/caldav/inc/caldavengine.h Wed Sep 15 12:11:35 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,239 +0,0 @@ -/* -* Copyright (c) 2010 Sun Microsystems, Inc. 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 Contributor: -* Maximilian Odendahl -* -* Contributors: -* -* Description: main Caldav class, all magic happens here -* -*/ - -#ifndef _CALSTORE_H -#define _CALSTORE_H - -#include -#include - -#include -#include -#include - -#include -#include - -#include "caldavutils.h" - -class CCalSession; -class CCalEntry; -class CCalIter; -class CCalEntryView; -class CCalenExporter; -class CCalenImporter; -class CCalenInterimUtils2; - -class RXmlEngDOMImplementation; -class RXmlEngDOMParser; -class RXmlEngDocument; - -class CHttpClient; -class CalDavTest; - -// sync interval of 0 correspons to one minute -// 0 actually means to enable push connectivity once supported -#define DEFAULT_SYNC_MINUTES 0 -#define DEFAULT_PAST_DAYS 14 -#define DEFAULT_IMMEDIATE_SYNC ETrue -#define DEFAULT_KEEP_SERVER_ENTRY EFalse - - -enum TLocalLoopAction - { - ELoopActionUpload, ELoopActionFillArray, ELoopActionDeleteLocal - }; - -/** - * CCalDavEngine - * - */ -class CCalDavEngine : public CBase, MCalProgressCallBack, MCalChangeCallBack2, MCalFileChangeObserver - { -public: - - friend class CalDavTest; - - ~CCalDavEngine(); - - static CCalDavEngine* NewL(const TDesC& aCalendar); - static CCalDavEngine* NewLC(const TDesC& aCalendar); - - TInt EnableL(); - void DisableL(); - TBool EnabledSync(); - - TInt SyncL(); - - TInt MkcalendarL(const TDesC8 &aName); - TInt DeleteCalendarL(const TDesC8 &aName); - - TPtrC CalendarName() const; - TPtrC8 Home() const; - - TPtrC8 Url() const; - void SetUrlL(const TDesC8 &aUrl); - - TPtrC8 User() const; - void SetUserL(const TDesC8 &aUser); - - TPtrC8 Password() const; - void SetPasswordL(const TDesC8 &aPassword); - - TTimeIntervalMinutes SyncInterval() const; - void SetSyncIntervalL(TTimeIntervalMinutes aSyncInterval); - - TTimeIntervalDays PastDays() const; - void SetPastDaysL(TTimeIntervalDays aDays); - - TBool ImmediateSync() const; - void SetImmediateSyncL(TBool aImmediateSyc); - - TBool KeepServerEntry() const; - void SetKeepServerEntryL(TBool aKeepServerEntry); - - CPeriodic* Timer(); - - TPtrC8 SyncToken(); - TPtrC8 CTag(); - -private: - - CCalDavEngine(); - void ConstructL(const TDesC& aCalendar); - - void RegisterL(); - HBufC8* GetCTagL(); - HBufC8* GetSyncTokenL(); - - TInt InitL(); - - // Called during calendar entry view creation - void Progress(TInt aPercentageCompleted); - void Completed(TInt aError); - TBool NotifyProgress(); - void CalChangeNotification(RArray &aChangeItems); - void CalendarInfoChangeNotificationL(RPointerArray& aCalendarInfoChangeEntries); - - void CalendarInfoL(); - void SetCalendarInfoL(const TDesC8 &aKey, const TDesC8 &aValue); - - void HandleCalendarInfoChangeL(); - void HandleChangeL(MCalChangeCallBack2::TChangeType &aChangeType, - MCalChangeCallBack2::TChangeEntryType &aEntryType, - TCalLocalUid &aUid); - - TBool ManualSyncL(); - TBool WebDavSyncL(); - TInt WebDavSyncReportL(TBool aSynctoken); - TBool UploadModifiedSinceDateL(); - TBool ClientChangesL(); - TBool ServerChangesL(); - TInt DeleteRemovedEntriesOnServerL(); - TInt LocalLoopL(TLocalLoopAction aAction); - - TInt ListL(); - TInt TimeReportL(TBool VEVENT, const TDesC8 &aStart, TBool aDelete = EFalse); - - // server actions - TInt UploadEntryL(const TCalLocalUid &aUid, - MCalChangeCallBack2::TChangeType aChangeType, - MCalChangeCallBack2::TChangeEntryType aEntryType); - TInt UploadEntryL(CCalEntry* aEntry, - MCalChangeCallBack2::TChangeType aChangeType, - MCalChangeCallBack2::TChangeEntryType aEntryType); - TInt DownloadEntryL(const TDesC8 &aUrl); - TInt DownloadEntryL(CDesC8Array* aArray); - TInt DeleteEntryL(const TCalLocalUid &aUid); - TInt DeleteEntryL(const TDesC8 &aUid); - TInt HeadL(const TDesC8 &aUID); - - // local actions - TInt AddModifyLocalEntryL(const TDesC8 &aUrl, const TDesC8 &aETag, - CDesC8ArrayFlat* aArray); - TInt DeleteLocalEntryL(const TDesC8 &aUID); - - TInt ParseResponsesDeleteL(const TDesC8 &aDocument); - TInt ParseResponsesL(RXmlEngDocument &aDocument, TBool aMultiget = EFalse); - TInt ParseResponsesL(const TDesC8 &aDocument, TBool aMultiget = EFalse); - - unsigned long DoesEntryExistL(const TDesC8 &aUrl); - TPtrC8 GetUIDByUrl(const TDesC8 &aUrl); - TBool ETagMatchL(const TDesC8& aUrl, const TDesC8& aETag); - TInt StoreEntryL(const TDesC8 &aBuf, const TDesC8 &aEtag); - - void SyncFailedL(); - void SetLastSyncTimeL(); - void SetSyncTokenL(HBufC8* aToken); - void SetCTagL(HBufC8* aToken); - - void CheckCalendarInfoL(RXmlEngDocument &aDocument); - - TBool GetOptionsL(); - TInt GetCalendarUrlsL(CDesC8ArrayFlat *aArray); - void FindUrlsL(const TDesC8 &aDes, HBufC8 *&home, HBufC8 *&inbox, - HBufC8 *&outbox); - void GetBaseUrl(const TDesC8 &aUrl); - HBufC8 * FindCalendarCollectionL(const TDesC8 &aUrl, - CDesC8ArrayFlat *aArray); - - void DeleteCalObjects(); - TInt CreateCalObjectsL(); - - CCalSession* iCalSession; - CCalIter* iCalIter; - CCalEntryView* iCalEntryView; - CCalenExporter* iCalExporter; - CCalenImporter* iCalImporter; - CCalenInterimUtils2* iCalIntermimUtils2; - HBufC *iCalendar; - HBufC8 *iUrl; - HBufC8 *iBaseUrl; - HBufC8 *iHome; - - TCalDAVOptions iOptions; - CHttpClient* iHttp; - - RXmlEngDOMImplementation iDomImpl; - RXmlEngDOMParser iDomParser; - - // when we get a callback with a localuid, the corresponding entry is already deleted - // we therefore need a different way to map from localuid to global uid/filename - // this can be completly removed when introducing a new callback, - // which includes the to be deleted localuid - RArray iLocalUidArray; - RArray > iGlobalUidArray; - // - RArray iDeletedEntries; - - HBufC8 *iSynctoken; - HBufC8 *iCTag; - TBool iManualSync; - TCalTime iLastSyncTime; - TBool iFirstInit; - - // Options - TTimeIntervalMinutes iSyncInterval; - TTimeIntervalDays iPastDays; - TBool iImmediateSync; - TBool iKeepServerEntry; - TBool iEnabled; - - CPeriodic* iTimer; - }; - -#endif // CALSTORE_H