diff -r 75a71fdb4c92 -r 7d11f9a6646f omadm/omadmextensions/adapters/syncmldm/tsrc/src/dmatest.cpp --- a/omadm/omadmextensions/adapters/syncmldm/tsrc/src/dmatest.cpp Tue Feb 02 00:03:17 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,954 +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: Implementation of DM adapter test component -* This is part of omadmextensions/adapter test application. -* -*/ - - - - - - -// INCLUDE FILES -#include "dmatest.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "TestDmDDFObject.h" - -_LIT8( KEmptyType, "" ); -_LIT8( KDefaultType, "text/plain" ); -_LIT( KMappingTableFile, "\\dmtestmappings.txt" ); -//_LIT8( KNSmlDMSeparator8, "/" ); -//const TUint8 KNSmlDMUriSeparator = 0x2f; //forward slash - -#define LEAVE_IF_ERROR(x,msg) \ - { TInt __xres = (x); if ( __xres < 0 ) { if ( iLog ) iLog->Log( (msg), __xres ); User::Leave( __xres ); } } - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// Cdmatest::Cdmatest -// C++ default constructor can NOT contain any code, that -// leave. -// ----------------------------------------------------------------------------- -// -Cdmatest::Cdmatest(CTestModuleIf& aTestModuleIf, TUid aUid ): - CScriptBase( aTestModuleIf ), iMappingTable(2), iUid( aUid ) - { - - } - -// ----------------------------------------------------------------------------- -// Cdmatest::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void Cdmatest::ConstructL() - { - Adapter(); - iEmptyMappingInfoArray = new ( ELeave ) CArrayFixFlat(1); - - TRAPD( err, LoadMappingsL() ); - if (err != KErrEof && err != KErrNone && err != KErrNotFound) - { - User::Leave( err ); - } - } - -CNSmlDMSettingsAdapter *Cdmatest::Adapter() - { - if ( iAdapter == NULL ) - { - if ( iLog ) - { - iLog->Log( _L( "Loading Adapter" ) ); - } - - TRAPD( err, iAdapter = (CNSmlDMSettingsAdapter*) CSmlDmAdapter::NewL( iUid,*this ) ); - if ( err == KErrNone ) - { - if (iLog ) - { - iLog->Log( _L( "Loaded" ) ); - } - } - else - { - if (iLog) - { - iLog->Log( _L( "Failed to load adapter: %d" ), err ); - } - } - } - return iAdapter; - } - - -void Cdmatest::LoadMappingsL() - { - TDataType type; - HBufC8 *data = LoadFileLC( KMappingTableFile, type ); - RDesReadStream buf( *data ); - CleanupClosePushL( buf ); - - TInt len( data->Length() ); - while (buf.Source()->TellL( MStreamBuf::ERead ).Offset() < len) - { - TUint32 val = buf.ReadUint32L(); - TBuf8<256> uri; - TBuf8<64> luid; - buf.ReadL(uri, val); - val = buf.ReadUint32L(); - buf.ReadL(luid, val); - TMapping m( uri, luid ) ; - TInt err( iMappingTable.Append( m ) ); - if ( err == KErrNone ) - { - iLog->Log( _L8( "Loaded mapping: '%S' : '%S'"), &m.iURI, &m.iLuid ); - } - else - { - iLog->Log( _L8( "FAILED TO Load mapping: '%d' "), err ); - } - } - CleanupStack::PopAndDestroy( &buf); // buf - CleanupStack::PopAndDestroy( data ); // data - } - - - -void Cdmatest::SaveMappingsL() - { - TInt c( iMappingTable.Count() ); - if ( c > 0 ) - { - RFs fs; - User::LeaveIfError( fs.Connect() ); - CleanupClosePushL( fs ); - RFileWriteStream buf; - User::LeaveIfError( buf.Replace( fs, KMappingTableFile, EFileWrite ) ); - CleanupClosePushL( buf ); - - TInt i( 0 ) ; - do - { - buf.WriteUint32L( iMappingTable[i].iURI.Length() ); - buf.WriteL( iMappingTable[i].iURI ); - buf.WriteUint32L( iMappingTable[i].iLuid.Length() ); - buf.WriteL( iMappingTable[i].iLuid ); - } - while ( ++i < c ) ; - buf.CommitL(); - buf.Close(); - - CleanupStack::PopAndDestroy(); // buf - CleanupStack::PopAndDestroy(); // fs - } - } - - -// Destructor -Cdmatest::~Cdmatest() - { - // Delete resources allocated from test methods - TRAPD(err, SaveMappingsL() ); - if ( err != KErrNone ) - { - if(iLog) - iLog->Log( _L8( "Failed to save mappings!: %d"), err ); - } - Delete(); - - // Delete logger - delete iLog; - delete iEmptyMappingInfoArray; - delete iAdapter; - delete iURI; - iMappingTable.Reset(); - REComSession::FinalClose(); - } - - -// ----------------------------------------------------------------------------- -// Camatest::Delete -// Delete here all resources allocated and opened from test methods. -// Called from destructor. -// ----------------------------------------------------------------------------- -// -void Cdmatest::Delete() - { - - } - -// ----------------------------------------------------------------------------- -// Cdmatest::?member_function -// ?implementation_description -// (other items were commented in a header). -// ----------------------------------------------------------------------------- - - - -HBufC8 *Cdmatest::GetNextStringLC ( CStifItemParser& aItem, const TDesC &aName ) - { - TPtrC nodename( KNullDesC ); - - TInt i( aItem.GetNextString ( nodename ) ); - if ( i != KErrNone ) - { - iLog->Log( _L( "ERROR Reading '%S' argument: 0x%X" ), &aName, i ); - } - else - { - iLog->Log( _L("%S: %S"), &aName, &nodename); - } - - HBufC8 *buf = HBufC8::NewLC( nodename.Length() ) ; - buf->Des().Copy( nodename ); - return buf; - } - -TInt Cdmatest::FetchNodeL( CStifItemParser& aItem ) - { - - TInt ret( KErrNone ); - // Print to UI - TestModuleIf().Printf( 0, _L("Cdmatest"), _L("FetchNodeL") ); - - iResultsFunction = FetchNodeResultsL; - - TPtrC8 nodename( GetNextStringLC( aItem, _L(" nodename" ) )->Des() ) ; - - SetURIL(nodename) ;// - HBufC8 *luid = GetLuidAllocLC( *iURI ); - - Adapter()->ChildURIListL( *iURI, *luid, *iEmptyMappingInfoArray, 4, 5) ; - - if ( iStatus == MSmlDmAdapter::EOk ) - { - } - else - { - iLog->Log( _L("FetchNodeL: ChildUriList Error ! %d" ), iStatus ); - ret = KErrGeneral ; - } - CleanupStack::PopAndDestroy( luid ) ; - CleanupStack::PopAndDestroy() ; // nodename - iLog->Log( _L("FetchNodeL: Test Complete with status %d" ), ret ); - - return ret; - } - -TInt Cdmatest::StartAtomicL( CStifItemParser& /*aItem*/ ) - { - TRAPD( err, Adapter()->StartAtomicL() ) ; - iLog->Log( _L("StartAtomicL: Atomic started resulting error %d" ), err ); - return err; - } - -TInt Cdmatest::RollbackAtomicL( CStifItemParser& /*aItem*/ ) - { - TRAPD( err, Adapter()->RollbackAtomicL() ) ; - iLog->Log( _L("RollbackAtomicL: Atomic rolled back resulting error %d" ), err ); - return err; - } - -TInt Cdmatest::CommitAtomicL( CStifItemParser& /*aItem*/ ) - { - TRAPD( err, Adapter()->CommitAtomicL() ) ; - iLog->Log( _L("RollbackAtomicL: Atomic commited resulting error %d" ), err ); - return err; - } - - -TInt Cdmatest::DDFStructureL( CStifItemParser& /*aItem*/ ) - { - CTestDmDDFObject* ddfRoot = CTestDmDDFObject::NewLC( iLog ); //, aNodeName ); - - TRAPD( err, iAdapter->DDFStructureL( *ddfRoot ) ) ; - CleanupStack::PopAndDestroy( ddfRoot ); - iLog->Log( _L("DDFStructureL: method called resulting error %d" ), err ); - return err; - } - - -TInt Cdmatest::AddNodeL( CStifItemParser& aItem ) - { - - TInt ret( KErrNone ); - // Print to UI - TestModuleIf().Printf( 0, _L("Cdmatest"), _L("AddNodeL") ); - - - TPtrC8 nodename( GetNextStringLC ( aItem, _L("nodename" ) )->Des() ) ; - SetURIL( nodename ); - - Adapter()->AddNodeObjectL( *iURI, KEmptyType, 8 ) ; - - if ( iStatus == MSmlDmAdapter::EOk ) - { - iLog->Log( _L("AddNodeL: AddNodeObjectL Successful! %d" ), iStatus ); - } - else - { - iLog->Log( _L("AddNodeL: AddNodeObjectL Error ! %d" ), iStatus ); - ret = KErrGeneral ; - } - - CleanupStack::PopAndDestroy() ; // nodename - iLog->Log( _L("AddNodeL Test Complete with status %d" ), ret ); - - return ret; - } - -TInt Cdmatest::UpdateLeafL( CStifItemParser& aItem ) - { - - TInt ret( KErrNone ); - // Print to UI - TestModuleIf().Printf( 0, _L("Cdmatest"), _L("UpdateLeafL") ); - - TPtrC8 nodename( GetNextStringLC ( aItem, _L("Node name") )->Des() ) ; - TPtrC8 data (GetNextStringLC( aItem, _L("datafile"))->Des() ); - - HBufC8 *mime = GetNextStringLC( aItem, _L("mime") ) ; - SetURIL( nodename ); - - TPtrC8 parentURI(RemoveLastSeg(nodename)); - HBufC8 *luid = GetLuidAllocLC( parentURI ); - - TDataType type; - - TPtrC8 mimePtr( *mime == KNullDesC8 ? type.Des8() : mime->Des() ); - - /** - virtual void UpdateLeafObjectL( const TDesC8& aURI, const TDesC8& aLUID, - const TDesC8& aObject, const TDesC8& aType, - TInt aStatusRef ) = 0; - */ - - Adapter()->UpdateLeafObjectL( *iURI , *luid, data, mimePtr, 3); - - if ( iStatus == MSmlDmAdapter::EOk ) - { - iLog->Log( _L("UpdateLeafL: UpdateLeafObjectL Successful! %d" ), iStatus ); - } - else - { - iLog->Log( _L("UpdateLeafL UpdateLeafObjectL Error ! %d" ), iStatus ); - ret = KErrGeneral ; - } - - CleanupStack::PopAndDestroy(); // loadfile - CleanupStack::PopAndDestroy(); // luid - CleanupStack::PopAndDestroy(); // mime - CleanupStack::PopAndDestroy(); // nodename - - iLog->Log( _L("UpdateLeafL Test Complete with status %d" ), ret ); - - return ret; - } - - -TInt Cdmatest::UpdateLeafDataURLL( CStifItemParser& aItem ) - { - - TInt ret( KErrNone ); - // Print to UI - TestModuleIf().Printf( 0, _L("Cdmatest"), _L("UpdateLeafDataL") ); - - TPtrC8 nodename( GetNextStringLC ( aItem, _L("Node name") )->Des() ) ; - TPtrC8 http (GetNextStringLC( aItem, _L("http"))->Des() ); - TPtrC8 url (GetNextStringLC( aItem, _L("rest of url"))->Des() ); - HBufC8 *mime = GetNextStringLC( aItem, _L("mime") ) ; - SetURIL( nodename ); - - _LIT8( KTag, "://" ); - - HBufC8 *fullurl = HBufC8::NewLC( http.Length() + KTag().Length() + url.Length() ); - TPtr8 pfullurl( fullurl->Des() ); - pfullurl.Copy( http ) ; - pfullurl.Append( KTag ); - pfullurl.Append( url ); - TPtrC8 mimePtr( *mime == KNullDesC8 ? KDefaultType() : mime->Des() ); - - HBufC8 *luid = GetLuidAllocLC( *iURI ); - /** - virtual void UpdateLeafObjectL( const TDesC8& aURI, const TDesC8& aLUID, - const TDesC8& aObject, const TDesC8& aType, - TInt aStatusRef ) = 0; - */ - Adapter()->UpdateLeafObjectL( *iURI , *luid, pfullurl, mimePtr, 3); - if ( iStatus == MSmlDmAdapter::EOk ) - { - iLog->Log( _L("UpdateLeafDataL: UpdateLeafObjectL Successful! %d" ), iStatus ); - } - else - { - iLog->Log( _L("UpdateLeafDataL UpdateLeafObjectL Error ! %d" ), iStatus ); - ret = KErrGeneral ; - } - CleanupStack::PopAndDestroy( luid ); // - CleanupStack::PopAndDestroy( mime ); // mime - CleanupStack::PopAndDestroy(); // url - CleanupStack::PopAndDestroy(); // http - CleanupStack::PopAndDestroy(); // nodename - iLog->Log( _L("UpdateLeafDataL Test Complete with status %d" ), ret ); - - return ret; - } - -TInt Cdmatest::UpdateLeafDataL( CStifItemParser& aItem ) - { - - TInt ret( KErrNone ); - // Print to UI - TestModuleIf().Printf( 0, _L("Camtest"), _L("UpdateLeafDataL") ); - - TPtrC8 nodename( GetNextStringLC ( aItem, _L("Node name") )->Des() ) ; - TPtrC8 data (GetNextStringLC( aItem, _L("data"))->Des() ); - HBufC8 *mime = GetNextStringLC( aItem, _L("mime") ) ; - - SetURIL( nodename ); - - - TPtrC8 mimePtr( *mime == KNullDesC8 ? KDefaultType() : mime->Des() ); - - TPtrC8 parentURI(RemoveLastSeg(nodename)); - HBufC8 *luid = GetLuidAllocLC( parentURI ); - -// -// virtual void UpdateLeafObjectL( const TDesC8& aURI, const TDesC8& aLUID, -// const TDesC8& aObject, const TDesC8& aType, -// TInt aStatusRef ) = 0; -// - Adapter()->UpdateLeafObjectL( *iURI , *luid, data, mimePtr, 3); - if ( iStatus == MSmlDmAdapter::EOk ) - { - iLog->Log( _L("UpdateLeafDataL: UpdateLeafObjectL Successful! %d" ), iStatus ); - } - else - { - iLog->Log( _L("UpdateLeafDataL UpdateLeafObjectL Error ! %d" ), iStatus ); - ret = KErrGeneral ; - } - - CleanupStack::PopAndDestroy(); // mime - CleanupStack::PopAndDestroy(); // luid - CleanupStack::PopAndDestroy(); // data - CleanupStack::PopAndDestroy(); // nodename - iLog->Log( _L("UpdateLeafDataL Test Complete with status %d" ), ret ); - - return ret; - } - -TInt Cdmatest::FetchLeafL( CStifItemParser& aItem ) - { - - TInt ret( KErrNone ); - // Print to UI - TestModuleIf().Printf( 0, _L("Camtest"), _L("FetchLeafL") ); - - iResultsFunction = NULL; - - TInt i( 0 ); - TPtrC8 nodename ( GetNextStringLC( aItem, _L( "nodename" ) )->Des() ) ; - - //TPtrC datafile; - TPtrC datafile( KNullDesC ); - i = aItem.GetNextString ( datafile ) ; - if ( i != KErrNone ) - { - iLog->Log(_L("FetchLeafL: ERROR Reading outfile argument: 0x%X"), i ); - //return i; - } - else - { - iSaveFileName = datafile; - iLog->Log( _L( " Save file nameis '%S'" ), &iSaveFileName ); - iResultsFunction = SaveDataL; - } - - SetURIL(nodename) ; - - /* - void FetchLeafObjectL( const TDesC8& aURI, const TDesC8& aLUID, - const TDesC8& aType, TInt aResultsRef, - TInt aStatusRef ); - */ - TPtrC8 parentURI(RemoveLastSeg(nodename)); - HBufC8 *luid = GetLuidAllocLC( parentURI ); - - Adapter()->FetchLeafObjectL( *iURI, *luid, KEmptyType, 7, 8 ) ; - if ( iStatus == MSmlDmAdapter::EOk ) - { - iLog->Log( _L("FetchLeafL: FetchLeafObjectL Successful! %d" ), iStatus ); - } - else - { - iLog->Log( _L("FetchLeafL: FetchLeafObjectL Error ! %d" ), iStatus ); - ret = KErrGeneral ; - } - CleanupStack::PopAndDestroy( luid ); - CleanupStack::PopAndDestroy( ); // nodename - iLog->Log( _L("FetchLeafL Test Complete with status %d" ), ret ); - return ret; - } - - -TInt Cdmatest::ExecuteLeafL( CStifItemParser& aItem ) - { - TInt ret( KErrNone ); - // Print to UI - TestModuleIf().Printf( 0, _L("Camtest"), _L("ExecuteLeafL") ); - - iResultsFunction = NULL; - - TPtrC8 nodename( GetNextStringLC ( aItem, _L("Nodename") )->Des() ) ; - TPtrC8 data( GetNextStringLC ( aItem, _L("Input file") )->Des() ) ; - - SetURIL(nodename) ; - - /* - virtual void ExecuteCommandL( const TDesC8& aURI, const TDesC8& aLUID, - const TDesC8& aArgument, const TDesC8& aType, - TInt aStatusRef ) = 0; - */ - TDataType type; - - TPtrC8 parentURI(RemoveLastSeg(nodename)); - HBufC8 *luid = GetLuidAllocLC( parentURI ); - - Adapter()->ExecuteCommandL( *iURI, *luid, data, KEmptyType, 11 ) ; - if ( iStatus == MSmlDmAdapter::EOk ) - { - iLog->Log( _L("ExecuteLeafL: ExecuteCommandL Successful! %d" ), iStatus ); - } - else - { - iLog->Log( _L("ExecuteLeafL: ExecuteCommandL FetchLeafObjectL Error ! %d" ), iStatus ); - ret = KErrGeneral ; - } - CleanupStack::PopAndDestroy( luid ); // luid - CleanupStack::PopAndDestroy(); // data - CleanupStack::PopAndDestroy(); // nodename - - iLog->Log( _L("ExecuteLeafL: Test Complete with status %d" ), ret ); - - return ret; - } - -TInt Cdmatest::CompleteCommandsL( CStifItemParser& /*aItem*/ ) - { - TRAPD( err, Adapter()->CompleteOutstandingCmdsL() ); - delete iAdapter; - iAdapter = NULL; - return err; - } -TInt Cdmatest::DeleteObjectL( CStifItemParser& aItem ) -{ - TInt ret( KErrNone ); - // Print to UI - TestModuleIf().Printf( 0, _L("Camtest"), _L("DeleteObjectL") ); - - TPtrC8 nodename( GetNextStringLC ( aItem, _L("Nodename") )->Des() ) ; - - SetURIL(nodename) ; - - HBufC8 *luid = GetLuidAllocLC( *iURI ); - Adapter()->DeleteObjectL( *iURI, *luid, 11 ) ; - if ( iStatus == MSmlDmAdapter::EOk ) - { - iLog->Log( _L("DeleteNode: DeleteObjectL Successful! %d" ), iStatus ); - } - else - { - iLog->Log( _L("DeleteNode: DeleteObjectL FetchLeafObjectL Error ! %d" ), iStatus ); - ret = KErrGeneral ; - } - CleanupStack::PopAndDestroy( luid ); // luid - CleanupStack::PopAndDestroy(); // nodename - iLog->Log( _L("ExecuteLeafDataL Test Complete with status %d" ), ret ); - - return ret; -} - -TInt Cdmatest::ExecuteLeafDataL( CStifItemParser& aItem ) - { - TInt ret( KErrNone ); - - // Print to UI - TestModuleIf().Printf( 0, _L("Camtest"), _L("ExecuteLeafL") ); - - iResultsFunction = NULL; - - TPtrC8 nodename( GetNextStringLC ( aItem, _L("Nodename") )->Des() ) ; - TPtrC8 data( GetNextStringLC ( aItem, _L("Input data") )->Des() ) ; - - SetURIL(nodename) ; - - /* - virtual void ExecuteCommandL( const TDesC8& aURI, const TDesC8& aLUID, - const TDesC8& aArgument, const TDesC8& aType, - TInt aStatusRef ) = 0; - */ - HBufC8 *luid = GetLuidAllocLC( *iURI ); - Adapter()->ExecuteCommandL( *iURI, *luid, data, KEmptyType, 11 ) ; - if ( iStatus == MSmlDmAdapter::EOk ) - { - iLog->Log( _L("ExecuteLeafDataL: ExecuteCommandL Successful! %d" ), iStatus ); - } - else - { - iLog->Log( _L("ExecuteLeafDataL: ExecuteCommandL FetchLeafObjectL Error ! %d" ), iStatus ); - ret = KErrGeneral ; - } - CleanupStack::PopAndDestroy(); // luid - CleanupStack::PopAndDestroy(); // data - CleanupStack::PopAndDestroy(); // nodename - iLog->Log( _L("ExecuteLeafDataL Test Complete with status %d" ), ret ); - - return ret; - } - - -HBufC8 *Cdmatest::LoadFileLC( const TDesC &aFileName, TDataType &aType ) - { - RFs fs ; - LEAVE_IF_ERROR( fs.Connect(), _L( "Could not connect fileserver: %d" ) ); - - CleanupClosePushL( fs ); - RFile file ; - LEAVE_IF_ERROR( file.Open(fs,aFileName,EFileRead), _L( "Could not open file: %d" ) ); - - - - CleanupClosePushL( file ); - TInt dataSize ; - LEAVE_IF_ERROR( file.Size( dataSize ), _L( "Could not get file size: %d" ) ); - HBufC8 *nodedata = HBufC8::NewL ( dataSize ); - CleanupStack::PushL( nodedata ); - TPtr8 nodedataptr( nodedata->Des() ); - LEAVE_IF_ERROR( file.Read( nodedataptr ), _L( "Could not read file: %d" ) ); - TDataRecognitionResult aDataType; - RApaLsSession ls ; - TInt err( ls.Connect() ); - if ( err == KErrNone ) - { - CleanupClosePushL( ls ); - err = ls.RecognizeData(aFileName, nodedataptr, aDataType) ; - if ( err == KErrNone ) - { - aType = aDataType.iDataType; - } - else - { - iLog->Log( _L("LoadFileLC: WARNING Failed to get type: %d" ), err ); - aType = TDataType( KDefaultType ); - } - CleanupStack::PopAndDestroy( &ls ); - } - else - { - iLog->Log( _L("LoadFileLC: WARNING Failed to connect rapalssession: %d" ), err ); - } - CleanupStack::Pop( nodedata ); - CleanupStack::PopAndDestroy( &file ); - CleanupStack::PopAndDestroy( &fs ); - CleanupStack::PushL( nodedata ); - return nodedata ; - } - -HBufC8 *Cdmatest::LoadFileLC( const TDesC8 &aFileName, TDataType &aType ) - { - TFileName fn ; - fn.Copy( aFileName ); - return LoadFileLC( fn, aType ); - } - - -void Cdmatest::SaveDataL( TInt /*aResultsRef*/, CBufBase& aObject, - const TDesC8& aType ) - { - iLog->Log( _L8( "Saving data of type: '%S'" ), &aType ); - RFs fs; - User::LeaveIfError( fs.Connect() ); - CleanupClosePushL( fs ); - RFile file; - User::LeaveIfError( file.Replace ( fs, iSaveFileName, EFileWrite ) ); - CleanupClosePushL( file ); - TPtrC8 p( aObject.Ptr( 0 ) ); - User::LeaveIfError( file.Write( p ) ); - CleanupStack::PopAndDestroy( 2 ); // file, fs - } - - - -void Cdmatest::FetchNodeResultsL( TInt /*aResultsRef*/, CBufBase& aObject, - const TDesC8& /*aType*/ ) - { - TPtrC8 ptr( aObject.Ptr( 0 ) ); - iLog->Log( _L8("FetchNodeResultsL for '%S': '%S'" ), iURI, &ptr ); - - if ( ptr.Length() > 0 ) - { - TPtrC8 last( LastURISeg( ptr ) ); - HBufC8 *oldUri = HBufC8::NewL( iURI->Length() ); - (*oldUri) = *iURI; - do - { - iLog->Log ( _L8( " Node: '%S' "), &last ); - HBufC8 *nUri = HBufC8::NewLC( oldUri->Length() + 1 + last.Length() ); - nUri->Des().Copy( *oldUri ) ; - nUri->Des().Append( '/' ); - nUri->Des().Append( last ); - - SetURIL( nUri ); - //iResultsFunction = FetchNodeResultsL; - - //TPtrC8 parentURI(RemoveLastSeg(*nUri)); - //HBufC8 *luid = GetLuidAllocLC( parentURI ); - CleanupStack::Pop( nUri ); - - HBufC8 *luid = GetLuidAllocLC( *iURI ); - - Adapter()->ChildURIListL( *nUri, KNullDesC8, *iEmptyMappingInfoArray, 4, 5 );//Dipak - - CleanupStack::PopAndDestroy( luid ); - - ptr.Set( RemoveLastURISeg( ptr ) ); - last.Set( LastURISeg( ptr ) ); - - } - while (last != KNullDesC8); - } - - } - - - -TPtrC8 Cdmatest::LastURISeg( const TDesC8& aURI ) - { - TInt i; - for( i = aURI.Length() - 1; i >= 0; i-- ) - { - if( aURI[i] == '/' ) - { - break; - } - } - - if( i == 0 ) - { - return aURI; - } - else - { - return aURI.Mid( i+1 ); - } - } -TPtrC8 Cdmatest::RemoveLastSeg(const TDesC8& aURI) - { - TInt i; - for(i=aURI.Length()-1;i>=0;i--) - { - if(aURI[i]==KNSmlDMUriSeparator) - { - break; - } - } - - if(i>0) - { - return aURI.Left(i); - } - else - { - return KNullDesC8(); - } - } - -// ------------------------------------------------------------------------------------------------ -// TPtrC8 Cdmatest::RemoveLastURISeg(const TDesC8& aURI) -// returns parent uri, i.e. removes last uri segment -// ------------------------------------------------------------------------------------------------ -TPtrC8 Cdmatest::RemoveLastURISeg( const TDesC8& aURI ) - { - TInt i; - for ( i = aURI.Length() - 1; i >= 0 ; i-- ) - { - if( aURI[i] == '/' ) - { - break; - } - } - if ( i > -1 ) - { - return aURI.Left( i ); - } - else - { - return KNullDesC8(); - } - } - -TPtrC Cdmatest::RemoveLastURISeg( const TDesC& aURI ) - { - TInt i; - for ( i = aURI.Length() - 1; i >= 0 ; i-- ) - { - if( aURI[i] == '/' ) - { - break; - } - } - if ( i > -1 ) - { - return aURI.Left( i ); - } - else - - { - return KNullDesC(); - } - } - -void Cdmatest::SetURIL( const TDesC& aURI ) - { - if ( iURI != NULL ) - { - delete iURI ; - iURI = NULL; - } - iURI = HBufC8::NewL( aURI.Length() ) ; - iURI->Des().Copy( aURI ); - } - -void Cdmatest::SetURIL( const TDesC8& aURI ) - { - if ( iURI != NULL ) - { - delete iURI ; - iURI = NULL; - } - iURI = HBufC8::NewL( aURI.Length() ) ; - iURI->Des().Copy( aURI ); - } - -void Cdmatest::SetURIL( HBufC8* aURI ) - { - if ( iURI != NULL ) - { - delete iURI ; - iURI = NULL; - } - iURI = aURI ; - } - - - -void Cdmatest::SetResultsL( - TInt aResultsRef, - CBufBase& aObject, - const TDesC8& aType ) - { - TPtrC8 ptr( aObject.Ptr(0) ); - iLog->Log( _L8( "SetResults, ref=%d, object='%S', type='%S'" ), aResultsRef, &ptr, &aType ); - if ( iResultsFunction ) - { - (this->*iResultsFunction)( aResultsRef, aObject, aType ); - iResultsFunction = NULL ; - } - - } - - -void Cdmatest::SetStatusL( TInt aStatusRef, - MSmlDmAdapter::TError aErrorCode ) - { - iStatus = aErrorCode ; - iLog->Log( _L( "SetStatusL, ref=%d, code=%d" ), aStatusRef, aErrorCode ); - - - } - -void Cdmatest::SetMappingL( const TDesC8& aURI, const TDesC8& aLUID ) - { - iLog->Log( _L8( "SetMappingL, aURI='%s', aLUID='%s'" ), aURI.Ptr(), aLUID.Ptr() ); - - iMappingTable.Append(TMapping( aURI, aLUID ) ) ; - } - -HBufC8* Cdmatest::GetLuidAllocL( const TDesC8& aURI ) - { - iLog->Log( _L8( "GetLuidAllocL, aURI='%S'" ), &aURI ); - HBufC8 *res = NULL; - for( TInt i(0); i < iMappingTable.Count(); i++ ) - { - if ( aURI == iMappingTable[i].iURI ) - { - res = iMappingTable[i].iLuid.AllocL(); - } - } - if ( res == NULL ) - { - res = HBufC8::NewL( 0 ); - } - iLog->Log( _L8( "GetLuidAllocL, response='%S'" ), res ); - return res; - } - -HBufC8* Cdmatest::GetLuidAllocLC( const TDesC8& aURI ) - { - iLog->Log( _L8( "GetLuidAllocL, aURI='%S'" ), &aURI ); - HBufC8 *res = NULL; - for( TInt i(0); i < iMappingTable.Count(); i++ ) - { - if ( aURI == iMappingTable[i].iURI ) - { - res = iMappingTable[i].iLuid.AllocLC(); - break; - } - } - if ( res == NULL ) - { - res = HBufC8::NewLC( 0 ); - } - iLog->Log( _L8( "GetLuidAllocLC, response='%S'" ), res ); - return res ; - } - -#ifdef __TARM_SYMBIAN_CONVERGENCY - -void Cdmatest::GetMappingInfoListL( const TDesC8& /*aURI*/, - CArrayFix& /*aSegmentList*/ ) - { - // do nothing - } - -#else -// nothing -#endif -//*************************************************************************** -// End of File