diff -r 5e5d6b214f4f -r 81eeb8c83ce5 uiservicetab/vimpststorage/src/vimpststorageutils.cpp --- a/uiservicetab/vimpststorage/src/vimpststorageutils.cpp Tue Feb 02 10:12:18 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,144 +0,0 @@ -/* -* Copyright (c) 2008 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: Utils for storage modules. -* -*/ - - -#include "vimpststorageutils.h" -#include "cvimpststoragemanagerfactory.h" -#include "mvimpststorageserviceview.h" - -#include "vimpstdebugtrace.h" -#include "vimpstbuilddefinitions.h" - -#include -#include - -// needed to skip prefixes in domain-neutral comparison (TUint version) -const TUint KColonUInt( ':' ); - -// needed to skip domains in domain-neutral comparison (TUint version) -const TUint KAtUInt( '@' ); - -// "test character identity and accents, ignore case" -const TInt KCollationLevel = 1; - - - -// defines how far we are going to search for the protocol part in user id -const TInt KMaxLengthSearchProtPart = 4; - -// ----------------------------------------------------------------------------- -// VIMPSTStorageUtils::NeutralCompare -// ----------------------------------------------------------------------------- -// -TInt VIMPSTStorageUtils::NeutralCompare( const TDesC& aId1, - const TDesC& aId2, TBool aDomainNeutral ) - { - // points to user part of id - TPtrC ptrId1( aId1 ); - TPtrC ptrId2( aId2 ); - - // Reduce looking for protocol part only to beginning of the WVID and - // skip protocol part ("anything:") in the beginning of the WVID - TInt colonPos1 = aId1.Left( KMaxLengthSearchProtPart ).Locate( KColonUInt ); - - // first id - if ( ( KErrNotFound != colonPos1 ) && ( aId1.Length() -1 != colonPos1 ) ) - { - // contains ":", and it is not the last char - ptrId1.Set( aId1.Mid( colonPos1 + 1 ) ); - } - - TInt colonPos2 = aId2.Left( KMaxLengthSearchProtPart ).Locate( KColonUInt ); - - // second id - if ( ( KErrNotFound != colonPos2 ) && ( aId2.Length() -1 != colonPos2 ) ) - { - // contains ":", and it is not the last char - ptrId2.Set( aId2.Mid( colonPos2 + 1 ) ); - } - - // find out if we have domains in the ids - TInt domainPos1( ptrId1.Locate( KAtUInt ) ); - TInt domainPos2( ptrId2.Locate( KAtUInt ) ); - - TBool domainIn1( KErrNotFound != domainPos1 ); - TBool domainIn2( KErrNotFound != domainPos2 ); - - // points to domains in the neutral id - TPtrC ptrDom1( KNullDesC ); - TPtrC ptrDom2( KNullDesC ); - - // points to user parts in the neutral id - TPtrC ptrUid1( ptrId1 ); - TPtrC ptrUid2( ptrId2 ); - - // separate user id parts and domain parts - if ( domainIn1 ) - { - ptrDom1.Set( ptrId1.Mid( domainPos1 + 1) ); - ptrUid1.Set( ptrId1.Mid( 0, domainPos1 ) ); - } - - if ( domainIn2 ) - { - ptrDom2.Set( ptrId2.Mid( domainPos2 + 1) ); - ptrUid2.Set( ptrId2.Mid( 0, domainPos2 ) ); - } - - // Create custom collation method to ignore punctuations - // index 0 gets the default method - TCollationMethod collation = - *Mem::CollationMethodByIndex( 0 ); - collation.iFlags |= TCollationMethod::EIgnoreNone; - - // domains are compared only when it is really needed - // check if userid part is the same in both ids - - TInt idResult = ptrUid1.Compare( ptrUid2); - - if( idResult != 0 ) - { - return idResult; - } - - // id part is same, we have to compare domain - - // If domain comparison is neutral and one id is without domain - // -> Domains are same. Other situation domainResult stays valid. - if( aDomainNeutral && ( domainIn1 ^ domainIn2 ) ) - { - return 0; - } - else - { - return ptrDom1.CompareC( ptrDom2, KCollationLevel, &collation ); - } - } - -// ----------------------------------------------------------------------------- -// VIMPSTStorageUtils::DisplayId -// ----------------------------------------------------------------------------- -// -TPtrC VIMPSTStorageUtils::DisplayId( const TDesC& aId, TBool /*aListHiding*/ ) - { - TPtrC ret( aId ); - - return ret; - } - - -// End of file