pushmtm/MtmUtilSrc/PushInitiatorList.cpp
changeset 51 48e827313edd
parent 37 481242ead638
child 53 f427d27b98d8
--- a/pushmtm/MtmUtilSrc/PushInitiatorList.cpp	Tue Feb 02 00:12:41 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,358 +0,0 @@
-/*
-* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "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:  The definition of CPushInitiatorList.
-*
-*/
-
-
-
-// INCLUDE FILES
-
-#include "PushInitiatorList.h"
-#include "PushMtmLog.h"
-#include "PushMtmUtilPanic.h"
-#include "WhiteListImporter.h"
-#include "PushMtmPrivateCRKeys.h"
-#include <centralrepository.h> 
-
-// ================= MEMBER FUNCTIONS =======================
-
-// ---------------------------------------------------------
-// CPushInitiatorList::NewL
-// ---------------------------------------------------------
-//
-EXPORT_C CPushInitiatorList* CPushInitiatorList::NewL()
-    {
-    const TInt KGranularity( 8 );
-    return new (ELeave) CPushInitiatorList( KGranularity );
-    }
-
-// ---------------------------------------------------------
-// CPushInitiatorList::~CPushInitiatorList
-// ---------------------------------------------------------
-//
-EXPORT_C CPushInitiatorList::~CPushInitiatorList()
-    {
-    ResetAndDestroy();
-    }
-
-// ---------------------------------------------------------
-// CPushInitiatorList::AddL
-// ---------------------------------------------------------
-//
-EXPORT_C TUint32 CPushInitiatorList::AddL
-    ( const CPushInitiator& aPushInitiator )
-    {
-    CPushInitiator* temp = aPushInitiator.AllocLC();
-    TUint32 entryId = AddL( temp );
-    CleanupStack::Pop( temp );
-    return entryId;
-    }
-
-// ---------------------------------------------------------
-// CPushInitiatorList::AddL
-// ---------------------------------------------------------
-//
-EXPORT_C TUint32 CPushInitiatorList::AddL( CPushInitiator* aPushInitiator )
-    {
-    PUSHLOG_ENTERFN("CPushInitiatorList::AddL")
-
-    __ASSERT_DEBUG( aPushInitiator, UtilPanic( EPushMtmUtilPanNull ) );
-
-    TUint32 entryId( ENullInitiatorEntryId );
-
-    if ( !aPushInitiator )
-        {
-        // Nothing to insert.
-        }
-    else
-        {
-        // Get an ID for the new entry before we insert it to the list if it 
-        // has not set yet:
-        entryId = aPushInitiator->EntryID();
-        if ( entryId == ENullInitiatorEntryId )
-            {
-            entryId = FreeId();
-            // Give this new ID to the new entry:
-            aPushInitiator->SetEntryID( entryId );
-            }
-        __ASSERT_DEBUG( entryId != ENullInitiatorEntryId, 
-                        UtilPanic( EPushMtmUtilPanNull ) );
-        // And append it to the list:
-        AppendL( aPushInitiator );
-        // Set flag that indicates that the list has changed:
-        iPushInitiatorListChanged = ETrue;
-        }
-
-    PUSHLOG_WRITE_FORMAT(" entryId <%d>",entryId)
-    PUSHLOG_LEAVEFN("CPushInitiatorList::AddL")
-    return entryId;
-    }
-
-// ---------------------------------------------------------
-// CPushInitiatorList::At
-// ---------------------------------------------------------
-//
-EXPORT_C CPushInitiator& CPushInitiatorList::At( TInt aIndex ) const
-    {
-    return (CPushInitiator&)
-            (*CArrayPtrFlat<CPushInitiator>::At( aIndex ));
-    }
-
-// ---------------------------------------------------------
-// CPushInitiatorList::Delete
-// ---------------------------------------------------------
-//
-EXPORT_C void CPushInitiatorList::Delete( TInt aIndex )
-    {
-    delete &At( aIndex );
-    CArrayPtrFlat<CPushInitiator>::Delete( aIndex );
-    // Set indicator flag.
-    iPushInitiatorListChanged = ETrue;
-    }
-
-// ---------------------------------------------------------
-// CPushInitiatorList::Count
-// ---------------------------------------------------------
-//
-EXPORT_C TInt CPushInitiatorList::Count() const
-    {
-    return CArrayPtrFlat<CPushInitiator>::Count();
-    }
-
-// ---------------------------------------------------------
-// CPushInitiatorList::FreeId
-// ---------------------------------------------------------
-//
-TUint32 CPushInitiatorList::FreeId() const
-    {
-    TUint32 largestId( 0 );
-    // Find the largest ID:
-    const TInt count( Count() );
-    for ( TInt i = 0; i < count; ++i )
-        {
-        if ( largestId < At(i).EntryID() )
-            {
-            largestId = At(i).EntryID();
-            }
-        }
-    if ( largestId == KMaxTUint32 )
-        {
-        return 0;
-        }
-
-    return ( largestId + 1 );
-    }
-
-// ---------------------------------------------------------
-// CPushInitiatorList::Changed
-// ---------------------------------------------------------
-//
-TBool CPushInitiatorList::Changed() const
-    {
-    return iPushInitiatorListChanged;
-    }
-
-// ---------------------------------------------------------
-// CPushInitiatorList::ResetChanged
-// ---------------------------------------------------------
-//
-void CPushInitiatorList::ResetChanged()
-    {
-    iPushInitiatorListChanged = EFalse;
-    }
-
-// ---------------------------------------------------------
-// CPushInitiatorList::ResetAndDestroy
-// ---------------------------------------------------------
-//
-EXPORT_C void CPushInitiatorList::ResetAndDestroy()
-    {
-    CArrayPtrFlat<CPushInitiator>::ResetAndDestroy();
-    // Set indicator flag.
-    iPushInitiatorListChanged = ETrue;
-    }
-
-// ---------------------------------------------------------
-// CPushInitiatorList::Find
-// ---------------------------------------------------------
-//
-EXPORT_C TInt CPushInitiatorList::Find( const CPushInitiator& aPushInitiator, 
-                                        TInt& aIndex ) const
-    {
-    PUSHLOG_ENTERFN("CPushInitiatorList::Find")
-
-    TInt ret( KErrNotFound );
-
-    PUSHLOG_WRITE_FORMAT2(" Searching for: <%S>, <%d>",
-        &aPushInitiator.Addr(),aPushInitiator.Type())
-
-    const TInt count( Count() );
-    for ( TInt i = 0; i < count; ++i )
-        {
-        PUSHLOG_WRITE_FORMAT2(" Item: <%S>, <%d>",
-                              &At( i ).Addr(),At( i ).Type())
-
-        if ( At( i ) == aPushInitiator )
-            {
-            // We have found push initiator which is identical with the one 
-            // given in the parameter.
-            PUSHLOG_WRITE(" WL Found!")
-            aIndex = i;
-            ret = KErrNone;
-            break;
-            }
-        }
-
-    PUSHLOG_LEAVEFN("CPushInitiatorList::Find")
-    return ret;
-    }
-
-// ---------------------------------------------------------
-// CPushInitiatorList::operator==
-// ---------------------------------------------------------
-//
-EXPORT_C TBool CPushInitiatorList::operator==
-                                   ( const CPushInitiatorList& aList ) const
-    {
-    TBool equal( EFalse );
-    const TInt count = Count();
-
-    if ( count == aList.Count() )
-        {
-        TBool inequalFound( EFalse );
-        for ( TInt i = 0; i < count; ++i )
-            {
-            if ( At(i) != aList.At(i) )
-                {
-                inequalFound = ETrue;
-                break;
-                }
-            }
-        equal = !inequalFound;
-        }
-
-    return equal;
-    }
-
-// ---------------------------------------------------------
-// CPushInitiatorList::operator!=
-// ---------------------------------------------------------
-//
-EXPORT_C TBool CPushInitiatorList::operator!=
-                                   ( const CPushInitiatorList& aList ) const
-    {
-    return !( *this == aList );
-    }
-
-// ---------------------------------------------------------
-// CPushInitiatorList::ExternalizeL
-// ---------------------------------------------------------
-//
-void CPushInitiatorList::ExternalizeL( CRepository& aRepository ) const
-    {
-    PUSHLOG_ENTERFN("CPushInitiatorList::ExternalizeL");
-    
-    HBufC* wlBuf = ParseAndProcessList2BufL();
-    CleanupStack::PushL( wlBuf );
-    User::LeaveIfError( aRepository.Set( KPushMtmWhiteList, *wlBuf ) );
-    CleanupStack::PopAndDestroy( wlBuf ); // wlBuf
-    
-    PUSHLOG_LEAVEFN("CPushInitiatorList::ExternalizeL");
-    }
-
-// ---------------------------------------------------------
-// CPushInitiatorList::InternalizeL
-// ---------------------------------------------------------
-//
-void CPushInitiatorList::InternalizeL( CRepository& aRepository )
-    {
-    PUSHLOG_ENTERFN("CPushInitiatorList::InternalizeL");
-    
-    HBufC* wlBuf = HBufC::NewLC( NCentralRepositoryConstants::KMaxUnicodeStringLength );
-    TPtr nonConstWLBuf = wlBuf->Des();
-    User::LeaveIfError( aRepository.Get( KPushMtmWhiteList, nonConstWLBuf ) );
-    ParseAndProcessBuf2ListL( *wlBuf );
-    CleanupStack::PopAndDestroy( wlBuf ); // wlBuf
-    
-    PUSHLOG_LEAVEFN("CPushInitiatorList::InternalizeL");
-    }
-
-// ---------------------------------------------------------
-// CPushInitiatorList::CPushInitiatorList
-// ---------------------------------------------------------
-//
-CPushInitiatorList::CPushInitiatorList( const TInt aGranularity )
-:   CArrayPtrFlat<CPushInitiator>( aGranularity ), 
-    iPushInitiatorListChanged( EFalse )
-    {
-    }
-
-// ---------------------------------------------------------
-// CPushInitiatorList::ParseAndProcessBuf2ListL
-// ---------------------------------------------------------
-//
-void CPushInitiatorList::ParseAndProcessBuf2ListL
-                         ( const TDesC& aStreamedBuf )
-    {
-    PUSHLOG_ENTERFN("CPushInitiatorList::ParseAndProcessBuf2ListL");
-    PUSHLOG_WRITE_FORMAT(" param: <%S>",&aStreamedBuf)
-    
-    CWhiteListConverter* converter = CWhiteListConverter::NewL( *this );
-    CleanupStack::PushL( converter );
-
-    TRAPD( err, converter->Buffer2ListL( aStreamedBuf ) );
-    PUSHLOG_WRITE_FORMAT(" <%d>",err);
-    if ( err == KErrOverflow || err == KErrCorrupt )
-        {
-        // The input is corrupted. Leave the White List as is and 
-        // do not forward these LEAVE values, because it would 
-        // terminate the RFS of Push.
-        }
-    else
-        {
-        // Other error. Must be forwarded.
-        User::LeaveIfError( err );
-        }
-
-    CleanupStack::PopAndDestroy( converter ); // converter
-
-    PUSHLOG_LEAVEFN("CPushInitiatorList::ParseAndProcessBuf2ListL");
-    }
-
-// ---------------------------------------------------------
-// CPushInitiatorList::ParseAndProcessList2BufL
-// ---------------------------------------------------------
-//
-HBufC* CPushInitiatorList::ParseAndProcessList2BufL() const
-    {
-    PUSHLOG_ENTERFN("CPushInitiatorList::ParseAndProcessList2BufL");
-
-    CPushInitiatorList& nonConstPiList = (CPushInitiatorList&)*this;
-    CWhiteListConverter* converter = CWhiteListConverter::NewL( nonConstPiList );
-    CleanupStack::PushL( converter );
-
-    HBufC* retBuf(0);
-    TRAPD( err, retBuf = converter->List2BufferL() );
-    PUSHLOG_WRITE_FORMAT(" <%d>",err);
-    User::LeaveIfError( err );
-
-    CleanupStack::PopAndDestroy( converter ); // converter
-
-    PUSHLOG_WRITE_FORMAT(" ret: <%S>",retBuf)
-    PUSHLOG_LEAVEFN("CPushInitiatorList::ParseAndProcessList2BufL");
-    return retBuf;
-    }
-
-//  End of File.