upnpharvester/cdssync/cdssynclib/src/cdssyncsqlao.cpp
branchIOP_Improvements
changeset 40 08b5eae9f9ff
parent 39 6369bfd1b60d
child 41 b4d83ea1d6e2
--- a/upnpharvester/cdssync/cdssynclib/src/cdssyncsqlao.cpp	Mon Nov 01 13:44:24 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,288 +0,0 @@
-/*
-* Copyright (c) 2008 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:      Cds Sync Active Object
-*
-*/
-
-
-
-
-
-
-#include "mcmsqlmain.h"
-#include "cmsqlbaseitem.h"
-#include "cmsqlgenericitem.h"
-#include "cdssyncsqlao.h"
-#include "cdssyncimplsql.h"
-#include "msdebug.h"
-
-// CONSTANTS
-const TInt KCdsSyncMaxImageItemCount = 15000;
-const TInt KCdsSyncMaxVideoItemCount = 5000;
-const TInt KCdsSyncMaxItemCount      = 40000;
-
-// --------------------------------------------------------------------------
-// CCdsSyncSqlAo::NewL
-// --------------------------------------------------------------------------
-//
-CCdsSyncSqlAo* CCdsSyncSqlAo::NewL( 
-    MCmSqlMain& aSqlDb,
-    CCdsSyncImpl& aSync,
-    RPointerArray<CCmSqlGenericItem>& aItemsToAdd,
-    RPointerArray<CCmSqlBaseItem>& aItemsToDelete,
-    TInt aAddGranularity )
-    {    
-    CCdsSyncSqlAo* self = CCdsSyncSqlAo::NewLC(
-        aSqlDb,
-        aSync,
-        aItemsToAdd,
-        aItemsToDelete,
-        aAddGranularity );
-    CleanupStack::Pop( self );
-    return self;
-    }
- 
-// --------------------------------------------------------------------------
-// CCdsSyncSqlAo::NewLC
-// --------------------------------------------------------------------------
-//    
-CCdsSyncSqlAo* CCdsSyncSqlAo::NewLC( 
-    MCmSqlMain& aSqlDb,
-    CCdsSyncImpl& aSync,
-    RPointerArray<CCmSqlGenericItem>& aItemsToAdd,
-    RPointerArray<CCmSqlBaseItem>& aItemsToDelete,
-    TInt aAddGranularity )
-    {    
-    LOG(_L("[Cds Sync]\t CCdsSyncSqlAo::NewLC"));    
-    CCdsSyncSqlAo* self = new (ELeave) CCdsSyncSqlAo( 
-        aSqlDb, aSync, aItemsToAdd, aItemsToDelete, aAddGranularity  
-        ); 
-    CleanupStack::PushL( self );
-    self->ConstructL(); 
-    return self;
-    }    
-
-// --------------------------------------------------------------------------
-// CCdsSyncSqlAo::~CCdsSyncSqlAo
-// --------------------------------------------------------------------------
-CCdsSyncSqlAo::~CCdsSyncSqlAo()
-    {
-    LOG(_L("[Cds Sync]\t CCdsSyncSqlAo::~CCdsSyncSqlAo"));    
-    
-    if ( IsActive() )
-        {
-        Cancel();
-        }
-    }
-
-// --------------------------------------------------------------------------
-// CCdsSyncSqlAo::CCdsSyncSqlAo
-// --------------------------------------------------------------------------
-CCdsSyncSqlAo::CCdsSyncSqlAo( MCmSqlMain& aSqlDb,
-                              CCdsSyncImpl& aSync,
-                              RPointerArray<CCmSqlGenericItem>& aItemsToAdd,
-                              RPointerArray<CCmSqlBaseItem>& aItemsToDelete,
-                              TInt aAddGranularity ) :
-    CActive( CActive::EPriorityIdle ),
-    iState( ECdsSyncSqlAoIdle ),
-    iSqlDb( aSqlDb ),
-    iSync( aSync ),
-    iItemsToAdd( aItemsToAdd ),
-    iItemsToDelete( aItemsToDelete ),
-    iAddGranularity( aAddGranularity ),    
-    iSourceDataComplete( EFalse )
-    {
-    }
-
-// --------------------------------------------------------------------------
-// CCdsSyncSqlAo::ConstructL
-// --------------------------------------------------------------------------
-void CCdsSyncSqlAo::ConstructL() 
-    {
-    LOG(_L("[Cds Sync]\t CCdsSyncSqlAo::ConstructL"));    
-    CActiveScheduler::Add( this );
-    }
-
-// --------------------------------------------------------------------------
-// CCdsSyncSqlAo::NotifyItemsAddedL
-// --------------------------------------------------------------------------
-void CCdsSyncSqlAo::NotifyItemsAddedL( TBool aSourceDataComplete )
-    {
-    LOG(_L("[Cds Sync]\t CCdsSyncSqlAo::NotifyItemsAddedL"));
-
-    // Source data is complete
-    if ( aSourceDataComplete )
-        {
-        iSourceDataComplete = ETrue;
-        }
-
-    TRACE( Print( _L("[Cds Sync]\t addarray has %d items, srccomplete %d"), 
-        iItemsToAdd.Count(), iSourceDataComplete ));
-    
-    if ( iState == ECdsSyncSqlAoIdle )
-        {
-        if ( iItemsToAdd.Count() >= iAddGranularity || 
-           ( iSourceDataComplete && iItemsToAdd.Count() ) )
-        
-            {
-            // add more items
-            iStatus = KRequestPending;
-            iItemsInAddition = iItemsToAdd.Count();
-
-        #ifdef _DEBUG
-            iOperationTime.HomeTime();
-        #endif
-
-            TRACE( Print( _L("[Cds Sync]\t starting to add %d items"),
-                 iItemsInAddition ));
-            iSqlDb.AsyncBatchAdd( iItemsToAdd, iStatus );
-            SetActive();    
-            iState = ECdsSyncSqlAoAdding;
-            }
-        else if ( iSourceDataComplete )
-            {
-            // all done, start deleting
-       #ifdef _DEBUG
-            iOperationTime.HomeTime();
-       #endif
-            iSqlDb.AsyncBatchDelete( iItemsToDelete, iStatus );
-            SetActive();
-            iState = ECdsSyncSqlAoDeleting;
-           }
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CCdsSyncSqlAo::Activate()
-// ---------------------------------------------------------------------------
-void CCdsSyncSqlAo::Activate()
-    {
-    SetActive();
-    }
-
-// --------------------------------------------------------------------------
-// CCdsSyncSqlAo::IfOverLimitDeleteMediaItems() 
-// --------------------------------------------------------------------------
-void CCdsSyncSqlAo::IfOverLimitDeleteMediaItems() 
-    {
-    LOG(_L("[Cds Sync]\t CCdsSyncSqlAo::IfOverLimitDeleteMediaItems START"));
-    TInt64 musicCount( KErrNone );
-    TInt64 videoCount( KErrNone );
-    TInt64 imageCount( KErrNone );
-    TRAP_IGNORE( iSqlDb.GetMediaCountL( musicCount, ECmAudio ) );
-    TRAP_IGNORE( iSqlDb.GetMediaCountL( videoCount, ECmVideo ) );
-    TRAP_IGNORE( iSqlDb.GetMediaCountL( imageCount, ECmImage ) );
-    TRACE( Print( _L("[Cds Sync]\t Amout of music items %ld"), musicCount ));
-    TRACE( Print( _L("[Cds Sync]\t Amout of image items %ld"), imageCount ));
-    TRACE( Print( _L("[Cds Sync]\t Amout of video items %ld"), videoCount ));
-    if( KCdsSyncMaxImageItemCount < imageCount )
-        {
-        TRAP_IGNORE( iSqlDb.DeleteOldestMediaItemsL( ECmImage, 
-            imageCount - KCdsSyncMaxImageItemCount ) );
-        TRACE( Print( _L("[Cds Sync]\t deleted %ld image items"), 
-            ( imageCount - KCdsSyncMaxImageItemCount )));           
-        TRAP_IGNORE( iSqlDb.GetMediaCountL( imageCount, ECmImage ) );
-        }
-    if( KCdsSyncMaxVideoItemCount < videoCount )
-        {
-        TRAP_IGNORE( iSqlDb.DeleteOldestMediaItemsL( ECmVideo, 
-            videoCount - KCdsSyncMaxVideoItemCount ) );
-        TRACE( Print( _L("[Cds Sync]\t deleted %ld video items"), 
-            ( videoCount - KCdsSyncMaxVideoItemCount )));              
-        TRAP_IGNORE( iSqlDb.GetMediaCountL( videoCount, ECmVideo ) );
-        }
-    if( KCdsSyncMaxItemCount < ( imageCount + videoCount + musicCount ) )
-        {
-        TRAP_IGNORE( iSqlDb.DeleteOldestMediaItemsL( ECmAudio, 
-            ( imageCount + videoCount + musicCount ) - 
-            KCdsSyncMaxItemCount ) );
-        TRACE( Print( _L("[Cds Sync]\t deleted %ld music items"), 
-            ( ( imageCount + videoCount + musicCount ) - 
-            KCdsSyncMaxItemCount )));                     
-        }
-    LOG(_L("[Cds Sync]\t CCdsSyncSqlAo::IfOverLimitDeleteMediaItems END"));
-    }
-    
-// --------------------------------------------------------------------------
-// CCdsSyncSqlAo::RunL() 
-// --------------------------------------------------------------------------
-void CCdsSyncSqlAo::RunL() 
-    {
-    TRACE( Print( _L("[Cds Sync]\t CCdsSyncSqlAo::RunL, iStatus %d"), 
-        iStatus.Int() ));
-    if ( iState == ECdsSyncSqlAoAdding )
-        {
-        iState = ECdsSyncSqlAoIdle;
-        
-    #ifdef _DEBUG
-            
-        TTime timeAfter;
-        timeAfter.HomeTime();
-        TRACE( Print( 
-          _L("[Cds Sync]\t added %d, took %ld microsec, err %d"),
-          iItemsToAdd.Count(), 
-          timeAfter.MicroSecondsFrom( iOperationTime ).Int64(),
-          iStatus.Int() ));
-        TRACE( Print( _L("[Cds Sync]\t array has %d items"), 
-           iItemsToAdd.Count() ));
-        
-    #endif
-        
-        TInt itemCount( iItemsToAdd.Count() );
-        
-        for ( TInt i = 0; i < itemCount; i++ )
-            {
-            delete iItemsToAdd[ 0 ];
-            iItemsToAdd.Remove( 0 );
-            }
-        
-        // check if there's more to add
-        NotifyItemsAddedL();
-        
-        }
-    else if ( iState == ECdsSyncSqlAoInitializing )
-        {
-        iSync.OperationsCompleteL( KErrNone );
-        }
-    else // ECdsSyncSqlAoDeleting
-        {
-    #ifdef _DEBUG
-    
-        TTime timeAfter;
-        timeAfter.HomeTime();
-        TRACE( Print( 
-          _L("[Cds Sync]\t removed %d, took %ld microsec, err %d"),
-          iItemsToDelete.Count(), 
-          timeAfter.MicroSecondsFrom( iOperationTime ).Int64(),
-          iStatus.Int() ));
-    #endif
-            
-        iItemsToDelete.ResetAndDestroy();
-        LOG(_L("[Cds Sync]\t Checking if too much media..."));
-        IfOverLimitDeleteMediaItems();
-        LOG(_L("[Cds Sync]\t Checked!"));
-        LOG(_L("[Cds Sync]\t Deleting unused propertys"));
-        iSqlDb.DeleteUnusedPropertys( );
-        iState = ECdsSyncSqlAoIdle;
-        iSync.OperationsCompleteL( KErrNone );
-        }
-    }
-
-// --------------------------------------------------------------------------
-// CCdsSyncSqlAo::DoCancel()
-// --------------------------------------------------------------------------
-void CCdsSyncSqlAo::DoCancel()
-    {
-    LOG(_L("[Cds Sync]\t CCdsSyncSqlAo::DoCancel"));    
-    }