eapol/eapol_framework/eapol_symbian/eap_server/src/EapServerBackup.cpp
branchRCL_3
changeset 46 c74b3d9f6b9e
parent 45 bad0cc58d154
child 55 9c2aa05919d9
equal deleted inserted replaced
45:bad0cc58d154 46:c74b3d9f6b9e
     1 /*
       
     2 * Copyright (c) 2001-2010 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of the License "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:  scheduler of EAP-server.
       
    15 *
       
    16 */
       
    17 
       
    18 /*
       
    19 * %version: %
       
    20 */
       
    21 
       
    22 /**
       
    23  @file
       
    24 */
       
    25 
       
    26 #include <e32std.h>
       
    27 #include "EapServerBackup.h"
       
    28 #include <connect/sbdefs.h>
       
    29 #include "EapTraceSymbian.h"
       
    30 
       
    31 using namespace conn;
       
    32 
       
    33 //----------------------------------------------------------------------------
       
    34 
       
    35 CEapserverBackup* CEapserverBackup::NewL(AbsEapserverBackup * const aBackupAndRestoreObserver)
       
    36 {
       
    37 	EAP_TRACE_DEBUG_SYMBIAN((_L("CEapserverBackup::NewL()")));
       
    38     EAP_TRACE_RETURN_STRING_SYMBIAN(_L("returns: CEapserverBackup::NewL()\n"));
       
    39 
       
    40 	CEapserverBackup* self = new(ELeave) CEapserverBackup(aBackupAndRestoreObserver);
       
    41 	CleanupStack::PushL(self);
       
    42 	self->ConstructL();
       
    43 	CleanupStack::Pop(self);
       
    44 	return self;
       
    45 }
       
    46 
       
    47 //----------------------------------------------------------------------------
       
    48 
       
    49 CEapserverBackup::CEapserverBackup(AbsEapserverBackup * const aBackupAndRestoreObserver)
       
    50 :CActive(EPriorityStandard)
       
    51 {
       
    52 	EAP_TRACE_DEBUG_SYMBIAN((_L("CEapserverBackup::CEapserverBackup()")));
       
    53     EAP_TRACE_RETURN_STRING_SYMBIAN(_L("returns: CEapserverBackup::CEapserverBackup()\n"));
       
    54 
       
    55 	iBackupAndRestoreObserver = aBackupAndRestoreObserver;
       
    56 }
       
    57 
       
    58 //----------------------------------------------------------------------------
       
    59 
       
    60 void CEapserverBackup::ConstructL()
       
    61 {
       
    62 	EAP_TRACE_DEBUG_SYMBIAN((_L("CEapserverBackup::ConstructL()")));
       
    63     EAP_TRACE_RETURN_STRING_SYMBIAN(_L("returns: CEapserverBackup::ConstructL()\n"));
       
    64 
       
    65 	iBackupOrRestoreInProgress = EFalse;
       
    66 	User::LeaveIfError(iBackupProperty.Attach(KUidSystemCategory,KUidBackupRestoreKey));
       
    67 	CActiveScheduler::Add(this);
       
    68 	iBackupProperty.Subscribe(iStatus);
       
    69 	SetActive();
       
    70 }
       
    71 
       
    72 //----------------------------------------------------------------------------
       
    73 
       
    74 CEapserverBackup::~CEapserverBackup()
       
    75 {
       
    76 	EAP_TRACE_DEBUG_SYMBIAN((_L("CEapserverBackup::~CEapserverBackup()")));
       
    77     EAP_TRACE_RETURN_STRING_SYMBIAN(_L("returns: CEapserverBackup::~CEapserverBackup()\n"));
       
    78 
       
    79 	Cancel();
       
    80 	iBackupProperty.Close();
       
    81 }
       
    82 
       
    83 //----------------------------------------------------------------------------
       
    84 
       
    85 void CEapserverBackup::DoCancel()
       
    86 {
       
    87 	EAP_TRACE_DEBUG_SYMBIAN((_L("CEapserverBackup::DoCancel()")));
       
    88     EAP_TRACE_RETURN_STRING_SYMBIAN(_L("returns: CEapserverBackup::DoCancel()\n"));
       
    89 
       
    90 	iBackupProperty.Cancel();
       
    91 }
       
    92 
       
    93 //----------------------------------------------------------------------------
       
    94 
       
    95 TBool CEapserverBackup::IsBackupOrRestoreInProgress()
       
    96 {
       
    97 	EAP_TRACE_DEBUG_SYMBIAN((_L("CEapserverBackup::IsBackupOrRestoreInProgress()")));
       
    98     EAP_TRACE_RETURN_STRING_SYMBIAN(_L("returns: CEapserverBackup::IsBackupOrRestoreInProgress()\n"));
       
    99 
       
   100 	return iBackupOrRestoreInProgress;
       
   101 }
       
   102 
       
   103 //----------------------------------------------------------------------------
       
   104 
       
   105 /**
       
   106  *  @leave KErrNotSupported if unknown backup flag is found
       
   107  */
       
   108 void CEapserverBackup::RunL()
       
   109 {
       
   110 	EAP_TRACE_DEBUG_SYMBIAN((_L("CEapserverBackup::RunL()")));
       
   111     EAP_TRACE_RETURN_STRING_SYMBIAN(_L("returns: CEapserverBackup::RunL()\n"));
       
   112 
       
   113 	iBackupProperty.Subscribe(iStatus);
       
   114 	SetActive();
       
   115 
       
   116 
       
   117 	TInt backupRestoreFlag;
       
   118 	iBackupProperty.Get(backupRestoreFlag);
       
   119 
       
   120 	EAP_TRACE_DEBUG_SYMBIAN((_L("CEapserverBackup::RunL(): backupRestoreFlag=0x%08x"),
       
   121 		backupRestoreFlag));
       
   122 
       
   123 	switch(backupRestoreFlag & KBURPartTypeMask)
       
   124 	{
       
   125  		case EBURUnset:
       
   126  		case EBURNormal:
       
   127  			if(iBackupOrRestoreInProgress) //only report complete if already reported starting
       
   128  			{
       
   129 				EAP_TRACE_DEBUG_SYMBIAN((_L("CEapserverBackup::RunL(): Backup or restore complete")));
       
   130  				iBackupAndRestoreObserver->BackupOrRestoreCompleteL();
       
   131  				iBackupOrRestoreInProgress=EFalse;
       
   132  			}
       
   133  			break;
       
   134  		case EBURBackupFull:
       
   135  		case EBURBackupPartial:
       
   136 		case EBURRestoreFull:
       
   137 		case EBURRestorePartial:
       
   138 			{
       
   139 				EAP_TRACE_DEBUG_SYMBIAN((_L("CEapserverBackup::RunL(): Backup or restore starts")));
       
   140 				iBackupOrRestoreInProgress=ETrue;
       
   141 				iBackupAndRestoreObserver->BackupOrRestoreStartingL();
       
   142 			}
       
   143 			break;
       
   144 		default:
       
   145 			User::Leave(KErrNotSupported); //unexpected value
       
   146 	};
       
   147 }
       
   148 
       
   149 //----------------------------------------------------------------------------
       
   150 // End of file.