diff -r 95243422089a -r 491b3ed49290 filemanager/App/src/CFileManagerTaskScheduler.cpp --- a/filemanager/App/src/CFileManagerTaskScheduler.cpp Thu Aug 19 09:42:45 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,184 +0,0 @@ -/* -* Copyright (c) 2006 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: Wraps task scheduler functionality -* -*/ - - - -// INCLUDE FILES -#include -#include -#include -#include -#include -#include -#include "CFileManagerTaskScheduler.h" - - -// CONSTANTS -const TInt KSchedulerPriority = 32; -const TInt KSchedulerGranularity = 1; -const TInt KSchedulerRepeat = -1; // Repeat until deleted -const TInt KSchedulerTaskId = 0; -const TInt KDayNumStringLen = 4; -const TInt KTaskInterval = 1; -const TInt KTaskValidity = 1; -_LIT( KDayNumStr, "%d" ); - - -// ======== MEMBER FUNCTIONS ======== - -// ---------------------------------------------------------------------------- -// CFileManagerTaskScheduler::CFileManagerTaskScheduler -// ---------------------------------------------------------------------------- -// -CFileManagerTaskScheduler::CFileManagerTaskScheduler( - CFileManagerEngine& aEngine ) : - iEngine( aEngine ), - iScheduleHandle( KErrNotFound ) - { - } - -// ---------------------------------------------------------------------------- -// CFileManagerTaskScheduler::NewL -// ---------------------------------------------------------------------------- -// -CFileManagerTaskScheduler* CFileManagerTaskScheduler::NewL( - CFileManagerEngine& aEngine ) - { - CFileManagerTaskScheduler* self = - new( ELeave ) CFileManagerTaskScheduler( aEngine ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - return self; - } - -// ---------------------------------------------------------------------------- -// CFileManagerTaskScheduler::ConstructL -// ---------------------------------------------------------------------------- -// -void CFileManagerTaskScheduler::ConstructL() - { - FUNC_LOG - - User::LeaveIfError( iScheduler.Connect() ); - TFileName name( KSchBackupStarterExe ); - User::LeaveIfError( iScheduler.Register( name, KSchedulerPriority ) ); - - // Try to get schedule handle of previously made schedule - CArrayFixFlat< TSchedulerItemRef >* array = - new( ELeave ) CArrayFixFlat< TSchedulerItemRef >( - KSchedulerGranularity ); - CleanupStack::PushL( array ); - if ( iScheduler.GetScheduleRefsL( *array, EAllSchedules ) == KErrNone ) - { - if ( array->Count() ) - { - iScheduleHandle = array->At( 0 ).iHandle; - } - } - CleanupStack::PopAndDestroy( array ); - } - -// ---------------------------------------------------------------------------- -// CFileManagerTaskScheduler::~CFileManagerTaskScheduler -// ---------------------------------------------------------------------------- -// -CFileManagerTaskScheduler::~CFileManagerTaskScheduler() - { - FUNC_LOG - - iScheduler.Close(); - } - -// ---------------------------------------------------------------------------- -// CFileManagerTaskScheduler::CreateScheduleL -// ---------------------------------------------------------------------------- -// -void CFileManagerTaskScheduler::CreateScheduleL() - { - FUNC_LOG - - CFileManagerBackupSettings& settings( iEngine.BackupSettingsL() ); - - // Create schedule entry and store schedule handle for later use - CArrayFixFlat< TScheduleEntryInfo2 >* array = - new ( ELeave ) CArrayFixFlat< - TScheduleEntryInfo2 >( KSchedulerGranularity ); - CleanupStack::PushL( array ); - - TTsTime tsTime( settings.Time(), EFalse ); - TScheduleEntryInfo2 entry( - tsTime, EDaily, KTaskInterval, KTaskValidity ); - array->AppendL( entry ); - - TSchedulerItemRef ref; - User::LeaveIfError( iScheduler.CreatePersistentSchedule( ref, *array ) ); - CleanupStack::PopAndDestroy( array ); - iScheduleHandle = ref.iHandle; - - // Add weekday to task data if weekly backup - HBufC* data = HBufC::NewLC( KDayNumStringLen ); - if ( settings.Scheduling() == EFileManagerBackupScheduleWeekly ) - { - TPtr ptr( data->Des() ); - ptr.Format( KDayNumStr, settings.Day() ); - } - - // Create scheduled task entry and enable it - TTaskInfo taskInfo; - taskInfo.iName = KSchBackupTaskName; - taskInfo.iPriority = KSchedulerPriority; - taskInfo.iTaskId = KSchedulerTaskId; - taskInfo.iRepeat = KSchedulerRepeat; - User::LeaveIfError( iScheduler.ScheduleTask( - taskInfo, *data, iScheduleHandle ) ); - CleanupStack::PopAndDestroy( data ); - User::LeaveIfError( iScheduler.EnableSchedule( iScheduleHandle ) ); - } - -// ---------------------------------------------------------------------------- -// CFileManagerTaskScheduler::DeleteScheduleL -// ---------------------------------------------------------------------------- -// -void CFileManagerTaskScheduler::DeleteScheduleL() - { - if ( iScheduleHandle != KErrNotFound ) - { - INFO_LOG( "CFileManagerTaskScheduler::DeleteScheduleL-Delete" ) - iScheduler.DisableSchedule( iScheduleHandle ); - iScheduler.DeleteTask( KSchedulerTaskId ); - iScheduler.DeleteSchedule( iScheduleHandle ); - iScheduleHandle = KErrNotFound; - } - } - -// ---------------------------------------------------------------------------- -// CFileManagerTaskScheduler::EnableBackupScheduleL -// ---------------------------------------------------------------------------- -// -void CFileManagerTaskScheduler::EnableBackupScheduleL( const TBool aEnable ) - { - // Delete old schedule first - DeleteScheduleL(); - - if ( aEnable ) - { - CreateScheduleL(); - } - } - -// End of File