diff -r 95243422089a -r 491b3ed49290 filemanager/src/fmbkupengine/src/CMMCScBkupStateArchiveOpArchiveHeader.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/filemanager/src/fmbkupengine/src/CMMCScBkupStateArchiveOpArchiveHeader.cpp Tue Aug 31 15:06:05 2010 +0300 @@ -0,0 +1,138 @@ +/* +* Copyright (c) 2005 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: CMMCScBkupStateArchiveOpArchiveHeader implementation +* +* +*/ + +#include "CMMCScBkupStateArchiveOpArchiveHeader.h" + +// System includes +#include +#include +#include + +// User includes +#include "MMCScBkupLogger.h" +#include "CMMCScBkupArchive.h" +#include "CMMCScBkupArchiveHeader.h" + + + +// ========================= MEMBER FUNCTIONS ================================ + +// --------------------------------------------------------------------------- +// CMMCScBkupStateArchiveOpArchiveHeader::CMMCScBkupStateArchiveOpArchiveHeader() +// +// C++ constructor. +// --------------------------------------------------------------------------- +CMMCScBkupStateArchiveOpArchiveHeader::CMMCScBkupStateArchiveOpArchiveHeader( MMMCScBkupDriver& aDriver ) +: CMMCScBkupState( aDriver ) + { + __LOG1("CMMCScBkupStateArchiveOpArchiveHeader::CMMCScBkupStateArchiveOpArchiveHeader() - 0x%08x", StateId().iUid ); + } + + +// --------------------------------------------------------------------------- +// CMMCScBkupStateArchiveOpArchiveHeader::NewL() +// +// +// --------------------------------------------------------------------------- +CMMCScBkupStateArchiveOpArchiveHeader* CMMCScBkupStateArchiveOpArchiveHeader::NewL( MMMCScBkupDriver& aDriver ) + { + CMMCScBkupStateArchiveOpArchiveHeader* self = new(ELeave) CMMCScBkupStateArchiveOpArchiveHeader( aDriver ); + return self; + } + + +// --------------------------------------------------------------------------- +// CMMCScBkupStateArchiveOpArchiveHeader::StateId() +// +// +// --------------------------------------------------------------------------- +TMMCScBkupStateId CMMCScBkupStateArchiveOpArchiveHeader::StateId() const + { + return KMMCScBkupStateArchiveOpArchiveHeader; + } + + +// --------------------------------------------------------------------------- +// CMMCScBkupStateArchiveOpArchiveHeader::NextStateId() +// +// +// --------------------------------------------------------------------------- +TMMCScBkupStateId CMMCScBkupStateArchiveOpArchiveHeader::NextStateId() const + { + TMMCScBkupStateId nextState = KMMCScBkupStateIdGetDataOwners; + // + const TMMCScBkupOperationType type = Driver().DrvOperation(); + switch(type) + { + case EMMCScBkupOperationTypeFullBackup: + nextState = KMMCScBkupStateIdGetDataOwners; + break; + case EMMCScBkupOperationTypeFullRestore: + nextState = KMMCScBkupStateIdArchiveOpArchiveFooter; + break; + default: + ASSERT( EFalse ); + break; + } + // + return nextState; + } + + +// --------------------------------------------------------------------------- +// CMMCScBkupStateArchiveOpArchiveHeader::PerformStateInitL() +// +// +// --------------------------------------------------------------------------- +void CMMCScBkupStateArchiveOpArchiveHeader::PerformStateInitL() + { + CompleteSelf(); + } + + +// --------------------------------------------------------------------------- +// CMMCScBkupStateArchiveOpArchiveHeader::PerformAsynchronousStateStepL() +// +// +// --------------------------------------------------------------------------- +void CMMCScBkupStateArchiveOpArchiveHeader::PerformAsynchronousStateStepL() + { + CMMCScBkupArchive& archive = Driver().DrvArchive(); + CMMCScBkupArchiveHeader& header = archive.Header(); + // + const TMMCScBkupOperationType type = Driver().DrvOperation(); + switch(type) + { + case EMMCScBkupOperationTypeFullBackup: + header.StoreL(archive.Category()); +#ifdef RD_FILE_MANAGER_BACKUP + // Activate crc-calculation for payload data. Header crc'd separately + Driver().DrvADI().ADIActivateCrcCalculation(ETrue); +#endif + break; + case EMMCScBkupOperationTypeFullRestore: + header.RestoreL(); + break; + default: + User::Leave(KErrNotSupported); + break; + } + } + + +