omads/omadsappui/AspSyncUtil/inc/AspSchedule.h
branchRCL_3
changeset 24 8e7494275d3a
parent 23 2bb96f4ecad8
child 25 4f0867e42d62
--- a/omads/omadsappui/AspSyncUtil/inc/AspSchedule.h	Thu Aug 19 09:41:17 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,412 +0,0 @@
-/*
-* Copyright (c) 2005 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: Scheduled sync implementation and setting access 
-*
-*/
-
-
-#ifndef ASPSCHEDULE_H
-#define ASPSCHEDULE_H
-
-// INCLUDES
-#include <e32base.h>
-#include <SyncMLClient.h>    // for RSyncMLSession
-#include <SyncMLObservers.h>
-
-#include "AspDefines.h"
-#include "AspUtil.h"
-
-
-// CONSTANTS
-const TInt KDefaultStartHour = 12; // 12 noon
-const TInt KStartPeakHour = 8;
-const TInt KStartPeakMin = 00;
-const TInt KEndPeakHour = 17;
-const TInt KEndPeakMin = 00;
-_LIT(KAutoSyncProfileName, "AutoSync Profile");
-
-
-// FORWARD DECLARATIONS
-class CAspProfile;
-class CAspFilterItem;
-
-
-/**
-* CAspSchedule
-*  
-*/
-NONSHARABLE_CLASS (CAspSchedule) : public CBase
-    {
-    private:
-	enum TRepositoryKey
-		{
-	   // ERepositoryKeyInt = 1,
-	    ERepositoryKeyBin = 1
-		};
-		
-    public:
-		
-    enum TWeekdayFlags
-        {
-	    EFlagMonday      = 0x00000001,
-	    EFlagTuesday     = 0x00000002,
-	    EFlagWednesday   = 0x00000004,
-	    EFlagThursday    = 0x00000008,
-	    EFlagFriday      = 0x00000010,
-	    EFlagSaturday    = 0x00000020,
-	    EFlagSunday      = 0x00000040
-        };
-
-	enum TSyncInterval
-		{
-		EIntervalManual = 0,
-		EInterval15Mins,
-		EInterval30Mins,
-		EInterval1hour,
-		EInterval2hours,
-		EInterval4hours,
-		EInterval8hours,
-		EInterval12hours,
-		EManyTimesPerDay,
-		EInterval24hours,
-		EInterval2days,
-		EInterval4days,
-		EInterval7days,
-		EInterval14days,
-		EInterval30days
-		};
-	
-  
-	public:// Constructors and destructor
-
-        /**
-        * Two-phased constructor.
-        */
-        static CAspSchedule* NewL();
-        
-        /**
-        * Two-phased constructor.
-        */
-        static CAspSchedule* NewLC();
-
-        /**
-        * Destructor.
-        */
-        virtual ~CAspSchedule();
-    
-    private:
-
-        /**
-        * C++ default constructor.
-        */	
-        CAspSchedule();
-	
-        /**
-        * By default Symbian OS constructor is private.
-        */
-        void ConstructL();
-
-	public:
-
-		/**
-        *  auto sync error
-        */	
-	    TInt Error();
-	    void SetError(TInt aError);
-
-		/**
-        *  Profile selected for auto sync
-        */	
-	    TInt ProfileId();
-	    void SetProfileId(TInt aProfileId);
-
-		/**
-        *  week day selection 
-        */	
-	    TBool WeekdayEnabled(TInt aWeekday);
-	    void SetWeekdayEnabled(TInt aWeekday, TBool aEnabled);
-	    
-	    TBool RoamingAllowed();
-	    void SetRoamingAllowed(TBool aAllowed);
-	    
-	    void SelectedDayInfo(TInt& aDayCount, TInt& aWeekday);
-
-		/**
-        * Save all settings using a cenrep key
-        */	
-        void SaveL();
-
-		/**
-        * Auto sync content selection
-        */	
-		void SetContentEnabled(TInt aContent, TInt aEnabled);
-	    TBool ContentEnabled(TInt aContent);
-	    void ContentSelectionInfo(TInt& aContentCnt, TInt& aContent);
-
-		/**
-        * Auto sync interval
-        */	
-        void SetSyncFrequency(TInt aSchedule);
-		void SetSyncPeakSchedule(TInt aSchedule);
-		void SetSyncOffPeakSchedule(TInt aSchedule);
-		TInt SyncFrequency();
-		TInt SyncPeakSchedule();
-		TInt SyncOffPeakSchedule();
-
-		/**
-        * Peak time definition
-        */	
-		void SetStartPeakTime(TTime aStartTime);
-		void SetEndPeakTime(TTime aEndTime);
-		TTime StartPeakTime();
-		TTime EndPeakTime();
-
-		/**
-        * Auto sync enabled/disabled
-        */	
-		void SetDailySyncEnabled(TBool aSyncEnabled);
-		TBool DailySyncEnabled();
-		void SetPeakSyncEnabled(TBool aSyncEnabled);
-		TBool PeakSyncEnabled();
-		void SetOffPeakSyncEnabled(TBool aSyncEnabled);
-		TBool OffPeakSyncEnabled();
-
-		/**
-        * Sync time for intervals >= a day
-        */	
-		void SetAutoSyncScheduleTime(TTime aSchedule);
-		TTime AutoSyncScheduleTime();	
-
-		/**
-        * Schedule handle returned by task scheduler during schedule creation
-        */	
-		void SetPeakScheduleHandle(TInt aHandle);
-		TInt PeakScheduleHandle();
-		void SetOffPeakScheduleHandle(TInt aHandle);
-		TInt OffPeakScheduleHandle();
-
-		/**
-        * A hidden profile used for auto sync.Contents are set as the content selected in auto sync settings
-        *
-        */	
-
-		void CreateAutoSyncProfileL();
-		TInt AutoSyncProfileId();
-		void SetAutoSyncProfileId(TInt aProfileId);
-		void CopyAutoSyncContentsL();
-		void UpdateProfileSettingsL();
-		
-		/**
-        * Check validity of shedule based on current time and user defined peak time
-        *
-        */					
-		TInt IsValidPeakScheduleL();
-		TInt IsValidOffPeakScheduleL();
-
-		TBool IsValidNextPeakScheduleL();
-		TBool IsValidNextOffPeakScheduleL();
-
-		/**
-        * Post pone schedule until next valid time
-        */
-		void UpdatePeakScheduleL();
-		void UpdateOffPeakScheduleL();
-		TIntervalType IntervalType(TInt aInterval);
-
-		void EnableScheduleL();
-
-		/**
-        * Check if any valid mail box exists
-        */
-		TBool MailboxExistL();
-
-		/**
-        * Check mandatory settings for the selected profile
-        */
-		TInt CheckMandatoryDataL(TInt& count,TInt& firstItem);
-
-		/**
-        * Log view opened by clicking View Details link in auto sync error note
-        */
-		void ShowAutoSyncLogL();
-
-		/**
-        *SyncML sever version of selected profile
-        */
-		TInt ProtocolL();
-
-		/**
-        *Server Id modifications so that SAN selects correct profile
-        */
-		void UpdateServerIdL();
-
-		/**
-        *Check if atleast one valid content selected
-        */
-		TBool IsContentSelected();
-		
-		/**
-        *Check if auto sync is enabled
-        */
-		TBool IsAutoSyncEnabled();
-
-		/**
-        *Initialize contents
-        */
-		void InitializeContentsL();
-
-		
-		/**
-        *Check the validity of email selection.
-        */
-		void CheckEmailSelectionL();
-
-				
-    public:
-
-		/**
-        *Update the schedule settings with symbian task scheduler
-        */
-        void UpdateSyncScheduleL();
-        void UpdateSyncSchedule();
-        void GetStartTimeL(TTime& aTime, TBool aHomeTime);
-               
-      
-#ifdef _DEBUG
-		void LogSettings();
-#endif
-
-
-    public:
-   	    TBool CanSynchronizeL();
-		
-	private:
-	    void InitializeL();
-	
-	public:
-        static TTime UniversalStartTime(TInt& aStartHour);
-        static TTime LocalStartTime(TInt aStartHour);
-        
-	
-	private:
-	    void InternalizeL();
-		void DoInternalizeL();
-		void InternalizeL(RReadStream& aStream);
-		void ExternalizeL();
-		void ExternalizeL(RWriteStream& aStream);
-		void WriteRepositoryL(TInt aKey, const TDesC8& aValue);
-		void ReadRepositoryL(TInt aKey, TDes8& aValue);
-		void ResetRepositoryL();
-		
-	private:
-		TInt WeekdayFlag(TInt aWeekday);
-		TBool IsDaySelected(TTime aTime);
-	
-		void OpenSyncSessionL();
-		void CloseSyncSession();
-
-		
-#ifdef _DEBUG        
-	public:
-	    void LogScheduleL();
-	    void LogSyncDays();
-	    void LogSyncInterval();	
-
-
-    public:
-        static void PrintTimeL(TTime aTime);
-        void TestL();
-        void DoTestL();
-        void UpdateValuesL(TInt aCount);
-        CAspSchedule* CreateCopyLC();
-        void CompareValues(CAspSchedule* aSchedule);
-        void AssertEqual(TInt aValue1, TInt aValue2);
-#endif
-
-        	    
-		
-    private:
-   
-         // error code
-        TInt iError;
-
-		// profile id
-		TInt iProfileId;
-		
-		// selected days
-		TUint32 iWeekdayFlags;
-		
-		// start hour
-		TInt iStartHour;
-
-		// is roaming allowed
-		TBool iRoamingAllowed;
-		
-		// data provider id list
-		RArray<TInt> iList;
-		
-        // long buffer for string handling 
-		TBuf<KBufSize255> iBuf;
-		
-		// have settings changed
-		TBool iSettingChanged;
-
-		//content selection flags
-		TUint32 iContentFlags;
-		
-		TInt iStartPeakTimeHr;
-		TInt iStartPeakTimeMin;
-		TInt iEndPeakTimeHr;
-        TInt iEndPeakTimeMin;		
-
-		//peak interval
-		TInt iSyncPeakSchedule;
-
-		//off-peak interval
-		TInt iSyncOffPeakSchedule;
-
-		
-		TBool iPeakSyncEnabled;
-		TBool iOffPeakSyncEnabled;
-
-		//A new RSyncMLProfileBase profile is created for auto sync
-		//Selected Auto sync contents are set as the task items for this profile
-		//All the settings for this profie are copied from the profile selected by user.
-		
-		TInt iAutoSyncProfileId;
-		
-        //Sync time for once a day sync
-		TInt iAutoSyncScheduleTimeHr;
-		TInt iAutoSyncScheduleTimeMin;
-
-		//schedule handles.
-        TInt iPeakScheduleHandle;
-		TInt iOffPeakScheduleHandle;
-
-		// sync session
-		RSyncMLSession iSyncSession;
-
-		// is sync session open
-		TBool iSyncSessionOpen;
-
-		// Daily sync setting
-		TBool iDailySyncEnabled;
-		TInt iSyncFrequency;
-
-		
-    };
-
-#endif  // ASPSCHEDULE_H
-
-// End of file
\ No newline at end of file