--- a/camappengine/asynchfilesavequeue/src/asynchfsq.cpp Fri Mar 19 09:33:47 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,369 +0,0 @@
-/*
-* Copyright (c) 2002-2007 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: Asynchronous File Saving Queue
-*
-*/
-
-
-
-// INCLUDE FILES
-#include <asynchfsq.h>
-#include <bautils.h> // for deleting files
-#include "asynchatom.h"
-
-// CONSTANTS
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CAsynchFSQ::CAsynchFSQ
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CAsynchFSQ::CAsynchFSQ()
- {
- LOGTEXT( _L( "CAsynchFSQ::CAsynchFSQ() entering" ) );
- }
-
-
-// -----------------------------------------------------------------------------
-// CAsynchFSQ::ConstructL
-// Symbian 2nd phase constructor can leave.
-// -----------------------------------------------------------------------------
-//
-void CAsynchFSQ::ConstructL()
- {
- LOGTEXT( _L( "CAsynchFSQ::ConstructL() entering" ) );
- iPriority = EPriorityNormal;
- iManualStart = EFalse;
- LOGTEXT( _L( "CAsynchFSQ::ConstructL() exiting" ) );
- }
-
-// -----------------------------------------------------------------------------
-// CAsynchFSQ::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C CAsynchFSQ* CAsynchFSQ::NewL()
- {
- LOGTEXT( _L( "CAsynchFSQ::NewL() entering" ) );
- CAsynchFSQ* self = new( ELeave ) CAsynchFSQ();
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop();
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CAsynchFSQ::~CAsynchFSQ
-// Destructor
-// -----------------------------------------------------------------------------
-//
-CAsynchFSQ::~CAsynchFSQ()
- {
- LOGTEXT( _L( "CAsynchFSQ::~CAsynchFSQ() entering" ) );
-
- // clean up queues
- iQueue.ResetAndDestroy();
-
- LOGTEXT( _L( "CAsynchFSQ::~CAsynchFSQ() exiting" ) );
- }
-
-// -----------------------------------------------------------------------------
-// CAsynchFSQ::SaveAndDestroy
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt CAsynchFSQ::SaveAndDestroy( TDesC8& aData, const TDesC& aPath, TBool aOverwrite )
- {
- LOGTEXT( _L( "CAsynchFSQ::SaveAndDestroy() entering" ) );
-
- TInt err = KErrNone;
-
- // return if NULL descriptor.
- if( !&aData )
- {
- return KErrArgument;
- }
-
- iOverwrite = aOverwrite;
-
- LOGTEXT2( _L( "CAsynchFSQ::SaveAndDestroy() iQueue.Count()=%d" ), iQueue.Count() );
- LOGTEXT2( _L( "CAsynchFSQ::SaveAndDestroy() ActionsLeft()=%d" ), ActionsLeft() );
-
- // add data to our queue
- err = Enqueue( EFileSave, aData, aPath, KNullDesC, ENullSchemaType, KNullDesC, KNullDesC );
-
- LOGTEXT2( _L( "CAsynchFSQ::SaveAndDestroy() iManualStart=%d" ), iManualStart );
-
- if ( !err && !iManualStart )
- {
- err = Go();
- }
-
- LOGTEXT2( _L( "CAsynchFSQ::SaveAndDestroy() returning err=%d" ), err );
- return err;
- }
-
-// -----------------------------------------------------------------------------
-// CAsynchFSQ::Go
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt CAsynchFSQ::Go()
- {
- LOGTEXT( _L( "CAsynchFSQ::Go() entering" ) );
- TInt err = KErrNone;
-
- // make sure the queue has at least one object
- if( iQueue.Count() == 0 )
- {
- err = KErrNotReady;
- }
-
- // activate AO's
-
- for( TInt i = 0; i < iQueue.Count(); i++ )
- {
- if(( !err )&&( iQueue[i]->GetState() == EPending ))
- {
- err = iQueue[i]->Go();
- }
- }
-
- LOGTEXT2( _L( "CAsynchFSQ::Go() returning err=%d" ), err );
- return err;
- }
-
-// -----------------------------------------------------------------------------
-// CAsynchFSQ::SetManualStart
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void CAsynchFSQ::SetManualStart( TBool aManualStart )
- {
- LOGTEXT( _L( "CAsynchFSQ::ManualStart() entering" ) );
- iManualStart = aManualStart;
- LOGTEXT( _L( "CAsynchFSQ::ManualStart() returning" ) );
- }
-
-// -----------------------------------------------------------------------------
-// CAsynchFSQ::Delete
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt CAsynchFSQ::Delete( const TDesC& aPath )
- {
- LOGTEXT( _L( "CAsynchFSQ::Delete() entering" ) );
- TInt err = KErrNotFound;
-
- // search for path name and delete if found
- for( TInt i = 0; i < iQueue.Count(); i++ )
- {
- if ( iQueue[i]->DoesLocalSave() )
- {
- if ( (iQueue[i]->GetPath()).Compare( aPath ) == 0 )
- {
- LOGTEXT( _L( "CAsynchFSQ::Delete() file found, deleting" ) );
- err = iQueue[i]->DeleteLocal();
- }
- }
- }
-
- // if still not found,
- // attempt to delete from file system
- if ( err == KErrNotFound )
- {
- LOGTEXT( _L( "CAsynchFSQ::Delete() not in queues, trying file system" ) );
- RFs fs;
- TInt connectError = fs.Connect();
- BaflUtils ba;
- if( !connectError && ba.FileExists( fs, aPath ) )
- {
- LOGTEXT( _L( "CAsynchFSQ::Delete() exists, deleting from file system" ) );
- err = KErrNone;
- ba.DeleteFile( fs, aPath );
- }
- fs.Close();
- }
-
- LOGTEXT2( _L( "CAsynchFSQ::Delete() returning err=%d" ), err );
- return err;
- }
-
-// -----------------------------------------------------------------------------
-// CAsynchFSQ::Rename
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt CAsynchFSQ::Rename( const TDesC& aOld, const TDesC& aNew )
- {
- LOGTEXT( _L( "CAsynchFSQ::Rename() entering" ) );
-
- TInt err = KErrNotFound;
-
- // search for path name and delete if found
- for( TInt i = 0; i < iQueue.Count(); i++ )
- {
- if ( iQueue[i]->DoesLocalSave() )
- {
- if ( (iQueue[i]->GetPath()).Compare( aOld ) == 0 )
- {
- LOGTEXT( _L( "CAsynchFSQ::Delete() file found, renaming" ) );
- err = iQueue[i]->RenameLocal( aNew );
- }
- }
- }
-
- // if still not found,
- // attempt to rename from file system
- if ( err == KErrNotFound )
- {
- LOGTEXT( _L( "CAsynchFSQ::Rename() not in queues, trying file system" ) );
- RFs fs;
- TInt connectError = fs.Connect();
- BaflUtils ba;
- if( !connectError && ba.FileExists( fs, aOld ) )
- {
- LOGTEXT( _L( "CAsynchFSQ::Rename() exists, renaming in file system" ) );
- err = KErrNone;
- ba.RenameFile( fs, aOld, aNew );
- }
- fs.Close();
- }
-
- LOGTEXT2( _L( "CAsynchFSQ::Rename() returning err=%d" ), err );
- return err;
- }
-
-
-
-// -----------------------------------------------------------------------------
-// CAsynchFSQ::SetThreadPriority
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void CAsynchFSQ::SetPriority( TInt aPriority )
- {
- LOGTEXT2( _L( "CAsynchFSQ::SetThreadPriority() entering aPriority=%d" ), aPriority );
- iPriority = aPriority;
- LOGTEXT( _L( "CAsynchFSQ::SetThreadPriority() exiting" ) );
- }
-
-// -----------------------------------------------------------------------------
-// CAsynchFSQ::SetCallback
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void CAsynchFSQ::SetCallback( MAsynchFSQObserver* aCallback )
- {
- LOGTEXT( _L( "CAsynchFSQ::SetCallback() entering" ) );
- iCallback = aCallback;
- LOGTEXT( _L( "CAsynchFSQ::SetCallback() exiting" ) );
- }
-
-// -----------------------------------------------------------------------------
-// CAsynchFSQ::ActionsLeft
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt CAsynchFSQ::ActionsLeft()
- {
- TInt actionsLeft = 0;
-
- for( TInt i = 0; i < iQueue.Count(); i++ )
- {
- actionsLeft += iQueue[i]->ActionsLeft();
- }
-
- LOGTEXT2( _L( "CAsynchFSQ::ActionsLeft() actionsLeft=%d" ), actionsLeft );
- return actionsLeft;
- }
-
-// -----------------------------------------------------------------------------
-// CAsynchFSQ::Cancel
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void CAsynchFSQ::Cancel()
- {
- LOGTEXT( _L( "CAsynchFSQ::Cancel() entering" ) );
-
- while( iQueue.Count() )
- {
- delete iQueue[0];
- iQueue[0] = NULL;
- iQueue.Remove( 0 ); // Data MUST be deleted first
- }
-
- LOGTEXT( _L( "CAsynchFSQ::Cancel() exiting" ) );
- }
-
-// -----------------------------------------------------------------------------
-// CAsynchFSQ::Notify
-// -----------------------------------------------------------------------------
-//
-void CAsynchFSQ::Notify( TInt aError )
- {
- LOGTEXT( _L( "CAsynchFSQ::Notify() entering" ) );
- iCallback->MAsynchFSQEvent( aError );
-
- // Scan and delete completed atoms
- for( TInt i = 0; i < iQueue.Count(); i++ )
- {
- if( iQueue[i]->ActionsLeft() == 0 )
- {
- delete iQueue[i];
- iQueue[i] = NULL;
- iQueue.Remove( i ); // Data MUST be deleted first
- i--;
- }
- }
-
- LOGTEXT( _L( "CAsynchFSQ::Notify() exiting" ) );
- }
-
-// -----------------------------------------------------------------------------
-// CAsynchFSQ::Enqueue
-// -----------------------------------------------------------------------------
-//
-TInt CAsynchFSQ::Enqueue( TFSQActionType aActionType, TDesC8& aData,
- const TDesC& aPath, const TDesC& aURL,
- TFSQSchemaType aSchema, const TDesC& aUserName,
- const TDesC& aPassword )
- {
- LOGTEXT( _L( "CAsynchFSQ::Enqueue() entering" ) );
-
- TInt err = KErrNone;
-
- TInt queueError = KErrNone;
- TRAP( err,
- // create atom
- CAsynchFSQAtom* atom =
- CAsynchFSQAtom::NewL( this,
- iPriority,
- aActionType,
- aData,
- aPath,
- aURL,
- aSchema,
- aUserName,
- aPassword );
-
- //append to queue
- iQueue.Append( atom );
- );
-
- if ( !err && queueError )
- {
- err = queueError;
- }
-
- LOGTEXT2( _L( "CAsynchFSQ::Enqueue() returning err=%d" ), err );
- return err;
- }
-
-// End of File