connectivitymodules/SeCon/services/pcd/src/sconbackuprestore.cpp
branchRCL_3
changeset 20 4a793f564d72
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/connectivitymodules/SeCon/services/pcd/src/sconbackuprestore.cpp	Wed Sep 01 12:20:56 2010 +0100
@@ -0,0 +1,208 @@
+/*
+* Copyright (c) 2005-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:  CSConBackupRestore implementation
+*
+*/
+
+
+// INCLUDE FILES
+#include <pathinfo.h>
+
+#include "sconbackuprestore.h"
+#include "sconsbeclient.h"
+#include "sconbrqueue.h"
+#include "sconpcdconsts.h"
+
+#include "debug.h"
+
+// ============================= MEMBER FUNCTIONS ===============================
+
+
+// -----------------------------------------------------------------------------
+// CSConBackupRestore* CSConBackupRestore::NewL( CSConBackupRestoreQueue* aQueue,
+//                                          cost TInt& aMaxObjectSize )
+// Two-phase constructor
+// -----------------------------------------------------------------------------
+//
+CSConBackupRestore* CSConBackupRestore::NewL( CSConBackupRestoreQueue* aQueue,
+                                            const TInt aMaxObjectSize, RFs& aFs )
+    {
+    CSConBackupRestore* self = new (ELeave) CSConBackupRestore( aQueue, aFs );
+    CleanupStack::PushL( self );
+    self->ConstructL( aMaxObjectSize );
+    CleanupStack::Pop( self );
+    return self;
+    }
+
+// -----------------------------------------------------------------------------
+// CSConBackupRestore::CSConBackupRestore( CSConBackupRestoreQueue* aQueue )
+// Constructor
+// -----------------------------------------------------------------------------
+//
+CSConBackupRestore::CSConBackupRestore( CSConBackupRestoreQueue* aQueue, RFs& aFs ) : 
+            CActive( EPriorityStandard ), iQueue( aQueue ), iFs( aFs )
+    {
+    }
+    
+// -----------------------------------------------------------------------------
+// CSConBackupRestore::ConstructL( const TInt aMaxObjectSize )
+// Initializes member data
+// -----------------------------------------------------------------------------
+//
+void CSConBackupRestore::ConstructL( const TInt aMaxObjectSize )
+    {
+    iMaxObjectSize = aMaxObjectSize;
+    iSBEClient = CSConSBEClient::NewL( aMaxObjectSize, iFs );
+    CActiveScheduler::Add( iSBEClient );
+    }   
+    
+// -----------------------------------------------------------------------------
+// CSConBackupRestore::~CSConBackupRestore()
+// Destructor
+// -----------------------------------------------------------------------------
+//
+CSConBackupRestore::~CSConBackupRestore()
+    {
+    if( iSBEClient )
+        {
+        iSBEClient->Cancel();
+        delete iSBEClient;
+        iSBEClient = NULL;
+        }
+    }
+    
+// -----------------------------------------------------------------------------
+// CSConBackupRestore::StartBackupRestore( TInt aTaskId )
+// Starts backup-restore task
+// -----------------------------------------------------------------------------
+//
+void CSConBackupRestore::StartBackupRestore( TInt aTaskId )
+    {
+    iBackupRestoreActive = ETrue;
+    CSConTask* task = NULL;
+    
+    TInt ret = iQueue->GetTask( aTaskId, task );
+
+    if( aTaskId > 0 && ret != KErrNotFound )
+        {
+        iCurrentTask = aTaskId;
+        iQueue->SetTaskProgress( aTaskId, KSConCodeProcessingStarted );
+        }
+    
+    switch( task->GetServiceId() )
+        {
+        case ESetBURMode :
+            iQueue->ChangeQueueProcessStatus();
+            iSBEClient->SetBURMode( iStatus, task );
+            break;
+        case EListPublicFiles :
+            iSBEClient->ListPublicFiles( iStatus, task );
+            break;
+        case EListDataOwners :
+            iSBEClient->ListDataOwners( iStatus, task );
+            break;
+        case EGetDataSize :
+            iSBEClient->GetDataSize( iStatus, task );
+            break;
+        case ERequestData :
+            iSBEClient->RequestData( iStatus, task );
+            break;
+        case EGetDataOwnerStatus :
+            iSBEClient->GetDataOwnerStatus( iStatus, task );
+            break;
+        case ESupplyData :
+            iSBEClient->SupplyData( iStatus, task );
+            break;      
+        default :
+            break;
+        }
+    
+    SetActive();    
+    }
+
+// -----------------------------------------------------------------------------
+// CSConBackupRestore::StopBackupRestore( TInt aTaskId )
+// Stops executing backup-restore task
+// -----------------------------------------------------------------------------
+//
+void CSConBackupRestore::StopBackupRestore( TInt aTaskId )
+    {
+    TRACE_FUNC_ENTRY;
+     //if the task is active, do cancel
+     if( iCurrentTask == aTaskId )
+        {
+        iBackupRestoreActive = EFalse;
+        iSBEClient->Cancel();
+        }
+    TRACE_FUNC_EXIT;
+    }
+
+// -----------------------------------------------------------------------------
+// CSConBackupRestore::Reset()
+// Resets backup
+// -----------------------------------------------------------------------------
+//  
+void CSConBackupRestore::Reset()
+    {
+    TRACE_FUNC_ENTRY;
+    if( iSBEClient )
+        {
+        iSBEClient->Cancel();
+        delete iSBEClient;
+        iSBEClient = NULL;
+        }
+        
+    TRAPD( err, iSBEClient = CSConSBEClient::NewL( iMaxObjectSize, iFs ) );
+    
+    if( err == KErrNone )
+        {
+        CActiveScheduler::Add( iSBEClient );
+        }
+    
+    iBackupRestoreActive = EFalse;
+    TRACE_FUNC_EXIT;
+    }
+
+// -----------------------------------------------------------------------------
+// CSConBackupRestore::BackupRestoreActive()
+// returns backup-restore activity status
+// -----------------------------------------------------------------------------
+//
+TBool CSConBackupRestore::BackupRestoreActive() const
+	{
+	return iBackupRestoreActive;
+	}
+// -----------------------------------------------------------------------------
+// CSConBackupRestore::DoCancel()
+// Implementation of CActive::DoCancel()
+// -----------------------------------------------------------------------------
+//  
+void CSConBackupRestore::DoCancel()
+    {
+    TRACE_FUNC;
+    }
+
+// -----------------------------------------------------------------------------
+// CSConBackupRestore::RunL()
+// Implementation of CActive::RunL()
+// -----------------------------------------------------------------------------
+//          
+void CSConBackupRestore::RunL()
+    {
+    TRACE_FUNC;
+    iQueue->CompleteTask( iCurrentTask, iStatus.Int() );
+    iBackupRestoreActive = EFalse;
+    }
+    
+// End of file