--- 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.