filemanager/src/fmbkupengine/inc/CMMCScBkupIndexWithIdentifier.h
branchRCL_3
changeset 39 65326cf895ed
parent 38 491b3ed49290
child 42 f5c50b8af68c
--- a/filemanager/src/fmbkupengine/inc/CMMCScBkupIndexWithIdentifier.h	Tue Aug 31 15:06:05 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,329 +0,0 @@
-/*
-* 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: Declaration for CMMCScBkupIndexWithIdentifier
-*     
-*
-*/
-
-#ifndef __CMMCSCBKUPINDEXWITHIDENTIFIER_H__
-#define __CMMCSCBKUPINDEXWITHIDENTIFIER_H__
-
-// User includes
-#include "CMMCScBkupIndexBase.h"
-#include "TMMCScBkupOwnerDataType.h"
-#include "TMMCScBkupArchiveVector.h"
-#include "MMMCScBkupArchiveDataInterface.h"
-
-
-
-/**
-*
-*
-* @since 3.0
-*/
-template < class TIdentifier >
-class CMMCScBkupIndexEntry : public CBase
-    {
-    public:
-        inline static CMMCScBkupIndexEntry* NewLC( const TIdentifier& aIdentifier )
-            {
-            CMMCScBkupIndexEntry* self = new(ELeave) CMMCScBkupIndexEntry( aIdentifier );
-            CleanupStack::PushL( self );
-            return self;
-            }
-
-        inline static CMMCScBkupIndexEntry* NewLC( RReadStream& aStream )
-            {
-            CMMCScBkupIndexEntry* self = new(ELeave) CMMCScBkupIndexEntry();
-            CleanupStack::PushL( self );
-            aStream >> *self;
-            return self;
-            }
-
-       inline ~CMMCScBkupIndexEntry()
-            {
-            iAssociatedData.Close();
-            }
-
-    private:
-
-        inline CMMCScBkupIndexEntry()
-            {
-            }
-
-        inline CMMCScBkupIndexEntry( const TIdentifier& aIdentifier )
-            : iIdentifier( aIdentifier )
-            {
-            }
-
-    private: // Internal enumerations
-        enum
-            {
-            EStreamFormatVersion1 = 1
-            };
-
-    public:// Store & Restore
-
-        inline void InternalizeL( RReadStream& aStream )
-            {
-            aStream.ReadInt32L(); // EStreamFormatVersion1
-            aStream.ReadInt32L(); // spare1
-            aStream.ReadInt32L(); // spare2
-            aStream.ReadInt32L(); // spare3
-            //
-            iIdentifier = aStream.ReadInt32L();
-            //
-            const TInt count = aStream.ReadInt32L();
-            for(TInt i=0; i<count; i++)
-                {
-                TMMCScBkupArchiveDriveAndVector entry;
-                aStream >> entry;
-                //
-                iAssociatedData.AppendL( entry );
-                }
-            }
-
-        inline void ExternalizeL( RWriteStream& aStream ) const
-            {
-            aStream.WriteInt32L( EStreamFormatVersion1 );
-            aStream.WriteInt32L( 0 ); // spare1
-            aStream.WriteInt32L( 0 ); // spare2
-            aStream.WriteInt32L( 0 ); // spare3
-            //
-            aStream.WriteInt32L( iIdentifier );
-            //
-            const TInt count = iAssociatedData.Count();
-            aStream.WriteInt32L(count);
-            //
-            for(TInt i=0; i<count; i++)
-                {
-                const TMMCScBkupArchiveDriveAndVector& entry = iAssociatedData[i];
-                aStream << entry;
-                }
-            }
-
-    public: // General access
-        
-        inline const TIdentifier& Identifier() const
-            { return iIdentifier; }
-
-        inline void AddEntryL( const TMMCScBkupArchiveDriveAndVector& aEntry )
-            { iAssociatedData.AppendL(aEntry); }
-
-        inline TInt Count() const
-            { return iAssociatedData.Count(); }
-
-        inline const TMMCScBkupArchiveDriveAndVector& Entry(TInt aIndex) const
-            { return iAssociatedData[ aIndex ]; }
-
-        inline const RArray<TMMCScBkupArchiveDriveAndVector>& Entries() const
-            { return iAssociatedData; }
-
-    private:
-
-        /**
-        *
-        */
-        TIdentifier iIdentifier;
-
-        /**
-        *
-        */
-        RArray<TMMCScBkupArchiveDriveAndVector> iAssociatedData;
-   };
-
-
-
-
-
-
-/**
-*
-*
-* @since 3.0
-*/
-template < class TIdentifier >
-class CMMCScBkupIndexWithIdentifier : public CMMCScBkupIndexBase
-    {
-
-    public:
-
-        /**
-        * C++ destructor
-        */
-        inline ~CMMCScBkupIndexWithIdentifier()
-            {
-            iEntries.Close();
-            }
-
-    protected:
-
-        /**
-        * C++ default constructor
-        */
-        inline CMMCScBkupIndexWithIdentifier( TMMCScBkupOwnerDataType aType )
-            : CMMCScBkupIndexBase( aType )
-            {
-            }
-
-    private: // Internal enumerations
-        enum
-            {
-            EStreamFormatVersion1 = 1
-            };
-
-    public: // API
-
-        /**
-        *
-        */
-        inline void AddIndexRecordL( const TMMCScBkupArchiveVector& aInfo, TDriveNumber aDrive, const TIdentifier& aIdentifier )
-            {
-            // Locate the parent
-            CMMCScBkupIndexEntry< TIdentifier >& entry = EntryByIdentifierL( aIdentifier );
-
-            // Create new sub-entry
-            TMMCScBkupArchiveDriveAndVector subItem;
-            subItem.iDrive = aDrive;
-            subItem.iVector = aInfo;
-
-            // Add it to our index
-            entry.AddEntryL( subItem );
-            }
-
-        /**
-        *
-        */
-        inline TInt Count() const
-            { return iEntries.Count(); }
-
-        /**
-        *
-        */
-        inline const CMMCScBkupIndexEntry< TIdentifier >& At( TInt aIndex ) const
-            { return *iEntries[ aIndex ]; }
-
-        /**
-        *
-        */
-        inline void StoreL(MMMCScBkupDriver& aDriver)
-            {
-            MMMCScBkupArchiveDataInterface& archiveDataInterface = aDriver.DrvADI();
-            RWriteStream stream( archiveDataInterface.ADIWriteStreamUncompressedLC() );
-            //    
-            stream.WriteInt32L( EStreamFormatVersion1 );
-            stream.WriteInt32L( 0 ); // spare1
-            stream.WriteInt32L( 0 ); // spare2
-            stream.WriteInt32L( 0 ); // spare3
-
-            const TInt count = iEntries.Count();
-            stream.WriteInt32L( count );
-            //
-            for(TInt i=0; i<count; i++)
-                {
-                const CMMCScBkupIndexEntry< TIdentifier > & entry = *iEntries[ i ];
-                stream << entry;
-                }
-            //
-            stream.CommitL();
-            CleanupStack::PopAndDestroy(); // stream
-
-            // Update our base class info with the offset to the index
-            SetVector( archiveDataInterface.ADICurrentArchiveVectorInfo() );
-            }
-
-        /**
-        *
-        */
-        inline void RestoreL(MMMCScBkupDriver& aDriver)
-            {
-            MMMCScBkupArchiveDataInterface& archiveDataInterface = aDriver.DrvADI();
-            RReadStream stream( archiveDataInterface.ADIReadStreamUncompressedLC( Vector().Offset() ) );
-            //    
-            stream.ReadInt32L(); // EStreamFormatVersion1 
-            stream.ReadInt32L(); // spare1
-            stream.ReadInt32L(); // spare2
-            stream.ReadInt32L(); // spare3
-            //    
-            const TInt count = stream.ReadInt32L();
-            for(TInt i=0; i<count; i++)
-                {
-                CMMCScBkupIndexEntry< TIdentifier >* entry = CMMCScBkupIndexEntry< TIdentifier >::NewLC( stream );
-                iEntries.AppendL( entry );
-                CleanupStack::Pop( entry );
-                }
-            //
-            CleanupStack::PopAndDestroy(); // stream
-            //
-            if  ( archiveDataInterface.ADICurrentArchiveVectorInfo().Length() > Vector().Length() )
-                {
-                // We've read too much!
-                User::Leave( KErrCorrupt );
-                }
-            }
-
-    private: // Internal methods
-
-        /**
-        *
-        */
-        inline CMMCScBkupIndexEntry< TIdentifier >* EntryByIdentifier( const TIdentifier& aIdentifier )
-            {
-            CMMCScBkupIndexEntry< TIdentifier >* ret = NULL;
-            //
-            const TInt count = iEntries.Count();
-            for( TInt i=count-1; i>=0; i-- )
-                {
-                CMMCScBkupIndexEntry< TIdentifier >* entry = iEntries[ i ];
-                if  ( entry->Identifier() == aIdentifier )
-                    {
-                    ret = entry;
-                    break;
-                    }
-                }
-            //
-            return ret;
-            }
-
-        /**
-        *
-        */
-        inline CMMCScBkupIndexEntry< TIdentifier >& EntryByIdentifierL( const TIdentifier& aIdentifier )
-            {
-            CMMCScBkupIndexEntry< TIdentifier >* ret = EntryByIdentifier( aIdentifier );
-            if  ( !ret )
-                {
-                // Need to make a new entry
-                ret = CMMCScBkupIndexEntry< TIdentifier >::NewLC( aIdentifier );
-                iEntries.AppendL( ret );
-                CleanupStack::Pop( ret );
-                }
-            //
-            return *ret;
-            }
-
-    private: // Member Data
-
-        //
-        RMMCScBkupPointerArray< CMMCScBkupIndexEntry< TIdentifier > > iEntries;
-    };
-
-
-
-
-
-
-#endif // __CMMCSCBKUPINDEXWITHIDENTIFIER_H__
-
-//End of File