diff -r 7333d7932ef7 -r 8b7f4e561641 iaupdate/IAD/ui/src/iaupdatetools.cpp --- a/iaupdate/IAD/ui/src/iaupdatetools.cpp Tue Aug 31 15:21:33 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,252 +0,0 @@ -/* -* Copyright (c) 2007-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: This module contains the implementation of IAUpdateTools functions -* -*/ - - - - - - -#include -#include - -#include "iaupdatetools.h" -#include "iaupdatedebug.h" - -// ----------------------------------------------------------------------------- -// IAUpdateTools::ExternalizeParametersL -// -// ----------------------------------------------------------------------------- -// -void IAUpdateTools::ExternalizeParametersL( HBufC8*& aTarget, - const CIAUpdateParameters& aSource ) - { - IAUPDATE_TRACE("[IAUPDATE] IAUpdateTools::ExternalizeParametersL begin"); - // Notice! - // If you make changes here. Also, remember to make corresponding - // changes to the InternalizeParametersL - - // The size of the buffer will contain: - // - 1 TInt for UIDs, - // - 1 TBool for ShowProgress boolean - // - 1 TUint for importance - // - 1 TUint for type - // - 1 TBool for Refresh boolean - - // - 3 TInt for descriptor lengths - // --> bytes for 5 + 3 = 8 TInt values are needed - // (sizeof( TInt ) * KNumberOfTInts) - // - 3 descriptor TDesC texts - const TInt KNumberOfTInts( 8 ); - - // Notice, that because descriptor texts that are included - // here are TDesC, their Size-information has to be used - // instead of Length. - HBufC8* tmp = - HBufC8::NewLC( sizeof( TInt ) * KNumberOfTInts - + aSource.SearchCriteria().Size() - + aSource.CommandLineExecutable().Size() - + aSource.CommandLineArguments().Size() ); - - // Create stream that uses the buffer created above. - // By using the stream, the values are easier to insert into the buffer. - TPtr8 ptr( tmp->Des() ); - RDesWriteStream stream( ptr ); - CleanupClosePushL( stream ); - - // These are integers for uids - IAUPDATE_TRACE_1("[IAUPDATE] uid: %x", aSource.Uid().iUid ); - stream.WriteInt32L( aSource.Uid().iUid ); - - // These are length and data pairs for descriptors - IAUPDATE_TRACE_1("[IAUPDATE] search criteria: %S", &aSource.SearchCriteria() ); - ExternalizeDesL( aSource.SearchCriteria(), stream ); - IAUPDATE_TRACE_1("[IAUPDATE] command line executable: %S", &aSource.CommandLineExecutable() ); - ExternalizeDesL( aSource.CommandLineExecutable(), stream ); -#ifdef _DEBUG - HBufC* temp = HBufC::NewL( aSource.CommandLineArguments().Length() ); - temp->Des().Copy( aSource.CommandLineArguments()) ; - IAUPDATE_TRACE_1("[IAUPDATE] command line arguments: %S", temp ); - delete temp; -#endif //_DEBUG - ExternalizeDes8L( aSource.CommandLineArguments(), stream ); - - // Boolean for ShowProgress - stream.WriteInt32L( aSource.ShowProgress() ); - - // TUint for importance - stream.WriteInt32L( aSource.Importance() ); - - // TUint for type - stream.WriteInt32L( aSource.Type() ); - - // Boolean for Refresh - stream.WriteInt32L( aSource.Refresh() ); - - // Stream is not needed anymore - CleanupStack::PopAndDestroy( &stream ); - - // Remove tmp from the stack but do not delete it because it will be - // assigned to the aTarget below. - CleanupStack::Pop( tmp ); - - // Replace aTarget with new value - delete aTarget; - aTarget = tmp; - IAUPDATE_TRACE("[IAUPDATE] IAUpdateTools::ExternalizeParametersL end"); - } - -// ----------------------------------------------------------------------------- -// IAUpdateTools::InternalizeParametersL -// -// ----------------------------------------------------------------------------- -// -void IAUpdateTools::InternalizeParametersL( CIAUpdateParameters& aTarget, - const TDesC8& aSource ) - { - IAUPDATE_TRACE("[IAUPDATE] IAUpdateTools::InternalizeParametersL begin"); - // Notice! - // If you make changes here. Also, remember to make corresponding - // changes to the ExternalizeParametersL - - // InternalizeDesL function will set values into this tmp descriptor. - HBufC* tmp( NULL ); - - // Create stream that uses the given buffer. - RDesReadStream stream( aSource ); - CleanupClosePushL( stream ); - - aTarget.SetUid( TUid::Uid( stream.ReadInt32L() ) ); - IAUPDATE_TRACE_1("[IAUPDATE] uid: %x", aTarget.Uid().iUid ); - - InternalizeDesL( tmp, stream ); - CleanupStack::PushL( tmp ); - aTarget.SetSearchCriteriaL( *tmp ); - IAUPDATE_TRACE_1("[IAUPDATE] search criteria: %S", tmp ); - CleanupStack::PopAndDestroy( tmp ); - tmp = NULL; - - InternalizeDesL( tmp, stream ); - CleanupStack::PushL( tmp ); - aTarget.SetCommandLineExecutableL( *tmp ); - IAUPDATE_TRACE_1("[IAUPDATE] command line executable: %S", tmp ); - CleanupStack::PopAndDestroy( tmp ); - tmp = NULL; - - HBufC8* tmp8( NULL ); - InternalizeDes8L( tmp8, stream ); - CleanupStack::PushL( tmp8 ); - aTarget.SetCommandLineArgumentsL( *tmp8 ); -#ifdef _DEBUG - tmp = HBufC::NewL( tmp8->Length() ); - tmp->Des().Copy( *tmp8 ) ; - IAUPDATE_TRACE_1("[IAUPDATE] command line arguments: %S", tmp ); - delete tmp; - tmp = NULL; -#endif //_DEBUG - CleanupStack::PopAndDestroy( tmp8 ); - tmp8 = NULL; - - aTarget.SetShowProgress( stream.ReadInt32L() ); - - // new parameters (in phase 2 IAD) do not always exist. Parameters may have written by old IAD in selfupdate case. - TRAPD( err, aTarget.SetImportance( stream.ReadInt32L() ) ); - if ( err != KErrEof ) - { - User::LeaveIfError( err ); - aTarget.SetType( stream.ReadInt32L() ); - aTarget.SetRefresh( stream.ReadInt32L() ); - } - - IAUPDATE_TRACE_1("[IAUPDATE] show progress: %d", aTarget.ShowProgress() ); - CleanupStack::PopAndDestroy( &stream ); - IAUPDATE_TRACE("[IAUPDATE] IAUpdateTools::InternalizeParametersL end"); - } - - -// ----------------------------------------------------------------------------- -// IAUpdateTools::ExternalizeDesL -// -// ----------------------------------------------------------------------------- -// -void IAUpdateTools::ExternalizeDesL( const TDesC& aDes, - RWriteStream& aStream ) - { - aStream.WriteInt32L( aDes.Length() ); - aStream.WriteL( aDes ); - } - -// ----------------------------------------------------------------------------- -// IAUpdateTools::InternalizeDesL -// -// ----------------------------------------------------------------------------- -// -TInt IAUpdateTools::InternalizeDesL( HBufC*& aDes, - RReadStream& aStream ) - { - TInt length = aStream.ReadInt32L(); - if ( length > 0 ) - { - HBufC* target = HBufC::NewLC( length ); - TPtr ptr( target->Des() ); - aStream.ReadL( ptr, length ); - delete aDes; - aDes = target; - CleanupStack::Pop( target ); - } - else - { - delete aDes; - aDes = KNullDesC().AllocL(); - } - return length; - } - -// ----------------------------------------------------------------------------- -// IAUpdateTools::ExternalizeDes8L -// -// ----------------------------------------------------------------------------- -// -void IAUpdateTools::ExternalizeDes8L( const TDesC8& aDes, RWriteStream& aStream ) - { - aStream.WriteInt32L( aDes.Length() ); - aStream.WriteL( aDes ); - } - -// ----------------------------------------------------------------------------- -// IAUpdateTools::InternalizeDes8L -// -// ----------------------------------------------------------------------------- -// -TInt IAUpdateTools::InternalizeDes8L( HBufC8*& aDes, RReadStream& aStream ) - { - TInt length = aStream.ReadInt32L(); - if ( length > 0 ) - { - HBufC8* target = HBufC8::NewLC( length ); - TPtr8 ptr( target->Des() ); - aStream.ReadL( ptr, length ); - delete aDes; - aDes = target; - CleanupStack::Pop( target ); - } - else - { - delete aDes; - aDes = KNullDesC8().AllocL(); - } - return length; - }