diff -r 8e7494275d3a -r 4f0867e42d62 omads/omadsextensions/adapters/contactsgroup/src/snapshotitem.cpp --- a/omads/omadsextensions/adapters/contactsgroup/src/snapshotitem.cpp Tue Aug 31 15:05:37 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,127 +0,0 @@ -/* -* Copyright (c) 2010 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: Part of SyncML Data Synchronization Plug In Adapter -* -*/ - -#include -#include -#include - -#include "snapshotitem.h" -#include "logger.h" - - -// ----------------------------------------------------------------------------- -// TSnapshotItem::TSnapshotItem -// C++ default constructor can NOT contain any code, that might leave -// ----------------------------------------------------------------------------- -TSnapshotItem::TSnapshotItem() : TNSmlSnapshotItem() - { - } - -// ----------------------------------------------------------------------------- -// TSnapshotItem::TSnapshotItem -// Constructor, takes item id as a parameter -// ----------------------------------------------------------------------------- -TSnapshotItem::TSnapshotItem( const TSmlDbItemUid& aItemId, - const TSmlDbItemUid& aParent ) -: TNSmlSnapshotItem( aItemId ) - { - SetParentId( aParent ); - } - -// ----------------------------------------------------------------------------- -// TSnapshotItem::ExternalizeL -// Writes the contents of this class and it's base to stream -// ----------------------------------------------------------------------------- -void TSnapshotItem::ExternalizeL( RWriteStream& aStream ) const - { - TNSmlSnapshotItem::ExternalizeL( aStream ); - TPckgBuf nameBuf(iHash); - aStream << nameBuf; - } - -// ----------------------------------------------------------------------------- -// TSnapshotItem::InternalizeL -// Reads the contents of this class and it's base from stream -// ----------------------------------------------------------------------------- -void TSnapshotItem::InternalizeL( RReadStream& aStream ) - { - TNSmlSnapshotItem::InternalizeL( aStream ); - TPckgBuf nameBuf; - aStream >> nameBuf; - iHash = nameBuf(); - } - -// ----------------------------------------------------------------------------- -// TSnapshotItem::CreateHashL -// Create hash value from group content -// ----------------------------------------------------------------------------- -void TSnapshotItem::CreateHashL( CContactGroup& aGroup ) - { - CMessageDigest* hash = CMessageDigestFactory::NewDigestLC( CMessageDigest::EMD5 ); - - if ( aGroup.HasItemLabelField() ) - { - TPtrC label = aGroup.GetGroupLabelL(); - HBufC8* tempBuf = CnvUtfConverter::ConvertFromUnicodeToUtf8L( label ); - CleanupStack::PushL( tempBuf ); - hash->Update( tempBuf->Des() ); - CleanupStack::PopAndDestroy( tempBuf ); - } - - // Create text field from items on group - CContactIdArray* contactsIdArray = aGroup.ItemsContainedLC(); - const TInt idBufferMaxSize( 400 ); - HBufC8* tempIdBuf = HBufC8::NewLC( idBufferMaxSize ); - TPtr8 tempId = tempIdBuf->Des(); - const TInt KMaxNumLength(5); - if ( contactsIdArray ) // this is NULL if there are no objects - { - tempId.AppendNum( contactsIdArray->Count(), EHex ); - for (TInt i=0; i< contactsIdArray->Count(); i++ ) - { - if ( tempId.Length()+KMaxNumLength > tempId.MaxLength() ) - { - // buffer is almost full, don't add any new items - LOGGER_WRITE("buffer full"); - break; - } - // add item id - tempId.AppendNum( (*contactsIdArray)[i] , EHex ); - } - } - else - { - tempId.AppendNum( 0 ); - } - // update hash - hash->Update( tempId ); - - iHash.Copy( hash->Final() ); - - CleanupStack::PopAndDestroy( tempIdBuf ); - CleanupStack::PopAndDestroy( contactsIdArray ); - CleanupStack::PopAndDestroy( hash ); - } - -// ----------------------------------------------------------------------------- -// TSnapshotItem::Hash -// Gets Hash -// ----------------------------------------------------------------------------- -const TDesC8& TSnapshotItem::Hash() const - { - return iHash; - }