--- a/deviceupdatesui/adapters/syncmldm12/tsrc/src/dmatest.cpp Fri Jun 11 16:23:35 2010 +0100
+++ /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 <StifParser.h>
-#include <Stiftestinterface.h>
-#include <S32FILE.H>
-#include <s32mem.h>
-#include <apgcli.h>
-#include <e32svr.h>
-#include <e32math.h>
-#include <f32file.h>
-#include <swinstapi.h>
-
-#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<TSmlDmMappingInfo>(1);
-
- TRAPD( err, LoadMappingsL() );
- if (err != KErrEof && err != KErrNone && err != KErrNotFound)
- {
- User::Leave( err );
- }
- }
-
-CNSmlDMSettingsAdapter12 *Cdmatest::Adapter()
- {
- if ( iAdapter == NULL )
- {
- if ( iLog )
- {
- iLog->Log( _L( "Loading Adapter" ) );
- }
-
- TRAPD( err, iAdapter = (CNSmlDMSettingsAdapter12*) 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<TSmlDmMappingInfo>& /*aSegmentList*/ )
- {
- // do nothing
- }
-
-#else
-// nothing
-#endif
-//***************************************************************************
-// End of File