camappengine/asynchfilesavequeue/src/asynchfsq.cpp
changeset 15 50d5061ee01e
parent 14 34024902876b
child 17 880d946921e4
--- 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