--- a/emailservices/emailstore/base_plugin/src/NestedAO.cpp Tue Apr 27 16:20:14 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,124 +0,0 @@
-/*
-* ==============================================================================
-* Name : NestedAO.cpp
-* Part of : Base Plugin
-* Description : Implementation of a nested active object used to handle deletion
-* of large number of messages by breaking them into smaller chunks
-* Version :
-*
-* Copyright (c) 2005 - 2010 Nokia Corporation.
-* This material, including documentation and any related
-* computer programs, is protected by copyright controlled by
-* Nokia Corporation. All rights are reserved. Copying,
-* including reproducing, storing, adapting or translating, any
-* or all of this material requires the prior written consent of
-* Nokia Corporation. This material also contains confidential
-* information which may not be disclosed to others without the
-* prior written consent of Nokia Corporation.
-* ==============================================================================
-*/
-// Include Files
-//
-
-
-#include "NestedAO.h"
-#include "baseplugindelayedops.h"
-#include "baseplugindelayedopsprivate.h"
-
-//Class CNestedAO
-
-// --------------------------------------------------------------------------
-// CNestedAO::NewL
-// ------------
-CNestedAO* CNestedAO::NewL( MDeletionHandler& aDeletionHandler )
- {
- CNestedAO* self = new(ELeave) CNestedAO( aDeletionHandler );
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop( self );
- return self;
- }
-// --------------------------------------------------------------------------
-// CNestedAO::CNestedAO
-// ------------
-CNestedAO::CNestedAO( MDeletionHandler& aDeletionHandler )
- : CTimer( EPriorityIdle ), iDeletionHandler( aDeletionHandler ), iRc( KErrNone )
- {
- }
-// --------------------------------------------------------------------------
-// CNestedAO::ConstructL()
-// ------------
-void CNestedAO::ConstructL()
- {
- CTimer::ConstructL();
- iNestedWait = new( ELeave ) CActiveSchedulerWait();
- CActiveScheduler::Add( this );
- }
-// --------------------------------------------------------------------------
-// CNestedAO::~CNestedAO
-// ------------
-CNestedAO::~CNestedAO()
- {
- Cancel();
- delete iNestedWait;
- }
-// --------------------------------------------------------------------------
-// CNestedAO::DeleteMessagesAsync
-// Used to delete messages asynchronously
-// Deleting a small number of messages at a time
-// ------------
-void CNestedAO::DeleteMessagesAsync()
- {
- iDeletionIndex = 0;
- After( KWaitIntervalInMicroSecs ); //to invoke RunL after 100 microseconds
- iNestedWait->Start();
- }
-// --------------------------------------------------------------------------
-// CNestedAO::DoCancel
-// ------------
-void CNestedAO::DoCancel()
- {
- iRc = KErrCancel;
- Stop();
- }
-// --------------------------------------------------------------------------
-// CNestedAO::RunL
-// ------------
-void CNestedAO::RunL()
- {
- iRc = iStatus.Int();
- if ( iStatus.Int() == KErrNone )
- {
- TBool done = iDeletionHandler.DeleteMessagesInChunksL( iDeletionIndex );
- if( !done )
- {
- //Increment deletionidex
- iDeletionIndex+=KSizeOfChunk;
- After( KWaitIntervalInMicroSecs );
- }
- else
- {
- Stop();
- }
- }
- else
- {
- Stop();
- }
- }
-
-// --------------------------------------------------------------------------
-// CNestedAO::Stop
-// Stops the scheduler from running
-// Called after all messages are processed
-// or in error condition
-// ------------
-void CNestedAO::Stop()
- {
- if( iNestedWait->IsStarted() )
- {
- // Stop the nested active scheduler (flow-of-control will pick up immediately following the
- // call to iWait.Start().
- iNestedWait->AsyncStop();
- } // end if
- }