201021
authorhgs
Tue, 13 Jul 2010 03:44:34 +0530
changeset 44 137912d1a556
parent 43 88e14c3d4c4f
child 45 0f9fc722d255
201021
deviceupdatesui/adapters/bld/bld.inf
deviceupdatesui/adapters/devdetail/bld/DevDetail_HwV.txt
deviceupdatesui/adapters/devdetail/bld/DevDetail_SwV.txt
deviceupdatesui/adapters/devdetail/bld/bld.inf
deviceupdatesui/adapters/devdetail/bld/nsmldmdevdetailadapter.mmp
deviceupdatesui/adapters/devdetail/inc/nsmldmdevdetailadapter.h
deviceupdatesui/adapters/devdetail/src/nsmldmdevdetailadapter.cpp
deviceupdatesui/adapters/devdetail/src/nsmldmdevdetailadapter.rss
deviceupdatesui/adapters/devdetail/src/nsmldmdevdetailutils_ARM.cpp
deviceupdatesui/adapters/devdetail/src/nsmldmdevdetailutils_WINSCW.cpp
deviceupdatesui/adapters/devinfo/bld/bld.inf
deviceupdatesui/adapters/devinfo/bld/nsmldmdevinfoadapter.mmp
deviceupdatesui/adapters/devinfo/inc/nsmldmdevinfoadapter.h
deviceupdatesui/adapters/devinfo/src/nsmldmdevinfoadapter.cpp
deviceupdatesui/adapters/devinfo/src/nsmldmdevinfoadapter.rss
deviceupdatesui/adapters/inc/nsmldmimpluids.h
deviceupdatesui/adapters/syncmldm12/bld/bld.inf
deviceupdatesui/adapters/syncmldm12/bld/nsmldmsettingsadapter12.mmp
deviceupdatesui/adapters/syncmldm12/inc/NSmlDMSettingsAdapter12.h
deviceupdatesui/adapters/syncmldm12/src/NSmlDmSettingsAdapter12.cpp
deviceupdatesui/adapters/syncmldm12/src/nsmldmsettingsadapter12.rss
deviceupdatesui/adapters/syncmldm12/tsrc/bwins/syncmldm12testu.def
deviceupdatesui/adapters/syncmldm12/tsrc/conf/syncmldm12test.cfg
deviceupdatesui/adapters/syncmldm12/tsrc/eabi/syncmldm12testu.def
deviceupdatesui/adapters/syncmldm12/tsrc/group/bld.inf
deviceupdatesui/adapters/syncmldm12/tsrc/group/syncmldm12test.mmp
deviceupdatesui/adapters/syncmldm12/tsrc/group/syncmldm12test.pkg
deviceupdatesui/adapters/syncmldm12/tsrc/inc/TestDmDDFObject.h
deviceupdatesui/adapters/syncmldm12/tsrc/inc/dmatest.h
deviceupdatesui/adapters/syncmldm12/tsrc/inc/syncmldm12test.h
deviceupdatesui/adapters/syncmldm12/tsrc/init/syncmldm12test.ini
deviceupdatesui/adapters/syncmldm12/tsrc/src/TestDmDDFObject.cpp
deviceupdatesui/adapters/syncmldm12/tsrc/src/dmatest.cpp
deviceupdatesui/adapters/syncmldm12/tsrc/src/syncmldm12test.cpp
deviceupdatesui/adapters/syncmldm12/tsrc/src/syncmldm12testBlocks.cpp
deviceupdatesui/cpqtsp/Cpqtsp.pri
deviceupdatesui/cpqtsp/cpqtsp.pro
deviceupdatesui/cpqtsp/inc/CWPBioControl.h
deviceupdatesui/cpqtsp/inc/CWPNameValue.h
deviceupdatesui/cpqtsp/inc/CWPStringPair.h
deviceupdatesui/cpqtsp/inc/CpQtSpMainWindow.h
deviceupdatesui/cpqtsp/inc/CpQtSpView.h
deviceupdatesui/cpqtsp/inc/ProvisioningDebug.h
deviceupdatesui/cpqtsp/inc/ProvisioningUIDs.h
deviceupdatesui/cpqtsp/resources/service_conf.xml
deviceupdatesui/cpqtsp/rom/cpqtsp.iby
deviceupdatesui/cpqtsp/rom/cpsqtsp_resources.iby
deviceupdatesui/cpqtsp/src/CWPBioControl.cpp
deviceupdatesui/cpqtsp/src/CWPNameValue.cpp
deviceupdatesui/cpqtsp/src/CWPStringPair.cpp
deviceupdatesui/cpqtsp/src/CpQtSpMainWindow.cpp
deviceupdatesui/cpqtsp/src/CpQtSpView.cpp
deviceupdatesui/cpqtsp/src/main.cpp
deviceupdatesui/devicemanagementnotifiersplugin/PnpUtilLogger.h
deviceupdatesui/devicemanagementnotifiersplugin/devicemanagementnotifierdevman.qrc
deviceupdatesui/devicemanagementnotifiersplugin/devicemanagementnotifierplugin.cpp
deviceupdatesui/devicemanagementnotifiersplugin/devicemanagementnotifierplugin_p.h
deviceupdatesui/devicemanagementnotifiersplugin/devicemanagementnotifiersplugin.pro
deviceupdatesui/devicemanagementnotifiersplugin/devicemanagementnotifierutils.cpp
deviceupdatesui/devicemanagementnotifiersplugin/devicemanagementnotifierutils.h
deviceupdatesui/devicemanagementnotifiersplugin/devicemanagementnotifierwidget.cpp
deviceupdatesui/devicemanagementnotifiersplugin/devicemanagementnotifierwidget_p.h
deviceupdatesui/devicemanagementnotifiersplugin/dialog.docml
deviceupdatesui/devicemanagementnotifiersplugin/dialoginformative.docml
deviceupdatesui/devicemanagementnotifiersplugin/dialogserverpushconfirm.docml
deviceupdatesui/devicemanagementnotifiersplugin/iconnotifier.svg
deviceupdatesui/devicemanagementnotifiersplugin/syncmlnotifierprivate.cpp
deviceupdatesui/devicemanagementnotifiersplugin/syncmlnotifierprivate.h
deviceupdatesui/omadmadapters/bld/bld.inf
deviceupdatesui/omadmadapters/connmoadapter/group/bld.inf
deviceupdatesui/omadmadapters/connmoadapter/group/connmoadapter.mmp
deviceupdatesui/omadmadapters/connmoadapter/inc/AddBuffer.h
deviceupdatesui/omadmadapters/connmoadapter/inc/BranchBase.h
deviceupdatesui/omadmadapters/connmoadapter/inc/ConnMoAdapter.h
deviceupdatesui/omadmadapters/connmoadapter/inc/NapBranch.h
deviceupdatesui/omadmadapters/connmoadapter/inc/ProxyBranch.h
deviceupdatesui/omadmadapters/connmoadapter/inc/Utils.h
deviceupdatesui/omadmadapters/connmoadapter/rom/connmoadapter.iby
deviceupdatesui/omadmadapters/connmoadapter/src/AddBuffer.cpp
deviceupdatesui/omadmadapters/connmoadapter/src/BranchBase.cpp
deviceupdatesui/omadmadapters/connmoadapter/src/ConnMoAdapter.cpp
deviceupdatesui/omadmadapters/connmoadapter/src/ConnMoAdapter.rss
deviceupdatesui/omadmadapters/connmoadapter/src/Luid.cpp
deviceupdatesui/omadmadapters/connmoadapter/src/NapBranch.cpp
deviceupdatesui/omadmadapters/connmoadapter/src/ProxyBranch.cpp
deviceupdatesui/omadmadapters/connmoadapter/src/Utils.cpp
deviceupdatesui/omadmadapters/connmoadapter/traces/OstTraceDefinitions.h
deviceupdatesui/omadmadapters/connmoadapter/traces/fixed_id.definitions
deviceupdatesui/omadmadapters/connmoadapter/traces/trace.properties
deviceupdatesui/omadmadapters/devdetail/bld/DevDetail_HwV.txt
deviceupdatesui/omadmadapters/devdetail/bld/DevDetail_SwV.txt
deviceupdatesui/omadmadapters/devdetail/bld/bld.inf
deviceupdatesui/omadmadapters/devdetail/bld/nsmldmdevdetailadapter.mmp
deviceupdatesui/omadmadapters/devdetail/inc/nsmldmdevdetailadapter.h
deviceupdatesui/omadmadapters/devdetail/src/nsmldmdevdetailadapter.cpp
deviceupdatesui/omadmadapters/devdetail/src/nsmldmdevdetailadapter.rss
deviceupdatesui/omadmadapters/devdetail/src/nsmldmdevdetailutils_ARM.cpp
deviceupdatesui/omadmadapters/devdetail/src/nsmldmdevdetailutils_WINSCW.cpp
deviceupdatesui/omadmadapters/devinfo/bld/bld.inf
deviceupdatesui/omadmadapters/devinfo/bld/nsmldmdevinfoadapter.mmp
deviceupdatesui/omadmadapters/devinfo/inc/nsmldmdevinfoadapter.h
deviceupdatesui/omadmadapters/devinfo/src/nsmldmdevinfoadapter.cpp
deviceupdatesui/omadmadapters/devinfo/src/nsmldmdevinfoadapter.rss
deviceupdatesui/omadmadapters/globalwlansettings/group/bld.inf
deviceupdatesui/omadmadapters/globalwlansettings/group/globalwlanadapter.mmp
deviceupdatesui/omadmadapters/globalwlansettings/inc/globalwlanadapter.h
deviceupdatesui/omadmadapters/globalwlansettings/rom/globalwlanadapter.iby
deviceupdatesui/omadmadapters/globalwlansettings/src/globalwlanadapter.cpp
deviceupdatesui/omadmadapters/globalwlansettings/src/globalwlanadapter.rss
deviceupdatesui/omadmadapters/inc/nsmldmimpluids.h
deviceupdatesui/omadmadapters/mms/bld/bld.inf
deviceupdatesui/omadmadapters/mms/bld/nsmldmmmsadapter.mmp
deviceupdatesui/omadmadapters/mms/inc/nsmldmmmsadapter.h
deviceupdatesui/omadmadapters/mms/src/nsmldmmmsadapter.cpp
deviceupdatesui/omadmadapters/mms/src/nsmldmmmsadapter.rss
deviceupdatesui/omadmadapters/mms/tsrc/bwins/mmstestu.def
deviceupdatesui/omadmadapters/mms/tsrc/conf/mmstest.cfg
deviceupdatesui/omadmadapters/mms/tsrc/eabi/mmstestu.def
deviceupdatesui/omadmadapters/mms/tsrc/group/bld.inf
deviceupdatesui/omadmadapters/mms/tsrc/group/mmstest.mmp
deviceupdatesui/omadmadapters/mms/tsrc/group/mmstest.pkg
deviceupdatesui/omadmadapters/mms/tsrc/inc/TestDmDDFObject.h
deviceupdatesui/omadmadapters/mms/tsrc/inc/dmatest.h
deviceupdatesui/omadmadapters/mms/tsrc/inc/mmstest.h
deviceupdatesui/omadmadapters/mms/tsrc/init/mmstest.ini
deviceupdatesui/omadmadapters/mms/tsrc/src/TestDmDDFObject.cpp
deviceupdatesui/omadmadapters/mms/tsrc/src/dmatest.cpp
deviceupdatesui/omadmadapters/mms/tsrc/src/mmstest.cpp
deviceupdatesui/omadmadapters/mms/tsrc/src/mmstestBlocks.cpp
deviceupdatesui/omadmadapters/nsmldmalwaysonadapter/group/bld.inf
deviceupdatesui/omadmadapters/nsmldmalwaysonadapter/group/nsmldmalwaysonadapter.mmp
deviceupdatesui/omadmadapters/nsmldmalwaysonadapter/inc/logger.h
deviceupdatesui/omadmadapters/nsmldmalwaysonadapter/inc/nsmldmalwaysonadapter.h
deviceupdatesui/omadmadapters/nsmldmalwaysonadapter/inc/nsmldmalwaysonadapter.inl
deviceupdatesui/omadmadapters/nsmldmalwaysonadapter/inc/nsmldmalwaysonsettingstore.h
deviceupdatesui/omadmadapters/nsmldmalwaysonadapter/rom/nsmldmalwaysonadapter.iby
deviceupdatesui/omadmadapters/nsmldmalwaysonadapter/src/nsmldmalwaysonadapter.cpp
deviceupdatesui/omadmadapters/nsmldmalwaysonadapter/src/nsmldmalwaysonadapter.rss
deviceupdatesui/omadmadapters/nsmldmalwaysonadapter/src/nsmldmalwaysonsettingstore.cpp
deviceupdatesui/omadmadapters/rom/omadmadapters.iby
deviceupdatesui/omadmadapters/syncmldm/bld/bld.inf
deviceupdatesui/omadmadapters/syncmldm/bld/nsmldmsettingsadapter.mmp
deviceupdatesui/omadmadapters/syncmldm/inc/NSmlDMSettingsAdapter.h
deviceupdatesui/omadmadapters/syncmldm/src/NSmlDmSettingsAdapter.cpp
deviceupdatesui/omadmadapters/syncmldm/src/nsmldmsettingsadapter.rss
deviceupdatesui/omadmadapters/syncmldm/tsrc/bwins/syncmldmtestu.def
deviceupdatesui/omadmadapters/syncmldm/tsrc/conf/syncmldmtest.cfg
deviceupdatesui/omadmadapters/syncmldm/tsrc/eabi/syncmldmtestu.def
deviceupdatesui/omadmadapters/syncmldm/tsrc/group/bld.inf
deviceupdatesui/omadmadapters/syncmldm/tsrc/group/syncmldmtest.mmp
deviceupdatesui/omadmadapters/syncmldm/tsrc/group/syncmldmtest.pkg
deviceupdatesui/omadmadapters/syncmldm/tsrc/inc/TestDmDDFObject.h
deviceupdatesui/omadmadapters/syncmldm/tsrc/inc/dmatest.h
deviceupdatesui/omadmadapters/syncmldm/tsrc/inc/syncmldmtest.h
deviceupdatesui/omadmadapters/syncmldm/tsrc/init/syncmldmtest.ini
deviceupdatesui/omadmadapters/syncmldm/tsrc/src/TestDmDDFObject.cpp
deviceupdatesui/omadmadapters/syncmldm/tsrc/src/dmatest.cpp
deviceupdatesui/omadmadapters/syncmldm/tsrc/src/syncmldmtest.cpp
deviceupdatesui/omadmadapters/syncmldm/tsrc/src/syncmldmtestBlocks.cpp
deviceupdatesui/omadmadapters/syncmldm12/bld/bld.inf
deviceupdatesui/omadmadapters/syncmldm12/bld/nsmldmsettingsadapter12.mmp
deviceupdatesui/omadmadapters/syncmldm12/inc/NSmlDMSettingsAdapter12.h
deviceupdatesui/omadmadapters/syncmldm12/src/NSmlDmSettingsAdapter12.cpp
deviceupdatesui/omadmadapters/syncmldm12/src/nsmldmsettingsadapter12.rss
deviceupdatesui/omadmadapters/syncmldm12/tsrc/bwins/syncmldm12testu.def
deviceupdatesui/omadmadapters/syncmldm12/tsrc/conf/syncmldm12test.cfg
deviceupdatesui/omadmadapters/syncmldm12/tsrc/eabi/syncmldm12testu.def
deviceupdatesui/omadmadapters/syncmldm12/tsrc/group/bld.inf
deviceupdatesui/omadmadapters/syncmldm12/tsrc/group/syncmldm12test.mmp
deviceupdatesui/omadmadapters/syncmldm12/tsrc/group/syncmldm12test.pkg
deviceupdatesui/omadmadapters/syncmldm12/tsrc/inc/TestDmDDFObject.h
deviceupdatesui/omadmadapters/syncmldm12/tsrc/inc/dmatest.h
deviceupdatesui/omadmadapters/syncmldm12/tsrc/inc/syncmldm12test.h
deviceupdatesui/omadmadapters/syncmldm12/tsrc/init/syncmldm12test.ini
deviceupdatesui/omadmadapters/syncmldm12/tsrc/src/TestDmDDFObject.cpp
deviceupdatesui/omadmadapters/syncmldm12/tsrc/src/dmatest.cpp
deviceupdatesui/omadmadapters/syncmldm12/tsrc/src/syncmldm12test.cpp
deviceupdatesui/omadmadapters/syncmldm12/tsrc/src/syncmldm12testBlocks.cpp
deviceupdatesui/omadmadapters/syncmlds/bld/bld.inf
deviceupdatesui/omadmadapters/syncmlds/bld/nsmldssettingsadapter.mmp
deviceupdatesui/omadmadapters/syncmlds/inc/NSmlDSSettingsAdapter.h
deviceupdatesui/omadmadapters/syncmlds/src/NSmlDsSettingsAdapter.cpp
deviceupdatesui/omadmadapters/syncmlds/src/nsmldssettingsadapter.rss
deviceupdatesui/omadmadapters/syncmlds/tsrc/bwins/syncmldstestu.def
deviceupdatesui/omadmadapters/syncmlds/tsrc/conf/syncmldstest.cfg
deviceupdatesui/omadmadapters/syncmlds/tsrc/eabi/syncmldstestu.def
deviceupdatesui/omadmadapters/syncmlds/tsrc/group/bld.inf
deviceupdatesui/omadmadapters/syncmlds/tsrc/group/syncmldstest.mmp
deviceupdatesui/omadmadapters/syncmlds/tsrc/group/syncmldstest.pkg
deviceupdatesui/omadmadapters/syncmlds/tsrc/inc/TestDmDDFObject.h
deviceupdatesui/omadmadapters/syncmlds/tsrc/inc/dmatest.h
deviceupdatesui/omadmadapters/syncmlds/tsrc/inc/syncmldstest.h
deviceupdatesui/omadmadapters/syncmlds/tsrc/init/syncmldstest.ini
deviceupdatesui/omadmadapters/syncmlds/tsrc/src/TestDmDDFObject.cpp
deviceupdatesui/omadmadapters/syncmlds/tsrc/src/dmatest.cpp
deviceupdatesui/omadmadapters/syncmlds/tsrc/src/syncmldstest.cpp
deviceupdatesui/omadmadapters/syncmlds/tsrc/src/syncmldstestBlocks.cpp
--- a/deviceupdatesui/adapters/bld/bld.inf	Tue Jul 13 03:42:03 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-/*
-* Copyright (c) 2002 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:    for building DM adapters
-*
-*/
-
-
-
-
-
-#include "../devinfo/bld/bld.inf"
-#include "../devdetail/bld/bld.inf"
-#include "../syncmldm12/bld/bld.inf"
-
--- a/deviceupdatesui/adapters/devdetail/bld/DevDetail_HwV.txt	Tue Jul 13 03:42:03 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-0000
\ No newline at end of file
--- a/deviceupdatesui/adapters/devdetail/bld/DevDetail_SwV.txt	Tue Jul 13 03:42:03 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-xxx-xxx 0.00 00
\ No newline at end of file
--- a/deviceupdatesui/adapters/devdetail/bld/bld.inf	Tue Jul 13 03:42:03 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-/*
-* Copyright (c) 2002 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:    build info file for DevDetail adapter
-*
-*/
-
-
-
-
-PRJ_EXPORTS
-./DevDetail_SwV.txt /epoc32/release/winscw/udeb/z/resource/devman/devdetail_swv.txt
-./DevDetail_SwV.txt /epoc32/release/winscw/urel/z/resource/devman/devdetail_swv.txt
-./DevDetail_HwV.txt /epoc32/release/winscw/udeb/z/resource/devman/devdetail_hwv.txt
-./DevDetail_HwV.txt /epoc32/release/winscw/urel/z/resource/devman/devdetail_hwv.txt
-
-PRJ_MMPFILES
-./nsmldmdevdetailadapter.mmp
-
-
-
-
--- a/deviceupdatesui/adapters/devdetail/bld/nsmldmdevdetailadapter.mmp	Tue Jul 13 03:42:03 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,70 +0,0 @@
-/*
-* Copyright (c) 2004 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:    Project file for devdetail adapter
-*
-*/
-
-
-
-
-#include "defaultcaps.hrh"
-#include  <platform_paths.hrh>
-
-//This flag is used for enabling Fota Multi-ROFS Support
-MACRO	_ENABLE_MULTIROFS_SUPPORT
-
-TARGET          nsmldmdevdetailadapter.dll
-TARGETTYPE      PLUGIN
-UID             0x10009D8D 0x101F6DE9
-VENDORID        VID_DEFAULT
-CAPABILITY  CAP_GENERAL_DLL
-
-APP_LAYER_SYSTEMINCLUDE
-SYSTEMINCLUDE   /epoc32/include/ecom
-
-SOURCEPATH      ../src
-USERINCLUDE     ../inc
-USERINCLUDE     ../../inc
-SOURCE          nsmldmdevdetailadapter.cpp
-
-//#if defined(ARMCC)
-SOURCE          nsmldmdevdetailutils_ARM.cpp
-//#elif defined(WINSCW)
-//SOURCE          nsmldmdevdetailutils_WINSCW.cpp
-//#endif
-
-START RESOURCE nsmldmdevdetailadapter.rss
-LANGUAGE_IDS
-END
-
-
-
-
-//#if defined(ARMCC)
-LIBRARY sysutil.lib
-//#elif defined(WINSCW)
-//LIBRARY efsrv.lib
-//#endif
-
-
-LIBRARY         euser.lib 
-LIBRARY         ecom.lib 
-LIBRARY         nsmldebug.lib
-LIBRARY         nsmlagentcommon.lib
-
-//For Multi-ROFS Support
-LIBRARY			  sysversioninfo.lib
-
-
-SMPSAFE
--- a/deviceupdatesui/adapters/devdetail/inc/nsmldmdevdetailadapter.h	Tue Jul 13 03:42:03 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,164 +0,0 @@
-/*
-* Copyright (c) 2004 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:    DM DevDetail Adapter
-*
-*/
-
-
-
-
-#ifndef __NSMLDMDEVDETAILADAPTER_H__
-#define __NSMLDMDEVDETAILADAPTER_H__
-
-// INCLUDES
-
-#include <e32base.h>
-#include <smldmadapter.h>
-#include "nsmldmconstants.h"
-
-// the DDF version must be changed if any changes in DDF structure 
-// ( built in DDFStructureL() function )
-_LIT8( KNSmlDMDevDetailDDFVersion, "1.0" ); 
-
-_LIT8( KNSmlDMDevDetailTextPlain, "text/plain" );
-_LIT8( KNSmlDMDevDetailNodeName, "DevDetail" );
-_LIT8( KNSmlDMDevDetailDescription, "The interior object holds all DevDetail objects" );
-
-_LIT8( KNSmlDMDevDetailDevTypNodeName, "DevTyp" );
-_LIT8( KNSmlDMDevDetailDevTypDescription, "The type of the device" );
-_LIT8( KNSmlDMDevDetailDevTypValue, "smartphone" );
-
-_LIT8( KNSmlDMDevDetailOEMNodeName, "OEM" );
-_LIT8( KNSmlDMDevDetailOEMDescription, "Original Equipment Manufacturer" );
-
-_LIT8( KNSmlDMDevDetailFwVNodeName, "FwV" );
-_LIT8( KNSmlDMDevDetailFwVDescription, "The firmware revision of the device" );
-
-_LIT8( KNSmlDMDevDetailSwVNodeName, "SwV" );
-_LIT8( KNSmlDMDevDetailSwVDescription, "The software revision of the device" );
-
-_LIT8( KNSmlDMDevDetailHwVNodeName, "HwV" );
-_LIT8( KNSmlDMDevDetailHwVDescription, "The hardware revision of the device" );
-
-_LIT8( KNSmlDMDevDetailLrgObjNodeName, "LrgObj" );
-_LIT8( KNSmlDMDevDetailLrgObjDescription, "Large object handling supported if value is true" );
-_LIT8( KNSmlDMDevDetailLrgObjValue, "true" );
-
-_LIT8( KNSmlDMDevDetailURINodeName, "URI" );
-_LIT8( KNSmlDMDevDetailURIDescription, "The tree limitations branch" );
-
-_LIT8( KNSmlDMDevDetailMaxDepthNodeName, "MaxDepth" );
-_LIT8( KNSmlDMDevDetailMaxDepthDescription, "Maximum tree depth" );
-_LIT8( KNSmlDMDevDetailMaxDepthValue, "0" );
-
-_LIT8( KNSmlDMDevDetailMaxTotLenNodeName, "MaxTotLen" );
-_LIT8( KNSmlDMDevDetailMaxTotLenDescription, "Maximum URI length" );
-_LIT8( KNSmlDMDevDetailMaxTotLenValue, "0" );
-
-_LIT8( KNSmlDMDevDetailMaxSegLenNodeName, "MaxSegLen" );
-_LIT8( KNSmlDMDevDetailMaxSegLenDescription, "Maximum URI segment length" );
-_LIT8( KNSmlDMDevDetailMaxSegLenValue, "9" );
-
-_LIT8( KNSmlDMDevDetailSeparator, "/" );
-
-const TInt KNSmlMaxRequestBufferLength = 128;
-const TInt KNSmlMaxSizeBufferLength = 4;
-
-_LIT( KNSmlDevDetailPanic,      "DevDetail" );
-
-// CLASS DECLARATION
-class CNSmlDmDevDetailAdapter : public CSmlDmAdapter
-    {
-public:  // contructors and destructor
-    static CNSmlDmDevDetailAdapter* NewL(MSmlDmCallback* aDmCallback );
-    static CNSmlDmDevDetailAdapter* NewLC(MSmlDmCallback* aDmCallback );
-
-    virtual ~CNSmlDmDevDetailAdapter();
-    virtual TInt DevDetailValueCrcL();
-
-private: // new functions
-    CNSmlDmDevDetailAdapter(TAny* aEcomArguments);
-    void AddObjectToBufferL( CBufBase& aCrcBuf, const TDesC8& aURI ); 
-    CSmlDmAdapter::TError FetchLeafObjectL( const TDesC8& aURI, CBufBase& aObject ); 
-    void SetLeafPropertiesL( MSmlDmDDFObject& aObject, 
-                             const TSmlDmAccessTypes& aAccessTypes, 
-                             const TDesC8& aDescription ) const;
-            
-private: // functions from base classes
-    // from CSmlDmAdapter
-    void DDFVersionL( CBufBase& aVersion );
-    void DDFStructureL( MSmlDmDDFObject& aDDF );
-    void UpdateLeafObjectL( const TDesC8& aURI, const TDesC8& aLUID, 
-                            const TDesC8& aObject, const TDesC8& aType, 
-                            const TInt aStatusRef );
-    void DeleteObjectL( const TDesC8& aURI, const TDesC8& aLUID, const TInt aStatusRef ); 
-    void FetchLeafObjectL( const TDesC8& aURI, const TDesC8& aLUID, 
-                           const TDesC8& aType, const TInt aResultsRef, 
-                           const TInt aStatusRef ); 
-    void ChildURIListL( const TDesC8& aURI, const TDesC8& aLUID, 
-                        const CArrayFix<TSmlDmMappingInfo>& aPreviousURISegmentList, 
-                        const TInt aResultsRef, const TInt aStatusRef );  
-    void AddNodeObjectL( const TDesC8& aURI, const TDesC8& aParentLUID, 
-                         const TInt aStatusRef );
-    void UpdateLeafObjectL( const TDesC8& aURI, const TDesC8& aLUID, 
-                            RWriteStream*& aStream, const TDesC8& aType, 
-                            const TInt aStatusRef );
-    void FetchLeafObjectSizeL( const TDesC8& aURI, const TDesC8& aLUID, 
-                               const TDesC8& aType, const TInt aResultsRef, 
-                               const TInt aStatusRef );
-    void ExecuteCommandL( const TDesC8& aURI, const TDesC8& aLUID, const TDesC8& aArgument, 
-                          const TDesC8& aType, const TInt aStatusRef );
-    void ExecuteCommandL( const TDesC8& aURI, const TDesC8& aLUID, RWriteStream*& aStream, 
-                          const TDesC8& aType, const TInt aStatusRef );
-    void CopyCommandL( const TDesC8& aTargetURI, const TDesC8& aTargetLUID, 
-                       const TDesC8& aSourceURI, const TDesC8& aSourceLUID, 
-                       const TDesC8& aType, TInt aStatusRef );
-    void StartAtomicL();
-    void CommitAtomicL();
-    void RollbackAtomicL();
-    TBool StreamingSupport( TInt& aItemSize );
-    void StreamCommittedL();
-    void CompleteOutstandingCmdsL();
-
-// FOTA
-private:
-
-    /**
-    * Enumeration specifies the data that can be fetched using
-    * GetDevDetailDataL().
-    */
-    enum TNSmlDevDetailData
-        {
-        ESwVersion,
-        EHwVersion
-        };
-
-    /**
-    * Fetches and/or forms DevDetail data specified by aElement.
-    * In WINSCW this data is read from file. In ARM builds the 
-    * data is fetched from EInfo.
-    * @param aObject The buffer where fetched data is inserted.
-    * @param aElement Specifies the data that should be fetched.
-    */
-    void GetDevDetailDataL( CBufBase& aObject, TNSmlDevDetailData aElement ) const;
-	
-// FOTA end
-
-private:
-
-    MSmlDmCallback* iDmCallback;
-    
-    };
-
-#endif // __NSMLDMDEVDETAILADAPTER_H__
--- a/deviceupdatesui/adapters/devdetail/src/nsmldmdevdetailadapter.cpp	Tue Jul 13 03:42:03 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,561 +0,0 @@
-/*
-* Copyright (c) 2004 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:    DM DevDetail Adapter Source Code
-*
-*/
-
-
-
-
-// INCLUDE FILES
-#include <implementationproxy.h> // For TImplementationProxy definition
-
-#include "nsmldmimpluids.h"
-#include "nsmldmdevdetailadapter.h"
-#include "nsmldebug.h"
-#include "nsmlphoneinfo.h"
-#include "nsmlunicodeconverter.h"
-#include "nsmlconstants.h"
-
-
-// ------------------------------------------------------------------------------------------------
-// CNSmlDmDevDetailAdapter::NewL( )
-// ------------------------------------------------------------------------------------------------
-CNSmlDmDevDetailAdapter* CNSmlDmDevDetailAdapter::NewL(MSmlDmCallback* aDmCallback )
-    {
-    _DBG_FILE("CNSmlDmDevDetailAdapter::NewL(): begin");
-    CNSmlDmDevDetailAdapter* self = NewLC( aDmCallback );
-    CleanupStack::Pop();
-    _DBG_FILE("CNSmlDmDevDetailAdapter::NewL(): end");
-    return self;
-    }
-
-// ------------------------------------------------------------------------------------------------
-// CNSmlDmDevDetailAdapter::NewLC( )
-// ------------------------------------------------------------------------------------------------
-CNSmlDmDevDetailAdapter* CNSmlDmDevDetailAdapter::NewLC(MSmlDmCallback* aDmCallback )
-    {
-    _DBG_FILE("CNSmlDmDevDetailAdapter::NewLC(): begin");
-    CNSmlDmDevDetailAdapter* self = new (ELeave) CNSmlDmDevDetailAdapter(aDmCallback);
-    CleanupStack::PushL(self);
-    self->iDmCallback=aDmCallback;
-    _DBG_FILE("CNSmlDmDevDetailAdapter::NewLC(): end");
-    return self;
-    }
-
-    
-// ------------------------------------------------------------------------------------------------
-// CNSmlDmDevDetailAdapter::CNSmlDmDevDetailAdapter(TAny* aEcomArguments)
-// ------------------------------------------------------------------------------------------------
-CNSmlDmDevDetailAdapter::CNSmlDmDevDetailAdapter(TAny* aEcomArguments):CSmlDmAdapter(aEcomArguments)
-    {
-    _DBG_FILE("CNSmlDmDevDetailAdapter::CNSmlDmDevDetailAdapter(): begin");
-    _DBG_FILE("CNSmlDmDevDetailAdapter::CNSmlDmDevDetailAdapter(): end");
-    }
-
-// -----------------------------------------------------------------------------
-// CNSmlDmDevDetailAdapter::~CNSmlDmDevDetailAdapter()
-// -----------------------------------------------------------------------------
-CNSmlDmDevDetailAdapter::~CNSmlDmDevDetailAdapter()
-    {
-    _DBG_FILE("CNSmlDmDevDetailAdapter::~CNSmlDmDevDetailAdapter(): begin");
-    _DBG_FILE("CNSmlDmDevDetailAdapter::~CNSmlDmDevDetailAdapter(): end");
-    }
-
-// -----------------------------------------------------------------------------
-// CNSmlDmDevDetailAdapter::DevDetailValueCrcL()
-// -----------------------------------------------------------------------------
-TInt CNSmlDmDevDetailAdapter::DevDetailValueCrcL()
-    {
-    CBufBase* crcBuf = CBufFlat::NewL( 1 );
-    CleanupStack::PushL( crcBuf );
-    
-    AddObjectToBufferL( *crcBuf, KNSmlDMDevDetailDevTypNodeName() );
-    AddObjectToBufferL( *crcBuf, KNSmlDMDevDetailOEMNodeName() );
-    AddObjectToBufferL( *crcBuf, KNSmlDMDevDetailFwVNodeName() );
-    AddObjectToBufferL( *crcBuf, KNSmlDMDevDetailSwVNodeName() );
-    AddObjectToBufferL( *crcBuf, KNSmlDMDevDetailHwVNodeName() );
-    AddObjectToBufferL( *crcBuf, KNSmlDMDevDetailLrgObjNodeName() );
-    AddObjectToBufferL( *crcBuf, KNSmlDMDevDetailMaxDepthNodeName() );
-    AddObjectToBufferL( *crcBuf, KNSmlDMDevDetailMaxTotLenNodeName() );
-    AddObjectToBufferL( *crcBuf, KNSmlDMDevDetailMaxSegLenNodeName() );
-    
-    TUint16 crc = 0;
-    Mem::Crc( crc, crcBuf->Ptr(0).Ptr(), crcBuf->Size() );
-    CleanupStack::PopAndDestroy();  // crcBuf
-    return crc;
-    }
-
-// -----------------------------------------------------------------------------
-// CNSmlDmDevDetailAdapter::AddObjectToBufferL()
-// -----------------------------------------------------------------------------
-void CNSmlDmDevDetailAdapter::AddObjectToBufferL( CBufBase& aCrcBuf, 
-                                                  const TDesC8& aURI )
-    {
-    CBufBase* buf = CBufFlat::NewL( 1 );
-    CleanupStack::PushL( buf );
-    FetchLeafObjectL( aURI, *buf );
-    aCrcBuf.InsertL( aCrcBuf.Size(), buf->Ptr(0) );
-    _LIT8( KNSmlDmSeparator, ";" );
-    aCrcBuf.InsertL( aCrcBuf.Size(), KNSmlDmSeparator );
-    CleanupStack::PopAndDestroy(); //buf    
-    }
-
-// -----------------------------------------------------------------------------
-// CNSmlDmDevDetailAdapter::FetchLeafObjectL()
-// -----------------------------------------------------------------------------
-CSmlDmAdapter::TError CNSmlDmDevDetailAdapter::FetchLeafObjectL( const TDesC8& aURI, 
-                                                                 CBufBase& aObject )
-    {
-    _DBG_FILE("CNSmlDmDevDetailAdapter::FetchLeafObjectL(): begin");
-    CSmlDmAdapter::TError retValue = CSmlDmAdapter::EOk;
-
-    TInt ret = aURI.LocateReverse(KNSmlDMDevDetailSeparator()[0]);
-    if ( ret == KErrNotFound ) 
-        {
-        ret = -1;
-        }
-    TInt len = aURI.Length() - ( ret + 1 );
-    TPtrC8 segment = aURI.Right( len );
-    if ( segment == KNSmlDMDevDetailDevTypNodeName )
-        {
-        aObject.InsertL( 0, KNSmlDMDevDetailDevTypValue );
-        }
-    else
-    if ( segment == KNSmlDMDevDetailOEMNodeName )
-        {
-        CNSmlPhoneInfo* phoneInfo = CNSmlPhoneInfo::NewLC();
-        HBufC* manufacturer = HBufC::NewLC( 50 );
-        TPtr manufacturerPtr = manufacturer->Des();  
-        phoneInfo->PhoneDataL( CNSmlPhoneInfo::EPhoneManufacturer, manufacturerPtr );
-        HBufC8* manufacturerInUTF8 = NULL;
-        NSmlUnicodeConverter::HBufC8InUTF8LC( *manufacturer, manufacturerInUTF8 );
-        aObject.InsertL( 0, *manufacturerInUTF8 );
-        CleanupStack::PopAndDestroy( 3 ); //manufacturerInUTF8, manufacturer, phoneInfo
-        }
-    else
-    if ( segment == KNSmlDMDevDetailSwVNodeName )
-        {
-        // fetch software version
-        GetDevDetailDataL( aObject, ESwVersion );
-        }
-    else
-    if ( segment == KNSmlDMDevDetailHwVNodeName )
-        {
-        // fetch hardware version
-        GetDevDetailDataL( aObject, EHwVersion );
-        }
-    else
-    if ( segment == KNSmlDMDevDetailLrgObjNodeName )
-        {
-        aObject.InsertL( 0, KNSmlDMDevDetailLrgObjValue );
-        }
-    else
-    if ( segment == KNSmlDMDevDetailMaxDepthNodeName )
-        {
-        aObject.InsertL( 0, KNSmlDMDevDetailMaxDepthValue );
-        }
-    else
-    if ( segment == KNSmlDMDevDetailMaxTotLenNodeName )
-        {
-        aObject.InsertL( 0, KNSmlDMDevDetailMaxTotLenValue );
-        }
-    else
-    if ( segment == KNSmlDMDevDetailMaxSegLenNodeName )
-        {
-        aObject.InsertL( 0, KNSmlDMDevDetailMaxSegLenValue );
-        }
-    else
-    if ( segment != KNSmlDMDevDetailFwVNodeName )
-        {
-        retValue = CSmlDmAdapter::EError;
-        }
-        
-    _DBG_FILE("CNSmlDmDevDetailAdapter::FetchLeafObjectL(): end");
-    return retValue;
-    }
-// -----------------------------------------------------------------------------
-// CNSmlDmDevDetailAdapter::SetLeafPropertiesL()
-// -----------------------------------------------------------------------------
-void CNSmlDmDevDetailAdapter::SetLeafPropertiesL( MSmlDmDDFObject& aObject, 
-                                                  const TSmlDmAccessTypes& aAccessTypes,  
-                                                  const TDesC8& aDescription ) const
-    {
-    aObject.SetAccessTypesL( aAccessTypes );
-    aObject.SetScopeL( MSmlDmDDFObject::EPermanent );
-    aObject.SetDFFormatL( MSmlDmDDFObject::EChr );
-    aObject.AddDFTypeMimeTypeL( KNSmlDMDevDetailTextPlain );
-    aObject.SetDescriptionL( aDescription );
-    }
-
-
-
-// -----------------------------------------------------------------------------
-// CNSmlDmDevDetailAdapter::DDFVersionL()
-// -----------------------------------------------------------------------------
-void CNSmlDmDevDetailAdapter::DDFVersionL(CBufBase& aDDFVersion)
-    {
-    _DBG_FILE("CNSmlDmDevDetailAdapter::DDFVersionL(TDes& aDDFVersion): begin");
-    aDDFVersion.InsertL(0,KNSmlDMDevDetailDDFVersion);
-    _DBG_FILE("CNSmlDmDevDetailAdapter::DDFVersionL(TDes& aDDFVersion): end");
-    }
-
-
-// -----------------------------------------------------------------------------
-// void CNSmlDmDevDetailAdapter::DDFStructureL()
-//
-// -----------------------------------------------------------------------------
-void CNSmlDmDevDetailAdapter::DDFStructureL( MSmlDmDDFObject& aDDF )
-    {
-    _DBG_FILE("CNSmlDmDevDetailAdapter::DDFStructureL(): begin");
-    
-    TSmlDmAccessTypes accessTypes;
-    
-    accessTypes.SetGet();
-    // DevDetail
-    MSmlDmDDFObject& devDetail = aDDF.AddChildObjectL( KNSmlDMDevDetailNodeName );
-    devDetail.SetAccessTypesL( accessTypes ); 
-    devDetail.SetScopeL( MSmlDmDDFObject::EPermanent );
-    devDetail.SetDescriptionL( KNSmlDMDevDetailDescription );
-
-    // DevTyp   
-    MSmlDmDDFObject& devTyp = devDetail.AddChildObjectL(KNSmlDMDevDetailDevTypNodeName );
-    SetLeafPropertiesL( devTyp, accessTypes, KNSmlDMDevDetailDevTypDescription );
-    // OEM  
-    MSmlDmDDFObject& oem = devDetail.AddChildObjectL(KNSmlDMDevDetailOEMNodeName);
-    SetLeafPropertiesL( oem, accessTypes, KNSmlDMDevDetailOEMDescription );
-    // FwV  
-    MSmlDmDDFObject& fwv = devDetail.AddChildObjectL(KNSmlDMDevDetailFwVNodeName);
-    SetLeafPropertiesL( fwv, accessTypes, KNSmlDMDevDetailFwVDescription );
-    // SwV  
-    MSmlDmDDFObject& swv = devDetail.AddChildObjectL( KNSmlDMDevDetailSwVNodeName );
-    SetLeafPropertiesL( swv, accessTypes, KNSmlDMDevDetailSwVDescription );
-    // HwV  
-    MSmlDmDDFObject& hwv = devDetail.AddChildObjectL(KNSmlDMDevDetailHwVNodeName );
-    SetLeafPropertiesL( hwv, accessTypes, KNSmlDMDevDetailHwVDescription );
-    // LrgObj   
-    MSmlDmDDFObject& lrgObj = devDetail.AddChildObjectL(KNSmlDMDevDetailLrgObjNodeName );
-    SetLeafPropertiesL( lrgObj, accessTypes, KNSmlDMDevDetailLrgObjDescription );
-    lrgObj.SetDFFormatL( MSmlDmDDFObject::EBool );
-    // URI
-    MSmlDmDDFObject& uri = devDetail.AddChildObjectL(KNSmlDMDevDetailURINodeName);
-    uri.SetAccessTypesL( accessTypes );
-    uri.SetScopeL( MSmlDmDDFObject::EPermanent );
-    uri.SetDescriptionL( KNSmlDMDevDetailURIDescription );
-    // MaxDepth
-    MSmlDmDDFObject& maxDepth = uri.AddChildObjectL( KNSmlDMDevDetailMaxDepthNodeName);
-    SetLeafPropertiesL( maxDepth, accessTypes, KNSmlDMDevDetailMaxDepthDescription );
-    // MaxTotLen
-    MSmlDmDDFObject& maxTotLen = uri.AddChildObjectL( KNSmlDMDevDetailMaxTotLenNodeName );
-    SetLeafPropertiesL( maxTotLen, accessTypes, KNSmlDMDevDetailMaxTotLenDescription );
-    // MaxSegLen
-    MSmlDmDDFObject& maxSegLen = uri.AddChildObjectL( KNSmlDMDevDetailMaxSegLenNodeName);
-    SetLeafPropertiesL( maxSegLen, accessTypes, KNSmlDMDevDetailMaxSegLenDescription );
-        
-    _DBG_FILE("CNSmlDmDevDetailAdapter::DDFStructureL(): end");
-    }
-
-// -----------------------------------------------------------------------------
-// CNSmlDmDevDetailAdapter::UpdateLeafObjectL()
-// -----------------------------------------------------------------------------
-void  CNSmlDmDevDetailAdapter::UpdateLeafObjectL( const TDesC8& /*aURI*/, 
-                                                  const TDesC8& /*aLUID*/, 
-                                                  const TDesC8& /*aObject*/, 
-                                                  const TDesC8& /*aType*/,
-                                                  const TInt aStatusRef )
-    {
-    _DBG_FILE("CNSmlDmDevDetailAdapter::UpdateLeafObjectL(): begin");
-    _DBG_FILE("CNSmlDmDevDetailAdapter::UpdateLeafObjectL(): end");
-    iDmCallback->SetStatusL(aStatusRef,CSmlDmAdapter::EError);
-    }
-
-
-// -----------------------------------------------------------------------------
-//  CNSmlDmDevDetailAdapter::DeleteObjectL()
-// -----------------------------------------------------------------------------
-void  CNSmlDmDevDetailAdapter::DeleteObjectL( const TDesC8& /*aURI*/, 
-                                              const TDesC8& /*aLUID*/,
-                                              const TInt aStatusRef )
-    {
-    _DBG_FILE("CNSmlDmDevDetailAdapter::DeleteLeafObjectL( ): begin");
-    _DBG_FILE("CNSmlDmDevDetailAdapter::DeleteLeafObjectL( ): end");
-    iDmCallback->SetStatusL(aStatusRef,CSmlDmAdapter::EError);
-    }
-
-
-// -----------------------------------------------------------------------------
-// CNSmlDmDevDetailAdapter::FetchLeafObjectL()
-// -----------------------------------------------------------------------------
-void  CNSmlDmDevDetailAdapter::FetchLeafObjectL( const TDesC8& aURI, 
-                                                 const TDesC8& /*aLUID*/, 
-                                                 const TDesC8& aType, 
-                                                 const TInt aResultsRef, 
-                                                 const TInt aStatusRef )
-    {
-    _DBG_FILE("CNSmlDmDevDetailAdapter::FetchLeafObjectL(): begin");
-    CBufBase *object = CBufFlat::NewL( 1 );
-    CleanupStack::PushL( object );
-    CSmlDmAdapter::TError retValue = FetchLeafObjectL( aURI, *object );
-
-    iDmCallback->SetStatusL( aStatusRef, retValue );
-    iDmCallback->SetResultsL( aResultsRef, *object, aType);
-    CleanupStack::PopAndDestroy(); //object
-        
-    _DBG_FILE("CNSmlDmDevDetailAdapter::FetchLeafObjectL(): end");
-    }
-
-
-// -----------------------------------------------------------------------------
-// CSmlDmAdapter::TError CNSmlDmDevDetailAdapter::ChildURIListL()
-// -----------------------------------------------------------------------------
-
-void  CNSmlDmDevDetailAdapter::ChildURIListL( const TDesC8& aURI, 
-                                              const TDesC8& /*aLUID*/, 
-                                              const CArrayFix<TSmlDmMappingInfo>& /*aPreviousURISegmentList*/, 
-                                              const TInt aResultsRef, 
-                                              const TInt aStatusRef )
-    {
-    _DBG_FILE("CNSmlDmDevDetailAdapter::ChildURIListL(): begin");
-    CSmlDmAdapter::TError retValue = CSmlDmAdapter::EOk;
-    CBufBase *currentURISegmentList = CBufFlat::NewL(64);
-    CleanupStack::PushL(currentURISegmentList);
-
-    TInt ret = aURI.LocateReverse(KNSmlDMDevDetailSeparator()[0]);
-    if ( ret == KErrNotFound ) 
-        {
-        ret = -1;
-        }
-    TInt len = aURI.Length() - ( ret + 1 );
-    TPtrC8 segment = aURI.Right( len );
-
-    if ( segment == KNSmlDMDevDetailNodeName )
-        {
-        currentURISegmentList->InsertL( currentURISegmentList->Size(), KNSmlDMDevDetailDevTypNodeName() );
-        currentURISegmentList->InsertL( currentURISegmentList->Size(), KNSmlDMDevDetailSeparator() );
-        currentURISegmentList->InsertL( currentURISegmentList->Size(), KNSmlDMDevDetailOEMNodeName() );
-        currentURISegmentList->InsertL( currentURISegmentList->Size(), KNSmlDMDevDetailSeparator() );
-        currentURISegmentList->InsertL( currentURISegmentList->Size(), KNSmlDMDevDetailFwVNodeName() );
-        currentURISegmentList->InsertL( currentURISegmentList->Size(), KNSmlDMDevDetailSeparator() );
-        currentURISegmentList->InsertL( currentURISegmentList->Size(), KNSmlDMDevDetailSwVNodeName() );
-        currentURISegmentList->InsertL( currentURISegmentList->Size(), KNSmlDMDevDetailSeparator() );
-         currentURISegmentList->InsertL( currentURISegmentList->Size(), KNSmlDMDevDetailHwVNodeName() );
-        currentURISegmentList->InsertL( currentURISegmentList->Size(), KNSmlDMDevDetailSeparator() );
-        currentURISegmentList->InsertL( currentURISegmentList->Size(), KNSmlDMDevDetailLrgObjNodeName() );
-        currentURISegmentList->InsertL( currentURISegmentList->Size(), KNSmlDMDevDetailSeparator() );
-         currentURISegmentList->InsertL( currentURISegmentList->Size(), KNSmlDMDevDetailURINodeName() );
-        }
-    else
-    if ( segment == KNSmlDMDevDetailURINodeName )
-        {
-        currentURISegmentList->InsertL( currentURISegmentList->Size(), KNSmlDMDevDetailMaxDepthNodeName() );
-        currentURISegmentList->InsertL( currentURISegmentList->Size(), KNSmlDMDevDetailSeparator() );
-        currentURISegmentList->InsertL( currentURISegmentList->Size(), KNSmlDMDevDetailMaxTotLenNodeName() );
-        currentURISegmentList->InsertL( currentURISegmentList->Size(), KNSmlDMDevDetailSeparator() );
-        currentURISegmentList->InsertL( currentURISegmentList->Size(), KNSmlDMDevDetailMaxSegLenNodeName() );
-        }
-    else
-        {
-        retValue = CSmlDmAdapter::EError;
-        }
-
-    iDmCallback->SetStatusL(aStatusRef,retValue);
-    iDmCallback->SetResultsL(aResultsRef,*currentURISegmentList,KNullDesC8);
-    CleanupStack::PopAndDestroy(); //currentURISegmentList;
-    _DBG_FILE("CNSmlDmDevDetailAdapter::ChildURIListL(): end");
-    }
-
-// -----------------------------------------------------------------------------
-// CNSmlDmDevDetailAdapter::AddNodeObjectL()
-// -----------------------------------------------------------------------------
-void  CNSmlDmDevDetailAdapter::AddNodeObjectL( const TDesC8& /*aURI*/, 
-                                               const TDesC8& /*aParentLUID*/,
-                                               const TInt aStatusRef )
-    {
-    _DBG_FILE("CNSmlDmDevDetailAdapter::AddNodeObjectL(): begin");
-    _DBG_FILE("CNSmlDmDevDetailAdapter::AddNodeObjectL(): end");
-    iDmCallback->SetStatusL(aStatusRef,CSmlDmAdapter::EError);
-    }
-
-// -----------------------------------------------------------------------------
-//  CNSmlDmDevDetailAdapter::UpdateLeafObjectL(const TDesC8& aURI, 
-// const TDesC8& aLUID, RWriteStream*& aStream, const TDesC8& aType, 
-// const TInt aStatusRef)
-// -----------------------------------------------------------------------------
-void CNSmlDmDevDetailAdapter::UpdateLeafObjectL( const TDesC8& /*aURI*/, 
-                                                 const TDesC8& /*aLUID*/, 
-                                                 RWriteStream*& /*aStream*/, 
-                                                 const TDesC8& /*aType*/, 
-                                                 const TInt aStatusRef )
-    {
-    _DBG_FILE("CNSmlDmDevInfoAdapter::UpdateLeafObjectL(): stream: begin");
-    iDmCallback->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
-    _DBG_FILE("CNSmlDmDevInfoAdapter::UpdateLeafObjectL(): stream: end");
-    }
-
-// -----------------------------------------------------------------------------
-//  CNSmlDmDevDetailAdapter::FetchLeafObjectSizeL( const TDesC8& aURI, 
-// const TDesC8& aLUID, const TDesC8& aType, const TInt aResultsRef, 
-// const TInt aStatusRef )
-// -----------------------------------------------------------------------------
-void CNSmlDmDevDetailAdapter::FetchLeafObjectSizeL( const TDesC8& aURI, 
-                                                    const TDesC8& /*aLUID*/, 
-                                                    const TDesC8& aType, 
-                                                    const TInt aResultsRef, 
-                                                    const TInt aStatusRef )
-    {
-    _DBG_FILE("CNSmlDmDevDetailAdapter::FetchLeafObjectSizeL(): begin");
-
-    CBufBase *object = CBufFlat::NewL( 1 );
-    CleanupStack::PushL( object );
-    CSmlDmAdapter::TError retValue = FetchLeafObjectL( aURI, *object );
-
-    TInt objSizeInBytes = object->Size();
-    TBuf8<KNSmlMaxSizeBufferLength> stringObjSizeInBytes;
-    stringObjSizeInBytes.Num( objSizeInBytes );
-    object->Reset();
-    object->InsertL( 0, stringObjSizeInBytes );
-    
-    iDmCallback->SetStatusL( aStatusRef, retValue );
-    iDmCallback->SetResultsL( aResultsRef, *object, aType);
-    CleanupStack::PopAndDestroy(); //object 
-
-            
-    _DBG_FILE("CNSmlDmDevDetailAdapter::FetchLeafObjectSizeL(): end");
-    }
-    
-// -----------------------------------------------------------------------------
-//  CNSmlDmDevDetailAdapter::ExecuteCommandL( const TDesC8& aURI, 
-//  const TDesC8& aParentLUID, TDesC8& aArgument, const TDesC8& aType, 
-//  TInt aStatusRef )
-// -----------------------------------------------------------------------------
-void CNSmlDmDevDetailAdapter::ExecuteCommandL( const TDesC8& /*aURI*/, const TDesC8& /*aLUID*/, const TDesC8& /*aArgument*/, const TDesC8& /*aType*/, const TInt aStatusRef )
-    {
-    _DBG_FILE("CNSmlDmDevInfoAdapter::ExecuteCommandL(): begin");
-    iDmCallback->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
-    _DBG_FILE("CNSmlDmDevInfoAdapter::ExecuteCommandL(): end");
-    }
-
-// -----------------------------------------------------------------------------
-//  CNSmlDmDevDetailAdapter::ExecuteCommandL( const TDesC8& aURI, 
-//  const TDesC8& aParentLUID, RWriteStream*& aStream, const TDesC8& aType, 
-//  const TInt aStatusRef )
-// -----------------------------------------------------------------------------
-void CNSmlDmDevDetailAdapter::ExecuteCommandL( const TDesC8& /*aURI*/, 
-                                               const TDesC8& /*aParentLUID*/, 
-                                               RWriteStream*& /*aStream*/, 
-                                               const TDesC8& /*aType*/, 
-                                               const TInt aStatusRef )
-    {
-    _DBG_FILE("CNSmlDmDevInfoAdapter::ExecuteCommandL(): stream: begin");
-    iDmCallback->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
-    _DBG_FILE("CNSmlDmDevInfoAdapter::ExecuteCommandL(): stream: end");
-    }
-// -----------------------------------------------------------------------------
-//  CNSmlDmDevDetailAdapter::CopyCommandL( const TDesC8& aTargetURI, 
-//  const TDesC8& aSourceURI, const TDesC8& aSourceLUID, const TDesC8& aType, 
-//  const TInt aStatusRef )
-// -----------------------------------------------------------------------------
-void CNSmlDmDevDetailAdapter::CopyCommandL( const TDesC8& /*aTargetURI*/, 
-                                            const TDesC8& /*aTargetLUID*/, 
-                                            const TDesC8& /*aSourceURI*/, 
-                                            const TDesC8& /*aSourceLUID*/, 
-                                            const TDesC8& /*aType*/, 
-                                            TInt aStatusRef )
-    {
-    _DBG_FILE("CNSmlDmDevInfoAdapter::CopyCommandL(): begin");
-    iDmCallback->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
-    _DBG_FILE("CNSmlDmDevInfoAdapter::CopyCommandL(): end");
-    }
-
-// ----------------------------------------
-//  CNSmlDmDevDetailAdapter::StartAtomicL()
-// ----------------------------------------
-void CNSmlDmDevDetailAdapter::StartAtomicL()
-    {
-    _DBG_FILE("CNSmlDmDevInfoAdapter::StartAtomicL(): begin");
-    _DBG_FILE("CNSmlDmDevInfoAdapter::StartAtomicL(): end");
-    }
-    
-// -----------------------------------------
-//  CNSmlDmDevDetailAdapter::CommitAtomicL()
-// -----------------------------------------
-void CNSmlDmDevDetailAdapter::CommitAtomicL()
-    {
-    _DBG_FILE("CNSmlDmDevInfoAdapter::CommitAtomicL(): begin");
-    _DBG_FILE("CNSmlDmDevInfoAdapter::CommitAtomicL(): end");
-    }
-
-// -------------------------------------------
-//  CNSmlDmDevDetailAdapter::RollbackAtomicL()
-// -------------------------------------------
-void CNSmlDmDevDetailAdapter::RollbackAtomicL()
-    {
-    _DBG_FILE("CNSmlDmDevInfoAdapter::RollbackAtomicL(): begin");
-    _DBG_FILE("CNSmlDmDevInfoAdapter::RollbackAtomicL(): end");
-    }
-
-// -------------------------------------------------------------
-//  CNSmlDmDevDetailAdapter::StreamingSupport( TInt& aItemSize )
-// -------------------------------------------------------------    
-TBool CNSmlDmDevDetailAdapter::StreamingSupport( TInt& /*aItemSize*/ )
-    {
-    _DBG_FILE("CNSmlDmDevInfoAdapter::StreamingSupport(): begin");
-    _DBG_FILE("CNSmlDmDevInfoAdapter::StreamingSupport(): end");
-    return EFalse;
-    }
-
-// --------------------------------------------
-//  CNSmlDmDevDetailAdapter::StreamCommittedL()
-// --------------------------------------------
-void CNSmlDmDevDetailAdapter::StreamCommittedL()
-    {
-    _DBG_FILE("CNSmlDmDevInfoAdapter::StreamCommittedL(): begin");
-    _DBG_FILE("CNSmlDmDevInfoAdapter::StreamCommittedL(): end");
-    }
-
-// ----------------------------------------------------
-//  CNSmlDmDevDetailAdapter::CompleteOutstandingCmdsL()
-// ---------------------------------------------------- 
-void CNSmlDmDevDetailAdapter::CompleteOutstandingCmdsL()
-    {
-    _DBG_FILE("CNSmlDmDevInfoAdapter::CompleteOutstandingCmdsL(): begin");
-    _DBG_FILE("CNSmlDmDevInfoAdapter::CompleteOutstandingCmdsL(): end");
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-
-#ifndef IMPLEMENTATION_PROXY_ENTRY
-#define IMPLEMENTATION_PROXY_ENTRY(aUid, aFuncPtr)  {{aUid},(aFuncPtr)}
-#endif
-
-const TImplementationProxy ImplementationTable[] = 
-    {
-        IMPLEMENTATION_PROXY_ENTRY(KNSmlDMDevDetailAdapterImplUid, 
-                                   CNSmlDmDevDetailAdapter::NewL)
-    };
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-EXPORT_C const TImplementationProxy* ImplementationGroupProxy( TInt& aTableCount )
-    {
-    _DBG_FILE("ImplementationGroupProxy() for CNSmlDmDevDetailAdapter: begin");
-    aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
-    _DBG_FILE("ImplementationGroupProxy() for CNSmlDmDevDetailAdapter: end");
-    return ImplementationTable;
-    }
-
--- a/deviceupdatesui/adapters/devdetail/src/nsmldmdevdetailadapter.rss	Tue Jul 13 03:42:03 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,66 +0,0 @@
-/*
-* Copyright (c) 2009 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 adapters
-* 	This is part of omadmextensions.
-*
-*/
-
-
-CHARACTER_SET UTF8
-
-/*
-* ============================================================================
-*  Name     : 101f6de9.rss
-*  Part of  : SyncMl
-*  Origin   : SyncML Phase 2 
-*  Created  : 06.03.2003
-*  Implementation notes:
-*     
-*  Version  : 0.1
-*   $Revision: 2 $, $Modtime: 10.05.05 11:04 $ by $Author: Kollasep $
-*  ---------------------------------------------------------------------------
-*  Version history:
-*  Template version: 1.02, 21.6.2000 by maparnan
-*  <ccm_history>
-*  </ccm_history>
-* ============================================================================
-*/
-
-
-
-#include <registryinfo.rh>
-#include <nsmldmconstants.h>
-
-RESOURCE REGISTRY_INFO theRegistryInfo
-  {
-  dll_uid = 0x101F6DE9; //The DLL's 3rd UID.
-  interfaces = 
-      {
-      INTERFACE_INFO
-          {
-          interface_uid = KNSmlDMInterfaceUid; // DM interface UID
-          implementations = 
-            {
-            IMPLEMENTATION_INFO
-                {
-                implementation_uid = 0x101F6DEF; // DM devdetail implementation UID
-                version_no = 1; 
-                display_name = "";
-                default_data = "";
-                opaque_data = "";
-                }
-            };
-          }
-      };
-    }
--- a/deviceupdatesui/adapters/devdetail/src/nsmldmdevdetailutils_ARM.cpp	Tue Jul 13 03:42:03 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,132 +0,0 @@
-/*
-* Copyright (c) 2004 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:    DM DevDetail Adapter Source Code, ARM implementation
-*
-*/
-
-
-
-
-// INCLUDES
-#include <sysutil.h>
-#include "nsmldmdevdetailadapter.h"
-#include "nsmldebug.h"
-
-#if defined (_ENABLE_MULTIROFS_SUPPORT)
-#include <sysversioninfo.h>
-#else
-// CONSTANTS
-_LIT8( KNSmlSwVersionSeparator, " " );
-#endif
-
-// ---------------------------------------------------------------------------
-// CNSmlDmDevDetailAdapter::GetDevDetailDataL( )
-// Fetches device specific data using EInfo interface.
-// ---------------------------------------------------------------------------
-void CNSmlDmDevDetailAdapter::GetDevDetailDataL( 
-                                CBufBase& aObject, 
-                                TNSmlDevDetailData aElement ) const
-    {
-    _DBG_FILE("CNSmlDmDevDetailAdapter::GetDevDetailDataL(): begin (MARM)");
-    
-    aObject.Reset();
-    
-    switch( aElement )
-        {
-        case ESwVersion:
-            {
-            // buffers for data fetched from sysutil
-#if defined (_ENABLE_MULTIROFS_SUPPORT)
-
-            TBuf16<KSysVersionInfoTextLength> temp;
-			TBuf8<KSysVersionInfoTextLength> temp8;
-			temp.Zero();
-			temp8.Zero();
-            SysVersionInfo::TVersionInfoType what = SysVersionInfo::EFWVersion;
-            TInt error = SysVersionInfo::GetVersionInfo(what,temp);
-			
-			User::LeaveIfError(error);
-
-			//Ascii copy which is required
-			temp8.Copy(temp);
-			aObject.InsertL(0,temp8);
-			//Unicode copy if required
-			//aObject.InsertL(0,temp.Ptr(),temp.Length());
-#else
-            HBufC* verBuf = HBufC::NewLC( KSysUtilVersionTextLength );
-            HBufC8* verBuf8 = HBufC8::NewLC( KSysUtilVersionTextLength );
-            
-            TPtr ver = verBuf->Des();
-            TPtr8 ver8 = verBuf8->Des();
-            // fetch software version (sw.txt) from sysutil
-        	SysUtil::GetSWVersion( ver );
-        	ver8.Copy( ver );
-        	
-            // parse sw fields and append to aObject
-        	TChar separator('\n');
-        	TInt pos = ver8.Locate( separator );
-
-            if ( pos == KErrNotFound )
-                {
-                User::Leave( KErrNotFound );
-                }
-
-            // insert version (1st field) and separator to beginning
-        	aObject.InsertL( 0, ver8.Mid( 0, pos ) );
-        	aObject.InsertL( 0, KNSmlSwVersionSeparator );
-        	
-        	// locate type designator (3rd field)
-        	ver8 = ver8.Mid( pos + 1 );
-        	pos = ver8.Locate( separator );
-        	ver8 = ver8.Mid( pos + 1 );
-        	pos = ver8.Locate( separator );
-        	
-        	if ( pos == KErrNotFound )
-        	    {
-                // type designator (the rest of the string, since there was no \n found) 
-            	aObject.InsertL( 0, ver8 );
-        	    }
-        	else
-        	    {
-                // type designator to beginning
-            	aObject.InsertL( 0, ver8.Mid( 0, pos ) );
-        	    }
-        	
-        	// fetch variant (lang.txt) from sysutil
-        	ver.Zero();
-        	SysUtil::GetLangVersion( ver );
-        	ver8.Copy( ver );
-        	
-            // insert separator and variant to the end
-        	aObject.InsertL( aObject.Size(), KNSmlSwVersionSeparator );
-        	aObject.InsertL( aObject.Size(), ver8 );
-            
-            CleanupStack::PopAndDestroy( verBuf8 );
-            CleanupStack::PopAndDestroy( verBuf );
-#endif //_ENABLE_MULTIROFS_SUPPORT
-            break;
-            }
-        case EHwVersion:
-            {
-            break;
-            }
-        default:
-            User::Panic( KNSmlDevDetailPanic, KErrArgument );
-            break;
-        }
-
-    _DBG_FILE("CNSmlDmDevDetailAdapter::GetDevDetailDataL(): end (MARM)");
-    }
-
-
--- a/deviceupdatesui/adapters/devdetail/src/nsmldmdevdetailutils_WINSCW.cpp	Tue Jul 13 03:42:03 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,94 +0,0 @@
-/*
-* Copyright (c) 2004 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:    DM DevDetail Adapter Source Code, WINSCW implementation
-*
-*/
-
-
-
-
-// INCLUDES
-#include "nsmldmdevdetailadapter.h"
-#include "nsmldebug.h"
-
-// CONSTANTS
-_LIT( KNSmlDevDetailSwVFile,    "z:\\Resource\\DevMan\\DevDetail_SwV.txt" );
-_LIT( KNSmlDevDetailHwVFile,    "z:\\Resource\\DevMan\\DevDetail_HwV.txt" );
-
-const TInt KNSmlDevDetailMaxDataSize = 2048;
-
-// ---------------------------------------------------------------------------
-// CNSmlDmDevDetailAdapter::GetDevDetailDataL( )
-// ---------------------------------------------------------------------------
-void CNSmlDmDevDetailAdapter::GetDevDetailDataL( 
-                                CBufBase& aObject, 
-                                TNSmlDevDetailData aElement ) const
-    {
-    _DBG_FILE("CNSmlDmDevDetailAdapter::GetDevDetailDataL(): begin (WINSCW)");
-    
-    // Select file according to aElement
-    HBufC* name = NULL;
-    
-    switch( aElement )
-        {
-        case ESwVersion:
-            name = KNSmlDevDetailSwVFile().AllocLC();
-            break;
-        case EHwVersion:
-            name = KNSmlDevDetailHwVFile().AllocLC();
-            break;
-        default:
-            User::Panic( KNSmlDevDetailPanic, KErrArgument );
-        }
-    
-    // open file server session
-    RFs fileSession;
-    User::LeaveIfError( fileSession.Connect() );
-    CleanupClosePushL( fileSession );
-    
-    // open file
-    RFile file;
-    TInt err = file.Open( fileSession, *name, EFileRead|EFileShareReadersOnly );
-    
-    // if opening file succeeded, read the contents of the file
-    if ( err == KErrNone )
-        {
-        CleanupClosePushL( file );
-        
-        // read only if data size is not too large
-        TInt fileSize = 0;
-        User::LeaveIfError( file.Size( fileSize ) );
-        if ( fileSize <= KNSmlDevDetailMaxDataSize )
-            {
-            // read data
-            HBufC8* data = HBufC8::NewLC( fileSize );
-            TPtr8 dataPtr = data->Des();
-            file.Read( dataPtr, fileSize );
-            
-            // insert data to result buffer
-            aObject.Reset();
-            aObject.InsertL( 0, *data );
-            
-            CleanupStack::PopAndDestroy( data );
-            }
-        
-        CleanupStack::PopAndDestroy( &file );
-        }
-    
-    CleanupStack::PopAndDestroy( &fileSession );
-    CleanupStack::PopAndDestroy( name );
-    
-    _DBG_FILE("CNSmlDmDevDetailAdapter::GetDevDetailDataL(): end (WINSCW)");
-    }
-
--- a/deviceupdatesui/adapters/devinfo/bld/bld.inf	Tue Jul 13 03:42:03 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-/*
-* Copyright (c) 2002 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:    build info file for DevInfo adapter
-*
-*/
-
-
-
-
-PRJ_MMPFILES
-./nsmldmdevinfoadapter.mmp
-
-
-
-
--- a/deviceupdatesui/adapters/devinfo/bld/nsmldmdevinfoadapter.mmp	Tue Jul 13 03:42:03 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,52 +0,0 @@
-/*
-* Copyright (c) 2002 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 adapters
-* 	This is part of omadmextensions.
-*
-*/
-
-
-
-
-
-#include "defaultcaps.hrh"
-#include  <platform_paths.hrh>
-
-CAPABILITY      CAP_ECOM_PLUGIN
-TARGET          nsmldmdevinfoadapter.dll
-TARGETTYPE      PLUGIN
-UID             0x10009D8D 0x101F6DE8
-VENDORID        VID_DEFAULT
-
-APP_LAYER_SYSTEMINCLUDE
-SYSTEMINCLUDE 	/epoc32/include/ecom
-SOURCEPATH      ../src
-
-USERINCLUDE     ../inc ../../inc
-USERINCLUDE     ../../devdetail/inc
-SOURCE          nsmldmdevinfoadapter.cpp
-
-START RESOURCE nsmldmdevinfoadapter.rss
-LANGUAGE_IDS
-END
-
-
-
-LIBRARY         euser.lib 
-LIBRARY         ecom.lib 
-LIBRARY         nsmldebug.lib
-LIBRARY         nsmlagentcommon.lib
-LIBRARY     	featmgr.lib
-
-SMPSAFE
--- a/deviceupdatesui/adapters/devinfo/inc/nsmldmdevinfoadapter.h	Tue Jul 13 03:42:03 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,210 +0,0 @@
-/*
-* Copyright (c) 2004 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:    DM DevInfo Adapter
-*
-*/
-
-
-
-
-
-
-#ifndef __NSMLDMDEVINFOADAPTER_H__
-#define __NSMLDMDEVINFOADAPTER_H__
-
-// INCLUDES
-#include <e32base.h>
-#include <smldmadapter.h>
-#include "nsmldmconstants.h"
-
-// MACROS
-
-// the DDF version must be changed if any changes in DDF structure 
-// ( built in DDFStructureL() function )
-_LIT8( KNSmlDMDevInfoDDFVersion, "1.0" ); 
-
-_LIT8( KNSmlDMDevInfoTextPlain, "text/plain" );
-_LIT8( KNSmlDMDevInfoNodeName, "DevInfo" );
-_LIT8( KNSmlDMDevInfoDescription, "The interior object holds all DevInfo objects" );
-
-_LIT8( KNSmlDMDevInfoManNodeName, "Man" );
-_LIT8( KNSmlDMDevInfoManDescription, "The name of the device manufacturer" );
-
-_LIT8( KNSmlDMDevInfoModNodeName, "Mod" );
-_LIT8( KNSmlDMDevInfoModDescription, "The name of the device model" );
-
-_LIT8( KNSmlDMDevInfoDevIdNodeName, "DevId" );
-_LIT8( KNSmlDMDevInfoDevIdDescription, "The unique device identifier" );
-
-_LIT8( KNSmlDMDevInfoLangNodeName, "Lang" );
-_LIT8( KNSmlDMDevInfoLangDescription, "The current language setting of the device" );
-
-_LIT8( KNSmlDMDevInfoDmVNodeName, "DmV" );
-_LIT8( KNSmlDMDevInfoDmVDescription, "The current DM client revision of the device" );
-
-_LIT8( KNSmlDMDevInfoExtNodeName, "Ext" );
-_LIT8( KNSmlDMDevInfoExtDescription, "The extendable DevInfo branch" );
-
-_LIT8( KNSmlDMDevInfoModDDFNodeName, "ModDDF" );
-_LIT8( KNSmlDMDevInfoModDDFDescription, "The checksum counted from DDF" );
-
-_LIT8( KNSmlDMDevInfoModDevDetNodeName, "ModDevDet" );
-_LIT8( KNSmlDMDevInfoModDevDetDescription, "The checksum counted from DevDetail values" );
-
-_LIT8( KNSmlDmDDFChangeUri, "DDFCHANGE" );
-
-_LIT8( KNSmlDMDevInfoSeparator, "/" );
-
-_LIT8( KNSmlDMEnglish, "en" );
-_LIT8( KNSmlDMFrench, "fr" );
-_LIT8( KNSmlDMGerman, "de" );
-_LIT8( KNSmlDMSpanish, "es" );
-_LIT8( KNSmlDMItalian, "it" );
-_LIT8( KNSmlDMSwedish, "sv" );
-_LIT8( KNSmlDMDanish, "da" );
-_LIT8( KNSmlDMNorwegian, "no" ); 
-_LIT8( KNSmlDMFinnish, "fi" );
-_LIT8( KNSmlDMPortuguese, "pt" );
-_LIT8( KNSmlDMTurkish, "tr" );
-_LIT8( KNSmlDMIcelandic, "is" );
-_LIT8( KNSmlDMRussian, "ru" );
-_LIT8( KNSmlDMHungarian, "hu" );
-_LIT8( KNSmlDMDutch, "nl" );
-_LIT8( KNSmlDMCzech, "cs" );
-_LIT8( KNSmlDMSlovak, "sk" );
-_LIT8( KNSmlDMPolish, "pl" );
-_LIT8( KNSmlDMSlovenian, "sl" );
-_LIT8( KNSmlDMChinese, "ch" );
-_LIT8( KNSmlDMJapanese, "ja" );
-_LIT8( KNSmlDMThai, "th" );
-_LIT8( KNSmlDMAfrikaans, "af" );
-_LIT8( KNSmlDMAlbanian, "sq" );
-_LIT8( KNSmlDMAmharic, "am" );
-_LIT8( KNSmlDMArabic, "ar" );
-_LIT8( KNSmlDMArmenian, "hy" );
-_LIT8( KNSmlDMTagalog, "tl" );
-_LIT8( KNSmlDMBelarussian, "be" );
-_LIT8( KNSmlDMBengali, "bn" );
-_LIT8( KNSmlDMBulgarian, "bg" );
-_LIT8( KNSmlDMBurmese, "my" );
-_LIT8( KNSmlDMCatalan, "ca" );
-_LIT8( KNSmlDMCroatian, "hr" );
-_LIT8( KNSmlDMEstonian, "et" );
-_LIT8( KNSmlDMFarsi, "fo" );
-_LIT8( KNSmlDMScotsGaelic, "gl" );
-_LIT8( KNSmlDMGeorgian, "ka" );
-_LIT8( KNSmlDMGreek, "el" );
-_LIT8( KNSmlDMGujarati, "gu" );
-_LIT8( KNSmlDMHebrew, "he" );
-_LIT8( KNSmlDMHindi, "hi" );
-_LIT8( KNSmlDMIndonesian, "id" );
-_LIT8( KNSmlDMIrish, "ga" );
-_LIT8( KNSmlDMKannada, "kn" );
-_LIT8( KNSmlDMKazakh, "kk" );
-_LIT8( KNSmlDMKorean, "ko" );
-_LIT8( KNSmlDMLao, "lo" );
-_LIT8( KNSmlDMLatvian, "lv" );
-_LIT8( KNSmlDMLithuanian, "lt" );
-_LIT8( KNSmlDMMacedonian, "mk" );
-_LIT8( KNSmlDMMalay, "ms" );
-_LIT8( KNSmlDMMalayalam, "ml" );
-_LIT8( KNSmlDMMarathi, "mr" );
-_LIT8( KNSmlDMMoldavian, "mo" );
-_LIT8( KNSmlDMMongolian, "mn" );
-_LIT8( KNSmlDMPunjabi, "pa" );
-_LIT8( KNSmlDMRomanian, "ro" );
-_LIT8( KNSmlDMSerbian, "sr" );
-_LIT8( KNSmlDMSinhalese, "si" );                
-_LIT8( KNSmlDMSomali, "so" );
-_LIT8( KNSmlDMSwahili, "sw" );
-_LIT8( KNSmlDMTamil, "ta" );
-_LIT8( KNSmlDMTelugu, "te" );
-_LIT8( KNSmlDMTibetan, "bo" );
-_LIT8( KNSmlDMTigrinya, "ti" );
-_LIT8( KNSmlDMTurkmen, "tk" );
-_LIT8( KNSmlDMUkrainian, "uk" );
-_LIT8( KNSmlDMUrdu, "ur" ); 
-_LIT8( KNSmlDMVietnamese, "vi" );
-_LIT8( KNSmlDMWelsh, "cy" );
-_LIT8( KNSmlDMZulu, "zu" );
-
-
-// CLASS DECLARATION
-class CNSmlDmDevInfoAdapter : public CSmlDmAdapter
-    {
-public: // constructors and destructor
-    static CNSmlDmDevInfoAdapter* NewL(MSmlDmCallback* aDmCallback );
-    static CNSmlDmDevInfoAdapter* NewLC(MSmlDmCallback* aDmCallback );
-
-    virtual ~CNSmlDmDevInfoAdapter();
-
-private: ///new functions
-
-    void SetLeafPropertiesL( MSmlDmDDFObject& aObject, 
-                 const TSmlDmAccessTypes& aAccessTypes, 
-                 const TDesC8& aDescription ) const;
-    CNSmlDmDevInfoAdapter(TAny* aEcomArguments);
-    CSmlDmAdapter::TError FetchLeafObjectL( const TDesC8& aURI, CBufBase& aObject );
-    
-private: // from base classes
-    // Adapter interface from CSmlDmAdapter
-    void DDFVersionL( CBufBase& aDDFVersion );
-    void DDFStructureL( MSmlDmDDFObject& aDDF );
-    void UpdateLeafObjectL( const TDesC8& aURI, const TDesC8& aLUID, 
-                const TDesC8& aObject, const TDesC8& aType, 
-                const TInt aStatusRef );
-    void DeleteObjectL( const TDesC8& aURI, const TDesC8& aLUID, TInt aStatusRef ); 
-    void FetchLeafObjectL( const TDesC8& aURI, const TDesC8& aLUID, 
-                   const TDesC8& aType, const TInt aResultsRef, 
-                   const TInt aStatusRef ); 
-    void ChildURIListL( const TDesC8& aURI, const TDesC8& aLUID, 
-                const CArrayFix<TSmlDmMappingInfo>& aPreviousURISegmentList, 
-                const TInt aResultsRef, const TInt aStatusRef );  
-    void AddNodeObjectL( const TDesC8& aURI, const TDesC8& aParentLUID, 
-                 const TInt aStatusRef );
-    
-    void UpdateLeafObjectL( const TDesC8& aURI, const TDesC8& aLUID, 
-                RWriteStream*& aStream, const TDesC8& aType, 
-                const TInt aStatusRef );
-    void FetchLeafObjectSizeL( const TDesC8& aURI, const TDesC8& aLUID, 
-                   const TDesC8& aType, const TInt aResultsRef, 
-                   const TInt aStatusRef );
-     
-    void ExecuteCommandL( const TDesC8& aURI, const TDesC8& aLUID,
-                          const TDesC8& aArgument, 
-                          const TDesC8& aType,
-                          const TInt aStatusRef );
-                                  
-    void ExecuteCommandL( const TDesC8& aURI, const TDesC8& aLUID,
-                          RWriteStream*& aStream, 
-                          const TDesC8& aType,
-                          const TInt aStatusRef );
-    
-    void CopyCommandL( const TDesC8& aTargetURI, const TDesC8& aTargetLUID,
-                       const TDesC8& aSourceURI, 
-                       const TDesC8& aSourceLUID,
-                       const TDesC8& aType, TInt aStatusRef );
-    void StartAtomicL();
-    void CommitAtomicL();
-    void RollbackAtomicL();
-    TBool StreamingSupport( TInt& aItemSize );
-    void StreamCommittedL();
-    void CompleteOutstandingCmdsL();
-    
-    
-private:
-    MSmlDmCallback* iDmCallback;
-    };
-
-#endif // __NSMLDMDEVINFOADAPTER_H__
--- a/deviceupdatesui/adapters/devinfo/src/nsmldmdevinfoadapter.cpp	Tue Jul 13 03:42:03 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,770 +0,0 @@
-/*
-* Copyright (c) 2004 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:    DM DevInfo Adapter
-*
-*/
-
-
-
-
-
-//INCLUDE FILES
-#include <implementationproxy.h> // For TImplementationProxy definition
-#include "nsmldmimpluids.h"
-#include <featmgr.h>
-
-#include "nsmldmdevinfoadapter.h"
-#include "nsmldebug.h"
-#include "nsmlphoneinfo.h"
-#include "nsmlunicodeconverter.h"
-#include "nsmlconstants.h"
-#include "nsmldmconst.h"
-#include "nsmldmdevdetailadapter.h"
-
-
-// -----------------------------------------------------------------------------
-// CNSmlDmDevInfoAdapter* CNSmlDmDevInfoAdapter::NewL( )
-// -----------------------------------------------------------------------------
-CNSmlDmDevInfoAdapter* CNSmlDmDevInfoAdapter::NewL(MSmlDmCallback* aDmCallback )
-    {
-    _DBG_FILE("CNSmlDmDevInfoAdapter::NewL(): begin");
-    CNSmlDmDevInfoAdapter* self = NewLC( aDmCallback );
-    CleanupStack::Pop();
-    _DBG_FILE("CNSmlDmDevInfoAdapter::NewL(): end");
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// CNSmlDmDevInfoAdapter* CNSmlDmDevInfoAdapter::NewLC( )
-// -----------------------------------------------------------------------------
-CNSmlDmDevInfoAdapter* CNSmlDmDevInfoAdapter::NewLC(MSmlDmCallback* aDmCallback )
-    {
-    _DBG_FILE("CNSmlDmDevInfoAdapter::NewLC(): begin");
-    CNSmlDmDevInfoAdapter* self = new (ELeave) CNSmlDmDevInfoAdapter(aDmCallback);
-    CleanupStack::PushL(self);
-    self->iDmCallback = aDmCallback;
-    FeatureManager::InitializeLibL();
-    _DBG_FILE("CNSmlDmDevInfoAdapter::NewLC(): end");
-    return self;
-    }
-
-
-
-// -----------------------------------------------------------------------------
-// CNSmlDmDevInfoAdapter::~CNSmlDmDevInfoAdapter()
-// -----------------------------------------------------------------------------
-CNSmlDmDevInfoAdapter::~CNSmlDmDevInfoAdapter()
-    {
-    _DBG_FILE("CNSmlDmDevInfoAdapter::~CNSmlDmDevInfoAdapter(): begin");
-    FeatureManager::UnInitializeLib();
-    _DBG_FILE("CNSmlDmDevInfoAdapter::~CNSmlDmDevInfoAdapter(): end");
-    }
-    
-// -----------------------------------------------------------------------------
-// CNSmlDmDevInfoAdapter::CNSmlDmDevInfoAdapter()
-// -----------------------------------------------------------------------------
-
-CNSmlDmDevInfoAdapter::CNSmlDmDevInfoAdapter(TAny* aEcomArguments):CSmlDmAdapter(aEcomArguments)
-    {
-    _DBG_FILE("CNSmlDmDevInfoAdapter::CNSmlDmDevInfoAdapter(aEcomArguments): begin");
-    _DBG_FILE("CNSmlDmDevInfoAdapter::CNSmlDmDevInfoAdapter(aEcomArguments): end"); 
-    }
-
-// -----------------------------------------------------------------------------
-// CNSmlDmDevInfoAdapter::SetLeafPropertiesL()
-// -----------------------------------------------------------------------------
-void CNSmlDmDevInfoAdapter::SetLeafPropertiesL( MSmlDmDDFObject& aObject, 
-                                                const TSmlDmAccessTypes& aAccessTypes, 
-                                                const TDesC8& aDescription ) const
-    {
-    aObject.SetAccessTypesL( aAccessTypes );
-    aObject.SetScopeL( MSmlDmDDFObject::EPermanent );
-    aObject.SetDFFormatL( MSmlDmDDFObject::EChr );
-    aObject.AddDFTypeMimeTypeL( KNSmlDMDevInfoTextPlain );
-    aObject.SetDescriptionL( aDescription );
-    }
-
-
-// -----------------------------------------------------------------------------
-//  CNSmlDmDevInfoAdapter::DDFVersionL()
-// -----------------------------------------------------------------------------
-void CNSmlDmDevInfoAdapter::DDFVersionL(CBufBase& aDDFVersion)
-    {
-    _DBG_FILE("CNSmlDmDevInfoAdapter::DDFVersionL(TDes& aDDFVersion): begin");
-    aDDFVersion.InsertL(0,KNSmlDMDevInfoDDFVersion);
-    _DBG_FILE("CNSmlDmDevInfoAdapter::DDFVersionL(TDes& aDDFVersion): end");
-    }
-
-
-// -----------------------------------------------------------------------------
-//  CNSmlDmDevInfoAdapter::DDFStructureL()
-//
-// -----------------------------------------------------------------------------
-void CNSmlDmDevInfoAdapter::DDFStructureL( MSmlDmDDFObject& aDDF )
-    {
-    _DBG_FILE("CNSmlDmDevInfoAdapter::DDFStructureL(): begin");
-    
-    TSmlDmAccessTypes accessTypes;
-    accessTypes.SetGet();
-    // DevInfo
-    MSmlDmDDFObject& devInfo = aDDF.AddChildObjectL( KNSmlDMDevInfoNodeName );
-    devInfo.SetAccessTypesL( accessTypes ); 
-    devInfo.SetScopeL( MSmlDmDDFObject::EPermanent );
-    devInfo.SetDescriptionL( KNSmlDMDevInfoDescription );
-    // Man  
-    MSmlDmDDFObject& man = devInfo.AddChildObjectL(KNSmlDMDevInfoManNodeName);
-    SetLeafPropertiesL( man, accessTypes, KNSmlDMDevInfoManDescription );
-    // Mod  
-    MSmlDmDDFObject& mod = devInfo.AddChildObjectL(KNSmlDMDevInfoModNodeName );
-    SetLeafPropertiesL( mod, accessTypes, KNSmlDMDevInfoModDescription );
-    // DevId    
-    MSmlDmDDFObject& devid = devInfo.AddChildObjectL( KNSmlDMDevInfoDevIdNodeName);
-    SetLeafPropertiesL( devid, accessTypes, KNSmlDMDevInfoDevIdDescription ); 
-    // Lang 
-    MSmlDmDDFObject& lang = devInfo.AddChildObjectL(KNSmlDMDevInfoLangNodeName );
-    SetLeafPropertiesL( lang, accessTypes, KNSmlDMDevInfoLangDescription ); 
-    // DmV  
-    MSmlDmDDFObject& dmv = devInfo.AddChildObjectL(KNSmlDMDevInfoDmVNodeName);
-    SetLeafPropertiesL( dmv, accessTypes, KNSmlDMDevInfoDmVDescription );
-    // Ext
-    MSmlDmDDFObject& ext = devInfo.AddChildObjectL(KNSmlDMDevInfoExtNodeName );
-    ext.SetAccessTypesL( accessTypes );
-    ext.SetScopeL( MSmlDmDDFObject::EPermanent );
-    ext.SetDescriptionL( KNSmlDMDevInfoExtDescription );
-    // ModDDF   
-    MSmlDmDDFObject& modDDF = ext.AddChildObjectL( KNSmlDMDevInfoModDDFNodeName);
-    SetLeafPropertiesL( modDDF, accessTypes, KNSmlDMDevInfoModDDFDescription );
-    // ModDevDet    
-    MSmlDmDDFObject& modDevDet = ext.AddChildObjectL(KNSmlDMDevInfoModDevDetNodeName );
-    SetLeafPropertiesL( modDevDet, accessTypes, KNSmlDMDevInfoModDevDetDescription );
-    _DBG_FILE("CNSmlDmDevInfoAdapter::DDFStructureL(): end");
-    }
-
-// -----------------------------------------------------------------------------
-//  CNSmlDmDevInfoAdapter::UpdateLeafObjectL()
-// -----------------------------------------------------------------------------
-void CNSmlDmDevInfoAdapter::UpdateLeafObjectL( const TDesC8& /*aURI*/, 
-                                               const TDesC8& /*aLUID*/, 
-                                               const TDesC8& /*aObject*/, 
-                                               const TDesC8& /*aType*/, 
-                                               const TInt aStatusRef )
-    {
-    _DBG_FILE("CNSmlDmDevInfoAdapter::UpdateLeafObjectL(): begin");
-    _DBG_FILE("CNSmlDmDevInfoAdapter::UpdateLeafObjectL(): end");
-    iDmCallback->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
-    }
-
-
-// -----------------------------------------------------------------------------
-// CNSmlDmDevInfoAdapter::DeleteObjectL()
-// -----------------------------------------------------------------------------
-void CNSmlDmDevInfoAdapter::DeleteObjectL( const TDesC8& /*aURI*/, 
-                                           const TDesC8& /*aLUID*/, 
-                                           const TInt aStatusRef )
-    {
-    _DBG_FILE("CNSmlDmDevInfoAdapter::DeleteLeafObjectL( ): begin");
-    _DBG_FILE("CNSmlDmDevInfoAdapter::DeleteLeafObjectL( ): end");
-    iDmCallback->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
-    }
-
-
-// -----------------------------------------------------------------------------
-//  CNSmlDmDevInfoAdapter::FetchLeafObjectL( const TDesC8& aURI, const TDesC8& aLUID, 
-// const TDesC8& aType, const TInt aResultsRef, const TInt aStatusRef )
-// -----------------------------------------------------------------------------
-void CNSmlDmDevInfoAdapter::FetchLeafObjectL( const TDesC8& aURI, 
-                                              const TDesC8& /*aLUID*/, 
-                                              const TDesC8& aType, 
-                                              const TInt aResultsRef, 
-                                              const TInt aStatusRef )
-    {
-    _DBG_FILE("CNSmlDmDevInfoAdapter::FetchLeafObjectL(): begin");
-    
-    CBufBase *object = CBufFlat::NewL( 1 );
-    CleanupStack::PushL( object );
-    
-    CSmlDmAdapter::TError retValue = FetchLeafObjectL( aURI, *object );
-    
-    iDmCallback->SetStatusL( aStatusRef, retValue );
-    iDmCallback->SetResultsL( aResultsRef, *object, aType );
-    CleanupStack::PopAndDestroy(); //object
-    _DBG_FILE("CNSmlDmDevInfoAdapt+er::FetchLeafObjectL(): end");
-    }
-
-
-// -----------------------------------------------------------------------------
-//  CNSmlDmDevInfoAdapter::ChildURIListL( const TDesC& aURI, 
-// const TDesC& aParentLUID, const CArrayFix<TSmlDmMappingInfo>& aPreviousURISegmentList, 
-// const TInt aResultsRef, const TInt aStatusRef )
-// -----------------------------------------------------------------------------
-void CNSmlDmDevInfoAdapter::ChildURIListL( const TDesC8& aURI, 
-                                           const TDesC8& /*aParentLUID*/, 
-                                           const CArrayFix<TSmlDmMappingInfo>& /*aPreviousURISegmentList*/, 
-                                           const TInt aResultsRef, 
-                                           const TInt aStatusRef )
-    {
-    _DBG_FILE("CNSmlDmDevInfoAdapter::ChildURIListL(): begin");
-    CSmlDmAdapter::TError retValue = CSmlDmAdapter::EOk;
-    CBufBase* currentURISegmentList = CBufFlat::NewL( 1 );
-    CleanupStack::PushL( currentURISegmentList );
-    TInt ret = aURI.LocateReverse(KNSmlDMDevInfoSeparator()[0]);
-    if ( ret == KErrNotFound ) 
-        {
-        ret = -1;
-        }
-    TInt len = aURI.Length() - ( ret + 1 );
-    TPtrC8 segment = aURI.Right( len );
-
-    if ( segment == KNSmlDMDevInfoNodeName )
-        {
-        currentURISegmentList->InsertL( currentURISegmentList->Size(), KNSmlDMDevInfoManNodeName() );
-        currentURISegmentList->InsertL( currentURISegmentList->Size(), KNSmlDMDevInfoSeparator() );
-        currentURISegmentList->InsertL( currentURISegmentList->Size(), KNSmlDMDevInfoModNodeName() );
-        currentURISegmentList->InsertL( currentURISegmentList->Size(), KNSmlDMDevInfoSeparator() );
-        currentURISegmentList->InsertL( currentURISegmentList->Size(), KNSmlDMDevInfoDevIdNodeName() );
-        currentURISegmentList->InsertL( currentURISegmentList->Size(), KNSmlDMDevInfoSeparator() );
-        currentURISegmentList->InsertL( currentURISegmentList->Size(), KNSmlDMDevInfoLangNodeName() );
-        currentURISegmentList->InsertL( currentURISegmentList->Size(), KNSmlDMDevInfoSeparator() );
-        currentURISegmentList->InsertL( currentURISegmentList->Size(), KNSmlDMDevInfoDmVNodeName() );
-        currentURISegmentList->InsertL( currentURISegmentList->Size(), KNSmlDMDevInfoSeparator() );
-        currentURISegmentList->InsertL( currentURISegmentList->Size(), KNSmlDMDevInfoExtNodeName() );
-        }
-    else
-    if ( segment == KNSmlDMDevInfoExtNodeName )
-        {
-        currentURISegmentList->InsertL( currentURISegmentList->Size(), KNSmlDMDevInfoModDDFNodeName() );
-        currentURISegmentList->InsertL( currentURISegmentList->Size(), KNSmlDMDevInfoSeparator() );
-        currentURISegmentList->InsertL( currentURISegmentList->Size(), KNSmlDMDevInfoModDevDetNodeName() );
-        }
-    else
-        {
-        retValue = CSmlDmAdapter::EError;
-        }
-    iDmCallback->SetStatusL( aStatusRef, retValue );
-    iDmCallback->SetResultsL( aResultsRef, *currentURISegmentList, KNullDesC8 );
-    CleanupStack::PopAndDestroy(); //currentURISegmentList
-    _DBG_FILE("CNSmlDmDevInfoAdapter::ChildURIListL(): end");
-    }
-
-
-// -----------------------------------------------------------------------------
-// CNSmlDmDevInfoAdapter::AddNodeObjectL( const TDesC8& aURI, 
-// const TDesC8& aParentLUID, const TInt aStatusRef )
-// -----------------------------------------------------------------------------
-void CNSmlDmDevInfoAdapter::AddNodeObjectL( const TDesC8& /*aURI*/, 
-                                            const TDesC8& /*aParentLUID*/, 
-                                            const TInt aStatusRef )
-    {
-    _DBG_FILE("CNSmlDmDevInfoAdapter::AddNodeObjectL(): begin");
-    iDmCallback->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
-    _DBG_FILE("CNSmlDmDevInfoAdapter::AddNodeObjectL(): end");
-    }
-
-// -----------------------------------------------------------------------------
-//  CNSmlDmDevInfoAdapter::UpdateLeafObjectL()
-// -----------------------------------------------------------------------------
-void CNSmlDmDevInfoAdapter::UpdateLeafObjectL( const TDesC8& /*aURI*/, 
-                                               const TDesC8& /*aLUID*/, 
-                                               RWriteStream*& /*aStream*/, 
-                                               const TDesC8& /*aType*/, 
-                                               const TInt aStatusRef )
-    {
-    _DBG_FILE("CNSmlDmDevInfoAdapter::UpdateLeafObjectL(): stream: begin");
-    _DBG_FILE("CNSmlDmDevInfoAdapter::UpdateLeafObjectL(): stream: end");
-    iDmCallback->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
-    }
-
-
-// -----------------------------------------------------------------------------
-//  CNSmlDmDevInfoAdapter::FetchLeafObjectSizeL( const TDesC8& aURI, 
-//  const TDesC8& aLUID, const TDesC8& aType, TInt aResultsRef, TInt aStatusRef )
-// -----------------------------------------------------------------------------
-void CNSmlDmDevInfoAdapter::FetchLeafObjectSizeL( const TDesC8& aURI, 
-                                                  const TDesC8& /*aLUID*/, 
-                                                  const TDesC8& aType, 
-                                                  const TInt aResultsRef, 
-                                                  const TInt aStatusRef )
-    {
-
-    _DBG_FILE("CNSmlDmDevInfoAdapter::FetchLeafObjectSizeL(): begin");
-    
-    CBufBase *object = CBufFlat::NewL( 1 );
-    CleanupStack::PushL( object );
-    CSmlDmAdapter::TError retValue = FetchLeafObjectL( aURI, *object );
-        
-    TInt objSizeInBytes = object->Size();
-    TBuf8<2> stringObjSizeInBytes;
-    stringObjSizeInBytes.Num( objSizeInBytes );
-    object->Reset();
-    object->InsertL( 0, stringObjSizeInBytes );
-    
-    iDmCallback->SetStatusL( aStatusRef, retValue );
-    iDmCallback->SetResultsL( aResultsRef, *object, aType );
-    CleanupStack::PopAndDestroy(); //object
-    _DBG_FILE("CNSmlDmDevInfoAdapter::FetchLeafObjectSizeL(): end");
-    }
-    
-
-// -----------------------------------------------------------------------------
-//  CNSmlDmDevInfoAdapter::ExecuteCommandL( const TDesC8& aURI, 
-//  const TDesC8& aParentLUID, TDesC8& aArgument, const TDesC8& aType, TInt aStatusRef )
-// -----------------------------------------------------------------------------
-void CNSmlDmDevInfoAdapter::ExecuteCommandL( const TDesC8& /*aURI*/, const TDesC8& /*aLUID*/, const TDesC8& /*aArgument*/, const TDesC8& /*aType*/, const TInt aStatusRef )
-    {
-    _DBG_FILE("CNSmlDmDevInfoAdapter::ExecuteCommandL(): begin");
-    iDmCallback->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
-    _DBG_FILE("CNSmlDmDevInfoAdapter::ExecuteCommandL(): end");
-    }
-
-// -----------------------------------------------------------------------------
-//  CNSmlDmDevInfoAdapter::ExecuteCommandL( const TDesC8& aURI, 
-//  const TDesC8& aParentLUID, RWriteStream*& aStream, const TDesC8& aType, 
-//  TInt aStatusRef )
-// -----------------------------------------------------------------------------
-void CNSmlDmDevInfoAdapter::ExecuteCommandL( const TDesC8& /*aURI*/, 
-                                             const TDesC8& /*aParentLUID*/, 
-                                             RWriteStream*& /*aStream*/, 
-                                             const TDesC8& /*aType*/, 
-                                             const TInt aStatusRef )
-    {
-    _DBG_FILE("CNSmlDmDevInfoAdapter::ExecuteCommandL(): stream: begin");
-    iDmCallback->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
-    _DBG_FILE("CNSmlDmDevInfoAdapter::ExecuteCommandL(): stream: end");
-    }
-
-// -----------------------------------------------------------------------------
-//  CNSmlDmDevInfoAdapter::CopyCommandL( const TDesC8& aTargetURI, const TDesC8& 
-//  aSourceURI, const TDesC8& aSourceLUID, const TDesC8& /*aType*/, TInt aStatusRef )
-// -----------------------------------------------------------------------------
-void CNSmlDmDevInfoAdapter::CopyCommandL( const TDesC8& /*aTargetURI*/, const TDesC8& 
-                                          /*aTargetLUID*/, const TDesC8& /*aSourceURI*/, 
-                                          const TDesC8& /*aSourceLUID*/, 
-                                          const TDesC8& /*aType*/, TInt aStatusRef )
-    {
-    _DBG_FILE("CNSmlDmDevInfoAdapter::CopyCommandL(): begin");
-    iDmCallback->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
-    _DBG_FILE("CNSmlDmDevInfoAdapter::CopyCommandL(): end");
-    }
-
-// --------------------------------------
-//  CNSmlDmDevInfoAdapter::StartAtomicL()
-// --------------------------------------
-void CNSmlDmDevInfoAdapter::StartAtomicL()
-    {
-    _DBG_FILE("CNSmlDmDevInfoAdapter::StartAtomicL(): begin");
-    _DBG_FILE("CNSmlDmDevInfoAdapter::StartAtomicL(): end");
-    }
-    
-// ---------------------------------------
-//  CNSmlDmDevInfoAdapter::CommitAtomicL()
-// ---------------------------------------
-void CNSmlDmDevInfoAdapter::CommitAtomicL()
-    {
-    _DBG_FILE("CNSmlDmDevInfoAdapter::CommitAtomicL(): begin");
-    _DBG_FILE("CNSmlDmDevInfoAdapter::CommitAtomicL(): end");
-    }
-
-// -----------------------------------------
-//  CNSmlDmDevInfoAdapter::RollbackAtomicL()
-// -----------------------------------------
-void CNSmlDmDevInfoAdapter::RollbackAtomicL()
-    {
-    _DBG_FILE("CNSmlDmDevInfoAdapter::RollbackAtomicL(): begin");
-    _DBG_FILE("CNSmlDmDevInfoAdapter::RollbackAtomicL(): end");
-    }
-
-// -----------------------------------------------------------
-//  CNSmlDmDevInfoAdapter::StreamingSupport( TInt& aItemSize )
-// -----------------------------------------------------------  
-TBool CNSmlDmDevInfoAdapter::StreamingSupport( TInt& /*aItemSize*/ )
-    {
-    _DBG_FILE("CNSmlDmDevInfoAdapter::StreamingSupport(): begin");
-    _DBG_FILE("CNSmlDmDevInfoAdapter::StreamingSupport(): end");
-    return EFalse;
-    }
-
-// ------------------------------------------
-//  CNSmlDmDevInfoAdapter::StreamCommittedL()
-// ------------------------------------------
-void CNSmlDmDevInfoAdapter::StreamCommittedL()
-    {
-    _DBG_FILE("CNSmlDmDevInfoAdapter::StreamCommittedL(): begin");
-    _DBG_FILE("CNSmlDmDevInfoAdapter::StreamCommittedL(): end");
-    }
-
-// --------------------------------------------------
-//  CNSmlDmDevInfoAdapter::CompleteOutstandingCmdsL()
-// --------------------------------------------------   
-void CNSmlDmDevInfoAdapter::CompleteOutstandingCmdsL()
-    {
-    _DBG_FILE("CNSmlDmDevInfoAdapter::CompleteOutstandingCmdsL(): begin");
-    _DBG_FILE("CNSmlDmDevInfoAdapter::CompleteOutstandingCmdsL(): end");    
-    }
-
-// -----------------------------------------------------------------------------
-// CNSmlDmDevDetailAdapter::FetchLeafObjectL()
-// -----------------------------------------------------------------------------
-CSmlDmAdapter::TError CNSmlDmDevInfoAdapter::FetchLeafObjectL( const TDesC8& aURI, 
-                                                               CBufBase& aObject )
-    {
-    _DBG_FILE("CNSmlDmInfoAdapter::FetchLeafObjectL(): begin");
-    CSmlDmAdapter::TError retValue = CSmlDmAdapter::EOk;
-    TInt ret = aURI.LocateReverse(KNSmlDMDevInfoSeparator()[0]);
-    if ( ret == KErrNotFound ) 
-        {
-        retValue = CSmlDmAdapter::EError;
-        }
-    else
-        {
-        TInt len = aURI.Length() - (ret + 1);
-        TPtrC8 segment = aURI.Right( len );
-        if ( segment == KNSmlDMDevInfoManNodeName ||
-             segment == KNSmlDMDevInfoModNodeName ||
-             segment == KNSmlDMDevInfoDevIdNodeName )
-            {
-            CNSmlPhoneInfo* phoneInfo = CNSmlPhoneInfo::NewLC();
-            HBufC* phonedata = HBufC::NewLC( 50 );
-            TPtr phonedataPtr = phonedata->Des();  
-            if ( segment == KNSmlDMDevInfoManNodeName )
-                {
-                phoneInfo->PhoneDataL( CNSmlPhoneInfo::EPhoneManufacturer, phonedataPtr );
-                }
-            if ( segment == KNSmlDMDevInfoModNodeName )
-                {
-                phoneInfo->PhoneDataL( CNSmlPhoneInfo::EPhoneModelId, phonedataPtr );
-                }
-            if ( segment == KNSmlDMDevInfoDevIdNodeName )
-                {
-                phoneInfo->PhoneDataL( CNSmlPhoneInfo::EPhoneSerialNumber, phonedataPtr );
-                }
-            HBufC8* phonedataInUTF8 = NULL;
-            NSmlUnicodeConverter::HBufC8InUTF8LC( *phonedata, phonedataInUTF8 );
-            aObject.InsertL( 0, *phonedataInUTF8 );
-            CleanupStack::PopAndDestroy( 3 ); //phonedataInUTF8, phonedata, phoneInfo
-            }
-        else
-        if ( segment == KNSmlDMDevInfoLangNodeName )
-            { 
-            TLanguage language = User::Language();
-            TBuf8<2> langCode;
-            switch ( language )
-                {
-                case ELangEnglish: 
-                case ELangAmerican:
-                case ELangAustralian:
-                case ELangNewZealand:
-                case ELangCanadianEnglish:
-                case ELangInternationalEnglish:
-                case ELangSouthAfricanEnglish:
-                    langCode = KNSmlDMEnglish;
-                    break; 
-                case ELangFrench:
-                case ELangSwissFrench:
-                case ELangBelgianFrench:
-                case ELangInternationalFrench:
-                case ELangCanadianFrench:
-                    langCode = KNSmlDMFrench;
-                    break;
-                case ELangGerman:
-                case ELangSwissGerman:
-                case ELangAustrian:
-                    langCode = KNSmlDMGerman;
-                    break;
-                case ELangSpanish:
-                case ELangInternationalSpanish:
-                case ELangLatinAmericanSpanish:
-                    langCode = KNSmlDMSpanish;
-                    break;
-                case ELangItalian:
-                case ELangSwissItalian:
-                    langCode = KNSmlDMItalian;
-                    break;
-                case ELangSwedish:
-                case ELangFinlandSwedish:
-                    langCode = KNSmlDMSwedish;
-                    break;
-                case ELangDanish:
-                    langCode = KNSmlDMDanish;
-                    break;
-                case ELangNorwegian:
-                case ELangNorwegianNynorsk:
-                    langCode = KNSmlDMNorwegian;
-                    break;
-                case ELangFinnish:
-                    langCode = KNSmlDMFinnish;
-                    break;
-                case ELangPortuguese:
-                case ELangBrazilianPortuguese:
-                    langCode = KNSmlDMPortuguese;
-                    break;
-                case ELangTurkish:
-                case ELangCyprusTurkish:
-                    langCode = KNSmlDMTurkish;
-                    break;
-                case ELangIcelandic:
-                    langCode = KNSmlDMIcelandic;
-                    break;
-                case ELangRussian:
-                    langCode = KNSmlDMRussian;
-                    break;
-                case ELangHungarian:
-                    langCode = KNSmlDMHungarian;
-                    break;
-                case ELangDutch:
-                case ELangBelgianFlemish:
-                    langCode = KNSmlDMDutch;
-                    break;
-                case ELangCzech:
-                    langCode = KNSmlDMCzech;
-                    break;
-                case ELangSlovak:
-                    langCode = KNSmlDMSlovak;
-                    break;
-                case ELangPolish:
-                    langCode = KNSmlDMPolish;
-                    break;
-                case ELangSlovenian:
-                    langCode = KNSmlDMSlovenian;
-                    break;
-                case ELangTaiwanChinese:
-                case ELangHongKongChinese:
-                case ELangPrcChinese:
-                    langCode = KNSmlDMChinese;
-                    break;
-                case ELangJapanese:
-                    langCode = KNSmlDMJapanese;
-                    break;
-                case ELangThai:
-                    langCode = KNSmlDMThai;
-                    break;
-                case ELangAfrikaans:
-                    langCode = KNSmlDMAfrikaans;
-                    break;
-                case ELangAlbanian:
-                    langCode = KNSmlDMAlbanian;
-                    break;
-                case ELangAmharic:
-                    langCode = KNSmlDMAmharic;
-                    break;
-                case ELangArabic:
-                    langCode = KNSmlDMArabic;
-                    break;
-                case ELangArmenian:
-                    langCode = KNSmlDMArmenian;
-                    break;
-                case ELangTagalog:
-                    langCode = KNSmlDMTagalog;
-                    break;
-                case ELangBelarussian:
-                    langCode = KNSmlDMBelarussian;
-                    break;
-                case ELangBengali:
-                    langCode = KNSmlDMBengali;
-                    break;
-                case ELangBulgarian:
-                    langCode = KNSmlDMBulgarian;
-                    break;
-                case ELangBurmese:
-                    langCode = KNSmlDMBurmese;
-                    break;
-                case ELangCatalan:
-                    langCode = KNSmlDMCatalan;
-                    break;
-                case ELangCroatian:
-                    langCode = KNSmlDMCroatian;
-                    break;
-                case ELangEstonian:
-                    langCode = KNSmlDMEstonian;
-                    break;
-                case ELangFarsi:
-                    langCode = KNSmlDMFarsi;
-                    break;
-                case ELangScotsGaelic:
-                    langCode = KNSmlDMScotsGaelic;
-                    break;
-                case ELangGeorgian:
-                    langCode = KNSmlDMGeorgian;
-                    break;
-                case ELangGreek:
-                case ELangCyprusGreek:
-                    langCode = KNSmlDMGreek;
-                    break;
-                case ELangGujarati:
-                    langCode = KNSmlDMGujarati;
-                    break;
-                case ELangHebrew:
-                    langCode = KNSmlDMHebrew;
-                    break;
-                case ELangHindi:
-                    langCode = KNSmlDMHindi;
-                    break;
-                case ELangIndonesian:
-                    langCode = KNSmlDMIndonesian;
-                    break;
-                case ELangIrish:
-                    langCode = KNSmlDMIrish;
-                    break;
-                case ELangKannada:
-                    langCode = KNSmlDMKannada;
-                    break;
-                case ELangKazakh:
-                    langCode = KNSmlDMKazakh;
-                    break;
-                case ELangKorean:
-                    langCode = KNSmlDMKorean;
-                    break;
-                case ELangLao:
-                    langCode = KNSmlDMLao;
-                    break;
-                case ELangLatvian:
-                    langCode = KNSmlDMLatvian;
-                    break;
-                case ELangLithuanian:
-                    langCode = KNSmlDMLithuanian;
-                    break;
-                case ELangMacedonian:
-                    langCode = KNSmlDMMacedonian;
-                    break;
-                case ELangMalay:
-                    langCode = KNSmlDMMalay;
-                    break;
-                case ELangMalayalam:
-                    langCode = KNSmlDMMalayalam;
-                    break;
-                case ELangMarathi:
-                    langCode = KNSmlDMMarathi;
-                    break;
-                case ELangMoldavian:
-                    langCode = KNSmlDMMoldavian;
-                    break;
-                case ELangMongolian:
-                    langCode = KNSmlDMMongolian;
-                    break;
-                case ELangPunjabi:
-                    langCode = KNSmlDMPunjabi;
-                    break;
-                case ELangRomanian:
-                    langCode = KNSmlDMRomanian;
-                    break;
-                case ELangSerbian:
-                    langCode = KNSmlDMSerbian;
-                    break;
-                case ELangSinhalese:
-                    langCode = KNSmlDMSinhalese;
-                    break;
-                case ELangSomali:
-                    langCode = KNSmlDMSomali;
-                    break;
-                case ELangSwahili:
-                    langCode = KNSmlDMSwahili;
-                    break;
-                case ELangTamil:
-                    langCode = KNSmlDMTamil;
-                    break;
-                case ELangTelugu:
-                    langCode = KNSmlDMTelugu;
-                    break;
-                case ELangTibetan:
-                    langCode = KNSmlDMTibetan;
-                    break;
-                case ELangTigrinya:
-                    langCode = KNSmlDMTigrinya;
-                    break;
-                case ELangTurkmen:
-                    langCode = KNSmlDMTurkmen;
-                    break;
-                case ELangUkrainian:
-                    langCode = KNSmlDMUkrainian;
-                    break;
-                case ELangUrdu:
-                    langCode = KNSmlDMUrdu;
-                    break;
-                case ELangVietnamese:
-                    langCode = KNSmlDMVietnamese;
-                    break;
-                case ELangWelsh:
-                    langCode = KNSmlDMWelsh;
-                    break;
-                case ELangZulu:
-                    langCode = KNSmlDMZulu;
-                    break;
-                default:
-                    langCode = KNSmlDMEnglish;
-                }
-            aObject.InsertL( 0, langCode );
-            }
-        else
-        if ( segment == KNSmlDMDevInfoDmVNodeName )
-            {
-            if(!FeatureManager::FeatureSupported( KFeatureIdSyncMlDm112  ))
-                aObject.InsertL( 0, KNSmlDMDmV12 );
-            else
-            aObject.InsertL( 0, KNSmlDMDmV );
-            }
-        else
-        if ( segment == KNSmlDMDevInfoModDDFNodeName )
-            {
-
-            }
-        else
-        if ( segment == KNSmlDMDevInfoModDevDetNodeName )
-            {
-            TUid implUID;
-            implUID.iUid = KNSmlDMDevDetailAdapterImplUid;
-            
-            TAny* nPtr = NULL;
-            MSmlDmCallback& aDmNull = reinterpret_cast<MSmlDmCallback&>(nPtr);
-            CNSmlDmDevDetailAdapter* devDetAdapter = 
-                reinterpret_cast<CNSmlDmDevDetailAdapter*>(CSmlDmAdapter::NewL( implUID, aDmNull ) );
-            CleanupStack::PushL(devDetAdapter);
-            TInt checkSumDevDet = devDetAdapter->DevDetailValueCrcL();
-            TBuf8<16> stringCheckSumDevDet; 
-            stringCheckSumDevDet.Num( checkSumDevDet );
-            aObject.InsertL( 0, stringCheckSumDevDet );
-            CleanupStack::PopAndDestroy(); // devDetAdapter
-            }
-        else
-            {
-            retValue = CSmlDmAdapter::EError;
-            }
-        }
-    _DBG_FILE("CNSmlDmInfoAdapter::FetchLeafObjectL(): end");
-    return retValue;
-    }
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-#ifndef IMPLEMENTATION_PROXY_ENTRY
-#define IMPLEMENTATION_PROXY_ENTRY(aUid, aFuncPtr)  {{aUid},(aFuncPtr)}
-#endif
-
-const TImplementationProxy ImplementationTable[] = 
-    {
-        IMPLEMENTATION_PROXY_ENTRY(KNSmlDMDevInfoAdapterImplUid, CNSmlDmDevInfoAdapter::NewL)
-    };
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-EXPORT_C const TImplementationProxy* ImplementationGroupProxy( TInt& aTableCount )
-    {
-    _DBG_FILE("ImplementationGroupProxy() for CNSmlDmDevInfoAdapter: begin");
-    aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
-    _DBG_FILE("ImplementationGroupProxy() for CNSmlDmDevInfoAdapter: end");
-    return ImplementationTable;
-    }
-
-// End of file
-
--- a/deviceupdatesui/adapters/devinfo/src/nsmldmdevinfoadapter.rss	Tue Jul 13 03:42:03 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,66 +0,0 @@
-/*
-* Copyright (c) 2009 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 adapters
-* 	This is part of omadmextensions.
-*
-*/
-
-
-CHARACTER_SET UTF8
-
-/*
-* ============================================================================
-*  Name     : 101f6de8.rss
-*  Part of  : SyncMl
-*  Origin   : SyncML Phase 2 
-*  Created  : 06.03.2003
-*  Implementation notes:
-*     
-*  Version  : 0.1
-*   $Revision: 2 $, $Modtime: 10.05.05 11:06 $ by $Author: Kollasep $
-*  ---------------------------------------------------------------------------
-*  Version history:
-*  Template version: 1.02, 21.6.2000 by maparnan
-*  <ccm_history>
-*  </ccm_history>
-* ============================================================================
-*/
-
-
-
-#include <registryinfo.rh>
-#include <nsmldmconstants.h>
-
-RESOURCE REGISTRY_INFO theRegistryInfo
-  {
-  dll_uid = 0x101F6DE8; //The DLL's 3rd UID.
-  interfaces = 
-      {
-      INTERFACE_INFO
-          {
-          interface_uid = KNSmlDMInterfaceUid; // DM interface UID
-          implementations = 
-            {
-            IMPLEMENTATION_INFO
-                {
-                implementation_uid = 0x101F6DEE; // DM devinfo implementation UID
-                version_no = 1; 
-                display_name = "";
-                default_data = "";
-                opaque_data = "";
-                }
-            };
-          }
-      };
-    }
--- a/deviceupdatesui/adapters/inc/nsmldmimpluids.h	Tue Jul 13 03:42:03 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-/*
-* Copyright (c) 2002 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:    DM tree etc.
-*
-*/
-
-
-
-
-#ifndef __NSMLDMIMPLUIDS_H__
-#define __NSMLDMIMPLUIDS_H__
-
-// ------------------------------------------------------------------------------------------------
-// Includes
-// ------------------------------------------------------------------------------------------------
-#include <e32base.h>
-
-// ------------------------------------------------------------------------------------------------
-//
-// ------------------------------------------------------------------------------------------------
-
-// Implementation UIDs for DS adapters
-const TUint KNSmlDMSettingsAdapterImplUid = 0x101F6DEC;
-const TUint KNSmlDSSettingsAdapterImplUid = 0x101F6DED;
-const TUint KNSmlDMDevInfoAdapterImplUid = 0x101F6DEE;
-const TUint KNSmlDMDevDetailAdapterImplUid = 0x101F6DEF;
-const TUint KNSmlInternetAdapterImplUid = 0x101F6DE2;
-const TUint KNSmlDMEmailAdapterImplUid = 0x101F6E35;
-const TUint KNSmlDMMMSAdapterImplUid = 0x101F6E37;
-const TUint KNSmlDMFotaAdapterImplUid = 0x101F9A09;
-#endif // __CNSMLDMIMPLUIDS_H__
--- a/deviceupdatesui/adapters/syncmldm12/bld/bld.inf	Tue Jul 13 03:42:03 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-/*
-* Copyright (c) 2002 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:    build info file for SyncML DM settings adapter
-*
-*/
-
-
-
-
-PRJ_MMPFILES
-./nsmldmsettingsadapter12.mmp
-
-
-
-
--- a/deviceupdatesui/adapters/syncmldm12/bld/nsmldmsettingsadapter12.mmp	Tue Jul 13 03:42:03 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,51 +0,0 @@
-/*
-* Copyright (c) 2005 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:    DM-settings adapter
-*
-*/
-
-
-
-
-#include "defaultcaps.hrh"
-#include  <platform_paths.hrh>
-
-TARGET          nsmldmsettingsadapter12.dll
-TARGETTYPE      PLUGIN
-UID             0x10009D8D 0x10282CE7
-VENDORID        VID_DEFAULT
-CAPABILITY      CAP_ECOM_PLUGIN
-
-APP_LAYER_SYSTEMINCLUDE
-SYSTEMINCLUDE 	/epoc32/include/ecom
-
-SOURCEPATH      ../src
-USERINCLUDE     ../inc ../../inc
-
-SOURCE          NSmlDmSettingsAdapter12.cpp
-
-
-START RESOURCE 	nsmldmsettingsadapter12.rss
-END
-
-LIBRARY         euser.lib ecom.lib charconv.lib nsmldebug.lib
-LIBRARY         nsmldmiapmatcher.lib
-LIBRARY         syncmlclientapi.lib
-LIBRARY         nsmltransporthandler.lib
-LIBRARY         nsmlprivateapi.lib
-LIBRARY			featmgr.lib
-
-
-SMPSAFE
-// End of File
--- a/deviceupdatesui/adapters/syncmldm12/inc/NSmlDMSettingsAdapter12.h	Tue Jul 13 03:42:03 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1021 +0,0 @@
-/*
-* Copyright (c) 2005 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:    DM Settings adapter header file
-*
-*/
-
-
-
-
-#ifndef __NSMLDMSETTINGSADAPTER12_H__
-#define __NSMLDMSETTINGSADAPTER12_H__
-
-
-// INCLUDES
-#include <utf.h>
-#include <smldmadapter.h>
-#include <SyncMLClientDM.h>
-#include "NSmlPrivateAPI.h"
-
-// CONSTANTS
-const TInt KNSmlDMGranularity = 4;
-const TUint8 KNSmlDMColon = ':';
-const TUint8 KNSmlDMUriSeparator = '/';
-const TInt KPortMaxSize = 65535;
-const TInt KPortMinSize = 0;
-//Dynamic Node Posn Const --> DMAcc/DMIDxxx
-const TInt KDynNodePosn = 2;
-
-_LIT8( KNSmlTrueVal, "1" );
-_LIT8( KNSmlFalseVal, "0" );
-_LIT8( KNSmlHTTPAuth, 		"NSmlHTTPAuth" );
-_LIT8( KNSmlHTTPUsername,	"NSmlHTTPUsername" );
-_LIT8( KNSmlHTTPPassword, 	"NSmlHTTPPassword" );
-
-
-//DDF accepted DM-fieldnames
-_LIT8( KNSmlDdfId,				"Id" );
-_LIT8( KNSmlDdfAppId,				"AppID" );
-_LIT8( KNSmlDdfServerId,		"ServerID" );
-_LIT8( KNSmlDdfName,			"Name" );
-_LIT8( KNSmlDdfPrefConRef,			"PrefConRef" );
-_LIT8( KNSmlDdfToConRef,			"ToConRef" );
-_LIT8( KNSmlDdfConRef,			"ConRef" );
-_LIT8( KNSmlDdfAppAddr,			"AppAddr" );
-_LIT8( KNSmlDdfAddr,			"Addr" );
-_LIT8( KNSmlDdfAddrType,		"AddrType" );
-_LIT8( KNSmlDdfPort,			"Port" );
-_LIT8( KNSmlDdfPortNbr,			"PortNbr" );
-_LIT8( KNSmlDdfAuthScheme,		"AAuthPref" ); 
-_LIT8( KNSmlDdfAppAuth,		"AppAuth" );
-_LIT8( KNSmlDdfAAuthLevel,		"AAuthLevel" );
-_LIT8( KNSmlDdfAAuthType,		"AAuthType" );
-_LIT8( KNSmlDdfAAuthName,		"AAuthName" );
-_LIT8( KNSmlDdfAAuthSecret,		"AAuthSecret" );
-_LIT8( KNSmlDdfAAuthData,		"AAuthData" );
-_LIT8( KNSmlDdfExt,		"Ext" );
-_LIT8( KNSmlDdfServerPW,		"ServerPW" );
-_LIT8( KNSmlDdfServerNonce,		"ServerNonce" );
-_LIT8( KNSmlDdfClientUserName,	"UserName" );
-_LIT8( KNSmlDdfClientPW,		"ClientPW" );
-_LIT8( KNSmlDdfClientNonce,		"ClientNonce" );
-_LIT8( KNSmlDdfLocked,		"ProfileLock" );
-
-
-
-_LIT( KNSmlDdfMConRef,			"MConRef" );
-
-//Constant strings 
-
-
-_LIT8( KNSmlDdfAppIdValue,				"w7" );
-
-
-//DDF DM-field descriptions
-_LIT8( KNSmlDdfAppIdDescription,				"AppID of DMSettings " );
-_LIT8( KNSmlDdfAddrDescription,				"Host address of the SyncML server, IP or URL" );
-_LIT8( KNSmlDdfAddrTypeDescription,			"The type of address specified in the Addr node" );
-_LIT8( KNSmlDdfPortNbrDescription,			"SyncML Server port" );
-_LIT8( KNSmlDdfAuthSchemeDescription,		"Scheme of authentication" );
-_LIT8( KNSmlDdfServerIdDescription,			"The ServerId value for this server" );
-_LIT8( KNSmlDdfNameDescription,				"Displayable name for the SyncML setings" );
-_LIT8( KNSmlDdfConRefDescription,			"Logical reference to a connectivity node" );
-_LIT8( KNSmlDdfAuthLevelDescription ,       "AuthLevel of the AppAuth node " );
-_LIT8( KNSmlDdfAuthNameDescription ,       "AuthName of the AppAuth node " );
-_LIT8( KNSmlDdfAuthSecretDescription ,       "AuthSecret of the AppAuth node " );
-_LIT8( KNSmlDdfAuthDataDescription ,       "AuthData of the AppAuth node " );
-_LIT( KNSmlDdfMConRefDescription,			"Parent to Multiple Connection Reference objects" );
-
-
-//Default data values
-_LIT( KNSmlDefName,				"DMAdapterIns" );
-_LIT8( KNSmlDefDMAcc,			"DMAcc" );
-_LIT8( KNSmlDMStart,			"DMAcc/DMId" );
-_LIT( KNSmlDefDMIAP,			"AP" );
-_LIT8( KNSmlDMUriDotSlash,      "./");
-_LIT8( KNSmlDMNullDesc8,        "");
-_LIT8(KNSmlIAPId,               "NSmlIapId");
-
-_LIT8(KNSmlAddrtype,               "URI");
-
-
-// AuthPref text values
-_LIT8( KNSmlDMAuthPrefNoAuth,"syncml:auth-none");
-_LIT8( KNSmlDMAuthPrefBasic, "syncml:auth-basic");
-_LIT8( KNSmlDMAuthPrefMD5,	 "syncml:auth-md5");
-_LIT8( KNSmlDMAuthPrefTransport,	 "transport");
-
-_LIT8( KNSmlDMAuthTypeBasic, "BASIC");
-_LIT8( KNSmlDMAuthTypeMD5,	 "DIGEST");
-_LIT8( KNSmlDMAuthTypeTransport,	 "TRANSPORT");
-_LIT8( KNSmlDMSettingsHTTP,  "http://" );
-_LIT8( KNSmlDMSettingsHTTPS, "https://" );
-
-_LIT8( KIAPid, "IAPid" );
-_LIT8( KSegmDMAcc,"AppID/ServerID/Name/PrefConRef/AppAddr/AAuthPref/AppAuth/Ext");
-_LIT8( KSegmDMAccAppAddr,"Addr/AddrType/Port");
-_LIT8( KSegmDMAccPortRT,"Port001");
-_LIT8( KSegmDMAccport,"PortNbr");
-_LIT8( KSegmDMAccAppAuth,"AAuthLevel/AAuthType/AAuthName/AAuthSecret/AAuthData");
-_LIT8( KSegmDMAccLocked,"ProfileLock");
-_LIT8( KSmlDmSlash, "/");
-_LIT8( KVersion,"1.1" );
-_LIT8( KMimeType, "text/plain" );
-_LIT8( KSyncMLText, "SyncML" );
-_LIT8( KNSmlDMadapterDesc, "DM-Settings DDF description" );
-_LIT8( KNSmlDMadapterTitle,"DM-Settings title" );
-
-_LIT8( KDmAccMatch, "DMAcc/*" );
-_LIT8( KDmAccMatch3, "DMAcc/*/*" );
-
-_LIT8( KDmAccMatch2, "DMAcc" );
-_LIT8 (KDmAccToConRefMatch, "DMAcc/*/ToConRef");
-_LIT8 (KDmAccToConRefId, "ConRef001");
-_LIT8 (KDmAccToConRefFullMatch, "DMAcc/*/ToConRef/ConRef001");
-_LIT8 (KDmAccAppAddrMatch, "DMAcc/*/AppAddr");
-_LIT8 (KDmAccAppAddrFullMatch, "DMAcc/*/AppAddr/*");
-_LIT8 (KDmAccPortMatch, "DMAcc/*/AppAddr/*/Port");
-_LIT8 (KDmAccExtMatch, "DMAcc/*/Ext");
-//_LIT8 (KDmAccExtFullMatch, "DMAcc/*/Ext/*");
-_LIT8 (KDmAccPortFullMatch, "DMAcc/*/AppAddr/*/Port/Port001");
-_LIT8 (KDmAccAppAuthMatch, "DMAcc/*/AppAuth");
-_LIT8 (KDmAccAppAuthFullMatch, "DMAcc/*/AppAuth/*");
-_LIT8 (KDmAccAppAuthSrvMatch, "DMAcc/*/AppAuth/AppAuthSrv");
-_LIT8 (KDmAccAppAuthCliMatch, "DMAcc/*/AppAuth/AppAuthCli");
-_LIT8 (KDmAccAppAuthObexMatch, "DMAcc/*/AppAuth/AppAuthObex");
-_LIT8 (KDmAccAppAuthHttpMatch, "DMAcc/*/AppAuth/AppAuthHttp");
-_LIT8 (KDmAccAppAuthTransMatch, "DMAcc/*/AppAuth/AppAuthTransport");
-
-
-
-//_LIT8 (KDmAccAppAuthNodes, "AppAuthSrv/AppAuthCli/AppAuthObex/AppAuthHttp");
-_LIT8 (KDmAccAppAuthNodes, "AppAuthSrv/AppAuthCli/AppAuthTransport");
-_LIT8 (KDmAccAppAuthDyn1, "AppAuthSrv"); // serv
-_LIT8 (KDmAccAppAuthDyn2, "AppAuthCli"); //client
-_LIT8 (KDmAccAppAuthDyn3, "AppAuthObex"); //obex
-_LIT8 (KDmAccAppAuthDyn4, "AppAuthHttp");
-
-_LIT8 (KDmAccAppAuthTransport, "AppAuthTransport");
-
-_LIT8 (KDmAccAppAuthDyn1LUid, "SRVCRED");
-_LIT8 (KDmAccAppAuthDyn2LUid, "CLCRED");
-_LIT8 (KDmAccAppAuthDyn3LUid, "OBEX");
-_LIT8 (KDmAccAppAuthDyn4LUid, "HTTP");
-
-_LIT8 (KDmAccAppAuthLevelSrv, "SRVCRED");
-_LIT8 (KDmAccAppAuthLevelCli, "CLCRED");
-_LIT8 (KDmAccAppAuthLevelObx, "OBEX");
-_LIT8 (KDmAccAppAuthLevelHttp, "HTTP");
-_LIT8(KDmProfileLocked, "Locked");
-_LIT8(KDmProfileUnLocked, "Unlocked");
-const TInt KHttpUsed  = 1;
-const TInt KHttpNotUsed  = 0;
-
-
-// temporary
-
-_LIT8 (KDmAccAppAddrId, "Addr001");
-
-// NOTE: this enum must match with property array described in 
-// SyncML_Sync_Agent_Client_API_Specification.doc.
-enum TNSmlSyncTransportProperties
-	{
-	EPropertyIntenetAccessPoint = 0,
-	EPropertyHttpUsed = 5,
-	EPropertyHttpUserName = 6,
-	EPropertyHttpPassword = 7
-	};
-
-
-// DATA TYPES
-enum TNSmlDMFieldType
-	{
-	EStr,
-	EInt,
-	EBin,
-	EWrong
-	};
-
-enum TNSmlDMLeafType
-	{
-	EDMUpdate,
-	EDMDelete,
-	EDMUnset
-	};
-
-enum TNSmlDMProfileData
-	{
-	EProfileId,
-	EProfileName,
-	EProfileIAPId,
-	EProfileMediumType,
-	EProfileDMServerUsername,
-	EProfileDMServerPassword,
-	EServerNonce,
-	ESharedSecret,
-	EClientNonce,
-	EProfileURL,
-	EProfilePort,
-	EServerId,
-	EAuthenticationRequired,
-	ESyncAccepted,
-	EProfileAddrType,
-	EPRofileServerCred,
-	EPRofileClientCred,
-	EProfileHttpUsername,
-	EProfileHttpPassword,
-	EProfileAAuthType,
-	EProfileTransport,
-	EProfileObexUsername,
-	EProfileObexPassword,
-	ETransportAuthName,
-	EProfileTransportPassword,
-	EProfileTransportAuthData,
-	EProfileLock
-	};
-
-enum TAuthenticationType
-	{
-	ENoAuth,    //"syncml:auth-none"
-	EBasic,     //"syncml:auth-basic"
-	EMD5        //"syncml:auth-md5"
-	};
-
-enum TNSmlDMMediumType
-	{
-	ENone,
-    EHttp,
-	EWsp,
-    EObex
-	};
-
-struct TNSmlDMLeafElement
-	{
-	HBufC8 *iUri;
-	HBufC8 *iData;
-	TInt iStatusRef;
-	HBufC8* iLuid;
-	};
-
-struct TNSmlDMBufferElement
-	{
-	CArrayFixFlat<TNSmlDMLeafElement> *iLeafBuf;
-	HBufC8* iMappingName; //Holds the Dyn.Node URI       
-	TBool iExecuted; //Node updated to dB or not       
-	TInt iDMBuffStatusref; //Statusref for callback       
-	TBool iAddr;
-	TBool iServerId; //Bools for Mandatory fields       
-	TBool iUName;
-	TBool iServerName;
-	};
-
-// CLASS DECLARATION
-/**
-*  CNSmlDMSettingsAdapter12 class 
-*  Contains the whole implementation of the DM settings adapter.
-*
-*  @lib nsmldmsettingsadapter.dll
-*  @since Series 60 Series60_3.0
-*/
-class CNSmlDMSettingsAdapter12 : public CSmlDmAdapter
-	{
-    public: // Constructors and destructor
-        
-        /**
-        * Two-phased constructor.
-        */
-	    static CNSmlDMSettingsAdapter12* NewL(MSmlDmCallback* aDmCallback );
-	    static CNSmlDMSettingsAdapter12* NewLC(MSmlDmCallback* aDmCallback );
-
-	    void ConstructL();
-
-        /**
-        * Destructor.
-        */
-	    virtual ~CNSmlDMSettingsAdapter12();
-
-    public: // Functions from base classes
-
-	    /**
-        * From      CSmlDmAdapter   DDFVersionL returns current version of the DDF.
-        * @since    Series60_3.0
-        * @param    aVersion        DDF version of the adapter.
-        * @return   none
-        */
-	    void DDFVersionL( CBufBase& aVersion );
-
-        /**
-        * From      CSmlDmAdapter   DDFStructureL for filling the DDF structure of the adapter.
-        * @since    Series60_3.0
-        * @param    aDDF            Reference to root object.
-        * @return   none
-        */
-	    void DDFStructureL( MSmlDmDDFObject& aDDF );
-
-        /**
-        * From      CSmlDmAdapter   UpdateLeafObjectL creates new leaf objects, or replaces 
-        *                           data in existing leaf objects.
-        * @since    Series60_3.0
-        * @param    aURI            URI of the object
-        * @param    aLUID           LUID of the object
-        * @param    aObject         Data of the object
-        * @param    aType           MIME type of the object
-        * @param    aStatusRef      Reference to correct command
-        * @return   none
-        */
-	    void UpdateLeafObjectL( const TDesC8& aURI, const TDesC8& aLUID, 
-                            const TDesC8& aObject, const TDesC8& aType, 
-                            TInt aStatusRef );
-        
-        /**
-        * From      CSmlDmAdapter   DeleteObjectL deletes an object and its child objects.
-        * @since    Series60_3.0
-        * @param    aURI            URI of the object
-        * @param    aLUID           LUID of the object
-        * @param    aStatusRef      Reference to correct command
-        * @return   none
-        */
-	    void DeleteObjectL( const TDesC8& aURI, const TDesC8& aLUID, 
-                        const TInt aStatusRef );
-        
-        /**
-        * From      CSmlDmAdapter   FetchLeafObjectL fetches data of a leaf object.
-        * @since    Series60_3.0
-        * @param    aURI            URI of the object
-        * @param    aLUID           LUID of the object
-        * @param    aType           MIME type of the object
-        * @param    aResultsRef    	Reference to correct results
-        * @param    aStatusRef      Reference to correct command
-        * @return   none
-        */
-	    void FetchLeafObjectL(  const TDesC8& aURI, 
-                            const TDesC8& aLUID, 
-                            const TDesC8& aType, 
-                            const TInt aResultsRef, 
-                            const TInt aStatusRef ); 
-        /**
-        * From      CSmlDmAdapter   ChildURIListL fetches URI list.
-        * @since    Series60_3.0
-        * @param    aURI                    URI of the object
-        * @param    aLUID                   LUID of the object
-        * @param    aPreviousURISegmentList URI list with mapping LUID information
-        * @param    aResultsRef    	        Reference to correct results
-        * @param    aStatusRef              Reference to correct command
-        * @return   none
-        */
-	    void ChildURIListL( const TDesC8& aURI, const TDesC8& aLUID, 
-                        const CArrayFix<TSmlDmMappingInfo>& aPreviousURISegmentList, 
-                        const TInt aResultsRef, const TInt aStatusRef );
-        
-        /**
-        * From      CSmlDmAdapter   AddNodeObjectL adds node object.
-        * @since    Series60_3.0
-        * @param    aURI            URI of the object
-        * @param    aParentLUID     LUID of the parent object
-        * @param    aStatusRef      Reference to correct command
-        * @return   none
-        */
-	    void AddNodeObjectL( const TDesC8& aURI, const TDesC8& aParentLUID, 
-                            const TInt aStatusRef );
-
-        /**
-        * From      CSmlDmAdapter   UpdateLeafObjectL creates new leaf objects, or replaces 
-        *                           data in existing leaf objects.
-        * @since    Series60_3.0
-        * @param    aURI            URI of the object
-        * @param    aLUID           LUID of the object
-        * @param    aStream         Data of the object
-        * @param    aType           MIME type of the object
-        * @param    aStatusRef      Reference to correct command
-        * @return   none
-        */
-        void UpdateLeafObjectL( const TDesC8& aURI, const TDesC8& aLUID, 
-                            RWriteStream*& aStream, const TDesC8& aType, 
-                            const TInt aStatusRef );
-        
-        /**
-        * From      CSmlDmAdapter   FetchLeafObjectSizeL fetches the size of a leaf object.
-        * @since    Series60_3.0
-        * @param    aURI            URI of the object
-        * @param    aLUID           LUID of the object
-        * @param    aType           MIME type of the object
-        * @param    aResultsRef    	Reference to correct results
-        * @param    aStatusRef      Reference to correct command
-        * @return   none
-        */
-	    void FetchLeafObjectSizeL( const TDesC8& aURI, const TDesC8& aLUID, 
-                                const TDesC8& aType, const TInt aResultsRef, 
-                                const TInt aStatusRef );
-
-        /**
-        * From      CSmlDmAdapter   The function implements execute command.
-        * @since    Series60_3.0
-        * @param    aURI            URI of the object
-        * @param    aLUID           LUID of the object
-        * @param    aArgument       Argument for the command
-        * @param    aType       	MIME type of the object
-        * @param    aStatusRef      Reference to correct command
-        * @return   none
-        */
-	    void ExecuteCommandL( const TDesC8& aURI, const TDesC8& aLUID, 
-                            const TDesC8& aArgument, const TDesC8& aType, 
-                            const TInt aStatusRef );
-
-        /**
-        * From      CSmlDmAdapter   The function implements execute command.
-        * @since    Series60_3.0
-        * @param    aURI            URI of the object
-        * @param    aLUID           LUID of the object
-        * @param    aStream         Argument for the command
-        * @param    aType       	MIME type of the object
-        * @param    aStatusRef      Reference to correct command
-        * @return   none
-        */
-	    void ExecuteCommandL( const TDesC8& aURI, const TDesC8& aLUID, 
-                            RWriteStream*& aStream, const TDesC8& aType, 
-                            const TInt aStatusRef );
-        
-        /**
-        * From      CSmlDmAdapter   The function implements execute command.
-        * @since    Series60_3.0
-        * @param    aTargetURI      Target URI for the command
-        * @param    aTargetLUID     LUID of the target object
-        * @param    aSourceURI      Source URI for the command
-        * @param    aSourceLUID    	LUID of the source object
-        * @param    aType           MIME type of the object
-        * @param    aStatusRef      Reference to correct command
-        * @return   none
-        */
-	    void CopyCommandL( const TDesC8& aTargetURI, const TDesC8& aTargetLUID, 
-                        const TDesC8& aSourceURI, const TDesC8& aSourceLUID, 
-                        const TDesC8& aType, TInt aStatusRef );
-	
-        /**
-        * From      CSmlDmAdapter   The function indicates start of Atomic command.
-        * @since    Series60_3.0
-        * @param    none
-        * @return   none
-        */
-        void StartAtomicL();
-
-        /**
-        * From      CSmlDmAdapter   The function indicates successful end of Atomic command.
-        * @since    Series60_3.0
-        * @param    none
-        * @return   none
-        */
-	    void CommitAtomicL();
-    
-        /**
-        * From      CSmlDmAdapter   The function indicates unsuccessful end of Atomic command.
-        * @since    Series60_3.0
-        * @param    none
-        * @return   none
-        */
-	    void RollbackAtomicL();
-
-        /**
-        * From      CSmlDmAdapter   Returns ETrue if adapter supports streaming otherwise EFalse.
-        * @since    Series60_3.0
-        * @param    aItemSize       Size limit for stream usage.
-        * @return   ETrue or EFalse
-        */
-	    TBool StreamingSupport( TInt& aItemSize );
-        
-        /**
-        * From      CSmlDmAdapter   Called when stream returned from UpdateLeafObjectL or 
-        *                           ExecuteCommandL has been written to and committed.
-        * @since    Series60_3.0
-        * @param    none
-        * @return   none
-        */
-	    void StreamCommittedL();
-
-        /**
-        * From      CSmlDmAdapter   The function tells the adapter that all the commands of the message that
-	    *                           can be passed to the adapter have now been passed.
-        * @since    Series60_3.0
-        * @param    none
-        * @return   none
-        */
-	    void CompleteOutstandingCmdsL();
-	    
-	     /**
-        * From      CSmlDmAdapter   The function to set profile lock
-        * @since    Series60_3.0
-        * @param    profileId  lockvalue
-        * @return   TInt
-        */
-	    TInt SetProfileLockL(const TInt aPID, TInt aLockValue);
-	
-    private:
-	    
-        /**
-        * C++ default constructor.
-        */
-        CNSmlDMSettingsAdapter12();
-        CNSmlDMSettingsAdapter12( TAny* aEcomArguments );
-	    
-        /**
-        * The function stores integer value to buffer and returns reference to it.
-        * @param    aObject     data to be stored to buffer.
-        * @return   reference to data buffer.
-        */
-        TDesC8& SetIntObjectLC( const TInt& aObject );
-        
-        /**
-        * The function finds out the last element of the uri.
-        * @param    aSource     Uri object that contains all elements.
-        * @return   KErrNone if successful.
-        */
-	    TInt SetField( const TDesC8& aSource );
-	    
-	    /**
-        * The function sets the uri being set ot get
-        * @param    aSource     Uri object that contains all elements.
-        * @return   KErrNone if successful.
-        */
-	    TInt SetURIInProcessL( const TDesC8& aSource );
-	    
-
-        /**
-        * The function converts data to integer and returns it.
-        * @param    aObject     Data object to be converted.
-        * @return   Integer value for an object.
-        */
-	    TInt GetIntObject( const TDesC8& aObject );
-
-        /**
-        * The function converts data to integer and returns it.
-        * @param    aObject     Data object to be converted.
-        * @return   16-bit integer value for an object.
-        */
-	    TInt GetIntObject16( const TDesC& aObject );
-
-        /**
-        * The function converts LUID to integer.
-        * @param    aLUID     LUID data to be converted.
-        * @return   Integer value for a LUID.
-        */    
-	    TInt IntLUID( const TDesC8& aLUID );
-
-        /**
-        * The function sets the IAP value acording the given URI.
-        * @param    aLUID     LUID for a profile.
-        * @param    aObject   Data object containing the URI.
-        * @return   KErrNone if successfull.
-        */    
-	    TInt  SetConRefL( const TInt aLUID, const TDesC8& aObject );
-    
-        /**
-        * The function gets the URI for profile IAP.
-        * @param    aObject   Object where the result will be stored.
-        * @return   KErrNone if successfull.
-        */    
-	    TInt GetConRefL( CBufBase& aObject );
-	
-        /**
-        * The function checks if field to be handled is valid.
-        * @param    none
-        * @return   ETrue if valid field otherwise EFalse.
-        */    
-    	TBool AcceptDMField();
-
-        /**
-        * The function checks if field type to be handled is valid.
-        * @param    none
-        * @return   enum value for a field type.
-        */ 
-	    TNSmlDMFieldType   GetDMFieldType() const;
-
-        /**
-        * The function returns enum value for a field to be handled.
-        * @param    none
-        * @return   enum value for a field to be handled.
-        */ 
-	    TNSmlDMProfileData GetDMField() ;
-
-        /**
-        * The function checks if data length is valid.
-        * @param    aProfileItem    Field / Leaf ID to be handled.
-        * @param    aSource         Data to be handled.
-        * @return   ETrue if data length is valid otherwise EFalse.
-        */ 
-	    TBool NotValidStrLenght( const TNSmlDMProfileData& aProfileItem, 
-                            const TDesC8& aSource );
-        
-        /**
-        * The function converts 16-bit data to 8-bit and returns reference to it.
-        * @param    aSource    Reference data to be converted.
-        * @return   Reference to 8-bit data buffer.
-        */ 
-	    TDesC8&  ConvertTo8LC( const TDesC& aSource );
-
-        /**
-        * The function converts 8-bit data to 16-bit and returns reference to it.
-        * @param    aSource    Reference data to be converted.
-        * @return   Reference to 16-bit data buffer.
-        */ 
-	    TDesC16& ConvertTo16LC( const TDesC8& aSource );
-
-        /**
-        * The function find out the port number from URL and stores it to aPort.
-        * @param    aRealURI    Reference data to be containing the whole URI.
-        * @param    aPort       Reference variable where port number will be stored.
-        * @return   KErrNone if successful otherwise KErrNotFound.
-        */ 
-	    TInt ParseUri( const TDesC8& aRealURI, TInt& aPort );
-
-        /**
-        * The function opens the server session and profile via client API.
-        * @param    aIntLUID    Integer value for a LUID of the profile.
-        * @param    aMode       Read or Read and Write mode for a profile data.
-        * @return   KErrNone if successful otherwise KErrNotFound.
-        */ 
-        TInt OpenSyncSessionAndProfileL( const TInt aIntLUID, TSmlOpenMode aMode );
-
-        /**
-        * The function checks if requested profile ID exits.
-        * @param    aIntLUID    Integer value for a LUID of the profile.
-        * @return   ETrue if profile exits otherwise EFalse.
-        */ 
-	    TBool FindProfileIdL( const TInt aIntLUID );
-
-        /**
-        * The function creates new DM profile.
-        * @param    aPID    Reference to variable where new profile will be stored.
-        * @return   KErrNone if successful otherwise error code.
-        */ 
-        TInt CreateNewProfileL( TInt& aPID );
-
-        /**
-        * The function stores the server URL for a profile.
-        * @param    aPID    Profile ID.
-        * @param    aObj    Reference to server URL data.
-        * @return   KErrNone if successful otherwise error code.
-        */ 
-        TInt SetProfileServerURIL( const TInt aPID, const TDesC8& aObj );
-
-        /**
-        * The function stores the display name for a profile.
-        * @param    aPID    Profile ID.
-        * @param    aObj    Reference to data.
-        * @return   KErrNone if successful otherwise error code.
-        */ 
-        TInt SetProfileDisplayNameL( const TInt aPID, const TDesC8& aObj );
-
-        /**
-        * The function stores the user name for a profile.
-        * @param    aPID    Profile ID.
-        * @param    aObj    Reference to data.
-        * @return   KErrNone if successful otherwise error code.
-        */ 
-        TInt SetProfileUserNameL( const TInt aPID, const TDesC8& aObj );
-        
-        /**
-        * The function stores the profile http user name for a profile.
-        * @param    aPID    Profile ID.
-        * @param    aObj    Reference to data.
-        * @return   KErrNone if successful otherwise error code.
-        */ 
-        TInt SetProfileHttpUserNameL( const TInt aPID, const TDesC8& aObj );
-        
-
-        /**
-        * The function stores the protocol version for a profile.
-        * @param    aPID    Profile ID.
-        * @param    aObj    Reference to data.
-        * @return   KErrNone if successful otherwise error code.
-        */ 
-        TInt SetProfileProtocolVersionL( const TInt aPID, const TDesC8& aObj );
-
-        /**
-        * The function stores the ServerId value for a profile.
-        * @param    aPID    Profile ID.
-        * @param    aObj    Reference to data.
-        * @return   KErrNone if successful otherwise error code.
-        */ 
-        TInt SetProfileServerIdL( const TInt aPID, const TDesC8& aObj );
-
-        /**
-        * The function stores the Server password for a profile.
-        * @param    aPID    Profile ID.
-        * @param    aObj    Reference to data.
-        * @return   KErrNone if successful otherwise error code.
-        */ 
-        TInt SetProfileServerPasswordL( const TInt aPID, const TDesC8& aObj );
-        
-        /**
-        * The function stores the network/http password for a profile.
-        * @param    aPID    Profile ID.
-        * @param    aObj    Reference to data.
-        * @return   KErrNone if successful otherwise error code.
-        */ 
-        TInt SetProfileHttpPasswordL( const TInt aPID, const TDesC8& aObj );
-        
-
-        /**
-        * The function stores the password value for a profile.
-        * @param    aPID    Profile ID.
-        * @param    aObj    Reference to data.
-        * @return   KErrNone if successful otherwise error code.
-        */ 
-        TInt SetProfilePasswordL( const TInt aPID, const TDesC8& aObj );
-
-        /**
-        * The function stores the IAP id value for a profile.
-        * @param    aLUID   Profile ID.
-        * @param    aIAPid  Reference to data.
-        * @return   KErrNone if successful otherwise error code.
-        */ 
-        TInt SetProfileConnectionPropertyL( const TInt aLUID, const TInt aIAPid );
-
-        /**
-        * The function deleted the profile data.
-        * @param    aPID    Profile ID.
-        * @return   KErrNone if successful otherwise error code.
-        */ 
-        TInt DeleteProfileL( const TInt aPID );
-        
-        /**
-        * The function to tell whether the profile is locked.
-        * @param    aPID   
-        * @return   1 if locked otherwise 0
-        */ 
-        TBool IsProfileLockedL(const TInt aPID);
-        
-        /**
-        * The function gets the profile data acoeding to aDMField.
-        * @param    aLUID       Profile ID.
-        * @param    aDMField    Data field ID to be handled.
-        * @param    aObject     Reference where fetched data to be stored.
-        * @return   KErrNone if successful otherwise error code.
-        */ 
-        TInt GetObjectL( TInt aLUID, TNSmlDMProfileData aDMField, 
-                        CBufBase& aObject );
-
-        /**
-        * The function adds port number to address URL.
-        * @param    aLUID       Profile ID.
-        * @param    aPort       Reference to port number data.
-        * @return   KErrNone if successful otherwise error code.
-        */ 
-        TInt SetProfileConnectionPortNrL( const TInt aLUID, const TDesC8& aPort );
-        
-        /**
-        * The function adds port number to address URL.
-        * @param    aSrvURI     Original address URI.
-        * @param    aNewURI     New URI when port number has been added or deleted.
-        * @param    aPort       Reference to port number data.
-        * @return   KErrNone if successful otherwise error code.
-        */ 
-        void SetPortNrToAddrStr( const TDesC8& aSrvURI, HBufC8* aNewURI, 
-                                const TDesC8& aPort );
-
-        /**
-        * General function which selects which leaf to be handled.
-        * @param    aLUID       Profile LUID.
-        * @param    aObject     Data to be stored.
-        * @param    aField      Leaf of field ID to be handled.
-        * @return   KErrNone if successful otherwise error code.
-        */ 
-        TInt SetDMFieldDataL( const TInt aLUID, const TDesC8& aObject, 
-                            const TNSmlDMProfileData aField );
-        /**
-        * The function fills the node info.
-        * @param    aNode           Reference to node or leaf which info to be filled.
-        * @param    aAccTypes       Access rights for a leaf / node.
-        * @param    aOccurrence     Occurance of the node / leaf.
-        * @param    aScope          Scope (dynamic / permanent) of the leaf / node.
-        * @param    aFormat         Data format of the leaf / node.
-        * @param    aDescription    Description of the node / leaf.
-        * @param    aDefaultValue   Default value for a leaf or node.
-        * @param    aMimeType       MIME type for a leaf / node.
-        * @return   none
-        */ 
-        void FillNodeInfoL( MSmlDmDDFObject& aNode, TSmlDmAccessTypes aAccTypes, 
-                        MSmlDmDDFObject::TOccurence aOccurrence, 
-                        MSmlDmDDFObject::TScope aScope, 
-                        MSmlDmDDFObject::TDFFormat aFormat, 
-                        const TDesC8& aDescription, 
-                        const TDesC8& aDefaultValue, const TDesC8& aMimeType );
-        
-        /**
-        * The function reads the authentication data via private API.
-        * @param    aLUID       LUID for a profile.
-        * @param    aField      Leaf id to be handled.
-        * @param    aObject     Reference where to store the data.
-        * @return   KErrNone if successful otherwise error code.
-        */ 
-        TInt GetDMAuthInfoL( const TInt aLUID, const TNSmlDMProfileData aField, 
-                            CBufBase& aObject );
-
-        /**
-        * The function delete's the authentication data via private API.
-        * @param    aLUID       LUID for a profile.
-        * @param    aField      Leaf id to be handled.
-        * @return   KErrNone if successful otherwise error code.
-        */ 
-        TInt DeleteDMAuthInfoL( const TInt aLUID, const TNSmlDMProfileData aField );
-        
-        /**
-        * The function set's the address type / medium type value for a profile.
-        * @param    aLUID       LUID for a profile.
-        * @param    aIntObj     Address type value.
-        * @return   KErrNone if successful otherwise error code.
-        */ 
-        TInt SetProfileAddrTypeL( const TInt aLUID, const TInt aIntObj );
-
-        /**
-        * The function gets the profile medium type value.
-        * @param    aObject     Reference where data to be stored.
-        * @return   KErrNone if successful otherwise error code.
-        */ 
-        TInt GetProfileConnectiontypeL( TInt& aMediumTYpe );
-        
-        /**
-        * The function gets the profile http user name of value.
-        * @param    aObject     Reference where data to be stored.
-        * @return   KErrNone if successful otherwise error code.
-        */ 
-        TInt GetHttpUsernameL( CBufBase& aObject );
-        
-       
-        /**
-        * The function gets the profile IAP value.
-        * @param    aIAPid     Reference where data to be stored.
-        * @return   KErrNone if successful otherwise error code.
-        */ 
-        TInt GetProfileIAPIdL( TInt& aIAPid );
-
-        /**
-        * The function gets the profile Server URL value.
-        * @param    aURL     Reference where data to be stored.
-        * @return   KErrNone if successful otherwise error code.
-        */ 
-        void GetProfileServerURLL( CBufBase& aURL );
-
-        /**
-        * The function checks the requested medium type if supported.
-        * @param    aIntObj         Medium type.
-        * @param    aMediumType     UID for medium type.
-        * @return   none
-        */         
-        void GetMediumTypeL( const TInt aIntObj, TInt& aMediumType );
-
-        /**
-        * The function gets the server id value.
-        * @param    aObject     Reference where data to be stored.
-        * @return   none
-        */       
-        void GetServerIdL( CBufBase& aObject );
-
-        /**
-        * The function gets the profile name value.
-        * @param    aObject     Reference where data to be stored.
-        * @return   none
-        */       
-        void GetProfileNameL( CBufBase& aObject );
-
-        /**
-        * The function gets the user name value.
-        * @param    aObject     Reference where data to be stored.
-        * @return   none
-        */ 
-        void GetProfileUserNameL( CBufBase& aObject );
-
-        /**
-        * The function gets the profile port number value.
-        * @param    aObject     Reference where data to be stored.
-        * @return   none
-        */ 
-        void GetProfilePortNumberL( CBufBase& aObject );
-
-        /**
-        * The function sets the profile authentication info via private API.
-        * @param    aLUID       Profile LUID.
-        * @param    aField      Leaf ID to be handled.
-        * @param    aObject     Data to be stored.
-        * @param    aStatus     Status of the function, KErrNone if successful.
-        * @return   none
-        */         
-        void SetAuthInfoL( const TInt aLUID, const TNSmlDMProfileData aField, 
-                        const TDesC8& aObject, TInt& aStatus );
-	//Buffers Node Object <>     
-	void AddNodeBufferL( const TDesC8& aURI, const TInt aStatusRef);
-
-	//Buffers Leaf Object       
-	void AddLeafBufferL( const TDesC8& aURI, const TDesC8& aObject,
-			const TInt aStatusRef);
-	// Executes Buffer       
-	void ExecuteBufferL();
-	//Extracts the ParentURI       
-	TPtrC8 ParentURI(const TDesC8& aURI);
-	// Clears the elements of the passed in LeafElement Structure
-	void ClearBuffer( CArrayFixFlat<TNSmlDMLeafElement>* aBuffer);
-	/**
-        * The function checks if requested ServerID ID exits.
-        * @param    aServerid    ServerID.
-        * @return   ETrue if ServerID exits otherwise EFalse.
-  */ 
-	TBool IsServerIDExistL( const TDesC8& aServerid );
-	
-	/**
-        * The function checks if the URI is of format ./DMAcc/DMId<num>
-        * Example ./DMAcc/DMId000 
-        * @param    aURI       aURI.
-        * @return   true/false
-  */                          
-  TBool IsDMAccUriFormatMatchPredefined(const TDesC8 & aURI);
-        
-  /**
-        * The function constructs ./DMAcc/x nodes and
-        * returns the profile ID matching the aURI.
-        * @param    aURI       aURI.
-        * @return   KErrNotFound/ProfileID
-  */  
-        
-  TInt ConstructTreeL(const TDesC8& aURI);
-  
-    /**
-        * The function extracts DMAcc/x node from aURI		        
-        * @param    aURI     DMAcc aURI.
-        * @return   DMAcc/x node.
-    */ 
-  TPtrC8 GetDynamicDMNodeUri(const TDesC8& aURI);
-
-    private:    // Data
-	
-        // Client API session class 
-        RSyncMLSession iSyncSession;
-        // Client API Device Management profile handling
-        RSyncMLDevManProfile iProfile;
-        // Callback interface for returning result or status
-	    MSmlDmCallback* iCallBack;
-	    
-	    TInt iCurrentProfile;
-	    
-        // Profile LUID
-        TInt iLUID;
-        // Parent LUID
-	    TInt iParentLUID;
-        // For handling profile medium type 
-	    TInt iObject;
-                  
-        // Buffer for URI leaf element
-	    HBufC8* iField;
-	    
-        HBufC8* iURIField;
-        TBool iNewProfile;
-        // Information about data type
-	    TNSmlDMFieldType  iFieldType;
-        // Information about leaf command
-	    TNSmlDMLeafType	  iLeafType;
-        // Status information if session allready opened
-        TBool iSyncSessionOpen;
-
-        // Buffer for storing port number
-        HBufC8* iPortNbr;
-    
-        // Private API interface for handling authebtication data
-        RNSmlPrivateAPI iPrivateApi;
-        
-        struct TPortBuffer
-            {
-            // buffered data for updating port number
-            TBufC8<5> iPortBuf;
-            TInt iPortBufLUID;
-            TInt iPortBufStatusRef;
-            };
-        RArray<TPortBuffer> iPortBuffer;
-        
-        struct TLockBuffer
-            {
-            // buffered data for profile lock
-            TInt iProfileLock;
-            TInt iProfileLockLUID;
-            TInt iProfileLockStatusRef;
-            };   
-        RArray<TLockBuffer> iProfileLockBuffer; 
-            
-	TBool iBufOn;
-	TBool iComplete;
-	TInt iExecutionIndex;
-	CArrayFixFlat<TNSmlDMBufferElement> *iBuffer;
-    };
-
-#endif // __NSMLDMSETTINGSADAPTER12_H__
-
-// End of File
-
--- a/deviceupdatesui/adapters/syncmldm12/src/NSmlDmSettingsAdapter12.cpp	Tue Jul 13 03:42:03 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,4002 +0,0 @@
-/*
-* Copyright (c) 2007 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:    DM-settings adapter
-*
-*/
-
-
-
-
-// INCLUDE FILES
-#include "NSmlDMSettingsAdapter12.h"
-#include "nsmldebug.h"
-#include "nsmlconstants.h"
-#include "nsmldmconstants.h"
-#include "nsmldmiapmatcher.h"
-#include "nsmldmauthinfo.h"
-#include <featmgr.h>
-#include <implementationproxy.h>
-#include <SyncMLClientDM.h>
-#include <SyncMLTransportProperties.h>
-#include <e32base.h>
-#include <DevManInternalCRKeys.h>
-#include <centralrepository.h>
-#ifndef __WINS__
-// This lowers the unnecessary compiler warning (armv5) to remark.
-// "Warning:  #174-D: expression has no effect..." is caused by 
-// DBG_ARGS8 macro in no-debug builds.
-#pragma diag_remark 174
-#endif
-
-const TUint KNSmlDMSettingsAdapterImplUid = 0x10282CE8;
-
-const TInt KBufSize32   = 32;
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-//  CNSmlDMSettingsAdapter12::NewL
-//  Two-phased constructor.
-// -----------------------------------------------------------------------------
-CNSmlDMSettingsAdapter12* CNSmlDMSettingsAdapter12::NewL( MSmlDmCallback* aDmCallback )
-	{
-	_DBG_FILE("CNSmlDMSettingsAdapter12::NewL(): begin");
-
-	CNSmlDMSettingsAdapter12* self = NewLC( aDmCallback );
-	CleanupStack::Pop();
-
-	_DBG_FILE("CNSmlDMSettingsAdapter12::NewL(): end");
-	return self;
-	}
-
-// -----------------------------------------------------------------------------
-//  CNSmlDMSettingsAdapter12::NewLC( )
-//  Loads the CNSmlDMSettingsAdapter12 class and pushes it to clenupstack.
-// -----------------------------------------------------------------------------
-CNSmlDMSettingsAdapter12* CNSmlDMSettingsAdapter12::NewLC( MSmlDmCallback* aDmCallback )
-	{
-	_DBG_FILE( "CNSmlDMSettingsAdapter12::NewLC(): begin" );
-	CNSmlDMSettingsAdapter12* self = new ( ELeave ) CNSmlDMSettingsAdapter12( aDmCallback );
-	CleanupStack::PushL( self );
-    self->iCallBack = aDmCallback;
-	self->ConstructL();
-	self->iLeafType = EDMUnset;
-
-	_DBG_FILE( "CNSmlDMSettingsAdapter12::NewLC(): end" );
-	return self;
-	}
-
-// -----------------------------------------------------------------------------
-//  CNSmlDMSettingsAdapter12::CNSmlDMSettingsAdapter()
-//  Default constructor.
-// -----------------------------------------------------------------------------
-CNSmlDMSettingsAdapter12::CNSmlDMSettingsAdapter12( TAny* aEcomArguments) : 
-                                                CSmlDmAdapter(aEcomArguments )
-	{
-	_DBG_FILE( "CNSmlDMSettingsAdapter12::CNSmlDMSettingsAdapter(): begin" );
-	_DBG_FILE( "CNSmlDMSettingsAdapter12::CNSmlDMSettingsAdapter(): end" );
-	}
-
-// -----------------------------------------------------------------------------
-//  CNSmlDMSettingsAdapter12::~CNSmlDMSettingsAdapter()
-//  Destructor.
-// -----------------------------------------------------------------------------
-CNSmlDMSettingsAdapter12::~CNSmlDMSettingsAdapter12()
-	{
-	_DBG_FILE( "CNSmlDMSettingsAdapter12::~CNSmlDMSettingsAdapter(): begin" );
-
-    delete iField;
-	delete iURIField;
-    // Client API Session & Profile
-    iProfile.Close();
-	iSyncSession.Close();
-    iSyncSessionOpen = EFalse;
-	// In Case the Buffer isnt cleared
-	if ( iBuffer)
-		{
-		for (TInt val =0; val<iBuffer->Count ();val++)
-			{
-			delete iBuffer->At(val).iMappingName;
-
-			ClearBuffer ( iBuffer->At(val).iLeafBuf);
-			delete iBuffer->At(val).iLeafBuf;
-			}
-
-		iBuffer->Reset ();
-		delete iBuffer;
-		}
-    delete iPortNbr;
-    iPortBuffer.Reset();
-    iPortBuffer.Close();
-    iProfileLockBuffer.Reset();
-    iProfileLockBuffer.Close();
-        
-    iPrivateApi.Close();
-    
-    iCallBack = 0; 
-    FeatureManager::UnInitializeLib();            
-	_DBG_FILE( "CNSmlDMSettingsAdapter12::~CNSmlDMSettingsAdapter(): end" );
-	}
-
-// -----------------------------------------------------------------------------
-//		CNSmlDMSettingsAdapter12::ConstructL()
-//		Second phase constructor.
-// -----------------------------------------------------------------------------
-void CNSmlDMSettingsAdapter12::ConstructL()
-	{
-	iField = HBufC8::NewL( KNSmlMaxURLLength );
-	iURIField = NULL;	
-    iSyncSessionOpen = EFalse;
-	FeatureManager::InitializeLibL();
-	// variables used for Buffering
-	iBufOn = EFalse;
-	iComplete = EFalse;
-	iExecutionIndex = -1;
-	iNewProfile = EFalse;
-	// initialising iBuffer
-	iBuffer = new (ELeave) CArrayFixFlat <TNSmlDMBufferElement> (KNSmlDMGranularity);
-    }
-
-// -----------------------------------------------------------------------------
-//  CNSmlDMSettingsAdapter12::DDFVersionL()
-//  Returns the DDF version number.
-// -----------------------------------------------------------------------------
-void CNSmlDMSettingsAdapter12::DDFVersionL( CBufBase& aVersion )
-	{
-	_DBG_FILE(
-            "CNSmlDMSettingsAdapter12::DDFVersionL(CBufBase& aDDFVersion): begin" );
-	aVersion.InsertL( 0, KVersion );
-	_DBG_FILE(
-            "CNSmlDMSettingsAdapter12::DDFVersionL(CBufBase& aDDFVersion): end" );
-	}
-
-// -----------------------------------------------------------------------------
-//  CNSmlDMSettingsAdapter12::DDFStructureL()
-//  Fills the DDF structure of the adapter.
-// -----------------------------------------------------------------------------
-void CNSmlDMSettingsAdapter12::DDFStructureL( MSmlDmDDFObject& aDDF )
-	{
-	_DBG_FILE( "CNSmlDMSettingsAdapter12::DDFStructureL(): begin" );
-      
-    //Making DMAcc as root 
-    
-	MSmlDmDDFObject* ddfRoot = &aDDF;
-	MSmlDmDDFObject& nDmDDF = ddfRoot->AddChildObjectL( KNSmlDefDMAcc );
-
-	TSmlDmAccessTypes *aclTypes = new ( ELeave ) TSmlDmAccessTypes();
-	CleanupStack::PushL( aclTypes );
-    
-    // Set Get as acceptable operations
-    aclTypes->SetGet();
-	
-	nDmDDF.SetDFTitleL( KNSmlDMadapterTitle );
-	
-    FillNodeInfoL( nDmDDF, *aclTypes, MSmlDmDDFObject::EOne, 
-                    MSmlDmDDFObject::EPermanent, MSmlDmDDFObject::ENode, 
-                    KNullDesC8, KNullDesC8, KNullDesC8 );
-    
-	aclTypes->SetAdd();
-	// Set rest acceptable operations for data itself
-	aclTypes->SetReplace();
-	aclTypes->SetDelete();
-
-	TSmlDmAccessTypes aclTypesNoGet;
-	aclTypesNoGet.SetReplace();
-	aclTypesNoGet.SetAdd();
-	aclTypesNoGet.SetDelete();
-
-	TSmlDmAccessTypes aclTypesAR;
-	aclTypesAR.SetReplace();
-	aclTypesAR.SetAdd();
-
-    TSmlDmAccessTypes aclTypesARG;
-	aclTypesARG.SetReplace();
-	aclTypesARG.SetAdd();
-    aclTypesARG.SetGet();
-
-    TSmlDmAccessTypes aclTypesG;
-    aclTypesG.SetGet();
-    
-    TSmlDmAccessTypes aclTypesAG;
-    aclTypesAG.SetGet();
-    aclTypesAG.SetAdd();
-    
-    TSmlDmAccessTypes aclTypesAGD;
-    aclTypesAGD.SetGet();
-    aclTypesAGD.SetAdd();
-    aclTypesAGD.SetDelete();
-    
-        
-	MSmlDmDDFObject& nProDDF = nDmDDF.AddChildObjectGroupL();
-    FillNodeInfoL( nProDDF, *aclTypes, MSmlDmDDFObject::EZeroOrMore, 
-                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::ENode, 
-                    KNullDesC8, KNullDesC8, KMimeType );
-
-    MSmlDmDDFObject& nAppIdDDF = nProDDF.AddChildObjectL( KNSmlDdfAppId );			// Addr
-    FillNodeInfoL( nAppIdDDF, aclTypesG, MSmlDmDDFObject::EOne, 
-                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::EChr, 
-                    KNSmlDdfAppIdDescription, KNullDesC8, KMimeType );
-
-      //PrefConRef 
-    MSmlDmDDFObject& nPrefConRefDDF = nProDDF.AddChildObjectL( KNSmlDdfPrefConRef );	// PrefConRef
-    FillNodeInfoL( nPrefConRefDDF, aclTypesARG, MSmlDmDDFObject::EOne, 
-                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::EChr, 
-                    KNSmlDdfConRefDescription, KNullDesC8, KMimeType );
-
-           
-                    
-   // App Address nodes 
-    MSmlDmDDFObject& nAppAddrDDF = nProDDF.AddChildObjectL( KNSmlDdfAppAddr );	// AppAddr
-    FillNodeInfoL( nAppAddrDDF, aclTypesG, MSmlDmDDFObject::EOne, 
-                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::ENode, 
-                    KNSmlDdfAddrDescription, KNullDesC8, KMimeType );
-   
-    MSmlDmDDFObject& rtToAppAddrRef = nAppAddrDDF.AddChildObjectGroupL();  //AppAddr/<X>
-    FillNodeInfoL(rtToAppAddrRef,aclTypesG,MSmlDmDDFObject::EOneOrMore,
-                  MSmlDmDDFObject::EDynamic,MSmlDmDDFObject::ENode,
-                  KNSmlDdfAddrDescription,KNullDesC8, KMimeType );
-
-
-    MSmlDmDDFObject& nAddrForAppAddrDDF = rtToAppAddrRef.AddChildObjectL( KNSmlDdfAddr );			// Addr
-    FillNodeInfoL( nAddrForAppAddrDDF, aclTypesARG, MSmlDmDDFObject::EOne, 
-                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::EChr, 
-                    KNSmlDdfAddrDescription, KNullDesC8, KMimeType );
-
-	MSmlDmDDFObject& nAddrTypeForAppAddrDDF = rtToAppAddrRef.AddChildObjectL( KNSmlDdfAddrType );	// AddrType
-    FillNodeInfoL( nAddrTypeForAppAddrDDF, aclTypesG, MSmlDmDDFObject::EOne, 
-                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::EChr, 
-                    KNSmlDdfAddrTypeDescription, KNullDesC8, KMimeType );
-
-	MSmlDmDDFObject& nPortForAppAddrDDF = rtToAppAddrRef.AddChildObjectL( KNSmlDdfPort );	// PortNbr
-    FillNodeInfoL( nPortForAppAddrDDF, aclTypesG, MSmlDmDDFObject::EOne, 
-                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::ENode, 
-                    KNSmlDdfPortNbrDescription, KNullDesC8, KMimeType );
-
-    //Runtime port address
-    MSmlDmDDFObject& nrtToPortDDF = nPortForAppAddrDDF.AddChildObjectGroupL();	// PortNbr
-    FillNodeInfoL( nrtToPortDDF, aclTypesG, MSmlDmDDFObject::EOneOrMore, 
-                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::ENode, 
-                    KNSmlDdfPortNbrDescription, KNullDesC8, KMimeType );
-    
-    MSmlDmDDFObject& nPortNbrToPortDDF = nrtToPortDDF.AddChildObjectL( KNSmlDdfPortNbr );	// PortNbr
-    FillNodeInfoL( nPortNbrToPortDDF, aclTypesARG, MSmlDmDDFObject::EZeroOrOne, 
-                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::EInt, 
-                    KNSmlDdfPortNbrDescription, KNullDesC8, KMimeType );
-                    
-
-    MSmlDmDDFObject& nAuthSchemeDDF = nProDDF.AddChildObjectL( KNSmlDdfAuthScheme );	// AuthPref
-    FillNodeInfoL( nAuthSchemeDDF, aclTypesARG, MSmlDmDDFObject::EOne, 
-                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::EChr, 
-                    KNSmlDdfAuthSchemeDescription, KNullDesC8, KMimeType );                     
-   //APPAUthNodes 
-   
-   MSmlDmDDFObject& nAppAuthDDF = nProDDF.AddChildObjectL( KNSmlDdfAppAuth );	// AppAuth
-    FillNodeInfoL( nAppAuthDDF, aclTypesG, MSmlDmDDFObject::EOne, 
-                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::ENode, 
-                    KNSmlDdfAuthSchemeDescription, KNullDesC8, KMimeType ); 
-                    
-   
-   MSmlDmDDFObject& nrtToAppAuthDDF = nAppAuthDDF.AddChildObjectGroupL();	// appauth/<x>
-    FillNodeInfoL( nrtToAppAuthDDF, aclTypesG, MSmlDmDDFObject::EOne, 
-                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::ENode, 
-                    KNSmlDdfAuthSchemeDescription, KNullDesC8, KMimeType ); 
-
-
-   MSmlDmDDFObject& nAauthLevelDDF = nrtToAppAuthDDF.AddChildObjectL( KNSmlDdfAAuthLevel );	// AAuthLevel
-    FillNodeInfoL( nAauthLevelDDF, aclTypesARG, MSmlDmDDFObject::EOne, 
-                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::EChr, 
-                    KNSmlDdfAuthLevelDescription, KNullDesC8, KMimeType );
-                    
-    
-   MSmlDmDDFObject& nAauthtypeDDF = nrtToAppAuthDDF.AddChildObjectL( KNSmlDdfAAuthType );	// AAuthType
-    FillNodeInfoL( nAauthtypeDDF, aclTypesG, MSmlDmDDFObject::EOne, 
-                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::EChr, 
-                    KNSmlDdfAddrTypeDescription, KNullDesC8, KMimeType );
-                    
-
-   MSmlDmDDFObject& nAauthNameDDF = nrtToAppAuthDDF.AddChildObjectL( KNSmlDdfAAuthName );	// AddrType
-    FillNodeInfoL( nAauthNameDDF, aclTypesARG, MSmlDmDDFObject::EOne, 
-                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::EChr, 
-                    KNSmlDdfAuthNameDescription, KNullDesC8, KMimeType );
-                    
-
-   MSmlDmDDFObject& nAauthSecretDDF = nrtToAppAuthDDF.AddChildObjectL( KNSmlDdfAAuthSecret );	// AddrType
-    FillNodeInfoL( nAauthSecretDDF, aclTypesAR, MSmlDmDDFObject::EOne, 
-                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::EChr, 
-                    KNSmlDdfAuthSecretDescription, KNullDesC8, KMimeType );                     
-
-    MSmlDmDDFObject& nAauthDataDDF = nrtToAppAuthDDF.AddChildObjectL( KNSmlDdfAAuthData );	// AddrType
-    FillNodeInfoL( nAauthDataDDF, aclTypesAR, MSmlDmDDFObject::EOne, 
-                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::EChr, 
-                    KNSmlDdfAuthDataDescription, KNullDesC8, KMimeType ); 
-                    
-
-	MSmlDmDDFObject& nNameDDF = nProDDF.AddChildObjectL( KNSmlDdfName );	// Name
-    FillNodeInfoL( nNameDDF, aclTypesARG, MSmlDmDDFObject::EZeroOrOne, 
-                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::EChr, 
-                    KNSmlDdfNameDescription, KNullDesC8, KMimeType );
-                    
-	
-
-	MSmlDmDDFObject& nServerIdDDF = nProDDF.AddChildObjectL( KNSmlDdfServerId );	// ServerId
-    FillNodeInfoL( nServerIdDDF, aclTypesAG, MSmlDmDDFObject::EOne, 
-                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::EChr, 
-                    KNSmlDdfServerIdDescription, KNullDesC8, KMimeType );
-
-   	MSmlDmDDFObject& nextDDF = nProDDF.AddChildObjectL( KNSmlDdfExt );	// Ext
-    FillNodeInfoL( nextDDF, aclTypesG, MSmlDmDDFObject::EOne, 
-                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::ENode, 
-                    KNSmlDdfServerIdDescription, KNullDesC8, KMimeType );
-                    
-   MSmlDmDDFObject& nlockedDDF = nextDDF.AddChildObjectL( KNSmlDdfLocked );	// locked
-    FillNodeInfoL( nlockedDDF, aclTypesARG, MSmlDmDDFObject::EOne, 
-                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::EChr, 
-                    KNSmlDdfServerIdDescription, KNullDesC8, KMimeType );                 
-
-	CleanupStack::PopAndDestroy(); //aclTypes
-	
-	_DBG_FILE("CNSmlDMSettingsAdapter12::DDFStructureL(): end");
-	}
-
-// -----------------------------------------------------------------------------
-//  CNSmlDMSettingsAdapter12::UpdateLeafObjectL
-//  Updates profile leaf object data based on URI.
-// -----------------------------------------------------------------------------
-void CNSmlDMSettingsAdapter12::UpdateLeafObjectL( const TDesC8& aURI,
-                                                const TDesC8& aLUID, 
-                                                const TDesC8& aObject, 
-                                                const TDesC8& /*aType*/, 
-                                                const TInt aStatusRef )
-	{
-	_DBG_FILE("CNSmlDMSettingsAdapter12::UpdateLeafObjectL(): begin");
-	TInt index = -1;
-	if ( !iBufOn)
-		{
-		for (TInt val = 0; val<iBuffer->Count (); val++)
-			{
-			TPtrC8 firstUri = ParentURI (aURI);
-			if ( iBuffer->At(val).iMappingName->Compare (firstUri)== 0)
-				{
-				index = iExecutionIndex = val;
-				break;
-				}
-			}
-		}
-	if ( index >= 0)
-		AddLeafBufferL (aURI, aObject, aStatusRef);
-	else
-		{
-			TInt parentLUID = GetIntObject( aLUID ); 
-			if( parentLUID < 0 )
-			{
-				if( IsDMAccUriFormatMatchPredefined(aURI) )
-    		{
-    			parentLUID = ConstructTreeL(aURI);
-    		}
-    		}
-		if( parentLUID < 0 )
-		{
-		_DBG_FILE( "CNSmlDMSettingsAdapter12::UpdateLeafObjectL( ): ENotFound end" );
-		iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
-		return;
-		}
-
-	if( parentLUID != iParentLUID )
-		{
-		if( FindProfileIdL( parentLUID ) != EFalse )
-			{
-			iParentLUID = parentLUID;
-			}
-		else
-			{
-			iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
-			return;
-			}
-		}
-	SetField( aURI );
-	SetURIInProcessL( aURI);
-	if( !AcceptDMField() )
-		{
-		_DBG_FILE( "CNSmlDMSettingsAdapter12::AddLeafObjectL(): KErr field end" );
-		iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EInvalidObject );
-		return;
-		}
-
-    //	Get Database field type 
-	TNSmlDMFieldType fType = GetDMFieldType();
-	if ( fType == EWrong )
-		{
-		_DBG_FILE( "CNSmlDMSettingsAdapter12::AddLeafObjectL(): EError end" );
-		iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
-		return;
-		}
- 	
-    TNSmlDMProfileData fData = GetDMField();
-    if( fData == ESyncAccepted )
-        {
-        _DBG_FILE( "CNSmlDMSettingsAdapter12::AddLeafObjectL(): EError end" );
-		iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
-		return;
-        }
-    if( NotValidStrLenght( fData, aObject ) )
-	    {
-		_DBG_FILE( "CNSmlDMSettingsAdapter12::AddLeafObjectL(): KErr length end" );
-		iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ETooLargeObject );
-		return;
-		}
-    //Authentication data leafs to be handled
-    if ( fData == EAuthenticationRequired || fData == EClientNonce 
-        || fData == EServerNonce )
-        {
-        //Check if replace command and replace data as defined
-        
-        TInt replaceStatus = KErrGeneral; 
-        SetAuthInfoL( iParentLUID + KMaxDataSyncID, fData, aObject, replaceStatus );
-        if ( replaceStatus == KErrNone )
-            {
-            iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
-            }
-        else if ( replaceStatus == KErrNotFound )
-            {
-            iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
-            }
-        else
-            {
-            iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
-            }
-       
-        _DBG_FILE( "CNSmlDMSettingsAdapter12::UpdateLeafObjectL():end" );
-        return;
-        }
-        
-    TInt rValue = SetDMFieldDataL( iParentLUID, aObject, fData );
-    if ( fData == EProfilePort )
-        {
-        // in case port is updated, save status ref to be used in 
-        // CompleteOutstandingCmdsL
-        if(rValue==KErrNone)
-            {
-            iPortBuffer[iPortBuffer.Count()-1].iPortBufStatusRef = aStatusRef; 
-            }
-        else if( rValue == KErrOverflow)
-        {
-        	iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ETooLargeObject );
-        }
-        else
-        {
-        	iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
-        }
-        }
-    else if ( fData == EProfileLock && iNewProfile )
-    {
-        if(rValue == KErrNone)
-         iProfileLockBuffer[iProfileLockBuffer.Count()-1].iProfileLockStatusRef = aStatusRef; 	
-        else
-         iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotAllowed);
-    }
-    else
-        {
-        if( rValue != KErrNone )
-            {
-            if( rValue == KErrNotFound )
-                {
-                iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
-                }
-            else if( rValue == KErrInUse )
-                {
-                iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EObjectInUse );
-                }
-            else if( rValue == KErrNoMemory )
-                {
-                iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENoMemory );
-                }
-            else if(rValue == KErrAccessDenied) 
-               {
-                iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotAllowed);
-
-               }
-            else if (  rValue == KErrArgument)
-             {
-             	iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EInvalidObject);
-             	
-             } 
-            else
-                {
-                iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
-                }
-            }
-        else
-            {
-            iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
-            }
-        }
-      }        
-	_DBG_FILE( "CNSmlDMSettingsAdapter12::UpdateLeafObjectL():end" );
-    return;
-	}
-
-// -----------------------------------------------------------------------------
-//  CNSmlDMSettingsAdapter12::DeleteObjectL
-//  Deletes whole profile or leaf object data acording to aURI.
-// -----------------------------------------------------------------------------
-void CNSmlDMSettingsAdapter12::DeleteObjectL( const TDesC8& aURI, 
-                                            const TDesC8& aLUID, 
-                                            const TInt aStatusRef )
-	{
-	_DBG_FILE( "CNSmlDMSettingsAdapter12::DeleteObjectL( ): begin" );
-
-	if( aURI.Find( KNSmlDdfConRef ) != KErrNotFound )
-		{	
-		_DBG_FILE( "CNSmlDMSettingsAdapter12::DeleteObjectL(): NOT ALLOWED end" );
-		iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
-		return;
-		}
-	iLUID = IntLUID( aLUID );
-	if(IsProfileLockedL(iLUID))
-	{
-	  _DBG_FILE( "CNSmlDMSettingsAdapter12::DeleteObjectL(): NOT ALLOWED end" );
-	  
-		iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotAllowed );
-		return;	
-	}
-		
-
-    //	Check which field going to be handled
-	SetField( aURI );
-	SetURIInProcessL(aURI);
-
-    //	Check if valid field
-	if( !AcceptDMField() )
-		{
-
-        // Delete whole profile if aURI called for node
-		TInt last = aURI.LocateReverse( '/' );
-		TInt pos  = aURI.Find( KNSmlDefDMAcc );
-		if( last - 5 == pos )
-			{
-
-            //	If called for node means that profile will deleted from database
-			iLUID = IntLUID( aLUID );
-			DBG_ARGS8( _S8("DeleteObjectL: URI %S LUID = %d"), &aURI, iLUID );
-
-			if( FindProfileIdL( iLUID ) == EFalse )
-				{
-				_DBG_FILE(
-                    "CNSmlDMSettingsAdapter12::DeleteObjectL( ): notfound end");
-				
-                iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
-				return;
-				}
-			else
-				{
-				TInt sRet = DeleteProfileL( iLUID + KMaxDataSyncID );
-				if ( sRet != KErrNone )
-					{
-                    if( sRet == KErrNotFound )
-                        {
-                        iCallBack->SetStatusL( aStatusRef,
-                                                CSmlDmAdapter::ENotFound );
-                        }
-                    else if( sRet == KErrInUse )
-                        {
-                        iCallBack->SetStatusL( aStatusRef,
-                                                CSmlDmAdapter::EObjectInUse );
-                        }
-                    else
-                        {
-                        iCallBack->SetStatusL( aStatusRef, 
-                                                CSmlDmAdapter::EError );
-					    }
-					return;
-					}
-				else
-					{
-					_DBG_FILE( "CNSmlDMSettingsAdapter12::DeleteObjectL( ): EOk end" );
-					iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
-					return;
-					}
-				}
-			}
-		else
-			{
-			_DBG_FILE(
-                "CNSmlDMSettingsAdapter12::DeleteObjectL( ): EInvalidObject end" );
-			iCallBack->SetStatusL( aStatusRef,CSmlDmAdapter::EInvalidObject );
-			return;
-			}
-		}//Delete whole Profile
-
-	iLUID = IntLUID( aLUID );
-	if ( iLUID != iParentLUID )
-		{
-		if( FindProfileIdL( iLUID ) == EFalse )
-			{
-			_DBG_FILE( "CNSmlDMSettingsAdapter12::DeleteObjectL( ): end" );
-			iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
-			return;
-			}
-		iParentLUID = iLUID;
-		}
-	
-	if ( iField->Compare( KNSmlDdfAuthScheme ) == 0 )
-    	{
-		DeleteDMAuthInfoL( iLUID, EAuthenticationRequired );
-        iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
-        return;
-		}
-    else if( iField->Compare( KNSmlDdfClientNonce ) == 0 )
-    	{
-		DeleteDMAuthInfoL( iLUID, EClientNonce );
-        iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
-        return;
-		}
-    else if( iField->Compare(KNSmlDdfServerNonce) == 0 )
-		{
-		DeleteDMAuthInfoL( iLUID, EServerNonce );
-        iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
-        return;
-		}
-
-    // Sets default value if not null field
-	HBufC8* dataObject = HBufC8::NewLC( 15 );
-	dataObject->Des().Format( KNullDesC8 );
-
-	_LIT8(aType,		"text/plain");
-	iLeafType = EDMDelete;
-	UpdateLeafObjectL( aURI, aLUID, *dataObject, aType, aStatusRef );
-    CleanupStack::PopAndDestroy(); //dataObject
-	iLeafType = EDMUnset;
-
-	_DBG_FILE( "CNSmlDMSettingsAdapter12::DeleteObjectL( ): end" );
-	return;
-	}
-
-// -----------------------------------------------------------------------------
-//  CNSmlDMSettingsAdapter12::FetchLeafObjectL
-//  Fetches profile leaf object data acordint to aURI.
-// -----------------------------------------------------------------------------
-void CNSmlDMSettingsAdapter12::FetchLeafObjectL( const TDesC8& aURI, 
-                                                const TDesC8& aLUID, 
-                                                const TDesC8& aType, 
-                                                const TInt aResultsRef, 
-                                                const TInt aStatusRef )
-	{
-
-	_DBG_FILE( "CNSmlDMSettingsAdapter12::FetchLeafObjectL(): begin" );
-	DBG_ARGS(_S16( "DM:Fetch aURI    - %S - %S"), &aURI, &aLUID );
-		
-	iLUID = IntLUID( aLUID );
-	if ( iLUID >= 0 )
-		{
-		if( FindProfileIdL( iLUID ) == EFalse )
-			{
-			_DBG_FILE( "CNSmlDMSettingsAdapter12::FetchLeafObjectL(): ENotFound end" );
-			iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
-			return;
-			}
-		}
-	else
-		{
-		
-		// Static node feature start
-		iLUID = -1;
-		if( IsDMAccUriFormatMatchPredefined(aURI) )
-    	{
-    		iLUID = ConstructTreeL(aURI);
-    	}
-    	
-    	if (iLUID == -1) 
-    	{
-    			_DBG_FILE( "CNSmlDMSettingsAdapter::FetchLeafObjectL(): ENotFound end" );
-				iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
-				return;
-    	}
-		// Static node feature end
-		}
-
-    //	Check which field going to be handled
-	SetField(aURI);
-	SetURIInProcessL(aURI);
-
-    //	Check if valid field
-	if( !AcceptDMField() )
-		{
-		_DBG_FILE( "CNSmlDMSettingsAdapter12::FetchLeafObjectL(): EInvalidObject end" );
-		iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EInvalidObject );
-		return;
-		}
-    /*if(iField->Compare(KNSmlDdfExt) == 0)
-        {
-        iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
-        CBufBase* extNode = CBufFlat::NewL(128);
-        CleanupStack::PushL(extNode);
-        iCallBack->SetResultsL( aResultsRef, *extNode, KNullDesC8 );
-        CleanupStack::PopAndDestroy(extNode);
-        return;
-        }*/
-         
-    //	Get Database field type 
-	TInt fType = GetDMFieldType();
-	if ( fType == EWrong )
-		{
-		_DBG_FILE( "CNSmlDMSettingsAdapter12::FetchLeafObjectL(): EError end" );
-		iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
-		return;
-		}
-
-    TNSmlDMProfileData fieldId = GetDMField();
-    if( fieldId == ESyncAccepted )
-        {
-        _DBG_FILE( "CNSmlDMSettingsAdapter12::AddLeafObjectL(): EError end" );
-		iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
-		return;
-        }
-    CBufBase *lObject = CBufFlat::NewL( 128 );
-    CleanupStack::PushL( lObject );
-    lObject->Reset();
-    
-    CSmlDmAdapter::TError status;
-
-    if ( fType == EStr || fType == EInt || fType == EBin )
-		{ 
-		//  Check for APPId and return w7 
-		TInt rValue = KErrNone;
-       /* if( iField->Compare(KNSmlDdfAppId ) ==0 )
-        {
-        	status = CSmlDmAdapter::EOk;
-        	lObject->InsertL(lObject->Size(),KNSmlDdfAppIdValue);
-        	
-        }*/
-        
-        rValue = GetObjectL( iLUID, fieldId, *lObject );
-		if( rValue != KErrNone )
-		    {
-            if( rValue == KErrNotFound )
-                {
-                status = CSmlDmAdapter::ENotFound;
-                }
-            else if( rValue == KErrInUse )
-                {
-                status = CSmlDmAdapter::EObjectInUse;
-                }
-            else if( rValue == KErrNoMemory )
-                {
-                status = CSmlDmAdapter::ENoMemory;
-                }
-            else
-                {
-                status = CSmlDmAdapter::EError;
-                }
-		    }
-        else
-            {
-            status = CSmlDmAdapter::EOk;
-            }
-		}
-	else 
-		{
-		CleanupStack::PopAndDestroy(); //lObject 
-        _DBG_FILE( "CNSmlDMSettingsAdapter12::FetchLeafObjectL(): ENotFound end" );
-		iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
-		iProfile.Close();
-        iSyncSession.Close();
-        iSyncSessionOpen = EFalse;
-		return;
-		}
-    iCallBack->SetStatusL( aStatusRef, status );
-    
-    if(status==CSmlDmAdapter::EOk)
-    	{
-		iCallBack->SetResultsL( aResultsRef, *lObject, aType );
-    	}
-  	
-    CleanupStack::PopAndDestroy(); //lObject 
-	iProfile.Close();
-    iSyncSession.Close();
-    iSyncSessionOpen = EFalse;
-	_DBG_FILE( "CNSmlDMSettingsAdapter12::FetchLeafObjectL(): end" );
-	return;
-	}
-
-// -----------------------------------------------------------------------------
-//  CSmlDmSettingsAdapter::ChildURIListL
-//  Function returns the list of profiles or leafs of the profile 
-//  acording to aURI.
-// -----------------------------------------------------------------------------
-void CNSmlDMSettingsAdapter12::ChildURIListL( const TDesC8& aURI, 
-                                            const TDesC8& aLUID, 
-                                            const CArrayFix<TSmlDmMappingInfo>& aPreviousURISegmentList, 
-                                            const TInt aResultsRef, 
-                                            const TInt aStatusRef  )
-	{
-	_DBG_FILE( "CNSmlDMSettingsAdapter12::ChildURIListL(): begin" );
-	CBufBase *currentURISegmentList = CBufFlat::NewL( 128 );
-	CleanupStack::PushL( currentURISegmentList );
- 
-	if(( aURI.Match( KDmAccMatch ) != KErrNotFound ) &&
-	 (aURI.Match( KDmAccMatch3 ) == KErrNotFound ))
-		{
-		//	Check if Profile exists
-        TInt checkLUID = GetIntObject( aLUID );
-        if( FindProfileIdL( checkLUID ) )
-        	{
-            currentURISegmentList->InsertL( currentURISegmentList->Size(), KSegmDMAcc );
-			iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
-		    iCallBack->SetResultsL( aResultsRef, *currentURISegmentList, KNullDesC8 );
-        	}
-        else
-        	{
-        		// Static node feature start
-				checkLUID = -1;
-				if( IsDMAccUriFormatMatchPredefined(aURI) )
-		    	{
-		    		checkLUID = ConstructTreeL(aURI);
-		    	}
-		    	
-		    	if (checkLUID == -1) 
-		    	{
-		    			_DBG_FILE( "CNSmlDMSettingsAdapter::childURI(): ENotFound end" );
-						iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
-						 CleanupStack::PopAndDestroy(  ); // currentURISegmentList
-        			_DBG_FILE( "CNSmlDMSettingsAdapter::ChildURIListL(): end" );
-						return;
-		    	}
-		    	else
-		    	{
-		    		currentURISegmentList->InsertL( currentURISegmentList->Size(), KSegmDMAcc );
-				iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
-			    iCallBack->SetResultsL( aResultsRef, *currentURISegmentList, KNullDesC8 );
-		    
-		    	}
-    	
-    	
-		//	iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
-		// Static node feature start end
-        	}
-
-        CleanupStack::PopAndDestroy(  ); // currentURISegmentList
-        _DBG_FILE( "CNSmlDMSettingsAdapter12::ChildURIListL(): end" );
-		return;
-		}
-    else if(( aURI.Match( KDmAccMatch2 ) != KErrNotFound ) &&
-              (aURI.Match( KDmAccMatch ) == KErrNotFound ))
-        {   
-        if( iSyncSessionOpen == EFalse )
-            {
-            iSyncSession.OpenL();
-            iSyncSessionOpen = ETrue;
-            }
-        RArray<TSmlProfileId> profileIdArray;
-        CleanupClosePushL( profileIdArray );
-        TSmlUsageType usageType = ESmlDevMan;
-        iSyncSession.ListProfilesL( profileIdArray, usageType );
-	    
-        for( TInt p = 0; p < profileIdArray.Count(); p++ )
-		    {
-		    TBool notInList = ETrue;
-		    TInt newline = 0;
-            TInt ddId = profileIdArray[p] - KMaxDataSyncID;
-            
-		    while( notInList && newline < aPreviousURISegmentList.Count() )
-			    {
-				TInt ppId = GetIntObject( aPreviousURISegmentList.At(newline).iURISegLUID );
-				if( ppId == ddId ) 
-				    {
-					notInList = EFalse;
-					break;
-					}
-				newline++;
-			    }
-		    if( notInList )
-			    {
-			    _LIT8( Kprev, "DMId" );
-			    TBuf8<7> addNAME(Kprev); // DMIdnnn , nnn = profileid
-                TInt fixedProfId = profileIdArray[p] - KMaxDataSyncID; //fit to 3 decimal
-			    addNAME.AppendNumFixedWidth( fixedProfId, EDecimal, 3 ); 
-
-    			currentURISegmentList->InsertL( currentURISegmentList->Size(), addNAME );
-	    		currentURISegmentList->InsertL( currentURISegmentList->Size(), KSmlDmSlash );
-		    	DBG_ARGS8( _S8("notInList: Id = %d Name %S"), p, &addNAME );
-
-			    // KNSmlDMStart includes start text for URISeg
-			    TBuf8<20> addURI; // SyncML/DMAcc/DMIdnnn , nnn = profileid
-			    addURI.Append( KNSmlDMStart );
-			    addURI.AppendNumFixedWidth( fixedProfId, EDecimal, 3 ); 
-
-    			TBuf8<3> addLUID;
-	    		addLUID.Num( fixedProfId );
-
-		    	// Also added to mapping
-			    iCallBack->SetMappingL( addURI, addLUID );
-    			}
-	    	else
-		    	{ // Add those in PreviousList which are on database
-			    currentURISegmentList->InsertL( currentURISegmentList->Size(),
-                                                aPreviousURISegmentList.At(newline).iURISeg );
-    			currentURISegmentList->InsertL( currentURISegmentList->Size(), KSmlDmSlash );
-//	    		DBG_ARGS8( _S8("InList: Id = %d Name %S"), newline, 
-//                          aPreviousURISegmentList.At(newline).iURISeg );
-		    	}
-		    }
-        CleanupStack::PopAndDestroy( 1 );//profileIdArray
-        }
-        
-    // AppAddr subtree
-    else if( ( aURI.Match( KDmAccAppAddrMatch ) != KErrNotFound ) && (aURI.Match( KDmAccPortMatch ) == KErrNotFound ) && (aURI.Match( KDmAccPortFullMatch ) == KErrNotFound ))
-        {
-          currentURISegmentList->InsertL( currentURISegmentList->Size(), KDmAccAppAddrId );
-        }
-    else if(( aURI.Match( KDmAccAppAddrFullMatch ) != KErrNotFound ) && (aURI.Match( KDmAccPortMatch ) == KErrNotFound ) && (aURI.Match( KDmAccPortFullMatch ) == KErrNotFound ))
-        {
-          currentURISegmentList->InsertL( currentURISegmentList->Size(), KSegmDMAccAppAddr );
-        }   
-    else if(( aURI.Match( KDmAccPortMatch ) != KErrNotFound ) && (aURI.Match( KDmAccPortFullMatch ) == KErrNotFound ))
-        {
-          currentURISegmentList->InsertL( currentURISegmentList->Size(), KSegmDMAccPortRT );
-        } 
-   else if( aURI.Match( KDmAccPortFullMatch ) != KErrNotFound )
-        {
-          currentURISegmentList->InsertL( currentURISegmentList->Size(), KSegmDMAccport );
-        } 
-          
-   else if(( aURI.Match( KDmAccAppAuthMatch ) != KErrNotFound ) && (aURI.Match( KDmAccAppAuthFullMatch ) == KErrNotFound ))
-        {
-          currentURISegmentList->InsertL( currentURISegmentList->Size(), KDmAccAppAuthNodes );
-        } 
-    else if((aURI.Match(KDmAccAppAuthSrvMatch) != KErrNotFound) || (aURI.Match(KDmAccAppAuthCliMatch) != KErrNotFound) || (aURI.Match(KDmAccAppAuthTransMatch) != KErrNotFound)) //|| (aURI.Match(KDmAccAppAuthObexMatch) != KErrNotFound) || (aURI.Match(KDmAccAppAuthHttpMatch) != KErrNotFound))
-        {
-           currentURISegmentList->InsertL( currentURISegmentList->Size(), KSegmDMAccAppAuth );
-        }
-    else if(( aURI.Match( KDmAccAppAuthFullMatch ) != KErrNotFound ) && (aURI.Find( KDmAccAppAuthNodes ) != KErrNotFound))
-        {
-          currentURISegmentList->InsertL( currentURISegmentList->Size(), KSegmDMAccAppAuth );
-        } 
-                         
-    else if( aURI.Match( KDmAccExtMatch ) != KErrNotFound )
-        {
-          currentURISegmentList->InsertL( currentURISegmentList->Size(), KSegmDMAccLocked );
-        }                      
-    else
-        {
-        iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EInvalidObject );
-        CleanupStack::PopAndDestroy( 1 ); // currentURISegmentList
-        return;
-        }
-
-	iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
-	iCallBack->SetResultsL( aResultsRef, *currentURISegmentList, KNullDesC8 );
-	CleanupStack::PopAndDestroy(); // currentURISegmentList
-	_DBG_FILE( "CNSmlDMSettingsAdapter12::ChildURIListL(): end" );
-	return;
-	}
-
-// -----------------------------------------------------------------------------
-//  CNSmlDMSettingsAdapter12::AddNodeObjectL
-//  Adds new DM-settings profile to database
-// -----------------------------------------------------------------------------
-void CNSmlDMSettingsAdapter12::AddNodeObjectL( const TDesC8& aURI, 
-                                            const TDesC8& aParentLUID, 
-                                            const TInt aStatusRef )
-	{
-	_DBG_FILE( "CNSmlDMSettingsAdapter12::AddNodeObjectL(): begin" );
-
-	if( aParentLUID.Length() > 0 )
-		{
-		iParentLUID = GetIntObject( aParentLUID );
-        if( FindProfileIdL( iParentLUID ) != EFalse )// iProfile != NULL)
-		    {
-		    _DBG_FILE( "CNSmlDMSettingsAdapter12::AddNodeObjectL(): EAlreadyExists end" );
-		    iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EAlreadyExists );
-		    return;
-		    }
-		else
-			{						
-			TInt ret = iCallBack->RemoveMappingL(KNSmlDMSettingsAdapterImplUid,
-							GetDynamicDMNodeUri( aURI ), ETrue );
-			if(ret != KErrNone)
-				{
-			    iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
-		    	return;
-				}			
-			}		
-		}
-	iNewProfile = ETrue; 
-	AddNodeBufferL (aURI, aStatusRef);
-	_DBG_FILE( "CNSmlDMSettingsAdapter12::AddNodeObjectL(): end" );
-	return;
-	}
-
-// -----------------------------------------------------------------------------
-//  CNSmlDMSettingsAdapter12::UpdateLeafObjectL()
-// -----------------------------------------------------------------------------
-void CNSmlDMSettingsAdapter12::UpdateLeafObjectL( const TDesC8&, const TDesC8&, 
-                                                RWriteStream*&, const TDesC8&, 
-                                                const TInt )
-	{
-	//Not supported because data streaming is not supported by this adapter.
-	}
-	
-// -----------------------------------------------------------------------------
-//  CNSmlDMSettingsAdapter12::FetchLeafObjectSizeL
-//  This function fetches leaf object and returns its size.
-// -----------------------------------------------------------------------------
-void CNSmlDMSettingsAdapter12::FetchLeafObjectSizeL( const TDesC8& aURI, 
-                                                    const TDesC8& aLUID, 
-                                                    const TDesC8& aType, 
-                                                    const TInt aResultsRef, 
-                                                    const TInt aStatusRef )
-	{
-	_DBG_FILE( "CNSmlDMSettingsAdapter12::FetchLeafObjectSizeL() : begin" );
-    DBG_ARGS( _S16("DM:Fetch aURI    - %S - %S"), &aURI, &aLUID );
-	
-	iLUID = IntLUID( aLUID );
-	if ( iLUID >= 0 )
-		{
-		if( FindProfileIdL( iLUID ) == EFalse )
-			{
-			_DBG_FILE( "CNSmlDMSettingsAdapter12::FetchLeafObjectL(): ENotFound end" );
-			iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
-			return;
-			}
-		}
-	else
-		{
-		_DBG_FILE( "CNSmlDMSettingsAdapter12::FetchLeafObjectL(): ENotFound end" );
-		iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
-		return;
-		}
-
-    //	Check which field going to be handled
-	SetField( aURI );
-	SetURIInProcessL (aURI);
-     
-    //	Check if valid field
-	if( !AcceptDMField() )
-		{
-		_DBG_FILE( "CNSmlDMSettingsAdapter12::FetchLeafObjectL(): EInvalidObject end" );
-		iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EInvalidObject );
-		return;
-		}
-    /*if(aURI.Find( KNSmlDdfExt ) != KErrNotFound)
-        {
-        return;
-        }*/
-    
-    //	Get Database field type 
-	TInt fType = GetDMFieldType();
-	if ( fType == EWrong )
-		{
-		_DBG_FILE( "CNSmlDMSettingsAdapter12::FetchLeafObjectL(): EError end" );
-		iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
-		return;
-		}
-
-    CBufBase *lObject = CBufFlat::NewL( 128 );
-	CleanupStack::PushL( lObject );
-    lObject->Reset();
-
-	if ( fType == EStr || fType == EInt || fType == EBin )
-		{ 
-        TInt rValue = GetObjectL( iLUID, GetDMField(), *lObject );
-		if( lObject->Size() == 0 || rValue != KErrNone )
-		    {
-            if( rValue == KErrNotFound )
-                {
-                iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
-                }
-            else if( rValue == KErrInUse )
-                {
-                iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EObjectInUse );
-                }
-            else if( rValue == KErrNoMemory )
-                {
-                iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENoMemory );
-                }
-            else
-                {
-                iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
-                }
-		    }
-		}
-	else 
-		{
-		CleanupStack::PopAndDestroy();//lObject 
-		_DBG_FILE( "CNSmlDMSettingsAdapter12::FetchLeafObjectL(): ENotFound end" );
-		iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
-		return;
-		}
-    TInt objSizeInBytes = lObject->Size();
-	TBuf8<16> stringObjSizeInBytes;
-	stringObjSizeInBytes.Num( objSizeInBytes );
-
-	lObject->Reset();
-	lObject->InsertL( 0, stringObjSizeInBytes );
-    iCallBack->SetResultsL( aResultsRef, *lObject, aType );
-	iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EOk);
-
-	CleanupStack::PopAndDestroy( 1 ); //lObject
-	_DBG_FILE( "CNSmlDMSettingsAdapter12::FetchLeafObjectSizeL(): end" );
-	return;
-    }
-
-// -----------------------------------------------------------------------------
-// CNSmlDMSettingsAdapter12::ExecuteCommandL()
-// -----------------------------------------------------------------------------
-void CNSmlDMSettingsAdapter12::ExecuteCommandL( const TDesC8&, const TDesC8&,
-                                                const TDesC8&, const TDesC8&, 
-                                                const TInt )
-	{
-	//Not supported. Command execution via DM settings adapter not possible.	
-	}
-
-// -----------------------------------------------------------------------------
-// CNSmlDMSettingsAdapter12::ExecuteCommandL()
-// -----------------------------------------------------------------------------
-void CNSmlDMSettingsAdapter12::ExecuteCommandL( const TDesC8&, const TDesC8&, 
-                                                RWriteStream*&, const TDesC8&, 
-                                                const TInt )
-	{
-	//Not supported. Command execution via DM settings adapter not possible.
-	}
-
-// -----------------------------------------------------------------------------
-// CNSmlDMSettingsAdapter12::CopyCommandL()
-// -----------------------------------------------------------------------------
-void CNSmlDMSettingsAdapter12::CopyCommandL( const TDesC8&, const TDesC8&, 
-                                            const TDesC8&, const TDesC8&, 
-                                            const TDesC8&, TInt )
-	{
-	//Not supported.
-	}
-
-// -----------------------------------------------------------------------------
-// CNSmlDMSettingsAdapter12::StartAtomicL()
-// -----------------------------------------------------------------------------
-void CNSmlDMSettingsAdapter12::StartAtomicL()
-	{
-	//Not supported. Handling Atomic command cycles not supported by the adapter.
-	}
-
-// -----------------------------------------------------------------------------
-// CNSmlDMSettingsAdapter12::CommitAtomicL()
-// -----------------------------------------------------------------------------
-void CNSmlDMSettingsAdapter12::CommitAtomicL()
-	{
-	//Not supported. Handling Atomic command cycles not supported by the adapter.
-	}
-
-// -----------------------------------------------------------------------------
-// CNSmlDMSettingsAdapter12::RollbackAtomicL()
-// -----------------------------------------------------------------------------
-void CNSmlDMSettingsAdapter12::RollbackAtomicL()
-	{
-	//Not supported. Handling Atomic command cycles not supported by the adapter.
-	}
-
-// -----------------------------------------------------------------------------
-//  CNSmlDMSettingsAdapter12::StreamingSupport()
-//  Indicates if streaming is supported.
-// -----------------------------------------------------------------------------
-TBool CNSmlDMSettingsAdapter12::StreamingSupport( TInt& /*aItemSize*/ )
-	{
-	return EFalse;
-	}
-
-// -----------------------------------------------------------------------------
-// CNSmlDMSettingsAdapter12::StreamCommittedL()
-// -----------------------------------------------------------------------------
-void CNSmlDMSettingsAdapter12::StreamCommittedL()
-	{
-	//Not supported. Streaming not supported by the DM settings adapter.
-	}
-// -----------------------------------------------------------------------------
-// CNSmlDMSettingsAdapter12::CompleteOutstandingCmdsL()
-// If buffering used, commands must be executed before returning this function.
-// -----------------------------------------------------------------------------
-void CNSmlDMSettingsAdapter12::CompleteOutstandingCmdsL()
-	{
-	// Check if Buffered
-	for (int val=0; val<iBuffer->Count ();val++)
-		{
-		if ( !iBuffer->At(val).iExecuted)
-			{
-			TInt count = iBuffer->At(val).iLeafBuf->Count ()-1;
-			iExecutionIndex = val;
-			iComplete = ETrue;
-			ExecuteBufferL ();
-			}
-		}
- for (TInt i = 0;i<iProfileLockBuffer.Count(); i++)
-	    {
-	       TInt err = SetProfileLockL(iProfileLockBuffer[i].iProfileLockLUID, iProfileLockBuffer[i].iProfileLock) ;
-   
-	    }
-
-	// if port was updated, set it
-	for (TInt i = 0;i<iPortBuffer.Count(); i++)
-	    {
-        TInt err = SetProfileConnectionPortNrL( iPortBuffer[i].iPortBufLUID, iPortBuffer[i].iPortBuf );
-        
-        // set status
-        if ( err != KErrNone )
-            {
-            iCallBack->SetStatusL( iPortBuffer[i].iPortBufStatusRef, CSmlDmAdapter::EError );
-            }
-        else
-            {
-            iCallBack->SetStatusL( iPortBuffer[i].iPortBufStatusRef, CSmlDmAdapter::EOk );
-            }
-	    
-	    }
-    iPortBuffer.Reset();	
-	}
-
-// -----------------------------------------------------------------------------
-//  CNSmlDMSettingsAdapter12::AcceptDMField
-//  This function checks if field to be handled is valid.
-// -----------------------------------------------------------------------------
-TBool CNSmlDMSettingsAdapter12::AcceptDMField()
-	{
-	_DBG_FILE("CNSmlDMSettingsAdapter12::AcceptDMField(): begin");
-
-	if ( iField->Compare( KNSmlDdfAddrType ) == 0 )
-		{
-		return ETrue;
-		}
-	else if ( iField->Compare( KNSmlDdfAddr ) == 0 )
-		{
-		return ETrue;
-		}
-	else if ( iField->Compare( KNSmlDdfPortNbr ) == 0 )
-		{
-		return ETrue;
-		}
-	else if ( iField->Compare( KNSmlDdfAuthScheme ) == 0 )
-		{
-		return ETrue;
-		}
-	else if ( iField->Compare( KNSmlDdfServerId ) == 0 )
-		{
-		return ETrue;
-		}
-	else if ( iField->Compare( KNSmlDdfServerPW ) == 0 )
-		{
-		return ETrue;
-		}
-	else if ( iField->Compare( KNSmlDdfServerNonce ) == 0 )
-		{
-		return ETrue;
-		}
-	else if ( iField->Compare( KNSmlDdfClientUserName ) == 0 )
-		{
-		return ETrue;
-		}
-	else if ( iField->Compare( KNSmlDdfClientPW ) == 0 )
-		{
-		return ETrue;
-		}
-	else if ( iField->Compare( KNSmlDdfClientNonce ) == 0 )
-		{
-		return ETrue;
-		}
-	else if ( iField->Compare( KNSmlDdfName ) == 0 )
-		{
-		return ETrue;
-		}
-		
-	else if ( iField->Compare( KNSmlDdfId ) == 0 )
-		{
-		return ETrue;
-		}
-	else if ( iField->Compare(KNSmlDdfAppId) == 0 )
-	    {
-	    return ETrue;
-	    }
-	else if ( iField->Compare(KNSmlDdfPrefConRef) == 0 )
-	    {
-	    return ETrue;
-	    }
-	else if (iField->Compare(KNSmlDdfAAuthLevel) == 0 )
-	    {
-	    return ETrue;
-	    }
-  	    
-    else if (iField->Compare(KNSmlDdfAAuthType) == 0 )
-        {
-        return ETrue;
-        }
-    else if (iField->Compare(KNSmlDdfAAuthName) == 0 )
-        {
-        return ETrue;
-        }
-        
-    else if (iField->Compare(KNSmlDdfAAuthSecret) == 0 )
-        {
-        return ETrue;
-        }
-    else if (iField->Compare(KNSmlDdfAAuthData) == 0 )
-        {
-        return ETrue;
-        }
-    else if (iField->Compare(KNSmlDdfLocked) == 0 )
-        {
-        return ETrue;
-        }    
-
-	_DBG_FILE( "CNSmlDMSettingsAdapter12::AcceptDMField(): end" );
-	return EFalse; // Not a valid Type
-	}
-
-// -----------------------------------------------------------------------------
-//  CNSmlDMSettingsAdapter12::GetDMField
-//	Matches URI fieldname to DM-database. 
-// -----------------------------------------------------------------------------
-TNSmlDMProfileData CNSmlDMSettingsAdapter12::GetDMField() 
-	{
-
-	if ( iField->Compare( KNSmlDdfAddrType ) == 0 )
-		{
-	
-	     return EProfileAddrType;
-	      
-		}
-	else if ( iField->Compare( KNSmlDdfAddr ) == 0 )
-		{
-		return EProfileURL;
-		}
-	else if ( iField->Compare( KNSmlDdfPortNbr ) == 0 )
-		{
-		return EProfilePort;
-		}
-	else if ( iField->Compare( KNSmlDdfAuthScheme ) == 0 )
-		{
-		return EAuthenticationRequired;
-		}
-	else if ( iField->Compare( KNSmlDdfServerId ) == 0 )
-		{
-		return EServerId;
-		}
-	else if ( iField->Compare( KNSmlDdfServerPW ) == 0 )
-		{
-		return ESharedSecret;
-		}
-	else if ( iField->Compare( KNSmlDdfServerNonce ) == 0 )
-		{
-		return EServerNonce;
-		}
-	else if ( iField->Compare( KNSmlDdfClientUserName ) == 0 )
-		{
-		return EProfileDMServerUsername;
-		}
-	else if ( iField->Compare( KNSmlDdfClientPW ) == 0 )
-		{
-		return EProfileDMServerPassword;
-		}
-	else if ( iField->Compare( KNSmlDdfClientNonce ) == 0 )
-		{
-		return EClientNonce;
-		}
-	else if ( iField->Compare( KNSmlDdfName ) == 0 )
-		{
-		return EProfileName;
-		}
-	else if ( iField->Compare( KNSmlDdfId ) == 0 )
-		{
-		return EProfileId;
-		}
-	
-	else if ( iField->Compare( KNSmlDdfPrefConRef ) == 0 )
-		{
-		return EProfileIAPId;
-		}
-	
-    else if ( iField->Compare( KNSmlDdfAppId ) == 0 )
-		{
-		return EProfileIAPId;
-		}
-    else if ( iField->Compare( KNSmlDdfLocked) == 0 )
-		{
-		return EProfileLock;
-		}
-
-    else if (iField->Compare(KNSmlDdfAAuthLevel) == 0 )
-	    {
-	     if(iURIField->Find(KDmAccAppAuthDyn1) != KErrNotFound)
-	    return EPRofileServerCred;
-	     else if (iURIField->Find(KDmAccAppAuthDyn2)!= KErrNotFound)
-	    return EPRofileClientCred;
-		else if (iURIField->Find(KDmAccAppAuthTransport)!= KErrNotFound)
-	    return EProfileTransport;		     
-	    }
-  	    
-    else if (iField->Compare(KNSmlDdfAAuthType) == 0 )
-        {
-        return EProfileAAuthType;
-        }
-    else if (iField->Compare(KNSmlDdfAAuthName) == 0 )
-        {
-        if(iURIField->Find(KDmAccAppAuthDyn1) != KErrNotFound)
-	    return EProfileName;
-	    else if (iURIField->Find(KDmAccAppAuthDyn2)!= KErrNotFound)
-	    return EProfileDMServerUsername;
-	    else if (iURIField->Find(KDmAccAppAuthTransport)!= KErrNotFound)
-	    {
-	       return ETransportAuthName;
-	    }
-	    
-        // return ETrue;
-        }
-        
-    else if (iField->Compare(KNSmlDdfAAuthSecret) == 0 )
-        {
-         if(iURIField->Find(KDmAccAppAuthDyn1) != KErrNotFound)
-	    return ESharedSecret;
-	        else if (iURIField->Find(KDmAccAppAuthDyn2)!= KErrNotFound)
-	    return EProfileDMServerPassword;
-		else if (iURIField->Find(KDmAccAppAuthTransport)!= KErrNotFound)
-	    {
-	       return EProfileTransportPassword;
-	    }
-        }
-    else if (iField->Compare(KNSmlDdfAAuthData) == 0 )
-        {
-          if(iURIField->Find(KDmAccAppAuthDyn1) != KErrNotFound)
-	    return EServerNonce;
-	     else if (iURIField->Find(KDmAccAppAuthDyn2)!= KErrNotFound)
-	    return EClientNonce;
-	    else if (iURIField->Find(KDmAccAppAuthTransport)!= KErrNotFound)
-	     return EProfileTransportAuthData;
-        }
-        		
-	
-	_DBG_FILE( "CNSmlDMSettingsAdapter12::GetDMField(): Error" );
-	return ESyncAccepted;
-	}
-
-// -----------------------------------------------------------------------------
-//  CNSmlDMSettingsAdapter12::GetDMFieldType
-//	Gets field data type. 
-// -----------------------------------------------------------------------------
-TNSmlDMFieldType CNSmlDMSettingsAdapter12::GetDMFieldType() const
-	{
-	if ( iField->Compare( KNSmlDdfAddrType ) == 0 )
-		{
-		return EInt;
-		}
-	else if ( iField->Compare( KNSmlDdfAddr ) == 0 )
-		{
-		return EStr;
-		}
-	else if ( iField->Compare( KNSmlDdfPortNbr ) == 0 )
-		{
-		return EInt;
-		}
-	else if ( iField->Compare( KNSmlDdfAuthScheme ) == 0 )
-		{
-		return EInt;
-		}
-	else if ( iField->Compare( KNSmlDdfServerId ) == 0 )
-		{
-		return EStr;
-		}
-	else if ( iField->Compare( KNSmlDdfServerPW ) == 0 )
-		{
-		return EStr;
-		}
-	else if ( iField->Compare( KNSmlDdfServerNonce ) == 0 )
-		{
-		return EBin;
-		}
-	else if ( iField->Compare( KNSmlDdfClientUserName ) == 0 )
-		{
-		return EStr;
-		}
-	else if ( iField->Compare( KNSmlDdfClientPW ) == 0 )
-		{
-		return EStr;
-		}
-	else if (iField->Compare(KNSmlDdfClientNonce) == 0)
-		{
-		return EBin;
-		}
-	else if ( iField->Compare( KNSmlDdfName ) == 0 )
-		{
-		return EStr;
-		}
-		
-	else if ( iField->Compare( KNSmlDdfId ) == 0 )
-		{
-		return EInt;
-		}
-    else if( iField->Compare(KNSmlDdfAppId ) ==0 ) 
-        {
-        	return EStr;
-        }
-	else if ( iField->Compare( KNSmlDdfPrefConRef ) == 0 )
-		{
-		return EInt;
-		}
-	else if (iField->Compare(KNSmlDdfAAuthLevel) == 0 )
-	    {
-	    return EStr;
-	    }
-  	    
-    else if (iField->Compare(KNSmlDdfAAuthType) == 0 )
-        {
-        return EStr;
-        }
-    else if (iField->Compare(KNSmlDdfAAuthName) == 0 )
-        {
-        return EStr;
-        }
-        
-    else if (iField->Compare(KNSmlDdfAAuthSecret) == 0 )
-        {
-        return EStr;
-        }
-    else if (iField->Compare(KNSmlDdfAAuthData) == 0 )
-        {
-        return EBin;
-        }
-        
-	else if(iField->Compare(KNSmlDdfLocked)==0)
-	    {
-	    return EStr;
-	    }
-		        
-
-	_DBG_FILE( "CNSmlDMSettingsAdapter12::GetDMFieldType(): Error" );
-	return EWrong;
-	}
-
-// -----------------------------------------------------------------------------
-//  CNSmlDMSettingsAdapter12::IntLUID
-//	Returns integer value for a profile LUID.
-// -----------------------------------------------------------------------------
-TInt CNSmlDMSettingsAdapter12::IntLUID( const TDesC8& aLUID )
-	{
-	TLex8 lLex( aLUID );
-
-	if( lLex.Val( iLUID ) == KErrNone )
-	    {
-	    return iLUID;
-	    }
-	else
-        {
-        return -1;
-        }
-	}
-
-// -----------------------------------------------------------------------------
-//  CNSmlDMSettingsAdapter12::GetIntObject
-//	Returns integer value for a aObject.
-// -----------------------------------------------------------------------------
-TInt CNSmlDMSettingsAdapter12::GetIntObject( const TDesC8& aObject )
-	{
-	TLex8 lLex( aObject );
-
-	TInt value = 0;
-
-	if( lLex.Val( value ) != KErrNone )
-	    {
-	    return KErrNotFound;
-	    }
-	else
-        {
-        return value;
-        }
-	}
-
-// -----------------------------------------------------------------------------
-//	CNSmlDMSettingsAdapter12::GetIntObject16()
-//	Returns Integer Value for a 16 bit data object.
-// -----------------------------------------------------------------------------
-TInt CNSmlDMSettingsAdapter12::GetIntObject16( const TDesC& aObject )
-	{
-	TLex16 lLex( aObject );
-
-	TInt value = 0;
-
-	if( lLex.Val( value ) == KErrNone )
-	    {
-	    return value;
-	    }
-	else
-        {
-        return value;
-        }
-	}
-
-// -----------------------------------------------------------------------------
-//  CNSmlDMSettingsAdapter12::SetIntObjectLC
-//	Converts integer to HBufC8 type buffer and returns reference to it.
-// -----------------------------------------------------------------------------
-TDesC8& CNSmlDMSettingsAdapter12::SetIntObjectLC( const TInt& aObject )
-	{
-	HBufC8* buf = HBufC8::NewLC( 8 );
-	TPtr8 ptrBuf = buf->Des();
-
-	ptrBuf.Num( aObject );
-    return *buf;
-	}
-
-// -----------------------------------------------------------------------------
-//	CNSmlDMSettingsAdapter12::NotValidStrLenght
-//	Checks if data length is valid.
-// -----------------------------------------------------------------------------
-TBool CNSmlDMSettingsAdapter12::NotValidStrLenght( const TNSmlDMProfileData& aProfileItem, 
-                                                const TDesC8& aSource )
-	{
-	TInt lLen = aSource.Length();
-	TBool lBool = EFalse;
-
-	switch ( aProfileItem )
-		{
-		case ( EProfileName ) :
-			{
-			if( lLen > KNSmlMaxProfileNameLength )
-			    {
-			    lBool = ETrue;	
-			    }
-			}
-		break;
-		
-		case ( EProfileDMServerUsername ) :
-			{
-			if( lLen > KNSmlMaxUsernameLength )
-			    {
-			    lBool = ETrue;
-			    }
-			}
-		break;
-        
-		case ( EProfileHttpUsername ) :
-		case (ETransportAuthName):
-			{
-				if( lLen > KNSmlDmMaxHttpAuthUsernameLength )
-			    {
-			    lBool = ETrue;
-			    }
-			}
-		break;
-		case ( EProfileHttpPassword ) :
-		case (EProfileTransportPassword):
-			{
-				if( lLen > KNSmlDmMaxHttpAuthPasswordLength )
-			    {
-			    lBool = ETrue;
-			    }
-			}
-		break;
-		case ( EProfileDMServerPassword ) :
-			{
-			if( lLen > KNSmlMaxPasswordLength )
-			    {
-			    lBool = ETrue;	
-			    }
-			}
-		break;
-
-		case ( ESharedSecret ) :
-			{
-			if( lLen > KNSmlDmSharedSecretMaxLength )
-			    {
-			    lBool = ETrue;	
-			    }
-			}
-		break;
-
-		case ( EProfileURL ) :
-			{
-			if( lLen > KNSmlMaxURLLength )
-			    {
-			    lBool = ETrue;	
-			    }
-			}
-		break;
-
-		case ( EServerId ) :
-			{
-			if( lLen > KNSmlDmServerIdMaxLength )
-			    {
-			    lBool = ETrue;	
-			    }
-			}
-		break;
-
-		case ( EProfileIAPId ) :
-			{
-			if( lLen > KNSmlMaxURLLength )
-			    {
-			    lBool = ETrue;	
-			    }
-			}
-		break;
-
-		case ( EAuthenticationRequired ) :
-		case ( EProfileAAuthType ) :
-			{
-			if( lLen > 20 ) 
-			    {
-			    lBool = ETrue;	
-			    }
-			}
-		break;
-
-		case ( EProfileId ) :
-		case ( EProfilePort ) :
-		case ( EProfileMediumType ) :
-		case ( EProfileAddrType ) :
-	
-			{
-			if( lLen > 8 )
-			    {
-			    lBool = ETrue;	
-			    }
-			}
-		break;
-		
-        case ( EServerNonce ) :
-	    case ( EClientNonce ) :
-		case (EProfileTransportAuthData):
-	        {
-            lBool = EFalse;
-	        }
-        break;
-		case ( EProfileTransport ):
-		{
-			lBool = EFalse;
-		}
-		break;
-		case EProfileLock :
-		 {
-		 	if(lLen > 6 )
-		 	{
-			    lBool = ETrue;	
-			}
-		 	
-		 }
-		  break;
-		default:
-			{
-			lBool = ETrue;
-			}
-		}
-
-	return lBool;
-	}
-
-// -----------------------------------------------------------------------------
-//	CNSmlDMSettingsAdapter12::SetField
-//	Last element of the URI (after last '/') is returned.
-// -----------------------------------------------------------------------------
-TInt CNSmlDMSettingsAdapter12::SetField( const TDesC8& aSource )
-	{
-	if ( aSource.LocateReverse( KNSmlDMUriSeparator ) == KErrNotFound )
-	    {
-	    iField->Des().Format( aSource );
-	    }
-	else
-        {
-        iField->Des().Format( aSource.Mid( aSource.LocateReverse( KNSmlDMUriSeparator ) + 1 ) );
-        }
-
-    return KErrNone;
-	}
-
-// -----------------------------------------------------------------------------
-//	CNSmlDMSettingsAdapter12::SetField
-//	Last element of the URI (after last '/') is returned.
-// -----------------------------------------------------------------------------
-TInt CNSmlDMSettingsAdapter12::SetURIInProcessL( const TDesC8& aSource )
-	{
-    
-    if( iURIField )
-    {
-    	delete iURIField;
-    	iURIField = NULL;
-    }
-    iURIField = HBufC8::NewL( aSource.Length() );
-    TPtr8 newPortNbr = iURIField->Des();
-    newPortNbr.Append( aSource );          
-
-    return KErrNone;
-	}
-	
-
-
-
-// -----------------------------------------------------------------------------
-//  CNSmlDMSettingsAdapter12::ConvertTo8LC
-//	Converts string value to 8-bit and returns reference.
-// -----------------------------------------------------------------------------
-TDesC8& CNSmlDMSettingsAdapter12::ConvertTo8LC( const TDesC& aSource )
-	{
-	HBufC8* buf = HBufC8::NewLC( aSource.Length() * 2 );
-	TPtr8 bufPtr = buf->Des();
-	CnvUtfConverter::ConvertFromUnicodeToUtf8( bufPtr, aSource );
-
-    return *buf;
-	}
-
-// -----------------------------------------------------------------------------
-//	CNSmlDMSettingsAdapter12::ConvertTo16LC
-//	Converts string value to 16-bit and returns reference.
-// -----------------------------------------------------------------------------
-TDesC16& CNSmlDMSettingsAdapter12::ConvertTo16LC( const TDesC8& aSource)
-	{
-	HBufC16* buf16 = HBufC16::NewLC( aSource.Length() );
-	TPtr16 bufPtr16 = buf16->Des();
-
-	CnvUtfConverter::ConvertToUnicodeFromUtf8( bufPtr16, aSource );
-
-    return *buf16; 
-	}
-
-// -------------------------------------------------------------------------------------
-//  CNSmlDMSettingsAdapter12::GetConRefL
-//	Gets the URI for given aObject (IAP ID).
-// -------------------------------------------------------------------------------------
-TInt CNSmlDMSettingsAdapter12::GetConRefL( CBufBase& aObject )
-	{
-	_DBG_FILE( "CNSmlDMSettingsAdapter12::GetConRefL() : begin" );
-	TInt profIAPid = -1;
-    TInt apIdResponse = GetProfileIAPIdL( profIAPid );
-    if( profIAPid < 0 )
-    {
-    	return KErrNone;
-    }    
-    if( apIdResponse != KErrNone )
-    {
-    	return KErrNotFound;
-    }
-    CNSmlDMIAPMatcher* apmatch = CNSmlDMIAPMatcher::NewL( iCallBack );
-    CleanupStack::PushL( apmatch );
-    HBufC8* uri8 = apmatch->URIFromIAPIdL( profIAPid );
-    if( uri8 )
-        {
-        CleanupStack::PushL( uri8 );
-        aObject.InsertL( aObject.Size(), uri8->Des() );
-        CleanupStack::PopAndDestroy(); // uri8
-        }
-    else
-        {
-        CleanupStack::PopAndDestroy(); // apMatch
-        return KErrGeneral;    
-        }
-    CleanupStack::PopAndDestroy(); // iapMatch
-	_DBG_FILE( "CNSmlDSSettingsAdapter::GetToNAPIDL() : end" );
-	return KErrNone;
-	}
-
-// -------------------------------------------------------------------------------------
-//  CNSmlDMSettingsAdapter12::SetConRefL()
-//	Set the profile IAP Id value according to given URI.
-// -------------------------------------------------------------------------------------
-TInt CNSmlDMSettingsAdapter12::SetConRefL( const TInt aLUID, const TDesC8& aObject )
-	{
-    _DBG_FILE( "CNSmlDMSettingsAdapter12::SetConRefL() : begin" );
-    CNSmlDMIAPMatcher* apmatch = CNSmlDMIAPMatcher::NewL( iCallBack );
-    CleanupStack::PushL( apmatch );
-    TInt lIAPid = apmatch->IAPIdFromURIL( aObject );
-    CleanupStack::PopAndDestroy(); // iapmatch
-    if(aObject.Length() >0 && lIAPid == KErrNotFound) 
-    {
-    	return KErrGeneral;
-    }
-    TInt apIdResponse = SetProfileConnectionPropertyL( aLUID, lIAPid );    
-    _DBG_FILE( "CNSmlDMSettingsAdapter12::SetConRefL() : end" );
-	return apIdResponse;
-	}
-
-// ------------------------------------------------------------------------------------------------
-//  CNSmlDMSettingsAdapter12::ParseUri
-//  Resolves portnbr (separated with ':') as integer from Uri. 
-// ------------------------------------------------------------------------------------------------
-TInt CNSmlDMSettingsAdapter12::ParseUri( const TDesC8& aRealURI, TInt& aPort )
-	{
-	TInt offset=0;
-    //http:
-	if( aRealURI.Find( KNSmlDMSettingsHTTP )==0 )//http:
-		{
-		offset = KNSmlDMSettingsHTTP().Length();
-		}
-	else if( aRealURI.Find( KNSmlDMSettingsHTTPS )==0 )//https:
-		{
-		offset = KNSmlDMSettingsHTTPS().Length();
-		}
-
-	TBool portFound=EFalse;
-    ////123.234.345.456:80/syncml
-	for( TInt i = offset; i < aRealURI.Length(); i++ )
-		{
-		if( aRealURI[i] == KNSmlDMColon )// ':'
-			{
-			portFound = ETrue;
-			offset=i;
-			}
-		if( portFound && aRealURI[i] == KNSmlDMUriSeparator ) // '/'
-			{
-			aPort = GetIntObject( aRealURI.Mid( (offset + 1), (i - offset-1) ) );
-			}
-		else if ( portFound && i == aRealURI.Length() - 1 ) // last char
-		    {
-		    // port is from offset to the end
-		    aPort = GetIntObject( aRealURI.Right( aRealURI.Length() - offset - 1 ) );
-		    }
-		}
-	
-	if( aPort != 0 )
-		{
-		return KErrNone;
-		}
-	else
-		{
-		return KErrNotFound;
-		}
-	}
-// -----------------------------------------------------------------------------
-//  CNSmlDMSettingsAdapter12::OpenSyncSessionAndDSProfileL
-//  The function opens the server session and DM profile.
-// -----------------------------------------------------------------------------
-TInt CNSmlDMSettingsAdapter12::OpenSyncSessionAndProfileL( const TInt aIntLUID, 
-                                                        TSmlOpenMode aMode )
-    {
-    _DBG_FILE( "CNSmlDMSettingsAdapter12::OpenSyncSessionAndProfileL(): begin" );
-    if( iSyncSessionOpen == EFalse )
-        {
-        iSyncSession.OpenL();
-        iSyncSessionOpen = ETrue;
-        }
-    TInt trueLuid = aIntLUID + KMaxDataSyncID;
-    TInt rValue(KErrNone);
-    
-    if(trueLuid!=iCurrentProfile)
-	    {
-	    RArray<TSmlProfileId> profileIdArray;
-	    CleanupClosePushL( profileIdArray );
-	    TSmlUsageType usageType = ESmlDevMan;
-	    iSyncSession.ListProfilesL( profileIdArray, usageType );
-	    TInt index = profileIdArray.Find( trueLuid );
-	    CleanupStack::PopAndDestroy(); //profileIdArray
-	    if( index == KErrNotFound )
-	        {
-	        return KErrNotFound;
-	        }
-	    TRAP( rValue, iProfile.OpenL( iSyncSession, trueLuid, aMode ) );
-	    iCurrentProfile = trueLuid;
-	    if( rValue != KErrNone )
-	        {
-	        iCurrentProfile = 0;
-	        iProfile.Close();
-			iSyncSession.Close();
-	        iSyncSessionOpen = EFalse;
-	        }
-    	}
-    _DBG_FILE( "CNSmlDMSettingsAdapter12::OpenSyncSessionAndProfileL(): end" );
-    return rValue;
-    }
-
-// -----------------------------------------------------------------------------
-//  CNSmlDMSettingsAdapter12::FindProfileId
-//  Function checks if profile can be found.
-// -----------------------------------------------------------------------------
-TBool CNSmlDMSettingsAdapter12::FindProfileIdL( const TInt aIntLUID )
-	{
-    _DBG_FILE( "CNSmlDMSettingsAdapter12::FindProfileIdL(): begin" );
-	if( iSyncSessionOpen == EFalse )
-	    {
-        iSyncSession.OpenL();
-        iSyncSessionOpen = ETrue;
-	    }
-    
-	RArray <TSmlProfileId> profileList;
-    CleanupClosePushL( profileList );
-	TSmlUsageType usageType = ESmlDevMan;		
-	iSyncSession.ListProfilesL( profileList, usageType );
-	if( profileList.Count() == 0 ) 
-	    {
-        CleanupStack::PopAndDestroy(); //profileList
-        return EFalse;
-	    }		
-    TInt item = profileList.Find( aIntLUID + KMaxDataSyncID );
-    CleanupStack::PopAndDestroy(); //profileList
-    if( item != KErrNotFound )
-		{
-		_DBG_FILE( "CNSmlDMSettingsAdapter12::FindProfileIdL(): end" );
-        return ETrue;
-		}
-    _DBG_FILE( "CNSmlDMSettingsAdapter12::FindProfileIdL(): end" );
-	return EFalse;
-	}
-// -----------------------------------------------------------------------------
-//  CNSmlDMSettingsAdapter12::IsServerIDExistL
-//  Function checks if serverid exist.
-// -----------------------------------------------------------------------------
-TBool CNSmlDMSettingsAdapter12::IsServerIDExistL( const TDesC8& aServerid )
-{
-	_DBG_FILE( "CNSmlDMSettingsAdapter12::IsServerIDExistL(): begin" );
-	if( iSyncSessionOpen == EFalse )
-	{
-       	iSyncSession.OpenL();
-       	iSyncSessionOpen = ETrue;
-	}
-    TBool ret(EFalse);
-	RArray <TSmlProfileId> profileList;
-    CleanupClosePushL( profileList );
-	TSmlUsageType usageType = ESmlDevMan;		
-	iSyncSession.ListProfilesL( profileList, usageType );
-	TInt count = profileList.Count();
-	if( count > 0 ) 
-	{
-		for(TInt i =0; i< count; i++)
-		{
-			TInt pid = i + KMaxDataSyncID;
-			TInt index = profileList.Find(pid );
-			if( index >= i  )
-			{	    		
-	        	TInt rValue(KErrNone);
-	        	RSyncMLDevManProfile profile;
-	    		TRAP( rValue, profile.OpenL( iSyncSession, pid, ESmlOpenRead ) );
-	    		if( rValue == KErrNone )
-	        	{
-			        CleanupClosePushL(profile);
-	        		if(((aServerid.Compare(profile.ServerId())) == 0) &&
-						((profile.ServerId()).Length() == aServerid.Length()))
-	        		{
-	        			ret = ETrue;
-			            CleanupStack::PopAndDestroy(&profile);//profile
-						break;	        			
-	        		}						
-			        CleanupStack::PopAndDestroy(&profile);//profile
-				}				
-			}	
-		}        
-	}		
-    CleanupStack::PopAndDestroy(); //profileList
-    _DBG_FILE( "CNSmlDMSettingsAdapter12::IsServerIDExistL(): end" );
-	return ret;
-	}
-// -----------------------------------------------------------------------------
-//  CNSmlDMSettingsAdapter12::CreateNewProfileL
-//  The function creates new DM profile via client API.
-// -----------------------------------------------------------------------------
-TInt CNSmlDMSettingsAdapter12::CreateNewProfileL( TInt& aPID )
-	{
-    _DBG_FILE("CNSmlDMSettingsAdapter12::CreateNewProfileL(): begin");
-	if( iSyncSessionOpen == EFalse )
-	    {
-        iSyncSession.OpenL();
-        iSyncSessionOpen = ETrue;
-	    }
-    TRAPD( value1, iProfile.CreateL( iSyncSession ) );
-    if( value1 != KErrNone )
-        {
-   	    iCurrentProfile = 0;
-        iProfile.Close();
-        iSyncSession.Close();
-        iSyncSessionOpen = EFalse;
-        return value1;
-        }
-    
-    TRAPD( value2, iProfile.UpdateL() );
-    if( value2 != KErrNone )
-        {
-   	    iCurrentProfile = 0;
-        iProfile.Close();
-        iSyncSession.Close();
-        iSyncSessionOpen = EFalse;
-        return value2;
-        }
-    
-    aPID = iProfile.Identifier();
-    iCurrentProfile = 0;
-    iProfile.Close();
-    _DBG_FILE( "CNSmlDMSettingsAdapter12::CreateNewProfileL(): end" );
-    return KErrNone;
-	}
-// -----------------------------------------------------------------------------
-//  CNSmlDMSettingsAdapter12::SetProfileServerURIL()
-//  The function sets the server URL for a profile.
-// -----------------------------------------------------------------------------
-TInt CNSmlDMSettingsAdapter12::SetProfileServerURIL( const TInt aPID, 
-                                                    const TDesC8& aObj )
-	{
-    _DBG_FILE( "CNSmlDMSettingsAdapter12::SetProfileServerURIL(): begin" );
-	TInt retVal = KErrNone;
-    retVal = OpenSyncSessionAndProfileL( aPID, ESmlOpenReadWrite );
-    if( retVal != KErrNone )
-		{
-	    iCurrentProfile = 0;
-	    iProfile.Close();
-        return retVal;	
-		}
-	RArray<TSmlTransportId> transportIdArray;
-    CleanupClosePushL( transportIdArray );
-	iProfile.ListConnectionsL( transportIdArray );
-    if( transportIdArray.Count() == 0 )
-	    {
-        CleanupStack::PopAndDestroy();//transportIdArray
-	    iCurrentProfile = 0;
-        iProfile.Close();
-        return KErrGeneral;
-	    }
-	    
-	TInt newPort(0);
-    
-    RSyncMLConnection conn;
-    CleanupClosePushL( conn );
-    conn.OpenL( iProfile, transportIdArray[0] );
-
-    if(ParseUri(aObj,newPort)==KErrNotFound)
-        {
-        TInt port = 0;
-        ParseUri(conn.ServerURI(),port);
-        if(port==0)
-        	{
-        	port = 80;
-        	}
-           	
-       	TBuf8<5> buf;
-    	buf.Num( port );
-        	
-        TInt totalSize = aObj.Length() + buf.Length() + 1;
-        HBufC8* newServerURI = HBufC8::NewLC( totalSize );
-        SetPortNrToAddrStr( aObj, newServerURI, buf );
-        conn.SetServerURIL( *newServerURI );
-        conn.UpdateL();
-    	CleanupStack::PopAndDestroy( newServerURI ); 
-        }
-    else
-        {
-        conn.SetServerURIL( aObj );
-        conn.UpdateL();
-        }
-	
-
-	iProfile.UpdateL();
-	
-	CleanupStack::PopAndDestroy( 2 ); //transportIdArray, conn
-    iCurrentProfile = 0;
-	iProfile.Close();
-    _DBG_FILE( "CNSmlDMSettingsAdapter12::SetProfileServerURIL(): end" );
-	return KErrNone;
-	}
-// -----------------------------------------------------------------------------
-//  CNSmlDMSettingsAdapter12::SetProfileDisplayNameL()
-//  The function sets the display name for a profile.
-// -----------------------------------------------------------------------------
-TInt CNSmlDMSettingsAdapter12::SetProfileDisplayNameL( const TInt aPID, 
-                                                        const TDesC8& aObj )
-	{
-    _DBG_FILE( "CNSmlDMSettingsAdapter12::SetProfileDisplayNameL(): begin" );
-	TInt retVal = KErrNone;
-    retVal = OpenSyncSessionAndProfileL( aPID, ESmlOpenReadWrite );
-    if( retVal != KErrNone )
-		{
-	    iCurrentProfile = 0;
-		iProfile.Close();
-        return retVal;	
-		}
-    iProfile.SetDisplayNameL( ConvertTo16LC( aObj ) );
-    iProfile.UpdateL();
-	CleanupStack::PopAndDestroy(); //ConvertTo16LC
-    iCurrentProfile = 0;
-    iProfile.Close();
-    _DBG_FILE( "CNSmlDMSettingsAdapter12::SetProfileDisplayNameL(): end" );
-	return KErrNone;
-	}
-// -----------------------------------------------------------------------------
-//  CNSmlDMSettingsAdapter12::IsProfileLockedL()
-//  The function to tell whether the profile is locked
-// -----------------------------------------------------------------------------
-TInt CNSmlDMSettingsAdapter12::IsProfileLockedL(const TInt aPID)
-{
-   _DBG_FILE( "CNSmlDMSettingsAdapter12::SetProfileDisplayNameL(): begin" );
-	TInt retVal = KErrNone;
-    retVal = OpenSyncSessionAndProfileL( aPID, ESmlOpenRead );
-     if( retVal != KErrNone )
-		{
-	    iCurrentProfile = 0;
-		iProfile.Close();
-        return retVal;	
-		}
-		
-	retVal=iProfile.ProfileLocked(EFalse, EFalse);
-	iCurrentProfile = 0;
-    iProfile.Close();
-    if(retVal)
-      {
-      /* CRepository* centrep = NULL;
-       TRAPD( err, centrep = CRepository::NewL( KCRUidDeviceManagementInternalKeys) );    
-       TInt IsPrfoileEditable = 0;
-       if(!err)
-         centrep->Get( KDevOverrideProfileLock, IsPrfoileEditable );
-       delete centrep;
-       if (!IsPrfoileEditable)
-          retVal=  KErrAccessDenied;
-       else
-         retVal= KErrNone;*/
-       retVal=  KErrAccessDenied;
-      }
-      
-      
-       
-    return retVal;
-    
-}
-
-
-
-// -----------------------------------------------------------------------------
-//  CNSmlDMSettingsAdapter12::SetProfileLockL()
-//  The function to setor reset the profile lock.
-// -----------------------------------------------------------------------------
-
-TInt CNSmlDMSettingsAdapter12::SetProfileLockL( const TInt aPID, TInt aLockValue)
-	{
-    _DBG_FILE( "CNSmlDMSettingsAdapter12::SetProfileLockL(): begin" );
-	TInt retVal = KErrNone;
-    retVal = OpenSyncSessionAndProfileL( aPID, ESmlOpenReadWrite );
-    if( retVal != KErrNone )
-		{
-	    iCurrentProfile = 0;
-		iProfile.Close();
-        return retVal;	
-		}
-		 
-		iProfile.ProfileLocked(ETrue, aLockValue );
-    iProfile.UpdateL();
-	  iCurrentProfile = 0;
-    iProfile.Close();
-    _DBG_FILE( "CNSmlDMSettingsAdapter12::SetProfileLockL(): end" );
-	return KErrNone;
-	}
-
-
-
-
-
-
-
-// -----------------------------------------------------------------------------
-//  CNSmlDMSettingsAdapter12::SetProfileHttpUserNameL
-//  The function sets the profile http/network name.
-// -----------------------------------------------------------------------------
-
-TInt CNSmlDMSettingsAdapter12::SetProfileHttpUserNameL( const TInt aPID, const TDesC8& aObj )
-{
-	TInt retVal = KErrNone;
-	 retVal = OpenSyncSessionAndProfileL( aPID, ESmlOpenReadWrite );
-    if( retVal != KErrNone )
-		{
-	    iCurrentProfile = 0;
-		iProfile.Close();
-        return KErrGeneral;	
-		}
-        
-	  RSyncMLConnection connection;
-	  TBuf8<KBufSize32> key; 
-      RArray<TSmlTransportId> connIdArray;
-      CleanupClosePushL( connIdArray );
-	  iProfile.ListConnectionsL( connIdArray );
-      if( connIdArray.Count() == 1 )
-        {
-        
-		connection.OpenL( iProfile, KUidNSmlMediumTypeInternet.iUid );
-		CleanupClosePushL( connection );
-		
-		connection.SetPropertyL( KNSmlHTTPAuth, KNSmlTrueVal );
-		connection.SetPropertyL( KNSmlHTTPUsername, aObj );
-		connection.UpdateL();
-		CleanupStack::PopAndDestroy(  );
-		}
-	  else
-		{
-		connection.SetPropertyL( KNSmlHTTPAuth, KNSmlFalseVal );
-		connection.UpdateL();
-		}
-		
-		       
-        CleanupStack::PopAndDestroy(   );
-    
-	return retVal;
-	
-}
-    
-// -----------------------------------------------------------------------------
-//  CNSmlDMSettingsAdapter12::SetProfileUserNameL
-//  The function sets the profile user name.
-// -----------------------------------------------------------------------------
-TInt CNSmlDMSettingsAdapter12::SetProfileUserNameL( const TInt aPID, 
-                                                    const TDesC8& aObj )
-	{
-    _DBG_FILE( "CNSmlDMSettingsAdapter12::SetProfileUserNameL(): begin" );
-	TInt retVal = OpenSyncSessionAndProfileL( aPID, ESmlOpenReadWrite );
-    if( retVal != KErrNone )
-		{
-	    iCurrentProfile = 0;
-		iProfile.Close();
-        return KErrGeneral;	
-		}
-    iProfile.SetUserNameL( aObj );
-    iProfile.UpdateL();
-    iCurrentProfile = 0;
-    iProfile.Close();
-    _DBG_FILE( "CNSmlDMSettingsAdapter12::SetProfileUserNameL(): end" );
-	return KErrNone;
-	}
-
-// -----------------------------------------------------------------------------
-//  CNSmlDMSettingsAdapter12::SetProfileProtocolVersionL
-//  The function sets the protocol version to be supported.
-// -----------------------------------------------------------------------------
-TInt CNSmlDMSettingsAdapter12::SetProfileProtocolVersionL( const TInt aPID, 
-                                                            const TDesC8& )
-	{
-    _DBG_FILE( "CNSmlDMSettingsAdapter12::SetProfileProtocolVersionL(): begin" );
-	TInt retVal = KErrNone;
-    retVal = OpenSyncSessionAndProfileL( aPID, ESmlOpenReadWrite );
-    if( retVal != KErrNone )
-		{
-	    iCurrentProfile = 0;
-		iProfile.Close();
-        return retVal;	
-		}
-	//The syncSession to Sync server is open.
-    TSmlProtocolVersion protocol = ESmlVersion1_2;
-    iProfile.SetProtocolVersionL( protocol );
-	TRAPD( iError, iProfile.UpdateL() );
-    iCurrentProfile = 0;
-    iProfile.Close();
-    _DBG_FILE( "CNSmlDMSettingsAdapter12::SetProfileProtocolVersionL(): begin" );
-	return iError;
-	}
-
-// -----------------------------------------------------------------------------
-//  CNSmlDMSettingsAdapter12::SetProfileServerIdL
-//  The function sets the profile ServerId value.
-// -----------------------------------------------------------------------------
-TInt CNSmlDMSettingsAdapter12::SetProfileServerIdL( const TInt aPID, 
-                                                    const TDesC8& aObj )
-	{
-    _DBG_FILE("CNSmlDMSettingsAdapter12::SetProfileServerIdL(): begin");
-	TInt retVal = OpenSyncSessionAndProfileL( aPID, ESmlOpenReadWrite );
-    if( retVal != KErrNone )
-		{
-	    iCurrentProfile = 0;
-		iProfile.Close();
-        return KErrGeneral;	
-		}
-	iProfile.SetServerIdL( aObj );
-    TRAP(retVal,iProfile.UpdateL() );
-    iCurrentProfile = 0;
-    iProfile.Close();
-    _DBG_FILE( "CNSmlDMSettingsAdapter12::SetProfileServerIdL(): end" );
-	return retVal;
-	}
-
-// -----------------------------------------------------------------------------
-//  CNSmlDMSettingsAdapter12::SetProfileServerPasswordL
-//  The function sets the profile server password.
-// -----------------------------------------------------------------------------
-TInt CNSmlDMSettingsAdapter12::SetProfileServerPasswordL( const TInt aPID, 
-                                                        const TDesC8& aObj )
-	{
-    _DBG_FILE( "CNSmlDMSettingsAdapter12::SetProfileServerPasswordL(): begin" );
-	TInt retVal = OpenSyncSessionAndProfileL( aPID, ESmlOpenReadWrite );
-    if( retVal != KErrNone )
-		{
-	    iCurrentProfile = 0;
-		iProfile.Close();
-        return KErrGeneral;
-		}
-	iProfile.SetServerPasswordL( aObj );
-    iProfile.UpdateL();
-    iCurrentProfile = 0;
-    iProfile.Close();
-    _DBG_FILE( "CNSmlDMSettingsAdapter12::SetProfileServerPasswordL(): end" );
-	return KErrNone;
-	}
-
-// -----------------------------------------------------------------------------
-//  CNSmlDMSettingsAdapter12::SetProfileHttpPasswordL
-//  The function sets the profile network/http password.
-// -----------------------------------------------------------------------------
-
-
-  TInt CNSmlDMSettingsAdapter12::SetProfileHttpPasswordL( const TInt aPID, const TDesC8& aObj )
-  {
- TInt retVal = KErrNone;
-	 retVal = OpenSyncSessionAndProfileL( aPID, ESmlOpenReadWrite );
-    if( retVal != KErrNone )
-		{
-	    iCurrentProfile = 0;
-		iProfile.Close();
-        return KErrGeneral;	
-		}
-        
-	  RSyncMLConnection connection;
-	  TBuf8<KBufSize32> key; 
-      RArray<TSmlTransportId> connIdArray;
-      CleanupClosePushL( connIdArray );
-	  iProfile.ListConnectionsL( connIdArray );
-      if( connIdArray.Count() == 1 )
-        {
-        
-		connection.OpenL( iProfile, KUidNSmlMediumTypeInternet.iUid );
-		CleanupClosePushL( connection );
-		
-		connection.SetPropertyL( KNSmlHTTPAuth, KNSmlTrueVal );
-		connection.SetPropertyL( KNSmlHTTPPassword, aObj );
-		connection.UpdateL();
-		CleanupStack::PopAndDestroy(  );
-		}
-	  else
-		{
-	//	connection.SetPropertyL( KNSmlHTTPAuth, KNSmlFalseVal );
-		connection.UpdateL();
-		}
-		
-		       
-        CleanupStack::PopAndDestroy(   );
-    
-	return retVal;
-	
-	
-  	
-  }
-  
-  
-// -----------------------------------------------------------------------------
-//  CNSmlDMSettingsAdapter12::SetProfilePasswordL
-//  The function sets the profile password.
-// -----------------------------------------------------------------------------
-TInt CNSmlDMSettingsAdapter12::SetProfilePasswordL( const TInt aPID, 
-                                                    const TDesC8& aObj )
-	{
-    _DBG_FILE( "CNSmlDMSettingsAdapter12::SetProfilePasswordL(): begin" );
-	TInt retVal = KErrNone;
-    retVal = OpenSyncSessionAndProfileL( aPID, ESmlOpenReadWrite );
-    if( retVal != KErrNone )
-		{
-	    iCurrentProfile = 0;
-		iProfile.Close();
-        return retVal;	
-		}
-	iProfile.SetPasswordL( aObj );
-    iProfile.UpdateL();
-    iCurrentProfile = 0;
-    iProfile.Close();
-    _DBG_FILE( "CNSmlDMSettingsAdapter12::SetProfilePasswordL(): begin" );
-	return KErrNone;
-	}
-
-// -----------------------------------------------------------------------------
-//  CNSmlDMSettingsAdapter12::SetProfileConnectionPropertyL
-//  This function sets the profile IAP id.
-// -----------------------------------------------------------------------------
-TInt CNSmlDMSettingsAdapter12::SetProfileConnectionPropertyL( const TInt aLUID, 
-                                                            const TInt aIAPid )
-	{
-    TInt retVal = OpenSyncSessionAndProfileL( aLUID, ESmlOpenReadWrite );
-    if( retVal != KErrNone )
-		{
-	    iCurrentProfile = 0;
-		iProfile.Close();
-        return retVal;	
-		}
-    RArray<TSmlTransportId> connIdArray;
-    CleanupClosePushL( connIdArray );
-    iProfile.ListConnectionsL( connIdArray );
-    if( connIdArray.Count() == 1 )
-        {
-        RSyncMLTransport transport;
-        CleanupClosePushL( transport );
-	    transport.OpenL( iSyncSession, connIdArray[0] );
-	    const CSyncMLTransportPropertiesArray& props = transport.Properties();
-	    TInt index = props.Find( KNSmlIAPId );
-        if( index > 0 )
-            {
-            RSyncMLConnection conn;
-            CleanupClosePushL( conn );
-	        conn.OpenL( iProfile, connIdArray[0] );
-            HBufC8* apIdBuffer = HBufC8::NewLC( 4 );
-	        TPtr8 ptrIapIdBuf = apIdBuffer->Des();
-        	ptrIapIdBuf.Num( aIAPid );
-            conn.SetPropertyL( KNSmlIAPId, ptrIapIdBuf );
-            conn.UpdateL();
-            CleanupStack::PopAndDestroy( 2 ); //conn, apIdBuffer
-            retVal = KErrNone;
-            }
-        else
-            {
-            retVal = KErrNotFound;
-            }
-        CleanupStack::PopAndDestroy( 1 ); //transport
-        }
-    else
-        {
-        retVal = KErrNotFound;
-        }
-    iCurrentProfile = 0;
-    iProfile.Close();
-    CleanupStack::PopAndDestroy(); //connIdArray
-    return retVal;
-	}
-
-// -----------------------------------------------------------------------------
-//  CNSmlDMSettingsAdapter12::DeleteProfileL
-//  The function deleted the profile from DM database.
-// -----------------------------------------------------------------------------
-TInt CNSmlDMSettingsAdapter12::DeleteProfileL( const TInt aPID )
-	{
-    _DBG_FILE( "CNSmlDMSettingsAdapter12::DeleteProfileL(): begin" );
-	if( iSyncSessionOpen == EFalse )
-	    {
-        iSyncSession.OpenL();
-        iSyncSessionOpen = ETrue;
-	    }
-    
-	RArray<TSmlProfileId> profileIdArray;
-    CleanupClosePushL( profileIdArray );
-	TSmlUsageType usageType = ESmlDevMan;
-	iSyncSession.ListProfilesL( profileIdArray, usageType );
-	TInt index = profileIdArray.Find( aPID );
-	if ( index == KErrNotFound )
-		{
-        //No match
-        CleanupStack::PopAndDestroy();//profileIdArray
-		return KErrNotFound;		
-		}
-    iSyncSession.DeleteProfileL( aPID );
-    iSyncSession.Close();
-    iSyncSessionOpen = EFalse;
-    CleanupStack::PopAndDestroy();//profileIdArray
-    _DBG_FILE( "CNSmlDMSettingsAdapter12::DeleteProfileL(): end" );
-	return KErrNone;
-	}
-
-// -----------------------------------------------------------------------------
-//  CNSmlDMSettingsAdapter12::GetObjectL
-//  The function checks which leaf data to be fetched.
-// -----------------------------------------------------------------------------
-TInt CNSmlDMSettingsAdapter12::GetObjectL( TInt aLUID, TNSmlDMProfileData aDMField, 
-                                            CBufBase& aObject )
-    {
-    TInt retVal = KErrNone;
-    if( iField->Compare(KNSmlDdfAppId ) ==0 )
-        {
-         	aObject.InsertL(aObject.Size(),KNSmlDdfAppIdValue);
-         	return retVal;
-        	
-        }
-        
-    retVal = OpenSyncSessionAndProfileL( aLUID, ESmlOpenRead );
-    if( retVal != KErrNone )
-		{
-	    iCurrentProfile = 0;
-		iProfile.Close();
-        return retVal;	
-		}
-    switch ( aDMField )
-		{
-		case ( EProfileName ) :
-			{
-            GetProfileNameL( aObject );
-            }
-		break;
-		
-		case ( EProfileDMServerUsername ) :
-			{
-			GetProfileUserNameL( aObject );
-            }
-		break;
-
-		case ( EProfileURL ) :
-			{
-			GetProfileServerURLL( aObject );
-			TInt port(0);
-			if(ParseUri(aObject.Ptr(0),port)==KErrNone)
-			    {
-			    HBufC8* addr = aObject.Ptr(0).AllocLC();
-			    aObject.Reset();
-			    TInt portStart = addr->LocateReverse(KNSmlDMColon);
-			    aObject.InsertL(aObject.Size(),addr->Left(portStart));
-			    
-			    TInt portLen=addr->Mid(portStart).Locate(KNSmlDMUriSeparator);
-			    if(portLen!=KErrNotFound)
-			        {
-			        aObject.InsertL(aObject.Size(),addr->Mid(portStart+portLen));
-			        }
-			    	    			    
-			    CleanupStack::PopAndDestroy(); //addr
-			    }
-            }
-		break;
-
-		case ( EServerId ) :
-			{
-            GetServerIdL( aObject );
-            }
-		break;
-
-		case ( EProfileIAPId ) :
-			{
-		    retVal = GetConRefL( aObject );
-            }
-		break;
-
-		case ( EProfilePort ) :
-            {
-            GetProfileServerURLL( aObject );
-            if ( aObject.Size() == 0 )
-                {
-                retVal = KErrNone;
-                break;
-                }
-            GetProfilePortNumberL ( aObject );
-            }
-        break;
-        
-   		case ( EProfileDMServerPassword ) :
-			{
-			retVal = EInvalidObject;
-            }
-		break;
-
-		case ( ESharedSecret ) :
-            {//ServerPW
-            retVal = EInvalidObject;
-            }
-        break;
-        case ( EProfileId ) :
-        break;
-		case ( EProfileAddrType ) :
-		    {
-		    aObject.InsertL(aObject.Size(),KNSmlAddrtype);
-		    }
-		   break;
-		case (EProfileHttpUsername ):
-		    {
-		       retVal = GetHttpUsernameL(aObject);
-		    }
-		break;
-		case (EPRofileServerCred) :
-		    {
-		    aObject.InsertL(aObject.Size(),KDmAccAppAuthLevelSrv);
-		    
-		    }
-		  break;
-        case (EPRofileClientCred) :
-		    {
-		    aObject.InsertL(aObject.Size(),KDmAccAppAuthLevelCli);
-		    }
-		  break;
-		  
-		case (ETransportAuthName) :
-		    {
-    			TInt mediumType= ENone;
-    			GetProfileConnectiontypeL( mediumType );
-    			if( mediumType == EHttp)
-    			{
-    		    retVal = GetHttpUsernameL(aObject);
-    		    }
-    		    else if(mediumType == EObex)
-    		    {
-    		      aObject.InsertL(aObject.Size(),KNSmlDMNullDesc8);
-    		    }
-		    
-		    }
-		break;
-		
-		
-		case (EProfileTransport) :
-		{
-			TInt mediumType= ENone;
-			GetProfileConnectiontypeL( mediumType );
-			if( mediumType == EHttp)
-			{
-		    aObject.InsertL(aObject.Size(),KDmAccAppAuthLevelHttp);
-		    }
-		    else if(mediumType == EObex)
-		    {
-		      aObject.InsertL(aObject.Size(),KDmAccAppAuthLevelObx);
-		    }
-            
-		}
-
-       break;
-        case ( EAuthenticationRequired ) :
-		case ( EProfileAAuthType ):
-        case ( EServerNonce ) :
-        case ( EClientNonce ) :
-            {
-            retVal = GetDMAuthInfoL( aLUID, aDMField, aObject );
-            }
-        break;
-        
-     case EProfileLock :
-      {
-        	
-       TBool isProfileLocked = iProfile.ProfileLocked(EFalse, EFalse);
-       if(isProfileLocked)
-       {
-       	aObject.InsertL(aObject.Size(),KDmProfileLocked);
-       }
-       else
-       {
-       	aObject.InsertL(aObject.Size(),KDmProfileUnLocked);
-       }
-       
-      }   
-     break;		
-		default:
-			{
-			User::Panic( KNSmlIndexOutOfBoundStr, KNSmlPanicIndexOutOfBound );
-			}
-		}
-    iCurrentProfile = 0;
-    iProfile.Close();
-    return retVal;
-    }
-
-// -----------------------------------------------------------------------------
-//  CNSmlDMSettingsAdapter12::SetProfileConnectionPortNrL()
-//  The function sets the profile port number.
-// -----------------------------------------------------------------------------
-TInt CNSmlDMSettingsAdapter12::SetProfileConnectionPortNrL( const TInt aLUID, 
-                                                            const TDesC8& aPort )
-    {
-    _DBG_FILE( "CNSmlDMSettingsAdapter12::SetProfileConnectionPortNrL(): begin" );
-    TInt retVal = KErrNone;
-    
-    if( iPortNbr )
-        {
-        delete iPortNbr;
-        iPortNbr = NULL;
-        }
-    iPortNbr = HBufC8::NewL( aPort.Length() );
-    TPtr8 newPortNbr = iPortNbr->Des();
-    newPortNbr.Append( aPort );
-        
-    retVal = OpenSyncSessionAndProfileL( aLUID, ESmlOpenReadWrite );
-    if( retVal != KErrNone )
-		{
-	    iCurrentProfile = 0;
-		iProfile.Close();
-        _DBG_FILE( "CNSmlDMSettingsAdapter12::SetProfileConnectionPortNrL(): end" );
-        return retVal;	
-		}
-    
-    RArray<TSmlTransportId> transportIdArray;
-    CleanupClosePushL( transportIdArray );
-    iProfile.ListConnectionsL( transportIdArray );
-    
-    RSyncMLConnection conn;
-    CleanupClosePushL( conn );
-    conn.OpenL( iProfile, transportIdArray[0] );
-        
-    HBufC8* serverURI = conn.ServerURI().AllocLC();
-    if( serverURI->Length() == 0 )
-        {
-	    iCurrentProfile = 0;
-        iProfile.Close();
-        CleanupStack::PopAndDestroy( 3 ); //transportIdArray, conn, serverURI
-        _DBG_FILE( "CNSmlDMSettingsAdapter12::SetProfileConnectionPortNrL(): end" );
-        return retVal;
-	    }
-    TInt totalSize = serverURI->Size() + newPortNbr.Size() + 1;
-    HBufC8* newServerURI = HBufC8::NewL( totalSize );
-    CleanupStack::PushL( newServerURI );
-    SetPortNrToAddrStr( *serverURI, newServerURI, newPortNbr );
-    
-    conn.SetServerURIL( *newServerURI );
-    conn.UpdateL();
-    
-    CleanupStack::PopAndDestroy( 4 ); //transportIdArray, conn, serverURI, newServerURI
-    iCurrentProfile = 0;
-	iProfile.Close();
-    _DBG_FILE( "CNSmlDMSettingsAdapter12::SetProfileConnectionPortNrL(): end" );
-    return retVal;	
-    }
-
-// ------------------------------------------------------------------------------------------------
-//  CNSmlDMSettingsAdapter12::SetPortNrToAddrStr
-//  Sets a portnbr (separated with ':') to profile server URI. 
-// ------------------------------------------------------------------------------------------------
-void CNSmlDMSettingsAdapter12::SetPortNrToAddrStr( const TDesC8& aSrvURI, HBufC8* aNewURI, 
-                                                    const TDesC8& aPort )
-	{
-	TInt offset=0;
-    if( aSrvURI.Find( KNSmlDMSettingsHTTP ) == 0 )//http://
-		{
-		offset = KNSmlDMSettingsHTTP().Length();
-		}
-	else if( aSrvURI.Find( KNSmlDMSettingsHTTPS ) == 0 )//https://
-		{
-		offset = KNSmlDMSettingsHTTPS().Length();
-		}
-	TInt portStart = -1;
-    TInt separatorPos = aSrvURI.Length();
-    TInt i = 0;
-    for( i = offset; i < aSrvURI.Length(); i++ )
-		{
-		if( aSrvURI[i] == KNSmlDMColon )// ':'
-			{
-			portStart = i;
-			}
-		if( aSrvURI[i] == KNSmlDMUriSeparator )// '/'
-			{
-            separatorPos = i;
-			break;
-			}
-		}
-	
-    TPtr8 ptrNewSrvURI = aNewURI->Des();
-    if( portStart < 0 && separatorPos > 0 && iLeafType != EDMDelete )
-        {
-        ptrNewSrvURI.Append( aSrvURI.Left( separatorPos ) );//http://123.234.345.456
-        ptrNewSrvURI.Append( KNSmlDMColon );
-        ptrNewSrvURI.Append( aPort );
-        ptrNewSrvURI.Append( aSrvURI.Right( aSrvURI.Length() - separatorPos ) );
-        }
-    else if ( portStart > 0 && separatorPos > 0 && iLeafType != EDMDelete )
-        {
-        ptrNewSrvURI.Append( aSrvURI.Left( portStart + 1 ) );//123.234.345.456:
-        ptrNewSrvURI.Append( aPort );//123.234.345.456:xx(x)
-        ptrNewSrvURI.Append( aSrvURI.Right( aSrvURI.Length() - separatorPos ) );
-        }
-    else if ( portStart > 0 &&  iLeafType == EDMDelete ) //delete port number from uri
-        {
-        ptrNewSrvURI.Append( aSrvURI.Left( portStart ) );//123.234.345.456
-        ptrNewSrvURI.Append( aSrvURI.Right( aSrvURI.Length() - separatorPos ) );
-        }
-    else
-        {
-        ptrNewSrvURI.Append( aSrvURI );
-        }
-    return;
-	}
-
-// ------------------------------------------------------------------------------------------------
-//  CNSmlDMSettingsAdapter12::SetDMFieldDataL
-//  Selects and Sets value to a field based on field id got from URI.
-// ------------------------------------------------------------------------------------------------
-TInt CNSmlDMSettingsAdapter12::SetDMFieldDataL( const TInt aLUID, const TDesC8& aObject, 
-                                                const TNSmlDMProfileData aField )
-    {
-    TInt rValue = KErrGeneral;
-    TInt lockvalue =0;
-     if(aField != EProfileLock)
-    {
-      rValue=IsProfileLockedL(aLUID);	
-      if (rValue!= KErrNone)
-      {
-       return rValue;
-      }
-         
-     }
-     else if (aField == EProfileLock)
-     {
-     	 if (! iNewProfile)
-     	  {
-     	  	 lockvalue =0;
-     	  	  if(aObject.Length()> 1)
-     	  	  {
-     	  	    rValue = KErrArgument;
-              	 return rValue;
-     	  	  }
-           lockvalue = GetIntObject(aObject);
-           if(lockvalue != 0 && lockvalue != 1)
-               {
-               	  //lockvalue = 0; 
-               	  rValue = KErrArgument;
-               	 return rValue;
-               }  
-     	  	 rValue  = SetProfileLockL(aLUID , lockvalue);
-     	  	 return rValue;
-     	  }
-      
-     }
-      
-    switch ( aField )
-		{
-		case ( EProfileURL ) :
-			{
-		    rValue = SetProfileServerURIL( aLUID, aObject );    
-			}
-		break;
-		case ( EServerId ) :
-			{
-		    rValue = SetProfileServerIdL( aLUID, aObject );
-			}
-		break;
-        case ( ESharedSecret ) :
-			{
-		    rValue = SetProfileServerPasswordL( aLUID, aObject );
-			}
-		break;
-        case ( EProfileDMServerUsername ) :
-			{
-		    rValue = SetProfileUserNameL( aLUID, aObject );
-			}
-		break;
-        case ( EProfileDMServerPassword ) :
-			{
-		    rValue = SetProfilePasswordL( aLUID, aObject );
-			}
-		break;
-        case ( EProfileName ) :
-			{
-		    rValue = SetProfileDisplayNameL( aLUID, aObject );
-			}
-		break;
-        case ( EProfileIAPId ) :
-			{
-            rValue = SetConRefL( aLUID, aObject );
-		    }
-		break;
-		case ( ETransportAuthName ):
-		{
-		    OpenSyncSessionAndProfileL( aLUID, ESmlOpenReadWrite );
-		  	TInt mediumType = ENone;
-	    	GetProfileConnectiontypeL( mediumType );
-			if( mediumType == EHttp)
-			{
-		    rValue = SetProfileHttpUserNameL ( aLUID, aObject );
-		    }
-		    else if(mediumType == EObex)
-		    {
-		      rValue = KErrNone;
-		      
-		    }
-			
-	
-		//break;
-		}
-		break;
-		case ( EProfileTransportPassword ):
-		{
-		 TInt mediumType = ENone;
-		  OpenSyncSessionAndProfileL( aLUID, ESmlOpenReadWrite );
-	    	GetProfileConnectiontypeL( mediumType );
-			if( mediumType == EHttp)
-			{
-		    rValue = SetProfileHttpPasswordL ( aLUID, aObject );
-		    }
-		    else if(mediumType == EObex)
-		    {
-		      rValue = KErrNone;
-		      
-		    }		
-		}
-		break;
-		case (EProfileTransportAuthData) :
-			{
-				rValue = KErrNone;
-			}
-		break;
-		
-		case ( EProfileHttpUsername ) :
-		{
-			rValue = SetProfileHttpUserNameL ( aLUID, aObject );
-		}
-		break;
-		case ( EProfileHttpPassword ) :
-		{
-			rValue = SetProfileHttpPasswordL ( aLUID, aObject );
-		}
-		break;
-        case ( EProfileId ) :
-			{
-		    }
-		break;
-        case ( EProfilePort ) :
-			{
-			if(aObject.Size()<=5)
-			{
-			TInt port = GetIntObject(aObject);
-	        if( port > KPortMinSize && port < KPortMaxSize )
-		         {
-	    			TPortBuffer element;
-	    			element.iPortBuf=aObject;
-	    			element.iPortBufLUID = aLUID;
-	    			iPortBuffer.Append(element);
-	    			rValue=KErrNone;
-                 }
-                else
-                {
-				if (port <= KPortMinSize )
-				   rValue = KErrUnderflow;
-                	else
-                   rValue=KErrOverflow;
-                }
-			}
-			else
-			{
-					rValue=KErrOverflow;
-			}
-			// save information of the port
-		    }
-		break;
-		
-		case ( EProfileAddrType ) :
-			{
-			  if (aObject.Match(KNSmlAddrtype)!=KErrNotFound)
-			  rValue=KErrNone;
-			  
-			}
-		break;
-		
-		
-        case ( EProfileMediumType ) :
-			{
-            if ( iLeafType == EDMDelete )
-			    {
-                return KErrNone;
-			    }
-            iObject = GetIntObject( aObject );
-            if(iObject<0)
-                {
-                iObject = EHttp;
-                }
-            rValue = SetProfileAddrTypeL( aLUID, iObject );
-		    }
-		break;
-		case ( EProfileTransport) :
-		{
-			if (aObject.Match(KDmAccAppAuthLevelHttp)!=KErrNotFound)
-			{
-				iObject = EHttp;
-			}
-			else if (aObject.Match(KDmAccAppAuthLevelObx)!=KErrNotFound)
-			{
-				iObject = EObex;
-			}
-		 rValue = SetProfileAddrTypeL( aLUID, iObject );	
-		}
-		break;
-        case ( EAuthenticationRequired ) :
-        case ( EClientNonce ) :
-        case ( EServerNonce ) :
-		break;
-     case ( EProfileLock ) :
-              lockvalue =0;
-              lockvalue = GetIntObject(aObject);
-             if(lockvalue != 0 && lockvalue != 1)
-                   lockvalue = 0; 
-            
-            TLockBuffer element;
-	    	element.iProfileLock=lockvalue;
-	    	element.iProfileLockLUID = aLUID;
-	    	iProfileLockBuffer.Append(element);
-	    	rValue=KErrNone;
-           
-             
-          // rValue  = SetProfileLock(aLUID , lockvalue);
-     break;               
-        default:
-            rValue = KErrNotSupported;
-        }
-    return rValue;
-    }
-
-// -----------------------------------------------------------------------------
-//  CNSmlDMSettingsAdapter12::FillNodeInfoL
-//  The function fills the node or leaf information.
-// -----------------------------------------------------------------------------
-void CNSmlDMSettingsAdapter12::FillNodeInfoL( MSmlDmDDFObject& aNode, 
-                                            TSmlDmAccessTypes aAccTypes, 
-                                            MSmlDmDDFObject::TOccurence aOccurrence, 
-                                            MSmlDmDDFObject::TScope aScope, 
-                                            MSmlDmDDFObject::TDFFormat aFormat, 
-                                            const TDesC8& aDescription, 
-                                            const TDesC8& aDefaultValue, 
-                                            const TDesC8& aMimeType )
-    {
-    aNode.AddDFTypeMimeTypeL( aMimeType );
-    aNode.SetAccessTypesL( aAccTypes );
-	aNode.SetDescriptionL( aDescription );
-	aNode.SetOccurenceL( aOccurrence );
-	aNode.SetDefaultValueL( aDefaultValue );
-	aNode.SetScopeL( aScope );
-	aNode.SetDFFormatL( aFormat );
-    return;
-    }
-
-// -----------------------------------------------------------------------------
-//  CNSmlDMSettingsAdapter12::GetDMAuthInfoL
-//  This function gets authentication data from private API.
-// -----------------------------------------------------------------------------
-TInt CNSmlDMSettingsAdapter12::GetDMAuthInfoL( const TInt aLUID, 
-                                                const TNSmlDMProfileData aField, 
-                                                CBufBase& aObject )
-    {
-    _DBG_FILE( "CNSmlDMSettingsAdapter12::GetDMAuthInfoL(): begin" );
-   
-    CNSmlDMAuthInfo* authInfo = new (ELeave) CNSmlDMAuthInfo;
-    CleanupStack::PushL( authInfo );
-    
-    authInfo->iProfileId = aLUID + KMaxDataSyncID;
-    iPrivateApi.OpenL();
-    TInt ret = KErrNone;
-    
-    TRAPD(err,iPrivateApi.GetDMAuthInfoL( *authInfo ));
-
-    if(err==KErrNone)
-    	{
-	    if ( aField == EServerNonce )
-	        {
-	        aObject.InsertL( aObject.Size(), *authInfo->iServerNonce );
-	        }
-	    else if ( aField == EClientNonce )
-	        {
-	        aObject.InsertL( aObject.Size(), *authInfo->iClientNonce );
-	        }
-	    else if (( aField == EAuthenticationRequired ) || (aField == EProfileAAuthType))
-	        {
-	        TUint authPref = authInfo->iAuthPref;
-	        /*if( authPref == ENoAuth )
-	            {
-	            aObject.InsertL( aObject.Size(), KNSmlDMAuthPrefNoAuth ); 
-	            }*/
-	         if( authPref == EBasic )
-	            {
-	            if(aField == EAuthenticationRequired)
-	            {
-	            aObject.InsertL( aObject.Size(), KNSmlDMAuthPrefBasic );	
-	            }
-	            else
-	            {
-	            aObject.InsertL( aObject.Size(), KNSmlDMAuthTypeBasic );	
-	            }
-	            
-	            }
-	        else if( authPref == EMD5 )
-	            {
-	            if(aField == EAuthenticationRequired)
-	            {
-	            aObject.InsertL( aObject.Size(), KNSmlDMAuthPrefMD5 );	
-	            }
-	            else
-	            {
-				aObject.InsertL( aObject.Size(), KNSmlDMAuthTypeMD5 );
-	            }
-	            
-	            }
-	        else
-	            {
-	            aObject.InsertL( aObject.Size(), KNullDesC8 );
-	            }
-	        }
-    	}
-    iPrivateApi.Close();
-    CleanupStack::PopAndDestroy(authInfo);
-    _DBG_FILE( "CNSmlDMSettingsAdapter12::GetDMAuthInfoL(): end" );
-    return ret;
-    }
-
-// -----------------------------------------------------------------------------
-//  CNSmlDMSettingsAdapter12::DeleteDMAuthInfoL
-//  This function resets the authentication data.
-// -----------------------------------------------------------------------------
-TInt CNSmlDMSettingsAdapter12::DeleteDMAuthInfoL( const TInt aLUID, 
-                                                const TNSmlDMProfileData aField )
-    {
-    _DBG_FILE( "CNSmlDMSettingsAdapter12::DeleteDMAuthInfoL(): begin" );
-    CNSmlDMAuthInfo* authInfo = new (ELeave) CNSmlDMAuthInfo;;
-    CleanupStack::PushL( authInfo );
-    authInfo->iProfileId = aLUID;
-    iPrivateApi.OpenL();
-    iPrivateApi.GetDMAuthInfoL( *authInfo );
-    if( aField == EServerNonce )
-        {
-        authInfo->iServerNonce->Des().Delete( 0, authInfo->iServerNonce->Des().Size() );
-        authInfo->iServerNonce->Des().Insert( 0, KNullDesC8 );
-        }
-    else if( aField == EClientNonce )
-        {
-        authInfo->iClientNonce->Des().Delete( 0, authInfo->iClientNonce->Des().Size() );
-        authInfo->iClientNonce->Des().Insert( 0, KNullDesC8 );
-        }
-    else if( aField == EAuthenticationRequired )
-        {
-        authInfo->iAuthPref = 0;
-        }
-    iPrivateApi.SetDMAuthInfoL( *authInfo );
-    iPrivateApi.Close();
-    CleanupStack::PopAndDestroy(authInfo);
-	_DBG_FILE( "CNSmlDMSettingsAdapter12::DeleteDMAuthInfoL(): end" );
-    return KErrNone;
-    }
-
-// -----------------------------------------------------------------------------
-// CNSmlDMSettingsAdapter12::SetProfileAddrTypeL
-// This function sets the AddrType value.    
-// -----------------------------------------------------------------------------
-TInt CNSmlDMSettingsAdapter12::SetProfileAddrTypeL( const TInt aLUID, 
-                                                    const TInt aIntObj )
-    {
-    _DBG_FILE( "CNSmlDMSettingsAdapter12::SetProfileAddrTypeL(): begin" );
-    TInt retVal = OpenSyncSessionAndProfileL( aLUID, ESmlOpenReadWrite );
-    if( retVal != KErrNone )
-		{
-	    iCurrentProfile = 0;
-		iProfile.Close();
-        _DBG_FILE( "CNSmlDMSettingsAdapter12::SetProfileAddrTypeL(): end" );
-        return retVal;	
-		}
-    TInt mediumType = ENone;
-    GetMediumTypeL( aIntObj, mediumType );
-    if( mediumType == ENone )
-        {
-	    iCurrentProfile = 0;
-        iProfile.Close();    
-        return KErrGeneral;
-        }
-    RArray<TSmlTransportId> transportIdArray;
-    CleanupClosePushL( transportIdArray );
-    iProfile.ListConnectionsL( transportIdArray );
-    RSyncMLConnection conn;
-    CleanupClosePushL( conn );
-    conn.OpenL( iProfile, transportIdArray[0] );
-    HBufC8* sURI = conn.ServerURI().AllocLC();
-    if(mediumType!=transportIdArray[0])
-        {
-        if ( !FeatureManager::FeatureSupported( KFeatureIdSyncMlDmObex  ) )
-            {
-            CleanupStack::PopAndDestroy( 3 );//transportIdArray, conn, sURI
-            return EInvalidObject;
-            }
-        else
-            {
-            conn.CreateL(iProfile,mediumType);
-            }
-        }
-    conn.SetServerURIL( *sURI );
-    conn.UpdateL(); 	                    
-    CleanupStack::PopAndDestroy( 3 );//transportIdArray, conn, sURI
-    iCurrentProfile = 0;
-    iProfile.Close();
-    _DBG_FILE( "CNSmlDMSettingsAdapter12::SetProfileAddrTypeL(): end" );
-    return KErrNone;
-    }
-
-// -----------------------------------------------------------------------------
-// CNSmlDMSettingsAdapter12::GetHttpUsernameL
-// This function gets the httpuser value.    
-// -----------------------------------------------------------------------------
-	
-
-TInt CNSmlDMSettingsAdapter12::GetHttpUsernameL( CBufBase& aObject )
-	{
-	
-	  TInt retVal = KErrNone;
-      TBuf8<KBufSize32> key; 
-      TInt intValue;
-      
-      RArray<TSmlTransportId> connIdArray;
-      CleanupClosePushL( connIdArray );
-	  iProfile.ListConnectionsL( connIdArray );
-      if( connIdArray.Count() == 1 )
-        {
-        RSyncMLTransport transport;
-        CleanupClosePushL( transport );
-	    transport.OpenL( iSyncSession, connIdArray[0] );
-    	const CSyncMLTransportPropertiesArray&  arr = transport.Properties();
-		const TSyncMLTransportPropertyInfo& info = arr.At( EPropertyHttpUsed );
-		key = info.iName;
-		RSyncMLConnection conn;
-        CleanupClosePushL( conn );
-	    conn.OpenL( iProfile, connIdArray[0] );
-       	HBufC8* value = conn.GetPropertyL( key ).AllocLC();
-        intValue = GetIntObject( *value );
-        CleanupStack::PopAndDestroy(  ); //value
-        if ( intValue == 1 )
-        	{
-                retVal = KErrNone;
-                const TSyncMLTransportPropertyInfo& info2 = arr.At( EPropertyHttpUserName );
-                key= info2.iName;
-                HBufC8* value = conn.GetPropertyL( key ).AllocLC();
-                aObject.InsertL(aObject.Size(),value->Des());
-                CleanupStack::PopAndDestroy(  ); //value
-                }
-                else
-                    {
-                    retVal = KErrNotFound;
-                    }
-               CleanupStack::PopAndDestroy( 2 ); //  conn, transport
-        }
-        CleanupStack::PopAndDestroy(  ); //connIdArray
-    
-	return retVal;
-	}
-
-// -----------------------------------------------------------------------------
-//  CNSmlDMSettingsAdapter12::GetProfileConnectiontypeL
-//  The function gets the profile medium type.
-// -----------------------------------------------------------------------------
-TInt CNSmlDMSettingsAdapter12::GetProfileConnectiontypeL( TInt& aMediumTYpe )
-	{
-    _DBG_FILE( "CNSmlDMSettingsAdapter12::GetProfileConnectiontypeL(): begin" );
-	RArray<TSmlTransportId> transportIdArray;
-    CleanupClosePushL( transportIdArray );
-	iProfile.ListConnectionsL( transportIdArray );
-	TInt transportItems = transportIdArray.Count();
-    if( transportItems == 0 )
-		{
-		//No matching items
-        CleanupStack::PopAndDestroy(); //transportIdArray	
-		return KErrGeneral;
-		}
-	else if( transportItems > 1 )
-		{
-		//Error case : against specification
-        CleanupStack::PopAndDestroy(); //transportIdArray	
-		return KErrGeneral;
-		}
-	aMediumTYpe = 0;
-    if ( transportIdArray[0] == KUidNSmlMediumTypeInternet.iUid )
-        {
-        aMediumTYpe = 1; //EHttp;
-        }
-    else if ( transportIdArray[0] == KUidNSmlMediumTypeBluetooth.iUid ||
-              transportIdArray[0] == KUidNSmlMediumTypeUSB.iUid ||   
-              transportIdArray[0] == KUidNSmlMediumTypeIrDA.iUid  )
-        {
-        aMediumTYpe = 3; //EObex;
-        }
-    CleanupStack::PopAndDestroy( 1 ); //transportIdArray, SetIntObjectLC
-	return KErrNone;
-	}
-
-// -----------------------------------------------------------------------------
-//  CNSmlDMSettingsAdapter12::GetProfileIAPIdL
-//  The function gets the profile IAP Id.
-// -----------------------------------------------------------------------------
-TInt CNSmlDMSettingsAdapter12::GetProfileIAPIdL( TInt& aIAPid )
-	{
-    _DBG_FILE( "CNSmlDMSettingsAdapter12::GetProfileIAPIdL(): begin" );
-    TInt retVal = KErrGeneral;
-    aIAPid = -1;
-    RArray<TSmlTransportId> connIdArray;
-    CleanupClosePushL( connIdArray );
-    iProfile.ListConnectionsL( connIdArray );
-    if( connIdArray.Count() == 1 )
-        {
-        RSyncMLTransport transport;
-        CleanupClosePushL( transport );
-	    transport.OpenL( iSyncSession, connIdArray[0] );
-	    const CSyncMLTransportPropertiesArray& props = transport.Properties();
-	    TInt index = props.Find( KNSmlIAPId );
-        if( index > 0 )
-            {
-            RSyncMLConnection conn;
-            CleanupClosePushL( conn );
-	        conn.OpenL( iProfile, connIdArray[0] );
-            HBufC8* apId = conn.GetPropertyL( KNSmlIAPId ).AllocLC();
-            aIAPid = GetIntObject( *apId );
-            CleanupStack::PopAndDestroy( 2 ); //conn, apId
-            retVal = KErrNone;
-            }
-        else
-            {
-            retVal = KErrNotFound;
-            }
-        CleanupStack::PopAndDestroy( 1 ); //transport
-	    iCurrentProfile = 0;
-        iProfile.Close();
-        }
-    else
-        {
-        retVal = KErrNotFound;
-        }
-    CleanupStack::PopAndDestroy(); //connIdArray
-    _DBG_FILE( "CNSmlDMSettingsAdapter12::GetProfileIAPIdL(): end" );
-    return retVal;
-    }
-
-// -----------------------------------------------------------------------------
-//  CNSmlDMSettingsAdapter12::GetProfileServerURLL
-//  The function gets the profile Server URI.
-// -----------------------------------------------------------------------------
-void CNSmlDMSettingsAdapter12::GetProfileServerURLL( CBufBase& aURL )
-	{
-    _DBG_FILE( "CNSmlDMSettingsAdapter12::GetProfileServerURLL(): begin" );
-    RArray<TSmlTransportId> transportIdArray;
-    CleanupClosePushL( transportIdArray );
-	iProfile.ListConnectionsL( transportIdArray );
-    if( transportIdArray.Count() > 0 )
-        {
-        RSyncMLConnection profConn;
-        CleanupClosePushL( profConn );
-	    profConn.OpenL( iProfile, transportIdArray[0] );
-	    HBufC8* sURI = profConn.ServerURI().AllocL();
-        CleanupStack::PushL( sURI );
-        TPtr8 uriPtr = sURI->Des();
-        if( uriPtr.Length() > 0 )
-            {
-            aURL.InsertL( aURL.Size(),uriPtr );
-            }
-        else
-            {
-            aURL.InsertL( aURL.Size(), KNullDesC8 );
-            }
-        CleanupStack::PopAndDestroy( 2 );//profConn, sURI
-        }
-    CleanupStack::PopAndDestroy(); //transportIdArray
-    _DBG_FILE( "CNSmlDMSettingsAdapter12::GetProfileServerURLL(): end" );
-    return;
-	}
-
-// -----------------------------------------------------------------------------
-//	CNSmlDMSettingsAdapter12::GetMediumTypeL
-//	Checks the requested medium type.
-// -----------------------------------------------------------------------------
-void CNSmlDMSettingsAdapter12::GetMediumTypeL( const TInt aIntObj, 
-                                            TInt& aMediumType )
-    {
-    _DBG_FILE( "CNSmlDMSettingsAdapter12::GetMediumTypeL(): begin" );
-    if( aIntObj == EHttp || aIntObj == EWsp )
-        {
-        aMediumType = KUidNSmlMediumTypeInternet.iUid;
-        return;
-        }
-    RArray<TSmlTransportId> transportIdArray;
-    CleanupClosePushL( transportIdArray );
-    iSyncSession.ListTransportsL( transportIdArray );
-    
-    if ( transportIdArray.Find( KUidNSmlMediumTypeBluetooth.iUid ) != KErrNotFound )
-        {
-        aMediumType = KUidNSmlMediumTypeBluetooth.iUid;
-        }
-    else if ( transportIdArray.Find( KUidNSmlMediumTypeUSB.iUid ) != KErrNotFound )
-        {
-        aMediumType = KUidNSmlMediumTypeUSB.iUid;
-        }
-    else if ( transportIdArray.Find( KUidNSmlMediumTypeIrDA.iUid ) != KErrNotFound )
-        {
-        aMediumType = KUidNSmlMediumTypeIrDA.iUid;
-        }
-    CleanupStack::PopAndDestroy(); //transportIdArray
-    _DBG_FILE( "CNSmlDMSettingsAdapter12::GetMediumTypeL(): end" );
-    return;    
-    }
-
-// -----------------------------------------------------------------------------
-//	CNSmlDMSettingsAdapter12::GetServerIdL
-//	Gets the server id value.
-// -----------------------------------------------------------------------------
-void CNSmlDMSettingsAdapter12::GetServerIdL( CBufBase& aObject )
-    {
-    _DBG_FILE( "CNSmlDMSettingsAdapter12::GetServerIdL(): begin" );
-    HBufC8* serverId = iProfile.ServerId().AllocL();
-    CleanupStack::PushL( serverId );
-    aObject.InsertL( aObject.Size(), *serverId );
-    CleanupStack::PopAndDestroy( 1 ); //serverId
-    _DBG_FILE( "CNSmlDMSettingsAdapter12::GetServerIdL(): end" );
-    return;
-    }
-
-// -----------------------------------------------------------------------------
-//	CNSmlDMSettingsAdapter12::GetProfileNameL
-//	Gets the display name value.
-// -----------------------------------------------------------------------------
-void CNSmlDMSettingsAdapter12::GetProfileNameL( CBufBase& aObject )
-    {
-    _DBG_FILE( "CNSmlDMSettingsAdapter12::GetProfileNameL(): begin" );
-    HBufC16* dataBuf = iProfile.DisplayName().AllocL();
-    CleanupStack::PushL( dataBuf );
-    TPtr16 ptrDisplayName = dataBuf->Des();
-    HBufC8* dataBuf8 = HBufC8::NewL( ptrDisplayName.Length() * 2 );
-    CleanupStack::PushL( dataBuf8 );
-
-    TPtr8 ptrDisplayName8 = dataBuf8->Des();
-    ptrDisplayName8 = ConvertTo8LC( ptrDisplayName );
-    aObject.InsertL( aObject.Size(), ptrDisplayName8 );
-    CleanupStack::PopAndDestroy( 3 );//dataBuf, ConvertTo8LC
-    _DBG_FILE("CNSmlDMSettingsAdapter12::GetProfileNameL(): end");
-    return;
-    }
-
-// -----------------------------------------------------------------------------
-//	CNSmlDMSettingsAdapter12::GetProfileUserNameL
-//	Gets the profile user name value.
-// -----------------------------------------------------------------------------
-void CNSmlDMSettingsAdapter12::GetProfileUserNameL( CBufBase& aObject )
-    {
-    _DBG_FILE( "CNSmlDMSettingsAdapter12::GetProfileUserNameL(): begin" );
-    HBufC8* dataBuf = iProfile.UserName().AllocL();
-    CleanupStack::PushL( dataBuf );
-    TPtr8 ptrUserName = dataBuf->Des();
-    aObject.InsertL( aObject.Size(), ptrUserName );
-    CleanupStack::PopAndDestroy();//dataBuf
-    _DBG_FILE( "CNSmlDMSettingsAdapter12::GetProfileUserNameL(): end" );
-    return;
-    }
-
-// -----------------------------------------------------------------------------
-//	CNSmlDMSettingsAdapter12::GetProfilePortNumberL
-//	Gets the port number value.
-// -----------------------------------------------------------------------------
-void CNSmlDMSettingsAdapter12::GetProfilePortNumberL( CBufBase& aObject )
-    {
-    _DBG_FILE( "CNSmlDMSettingsAdapter12::GetProfilePortNumberL(): begin" );
-    TInt bSize = aObject.Size();
-    TInt portNum = 0;
-    HBufC8* bufStorage = HBufC8::NewLC( bSize );
-	TPtr8 bufStoragePtr = bufStorage->Des();
-	aObject.Read( 0, bufStoragePtr, aObject.Size() );
-	aObject.Reset();
-	
-    //find out the port number
-    ParseUri( *bufStorage, portNum );
-	aObject.InsertL( aObject.Size(), SetIntObjectLC( portNum ) );
-
-    CleanupStack::PopAndDestroy( 2 ); //bufStorage, SetIntObjectLC()
-    _DBG_FILE( "CNSmlDMSettingsAdapter12::GetProfilePortNumberL(): end" );
-    return;
-    }
-
-// -----------------------------------------------------------------------------
-//  CNSmlDMSettingsAdapter12::SetAuthInfoL
-//  The function checks if authinfo already exits. If exits command is replace.
-// -----------------------------------------------------------------------------
-void CNSmlDMSettingsAdapter12::SetAuthInfoL( const TInt aLUID, 
-                                            const TNSmlDMProfileData aField, 
-                                            const TDesC8& aObject, TInt& aStatus )
-    {
-    _DBG_FILE( "CNSmlDMSettingsAdapter12::SetAuthInfoL(): begin" );
-    
-    CNSmlDMAuthInfo* authInfo = new (ELeave) CNSmlDMAuthInfo();
-    CleanupStack::PushL( authInfo );
-    authInfo->iProfileId = aLUID;
-    
-    iPrivateApi.OpenL();
-    TRAPD( err, iPrivateApi.GetDMAuthInfoL( *authInfo ) );
-    
-    if ( err )
-        {
-        CleanupStack::PopAndDestroy( authInfo );
-        iPrivateApi.Close();
-        aStatus = err;
-        return;
-        }
-    
-    CNSmlDMAuthInfo* newAuthInfo = new (ELeave) CNSmlDMAuthInfo();
-    CleanupStack::PushL( newAuthInfo );
-    newAuthInfo->iProfileId = aLUID;
-
-    if ( aField == EServerNonce )
-        {
-        newAuthInfo->iServerNonce = aObject.Alloc();
-        newAuthInfo->iClientNonce = authInfo->iClientNonce->Des().Alloc();
-        newAuthInfo->iAuthPref = authInfo->iAuthPref;
-        
-        iPrivateApi.SetDMAuthInfoL( *newAuthInfo );
-        }
-    else if ( aField == EClientNonce )
-        {
-        newAuthInfo->iServerNonce = authInfo->iServerNonce->Des().Alloc();
-        newAuthInfo->iClientNonce = aObject.Alloc();
-        newAuthInfo->iAuthPref = authInfo->iAuthPref;
-        
-        iPrivateApi.SetDMAuthInfoL( *newAuthInfo );
-        }
-    else if ( aField == EAuthenticationRequired )
-        {
-        if ( aObject.Match( KNSmlDMAuthPrefNoAuth ) !=  KErrNotFound )
-            {
-            newAuthInfo->iAuthPref = ENoAuth;
-            }
-        else if ( aObject.Match( KNSmlDMAuthPrefBasic ) !=  KErrNotFound )
-            {
-            newAuthInfo->iAuthPref = EBasic;
-            }
-        else if ( aObject.Match( KNSmlDMAuthPrefMD5 ) !=  KErrNotFound )
-            {
-            newAuthInfo->iAuthPref = EMD5;
-            }
-        newAuthInfo->iServerNonce = authInfo->iServerNonce->Des().Alloc();
-        newAuthInfo->iClientNonce = authInfo->iClientNonce->Des().Alloc();
-        
-        iPrivateApi.SetDMAuthInfoL( *newAuthInfo );
-        }
-    
-    CleanupStack::PopAndDestroy( newAuthInfo );
-    CleanupStack::PopAndDestroy( authInfo );
-    
-    iPrivateApi.Close();
-    aStatus = KErrNone;
-    _DBG_FILE( "CNSmlDMSettingsAdapter12::SetAuthInfoL(): end" );
-    return;
-	}
-
-//------------------------------------------------------------------------------
-// CNSmlDMSettingsAdapter12::AddNodeBufferL()
-// Buffers Node Object
-//------------------------------------------------------------------------------
-void CNSmlDMSettingsAdapter12::AddNodeBufferL( const TDesC8& aURI,
-		const TInt aStatusRef)
-	{
-	_DBG_FILE( "CNSmlDMSettingsAdapter12::AddNodeBufferL(): begin" );
-	TInt index = -1;
-
-	for (TInt i = 0; i<iBuffer->Count (); i++)
-		{
-		if ( iBuffer->At(i).iMappingName->Compare (aURI)== 0)
-			{
-			index = i;
-			//CallBack for duplicate
-			_DBG_FILE( "CNSmlDMSettingsAdapter12::AddNodeBufferL(): EAlreadyExists end" );
-			iCallBack->SetStatusL ( aStatusRef, CSmlDmAdapter::EAlreadyExists);
-			break;
-			}
-		}
-
-	if ( index<0)
-		{
-		TNSmlDMBufferElement newNode;
-		newNode.iMappingName = aURI.AllocLC ();
-		newNode.iLeafBuf = new (ELeave) CArrayFixFlat <TNSmlDMLeafElement> (4);
-		newNode.iExecuted = EFalse;
-		newNode.iDMBuffStatusref = aStatusRef;
-		newNode.iAddr = EFalse;
-		newNode.iServerId = EFalse;
-		newNode.iUName = EFalse;
-		newNode.iServerName = EFalse;
-
-		iBuffer->AppendL (newNode);
-		//newNode.iMappingName
-		CleanupStack::Pop ();
-		}
-	_DBG_FILE( "CNSmlDMSettingsAdapter12::AddNodeBufferL(): end" );
-	}
-
-//------------------------------------------------------------------------------
-// CNSmlDMSettingsAdapter12::AddLeafBufferL()
-// Buffers Leaf Obj & checks for Mandatory fields
-//------------------------------------------------------------------------------
-void CNSmlDMSettingsAdapter12::AddLeafBufferL( const TDesC8& aURI,
-		const TDesC8& aObject, const TInt aStatusRef)
-	{
-	_DBG_FILE( "CNSmlDMSettingsAdapter12::AddLeafBufferL(): begin" );
-	TNSmlDMLeafElement newCommand;
-
-	newCommand.iUri = aURI.AllocLC ();
-	newCommand.iData = aObject.AllocLC ();
-	newCommand.iLuid = HBufC8::NewLC (8); //Allocate Mem. for iLUID
-	newCommand.iStatusRef = aStatusRef;
-	//Add Leaf to the index updated by UpdateLeafObj
-	iBuffer->At(iExecutionIndex).iLeafBuf->AppendL (newCommand);
-	// iUri, iData, ILuid
-	CleanupStack::Pop (3);
-	SetField ( aURI);
-	SetURIInProcessL ( aURI);
-	if ( iField->Compare (KNSmlDdfAddr)== 0)
-		{
-		iBuffer->At(iExecutionIndex).iAddr = ETrue;
-		}
-	else
-		if ( iField->Compare (KNSmlDdfServerId)== 0)
-			{
-			if(!IsServerIDExistL(aObject))
-				iBuffer->At(iExecutionIndex).iServerId = ETrue;
-			}
-		else
-			if ( iField->Compare (KNSmlDdfAAuthName)== 0)
-				{
-				//AAuthName under AppAuthCli
-				if ( iURIField->Find (KDmAccAppAuthDyn2)!= KErrNotFound)
-					iBuffer->At(iExecutionIndex).iUName = ETrue;
-				}
-			else
-				if ( iField->Compare (KNSmlDdfName)== 0)
-					{
-					iBuffer->At(iExecutionIndex).iServerName = ETrue;
-					}
-
-	//  If Address,ServerId,ServerName,UserName then Add
-
-	if ( iBuffer->At(iExecutionIndex).iAddr && iBuffer->At(iExecutionIndex).iServerId &&iBuffer->At(iExecutionIndex).iUName && iBuffer->At(iExecutionIndex).iServerName)
-		{
-		ExecuteBufferL ();
-		iExecutionIndex = -1;
-		}
-	_DBG_FILE( "CNSmlDMSettingsAdapter12::AddLeafBufferL(): end" );
-	return;
-	}
-
-//------------------------------------------------------------------------------
-// CNSmlDMSettingsAdapter12::ExecuteBufferL()
-// Adds the Node/Leaf obj to the db
-//------------------------------------------------------------------------------
-void CNSmlDMSettingsAdapter12::ExecuteBufferL()
-	{
-	_DBG_FILE( "CNSmlDMSettingsAdapter12::ExecuteBufferL(): begin" );
-	TBuf8<8> newLUID;
-	TInt rValue;
-	//Buffer is being Executed
-	iBufOn = ETrue;
-
-	// Robustness check for Execution Index
-	if ( iExecutionIndex<0)
-		{
-		return;
-		}
-
-	//Execute BufferL is called from CompleteOutstandingCmdsL only when -
-	//mandatory fields are not set. Dont update Node/Leaf to the db, return a failure
-
-	if ( !iComplete)
-		rValue = CreateNewProfileL (iLUID);
-	else
-		rValue = CSmlDmAdapter::EError;
-
-	iBuffer->At(iExecutionIndex).iExecuted = ETrue;
-
-	if ( rValue != KErrNone)
-		{
-		if ( rValue == KErrNoMemory)
-			{
-			iCallBack->SetStatusL ( iBuffer->At(iExecutionIndex).iDMBuffStatusref, CSmlDmAdapter::ENoMemory);
-			}
-		else
-			if ( rValue == KErrNotSupported)
-				{
-				iCallBack->SetStatusL ( iBuffer->At(iExecutionIndex).iDMBuffStatusref,
-						CSmlDmAdapter::EInvalidObject);
-				}
-			else
-				if ( rValue == KErrInUse)
-					{
-					iCallBack->SetStatusL ( iBuffer->At(iExecutionIndex).iDMBuffStatusref,
-							CSmlDmAdapter::EObjectInUse);
-					}
-				else
-					if ( rValue == KErrDiskFull)
-						{
-						iCallBack->SetStatusL ( iBuffer->At(iExecutionIndex).iDMBuffStatusref,
-								CSmlDmAdapter::EDiskFull);
-						}
-					else
-						{
-						iCallBack->SetStatusL ( iBuffer->At(iExecutionIndex).iDMBuffStatusref,
-								CSmlDmAdapter::EError);
-						}
-		// dont return, UpdateLeafObjectL will update the callback status for leaf Nodes 
-		}
-	else
-		{
-		if ( iLUID >= KMaxDataSyncID)
-			{
-			newLUID.Num ( iLUID - KMaxDataSyncID);
-			}
-		else
-			{
-			newLUID.Num ( iLUID);
-			}
-
-		iCallBack->SetMappingL ( *iBuffer->At(iExecutionIndex).iMappingName, newLUID);
-
-		iCallBack->SetStatusL (iBuffer->At(iExecutionIndex).iDMBuffStatusref, CSmlDmAdapter::EOk);
-		}
-
-	for (TInt val= 0; val < iBuffer->At(iExecutionIndex).iLeafBuf->Count ();val++)
-		{
-		//Update the LUID data in the Leaf structure with the Profile LUID before calling UpdateLeafObj
-		TPtr8 tempLUID(iBuffer->At(iExecutionIndex).iLeafBuf->At(val).iLuid->Des ());
-		tempLUID.Append (newLUID);
-		UpdateLeafObjectL (*iBuffer->At(iExecutionIndex).iLeafBuf->At(val).iUri, *iBuffer->At(iExecutionIndex).iLeafBuf->At(val).iLuid, *iBuffer->At(iExecutionIndex).iLeafBuf->At(val).iData, *iBuffer->At(iExecutionIndex).iMappingName, iBuffer->At(iExecutionIndex).iLeafBuf->At(val).iStatusRef);
-
-		}
-
-	// Delete the dynamically allocated buffers (Node/Leaf obj)
-
-	ClearBuffer ( iBuffer->At(iExecutionIndex).iLeafBuf);
-
-	delete iBuffer->At(iExecutionIndex).iLeafBuf;
-
-	if ( iBuffer->At(iExecutionIndex).iMappingName)
-		{
-		delete iBuffer->At(iExecutionIndex).iMappingName;
-		iBuffer->At(iExecutionIndex).iMappingName = NULL;
-		}
-
-	iBuffer->Delete (iExecutionIndex);
-	iBuffer->Compress ();
-	//Buffer Execution Complete
-	iBufOn = EFalse;
-    _DBG_FILE( "CNSmlDMSettingsAdapter12::ExecuteBufferL(): end" );
-	}
-
-//------------------------------------------------------------------------------
-// TPtrC8 CNSmlDMSettingsAdapter12::ParentURI(const TDesC8& aURI)
-// returns parent uri 
-// Searches till the 2nd "/" is reached
-//------------------------------------------------------------------------------
-TPtrC8 CNSmlDMSettingsAdapter12::ParentURI(const TDesC8& aURI)
-	{
-	_DBG_FILE( "CNSmlDMSettingsAdapter12::ParentURI(): begin" );
-	TInt count;
-	TInt flag = 0;
-	for (count=0; count<=aURI.Length ()-1;count++)
-		{
-
-		if ( aURI[count]=='/')
-			{
-			flag++;
-			if ( flag == KDynNodePosn)   // KDynNodePosn =2 --> DMAcc/DMIDxxx
-				break;
-			}
-		}
-        _DBG_FILE( "CNSmlDMSettingsAdapter12::ParentURI(): end" ); 
-	return aURI.Left (count);
-	}
-
-//-----------------------------------------------------------------------------------------    
-// Clears the elements of the passed in LeafElement Structure
-//-----------------------------------------------------------------------------------------
-void CNSmlDMSettingsAdapter12::ClearBuffer(
-		CArrayFixFlat<TNSmlDMLeafElement>* aBuffer)
-	{
-	_DBG_FILE( "CNSmlDMSettingsAdapter12::ClearBuffer(): begin" );
-	for (TInt i = 0; i < aBuffer->Count (); i++)
-		{
-		delete aBuffer->At(i).iUri;
-		aBuffer->At(i).iUri = NULL;
-
-		delete aBuffer->At(i).iData;
-		aBuffer->At(i).iData = NULL;
-
-		delete aBuffer->At(i).iLuid;
-		aBuffer->At(i).iLuid = NULL;
-		}
-
-	aBuffer->Reset ();
-	_DBG_FILE( "CNSmlDMSettingsAdapter12::ClearBuffer(): end" );
-	}
-
-//--------------------------------------------------------------------
-//TInt CNSmlDMSettingsAdapter::IsDMAccUriFormatMatchPredefined(const TDesC8 & aURI)
-//
-//-------------------------------------------------------------------
-
-
-TBool CNSmlDMSettingsAdapter12::IsDMAccUriFormatMatchPredefined(const TDesC8 & aURI)
-{
-	
-	// include strings for  tree for Bearer , DNS related Dynamic nodes . 
-	
-	if(aURI.Match(_L8("DMAcc/DMId*"))   != KErrNotFound )
-	{
-		return ETrue;
-	}
-	else
-	{
-		return EFalse;
-	}
-	
-	
-}
-
-//--------------------------------------------------------------------
-//TInt CNSmlDMSettingsAdapter::ConstructTreeL(const TDesC8& aURI)
-//
-//-------------------------------------------------------------------
-
-TInt CNSmlDMSettingsAdapter12::ConstructTreeL(const TDesC8& aURI)
-{
-		TInt profileID = KErrNotFound;
-		_LIT8( KNSmlDMIdZero,			"DMAcc/DMId000" );
-		TBuf8<20> zeroURI; // DMAcc/DMIdnnn , nnn = profileid
-		zeroURI.Append( KNSmlDMIdZero );
-		HBufC8* ismapInfo = iCallBack->GetLuidAllocL(zeroURI);
-		if (ismapInfo->Length() != 0) // Tree is already constructrd, no need to proceed.
-		{
-			delete ismapInfo;
-			return profileID;
-		}
-	  if( iSyncSessionOpen == EFalse )
-    {
-    	iSyncSession.OpenL();
-      iSyncSessionOpen = ETrue;
-    }
-    RArray<TSmlProfileId> profileIdArray;
-    CleanupClosePushL( profileIdArray );
-    TSmlUsageType usageType = ESmlDevMan;
-    iSyncSession.ListProfilesL( profileIdArray, usageType );
-	   
-    for( TInt p = 0; p < profileIdArray.Count(); p++ )
-		{
-      TInt ddId = profileIdArray[p] - KMaxDataSyncID;
-           
-		  _LIT8( Kprev, "DMId" );
-		  TBuf8<7> addNAME(Kprev); // DMIdnnn , nnn = profileid
-      TInt fixedProfId = profileIdArray[p] - KMaxDataSyncID; //fit to 3 decimal
-		  addNAME.AppendNumFixedWidth( fixedProfId, EDecimal, 3 ); 
-   		DBG_ARGS8( _S8("notInList: Id = %d Name %S"), p, &addNAME );
-		  // KNSmlDMStart includes start text for URISeg
-			TBuf8<20> addURI; // DMAcc/DMIdnnn , nnn = profileid
-			addURI.Append( KNSmlDMStart );
-			addURI.AppendNumFixedWidth( fixedProfId, EDecimal, 3 ); 
-			TBuf8<3> addLUID;
-	    addLUID.Num( fixedProfId );
-
-			HBufC8* mapInfo = iCallBack->GetLuidAllocL(addURI);
-					
-			if (mapInfo->Length() == 0)
-			{
-				iCallBack->SetMappingL(addURI,addLUID);
-				if( aURI.Find(addURI) >= 0 )
-        { 
-         	profileID = fixedProfId;
-        }
-			}
-			else
-			{
-				delete mapInfo;
-			}
- 		}
-	    	
-    CleanupStack::PopAndDestroy( 1 );//profileIdArray
-    return profileID;
-}
-
-// ========================== OTHER EXPORTED FUNCTIONS =========================
-
-#ifndef IMPLEMENTATION_PROXY_ENTRY
-#define IMPLEMENTATION_PROXY_ENTRY(aUid, aFuncPtr)	{{aUid},(aFuncPtr)}
-#endif
-
-const TImplementationProxy ImplementationTable[] = 
-    {
-		IMPLEMENTATION_PROXY_ENTRY( KNSmlDMSettingsAdapterImplUid, CNSmlDMSettingsAdapter12::NewL )
-    };
-
-
-// -----------------------------------------------------------------------------
-// TImplementationProxy* ImplementationGroupProxy()
-// -----------------------------------------------------------------------------
-EXPORT_C const TImplementationProxy* ImplementationGroupProxy( TInt& aTableCount )
-    {
-	_DBG_FILE( "ImplementationGroupProxy() for CNSmlDMSettingsAdapter: begin" );
-
-    aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
-
-	_DBG_FILE( "ImplementationGroupProxy() for CNSmlDMSettingsAdapter: end" );
-    return ImplementationTable;
-	}
-
-//------------------------------------------------------------------------------
-// TPtrC8 CNSmlDMSettingsAdapter12::GetDynamicDMNodeUri( const TDesC8& aURI )
-// returns DM/xxx URI
-//------------------------------------------------------------------------------
-TPtrC8 CNSmlDMSettingsAdapter12::GetDynamicDMNodeUri(const TDesC8& aURI)
-    {    
-    TInt i= 0;
-	TBuf8<50> DmAccRoot(KNSmlDefDMAcc);
-    for ( i = aURI.Find( KNSmlDefDMAcc ) + DmAccRoot.Length() + 1; i < aURI.Length(); i++ )
-        {
-        if( aURI[i] == '/' )
-            {
-            break;
-            }
-        }
-    
-    return aURI.Left( i );
-    }
-// End of File
-
--- a/deviceupdatesui/adapters/syncmldm12/src/nsmldmsettingsadapter12.rss	Tue Jul 13 03:42:03 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-CHARACTER_SET UTF8/*
-* Copyright (c) 2005 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:    Resource data for Device Management Settings Adapter
-*
-*/
-
-
-
-
-
-#include <registryinfo.rh>
-#include "nsmldmconstants.h"
-
-RESOURCE REGISTRY_INFO theRegistryInfo
-  {
-  dll_uid = 0x10282CE7; //The DLL's 3rd UID.
-  interfaces = 
-      {
-      INTERFACE_INFO
-          {
-          interface_uid = KNSmlDMInterfaceUid; // DM interface UID
-          implementations = 
-            {
-            IMPLEMENTATION_INFO
-                {
-                implementation_uid = 0x10282CE8; // DM interface implementation UID
-                version_no = 1; 
-                display_name = "";
-                default_data = "";
-                opaque_data = "";
-                }
-            };
-          }
-      };
-    }
-
-// End of File
--- a/deviceupdatesui/adapters/syncmldm12/tsrc/bwins/syncmldm12testu.def	Tue Jul 13 03:42:03 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-EXPORTS
-	?LibEntryL@@YAPAVCScriptBase@@AAVCTestModuleIf@@@Z @ 1 NONAME ; class CScriptBase * LibEntryL(class CTestModuleIf &)
-
--- a/deviceupdatesui/adapters/syncmldm12/tsrc/conf/syncmldm12test.cfg	Tue Jul 13 03:42:03 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,125 +0,0 @@
-[Test]
-title DDF
-create syncmldm12test foobar jee
-foobar DDFStructure
-delete foobar
-[Endtest] 
-
-[Test]
-title StartAtomic
-create syncmldm12test foobar
-foobar StartAtomic
-delete foobar
-[Endtest]
-
-[Test]
-title CommitAtomic
-create syncmldm12test foobar
-foobar CommitAtomic
-delete foobar
-[Endtest]
-
-[Test]
-title RollbackAtomic
-create syncmldm12test foobar
-foobar RollbackAtomic
-delete foobar
-[Endtest]
-
-[Test]
-title AddDmAcc
-create syncmldm12test foobar
-foobar AddNode DMAcc/DMId099
-foobar UpdateLeaf DMAcc/DMId099/Name name99
-foobar UpdateLeaf DMAcc/DMId099/ServerID server99
-foobar UpdateLeaf DMAcc/DMId099/AppAddr/Addr001/Addr http://a.com
-foobar UpdateLeaf DMAcc/DMId099/AppAuth/AppAuthCli/AAuthName user99
-foobar CompleteCommands
-delete foobar
-[Endtest]
-
-[Test]
-title UpdateLeafDmAcc
-create syncmldm12test foobar
-foobar UpdateLeaf DMAcc/DMId099/Name newname99
-delete foobar
-[Endtest]
-
-[Test]
-title FetchNodeDmAcc
-create syncmldm12test foobar
-foobar FetchNode DMAcc/DMId099
-delete foobar
-[Endtest]
-
-[Test]
-title FetchLeafDmAcc
-create syncmldm12test foobar
-foobar FetchLeaf DMAcc/DMId099/Name
-delete foobar
-[Endtest]
-
-[Test]
-title DeleteDmAcc
-create syncmldm12test foobar
-foobar DeleteNode DMAcc/DMId099
-delete foobar
-[Endtest]
-
-[Test]
-title AddDmAccAllInfo
-create syncmldm12test foobar
-foobar AddNode DMAcc/DMId090  	 
-foobar AddNode DMAcc/DMId090/AAuthPref 	 
-foobar AddNode DMAcc/DMId090/AppAddr 	 
-foobar AddNode DMAcc/DMId090/AppAddr/Addr001 	 
-foobar UpdateLeaf DMAcc/DMId090/AppAddr/Addr001/Addr 	https://b.com/abc
-foobar UpdateLeaf DMAcc/DMId090/AppAddr/Addr001/AddrType 	URI
-foobar AddNode DMAcc/DMId090/AppAddr/Addr001/Port 	 
-foobar AddNode DMAcc/DMId090/AppAddr/Addr001/Port/Port001 	 
-foobar UpdateLeaf DMAcc/DMId090/AppAddr/Addr001/Port/Port001/PortNbr 	443
-foobar AddNode DMAcc/DMId090/AppAuth 	 
-foobar AddNode DMAcc/DMId090/AppAuth/AppAuthCli 	 
-foobar AddNode DMAcc/DMId090/AppAuth/AppAuthCli/AAuthData 	 
-foobar UpdateLeaf DMAcc/DMId090/AppAuth/AppAuthCli/AAuthLevel 	CLCRED
-foobar UpdateLeaf DMAcc/DMId090/AppAuth/AppAuthCli/AAuthName 	userx
-foobar AddNode DMAcc/DMId090/AppAuth/AppAuthSrv 	 
-foobar AddNode DMAcc/DMId090/AppAuth/AppAuthSrv/AAuthData 	 
-foobar UpdateLeaf DMAcc/DMId090/AppAuth/AppAuthSrv/AAuthLevel 	SRVCRED
-foobar UpdateLeaf DMAcc/DMId090/AppAuth/AppAuthSrv/AAuthName 	userx
-foobar AddNode DMAcc/DMId090/AppAuth/AppAuthTransport 	 
-foobar AddNode DMAcc/DMId090/AppAuth/AppAuthTransport/AAuthData 	 
-foobar UpdateLeaf DMAcc/DMId090/AppAuth/AppAuthTransport/AAuthLevel 	HTTP
-foobar UpdateLeaf DMAcc/DMId090/AppAuth/AppAuthTransport/AAuthName 		user
-foobar UpdateLeaf DMAcc/DMId090/AppID 	w7
-foobar UpdateLeaf DMAcc/DMId090/Name 	InteliSync
-foobar UpdateLeaf DMAcc/DMId090/PrefConRef 	AP/APId000 
-foobar UpdateLeaf DMAcc/DMId090/ServerID 	userx
-foobar CompleteCommands
-delete foobar
-[Endtest]
-
-[Test]
-title FetchAllLeafDmAcc
-create syncmldm12test foobarfoobar FetchLeaf DMAcc/DMId090/AppAddr/Addr001/Addr
-foobar FetchLeaf DMAcc/DMId090/AppAddr/Addr001/AddrType
-foobar FetchLeaf DMAcc/DMId090/AppAddr/Addr001/Port/Port001/PortNbr
-foobar FetchLeaf DMAcc/DMId090/AppAuth/AppAuthCli/AAuthLevel
-foobar FetchLeaf DMAcc/DMId090/AppAuth/AppAuthCli/AAuthName 
-foobar FetchLeaf DMAcc/DMId090/AppAuth/AppAuthSrv/AAuthLevel
-foobar FetchLeaf DMAcc/DMId090/AppAuth/AppAuthSrv/AAuthName 
-foobar FetchLeaf DMAcc/DMId090/AppAuth/AppAuthTransport/AAuthLevel 
-foobar FetchLeaf DMAcc/DMId090/AppAuth/AppAuthTransport/AAuthName 
-foobar FetchLeaf DMAcc/DMId090/AppID 
-foobar FetchLeaf DMAcc/DMId090/Name 
-foobar FetchLeaf DMAcc/DMId090/PrefConRef 
-foobar FetchLeaf DMAcc/DMId090/ServerID 
-delete foobar
-[Endtest]
-
-[Test]
-title DeleteDmAcc
-create syncmldm12test foobar
-foobar DeleteNode DMAcc/DMId090
-delete foobar
-[Endtest]
--- a/deviceupdatesui/adapters/syncmldm12/tsrc/eabi/syncmldm12testu.def	Tue Jul 13 03:42:03 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,9 +0,0 @@
-EXPORTS
-	_Z9LibEntryLR13CTestModuleIf @ 1 NONAME
-	_ZTI15Csyncmldm12Test @ 2 NONAME ; #<TI>#
-	_ZTI16CTestDmDDFObject @ 3 NONAME ; #<TI>#
-	_ZTI8Cdmatest @ 4 NONAME ; #<TI>#
-	_ZTV15Csyncmldm12Test @ 5 NONAME ; #<VT>#
-	_ZTV16CTestDmDDFObject @ 6 NONAME ; #<VT>#
-	_ZTV8Cdmatest @ 7 NONAME ; #<VT>#
-
--- a/deviceupdatesui/adapters/syncmldm12/tsrc/group/bld.inf	Tue Jul 13 03:42:03 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +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.
-*
-*/
-
-
-
-
-
-
-PRJ_PLATFORMS
-// specify the platforms your component needs to be built for here
-// defaults to WINS MARM so you can ignore this if you just build these
-DEFAULT
-
-PRJ_TESTEXPORTS
-// NOTE: If using ARS requirements all export operations should be done under this.
-// 'abld test export'
-
-PRJ_EXPORTS
-// Specify the source file followed by its destination here
-// copy will be used to copy the source file to its destination
-// If there's no destination then the source file will be copied
-// to the same name in /epoc32/include
-// Example: 
-
-
-PRJ_TESTMMPFILES
-// NOTE: If using ARS requirements .mmp file operation should be done under this.
-// 'abld test build'
-syncmldm12test.mmp
-
-PRJ_MMPFILES
-// Specify the .mmp files required for building the important component
-// releasables.
-//
-// Specify "tidy" if the component you need to build doesn't need to be
-// released. Specify "ignore" if the MMP file exists but should be
-// ignored.
-// Example:
-
-//  End of File
--- a/deviceupdatesui/adapters/syncmldm12/tsrc/group/syncmldm12test.mmp	Tue Jul 13 03:42:03 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,65 +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 <platform_paths.hrh>
-
-TARGET          syncmldm12test.dll
-TARGETTYPE      dll
-UID             0x1000008D 0x101FB3E3
-
-CAPABILITY	ALL -TCB
-/* Remove comments and replace 0x00000000 with correct vendor id */
-// VENDORID 	0x00000000
-
-//TARGETPATH      ?target_path
-DEFFILE         syncmldm12test.def
-
-SOURCEPATH      ../src
-SOURCE          dmatest.cpp
-SOURCE          TestDmDDFObject.cpp
-SOURCE          syncmldm12test.cpp
-SOURCE          syncmldm12testBlocks.cpp
-
-
-USERINCLUDE     ../inc 
-USERINCLUDE		  ../../inc
-
-APP_LAYER_SYSTEMINCLUDE
-SYSTEMINCLUDE   /epoc32/include/ecom
-
-
- 
-
-LIBRARY         apgrfx.lib apmime.lib
-LIBRARY         euser.lib ecom.lib
-LIBRARY         stiftestinterface.lib
-LIBRARY         stiftestengine.lib
-LIBRARY         efsrv.lib
-LIBRARY         estor.lib 
-LIBRARY         SWInstCli.lib
-
-LANG			SC
-
-
-
-SMPSAFE
-// End of File
-
--- a/deviceupdatesui/adapters/syncmldm12/tsrc/group/syncmldm12test.pkg	Tue Jul 13 03:42:03 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +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.
-;
-
-;*Languages
-&EN
-;
-;*Standard SIS file header. This section specifies the package name,
-;application UID, and version/build numbers. Add the package TYPE here if needed.
-#{"syncmldm12test"},(0x101FB3E8),1,0,1;
-;
-
-;*Unique (Non-Localised) Vendor name
-;This is used in combination with signing to prevent the unauthroized
-;upgrade ofa a package by someone other than the rightful vendor.
-:"Nokia"
-
-;*Localized Vendor Name
-;This specifies the localised vendor name(s) correspodning to language(s).
-%{"Nokia Test EN"}
-
-;*Files To Copy...<src> <destination>
-"\epoc32\release\armv5\urel\syncmldm12test.dll" -"C:\sys\bin\syncmldm12test.dll"
-"..\conf\syncmldm12test.cfg"-"C:\TestFramework\syncmldm12test.cfg"
-"..\init\syncmldm12test.ini"-"C:\TestFramework\syncmldm12test.ini"
--- a/deviceupdatesui/adapters/syncmldm12/tsrc/inc/TestDmDDFObject.h	Tue Jul 13 03:42:03 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,203 +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.
-*
-*/
-
-
-
-
-
-
-#ifndef __TESTDMDDFOBJECT_H
-#define __TESTDMDDFOBJECT_H
-
-//  INCLUDES
-//#include <?include_file>
-#include <smldmadapter.h>
-
-// CONSTANTS
-//const ?type ?constant_var = ?constant;
-
-// MACROS
-//#define ?macro ?macro_def
-
-// DATA TYPES
-//enum ?declaration
-//typedef ?declaration
-//extern ?data_type;
-
-// FUNCTION PROTOTYPES
-//?type ?function_name(?arg_list);
-
-// FORWARD DECLARATIONS
-class CStifLogger;
-
-// CLASS DECLARATION
-
-/**
-*  ?one_line_short_description.
-*  ?other_description_lines
-*
-*  @lib ?library
-*  @since Series ?XX ?SeriesXX_version
-*/
-class CTestDmDDFObject : public CBase, public MSmlDmDDFObject
-    {
-    public:  // Constructors and destructor
-        
-        /**
-        * Two-phased constructor.
-        */
-        static CTestDmDDFObject* NewL( CStifLogger *aLog );
-        static CTestDmDDFObject* NewLC( CStifLogger *aLog );
-        
-        /**
-        * Destructor.
-        */
-        virtual ~CTestDmDDFObject();
-
-    public: // New functions
-        
-        /**
-        * ?member_description.
-        * @since Series ?XX ?SeriesXX_version
-        * @param ?arg1 ?description
-        * @return ?description
-        */
-        //?type ?member_function( ?type ?arg1 );
-
-		virtual void SetNameL( const TDesC8& aName );
-		
-		void DumpL( const TDesC8& aParentName, TBool aFullDump = ETrue );
-		void ExternalizeL(RWriteStream& aStream) const;
-		
-		
-
-    public: // Functions from base classes
-    
-//sf-    *********************************
-    
-		void SetAccessTypesL( TSmlDmAccessTypes aAccessTypes );
-		void SetDefaultValueL( const TDesC8& aDefaultValue );
-		void SetDescriptionL( const TDesC8& aDescription );
-		void SetDFFormatL( TDFFormat aFormat );
-		void SetOccurenceL( TOccurence aOccurence );
-		void SetScopeL( TScope aScope );
-		void SetDFTitleL( const TDesC8& aTitle );
-		void AddDFTypeMimeTypeL( const TDesC8& aMimeType );
-		void SetAsObjectGroup();
-		MSmlDmDDFObject& AddChildObjectL(const TDesC8& aNodeName);
-		MSmlDmDDFObject& AddChildObjectGroupL();
-
-//sf-    #############################
-
-		const TDesC8& Name();
-		TSmlDmAccessTypes  AccessTypes();
-		const TDesC8& DefaultValue();
-		const TDesC8& Description();
-		TDFFormat DFFormat();
-		TOccurence Occurence();
-		TScope Scope();
-		const TDesC8& DFTitle();
-		const TDesC8& DFTypeMimeType();
-		TBool ObjectGroup();
-		
-		TInt ChildObjectCount();
-		CTestDmDDFObject& ChildObject( TInt aIndex );
-
-		CTestDmDDFObject* FindChildObject( const TDesC8& aName );
-		TInt SubObjectsCount();
-
-
-    protected:  // New functions
-        
-        /**
-        * ?member_description.
-        * @since Series ?XX ?SeriesXX_version
-        * @param ?arg1 ?description
-        * @return ?description
-        */
-        //?type ?member_function( ?type ?arg1 );
-
-    protected:  // Functions from base classes
-        
-        /**
-        * From ?base_class ?member_description
-        */
-        //?type ?member_function();
-
-    private:
-
-        /**
-        * C++ default constructor.
-        */
-        CTestDmDDFObject( CStifLogger *aLog );
-
-        /**
-        * By default Symbian 2nd phase constructor is private.
-        */
-        void ConstructL();
-
-        // Prohibit copy constructor if not deriving from CBase.
-        // CTestDmDDFObject( const CTestDmDDFObject& );
-        // Prohibit assigment operator if not deriving from CBase.
-        // CTestDmDDFObject& operator=( const CTestDmDDFObject& );
-
-    public:     // Data
-        // ?one_line_short_description_of_data
-        //?data_declaration;
-    
-    protected:  // Data
-        // ?one_line_short_description_of_data
-        //?data_declaration;
-
-    private:    // Data
-        // ?one_line_short_description_of_data
-        //?data_declaration;
-		HBufC8* iName;
-
-		TSmlDmAccessTypes iAccessTypes;
-		HBufC8* iDefaultValue;
-		HBufC8* iDescription;
-		TDFFormat iFormat;
-		TOccurence iOccurence;
-		TScope iScope;
-		HBufC8* iTitle;
-		HBufC8* iMimeType;
-		TBool iObjectGroup;
-		
-		RPointerArray<CTestDmDDFObject> iChildren;
-
-         
-        // Reserved pointer for future extension
-        //TAny* iReserved;
-
-    public:     // Friend classes
-        //?friend_class_declaration;
-    protected:  // Friend classes
-        //?friend_class_declaration;
-    private:    // Friend classes
-        //?friend_class_declaration;
-        /**
-        * Logger.
-        */
-        CStifLogger*    iLog;
-
-    };
-
-#endif      // __TESTDMDDFOBJECT_H
-            
-// End of File
--- a/deviceupdatesui/adapters/syncmldm12/tsrc/inc/dmatest.h	Tue Jul 13 03:42:03 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,277 +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.
-*
-*/
-
-
-
-
-
-
-#ifndef __DMA_TEST_H__
-#define __DMA_TEST_H__
-
-//  INCLUDES
-#include <StifLogger.h>
-#include <TestScripterInternal.h>
-#include <StifTestModule.h>
-#include <apmstd.h>
-#include <smldmadapter.h>
-#include "NSmlDMSettingsAdapter12.h"
-
-class Cdmatest;
-
-
-struct TMapping
-	{
-	TBuf8<256> iURI;
-	TBuf8<64> iLuid;
-	TMapping( const TDesC8 &aURI, const TDesC8 &aLuid )  : iURI( aURI ), iLuid( aLuid )
-	{
-		
-		}
-	};
-	
-typedef RArray<TMapping> RMappingArray;
-
-typedef void (Cdmatest::* ResultsFunction)( TInt , CBufBase& , const TDesC8&  ) ; 
-
-
-// CLASS DECLARATION
-
-/**
-*  ?one_line_short_description.
-*  ?other_description_lines
-*
-*  @lib ?library
-*  @since Series ?XX ?SeriesXX_version
-*/
-class Cdmatest : public CScriptBase, public MSmlDmCallback
-    {
-    
-    public:  // Constructors and destructor
-        
-        /**
-        * Destructor.
-        */
-        virtual ~Cdmatest();
-
-    public: // Functions from base classes
-
-        /**
-        * From CScriptBase Runs a script line.
-        * @since ?Series60_version
-        * @param aItem Script line containing method name and parameters
-        * @return Symbian OS error code
-        */
-        virtual TInt RunMethodL( CStifItemParser& aItem ) = 0;
-    
-
-	public:
-		/**
-		The function is used to return the data in case of FetchLeafObjectL(),
-		FetchLeafObjectSizeL() and ChildURIListL() functions. It should not be
-		called where the DM command has failed, i.e. the error code returned in
-		SetStatusL is something other than EOk.
-		@param aResultsRef	Reference to correct command
-		@param aObject		The data which should be returned
-		@param aType			MIME type of the object
-		@publishedPartner
-		@prototype
-		*/
-		void SetResultsL( TInt aResultsRef, CBufBase& aObject,
-								  const TDesC8& aType );
-		
-		/**
-		The function is used to return the data in case of FetchLeafObjectL() and
-		ChildURIListL() functions, where the size of the data being returned is
-		large enough for the Adapter to stream it. This function should not be
-		called when command was failed, i.e. the error code returned in SetStatusL
-		is something other than EOk.
-		@param aResultsRef	Reference to correct command
-		@param aStream		Large data which should be returned, DM engine
-								closes stream when it has read all the data
-		@param aType			MIME type of the object
-		@publishedPartner
-		@prototype
-		*/
-		void SetResultsL( TInt /*aResultsRef*/, RReadStream*& /*aStream*/,
-								  const TDesC8& /*aType*/ ) 
-		{
-			
-		}
-
-		/**
-		The function returns information about the Add,Update,Delete and Fetch
-		commands success to DM engine. The reference to correct command must be
-		used when calling the SetStatusL function, the reference is got from the
-		argument of the command functions. The SetStatusL function must be called
-		separately for every single command.
-		@param aStatusRef	Reference to correct command
-		@param aErrorCode	Information about the command success
-		@publishedPartner
-		@prototype
-		*/
-		void SetStatusL( TInt aStatusRef,
-								 MSmlDmAdapter::TError aErrorCode ) ;
-
-		/**
-		The function passes map information to DM Module. This function is called
-		for a new management object, both for node objects and for leaf objects.
-		In addition if ChildURIListL() function has returned new objects a mapping
-		information of the new objects must be passed. A mapping is treated as
-		inheritable. If the mapping is not set with this function, the mapping
-		LUID of the parent object is passed in following commands to the object.
-		@param aURI	URI of the object. 
-		@param aLUID	LUID of the object. LUID must contain the all information,
-						which is needed for retrieve the invidual object from the
-						database. Typically it is ID for the database table. In
-						more complicated structures it can be combination of IDs,
-						which represent path to the object.
-		@publishedPartner
-		@prototype
-		*/
-		void SetMappingL( const TDesC8& aURI, const TDesC8& aLUID );
-
-		/**
-		The function is used to make a fetch to other adapters. The most common
-		use is to make a fetch to the AP adapter, because when managing the access
-		points, the data comes as URI. For example, there are ToNAPId field in
-		some adapters, and data to it can be something like AP/IAPidx, and then
-		the link to AP adapter is needed.
-		Using FetchLinkL causes the DM Framework to make a Get request to the
-		appropriate DM adapter.  The receiving adapter MUST complete the Get
-		request synchronously.
-		@param aURI		URI of the object. 
-		@param aData		Reference to data, i.e. data is returned here
-		@param aStatus	The status of fetch command is returned here
-		@publishedPartner
-		@prototype
-		*/
-		void FetchLinkL( const TDesC8& /*aURI*/, CBufBase& /*aData*/,
-								 MSmlDmAdapter::TError& /*aStatus*/ ) 
-			{
-				
-			}
-
-		/**
-		The function returns the LUID which is mapped to aURI. If LUID is not
-		found, the function allocates a null length string, i.e. the function
-		allocates memory in every case.
-		@param aURI	URI of the object. 
-		@publishedPartner
-		@prototype
-		*/
-		HBufC8* GetLuidAllocL( const TDesC8& aURI ) ;
-
-#ifdef __TARM_SYMBIAN_CONVERGENCY
-    
-    void GetMappingInfoListL( const TDesC8& aURI,
-								CArrayFix<TSmlDmMappingInfo>& aSegmentList );
-
-#else
-// nothing
-#endif
-		        
-    protected:  // New functions
-
-        
-		void FetchNodeResultsL( TInt aResultsRef, CBufBase& aObject,
-							  const TDesC8& aType );
-		void SaveDataL( TInt aResultsRef, CBufBase& aObject,
-							  const TDesC8& aType ) ;
-							  
-		TPtrC8 LastURISeg( const TDesC8& aURI );
-		TPtrC8 RemoveLastURISeg( const TDesC8& aURI );
-		TPtrC RemoveLastURISeg( const TDesC& aURI );
-		void SetURIL( const TDesC& aURI );
-		void SetURIL( const TDesC8& aURI );
-		void SetURIL( HBufC8* aURI );		
-		HBufC8 *LoadFileLC( const TDesC &aFileName, TDataType &aType );
-		HBufC8 *LoadFileLC( const TDesC8 &aFileName, TDataType &aType );
-		HBufC8 *GetNextStringLC ( CStifItemParser& aItem, const TDesC &aName );
-		HBufC8* GetLuidAllocLC( const TDesC8& aURI ) ;
-		TPtrC8 RemoveLastSeg(const TDesC8& aURI);
-		
-		TInt FetchNodeL( CStifItemParser& aItem ) ;
-		TInt FetchLeafL( CStifItemParser& aItem ) ;
-		TInt AddNodeL( CStifItemParser& aItem );
-		TInt DeleteObjectL( CStifItemParser& aItem );	
-		TInt UpdateLeafL( CStifItemParser& aItem )	;
-		TInt UpdateLeafDataL( CStifItemParser& aItem ) ;
-		TInt UpdateLeafDataURLL( CStifItemParser& aItem ) ;
-		
-		TInt ExecuteLeafL ( CStifItemParser& aItem ) ;
-		TInt ExecuteLeafDataL ( CStifItemParser& aItem ) ;
-		TInt StartAtomicL( CStifItemParser& aItem )	;
-		TInt CommitAtomicL( CStifItemParser& aItem )	;
-		TInt RollbackAtomicL( CStifItemParser& aItem )	;
-		TInt CompleteCommandsL( CStifItemParser& aItem );
-		TInt DDFStructureL( CStifItemParser& aItem )	;
-//        TInt DeliverL( CStifItemParser& aItem ) ;
-//        TInt DetailsL( CStifItemParser& aItem ) ;
-//		TInt InstallL( CStifItemParser& aItem ) ;
-//		TInt BareInstallL( CStifItemParser& aItem ) ;		
-
-    protected:
-
-        /**
-        * C++ default constructor.
-        */
-        Cdmatest( CTestModuleIf& aTestModuleIf, TUid aUid );
-
-        /**
-        * By default Symbian 2nd phase constructor is private.
-        */
-        void ConstructL();
-
-        // Prohibit copy constructor if not deriving from CBase.
-        // Cdmatest( const Cdmatest& );
-        // Prohibit assigment operator if not deriving from CBase.
-        // Cdmatest& operator=( const Cdmatest& );
-
-		/**
-        * Frees all resources allocated from test methods.
-        * @since ?Series60_version
-        */
-        virtual void Delete();
-        void LoadMappingsL();
-        void SaveMappingsL();
-    public:     // Data
-        // ?one_line_short_description_of_data
-        //?data_declaration;
-    
-    protected:  // Data
-        // ?one_line_short_description_of_data
-        //?data_declaration;
-		MSmlDmAdapter::TError iStatus ;
-        ResultsFunction iResultsFunction;
-        //CSmlDmAdapter *iAdapter ;
-        CNSmlDMSettingsAdapter12 *iAdapter ;
-        HBufC8 *iURI; 
-        CArrayFix<TSmlDmMappingInfo> *iEmptyMappingInfoArray;
-		TFileName iSaveFileName;
-		RMappingArray iMappingTable;
-		TUid iUid;
-		TInt iCounter;
-		//class CNSmlDmMgmtTree* iMgmtTree;
-		class CNSmlDmMgmtTree* iMgmtTree;
-		CNSmlDMSettingsAdapter12 *Adapter() ;
-    };
-
-#endif      // __DMA_TEST_H__
-            
-// End of File
--- a/deviceupdatesui/adapters/syncmldm12/tsrc/inc/syncmldm12test.h	Tue Jul 13 03:42:03 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,133 +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.
-*
-*/
-
-
-
-
-
-
-#ifndef TCTEST_H
-#define TCTEST_H
-
-//  INCLUDES
-#include <StifLogger.h>
-#include <TestScripterInternal.h>
-#include <StifTestModule.h>
-#include <smldmadapter.h>
-#include "dmatest.h"
-
-const TUint KNSmlDMSettings12AdapterImplUid = 0x10282CE8;
-	
-
-const TUid KAdapterUid = 
-		{
-		KNSmlDMSettings12AdapterImplUid
-		};
-// Logging path
-_LIT( KamtestLogPath, "\\logs\\testframework\\tctest\\" ); 
-// Log file
-_LIT( KamtestLogFile, "tctest.txt" ); 
-
-
-// FORWARD DECLARATIONS
-class Csyncmldm12Test;
-
-
-// CLASS DECLARATION
-
-/**
-*  Csyncmldm12Test test class for STIF Test Framework TestScripter.
-*  ?other_description_lines
-*
-*  @lib ?library
-*  @since ?Series60_version
-*/
-class Csyncmldm12Test : public Cdmatest
-    {
-    public:  // Constructors and destructor
-        
-        /**
-        * Two-phased constructor.
-        */
-        static Csyncmldm12Test* NewL( CTestModuleIf& aTestModuleIf );
-        
-        /**
-        * Destructor.
-        */
-        virtual ~Csyncmldm12Test();
-
-    public: // Functions from base classes
-
-        /**
-        * From CScriptBase Runs a script line.
-        * @since ?Series60_version
-        * @param aItem Script line containing method name and parameters
-        * @return Symbian OS error code
-        */
-        virtual TInt RunMethodL( CStifItemParser& aItem );
-                
-
-    private:
-
-        /**
-        * C++ default constructor.
-        */
-        Csyncmldm12Test( CTestModuleIf& aTestModuleIf );
-
-        /**
-        * By default Symbian 2nd phase constructor is private.
-        */
-        void ConstructL();
-
-        // Prohibit copy constructor if not deriving from CBase.
-        // ?classname( const ?classname& );
-        // Prohibit assigment operator if not deriving from CBase.
-        // ?classname& operator=( const ?classname& );
-    
-        /**
-        * Frees all resources allocated from test methods.
-        * @since ?Series60_version
-        */
-        virtual void Delete();
-        
-        /**
-        * Test methods are listed below. 
-        */
-        
-        /**
-        * Example test method.
-        * @since ?Series60_version
-        * @param aItem Script line containing parameters.
-        * @return Symbian OS error code.
-        */
-/*        virtual TInt ExampleL( CStifItemParser& aItem ) ;
-        virtual TInt DeliverL( CStifItemParser& aItem ) ;
-        virtual TInt DetailsL( CStifItemParser& aItem ) ;
-		    virtual TInt InstallL( CStifItemParser& aItem ) ;
-		    virtual TInt BareInstallL( CStifItemParser& aItem ) ;*/
-		
-
-    private:    // Data
-        HBufC8 *GetNextStringLC ( CStifItemParser& aItem, const TDesC &aName );
-
-
-    };
-
-#endif      // TCTEST_H
-            
-// End of File
--- a/deviceupdatesui/adapters/syncmldm12/tsrc/init/syncmldm12test.ini	Tue Jul 13 03:42:03 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,204 +0,0 @@
-#
-# This is STIF initialization file
-# Comment lines start with '#'-character.
-# See STIF TestFramework users guide.doc for instructions
-
-# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-# Set following test engine settings:
-#	- Set Test Reporting mode. TestReportMode's possible values are:
-#		+ 'Summary': Summary of the tested test cases.
-#		+ 'Environment': Hardware and software info.
-#		+ 'TestCases': Test case report.
-#		+ 'FullReport': Set of all above ones.
-#		+ Example 'TestReportMode= Summary TestCases'
-#
-# 	- CreateTestReport setting controls report creation mode
-#		+ YES, Test report will created.
-#		+ NO, No Test report.
-#
-# 	- File path indicates the base path of the test report.
-# 	- File name indicates the name of the test report.
-#
-# 	- File format indicates the type of the test report.
-#		+ TXT, Test report file will be txt type, for example 'TestReport.txt'.
-#		+ HTML, Test report will be html type, for example 'TestReport.html'.
-#
-# 	- File output indicates output source of the test report.
-#		+ FILE, Test report logging to file.
-#		+ RDEBUG, Test report logging to using rdebug.
-#
-# 	- File Creation Mode indicates test report overwriting if file exist.
-#		+ OVERWRITE, Overwrites if the Test report file exist.
-#		+ APPEND, Continue logging after the old Test report information if
-#                 report exist.
-# 	- Sets a device reset module's dll name(Reboot).
-#		+ If Nokia specific reset module is not available or it is not correct one
-#		  StifHWResetStub module may use as a template for user specific reset
-#		  module.
-# 	- Sets STIF test measurement disable options. e.g. pluging1 and pluging2 disablation
-#		DisableMeasurement= stifmeasurementplugin01 stifmeasurementplugin02
-#
-
-[Engine_Defaults]
-
-TestReportMode= FullReport    # Possible values are: 'Empty', 'Summary', 'Environment',
-                                                     'TestCases' or 'FullReport'
-
-CreateTestReport= YES         # Possible values: YES or NO
-
-TestReportFilePath= C:\LOGS\TestFramework\
-TestReportFileName= TestReport
-
-TestReportFormat= TXT         # Possible values: TXT or HTML
-TestReportOutput= FILE        # Possible values: FILE or RDEBUG
-TestReportFileCreationMode= OVERWRITE # Possible values: OVERWRITE or APPEND
-
-DeviceResetDllName= StifResetForNokia.dll # e.g. 'StifHWResetStub.dll' for user specific reseting
-
-DisableMeasurement= stifmeasurementdisablenone  # Possible values are:
-              # 'stifmeasurementdisablenone', 'stifmeasurementdisableall'
-              # 'stifmeasurementplugin01', 'stifmeasurementplugin02',
-              # 'stifmeasurementplugin03', 'stifmeasurementplugin04',
-              # 'stifmeasurementplugin05' or 'stifbappeaprofiler'
-
-Timeout= 0                    # Default timeout value for each test case. In milliseconds
-#UITestingSupport= YES        # Possible values: YES or NO
-#SeparateProcesses= YES       # Possible values: YES or NO (default: NO)
-[End_Defaults]
-# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-
-
-
-# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-# Module configurations start
-# Modules are added between module tags
-# tags. Module name is specified after ModuleName= tag, like
-# ModuleName= XXXXXXXXX
-# Modules might have initialisation file, specified as
-# IniFile= c:\testframework\YYYYYY
-# Modules might have several configuration files, like
-# TestCaseFile= c:\testframework\NormalCases.txt
-# TestCaseFile= c:\testframework\SmokeCases.txt
-# TestCaseFile= c:\testframework\ManualCases.txt
-
-# (TestCaseFile is synonym for old term ConfigFile)
-
-# Following case specifies demo module settings. Demo module
-# does not read any settings from file, so tags 
-# IniFile and TestCaseFile are not used.
-# In the simplest case it is enough to specify only the
-# name of the test module when adding new test module
-
-#[New_Module]
-#ModuleName= demomodule
-#[End_Module]
-
-
-[New_Module]
-ModuleName= testscripter
-#DM
-TestCaseFile= c:\testframework\syncmldm12test.cfg
-[End_Module]
-
-
-# Load testmoduleXXX, optionally with initialization file and/or test case files
-#[New_Module]
-#ModuleName= testmodulexxx
-
-#TestModuleXXX used initialization file
-#IniFile= c:\testframework\init.txt
-
-#TestModuleXXX used configuration file(s)
-#TestCaseFile= c:\testframework\testcases1.cfg
-#TestCaseFile= c:\testframework\testcases2.cfg
-#TestCaseFile= c:\testframework\manualtestcases.cfg
-
-#[End_Module]
-# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-
-
-
-# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-# Set STIF logging overwrite parameters for Logger.
-# 	Hardware and emulator environment logging path and styles can
-# 	be configured from here to overwrite the Logger's implemented values.
-#	
-#	Settings description:
-#	- Indicates option for creation log directory/directories. If log directory/directories
-#         is/are not created by user they will make by software.
-#		+ YES, Create log directory/directories if not allready exist.
-#		+ NO, Log directory/directories not created. Only created one is used.
-#
-#	- Overwrite emulator path setting.
-#		+ Example: If 'EmulatorBasePath= C:\LOGS\TestFramework\' and in code is defined 
-#		           Logger's path 'D:\\LOGS\\Module\\' with those definition the path
-#		           will be 'C:\LOGS\TestFramework\LOGS\Module\'
-#
-#	- Overwrite emulator's logging format.
-#		+ TXT, Log file(s) will be txt type(s), for example 'Module.txt'.
-#		+ HTML, Log file(s) will be html type(s), for example 'Module.html'.
-#
-#	- Overwrited emulator logging output source.
-#		+ FILE, Logging to file(s).
-#		+ RDEBUG, Logging to using rdebug(s).
-#
-#	- Overwrite hardware path setting (Same description as above in emulator path).
-#	- Overwrite hardware's logging format(Same description as above in emulator format).
-#	- Overwrite hardware's logging output source(Same description as above in emulator output).
-#
-#	- File Creation Mode indicates file overwriting if file exist.
-#		+ OVERWRITE, Overwrites if file(s) exist.
-#		+ APPEND, Continue logging after the old logging information if file(s) exist.
-#
-#	- Will thread id include to the log filename.
-#		+ YES, Thread id to log file(s) name, Example filename 'Module_b9.txt'.
-#		+ NO, No thread id to log file(s), Example filename 'Module.txt'.
-#
-#	- Will time stamps include the to log file.
-#		+ YES, Time stamp added to each line in log file(s). Time stamp is 
-#                 for example'12.Nov.2003 115958    LOGGING INFO'
-#		+ NO, No time stamp(s).
-#
-#	- Will line breaks include to the log file.
-#		+ YES, Each logging event includes line break and next log event is in own line.
-#		+ NO, No line break(s).
-#
-#	- Will event ranking include to the log file.
-#		+ YES, Event ranking number added to each line in log file(s). Ranking number
-#                 depends on environment's tics, for example(includes time stamp also)
-#                 '012   12.Nov.2003 115958    LOGGING INFO'
-#		+ NO, No event ranking.
-#
-#	- Will write log file in unicode format.
-#		+ YES, Log file will be written in unicode format
-#		+ NO, Log will be written as normal, not unicode, file.
-#
-
-[Logger_Defaults]
-
-#NOTE: If you want to set Logger using next setting(s) remove comment(s)'#'
-#NOTE: TestEngine and TestServer logging settings cannot change here
-
-#CreateLogDirectories= YES    # Possible values: YES or NO
-
-#EmulatorBasePath= C:\LOGS\TestFramework\
-#EmulatorFormat= HTML         # Possible values: TXT or HTML
-#EmulatorOutput= FILE         # Possible values: FILE or RDEBUG
-
-#HardwareBasePath= D:\LOGS\TestFramework\
-#HardwareFormat= HTML         # Possible values: TXT or HTML
-#HardwareOutput= FILE         # Possible values: FILE or RDEBUG
-
-#FileCreationMode= OVERWRITE  # Possible values: OVERWRITE or APPEND
-
-#ThreadIdToLogFile= YES       # Possible values: YES or NO
-#WithTimeStamp= YES           # Possible values: YES or NO
-#WithLineBreak= YES           # Possible values: YES or NO
-#WithEventRanking= YES        # Possible values: YES or NO
-
-#FileUnicode= YES             # Possible values: YES or NO
-#AddTestCaseTitle= YES        # Possible values: YES or NO
-[End_Logger_Defaults]
-# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-
-# End of file
--- a/deviceupdatesui/adapters/syncmldm12/tsrc/src/TestDmDDFObject.cpp	Tue Jul 13 03:42:03 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,516 +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 "TestDmDDFObject.h"
-#include "StifLogger.h"
-
-// EXTERNAL DATA STRUCTURES
-//extern  ?external_data;
-
-// EXTERNAL FUNCTION PROTOTYPES  
-//extern ?external_function( ?arg_type,?arg_type );
-
-// CONSTANTS
-//const ?type ?constant_var = ?constant;
-
-// MACROS
-//#define ?macro ?macro_def
-
-// LOCAL CONSTANTS AND MACROS
-//const ?type ?constant_var = ?constant;
-//#define ?macro_name ?macro_def
-
-// MODULE DATA STRUCTURES
-//enum ?declaration
-//typedef ?declaration
-
-// LOCAL FUNCTION PROTOTYPES
-//?type ?function_name( ?arg_type, ?arg_type );
-
-// FORWARD DECLARATIONS
-//class ?FORWARD_CLASSNAME;
-
-// ============================= LOCAL FUNCTIONS ===============================
-
-
-
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CTestDmDDFObject::CTestDmDDFObject
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CTestDmDDFObject::CTestDmDDFObject( CStifLogger *aLog )
-	: iName( 0 )
-	, iAccessTypes()
-	, iDefaultValue( 0 )
-	, iDescription( 0 )
-	, iFormat( (TDFFormat)0 )
-	, iOccurence( (TOccurence)0 )
-	, iScope( (TScope)0 )
-	, iTitle ( 0 )
-	, iMimeType( 0 )
-	, iObjectGroup( EFalse )
-	, iLog( aLog )
-//	RPointerArray<CTestDmDDFObject> iChildren;
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CTestDmDDFObject::ConstructL
-// Symbian 2nd phase constructor can leave.
-// -----------------------------------------------------------------------------
-//
-void CTestDmDDFObject::ConstructL()
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CTestDmDDFObject::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CTestDmDDFObject* CTestDmDDFObject::NewL( CStifLogger *aLog )
-    {
-    CTestDmDDFObject* self = CTestDmDDFObject::NewLC( aLog );
-    CleanupStack::Pop( self );
-
-    return self;
-    }
-
-CTestDmDDFObject* CTestDmDDFObject::NewLC( CStifLogger *aLog )
-    {
-    CTestDmDDFObject* self = new( ELeave ) CTestDmDDFObject( aLog );
-    
-    CleanupStack::PushL( self );
-    self->ConstructL();
-
-    return self;
-    }
-
-    
-// Destructor
-CTestDmDDFObject::~CTestDmDDFObject()
-    {
-	delete iName;
-	delete iDefaultValue;
-	delete iDescription;
-	delete iTitle;
-	delete iMimeType;
-	iChildren.ResetAndDestroy();
-    }
-
-
-// -----------------------------------------------------------------------------
-// CTestDmDDFObject::?member_function
-// ?implementation_description
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-/*?type CTestDmDDFObject::?member_function(
-    ?arg_type arg,
-    ?arg_type arg )
-    {
-    
-    ?code
-    
-    }
-*/
-
-void CTestDmDDFObject::SetAccessTypesL( TSmlDmAccessTypes aAccessTypes )
-	{
-	iLog->Log( _L8( "SetAccessTypesL, aAccessTypes=%d" ), aAccessTypes.GetACL() );
-	iAccessTypes = aAccessTypes;
-	}
-
-void CTestDmDDFObject::SetDefaultValueL( const TDesC8& aDefaultValue )
-	{
-	iLog->Log( _L8( "SetDefaultValueL, aDefaultValue='%S'" ), &aDefaultValue );
-	delete iDefaultValue;
-	iDefaultValue = 0;
-	iDefaultValue = aDefaultValue.AllocL();
-	}
-
-void CTestDmDDFObject::SetDescriptionL( const TDesC8& aDescription )
-	{
-	iLog->Log( _L8( "SetDescriptionL, aDescription='%S'" ), &aDescription );
-	delete iDescription;
-	iDescription = 0;
-	iDescription = aDescription.AllocL();
-	}
-	
-void CTestDmDDFObject::SetDFFormatL( TDFFormat aFormat )
-	{
-	iLog->Log( _L8( "SetDFFormatL, aFormat=%d" ), aFormat );
-	iFormat = aFormat;
-	}
-	
-void CTestDmDDFObject::SetOccurenceL( TOccurence aOccurence )
-	{
-	iLog->Log( _L8( "SetOccurenceL, aOccurence=%d" ), aOccurence );
-	iOccurence = aOccurence;
-	}
-	
-void CTestDmDDFObject::SetScopeL( TScope aScope )
-	{
-	iLog->Log( _L8( "SetScopeL, aScope=%d" ), aScope );
-	iScope = aScope;
-	}
-	
-void CTestDmDDFObject::SetDFTitleL( const TDesC8& aTitle )
-	{
-	iLog->Log( _L8( "SetDFTitleL, aTitle='%S'" ), &aTitle );
-	delete iTitle;
-	iTitle = 0;
-	iTitle = aTitle.AllocL();
-	}
-	
-void CTestDmDDFObject::AddDFTypeMimeTypeL( const TDesC8& aMimeType )
-	{
-	iLog->Log( _L8( "AddDFTypeMimeTypeL, aMimeType='%S'" ), &aMimeType );
-	delete iMimeType;
-	iMimeType = 0;
-	iMimeType = aMimeType.AllocL();
-	}
-	
-void CTestDmDDFObject::SetAsObjectGroup()
-	{
-	iLog->Log( _L8( "SetAsObjectGroup, true" ) );
-	iObjectGroup = ETrue;
-	}
-	
-MSmlDmDDFObject& CTestDmDDFObject::AddChildObjectL(const TDesC8& aNodeName)
-	{
-	iLog->Log( _L8( "AddChildObjectL, aNodeName='%S'" ), &aNodeName );
-	CTestDmDDFObject* child = CTestDmDDFObject::NewLC( iLog ); //, aNodeName );
-	child->SetNameL( aNodeName );
-	iChildren.AppendL( child );
-	CleanupStack::Pop( child ); // Don't destroy
-	return *child;
-	}
-
-MSmlDmDDFObject& CTestDmDDFObject::AddChildObjectGroupL()
-	{
-	iLog->Log( _L8( "AddChildObjectGroupL, ''" ) );
-	CTestDmDDFObject* child = CTestDmDDFObject::NewLC( iLog ); //, KNullDesC );
-	child->SetAsObjectGroup();
-	iChildren.AppendL( child );
-	CleanupStack::Pop( child ); // Don't destroy
-	return *child;
-	}
-
-// Own functions
-
-void CTestDmDDFObject::SetNameL( const TDesC8& aName )
-	{
-	delete iName;
-	iName = 0;
-	iName = aName.AllocL();
-	}
-
-void CTestDmDDFObject::DumpL( const TDesC8& aParentName, TBool aFullDump )
-	{
-	TPtrC8 name( _L8("<X>") );
-	if (iName && iName->Length() > 0)
-		{
-		name.Set( *iName );
-		}
-
-	HBufC8* fullName = HBufC8::NewLC( aParentName.Length() + name.Length() + 1 );
-	*fullName = aParentName;
-	if (aParentName.Length() > 0 && aParentName[ aParentName.Length() - 1 ] != '/')
-		{
-		fullName->Des().Append( _L8("/"));
-		}
-	fullName->Des().Append( name );
-
-	/* Translate some members to text for dumping */
-	TBuf8<20> strAccessTypes;
-	TUint8 accessTypes = iAccessTypes.GetACL();
-	if ((accessTypes & iAccessTypes.EAccessType_Add) != 0)
-		{
-		strAccessTypes.Append( _L8("A") );
-		}
-	if ((accessTypes & iAccessTypes.EAccessType_Copy) != 0)
-		{
-		strAccessTypes.Append( _L8("C") );
-		}
-	if ((accessTypes & iAccessTypes.EAccessType_Delete) != 0)
-		{
-		strAccessTypes.Append( _L8("D") );
-		}
-	if ((accessTypes & iAccessTypes.EAccessType_Exec) != 0)
-		{
-		strAccessTypes.Append( _L8("E") );
-		}
-	if ((accessTypes & iAccessTypes.EAccessType_Get) != 0)
-		{
-		strAccessTypes.Append( _L8("G") );
-		}
-	if ((accessTypes & iAccessTypes.EAccessType_Replace) != 0)
-		{
-		strAccessTypes.Append( _L8("R") );
-		}
-	
-	TBuf8<20> strFormat;
-	switch( iFormat )
-		{
-	case EB64:
-		strFormat = _L8("Base64");
-		break;
-	case EBool:
-		strFormat = _L8("Bool");
-		break;
-	case EChr:
-		strFormat = _L8("Chr");
-		break;
-	case EInt:
-		strFormat = _L8("Int");
-		break;
-	case ENode:
-		strFormat = _L8("Node");
-		break;
-	case ENull:
-		strFormat = _L8("Null");
-		break;
-	case EXml:
-		strFormat = _L8("Xml");
-		break;
-	case EBin:
-		strFormat = _L8("Bin");
-		break;
-	default:
-		break;
-		}
-
-
-	TBuf8<20> strOccurence;
-	switch( iOccurence )
-		{
-	case EOne:
-		/** The node appears exactly once */
-		strOccurence = _L8("M:1");
-		break;
-	case EZeroOrOne:
-		/** The node is optional and may appear zero or once */
-		strOccurence = _L8("O:0-1");
-		break;
-	case EZeroOrMore:
-		/** The node is optional and may appear zero or more times */
-		strOccurence = _L8("O:0-*");
-		break;
-	case EOneOrMore:
-		/** The node is mandatory and may appear once or more times */
-		strOccurence = _L8("M:1-*");
-		break;
-	case EZeroOrN:
-		/** The node is optional and may appear between once and 'N' times */
-		strOccurence = _L8("O:1-N");
-		break;
-	case EOneOrN:
-		/** The node is mandatory and may appear between once and 'N' times */
-		strOccurence = _L8("M:1-N");
-		break;
-	default:
-		break;
-		}
-	
-	
-	TBuf8<20> strScope;
-	switch( iScope)
-		{
-	case EPermanent:
-		/** The node appears exactly once */
-		strScope = _L8("Permanent");
-		break;
-	case EDynamic:
-		/** The node is optional and may appear zero or once */
-		strScope = _L8("O:Dynamic");
-		break;
-	default:
-		break;
-		}
-
-	
-	/* Dump main data */
-	if (aFullDump)
-		{
-		iLog->Log( _L8( "DDFObject: '%S'" ), fullName );
-		}
-		else
-		{
-		iLog->Log( _L8( "DDFObject: '%S'   (%S), %S, %S, %S" ),
-					fullName, &strAccessTypes, &strFormat, &strOccurence, &strScope );
-		}
-	
-	/* Dump members */
-	if (aFullDump)
-		{
-		TPtrC8 empty( _L8( "<null>" ) );
-		#define CHK_NULL(a) ((a)==0?(TDesC8*)(&empty):(TDesC8*)(a))
-
-		iLog->Log( _L8( "    iName=='%S'" ), iName );
-		iLog->Log( _L8( "    iAccessTypes=%d (%S)" ), iAccessTypes.GetACL(), &strAccessTypes );
-		iLog->Log( _L8( "    iDefaultValue='%S'" ), CHK_NULL(iDefaultValue));
-		iLog->Log( _L8( "    iDescription='%S'" ), CHK_NULL(iDescription ));
-		iLog->Log( _L8( "    iFormat=%d (%S)" ), iFormat, &strFormat );
-		iLog->Log( _L8( "    iOccurence=%d (%S)" ), iOccurence, &strOccurence );
-		iLog->Log( _L8( "    iScope=%d (%S)" ), iScope, &strScope );
-		iLog->Log( _L8( "    iTitle='%S'" ), CHK_NULL(iTitle ));
-		iLog->Log( _L8( "    iMimeType='%S'" ), CHK_NULL(iMimeType ));
-		iLog->Log( _L8( "----------------------------------" ) );
-		}
-	
-	/* Dump children */
-	for (TInt i = 0 ; i < iChildren.Count() ; i++)
-		{
-		iChildren[i]->DumpL( *fullName, aFullDump );
-		}
-
-	CleanupStack::PopAndDestroy( fullName );
-	}
-
-/*
-void CTestDmDDFObject::ExternalizeL(RWriteStream& aStream) const
-	{
-	X;
-	aStream << *iName << eol;
-	}
-*/
-
-const TDesC8& CTestDmDDFObject::Name()
-	{
-	return (iName != 0) ? *iName : KNullDesC8();
-	}
-
-TSmlDmAccessTypes  CTestDmDDFObject::AccessTypes()
-	{
-	return iAccessTypes;
-	}
-
-const TDesC8& CTestDmDDFObject::DefaultValue()
-	{
-	return (iDefaultValue != 0) ? *iDefaultValue : KNullDesC8();
-	}
-
-const TDesC8& CTestDmDDFObject::Description()
-	{
-	return (iDescription != 0) ? *iDescription : KNullDesC8();
-	}
-
-CTestDmDDFObject::TDFFormat CTestDmDDFObject::DFFormat()
-	{
-	return iFormat;
-	}
-
-CTestDmDDFObject::TOccurence CTestDmDDFObject::Occurence()
-	{
-	return iOccurence;
-	}
-
-CTestDmDDFObject::TScope CTestDmDDFObject::Scope()
-	{
-	return iScope;
-	}
-
-const TDesC8& CTestDmDDFObject::DFTitle()
-	{
-	return (iTitle != 0) ? *iTitle : KNullDesC8();
-	}
-
-const TDesC8& CTestDmDDFObject::DFTypeMimeType()
-	{
-	return (iMimeType != 0) ? *iMimeType : KNullDesC8();
-	}
-
-TBool CTestDmDDFObject::ObjectGroup()
-	{
-	return iObjectGroup;
-	}
-
-TInt CTestDmDDFObject::ChildObjectCount()
-	{
-	return iChildren.Count();
-	}
-
-CTestDmDDFObject& CTestDmDDFObject::ChildObject( TInt aIndex )
-	{
-	return *iChildren[aIndex];
-	}
-
-CTestDmDDFObject* CTestDmDDFObject::FindChildObject( const TDesC8& aName )
-	{
-	CTestDmDDFObject* foundObject = 0;
-
-	for (TInt i = 0 ; i < iChildren.Count() ; i++)
-		{
-		if ( aName.CompareC( iChildren[i]->Name() ) == 0 )
-			{
-			foundObject = iChildren[i];
-			break;
-			}
-		}
-
-	return foundObject;
-	}
-
-TInt CTestDmDDFObject::SubObjectsCount()
-	{
-	TInt count = 0;
-
-	TInt i;
-	for (i = 0 ; i < iChildren.Count() ; i++)
-		{
-		count += iChildren[i]->SubObjectsCount();
-		}
-	count += i;
-
-	return count;
-	}
-
-/*
-// ========================== OTHER EXPORTED FUNCTIONS =========================
-
-// -----------------------------------------------------------------------------
-// ?function_name implements...
-// ?implementation_description.
-// Returns: ?value_1: ?description
-//          ?value_n: ?description
-//                    ?description
-// -----------------------------------------------------------------------------
-//
-?type  ?function_name(
-    ?arg_type arg,  // ?description
-    ?arg_type arg )  // ?description
-    {
-
-    ?code
-
-    }
-*/
-//  End of File  
--- a/deviceupdatesui/adapters/syncmldm12/tsrc/src/dmatest.cpp	Tue Jul 13 03:42:03 2010 +0530
+++ /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
--- a/deviceupdatesui/adapters/syncmldm12/tsrc/src/syncmldm12test.cpp	Tue Jul 13 03:42:03 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,117 +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 <Stiftestinterface.h>
-#include "syncmldm12Test.h"
-#include <stiflogger.h>
-
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// Csyncmldm12Test::Csyncmldm12Test
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-/*Csyncmldm12Test::Csyncmldm12Test( 
-    CTestModuleIf& aTestModuleIf ):
-        CScriptBase( aTestModuleIf )
-    {
-    }*/
-Csyncmldm12Test::Csyncmldm12Test( CTestModuleIf& aTestModuleIf )
-		: Cdmatest( aTestModuleIf, KAdapterUid )
-    {
-    }
-// -----------------------------------------------------------------------------
-// Csyncmldm12Test::ConstructL
-// Symbian 2nd phase constructor can leave.
-// -----------------------------------------------------------------------------
-//
-void Csyncmldm12Test::ConstructL()
-    {
-/*    iLog = CStifLogger::NewL( KamtestLogPath, 
-                          KamtestLogFile,
-                          CStifLogger::ETxt,
-                          CStifLogger::EFile,
-                          EFalse );*///Commented the Part for syncmldm12Test Dipak
-    iLog = CStifLogger::NewL( KamtestLogPath, 
-                          KamtestLogFile,
-                          CStifLogger::ETxt,
-                          CStifLogger::EFile );
-                          
-    iLog->Log( _L( "Loading Adapter" ) );
-    
-	Cdmatest::ConstructL();                         	
-
-    }
-
-// -----------------------------------------------------------------------------
-// Csyncmldm12Test::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-Csyncmldm12Test* Csyncmldm12Test::NewL( 
-    CTestModuleIf& aTestModuleIf )
-    {
-    Csyncmldm12Test* self = new (ELeave) Csyncmldm12Test( aTestModuleIf );
-    
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop();
-
-    return self;
-    
-    }
-    
-// Destructor
-Csyncmldm12Test::~Csyncmldm12Test()
-    { 
-    
-    // Delete resources allocated from test methods
-//    Delete();
-    
-    // Delete logger
-//    delete iLog;  
-    
-    }
-
-// ========================== OTHER EXPORTED FUNCTIONS =========================
-
-// -----------------------------------------------------------------------------
-// LibEntryL is a polymorphic Dll entry point.
-// Returns: CScriptBase: New CScriptBase derived object
-// -----------------------------------------------------------------------------
-//
-EXPORT_C CScriptBase* LibEntryL( 
-    CTestModuleIf& aTestModuleIf ) // Backpointer to STIF Test Framework
-    {
-    
-    return ( CScriptBase* ) Csyncmldm12Test::NewL( aTestModuleIf );
-        
-    }
-
-
-    
-//  End of File
--- a/deviceupdatesui/adapters/syncmldm12/tsrc/src/syncmldm12testBlocks.cpp	Tue Jul 13 03:42:03 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,108 +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 <e32svr.h>
-#include <StifParser.h>
-#include <Stiftestinterface.h>
-#include "syncmldm12Test.h"
-#include <e32math.h>
-#include <f32file.h>
-#include <swinstapi.h>
-
-
-//using namespace NApplicationManagement;//Dipak
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// Csyncmldm12Test::Delete
-// Delete here all resources allocated and opened from test methods. 
-// Called from destructor. 
-// -----------------------------------------------------------------------------
-//
-void Csyncmldm12Test::Delete() 
-    {
-    
-    }
-    
-// -----------------------------------------------------------------------------
-// Csyncmldm12Test::RunMethodL
-// Run specified method. Contains also table of test mothods and their names.
-// -----------------------------------------------------------------------------
-//
-TInt Csyncmldm12Test::RunMethodL( 
-    CStifItemParser& aItem ) 
-    {
-   
-    TStifFunctionInfo const KFunctions[] =
-        {  
-        // Copy this line for every implemented function.
-        // First string is the function name used in TestScripter script file.
-        // Second is the actual implementation member function. 
-        ENTRY( "DDFStructure", Csyncmldm12Test::DDFStructureL),
-        ENTRY( "FetchNode", Csyncmldm12Test::FetchNodeL ),
-        ENTRY( "FetchLeaf", Csyncmldm12Test::FetchLeafL ),
-        ENTRY( "AddNode", Csyncmldm12Test::AddNodeL ),
-        ENTRY( "UpdateLeaf", Csyncmldm12Test::UpdateLeafL ),
-        ENTRY( "UpdateLeafData", Csyncmldm12Test::UpdateLeafDataL ),
-        ENTRY( "Execute", Csyncmldm12Test::ExecuteLeafL ),
-        ENTRY( "ExecuteData", Csyncmldm12Test::ExecuteLeafDataL ),
-        ENTRY( "DeleteNode", Csyncmldm12Test::DeleteObjectL ),
-        ENTRY( "StartAtomic", Csyncmldm12Test::StartAtomicL),
-	    ENTRY( "CommitAtomic", Csyncmldm12Test::CommitAtomicL),
-	    ENTRY( "RollbackAtomic", Csyncmldm12Test::RollbackAtomicL),
-	    ENTRY( "CompleteCommands", Csyncmldm12Test::CompleteCommandsL),
-        };
-
-    const TInt count = sizeof( KFunctions ) / 
-                        sizeof( TStifFunctionInfo );
-
-    return RunInternalL( KFunctions, count, aItem );
-
-    }    
-
-        
-        
-HBufC8 *Csyncmldm12Test::GetNextStringLC ( CStifItemParser& aItem, const TDesC &aName )
-	{
-	TPtrC nodename;
-	nodename.Set( 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;
-	}
-	
-//  End of File
--- a/deviceupdatesui/cpqtsp/Cpqtsp.pri	Tue Jul 13 03:42:03 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
-SOURCES = \
-    src/main.cpp \
-    src/CpQtSpMainWindow.cpp \
-    src/CpQtSpView.cpp \
-    src/CWPBioControl.cpp \
-    src/CWPNameValue.cpp \
-    src/CWPStringPair.cpp 
-    
-HEADERS = \
-    inc/CpQtSpMainWindow.h \
-    inc/CpQtSpView.h \
-    inc/CWPBioControl.h \
-    inc/CWPNameValue.h \
-    inc/CWPStringPair.h \
-    inc/ProvisioningUIDs.h \
-    inc/ProvisioningDebug.h \
-    ../../../../mw/remotemgmt/omaprovisioning/provisioning/ProvisioningEngine/Inc 
--- a/deviceupdatesui/cpqtsp/cpqtsp.pro	Tue Jul 13 03:42:03 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,47 +0,0 @@
-#
-# Copyright (c) 2009 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:
-#
-
-TEMPLATE=app
-TARGET=Cpqtsp
-
-symbian: {
-	TARGET.CAPABILITY = CAP_APPLICATION 
-  TARGET.EPOCALLOWDLLDATA = 1  
-  TARGET.UID3 = 0x2002DD2B	
-	BLD_INF_RULES.prj_exports += "$${LITERAL_HASH}include <platform_paths.hrh>"
-	BLD_INF_RULES.prj_exports += "rom/cpqtsp.iby CORE_APP_LAYER_IBY_EXPORT_PATH(cpqtsp.iby)"
-	BLD_INF_RULES.prj_exports += "rom/cpsqtsp_resources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(cpsqtsp_resources.iby)"
-}
-
-CONFIG += hb service
-include(Cpqtsp.pri)
-LIBS+=-lxqservice -lxqserviceutil -lflogger
-MMP_RULES += "LIBRARY msgs.lib centralrepository.lib provisioningengine.lib featmgr.lib"
-
-TRANSLATIONS += deviceupdates.ts
-
-SERVICE.FILE = resources/service_conf.xml
-SERVICE.OPTIONS = embeddable
-SERVICE.OPTIONS += hidden
-
-libFiles.sources = xqservice.dll
-libFiles.path = "!:\sys\bin"
-DEPLOYMENT += libFiles
-
-MOC_DIR = moc
-
--- a/deviceupdatesui/cpqtsp/inc/CWPBioControl.h	Tue Jul 13 03:42:03 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,105 +0,0 @@
-/*
-* Copyright (c) 2002 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: 
-*     Bio control for Provisioning documents.
-*
-*/
-
-
-#ifndef CWPBIOCONTROL_H
-#define CWPBIOCONTROL_H
-
-// INCLUDES
-#include <e32cmn.h>
-#include <msvapi.h>
-#include "CWPBootstrap.h"
-
-class CWPEngine;
-class CWPNameValue;
-class CWPPushMessage;
-class CWPBootstarp;
-
-// CLASS DECLARATION
-
-/**
- * Bio control for OMA Provisioning messages.
- * @since 2.0
- */
- 
- class CDummyObserver : public CBase, public MMsvSessionObserver
-{
-public:
-        void HandleSessionEventL(TMsvSessionEvent, TAny*, TAny*, TAny*) {};
-};
-
-
-class CWPBioControl//: public CMsgBioControl
-    {
-    public:  // Constructor and destructor
-
-        /**
-        * Two-phased constructor.
-        * @param aObserver Reference to the Bio control observer.
-        * @param aSession Reference to Message Server session.
-        * @param aId Id of the message.
-        * @param aEditorOrViewerMode Enum for the mode, is it as editor or viewer.
-        * @param aFileName The newly created object.
-        * @param aFile file handle to provisioning content.
-        */
-        IMPORT_C static CWPBioControl* NewL( CMsvSession* aSession,TMsvId aId);
-       ~CWPBioControl();
-        RPointerArray<CWPNameValue>* CollectItemsLC() const;        
-	    CWPEngine* returnEngine();	       
-	    
-    private: // Constructors
-
-        /**
-        * Constructor is prohibited.
-        * @param aObserver Reference to the Bio control observer.
-        * @param aSession Reference to Message Server session.
-        * @param aId Id of the message in Message Server.
-        * @param aEditorOrViewerMode Enum for the mode, is it as editor or viewer.
-        * @param aFileName The newly created object.
-        * @param aFile file handle to provisioning content.
-        */
-        CWPBioControl( CMsvSession* aSession,TMsvId aId);
-        void ConstructL(CMsvSession* aSession,TMsvId aId);
-	
-    private: 
-        
-        void AddItemsL();
-        void CollateAndAddItemsL( RPointerArray<CWPNameValue>& aItems );        
-        void DoSaveL();
-        void AuthenticateL( CWPPushMessage& aMessage );
-        void RestoreMsgL();
-        static TInt Compare( const CWPNameValue& aImpl1,const CWPNameValue& aImpl2 );
-        void SaveSettingsL();
-        void SetCenrepKeyL(const TDesC8& aValue);
-        void SaveMessageL();
-        static void Cleanup( TAny* aAny );
-        
-    private: 
-        CWPEngine*      iEngine;
-        CWPPushMessage* iMessage;
-        CDummyObserver* iObserver;
-        CMsvSession* iSession;
-        TMsvId iId;   
-        TMsvEntry iEntry;
-    };
-
-
-
-#endif // CWPBIOCONTROL_H
-
-// End of File
--- a/deviceupdatesui/cpqtsp/inc/CWPNameValue.h	Tue Jul 13 03:42:03 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,98 +0,0 @@
-/*
-* Copyright (c) 2002 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 class encapsulates a name and value pair.
-*
-*/
-
-
-
-#ifndef _CWPNameValue_H_
-#define _CWPNameValue_H_
-
-// INCLUDES
-
-#include <e32base.h>                    // CBase
-
-// CLASS DECLARATION
-
-/**
- * Class holds name and value text pairs.
- */
-class CWPNameValue : public CBase
-    {
-    public: // construction
-
-         /**
-         * Two phased constructor.
-         * @param aName The field name.
-         * @param aValue The field value.
-         * @return The newly constructed object.
-         */
-        IMPORT_C static CWPNameValue* NewL( HBufC* aName, HBufC* aValue );
-        IMPORT_C static CWPNameValue* NewL(const TDesC& aName, const TDesC& aValue);
-        IMPORT_C static CWPNameValue* NewLC(const TDesC& aName, const TDesC& aValue);
-
-        /// Destructor
-        ~CWPNameValue();
-    
-    public: // new functions
-
-        /// @return Name or KNullDesC
-        IMPORT_C const TDesC& Name() const;
-        /// @return Value or KNullDesC
-        IMPORT_C const TDesC& Value() const;
-
-    private: // construction
-
-        /**
-         * Second phase constructor.
-         * @param aName The field name.
-         * @param aValue The field value.
-         */
-        void ConstructL( const TDesC& aName, const TDesC& aValue );
-
-        /**
-         * Second phase constructor.
-         * @param aName The field name.
-         * @param aValue The field value.
-         */
-        void ConstructL( HBufC* aName, HBufC* aValue );
-
-    private: // hidden	
-
-        /// Default constructor.
-        CWPNameValue();
-
-        /// Another constructor
-        CWPNameValue( HBufC* aName, HBufC* aValue );
-
-        /// Copy contructor prohibited.
-        CWPNameValue(const CWPNameValue& aSource);
-
-        /// Assignment operator prohibited.
-        const CWPNameValue& operator=(const CWPNameValue& aSource);
-
-    private:
-    
-        /// Own. Pointer to the name.
-        HBufC* iName;
-
-        /// Own. Pointer to the value.
-        HBufC* iValue;
-    };
-
-#endif // _CWPNameValue_H_
-
-// End of file
--- a/deviceupdatesui/cpqtsp/inc/CWPStringPair.h	Tue Jul 13 03:42:03 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,69 +0,0 @@
-/*
-* Copyright (c) 2002 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: 
-*     Sortable string pair.
-*
-*/
-
-
-#ifndef CWPSTRINGPAIR_H
-#define CWPSTRINGPAIR_H
-
-// INCLUDES
-#include <e32base.h>
-
-// CLASS DECLARATION
-
-/**
- * Sortable string pair
- */
-class CWPStringPair : public CBase
-	{
-	public:
-        /**
-        * C++ default constructor.
-        */
-		CWPStringPair();
-
-        /**
-        * Destructor.
-        */
-		~CWPStringPair();
-
-	public:
-		/**
-		* Sets the values for string pair.
-		* @param aName The name of the string
-		* @param aValue The value of the string
-		*/
-		void SetL( const TDesC& aName, const TDesC& aValue );
-
-	public:
-		// Points to iName. Use for constructing TKeyArrayFixPtr.
-		TPtrC iNamePtr;
-
-		// Points to iValue. Use for constructing TKeyArrayFixPtr.
-		TPtrC iValuePtr;
-
-	private:
-		// The name of the pair. Owns.
-		HBufC* iName;
-
-		// The value of the pair. Owns.
-		HBufC* iValue;
-	};
-
-#endif // CWPSTRINGPAIR_H
-
-// End of File
--- a/deviceupdatesui/cpqtsp/inc/CpQtSpMainWindow.h	Tue Jul 13 03:42:03 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-/*
-* Copyright (c) 2002 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: 
-*     
-*
-*/
-
-#ifndef CPQTSPMAINWINDOW_H
-#define CPQTSPMAINWINDOW_H
-
-#include <hbmainwindow.h>
-
-class CpQtSpView;
-class CpQtSp;
-
-class CpQtSpMainWindow : public HbMainWindow
-{
-    Q_OBJECT
-    
-public:
-     CpQtSpMainWindow(QWidget *parent=0);
-     ~CpQtSpMainWindow();   
-public slots:
-    void showView();
-    
-private:
-    CpQtSp* iServiceProvider;
-    CpQtSpView* iView;  
-};
-
-#endif // CPQTSPMAINWINDOW_H
--- a/deviceupdatesui/cpqtsp/inc/CpQtSpView.h	Tue Jul 13 03:42:03 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,83 +0,0 @@
-/*
-* Copyright (c) 2002 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: 
-*     
-*
-*/
-
-#ifndef CPQTSPVIEW_H
-#define CPQTSPVIEW_H
-
-#include <hbview.h>
-#include <xqserviceprovider.h>
-#include <QGraphicsLinearLayout>
-#include <CWPNameValue.h>
-#include <CWPBioControl.h>
-#include <msvapi.h>
-#include <hbscrollarea.h>
-
-class CObserver : public CBase, public MMsvSessionObserver
-{
-public:
-        void HandleSessionEventL(TMsvSessionEvent, TAny*, TAny*, TAny*) {};
-};
-
-
-class CpQtSp;
-class XQServiceRequest;
-
-class CpQtSpView : public HbView
-{
-    Q_OBJECT
-
-public:
-    CpQtSpView(CpQtSp* service,QGraphicsItem *parent = 0);
-    ~CpQtSpView();
-    void constructView();
-
-public slots:
-    void requestCompleted(const QVariant& value);
-    void saveProvisoningMessage();
-private:
-    CpQtSp* iServiceProvider; 
-    QGraphicsLinearLayout *layout;
-    HbFontSpec *iPrimaryFont;
-    HbFontSpec *iSecondaryFont;
-    RPointerArray<CWPNameValue>* iArray;
-    CWPBioControl* iBio;   
-};
-
-class CpQtSp : public XQServiceProvider
-{
-    Q_OBJECT
-public:
-    CpQtSp( QObject *parent = 0 );
-    ~CpQtSp();
-    void complete();    
-		TMsvId returnId();
-		CMsvSession* returnSession();
-	
-Q_SIGNALS:	
-    void showView();
-    
-public slots:
-    QString ProcessMessage(const QString& number);
-    
-private:
-    TMsvId iId;
-    CObserver* iObserver;
-    CMsvSession* iSession;    
-};
-
-#endif // CPQTSPVIEW_H
--- a/deviceupdatesui/cpqtsp/inc/ProvisioningDebug.h	Tue Jul 13 03:42:03 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,131 +0,0 @@
-/*
-* Copyright (c) 2005 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 file defines logging macros for Provisioning
-*
-*/
-
-
-
-#ifndef PROVISIONINGDEBUG_H
-#define PROVISIONINGDEBUG_H
-
-#include <e32debug.h> 
-
-//Examples
-//FLOG( _L( "[Provisioning] ProvisioningEngine::ConstructL:" ) );
-//FTRACE(RDebug::Print(_L("[Provisioning] ProvisioningEngine::ConstructL: err (%d)"), err));
-#ifdef _DEBUG
-
-const TInt KBTHexDumpWidth=16;
-const TInt KBTLogBufferSize=100;
-const TText KFullStopChar='.';
-
-_LIT(KBTFirstFormatString,"%04x: ");
-_LIT(KBTSecondFormatString,"%02x ");
-_LIT(KBTThirdFormatString,"%c");
-_LIT(KBTThreeSpaces,"   ");
-_LIT(KBTSeparator," ");
-
-inline void HexDump(const TUint8* aPtr, TInt aLen)
-    {
-	if( aPtr != NULL )
-	    {
-    	TBuf<KBTLogBufferSize> line;
-	    TInt i = 0;
-
-    	while (aLen>0)
-    		{
-    		TInt n = (aLen>KBTHexDumpWidth ? KBTHexDumpWidth : aLen);
-    		line.AppendFormat(KBTFirstFormatString,i);
-    		TInt j;
-    		for (j=0; j<n; j++)
-    			line.AppendFormat(KBTSecondFormatString,aPtr[i+j]);
-    		while (j++<KBTHexDumpWidth)
-    			line.Append(KBTThreeSpaces);
-    		line.Append(KBTSeparator);
-    		for (j=0; j<n; j++)
-    			line.AppendFormat(KBTThirdFormatString,(aPtr[i+j]<32 || aPtr[i+j]>126 || aPtr[i+j]==37) ? KFullStopChar : aPtr[i+j]);
-
-    		RDebug::Print(line);
-
-            line.Zero();
-    		aLen-=n;
-    		i+=n;
-    	    }
-        }
-    }
-
-
-// ------------------------------------------
-
-inline void FHex(const TUint8* aPtr, TInt aLen)
-    {
-    HexDump( aPtr, aLen );
-    }
-
-// ------------------------------------------
-
-inline void FHex(const TDesC8& aDes)
-    {
-    HexDump(aDes.Ptr(), aDes.Length());
-    }
-
-// ===========================================================================
-#ifdef __WINS__     // File logging for WINS
-// ===========================================================================
-#include <e32std.h>
-#include <f32file.h>
-#include <flogger.h>
-
-_LIT( KLogFile, "Provisioning.log" );
-_LIT( KLogDirFullName, "c:\\logs\\" );
-_LIT( KLogDir, "Provisioning" );
-
-#define FLOG( a )   { FPrint(a); }
-#define FTRACE( a ) { a; }
-
-// Declare the FPrint function
-//
-inline void FPrint( const TRefByValue<const TDesC> aFmt, ... )
-    {
-    VA_LIST list;
-    VA_START( list, aFmt );
-    RFileLogger::WriteFormat( KLogDir,
-                              KLogFile,
-                              EFileLoggingModeAppend,
-                              aFmt,
-                              list );
-    }
-
-// ===========================================================================
-#else               // RDebug logging for target HW
-// ===========================================================================
-#include <e32svr.h>
-
-#define FLOG( a )   { RDebug::Print( a ); }
-#define FTRACE( a ) { a; }
-
-#endif //__WINS__
-
-// ===========================================================================
-#else // // No loggings --> Reduced binary size
-// ===========================================================================
-#define FLOG( a )
-#define FTRACE( a )
-
-#endif // _DEBUG
-
-#endif      // PROVISIONINGDEBUG_H
-            
-// End of File
--- a/deviceupdatesui/cpqtsp/inc/ProvisioningUIDs.h	Tue Jul 13 03:42:03 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,147 +0,0 @@
-/*
-* Copyright (c) 2002 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:  UIDs for project Provisioning
-*
-*/
-
-
-
-#ifndef PROVISIONINGUID_H
-#define PROVISIONINGUID_H
-
-//  CONSTANTS  
-
-/// ECOM plugin
-#define KECOMUid2 0x10009D8D
-
-/// Normal Symbian OS DLL
-#define KSymbianDLLUid2 0x1000008d
-
-/// UID2 for Provisioning BIO control
-#define KProvisioningBCUid2 0x10005F5F
-
-/// UID3 for Provisioning BIO control
-#define KProvisioningBCUid3 0x101F84D3
-
-/// UID for the Provisioning Message type for BIO database
-#define KProvisioningMessageTypeUid 0x101F84D1
-
-/// UID2 for the handler plugin for WAP Provisioning documents
-#define KProvisioningHandlerUid2 KECOMUid2
-
-/// UID3 for the handler plugin DLL for WAP Provisioning documents
-#define KProvisioningHandlerUid3 0x101F84D2
-
-/// UID for the handler plugin implementation
-#define KProvisioningHandlerImplUid 0x101F84D3
-
-/// UID of the Content Type Handler plugin interface
-#define KProvisioningHandlerInterface 0x101F3E5E
-
-/// UID2 of the Provisioning Parser DLL
-#define KProvisioningParserUid2 KSymbianDLLUid2
-
-/// UID3 of the Provisioning Parser DLL
-#define KProvisioningParserUid3 0x101F84D4
-
-/// UID of the Provisisioning Adapter plugin interface
-#define KProvisioningAdapterInterface 0x101F84D5
-
-/// UID2 of the Provisioning Engine DLL
-#define KProvisioningEngineUid2 KSymbianDLLUid2
-
-/// UID3 of the Provisioning Engine DLL
-#define KProvisioningEngineUid3 0x101F84D6
-
-/// UID for HTTPHeader stream in WAP Provisioning message
-#define KProvisioningMessageStreamUid 0x101F84D7
-
-/// UID2 for the APAdapter DLL
-#define KProvisioningAPAdapterDllUid2 KECOMUid2
-
-/// UID3 for the APAdapter DLL
-#define KProvisioningAPAdapterDllUid3 0x101F84D8
-
-/// UID for the APAdapter
-#define KProvisioningAPAdapterUid 0x101F84D9
-
-/// UID2 for the Browser+MMSAdapter DLL
-#define KProvisioningWAPAdapterDllUid2 KECOMUid2
-
-/// UID3 for the Browser+MMSAdapter DLL
-#define KProvisioningWAPAdapterDllUid3 0x101F84DC
-
-/// UID for the BrowserAdapter
-#define KProvisioningBrowserAdapterUid 0x101F84DB
-
-/// UID for the MMSAdapter
-#define KProvisioningMMSAdapterUid 0x101F84DD
-
-/// UID2 for the DataSyncAdapter DLL
-#define KProvisioningDataSyncAdapterDllUid2 KECOMUid2
-
-/// UID3 for the DataSyncAdapter DLL
-#define KProvisioningDataSyncAdapterDllUid3 0x101F84DE
-
-/// UID for the DataSyncAdapter
-#define KProvisioningDataSyncAdapterUid 0x101F84DF
-
-/// UID2 for the DeviceManagementAdapter DLL
-#define KProvisioningDeviceManagementAdapterDllUid2 KECOMUid2
-
-/// UID3 for the DeviceManagementAdapter DLL
-#define KProvisioningDeviceManagementAdapterDllUid3 0x101F84E0
-
-/// UID for the DeviceManagementAdapter
-#define KProvisioningDeviceManagementAdapterUid 0x101F84E1
-
-/// UID2 for the IMAdapter DLL
-#define KProvisioningIMAdapterDllUid2 KECOMUid2
-
-/// UID3 for the IMAdapter DLL
-#define KProvisioningIMAdapterDllUid3 0x101F84E2
-
-/// UID for the IMAdapter
-#define KProvisioningIMAdapterUid 0x101F84E3
-
-/// UID2 for the StreamingAdapter DLL
-#define KProvisioningStreamingAdapterUid2 KECOMUid2
-
-/// UID3 for the StreamingAdapter DLL
-#define KProvisioningStreamingAdapterDllUid3 0x101F84E6
-
-/// UID for the StreamingAdapter
-#define KProvisioningStreamingAdapterUid 0x101F84E7
-
-/// UID2 for the JavaAdapter DLL
-#define KProvisioningJavaAdapterUid2 KECOMUid2
-
-/// UID3 for the JavaAdapter DLL
-#define KProvisioningJavaAdapterDllUid3 0x101F84E8
-
-/// UID for the JavaAdapter
-#define KProvisioningJavaAdapterUid 0x101F84E9
-
-/// UID2 for Symbian application
-#define KProvisioningCxUID2 0x100039CE
-
-/// UID3 for ProvisioningCx application
-#define KProvisioningCxUID3 0x101F8597
-
-/// UID for the PresenceAdapter
-#define KProvisioningPecAdapterUid 0x102072D3
-
-#endif      //  PROVISIONINGUID_H
-            
-// End of File
--- a/deviceupdatesui/cpqtsp/resources/service_conf.xml	Tue Jul 13 03:42:03 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<service name="com.nokia.services.MDM" filepath="must-not-be-empty">
-  <description>OMA CP Service</description>
-  <interface name="Provisioning" version="1.0" capabilities="">
-    <description>OMA CP Service Provider</description>
-  </interface>
-</service>
\ No newline at end of file
--- a/deviceupdatesui/cpqtsp/rom/cpqtsp.iby	Tue Jul 13 03:42:03 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-/*
-* Copyright (c) 2006-2009 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:     cpqtsp.iby
-*
-*/
-
-#ifndef __CPQTSP_IBY__
-#define __CPQTSP_IBY__
-
-#include <bldvariant.hrh>
-#include <data_caging_paths_for_iby.hrh> 
-
-file = ABI_DIR/BUILD_DIR/Cpqtsp.exe PROGRAMS_DIR/Cpqtsp.exe
-data = DATAZ_/private/10003a3f/import/apps/Cpqtsp_reg.rsc private/10003a3f/import/apps/Cpqtsp_reg.rsc
-
-data=/epoc32/data/z/resource/plugins/devicedialogs/devicemanagementnotifiersplugin.qtplugin		resource/plugins/devicedialogs/devicemanagementnotifiersplugin.qtplugin
-file=ABI_DIR/BUILD_DIR/devicemanagementnotifiersplugin.dll		SHARED_LIB_DIR/devicemanagementnotifiersplugin.dll
-
-#endif
\ No newline at end of file
--- a/deviceupdatesui/cpqtsp/rom/cpsqtsp_resources.iby	Tue Jul 13 03:42:03 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-/*
-* Copyright (c) 2006-2009 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:     cpqtspresources.iby
-*
-*/
-
-#ifndef __CPQTSP_RESORCES_IBY__
-#define __CPQTSP_RESORCES_IBY__
-
-#include <data_caging_paths_for_iby.hrh> 
-
-
-data=DATAZ_/resource/apps/Cpqtsp.rsc /resource/apps/Cpqtsp.rsc
-
-
-#endif
\ No newline at end of file
--- a/deviceupdatesui/cpqtsp/src/CWPBioControl.cpp	Tue Jul 13 03:42:03 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,312 +0,0 @@
-/*
-* Copyright (c) 2002 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: 
-*     Bio control for Provisioning documents.
-*
-*/
-
-// INCLUDE FILES
-#include "CWPBioControl.h"
-#include <msvapi.h>
-#include <bldvariant.hrh>
-#include <msvids.h>
-#include <featmgr.h>
-#include <sysutil.h>
-#include "CWPEngine.h"
-#include "CWPAdapter.h"
-#include "MWPPhone.h"
-#include "WPPhoneFactory.h"
-#include "CWPPushMessage.h"
-#include "ProvisioningUIDs.h"
-#include "MWPContextManager.h"
-#include "ProvisioningDebug.h"
-#include "CWPNameValue.h"
-#include <aknmessagequerydialog.h> 
-#include "ProvisioningInternalCRKeys.h"
-
-// CONSTANTS
-/// Maximum length of PIN code
-const TInt KMaxPinSize = 20;
-/// Number of retries for PIN
-// const TInt KPinRetries = 3; // Removed, because iMtmData1 data member of TMsvEntry in CWPMessage.cpp contains Max tries, default=3.
-///NONE
-_LIT(KNone,"");
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// Constructor.
-// -----------------------------------------------------------------------------
-//
-CWPBioControl::CWPBioControl(CMsvSession* aSession,TMsvId aId)
-                          
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CWPBioControl::ConstructL
-// Symbian 2nd phase constructor can leave.
-// -----------------------------------------------------------------------------
-//
-void CWPBioControl::ConstructL(CMsvSession* aSession,TMsvId aId)
-    {
-    FLOG( _L( "[ProvisioningBC] CWPBioControl::ConstructL:" ) );  
-    FeatureManager::InitializeLibL();
-    iSession = aSession;
-    iId = aId;
-    iEngine = CWPEngine::NewL();
-    RestoreMsgL();
-    FLOG( _L( "[ProvisioningBC] CWPBioControl::ConstructL: done" ) );
-    }
-
-// -----------------------------------------------------------------------------
-// CWPBioControl::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C CWPBioControl* CWPBioControl::NewL(CMsvSession* aSession,TMsvId aId)
-     {
-    CWPBioControl* self = new( ELeave ) CWPBioControl(aSession,aId);                                                       
-    CleanupStack::PushL( self );
-    self->ConstructL(aSession,aId);
-    CleanupStack::Pop();
-    return self;
-    }
-// -----------------------------------------------------------------------------
-// CWPBioControl::returnEngine
-// Return CWPEngine pointer
-// -----------------------------------------------------------------------------
-//    
-EXPORT_C CWPEngine* CWPBioControl::returnEngine()
-    {
-    return iEngine;
-    }
-
-// -----------------------------------------------------------------------------
-// Destructor
-// -----------------------------------------------------------------------------
-CWPBioControl::~CWPBioControl()
-    {
-    delete iEngine;
-    delete iMessage;
-    FeatureManager::UnInitializeLib();
-    }
-// ----------------------------------------------------------------------------
-// CWPBioControl ::RestoreMsgL
-// ----------------------------------------------------------------------------
-//
-void CWPBioControl::RestoreMsgL()
-    {                    
-    CMsvEntry* entry = iSession->GetEntryL(iId);   
-    CleanupStack::PushL( entry );
-    TMsvEntry tentry( entry->Entry() );
-    iMessage = CWPPushMessage::NewL();
-    CMsvStore* readStore = entry->ReadStoreL();
-    CleanupStack::PushL( readStore );
-    iMessage->RestoreL( *readStore );
-    CleanupStack::PopAndDestroy(); // readStore
- 
-    TRAPD( result, iEngine->ImportDocumentL( iMessage->Body() ) );
-    if( result == KErrCorrupt )
-        {
-        //result = KErrMsgBioMessageNotValid;
-        }
-    FTRACE(RDebug::Print(_L("[ProvisioningBC] CWPBioControl::RestoreMsgL result (%d)"), result));
-    User::LeaveIfError( result );
-    
-    TBool preAuthenticated( iMessage->Authenticated() );
-    // If the message was not authenticated, give a warning
-    AuthenticateL( *iMessage );
-    if( !tentry.ReadOnly() && preAuthenticated != iMessage->Authenticated() )
-        {
-        // If the entry can be written to, get its edit store and save
-        // authentication flag. Failing is not dangerous, as the only
-        // effect is that the user has to re-enter the PIN.
-        // FLOG( _L( "[ProvisioningBC] CWPBioControl::RestoreMsgL 4 " ) );
-        TRAPD( ignoreError, SaveMessageL() );
-        if ( ignoreError ) ignoreError = 0; // prevent compiler warning 
-        }
-    
-    iEngine->PopulateL();
-    if( iEngine->ItemCount() == 0 )
-        {
-        FLOG( _L( "[ProvisioningBC] CWPBioControl::RestoreMsgL 7 " ) );
-        }
-
-    TPtrC8 orig8( iMessage->Originator() );
-    HBufC* orig16 = HBufC::NewLC( orig8.Length() );
-    orig16->Des().Copy( orig8 );
-    FLOG( _L( "[ProvisioningBC] CWPBioControl::RestoreMsgL 8 " ) );
-    if( iMessage->Authenticated() 
-        && iEngine->ContextExistsL( *orig16 ) )
-        {
-        TUint32 context( iEngine->ContextL( *orig16 ) );
-        iEngine->SetCurrentContextL( context );
-        }
-    else
-        {
-        iEngine->SetCurrentContextL( KWPMgrUidNoContext );
-        }
-        
-    
-    CleanupStack::PopAndDestroy(2);
-    FLOG( _L( "[ProvisioningBC] CWPBioControl::RestoreMsgL done" ) );
-    }
-
-// ----------------------------------------------------------------------------
-// CWPBioControl ::AuthenticateL
-// ----------------------------------------------------------------------------
-//
-void CWPBioControl::AuthenticateL( CWPPushMessage& aMessage )
-    {
-    if( !aMessage.Authenticated() )
-        {
-         MWPPhone* phone = NULL;
-         TBuf<KMaxPinSize> imsi;
-         TRAPD(err, phone = WPPhoneFactory::CreateL());
-         if(err!=KErrNone)
-             {
-             imsi = KNone;
-             }
-         else
-             {
-             imsi = phone->SubscriberId();
-             }
-        CWPBootstrap* bootstrap = CWPBootstrap::NewL( imsi );
-        if(phone)
-        delete phone;
-
-        CleanupStack::PushL( bootstrap );
-        CWPBootstrap::TBootstrapResult result( bootstrap->BootstrapL(aMessage,*iEngine,KNullDesC ) );
-        if( result == CWPBootstrap::EPinRequired )
-         {
-            CMsvEntry* entry = iSession->GetEntryL(iId);
-            TInt count = (entry->Entry()).MtmData1();
-            TInt ipin = 1234;
-            TBuf<KMaxPinSize> pin;
-            pin.AppendNum(ipin);
-            result = bootstrap->BootstrapL( aMessage, *iEngine, pin );
-            CleanupStack::PopAndDestroy( bootstrap );
-          }
-      }
-    if (aMessage.Authenticated() )
-        {
-        //update Cenrep key
-        TBuf8<100> orig;
-        orig.Copy(aMessage.Originator());
-        TRAPD(err, SetCenrepKeyL(orig));
-        User::LeaveIfError(err);
-
-        }
-    }
-// ----------------------------------------------------------------------------
-// CWPBioControl ::SaveMessageL
-// ----------------------------------------------------------------------------
-//
-void CWPBioControl::SaveMessageL()
-    {
-    CMsvEntry* entry = iSession->GetEntryL(iId);
-    CleanupStack::PushL( entry );
-
-    CMsvStore* editStore = entry->EditStoreL();
-    CleanupStack::PushL( editStore );
-    iMessage->StoreL( *editStore );
-    editStore->CommitL();
-    CleanupStack::PopAndDestroy(2); // editStore, entry
-    }
-
-// ----------------------------------------------------------------------------
-// CWPBioControl ::CollectItemsL
-// ----------------------------------------------------------------------------
-//
-EXPORT_C RPointerArray<CWPNameValue>* CWPBioControl::CollectItemsLC() const
-    {
-    RPointerArray<CWPNameValue>* array = new(ELeave) RPointerArray<CWPNameValue>;
-    CleanupStack::PushL( TCleanupItem( Cleanup, array ) );
-
-    TInt count( iEngine->ItemCount() );
-    FLOG( _L( "[ProvisioningBC] CWPBioControl::RestoreMsgL 83 " ) );
-    for( TInt index = 0; index < count; index++ )
-        {
-        const TDesC& text = iEngine->SummaryText( index );
-        const TDesC& title = iEngine->SummaryTitle( index );
-
-        CWPNameValue* pair = CWPNameValue::NewLC( title, text );
-        User::LeaveIfError( array->Append( pair ) );
-        CleanupStack::Pop( pair );
-        }
-    array->Sort( TLinearOrder<CWPNameValue>( CWPBioControl::Compare ) );
-    return array;
-    }
-
-// -----------------------------------------------------------------------------
-// CWPBioControl::Cleanup
-// -----------------------------------------------------------------------------
-//
-void CWPBioControl::Cleanup( TAny* aAny )
-    {
-    RPointerArray<CWPNameValue>* array = reinterpret_cast<RPointerArray<CWPNameValue>*>( aAny );
-    array->ResetAndDestroy();
-    array->Close();
-    delete array;
-    }
-
-// -----------------------------------------------------------------------------
-// CWPBioControl::Compare
-// -----------------------------------------------------------------------------
-//
-TInt CWPBioControl::Compare( const CWPNameValue& aItem1,
-                             const CWPNameValue& aItem2 )
-    {
-    return aItem1.Name().Compare( aItem2.Name() );
-    }
-
-// ----------------------------------------------------------------------------
-// CWPBioControl ::SetCenrepKey
-// ----------------------------------------------------------------------------
-//
-void CWPBioControl::SetCenrepKeyL(const TDesC8& aValue)
-    {
-
-    FLOG( _L( "[ProvisioningBC] CWPBioControl::SetCenrepKeyL" ) );
-
-    CRepository* rep= NULL;
-    TInt errorStatus = KErrNone;
-
-    TRAPD( errVal, rep = CRepository::NewL( KCRUidOMAProvisioningLV ))
-    ;
-
-    if (errVal == KErrNone)
-        {
-        errorStatus = rep->Set(KOMAProvOriginatorContent, aValue);
-        }
-    else
-        {
-        errorStatus = errVal;
-        }
-
-    if (rep)
-        {
-        delete rep;
-        }
-
-    if (errorStatus != KErrNone)
-        {
-        User::Leave(errorStatus);
-        }
-
-    FLOG( _L( "[ProvisioningBC] CWPBioControl::SetCenrepKeyL done" ) );
-
-    }
-//  End of File
--- a/deviceupdatesui/cpqtsp/src/CWPNameValue.cpp	Tue Jul 13 03:42:03 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,87 +0,0 @@
-/*
-* Copyright (c) 2002 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 class encapsulates a name and value pair
-*
-*/
-
-
-// INCLUDE FILES
-
-#include "CWPNameValue.h"
-
-//  MEMBER FUNCTIONS
-
-EXPORT_C CWPNameValue* CWPNameValue::NewL( HBufC* aName, HBufC* aValue)
-    {
-    CWPNameValue* self = new (ELeave) CWPNameValue(aName, aValue);
-    return self;
-    }
-
-EXPORT_C CWPNameValue* CWPNameValue::NewL(const TDesC& aName, const TDesC& aValue)
-    {
-    CWPNameValue* self = CWPNameValue::NewLC( aName, aValue );
-    CleanupStack::Pop( self );
-    return self;
-    }
-
-EXPORT_C CWPNameValue* CWPNameValue::NewLC(const TDesC& aName, const TDesC& aValue)
-    {
-    CWPNameValue* self = new (ELeave) CWPNameValue;
-    CleanupStack::PushL(self);
-    self->ConstructL(aName, aValue);
-    return self;
-    }
-
-CWPNameValue::~CWPNameValue()
-    {
-    delete iName;
-    delete iValue;
-    }
-
-EXPORT_C const TDesC& CWPNameValue::Name() const
-    {
-    if (iName)
-        {
-        return *iName;
-        }
-    return KNullDesC;
-    }
-
-EXPORT_C const TDesC& CWPNameValue::Value() const
-    {
-    if (iValue)
-        {
-        return *iValue;
-        }
-    return KNullDesC;
-    }
-
-void CWPNameValue::ConstructL(const TDesC& aName, const TDesC& aValue)
-    {
-	aName.Length()==0 ? iName=KNullDesC().AllocL() : iName = aName.AllocL();
-	aValue.Length()==0 ? iValue=KNullDesC().AllocL() : iValue = aValue.AllocL();
-    }
-
-CWPNameValue::CWPNameValue()
-    {
-    }
-
-CWPNameValue::CWPNameValue( HBufC* aName, HBufC* aValue ) :
-    iName(aName),
-    iValue(aValue)
-    {
-    }
-
-// end of file
--- a/deviceupdatesui/cpqtsp/src/CWPStringPair.cpp	Tue Jul 13 03:42:03 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,56 +0,0 @@
-/*
-* Copyright (c) 2002 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: 
-*     Sortable pair of strings.
-*
-*/
-
-
-// INCLUDE FILES
-#include "CWPStringPair.h"
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// C++ default constructor.
-CWPStringPair::CWPStringPair()
-	{
-	}
-
-// Destructor
-CWPStringPair::~CWPStringPair()
-	{
-	delete iName;
-	delete iValue;
-	}
-
-// ---------------------------------------------------------
-// CWPStringPair::SetL
-// ---------------------------------------------------------
-//
-void CWPStringPair::SetL( const TDesC& aName, const TDesC& aValue )
-	{
-	HBufC* name = aName.AllocLC();
-	HBufC* value = aValue.AllocL();
-	CleanupStack::Pop(); // name
-
-	delete iName;
-	iName = name;
-	iNamePtr.Set( *iName );
-
-	delete iValue;
-	iValue = value;
-	iValuePtr.Set( *iValue );
-	}
-
-//  End of File
--- a/deviceupdatesui/cpqtsp/src/CpQtSpMainWindow.cpp	Tue Jul 13 03:42:03 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-/*
-* Copyright (c) 2002 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: 
-*     Bio control for Provisioning documents.
-*
-*/
-
-#include <hbmainwindow.h>
-#include <CpQtSpMainWindow.h>
-#include <CpQtSpView.h>
-
-
-CpQtSpMainWindow::CpQtSpMainWindow(QWidget *parent)
-    : HbMainWindow(parent)
-{
-    iServiceProvider = new CpQtSp();
-    connect(iServiceProvider,SIGNAL(showView()),this, SLOT(showView()));    
-    iView = new CpQtSpView(iServiceProvider);    
-    }
-
-CpQtSpMainWindow::~CpQtSpMainWindow()
-{
-    delete iView;
-    delete iServiceProvider;
-}
-
-void CpQtSpMainWindow::showView()
-{
-    iView->constructView(); 				  
-    addView(iView);    
-}
--- a/deviceupdatesui/cpqtsp/src/CpQtSpView.cpp	Tue Jul 13 03:42:03 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,176 +0,0 @@
-/*
-* Copyright (c) 2002 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: 
-*     Bio control for Provisioning documents.
-*
-*/
-
-#include <hbapplication.h>
-#include <hbtoolbar.h>
-#include <hbaction.h>
-#include <hbmenu.h>
-#include <HbTextItem>
-#include <HbFontSpec>
-#include <HbMessageBox>
-#include <QGraphicsLinearLayout>
-#include <xqserviceprovider.h>
-#include <xqservicerequest.h>
-#include <xqserviceutil.h>
-#include <e32base.h>
-#include <flogger.h>
-#include <CWPNameValue.h>
-#include <CWPEngine.h>
-#include <CpQtSpView.h>
-#include <CpQtSpMainWindow.h>
-
-
-CpQtSpView::CpQtSpView(CpQtSp* service,QGraphicsItem *parent)
-    : HbView(parent), iServiceProvider(service)
-{ 
-    setTitle(tr("Messaging"));
-    HbToolBar* toolBar = this->toolBar(); 
-    HbMenu* menu = this->menu();       
-    HbAction* saveAction = new HbAction("Save");     
-    connect(saveAction, SIGNAL(triggered()), this, SLOT(saveProvisoningMessage()));        
-    HbAction* DeleteAction = new HbAction("Delete");
-    
-    toolBar->addAction(saveAction);
-    toolBar->addAction(DeleteAction);
-    toolBar->setOrientation(Qt::Horizontal);
-    iPrimaryFont = new HbFontSpec(HbFontSpec::Primary);
-    iSecondaryFont = new HbFontSpec(HbFontSpec::Secondary);
-    
-    layout = new QGraphicsLinearLayout(Qt::Vertical, this);
-    
-    QString str = hbTrId("txt_device_update_dblist_configuration_message");
-    QString str1 = hbTrId("txt_device_update_dblist_product_code_val_save_to");
-    HbTextItem* mPrimaryItem = new HbTextItem(str, this);
-    HbTextItem* mSecondaryItem = new HbTextItem(str1, this);
-       
-    QFont font = iPrimaryFont->font();
-    mPrimaryItem->setFont(font);
-        
-    font = iSecondaryFont->font();
-    mSecondaryItem->setFont(font);
-    
-    layout->addItem(mPrimaryItem);
-    layout->addItem(mSecondaryItem);
-   
-    setLayout(layout);     
-    }
-
-void CpQtSpView::constructView()
-{
-    iBio = CWPBioControl::NewL(iServiceProvider->returnSession(),iServiceProvider->returnId());
-    RPointerArray<CWPNameValue>* iArray = iBio->CollectItemsLC();    
-    TBufC<200> Name;
-    TBufC<200> Value;    
-    HbTextItem* mPrimaryItem[100];
-    HbTextItem* mSecondaryItem[100];
-    HbTextItem* mSecondaryItemBlank = new HbTextItem("", this);
-    QFont pfont = iPrimaryFont->font();
-    QFont sfont = iSecondaryFont->font();      
-   
-	TBuf<200> currentTitle(KNullDesC);
-	
-    for( TInt item = 0; item < iArray->Count(); item++ )
-    {  	
-    	CWPNameValue* pair = ((*iArray)[item]);
-    	Name = pair->Name();
-    	if(Name.Compare(currentTitle) !=0 )
-    	{
-    	QString qname((QChar*)Name.Ptr(),Name.Length());
-    	mPrimaryItem[item] = new HbTextItem(qname);    	
-    	mPrimaryItem[item]->setFont(pfont);    	
-    	layout->addItem(mSecondaryItemBlank);
-    	layout->addItem(mPrimaryItem[item]);
-    	currentTitle.Copy(Name);
-    	}
-    	    	
-    	Value = pair->Value();
-    	QString qvalue((QChar*)Value.Ptr(),Value.Length());   
-    	mSecondaryItem[item] = new HbTextItem(qvalue);
-    	mSecondaryItem[item]->setFont(sfont);
-    	layout->addItem(mSecondaryItem[item]);  
-   }
-    CleanupStack::PopAndDestroy();
-
-}
-
-void CpQtSpView::saveProvisoningMessage()
-{
-  CWPEngine* engine = iBio->returnEngine();
-  int errSave = KErrNone;
-  
-  for(TInt i=0; i < engine->ItemCount(); i++)
-  {
-   TRAP( errSave, engine->SaveL(i) );
-  } 
-  
-  if( errSave == KErrNone )
-  {
-  	//For testing purpose. Will be removed in future.
-    //HbMessageBox::launchInformationMessageBox("Message Saved");
-  }
-}
-
-CpQtSpView::~CpQtSpView()
-{
-    delete iBio;
-}
-
-void CpQtSpView::requestCompleted(const QVariant& value)
-{
-}
-
-
-CpQtSp::CpQtSp(QObject* parent)
-: XQServiceProvider("com.nokia.services.MDM.Provisioning",parent)
-{  
-    publishAll();
-}
-
-CpQtSp::~CpQtSp()
-{
-	delete iObserver;
-	delete iSession;
-}
-
-void CpQtSp::complete()
-{
-   QString retvalue ="";
-   completeRequest(1,retvalue);
-}
-
-QString CpQtSp::ProcessMessage(const QString& tmsvid)
-{
-    iId = tmsvid.toInt();	
-    TMsvSelectionOrdering sort;    
-    sort.SetShowInvisibleEntries(ETrue); 
-    iObserver = new(ELeave) CObserver;
-    iSession = CMsvSession::OpenSyncL(*iObserver);    
-    emit showView();
-    setCurrentRequestAsync();
-    return "";    
-    }
-
-TMsvId CpQtSp::returnId()
-{
-	return iId;
-}
-
-CMsvSession* CpQtSp::returnSession()
-{
-  return iSession;
-}
--- a/deviceupdatesui/cpqtsp/src/main.cpp	Tue Jul 13 03:42:03 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-/*
-* Copyright (c) 2002 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: 
-*     Bio control for Provisioning documents.
-*
-*/
-
-#include <hbapplication.h>
-#include <CpQtSpMainWindow.h>
-#include <QTranslator>
-#include <QString>
-#include <QLocale>
-
-int main(int argc, char **argv)
-{ 
-    HbApplication a( argc, argv );    
-    
-    QTranslator *translator = new QTranslator();
-    QString lang = QLocale::system().name();
-    QString path = "Z:/resource/qt/translations/";
-    bool fine = translator->load("deviceupdates_en.qm", path);
-    if (fine)
-        qApp->installTranslator(translator);
-
-    QTranslator *commontranslator = new QTranslator();
-    fine = commontranslator->load("common_" + lang, path);
-    if (fine)
-        qApp->installTranslator(commontranslator);
-    
-    CpQtSpMainWindow mainWindow;    
-    mainWindow.show();
-    return a.exec();     
-}
-
--- a/deviceupdatesui/devicemanagementnotifiersplugin/PnpUtilLogger.h	Tue Jul 13 03:42:03 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,138 +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: 
-*
-*/
-
-#ifndef __LOGGER_H__
-#define __LOGGER_H__
-
-#ifdef _DEBUG
-    #define LOGGING_ENABLED
-#endif
-#ifdef LOGGING_ENABLED          // This must be enabled to use logging system
-
-#define LOGGER_LOGGING          // Log to Logger
-
-
-
-#ifdef LOGGER_LOGGING
-
-//  INCLUDES
-#include <flogger.h>
-
-// LOG SETTINGS 
-_LIT( KPnpLogFolder, "PnP" );
-_LIT( KPnpLogFile, "PnPUtil.TXT" );
-
-#endif
-
-// CONSTANTS  
-// None.
-
-// MACROS
-/*
------------------------------------------------------------------------------
-
-    INTERNAL MACROs. 
-
-    DO NOT USE THESE DIRECTLY !!! 
-    SEE EXTERNAL MACROS
-
------------------------------------------------------------------------------
-*/
-
-#ifdef LOGGER_LOGGING
-
-_LIT( KTextFormat, "%S%S" );
-_LIT( KPnpUtil, "PnpUtil| " );
-
-#define INTRLOGTEXT( AAA )                                                                                        \
-    {                                                                                                            \
-    RFileLogger::Write( KPnpLogFolder(), KPnpLogFile(), EFileLoggingModeAppend, AAA );            \
-    }
-#define INTRLOGSTRING( AAA )                                                                                    \
-    {                                                                                                            \
-    _LIT( tempLogDes, AAA );                                                                                    \
-    RFileLogger::Write( KPnpLogFolder(), KPnpLogFile(), EFileLoggingModeAppend, tempLogDes() );    \
-    }
-// 20 chars is left for the formatted item
-#define INTRLOGSTRING2( AAA, BBB )                                                                                \
-    {                                                                                                            \
-    _LIT( tempLogDes, AAA );                                                                                    \
-    RFileLogger::WriteFormat( KPnpLogFolder(), KPnpLogFile(), EFileLoggingModeAppend, TRefByValue<const TDesC>( tempLogDes()), BBB ); \
-    }
-// 40 chars is left for the formatted items
-#define INTRLOGSTRING3( AAA, BBB, CCC )                                                                            \
-    {                                                                                                            \
-    _LIT( tempLogDes, AAA );                                                                                    \
-    RFileLogger::WriteFormat( KPnpLogFolder(), KPnpLogFile(), EFileLoggingModeAppend, TRefByValue<const TDesC>( tempLogDes()), BBB, CCC ); \
-    }
-#else
-#define INTRLOGTEXT( AAA )
-#define INTRLOGSTRING( AAA )
-#define INTRLOGSTRING2( AAA, BBB )
-#define INTRLOGSTRING3( AAA, BBB, CCC )
-#endif
-
-/*
------------------------------------------------------------------------------
-
-    EXTERNAL MACROs
-
-    USE THESE MACROS IN YOUR CODE !
-
------------------------------------------------------------------------------
-*/
-
-
-#define LOGTEXT( AAA )                { \
-                                    INTRLOGTEXT( AAA ); \
-                                    }   // Example: LOGTEXT( own_desc );
-
-#define LOGSTRING( AAA )            { \
-                                    INTRLOGSTRING( AAA ); \
-                                    }   // Example: LOGSTRING( "Test" );
-
-#define LOGSTRING2( AAA, BBB )        { \
-                                    INTRLOGSTRING2( AAA, BBB ); \
-                                    }  // Example: LOGSTRING( "Test %i", aValue );
-
-#define LOGSTRING3( AAA, BBB, CCC )    { \
-                                    INTRLOGSTRING3( AAA, BBB, CCC ); \
-                                    } // Example: LOGSTRING( "Test %i %i", aValue1, aValue2 );
-
-
-#else   // LOGGING_ENABLED
-
-#define LOGTEXT( AAA ) 
-#define LOGSTRING( AAA ) 
-#define LOGSTRING2( AAA, BBB )    
-#define LOGSTRING3( AAA, BBB, CCC )    
-
-#endif  // LOGGING_ENABLED
-
-// DATA TYPES
-// None.
-
-// FUNCTION PROTOTYPES
-// None.
-
-// FORWARD DECLARATIONS
-// None.
-
-// CLASS DECLARATION
-// None.
-
-#endif  // __LOGGER_H__
--- a/deviceupdatesui/devicemanagementnotifiersplugin/devicemanagementnotifierdevman.qrc	Tue Jul 13 03:42:03 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-<RCC>
-    <qresource prefix="/xml" >
-    	<file>dialog.docml</file>
-    	<file>dialoginformative.docml</file>
-    	<file>dialogserverpushconfirm.docml</file>
-    </qresource>
-    <qresource prefix="/devman_icon" >
-    	<file>iconnotifier.svg</file>
-    </qresource>
-</RCC>
--- a/deviceupdatesui/devicemanagementnotifiersplugin/devicemanagementnotifierplugin.cpp	Tue Jul 13 03:42:03 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,114 +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: 
-*
-*/
-
-#include <QtPlugin>
-
-#include <hbdevicedialog.h>
-#include "devicemanagementnotifierplugin_p.h"
-#include "devicemanagementnotifierwidget_p.h"
-
-
-Q_EXPORT_PLUGIN2(devicemanagementnotifiersplugin, devicemanagementnotifierplugin)
-
-// This plugin implements one device dialog type
-static const struct {
-    const char *mTypeString;
-} dialogInfos[] = {
-    {"com.nokia.hb.devicemanagementdialog/1.0"}
-};
-
-class devicemanagementnotifierpluginprivate
-{
-public:
-    devicemanagementnotifierpluginprivate() {mError = 0;}
-
-    int mError;
-};
-
-// Constructor
-devicemanagementnotifierplugin::devicemanagementnotifierplugin()
-{
-    
-    d = new devicemanagementnotifierpluginprivate;
-    
-}
-
-// Destructor
-devicemanagementnotifierplugin::~devicemanagementnotifierplugin()
-{
-    
-    delete d;
-    
-}
-
-// Check if client is allowed to use device dialog widget
-bool devicemanagementnotifierplugin::accessAllowed(const QString &deviceDialogType,
-    const QVariantMap &parameters, const QVariantMap &securityInfo) const
-{
-    
-    
-    // This plugin doesn't perform operations that may compromise security.
-    // All clients are allowed to use.
-    return true;
-    
-}
-
-// Create device dialog widget
-HbDeviceDialogInterface *devicemanagementnotifierplugin::createDeviceDialog(
-    const QString &deviceDialogType, const QVariantMap &parameters)
-{
-    return new devicemanagementnotifierwidget(parameters);
-}
-
-// Return information of device dialog the plugin creates
-bool devicemanagementnotifierplugin::deviceDialogInfo(const QString &deviceDialogType,
-    const QVariantMap &parameters, DeviceDialogInfo *info) const
-{
-    
-   info->group = GenericDeviceDialogGroup;
-
-info->flags = NoDeviceDialogFlags;
-
-info->priority = DefaultPriority;
-    return true;
-}
-
-// Return device dialog types this plugin implements
-QStringList devicemanagementnotifierplugin::deviceDialogTypes() const
-{
-    
-    QStringList types;
-    const int numTypes = sizeof(dialogInfos) / sizeof(dialogInfos[0]);
-    for(int i = 0; i < numTypes; i++) {
-        types.append(dialogInfos[i].mTypeString);
-    }
-    
-    return types;
-}
-
-// Return plugin flags
-HbDeviceDialogPlugin::PluginFlags devicemanagementnotifierplugin::pluginFlags() const
-{
-    
-    return NoPluginFlags;
-}
-
-// Return last error
-int devicemanagementnotifierplugin::error() const
-{
-    return d->mError;
-}
--- a/deviceupdatesui/devicemanagementnotifiersplugin/devicemanagementnotifierplugin_p.h	Tue Jul 13 03:42:03 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,53 +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: 
-*
-*/
-
-#ifndef DEVICEMANAGEMENTNOTIFIERPLUGIN_P_H
-#define DEVICEMANAGEMENTNOTIFIERPLUGIN_P_H
-
-#include <QObject>
-#include <QVariantMap>
-
-#include <hbdevicedialogplugin.h>
-
-class devicemanagementnotifierpluginprivate;
-
-class devicemanagementnotifierplugin : public HbDeviceDialogPlugin
-{
-    Q_OBJECT
-
-public:
-    friend class devicemanagementnotifierpluginprivate;
-
-    devicemanagementnotifierplugin();
-    ~devicemanagementnotifierplugin();
-
-    bool accessAllowed(const QString &deviceDialogType,
-        const QVariantMap &parameters, const QVariantMap &securityInfo) const;
-    HbDeviceDialogInterface *createDeviceDialog(const QString &deviceDialogType,
-        const QVariantMap &parameters);
-    bool deviceDialogInfo(const QString &deviceDialogType,
-        const QVariantMap &parameters, DeviceDialogInfo *info) const;
-    QStringList deviceDialogTypes() const;
-    PluginFlags pluginFlags() const;
-    int error() const;
-
-private:
-    Q_DISABLE_COPY(devicemanagementnotifierplugin)
-    devicemanagementnotifierpluginprivate *d;
-};
-
-#endif // devicemanagementnotifierplugin_P_H
--- a/deviceupdatesui/devicemanagementnotifiersplugin/devicemanagementnotifiersplugin.pro	Tue Jul 13 03:42:03 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
-# #####################################################################
-# Automatically generated by qmake (2.01a) Fri Jul 4 12:40:38 2008
-# #####################################################################
-TEMPLATE = lib
-TARGET = devicemanagementnotifiersplugin
-CONFIG += hb \
-          plugin        
-INCLUDEPATH += .
-DEPENDPATH += .
-
-DESTDIR = $${HB_BUILD_DIR}/plugins/devicedialogs
-
-SOURCES += devicemanagementnotifierplugin.cpp
-SOURCES += devicemanagementnotifierwidget.cpp
-SOURCES += devicemanagementnotifierutils.cpp
-SOURCES += syncmlnotifierprivate.cpp
-HEADERS += devicemanagementnotifierplugin_p.h
-HEADERS += devicemanagementnotifierwidget_p.h
-HEADERS += devicemanagementnotifierutils.h 
-HEADERS += syncmlnotifierprivate.h
-RESOURCES = devicemanagementnotifierdevman.qrc
-TRANSLATIONS += deviceupdates.ts
-
-symbian: {
-    TARGET.EPOCALLOWDLLDATA = 1
-    TARGET.CAPABILITY = CAP_GENERAL_DLL
-    TARGET.UID3 = 0x2002DD20
-
-    hblib.sources = Hb.dll
-    hblib.path = \sys\bin
-    hblib.depends = "(0xEEF9EA38), 1, 0, 0, {\"Hb\"}"
-
-    pluginstub.sources = devicemanagementnotifiersplugin.dll
-    pluginstub.path = /resource/plugins/devicedialogs
-    DEPLOYMENT += pluginstub
-    MMP_RULES += "LIBRARY syncmlclientapi.lib centralrepository.lib flogger.lib"
-}
-!local {
-    target.path = $${HB_PLUGINS_DIR}/devicedialogs
-    INSTALLS += target
-}
--- a/deviceupdatesui/devicemanagementnotifiersplugin/devicemanagementnotifierutils.cpp	Tue Jul 13 03:42:03 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,348 +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: 
-*
-*/
-
-#include <hbdocumentloader.h>
-#include <hbdialog.h>
-#include <hblabel.h>
-#include <hbmessagebox.h>
-#include <hbaction.h>
-#include <e32property.h>
-#include <qdebug.h>
-#include "SyncMLNotifierParams.h"
-#include "PnpUtilLogger.h"
-#include "devicemanagementnotifierutils.h"
-
- enum TSyncmlHbNotifierKeys 
-		{
-
-     EHbSOSNotifierKeyStatus = 11, // status set will complete the client subscribe
-     EHbSOSNotifierKeyStatusReturn = 12, // Return the content of actual status value accepted from UI
-     
-     EHbDMSyncNotifierKeyStatus = 13,
-     EHbDMSyncNotifierKeyStatusReturn = 14
-		};
-
-
-devicemanagementnotifierutils::devicemanagementnotifierutils(
-        const QVariantMap &parameters)
-    {
-	qDebug("devicemanagementnotifierutils");
-    syncmlnotifier* notifier = new syncmlnotifier();
-    notifier->launchDialog(parameters);
-
-    }
-
-syncmlnotifier::syncmlnotifier()
-    {
-    qDebug("devicemanagementnotifierutils syncmlnotifier");
-    QTranslator *translator = new QTranslator();
-    QString lang = QLocale::system().name();
-    QString path = "Z:/resource/qt/translations/";
-    bool fine = translator->load("deviceupdates_en.qm", path);
-    if (fine)
-        qApp->installTranslator(translator);
-
-    QTranslator *commontranslator = new QTranslator();
-
-    fine = commontranslator->load("common_" + lang, path);
-    if (fine)
-        qApp->installTranslator(commontranslator);
-
-    msymnotifier = new syncmlnotifierprivate();
-    }
-
-void syncmlnotifier::launchDialog(const QVariantMap &parameters)
-    {
-
-    QVariantMap::const_iterator i = parameters.constBegin();
-    qDebug("devicemanagementnotifierutils syncmlnotifier launchDialog");
-    //i++;
-
-    bool profileidenabled = false;
-    bool uiserverinteraction = false;
-    bool serverpushinformativeenabled = false;
-    bool serverpushinteractiveenabled = false;
-
-    int profileid = 0;
-    int uimode = 0;
-
-    QString serverpushinformmessage;
-    QString serverpushconfirmmessage;
-
-    QString serverdispname;
-
-    while (i != parameters.constEnd())
-        {
-        if (i.key().toAscii() == "profileid")
-            {
-
-            profileid = i.value().toInt();
-            profileidenabled = true;
-            }
-
-        if (i.key().toAscii() == "uimode")
-            {
-            uiserverinteraction = true;
-            uimode = i.value().toInt();
-            }
-
-        if (i.key().toAscii() == "serverpushinformative")
-            {
-			qDebug("server push informative enabled");
-            serverpushinformativeenabled = true;
-            serverpushinformmessage = i.value().toString();
-            }
-
-        if (i.key().toAscii() == "serverpushconfirmative")
-            {
-		    LOGSTRING("Server Push Confirmative");
-            serverpushinteractiveenabled = true;
-            serverpushconfirmmessage = i.value().toString();
-            }
-
-        if (i.key().toAscii() == "serverdisplayname")
-            {
-            serverdispname = i.value().toString();
-            }
-
-        ++i;
-        }
-
-    if (profileidenabled && uiserverinteraction)
-        {
-        qDebug("server interaction packet 0 enabled ");
-        qDebug()<<EHbSOSNotifierKeyStatus;
-        msymnotifier->setnotifierorigin(EHbSOSNotifierKeyStatus);
-        createserverinitnotifier(profileid, uimode, serverdispname);
-        }
-    else if (serverpushinformativeenabled)
-        {
-        qDebug("server push informative enabled ");
-        qDebug()<<EHbDMSyncNotifierKeyStatus;
-        msymnotifier->setnotifierorigin(EHbDMSyncNotifierKeyStatus);
-        createserveralertinformative(serverpushinformmessage);
-        }
-    else if (serverpushinteractiveenabled)
-        {
-        qDebug("server push informative enabled ");
-        qDebug()<<EHbDMSyncNotifierKeyStatus;
-         msymnotifier->setnotifierorigin(EHbDMSyncNotifierKeyStatus);
-        createserveralertconfirmative(serverpushconfirmmessage);
-        }
-
-    }
-
-void syncmlnotifier::createserverinitnotifier(int profileid, int uimode,
-        QString& servername)
-    {
-    
-    int inittype = msymnotifier->serverinittype(uimode);
-    qDebug("Notification type");
-    qDebug()<<inittype;
-
-	LOGSTRING2("Init value = %d", inittype);
-
-    /*For testing purpose*/
-    //inittype = ESANUserInteractive;
-
-    if (inittype == ESANUserInteractive)
-        {
-        HbDocumentLoader loader;
-        bool ok = false;
-        loader.load(":/xml/dialog.docml", &ok);
-        if (!ok)
-            {
-            return;
-            }
-        HbDialog *dialog = qobject_cast<HbDialog *> (loader.findWidget(
-                "dialog"));
-
-        //set heading content
-        HbLabel *contentheading = qobject_cast<HbLabel *> (loader.findWidget(
-                "qtl_dialog_pri_heading"));
-        QString heading = hbTrId("txt_device_update_title_update_available");
-        contentheading->setPlainText(heading);
-
-        //set body content
-        HbLabel *contentbody = qobject_cast<HbLabel *> (loader.findWidget(
-                "qtl_dialog_pri5"));
-        QString serverinitmessage = hbTrId(
-                "txt_device_update_info_recommended_update_is_avail").arg(
-                servername);
-        contentbody->setPlainText(serverinitmessage);
-
-        //set softkeys
-        HbAction *primaryAction = (HbAction *) dialog->actions().first();
-        QString softkeyok = hbTrId("txt_common_button_ok");
-        primaryAction->setText(softkeyok);
-
-        HbAction *secondaryAction = (HbAction *) dialog->actions().at(1);
-        QString softkeyCancel = hbTrId("txt_common_button_cancel");
-        secondaryAction->setText(softkeyCancel);
-
-        //set dialog properties
-        dialog->setTimeout(HbPopup::NoTimeout);
-
-        //load appropriate icon from svg file
-        HbLabel* label1 = qobject_cast<HbLabel*> (loader.findWidget("icon"));
-        HbIcon* icon1 = new HbIcon(":/devman_icon/iconnotifier.svg");
-        label1->setIcon(*icon1);
-        //label1->setMode(QIcon::Normal);
-        //label1->setState(QIcon::Off);
-        label1->setToolTip("Mode=Normal, State=Off");
-
-        QObject::connect(primaryAction, SIGNAL(triggered()), this,
-                SLOT(okSelected()));
-
-        QObject::connect(secondaryAction, SIGNAL(triggered()), this,
-                SLOT(cancelSelected()));
-
-        if (dialog)
-            dialog->show();
-        }
-    else if (inittype == ESANUserInformative)
-        {
-        HbDocumentLoader loader;
-        bool ok = false;
-        loader.load(":/xml/dialoginformative.docml", &ok);
-        if (!ok)
-            {
-            return;
-            }
-
-        //hbTrId("qtl_dialog_pri_heading");
-
-        HbDialog *dialog = qobject_cast<HbDialog *> (loader.findWidget(
-                "dialog"));
-
-        HbLabel *content = qobject_cast<HbLabel *> (loader.findWidget(
-                "qtl_dialog_pri5"));
-
-        QString serverinitmessage = hbTrId(
-                "txt_device_update_info_update_serverpush_informative").arg(
-                servername);
-
-        //getserverspecifictexttodisplay(profileid, uimode, serverinitmessage);
-        content->setPlainText(serverinitmessage);
-
-        //get string here /*TODO*/ /*QTranslations*/
-
-        dialog->setTimeout(3000);
-
-        //msymnotifier->setstatus(0);
-
-        if (dialog)
-            dialog->show();
-
-        QObject::connect(dialog, SIGNAL(aboutToClose()), this,
-                SLOT(okSelected()));
-
-        }
-    else if (inittype == ESANSilent)
-        {
-        msymnotifier->setstatus(0);
-        }
-
-    }
-
-void syncmlnotifier::createserveralertinformative(const QString &string)
-    {
-    qDebug("createserveralertinformative start");
-		LOGSTRING("createserveralertinformative start");
-    HbDocumentLoader loader;
-    bool ok = false;
-    loader.load(":/xml/dialoginformative.docml", &ok);
-    if (!ok)
-        {
-        return;
-        }
-    HbDialog *dialog = qobject_cast<HbDialog *> (loader.findWidget("dialog"));
-
-    HbLabel *content = qobject_cast<HbLabel *> (loader.findWidget(
-            "qtl_dialog_pri5"));
-
-    // No translations required
-    content->setPlainText(string);
-
-    dialog->setTimeout(3000);
-
-    if (dialog)
-        dialog->show();
-
-    QObject::connect(dialog, SIGNAL(aboutToClose()), this, SLOT(okSelected()));
-
-	qDebug("createserveralertinformative end");
-
-    }
-
-void syncmlnotifier::createserveralertconfirmative(const QString &string)
-    {
-    HbDocumentLoader loader;
-    bool ok = false;
-    loader.load(":/xml/dialogserverpushconfirm.docml", &ok);
-    if (!ok)
-        {
-        return;
-        }
-    HbDialog *dialog = qobject_cast<HbDialog *> (loader.findWidget("dialog"));
-
-    //set heading content
-    HbLabel *contentheading = qobject_cast<HbLabel *> (loader.findWidget(
-            "qtl_dialog_pri_heading"));
-    QString heading = hbTrId("txt_device_update_title_server_message");
-    contentheading->setPlainText(heading);
-
-    //set body content
-    HbLabel *contentbody = qobject_cast<HbLabel *> (loader.findWidget(
-            "qtl_dialog_pri5"));
-
-    contentbody->setPlainText(string);
-
-    //set softkeys
-    HbAction *primaryAction = (HbAction *) dialog->actions().first();
-    QString softkeyok = hbTrId("txt_common_button_yes");
-    primaryAction->setText(softkeyok);
-
-    HbAction *secondaryAction = (HbAction *) dialog->actions().at(1);
-    QString softkeyCancel = hbTrId("txt_common_button_no");
-    secondaryAction->setText(softkeyCancel);
-
-    dialog->setTimeout(HbPopup::NoTimeout);
-
-    QObject::connect(primaryAction, SIGNAL(triggered()), this,
-            SLOT(okSelected()));
-
-    QObject::connect(secondaryAction, SIGNAL(triggered()), this,
-            SLOT(cancelSelected()));
-
-    if (dialog)
-        dialog->show();
-    }
-
-void syncmlnotifier::okSelected()
-    {
-    qDebug("ok selected");
-    msymnotifier->setstatus(0);
-    }
-
-void syncmlnotifier::cancelSelected()
-    {
-    qDebug("cancel selected");
-    msymnotifier->setstatus(-3);
-
-    }
-
--- a/deviceupdatesui/devicemanagementnotifiersplugin/devicemanagementnotifierutils.h	Tue Jul 13 03:42:03 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,75 +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: 
-*
-*/
-
-#ifndef DEVICEMANAGEMENTNOTIFIERUTILS_H_
-#define DEVICEMANAGEMENTNOTIFIERUTILS_H_
-
-#include <hbpushbutton.h>
-#include <qtimeline.h>
-#include <hbcheckbox.h>
-#include <hblabel.h>
-#include <hblineedit.h>
-#include <hbtextedit.h>
-#include <QGraphicsWidget>
-#include <hbdocumentloader.h>
-#include <hbinputeditorinterface.h>
-#include <hbview.h>
-#include <hbprogressbar.h>
-#include <hbdialog.h>
-#include <hbmainwindow.h>
-#include "syncmlnotifierprivate.h"
-
-class syncmlnotifier;
-
-class devicemanagementnotifierutils :public HbDialog  {
-
-Q_OBJECT
-
-public:
-devicemanagementnotifierutils(const QVariantMap &parameters);
-  
-};
-
-class syncmlnotifier:public QObject {
-
-Q_OBJECT
-
-public:
-syncmlnotifier();
-
-public:
-     void launchDialog(const QVariantMap &parameters);
-     void createserverinitnotifier(int profileid, int uimode,QString& servername);
-     void createserveralertinformative(const QString &string);
-     void createserveralertconfirmative(const QString &string);
-
-public slots:
-    void okSelected();
-    void cancelSelected(); 
-
-signals:
-    void servertextmessage(const QString &string);
- 
-private:
-  syncmlnotifierprivate* msymnotifier;
-
-
-};
-    
-
-
-#endif
--- a/deviceupdatesui/devicemanagementnotifiersplugin/devicemanagementnotifierwidget.cpp	Tue Jul 13 03:42:03 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,57 +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: 
-*
-*/
-
-#include <hbaction.h>
-#include <hbdialog.h>
-
-#include "devicemanagementnotifierwidget_p.h"
-
-
-// Constructor
-devicemanagementnotifierwidget::devicemanagementnotifierwidget(const QVariantMap &parameters):devicemanagementnotifierutils(parameters)
-{
-    
-}
-
-// Set parameters
-bool devicemanagementnotifierwidget::setDeviceDialogParameters(
-    const QVariantMap &parameters)
-{
-    
-    return true;
-}
-
-// Get error
-int devicemanagementnotifierwidget::deviceDialogError() const
-{
-    
-    return 0;
-}
-
-// Close device dialog
-void devicemanagementnotifierwidget::closeDeviceDialog(bool byClient)
-{
-    close();
-    emit deviceDialogClosed();
-}
-
-// Return display widget
-HbDialog *devicemanagementnotifierwidget::deviceDialogWidget() const
-{
-   
-    return const_cast<devicemanagementnotifierwidget*>(this);
-}
--- a/deviceupdatesui/devicemanagementnotifiersplugin/devicemanagementnotifierwidget_p.h	Tue Jul 13 03:42:03 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +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: 
-*
-*/
-
-#ifndef DEVICEMANAGEMENTNOTIFIERWIDGET_P_H
-#define DEVICEMANAGEMENTNOTIFIERWIDGET_P_H
-
-#include <QObject>
-#include <QVariantMap>
-
-#include <hbdevicedialoginterface.h>
-#include <hbdevicedialog.h>
-#include "devicemanagementnotifierutils.h"
-
-class HbDialog;
-
-class devicemanagementnotifierwidget :
-    public devicemanagementnotifierutils, public HbDeviceDialogInterface
-{
-	Q_OBJECT
-
-public:
-	devicemanagementnotifierwidget(const QVariantMap &parameters);
-	
-
-public: //derived from HbDeviceDialogInterface
-	bool setDeviceDialogParameters(const QVariantMap &parameters);
-    int deviceDialogError() const;
-    void closeDeviceDialog(bool byClient);
-    HbDialog *deviceDialogWidget() const;
-
-signals:
-        void deviceDialogClosed();
-        void deviceDialogData(QVariantMap data);
- };
-
-#endif // devicemanagementnotifierwidget_P_H
--- a/deviceupdatesui/devicemanagementnotifiersplugin/dialog.docml	Tue Jul 13 03:42:03 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hbdocument version="0.9">
-    <object name="qtl_dialog_softkey_2_left" type="HbAction">
-        <string name="role" value="HbDialog:primaryAction"/>
-        <string name="role" value="HbDialog:primaryAction"/>
-        <string name="text" value="OK"/>
-    </object>
-    <object name="qtl_dialog_softkey_2_right" type="HbAction">
-        <string name="role" value="HbDialog:secondaryAction"/>
-        <string name="role" value="HbDialog:secondaryAction"/>
-        <string name="text" value="Cancel"/>
-    </object>
-    <widget name="dialog" type="HbDialog">
-        <widget name="qtl_dialog_pri_heading" role="HbDialog:headingWidget" type="HbLabel">
-            <contentsmargins bottom="var(hb-param-margin-gene-popup)" left="var(hb-param-margin-gene-popup)" right="var(hb-param-margin-gene-popup)" top="var(hb-param-margin-gene-popup)"/>
-            <string name="plainText" value="Update available"/>
-            <fontspec name="fontSpec" role="Primary" textheight="var(hb-param-text-height-primary)"/>
-        </widget>
-        <widget name="qtl_dialog_pri5_large_graphic" role="HbDialog:contentWidget" type="HbWidget">
-            <widget name="icon" type="HbLabel">
-                <enums name="alignment" value="AlignVCenter|AlignHCenter"/>
-                <icon iconName="note_warning" name="icon"/>
-                <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
-                <sizehint height="var(hb-param-graphic-size-primary-large)" type="FIXED" width="var(hb-param-graphic-size-primary-large)"/>
-                <bool name="visible" value="TRUE"/>
-            </widget>
-            <widget name="qtl_dialog_pri5" type="HbLabel">
-                <enums name="textWrapping" value="TextWordWrap"/>
-                <bool name="visible" value="TRUE"/>
-                <string name="plainText" value="Recommended update is available from TarmBlr. Downloading requires connection to the internet"/>
-                <fontspec name="fontSpec" role="Primary" textheight="var(hb-param-text-height-primary)"/>
-            </widget>
-            <real name="z" value="0"/>
-            <contentsmargins bottom="0un" left="0un" right="0un" top="0un"/>
-            <layout orientation="Horizontal" spacing="var(hb-param-margin-gene-popup)" type="linear">
-                <contentsmargins bottom="var(hb-param-margin-gene-popup)" left="var(hb-param-margin-gene-popup)" right="var(hb-param-margin-gene-popup)" top="var(hb-param-margin-gene-popup)"/>
-                <linearitem itemname="icon"/>
-                <linearitem itemname="qtl_dialog_pri5"/>
-            </layout>
-        </widget>
-        <sizehint height="42.08955un" type="PREFERRED" width="50.5un"/>
-        <ref object="qtl_dialog_softkey_2_left" role="HbDialog:primaryAction"/>
-        <ref object="qtl_dialog_softkey_2_right" role="HbDialog:secondaryAction"/>
-    </widget>
-    <metadata activeUIState="Common ui state" display="NHD portrait" unit="un">
-        <resource location="TemplateIcons.qrc"/>
-        <uistate name="Common ui state" sections="#common"/>
-    </metadata>
-</hbdocument>
--- a/deviceupdatesui/devicemanagementnotifiersplugin/dialoginformative.docml	Tue Jul 13 03:42:03 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hbdocument version="0.9">
-    <object name="qtl_dialog_softkey_2_left" type="HbAction">
-        <string name="role" value="HbDialog:primaryAction"/>
-        <string name="role" value="HbDialog:primaryAction"/>
-        <string name="text" value="OK"/>
-    </object>
-    <object name="qtl_dialog_softkey_2_right" type="HbAction">
-        <string name="role" value="HbDialog:secondaryAction"/>
-        <string name="role" value="HbDialog:secondaryAction"/>
-        <string name="text" value="Cancel"/>
-    </object>
-    <widget name="dialog" type="HbDialog">
-        <widget name="qtl_dialog_pri5_large_graphic" role="HbDialog:contentWidget" type="HbWidget">
-            <widget name="icon" type="HbLabel">
-                <enums name="alignment" value="AlignVCenter|AlignHCenter"/>
-                <icon iconName="note_warning" name="icon"/>
-                <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
-                <sizehint height="var(hb-param-graphic-size-primary-large)" type="FIXED" width="var(hb-param-graphic-size-primary-large)"/>
-                <bool name="visible" value="TRUE"/>
-            </widget>
-            <widget name="qtl_dialog_pri5" type="HbLabel">
-                <enums name="textWrapping" value="TextWordWrap"/>
-                <bool name="visible" value="TRUE"/>
-                <string name="plainText" value=""/>
-                <fontspec name="fontSpec" role="Primary" textheight="var(hb-param-text-height-primary)"/>
-            </widget>
-            <real name="z" value="0"/>
-            <contentsmargins bottom="0un" left="0un" right="0un" top="0un"/>
-            <layout orientation="Horizontal" spacing="var(hb-param-margin-gene-popup)" type="linear">
-                <contentsmargins bottom="var(hb-param-margin-gene-popup)" left="var(hb-param-margin-gene-popup)" right="var(hb-param-margin-gene-popup)" top="var(hb-param-margin-gene-popup)"/>
-                <linearitem itemname="icon"/>
-                <linearitem itemname="qtl_dialog_pri5"/>
-            </layout>
-        </widget>
-        <sizehint height="23.28358un" type="PREFERRED" width="50.5un"/>
-    </widget>
-    <metadata activeUIState="Common ui state" display="NHD portrait" unit="un">
-        <resource location="TemplateIcons.qrc"/>
-        <uistate name="Common ui state" sections="#common"/>
-    </metadata>
-</hbdocument>
--- a/deviceupdatesui/devicemanagementnotifiersplugin/dialogserverpushconfirm.docml	Tue Jul 13 03:42:03 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hbdocument version="0.9">
-    <object name="qtl_dialog_softkey_2_left" type="HbAction">
-        <string name="role" value="HbDialog:primaryAction"/>
-        <string name="role" value="HbDialog:primaryAction"/>
-        <string name="text" value="Yes"/>
-    </object>
-    <object name="qtl_dialog_softkey_2_right" type="HbAction">
-        <string name="role" value="HbDialog:secondaryAction"/>
-        <string name="role" value="HbDialog:secondaryAction"/>
-        <string name="text" value="No"/>
-    </object>
-    <widget name="dialog" type="HbDialog">
-        <widget name="container" role="HbDialog:contentWidget" type="HbWidget">
-            <widget name="qtl_dialog_pri5" type="HbLabel">
-                <enums name="textWrapping" value="TextWordWrap"/>
-                <real name="z" value="2"/>
-                <contentsmargins bottom="var(hb-param-margin-gene-popup)" left="var(hb-param-margin-gene-popup)" right="var(hb-param-margin-gene-popup)" top="var(hb-param-margin-gene-popup)"/>
-                <bool name="visible" value="TRUE"/>
-                <string name="plainText" value=""/>
-                <fontspec name="fontSpec" role="Primary" textheight="var(hb-param-text-height-primary)"/>
-            </widget>
-            <real name="z" value="0"/>
-            <layout spacing="0un" type="grid">
-                <contentsmargins bottom="var(hb-param-margin-view-bottom)" left="var(hb-param-margin-view-left)" right="var(hb-param-margin-view-right)" top="var(hb-param-margin-view-top)"/>
-                <griditem column="0" itemname="qtl_dialog_pri5" row="0"/>
-            </layout>
-        </widget>
-        <widget name="qtl_dialog_pri_heading" role="HbDialog:headingWidget" type="HbLabel">
-            <enums name="alignment" value="AlignLeft|AlignLeading"/>
-            <contentsmargins bottom="var(hb-param-margin-gene-popup)" left="var(hb-param-margin-gene-popup)" right="var(hb-param-margin-gene-popup)" top="var(hb-param-margin-gene-popup)"/>
-            <string name="plainText" value="Server Message"/>
-            <fontspec name="fontSpec" role="Primary" textheight="var(hb-param-text-height-primary)"/>
-        </widget>
-        <sizehint height="42.38806un" type="PREFERRED" width="50.5un"/>
-        <ref object="qtl_dialog_softkey_2_left" role="HbDialog:primaryAction"/>
-        <ref object="qtl_dialog_softkey_2_right" role="HbDialog:secondaryAction"/>
-    </widget>
-    <metadata activeUIState="Common ui state" display="NHD portrait" unit="un">
-        <uistate name="Common ui state" sections="#common"/>
-    </metadata>
-</hbdocument>
--- a/deviceupdatesui/devicemanagementnotifiersplugin/iconnotifier.svg	Tue Jul 13 03:42:03 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,260 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://web.resource.org/cc/"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="128"
-   height="128"
-   id="svg2606"
-   sodipodi:version="0.32"
-   inkscape:version="0.45+devel"
-   version="1.0"
-   sodipodi:docname="unknown.svg"
-   inkscape:output_extension="org.inkscape.output.svg.inkscape"
-   sodipodi:docbase="/home/david/Progetti/sandbox/svg/mimetypes">
-  <defs
-     id="defs2608">
-    <linearGradient
-       y2="0"
-       x2="28"
-       y1="57.5"
-       x1="28"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient2973">
-			<stop
-   id="stop2975"
-   style="stop-color:#2c72c7;stop-opacity:1;"
-   offset="0" />
-
-			<stop
-   id="stop2977"
-   style="stop-color:#0057ae;stop-opacity:1;"
-   offset="1" />
-
-		</linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2973"
-       id="linearGradient2086"
-       x1="86.43512"
-       y1="76.830994"
-       x2="22.813417"
-       y2="8.9537134"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       id="linearGradient10207">
-      <stop
-         style="stop-color:#a2a2a2;stop-opacity:1;"
-         offset="0"
-         id="stop10209" />
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="1"
-         id="stop10211" />
-    </linearGradient>
-    <linearGradient
-       id="XMLID_12_"
-       gradientUnits="userSpaceOnUse"
-       x1="96"
-       y1="104"
-       x2="88.000198"
-       y2="96.000198">
-      <stop
-         offset="0"
-         style="stop-color:#888A85"
-         id="stop83" />
-      <stop
-         offset="0.0072"
-         style="stop-color:#8C8E89"
-         id="stop85" />
-      <stop
-         offset="0.0673"
-         style="stop-color:#ABACA9"
-         id="stop87" />
-      <stop
-         offset="0.1347"
-         style="stop-color:#C5C6C4"
-         id="stop89" />
-      <stop
-         offset="0.2652576"
-         style="stop-color:#DBDBDA"
-         id="stop91" />
-      <stop
-         offset="0.37646064"
-         style="stop-color:#EBEBEB"
-         id="stop93" />
-      <stop
-         offset="0.48740286"
-         style="stop-color:#F7F7F6"
-         id="stop95" />
-      <stop
-         offset="0.6324091"
-         style="stop-color:#FDFDFD"
-         id="stop97" />
-      <stop
-         offset="1"
-         style="stop-color:#FFFFFF"
-         id="stop99" />
-    </linearGradient>
-    <radialGradient
-       id="XMLID_8_"
-       cx="102"
-       cy="112.3047"
-       r="139.55859"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         offset="0"
-         style="stop-color:#b7b8b9;stop-opacity:1;"
-         id="stop41" />
-      <stop
-         offset="0.18851049"
-         style="stop-color:#ECECEC"
-         id="stop47" />
-      <stop
-         offset="0.25718147"
-         style="stop-color:#FAFAFA"
-         id="stop49" />
-      <stop
-         offset="0.30111277"
-         style="stop-color:#FFFFFF"
-         id="stop51" />
-      <stop
-         offset="0.5313"
-         style="stop-color:#FAFAFA"
-         id="stop53" />
-      <stop
-         offset="0.8449"
-         style="stop-color:#EBECEC"
-         id="stop55" />
-      <stop
-         offset="1"
-         style="stop-color:#E1E2E3"
-         id="stop57" />
-    </radialGradient>
-    <filter
-       inkscape:collect="always"
-       x="-0.19200002"
-       width="1.3839999"
-       y="-0.19199999"
-       height="1.3839999"
-       id="filter6697">
-      <feGaussianBlur
-         inkscape:collect="always"
-         stdDeviation="1.9447689"
-         id="feGaussianBlur6699" />
-    </filter>
-    <clipPath
-       clipPathUnits="userSpaceOnUse"
-       id="clipPath7084">
-      <path
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-         d="M 72,88 L 40,120 L 32,120 L 32,80 L 72,80 L 72,88 z"
-         id="path7086" />
-    </clipPath>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#XMLID_8_"
-       id="radialGradient9437"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.9996653,2e-6,3.0160848e-3)"
-       cx="102"
-       cy="112.3047"
-       r="139.55859" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient10207"
-       id="linearGradient10213"
-       x1="98.617439"
-       y1="106.41443"
-       x2="91.228737"
-       y2="99.254974"
-       gradientUnits="userSpaceOnUse" />
-    <filter
-       inkscape:collect="always"
-       id="filter2770">
-      <feGaussianBlur
-         inkscape:collect="always"
-         stdDeviation="2.0786429"
-         id="feGaussianBlur2772" />
-    </filter>
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="2.8284271"
-     inkscape:cx="64"
-     inkscape:cy="85.975621"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     width="128px"
-     height="128px"
-     gridspacingx="4px"
-     gridspacingy="4px"
-     gridempspacing="2"
-     showgrid="true"
-     inkscape:grid-points="true"
-     showguides="true"
-     inkscape:guide-bbox="true"
-     inkscape:window-width="1016"
-     inkscape:window-height="692"
-     inkscape:window-x="0"
-     inkscape:window-y="0" />
-  <metadata
-     id="metadata2611">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Livello 1"
-     inkscape:groupmode="layer"
-     id="layer1">
-    <path
-       style="opacity:0.5;fill:#000000;fill-opacity:1;filter:url(#filter2770)"
-       d="M 16,8 L 16,120 C 16,120 79.15625,120 79.15625,120 L 79.1875,120 C 79.187503,120 91.09375,110.09375 96.59375,104.59375 C 102.09375,99.09375 112,87.1875 112,87.1875 L 112,87.15625 L 112,8 L 16,8 z"
-       id="path7865"
-       sodipodi:nodetypes="csccscccc"
-       transform="matrix(1.0416667,0,0,1.0267857,-2.6666667,-1.2142891)" />
-    <path
-       style="fill:#ffffff;fill-opacity:1"
-       d="M 16.000001,8 L 16,120 C 16,120 79.146418,120 79.146418,120 L 112,87.14642 L 112,8 L 16.000001,8 z"
-       id="path34"
-       sodipodi:nodetypes="cccccc" />
-    <path
-       style="fill:url(#radialGradient9437);fill-opacity:1"
-       d="M 18.000002,9.0000034 C 17.449002,9.0000034 17.000002,9.4488534 17.000002,9.9996684 L 17.000002,117.96352 C 17.000002,118.51533 17.449002,118.96318 18.000002,118.96318 L 77.171999,118.96318 C 77.434999,118.96318 79.934679,119.08131 80.12068,118.89438 L 110.707,88.094202 C 110.894,87.907264 111,85.40942 111,85.146508 L 111,9.9996684 C 111,9.4488534 110.552,9.0000034 110,9.0000034 L 18.000002,9.0000034 z"
-       id="path59"
-       sodipodi:nodetypes="ccccccccccc" />
-    <path
-       d="M 41.879531,115.98249 C 41.879531,115.98249 66.18914,91.672876 66.18914,91.672876 C 66.18914,91.672876 56.836,94.586 46.586,94.586 C 46.586,104.836 41.879531,115.98249 41.879531,115.98249 z"
-       id="path5540"
-       style="opacity:0.4;fill:#000000;fill-opacity:1;filter:url(#filter6697)"
-       sodipodi:nodetypes="cccc"
-       clip-path="url(#clipPath7084)"
-       transform="translate(40,0)" />
-    <path
-       style="fill:url(#linearGradient10213);fill-opacity:1"
-       id="path14523"
-       d="M 79.172,120 C 79.172,120 91.086,110.086 96.586,104.586 C 102.086,99.086 112,87.172 112,87.172 C 112,87.172 98.25,96 88,96 C 88,106.25 79.172,120 79.172,120 z"
-       sodipodi:nodetypes="csccc" />
-    <path
-       id="text2076"
-       d="M 62.842105,28 C 69.438566,28.00007 74.631544,30.070244 78.421053,34.210526 C 80.947326,37.017606 82.210485,40.386024 82.210528,44.315789 C 82.210485,49.157946 79.894696,54.596537 75.263159,60.631581 C 74.421018,61.684251 73.052597,63.368459 71.157895,65.684214 C 67.789444,69.89477 65.57892,74.807045 64.526316,80.421056 C 64.456114,80.912302 64.38594,81.40353 64.315789,81.89474 L 62.526315,81.89474 C 62.666642,76.491254 63.719273,71.508803 65.68421,66.947371 L 68.631579,60.210528 C 71.228037,54.245661 72.526282,48.771981 72.526316,43.789473 C 72.526282,39.228131 70.806986,35.684274 67.36842,33.157894 C 65.543832,31.824628 63.473658,31.157962 61.157895,31.157894 C 57.508752,31.157962 54.631562,32.280768 52.526315,34.526317 C 51.614021,35.579011 51.15788,36.631642 51.157894,37.684211 C 51.15788,38.315851 51.894722,39.543919 53.36842,41.368421 C 54.561386,42.982513 55.157877,44.350934 55.157894,45.473685 C 55.157877,47.649175 54.175422,49.017596 52.210526,49.578948 C 51.789459,49.719349 51.33332,49.789525 50.842103,49.789475 C 47.473673,49.789525 45.789465,47.614088 45.789472,43.26316 C 45.789465,37.929885 48.070165,33.789539 52.631576,30.842104 C 55.578928,28.947438 58.982435,28.00007 62.842105,28 M 63.578947,88.736839 C 65.894709,88.736854 67.578918,89.82458 68.631579,92.00001 C 69.052602,92.77194 69.263127,93.61404 69.263159,94.52631 C 69.263127,97.05264 68.070146,98.73684 65.68421,99.57894 C 64.98243,99.85965 64.245588,100 63.473684,100 C 60.87717,100 59.157873,98.8772 58.315788,96.63158 C 58.105243,96.00001 57.99998,95.33335 57.999998,94.63158 C 57.99998,91.96492 59.122785,90.14037 61.36842,89.157906 C 62.070151,88.877214 62.806993,88.736854 63.578947,88.736839"
-       style="font-size:74.98017883px;font-style:normal;font-weight:normal;fill:url(#linearGradient2086);fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" />
-  </g>
-</svg>
--- a/deviceupdatesui/devicemanagementnotifiersplugin/syncmlnotifierprivate.cpp	Tue Jul 13 03:42:03 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,162 +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: 
-*
-*/
-
-
-#include <e32property.h>
-#include <SyncMLClientDM.h>
-#include <SyncMLClient.h>
-#include <centralrepository.h>
-#include <DevManInternalCRKeys.h>
-#include <centralrepository.h>
-#include "nsmlconstantdefs.h"
-#include "SyncMLNotifierParams.h"
-#include "syncmlnotifierprivate.h"
-
-
-
-syncmlnotifierprivate::syncmlnotifierprivate()
-{
-}
-
-void syncmlnotifierprivate::setstatus(TInt value)
-{
-
-    qDebug("setstatus");
-
- 
-    
-    enum TSyncmlHbNotifierKeys 
-		{
-
-     EHbSOSNotifierKeyStatus = 11, // status set will complete the client subscribe
-     EHbSOSNotifierKeyStatusReturn = 12, // Return the content of actual status value accepted from UI
-     
-     EHbDMSyncNotifierKeyStatus = 13,
-     EHbDMSyncNotifierKeyStatusReturn = 14
-		};
-  
-    TInt err;
-    RProperty intProperty;
-
-    if(iNotifierorigin== EHbSOSNotifierKeyStatus)
-    {
-    TUid uid = {0x101F99FB};
-    err = intProperty.Attach(uid , EHbSOSNotifierKeyStatus, EOwnerThread);
-    if(err == KErrNone)
-       {
-        qDebug("EHbSOSNotifierKeyStatus entered no error"); 
-        intProperty.Set(value);
-        RProperty::Set(uid, EHbSOSNotifierKeyStatusReturn, value);
-        qDebug("Set status of return value");
-        qDebug()<<err;
-        qDebug("Value user selected");
-        qDebug()<<value;
-       }
-    
-    intProperty.Close();
-    }
-    else
-    {
-    TUid uid = {0x101F6DE5};
-    err = intProperty.Attach(uid , EHbDMSyncNotifierKeyStatus, EOwnerThread);
-    if(err == KErrNone)
-       {
-        qDebug("EHbDMSyncNotifierKeyStatus entered no error"); 
-        intProperty.Set(value);
-        err = RProperty::Set(uid, EHbDMSyncNotifierKeyStatusReturn, value);
-        qDebug("Set status of return value");
-        qDebug()<<err;
-        qDebug("Value user selected");
-        qDebug()<<value;
-       }
-    
-    intProperty.Close();
-    }
-}
-
-void syncmlnotifierprivate::getdmprofileparameters(QString& servername, TInt profileid)
-{
-	 
-    TBuf<256> serverdisplayname;
-   
-    RSyncMLSession syncSession;
-    
-    syncSession.OpenL();
-    CleanupClosePushL( syncSession );
-        
-    RSyncMLDevManProfile syncProfile;
-    syncProfile.OpenL( syncSession, profileid, ESmlOpenRead );
-    CleanupClosePushL( syncProfile );
-        
-    serverdisplayname= syncProfile.DisplayName();
- 
-
-    //convert TBuf serverName to QString
-    QString qString((QChar*)serverdisplayname.Ptr(),serverdisplayname.Length());
-    servername = qString;
-
-        
-        
-    syncProfile.Close();
-    CleanupStack::Pop( &syncProfile );
-     
-    syncSession.Close();
-    CleanupStack::Pop( &syncSession );
-}
-
-
-TInt syncmlnotifierprivate::serverinittype(TInt uimode)
-    {
-
-   
-    TInt SanSupport = 0;
-    
-    CRepository* centrep = NULL;
-    TRAPD( err, centrep = CRepository::NewL( KCRUidDeviceManagementInternalKeys) );    
-    User::LeaveIfError( err );
-    centrep->Get( KDevManSANUIBitVariation, SanSupport );
-    delete centrep;
-    
-    //if SAN is specified then silent operation
-    
-    if(( SanSupport == 1 ))
-        {
-        if( uimode > ESANUserInteractive && uimode < ESANNotSpecified )
-            {
-            uimode = ESANNotSpecified;
-            }
-       
-        if( uimode == ESANNotSpecified || uimode == ESANUserInteractive)
-            {
-            return ESANUserInteractive;
-            }
-        if( uimode == ESANUserInformative)
-            {
-            return ESANUserInformative;
-            }
-        }
-   
-      return ESANSilent;
-        
-      
-    }
-
-void syncmlnotifierprivate::setnotifierorigin(TInt notifierorig)
-    {
-    iNotifierorigin = notifierorig;
-    }
-    
--- a/deviceupdatesui/devicemanagementnotifiersplugin/syncmlnotifierprivate.h	Tue Jul 13 03:42:03 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +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: 
-*
-*/
-
-#ifndef SYNCMLNOTIFIERPRIVATE_H_
-#define SYNCMLNOTIFIERPRIVATE_H_
-
-#include <QtCore>
-
-class syncmlnotifierprivate
-{
-public:
-syncmlnotifierprivate();
-
-public:
-   void setstatus(TInt status);
-   void getdmprofileparameters(QString& displayname, TInt profileid);
-   TInt serverinittype(TInt uimode);
-   void setnotifierorigin(TInt notifierorig);
-
-private:
-   TInt iNotifierorigin;
-
-};
-
-#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/bld/bld.inf	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,56 @@
+/*
+* Copyright (c) 2002 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:    for building DM adapters
+*
+*/
+
+PRJ_PLATFORMS
+DEFAULT   
+PRJ_EXPORTS
+../rom/omadmadapters.iby			CORE_APP_LAYER_IBY_EXPORT_PATH(omadmadapters.iby)
+
+#include "../devinfo/bld/bld.inf"
+#include "../devdetail/bld/bld.inf"
+#include "../syncmldm/bld/bld.inf"
+#include "../syncmldm12/bld/bld.inf"
+//#include "../browseradapter/bld/bld.inf"
+//#include "../streamingadapter/bld/bld.inf"
+
+#include "../globalwlansettings/group/bld.inf"
+//#include "../nsmldminternet/group/bld.inf"
+#include "../nsmldmalwaysonadapter/group/bld.inf"
+//#include "../nsmldmbmadapter/group/bld.inf"
+#include "../connmoadapter/group/bld.inf"
+
+#ifdef __SYNCML_DM_DS
+#include "../syncmlds/bld/bld.inf"
+#endif
+
+#ifdef __SYNCML_DM_EMAIL
+//#include "../email/bld/bld.inf"
+#endif
+
+#ifdef __SYNCML_DM_MMS
+#include "../mms/bld/bld.inf"
+#endif
+
+#ifdef __SYNCML_DM_FOTA
+//#include "../fota/bld/bld.inf"
+#endif
+
+#ifdef __SYNCML_DM_IMPS
+//#include "../imps/bld/bld.inf"
+#endif
+
+//#include "../dcmodmadapter/group/bld.inf"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/connmoadapter/group/bld.inf	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,33 @@
+/*
+* ==============================================================================
+* Copyright (c) 2009 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:
+*
+* ============================================================================
+*/
+
+#include <platform_paths.hrh>
+
+PRJ_PLATFORMS
+
+DEFAULT
+
+PRJ_EXPORTS
+
+
+PRJ_MMPFILES
+connmoadapter.mmp
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/connmoadapter/group/connmoadapter.mmp	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,44 @@
+/*
+* ==============================================================================
+* Copyright (c) 2009 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:
+* ==============================================================================
+*/
+
+#include  <platform_paths.hrh>
+
+CAPABILITY      CAP_ECOM_PLUGIN
+TARGET	      	connmoadapter.dll
+TARGETTYPE      PLUGIN
+UID             0x10009D8D 0x2001FE5E
+VENDORID        VID_DEFAULT
+
+APP_LAYER_SYSTEMINCLUDE
+SYSTEMINCLUDE 	/epoc32/include/ecom 
+
+SOURCEPATH      ../src
+USERINCLUDE     ../inc
+USERINCLUDE     ../traces
+
+START RESOURCE ConnMoAdapter.rss
+END
+
+LANG	sc
+
+LIBRARY		charconv.lib ecom.lib euser.lib
+LIBRARY		sysutil.lib
+LIBRARY 	cmmanager.lib
+
+SOURCE ConnMoAdapter.cpp BranchBase.cpp NapBranch.cpp ProxyBranch.cpp AddBuffer.cpp Utils.cpp
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/connmoadapter/inc/AddBuffer.h	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,145 @@
+/*
+* ==============================================================================
+* Copyright (c) 2009 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:
+*
+* ==============================================================================
+*/
+
+#ifndef ADDBUFFER_H_
+#define ADDBUFFER_H_
+
+TInt const KMaxFieldLength = 128;
+
+/**
+* CConnMoNodeElement is array element for ConnMo node objects.  
+*/
+class CConnMoNodeElement : public CBase
+    {
+public:
+    CConnMoNodeElement();
+    ~CConnMoNodeElement();
+    
+    /** Node address */
+    TBuf8<KMaxFieldLength>  iUri;
+    /** Unique identifier of the parent node */
+    TBuf8<KMaxFieldLength>  iParentLUID;
+    /** Leaf object's data */
+    TBuf8<KMaxFieldLength>  iObject;
+    /** Refenrence for giving commands return value to framework */
+    TInt  iStatusRef;
+    /** Information whether adapter has processed the node or not */
+    TBool iProcessed;
+    /** Specifies if the node leaf or not */
+    TBool iLeaf;
+private:
+    };
+
+/**
+* CAddBuffer is array for ConnMo nodes to be added in .
+* 
+* CConnMoAdapter uses this class to buffer node and leaf data 
+* addition DM commands. 
+*/
+class CAddBuffer : public CBase
+    {
+public:
+    
+    /**
+     * Creates new instance of CAddBuffer
+     */
+    static CAddBuffer* NewL();
+    
+    /**
+     * Adds node to buffer
+     * 
+     * @param aUri target node URI
+     * @param aParentLUID refrence to parent node
+     * @param aStatusRef Status reference
+     */
+    void AddNodeToBufferL( const TDesC8& aUri, 
+                           const TDesC8& aParentLUID, 
+                           const TInt    aStatusRef );
+    
+    /**
+     * Adds leaf node to buffer
+     * 
+     * @param aUri target node URI
+     * @param aParentLUID refrence to parent node
+     * @param aObject Leaf object data
+     * @param aStatusRef Status reference
+     */
+    void AddNodeToBufferL( const TDesC8& aUri, 
+                           const TDesC8& aLUID, 
+                           const TDesC8& aObject,
+                           const TInt    aStatusRef );
+    
+    /**
+     * Searches buffer for given dynamic node
+     * 
+     * @param aUri target node URI
+     */
+    CConnMoNodeElement* FindDynamicNode( const TDesC8& aUri );
+    
+    /**
+     * Gets all unprocessed nodes associated to given root node
+     * 
+     * Function searches buffer for all unprocessed nodes that 
+     * belong to given group and are under same dynamic node 
+     * 
+     * @param aRoot target group
+     * @param aGroup Array for result nodes
+     */
+    TInt GetGroup( const TDesC8& aRoot, RPointerArray<CConnMoNodeElement>* aGroup );
+    
+    /**
+     * Searches buffer for givennode
+     * 
+     * @param aUri target node URI
+     */
+    CConnMoNodeElement* CacheFind( const TDesC8& aUri );
+    
+    /**
+     * Searches buffer for given dynamic node
+     * 
+     * @param aUri target node URI
+     */
+    CConnMoNodeElement* CacheFindDynamicNode( const TDesC8& aUri );
+    
+    /**
+     * Empties buffer and frees all allocated memory
+     */
+    void Reset();
+
+    virtual ~CAddBuffer(); 
+    
+private:
+    
+    //-----------------------------------------------------------------------------
+    // Private functions
+    //-----------------------------------------------------------------------------
+    void ConstructL();
+    CAddBuffer();
+          
+    //-----------------------------------------------------------------------------
+    // Private member variables
+    //-----------------------------------------------------------------------------
+    /** Contains all nodes to be added */
+    RPointerArray<CConnMoNodeElement> iBuffer;
+    /** Contains group of nodes that user has previously asked */
+    RPointerArray<CConnMoNodeElement> iCache;
+        
+    };
+
+#endif /* ADDBUFFER_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/connmoadapter/inc/BranchBase.h	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,186 @@
+/*
+* ==============================================================================
+* Copyright (c) 2009 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:
+*
+* ==============================================================================
+*/
+
+#ifndef BRANCHBASE_H_
+#define BRANCHBASE_H_
+
+#include <cmmanagerext.h> 
+#include "smldmadapter.h"
+
+// ------------------------------------------------------------------------------------------------
+// Constants
+// ------------------------------------------------------------------------------------------------
+#define KConnMoAdapterUid 0x2001FE5F
+
+/**
+ * Abstract base class for all ConnMO branches.
+ */
+class CBranchBase : public CBase
+    {
+public:
+
+    /**
+     * Builds DDF structure of DM settings it governs.
+     * 
+     * Implementations should build their structure using given node 
+     * as the root node.
+     * 
+     * @param aDDF Root node
+     */
+    virtual void DDFStructureL( MSmlDmDDFObject& aDDF ) = 0;
+    
+    /**
+     * Updates leaf node data.
+     * 
+     * @param aURI Root node
+     * @param aLUID refrence to branch LUID
+     * @param aObject Leaf object data
+     * @param aType Type of the node
+     * @param aStatusRef Status reference
+     */
+    virtual void UpdateLeafObjectL( const TDesC8& aURI, 
+                                    const TDesC8& aLUID,
+                                    const TDesC8& aObject, 
+                                    const TDesC8& aType,
+                                    TInt aStatusRef ) = 0;
+    /**
+     * Deletes object pointed by aURI.
+     * 
+     * @param aURI Root node
+     * @param aLUID refrence to branch LUID
+     * @param aStatusRef Status reference
+     */    
+    virtual void DeleteObjectL( const TDesC8& aURI, 
+                                const TDesC8& aLUID,
+                                TInt aStatusRef ) = 0;
+        
+    /**
+     * Gets node data for leaf nodes and child list for parent nodes.
+     * 
+     * @param aURI Root node
+     * @param aLUID refrence to branch LUID
+     * @param aObject Leaf object data
+     * @param aType Type of the node
+     * @param aResultsRef Result reference
+     * @param aStatusRef Status reference
+     */
+    virtual void FetchLeafObjectL( const TDesC8& aURI, 
+                                   const TDesC8& aLUID,
+                                   const TDesC8& aType, 
+                                   TInt aResultsRef,
+                                   TInt aStatusRef ) = 0;
+        
+    /**
+     * Gets the size of the data in leaf node.
+     */
+    virtual void FetchLeafObjectSizeL( const TDesC8& aURI, 
+                                       const TDesC8& aLUID,
+                                       const TDesC8& aType, 
+                                       TInt aResultsRef,
+                                       TInt aStatusRef) = 0;
+
+    /**
+     * Gets all childs of the given node.
+     */
+    virtual void ChildURIListL( const TDesC8& aURI, 
+                                const TDesC8& aLUID,
+                                const CArrayFix<TSmlDmMappingInfo>& aPreviousURISegmentList,
+                                TInt aResultsRef, 
+                                TInt aStatusRef ) = 0;
+        
+    /**
+     * Adds node to DM tree.
+     */
+    virtual void AddNodeObjectL( const TDesC8& aURI, 
+                                 const TDesC8& aParentLUID,
+                                 TInt aStatusRef )=0;
+
+        
+    virtual ~CBranchBase();
+
+protected:
+    
+    CBranchBase();
+    
+    CBranchBase( MSmlDmCallback* aDmCallback );
+            
+    /**
+     * This function gives all Connection Methods from Connection Method Manager.
+     * 
+     * @param aCmArray Result Array.
+     * @param aCmManager CM Manager.
+     */
+    void GetAllConnectionMethodsL( RArray<TUint32>& aCmArray,
+                                   RCmManagerExt& aCmManager );
+    
+    /**
+     * This function checks if given CM ID is found from given URI segmentlist.
+     * 
+     * @param aPreviousURISegmentList Array where to search.
+     * @param aCmId CM ID to be searched.
+     * @param aURISeg If match is found, the URI segment matching the CM ID is copied here.
+     * @return TBool ETrue if CM ID is found from array.
+     */
+    TBool CheckPreviousURIList( const CArrayFix<TSmlDmMappingInfo>& aPreviousURISegmentList,
+                                const TUint32 aCmId,
+                                TDes8& aURISeg );
+    
+    /**
+     * This function gets list of dynamic nodes for the specified URI
+     * 
+     * @param aURI which to get the list for
+     * @param aLuid refrence to branch LUID
+     * @param aPreviousURISegmentList previous URI segment list
+     * @param aResultRef result reference
+     * @param aStatusRef status reference
+     * @param aCmManagerExt CM Manager reference
+     * @param aCurrentURISegmentList current URI segment list
+     * @param aField branch name
+     * @param aNodeCount number of dynamic nodes
+     * @aCallback pointer to DM callback
+     */
+    void GetAllDynamicNodesL( const TDesC8& aURI, 
+                              const TDesC8& aLUID,
+                              const CArrayFix<TSmlDmMappingInfo>& aPreviousURISegmentList,
+                              TInt aResultsRef,
+                              TInt aStatusRef,
+                              RCmManagerExt& aCmManagerExt,
+                              CBufBase& aCurrentURISegmentList,
+                              const TDesC8& aField,
+                              const TInt aNodeCount,
+                              MSmlDmCallback* aCallback );
+    
+    /**
+     * This function gets connection method
+     * 
+     * @param aCmManagerExt CM Manager
+     * @param aCm CM Manager
+     * @param aCmId CM ID
+     * @return TBool ETrue if connection method found
+     */
+    TBool GetConnectionMethodLC( RCmManagerExt& aCmManagerExt,
+                                 RCmConnectionMethodExt& aCm,
+                                 TUint32 aCmId );
+    
+private:
+    MSmlDmCallback* iCallback;
+    
+    };
+
+#endif /* BRANCHBASE_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/connmoadapter/inc/ConnMoAdapter.h	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,155 @@
+/*
+* ==============================================================================
+*  Name        : ConnMoAdapter.h
+*  Part of     : ConnMoAdapter
+*  Interface   : ecom / ConnMOAdapter
+*  Description : Connection Management Object
+*  Version     : $Revision: 61 $ $Modtime: 29.09.05 8:17 $
+*
+* Copyright (c) 2009 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:
+*
+* ==============================================================================
+*/
+
+#ifndef CONNMOADAPTER_H_
+#define CONNMOADAPTER_H_
+
+// ------------------------------------------------------------------------------------------------
+// Includes
+// ------------------------------------------------------------------------------------------------
+#include <smldmadapter.h>
+#include <cmmanagerext.h>
+
+class CNapBranch;
+class CProxyBranch;
+class CAddBuffer;
+class CBranchBase;
+
+_LIT8( KCMDdfNAP,                   "NAP" );
+_LIT8( KCMDdfProxy,                 "Proxy" );
+
+/**
+ * Implements ConnMO partition of the DM tree
+ */
+class CConnMoAdapter : public CSmlDmAdapter
+    {
+public:
+
+    static CConnMoAdapter* NewL(MSmlDmCallback* aDmCallback );
+    static CConnMoAdapter* NewLC(MSmlDmCallback* aDmCallback );
+
+    virtual ~CConnMoAdapter(); 
+    
+    // Adapter Interface inherited from CSmlDmAdapter
+    void DDFVersionL( CBufBase& aVersion );
+    void DDFStructureL( MSmlDmDDFObject& aDDF );
+    
+    void UpdateLeafObjectL( const TDesC8& aURI, 
+                            const TDesC8& aLUID,
+                            const TDesC8& aObject, 
+                            const TDesC8& aType,
+                            TInt aStatusRef );
+    
+    void UpdateLeafObjectL( const TDesC8& aURI, 
+                            const TDesC8& aLUID,
+                            RWriteStream*& aStream, 
+                            const TDesC8& aType,
+                            TInt aStatusRef );
+    
+    void DeleteObjectL( const TDesC8& aURI, 
+                        const TDesC8& aLUID,
+                        TInt aStatusRef );
+    
+    void FetchLeafObjectL( const TDesC8& aURI, 
+                           const TDesC8& aLUID,
+                           const TDesC8& aType, 
+                           TInt aResultsRef,
+                           TInt aStatusRef );
+    
+    void FetchLeafObjectSizeL( const TDesC8& aURI, 
+                               const TDesC8& aLUID,
+                               const TDesC8& aType, 
+                               TInt aResultsRef,
+                               TInt aStatusRef );
+    
+    void ChildURIListL( const TDesC8& aURI, 
+                        const TDesC8& aLUID,
+                        const CArrayFix<TSmlDmMappingInfo>& aPreviousURISegmentList,
+                        TInt aResultsRef, TInt aStatusRef );
+    
+    void AddNodeObjectL( const TDesC8& aURI, 
+                         const TDesC8& aParentLUID,
+                         TInt aStatusRef );
+
+    void ExecuteCommandL( const TDesC8& aURI, 
+                          const TDesC8& aLUID,
+                          const TDesC8& aArgument, 
+                          const TDesC8& aType,
+                          TInt aStatusRef );
+
+    void ExecuteCommandL( const TDesC8& aURI, 
+                          const TDesC8& aLUID,
+                          RWriteStream*& aStream, 
+                          const TDesC8& aType,
+                          TInt aStatusRef );
+
+    void CopyCommandL( const TDesC8& aTargetURI, 
+                       const TDesC8& aTargetLUID,
+                       const TDesC8& aSourceURI, 
+                       const TDesC8& aSourceLUID,
+                       const TDesC8& aType, 
+                       TInt aStatusRef );
+
+    void StartAtomicL(); 
+    void CommitAtomicL();
+    void RollbackAtomicL();
+    TBool StreamingSupport( TInt& aItemSize );
+    void StreamCommittedL();
+    void CompleteOutstandingCmdsL();
+    
+private:
+    
+    //-----------------------------------------------------------------------------
+    // Private functions
+    //-----------------------------------------------------------------------------
+    void ConstructL();
+    CConnMoAdapter( TAny* aEcomArguments );
+    
+    CBranchBase* GetBranch( const TDesC8& aUri );
+    
+    MSmlDmDDFObject& AddBaseUriL( MSmlDmDDFObject& aRootDDF);
+    
+    MSmlDmDDFObject& AddBranchL( MSmlDmDDFObject& aRootDDF, 
+                                const TDesC8& aNodeName);
+    
+    //-----------------------------------------------------------------------------
+    // Private member variables
+    //-----------------------------------------------------------------------------
+    /** Callback to framework */
+    MSmlDmCallback*     iCallBack;
+    
+    /** branches of ConnMo structure */
+    CNapBranch*         iNapBranch;
+    CProxyBranch*       iProxyBranch;
+    
+    /** Buffer for node addition */
+    CAddBuffer*         iBuffer;
+    
+    /** CmMager for manipulating CM settings */
+    RCmManagerExt       iCmManager;
+    };
+
+
+#endif /* CONNMOADAPTER_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/connmoadapter/inc/NapBranch.h	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,151 @@
+/*
+* ==============================================================================
+* Copyright (c) 2009 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:
+*
+* ==============================================================================
+*/
+
+
+#ifndef NAPBRANCH_H_
+#define NAPBRANCH_H_
+
+// ------------------------------------------------------------------------------------------------
+// Includes
+// ------------------------------------------------------------------------------------------------
+#include <cmmanagerext.h> 
+#include <smldmadapter.h>
+#include "BranchBase.h"
+#include "AddBuffer.h"
+
+/**
+ * Class for handling Network Access Point (NAP) settings in ConnMo DM tree
+ */
+class CNapBranch : public CBranchBase
+    {
+public:
+
+    static CNapBranch* NewL(MSmlDmCallback* aDmCallback, 
+                            CAddBuffer* aBuffer,
+                            RCmManagerExt* aCmManagerExt );
+    
+    void DDFStructureL( MSmlDmDDFObject& aDDF );
+    
+    void UpdateLeafObjectL( const TDesC8& aURI, 
+                            const TDesC8& aLUID,
+                            const TDesC8& aObject, 
+                            const TDesC8& aType,
+                            TInt aStatusRef );
+    
+    void DeleteObjectL( const TDesC8& aURI, 
+                        const TDesC8& aLUID,
+                        TInt aStatusRef );
+    
+    void FetchLeafObjectL( const TDesC8& aURI, 
+                           const TDesC8& aLUID,
+                           const TDesC8& aType, 
+                           TInt aResultsRef,
+                           TInt aStatusRef );
+    
+
+    void FetchLeafObjectSizeL( const TDesC8& aURI, 
+                               const TDesC8& aLUID,
+                               const TDesC8& aType, 
+                               TInt aResultsRef,
+                               TInt aStatusRef );
+
+    void ChildURIListL( const TDesC8& aURI, 
+                        const TDesC8& aLUID,
+                        const CArrayFix<TSmlDmMappingInfo>& aPreviousURISegmentList,
+                        TInt aResultsRef, 
+                        TInt aStatusRef );
+    
+    void AddNodeObjectL( const TDesC8& aURI, 
+                         const TDesC8& aParentLUID,
+                         TInt aStatusRef);
+    
+    /**
+     * Processes all Proxy related nodes from buffer
+     */
+    void ProcessBufferL();
+
+    virtual ~CNapBranch(); 
+    
+private:
+    
+    //-----------------------------------------------------------------------------
+    // Private functions
+    //-----------------------------------------------------------------------------
+    void ConstructL( CAddBuffer* aBuffer, RCmManagerExt* aCmManagerExt );
+    CNapBranch( MSmlDmCallback* aDmCallback );
+    
+    CSmlDmAdapter::TError GetUnmodifiableFieldValueL(const TDesC8& aUri,
+                                                    CBufBase* aResult );
+    
+    CSmlDmAdapter::TError GetLeafDataL(const TDesC8& aURI,
+                                       RCmConnectionMethodExt& aCm,
+                                       CBufBase* aResult );
+    
+    CSmlDmAdapter::TError GetUnmodifiableFieldAddResult( const TDesC8& aUri, 
+                                                         const TDesC8& aObject );
+    
+    TUint32 MapUriToCmAttribute( const TDesC8& aUri );
+    
+    void SetLeafDataL( const TDesC8& aURI, 
+                       const TDesC8& aObject, 
+                       TInt aStatusRef, 
+                       RCmConnectionMethodExt& aCm);
+    
+    void SetNodeDataL( CConnMoNodeElement* aNode, 
+                       RCmConnectionMethodExt& aCm );
+    
+    TBool FindNewCmType( TUint32& aBearerType );
+    
+    TBool AllMandatoryNapFieldsFound();
+    
+    void NapChildURIListL( const TDesC8& aURI,
+                           const CArrayFix<TSmlDmMappingInfo>& aPreviousURISegmentList,
+                           TInt aResultsRef, 
+                           TInt aStatusRef,
+                           CBufBase& aCurrentURISegmentList );
+   
+    void GetAllDynamicNapNodesL( const TDesC8& aURI, 
+                                 const TDesC8& aLUID,
+                                 const CArrayFix<TSmlDmMappingInfo>& aPreviousURISegmentList,
+                                 TInt aResultsRef,
+                                 TInt aStatusRef,
+                                 CBufBase& aCurrentURISegmentList,
+                                 const TDesC8& aField );
+								 
+    void IpBranchDDFStructureL( MSmlDmDDFObject& aIPDDF );
+    
+    CSmlDmAdapter::TError DeleteObjectL( const TDesC8& aURI, 
+                                         const TDesC8& aLUID );
+    
+    TPtrC8 GetDynamicNAPNodeUri( const TDesC8& aURI );
+    
+    TBool IsNAPUriFormatMatchPredefined(const TDesC8 & aURI);
+    
+    TInt GetCmIdFromURIL(const TDesC8& aURI);
+    //-----------------------------------------------------------------------------
+    // Private member variables
+    //-----------------------------------------------------------------------------
+    CAddBuffer* iBuffer;
+    MSmlDmCallback* iCallback;
+    RCmManagerExt* iCmManager;
+    };
+    
+    
+    
+#endif /* NAPBRANCH_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/connmoadapter/inc/ProxyBranch.h	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,197 @@
+/*
+* ==============================================================================
+* Copyright (c) 2009 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:
+*
+* ==============================================================================
+*/
+
+#ifndef PROXYBRANCH_H_
+#define PROXYBRANCH_H_
+
+
+// ------------------------------------------------------------------------------------------------
+// Includes
+// ------------------------------------------------------------------------------------------------
+#include <smldmadapter.h>
+#include "BranchBase.h"
+#include "cmmanagerext.h"
+#include "AddBuffer.h"
+
+/**
+ * Class for handling Proxy settings in ConnMo DM tree
+ */
+class CProxyBranch : public CBranchBase
+    {
+public:
+
+    static CProxyBranch* NewL(MSmlDmCallback* aDmCallback, 
+                              CAddBuffer* aBuffer,
+                              RCmManagerExt* aCmManagerExt );
+    
+    // Adapter branch interface from CProxyBranch
+    void DDFStructureL( MSmlDmDDFObject& aDDF );
+
+    void UpdateLeafObjectL( const TDesC8& aURI, 
+                            const TDesC8& aLUID,
+                            const TDesC8& aObject, 
+                            const TDesC8& aType,
+                            TInt aStatusRef );
+    
+    void DeleteObjectL( const TDesC8& aURI, 
+                        const TDesC8& aLUID,
+                        TInt aStatusRef );
+    
+    void FetchLeafObjectL( const TDesC8& aURI, 
+                           const TDesC8& aLUID,
+                           const TDesC8& aType, 
+                           TInt aResultsRef,
+                           TInt aStatusRef );
+    
+
+    void FetchLeafObjectSizeL( const TDesC8& aURI, 
+                               const TDesC8& aLUID,
+                               const TDesC8& aType, 
+                               TInt aResultsRef,
+                               TInt aStatusRef);
+
+    void ChildURIListL( const TDesC8& aURI, 
+                        const TDesC8& aLUID,
+                        const CArrayFix<TSmlDmMappingInfo>& aPreviousURISegmentList,
+                        TInt aResultsRef, 
+                        TInt aStatusRef );
+    
+    void AddNodeObjectL( const TDesC8& aURI, 
+                         const TDesC8& aParentLUID,
+                         TInt aStatusRef );
+    
+    /**
+     * The function processes all proxy nodes from add buffer.
+     * @param aCmManagerExt Reference to CmManager session. 
+     */
+    void ProcessBufferL();
+    
+    virtual ~CProxyBranch(); 
+    
+private:
+    
+    //-----------------------------------------------------------------------------
+    // Private functions
+    //-----------------------------------------------------------------------------
+    CProxyBranch(MSmlDmCallback* aDmCallback, 
+                 CAddBuffer* aBuffer, 
+                 RCmManagerExt* aCmManagerExt );
+        
+    /**
+     * The function returns URI list of dynamic Proxy nodes. The list is returned by 
+     * calling the SetResultsL function of MSmlCallback callback interface.
+     * @param aURI URI of the parent object.
+     * @param aPreviousURISegmentList URI list with mapping LUID information.
+     * @param aResultsRef Reference to correct results.
+     * @param aStatusRef  Reference to correct command.
+     * @param aCmManagerExt Reference to CmManager session. 
+     */
+    void GetAllDynamicProxyNodesL( const TDesC8& aURI,
+                                   const CArrayFix<TSmlDmMappingInfo>& aPreviousURISegmentList,
+                                   TInt aResultsRef, 
+                                   TInt aStatusRef,
+                                   CBufBase& aCurrentURISegmentList );
+    
+    /**
+     * The function returns URI list of requested dynamic Proxy node.
+     * @param aLUID LUID of the parent object.
+     * @param aResultsRef Reference to correct results.
+     * @param aStatusRef  Reference to correct command.
+     * @param aCmManagerExt Reference to CmManager session. 
+     */
+    void GetURIListForProxyNodeL( const TDesC8& aLUID,
+                                  TInt aResultsRef, 
+                                  TInt aStatusRef );
+    
+    /**
+     * The function adjust DM operation return values for hardcoded fields.
+     * @param aURI URI of the object.
+     * @return CSmlDmAdapter::TError Status value for DM operation.
+     */
+    CSmlDmAdapter::TError CheckForUnmodifiableField( const TDesC8& aUri );
+    
+    /**
+     * The function returns CMManager's attribute enum that corresponds to uri.
+     * @param aURI URI of the object.
+     * @return TUint32 Attribute enum for CM.
+     */
+    TUint32 MapUriToCmAttribute( const TDesC8& aUri );
+    
+    /**
+     * The function searches for connection method that is referenced from proxy buffered
+     * in the addbuffer.
+     * @param aCmManagerExt Reference to CmManager session. 
+     * @return TUint32 CM ID.
+     */
+    TInt32 FindConnectionMethodL();
+    
+    /**
+     * The function checs that the addbuffer contains all necessary fields 
+     * to create new proxy entry.
+     * @return TBool True if all mandatory fields found.
+     */
+    TBool AllMandatoryProxyFieldsFound();
+    
+    /**
+     * The function writes information from the addbuffer to connection method.
+     * @param aURI URI of the object.
+     * @param aLUID Local UID of the leaf.
+     * @param aObject objecto to be written in CM.
+     * @param aStatusRef  Reference to correct command.
+     * @param aCm Reference to Connection Method. 
+     */
+    void SetLeafDataL( const TDesC8& aURI, 
+                       const TDesC8& aLUID,
+                       const TDesC8& aObject, 
+                       TInt aStatusRef, 
+                       RCmConnectionMethodExt& aCm);
+    
+    /**
+     * The function informs framework about new nodes.
+     * @param aNode Node to be saved.
+     * @param aCm Reference to Connection Method.
+     */
+    void SetNodeDataL( CConnMoNodeElement* aNode, RCmConnectionMethodExt& aCm );
+    
+    /**
+     * Fethces leaf object data from connection settings
+     * @param aURI Target node
+     * @param aLuid Local UID for target node
+     * @param buffer for returning object data
+     * @return CSmlDmAdapter::TError Return value informs completion status of the operation
+     */
+    CSmlDmAdapter::TError FetchLeafObjectL( const TDesC8& aURI,
+                                            const TDesC8& aLUID,
+                                            CBufBase& aLeafObject );
+    
+    TPtrC8 GetDynamicProxyNodeUri( const TDesC8& aURI );
+    
+    TBool IsProxyUriFormatMatchPredefined(const TDesC8 & aURI);
+ 
+    TInt GetCmIdFromURIL(const TDesC8& aURI);
+    
+    //-----------------------------------------------------------------------------
+    // Private member variables
+    //-----------------------------------------------------------------------------
+    MSmlDmCallback* iCallback;
+    CAddBuffer* iBuffer;
+    RCmManagerExt* iCmManager;
+    };
+    
+#endif /* PROXYBRANCH_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/connmoadapter/inc/Utils.h	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,156 @@
+/*
+* ==============================================================================
+* Copyright (c) 2009 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:
+*
+* ==============================================================================
+*/
+
+#ifndef UTILS_H_
+#define UTILS_H_
+
+// ------------------------------------------------------------------------------------------------
+// Includes
+// ------------------------------------------------------------------------------------------------
+#include "ConnMoAdapter.h"
+
+class TLuid;
+
+/**
+ * Utilities class for ConnMo adapter needs
+ * 
+ * Class contains useful helper functions etc. for parsing URI and TLuid
+ */
+class CUtils : public CBase
+    {
+public:
+    
+    virtual ~CUtils();
+    
+    /**
+     * Returns first segment of URI.
+     * 
+     * @param aUri URI to be searched.
+     * @return First segment of URI.
+     */
+    static TPtrC8 GetFirstURISeg( const TDesC8& aURI );
+    
+    /**
+     * Returns second segment of URI.
+     * 
+     * @param aUri URI to be searched.
+     * @return Second segment of URI.
+     */
+    static TPtrC8 GetSecondURISeg( const TDesC8& aURI );
+    
+    /**
+     * Returns last segment of URI.
+     * 
+     * @param aUri URI to be searched.
+     * @return Last segment of URI.
+     */
+    static TPtrC8 GetLastURISeg( const TDesC8& aURI );
+    
+    /**
+     * Returns the end of URI starting from passed segment.
+     * 
+     * @param aUri URI to be parsed.
+     * @param aName Segment to start.
+     * @return End of URI starting from aName.
+     */
+    static TPtrC8 GetEndOfURIFromSeg( const TDesC8& aURI, const TDesC8& aName );
+    
+    /**
+     * This function converts string value to 8-bit value.
+     * 
+     * @param aSource String to convert.
+     * @return Pointer to 8-bit value.
+     */
+    static TDesC8& ConvertTo8LC( const TDesC& aSource );
+    
+    /**
+     * This function converts string value to 16-bit value.
+     * 
+     * @param aSource String to convert.
+     * @return Pointer to 16-bit value.
+     */
+    static TDesC16& ConvertTo16LC( const TDesC8& aSource );
+    
+    /**
+     * This function sets given information to given node.
+     * 
+     * @param aNode Target node.
+     * @param aAccTypes Node's access types.
+     * @param aOccurrence Amount of possible nodes of same type.
+     * @param aScope Describes if node is static or dynamic.
+     * @param aFormat Node's format.
+     * @param aDescription String containing description of the node.
+     * @return Pointer integer value.
+     */
+    static void FillNodeInfoL( MSmlDmDDFObject& aNode,
+                               TSmlDmAccessTypes aAccTypes,
+                               MSmlDmDDFObject::TOccurence aOccurrence, 
+                               MSmlDmDDFObject::TScope aScope, 
+                               MSmlDmDDFObject::TDFFormat aFormat,
+                               const TDesC8& aDescription);
+        
+    /**
+     * This function removes characters that are not allowed in URI from given descriptor.
+     * 
+     * @param aString String to be modified.
+     */
+    static void RemoveIllegalCharsFromURI( TDes8& aString );
+        
+    /**
+     * This function returns string as bool value.
+     * 
+     * @param aSource String to convert.
+     * @param aBool conversion result.
+     * @return TInt32 KErrNone if succesful conversion.
+     */
+    static TInt32 DesToBool( const TDesC8& aString, TBool& aBool );
+    
+    /**
+     * This function convert integer value to string presentation.
+     * 
+     * @param aObject Int value to convert.
+     * @return TDesC8& Int as string.
+     */
+    static TDesC8& IntToCharL( const TInt& aObject );
+    
+    /**
+     * This function takes first segment from uri and adds it to target
+     * 
+     * @param aURI Contains source uri.
+     * @param aTarget Target string.
+     * @return TInt Index of first uri delimiter.
+     */
+    static TInt AppendFirstURISeg( TDes8& aURI, TDes8& aTarget );
+    
+    static TInt IntLUID(const TDesC8& aLUID);
+    
+private:
+    
+    //-----------------------------------------------------------------------------
+    // Private functions
+    //-----------------------------------------------------------------------------
+    CUtils();
+              
+    //-----------------------------------------------------------------------------
+    // Private member variables
+    //-----------------------------------------------------------------------------
+       
+    };
+
+#endif /* UTILS_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/connmoadapter/rom/connmoadapter.iby	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,34 @@
+/*
+* ============================================================================
+* Copyright (c) 2009 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:
+*
+* ============================================================================
+*/
+
+#include <bldvariant.hrh>
+
+#ifndef __CONNMOADAPTER_IBY__
+#define __CONNMOADAPTER_IBY__
+
+#ifdef __SYNCML_DM // nothing should be installed from this .iby file if __SYNCML_DM feature is not selected
+#ifdef FF_DM_CONNMO_ADAPTER // nothing should be installed from this .iby file if this flag is not specified.
+														 // old internet adapter is used in that case for access point provisioning.
+
+ECOM_PLUGIN(connmoadapter.dll,connmoadapter.rsc)
+
+#endif FF_DM_CONNMO_ADAPTER 
+#endif // __SYNCML_DM_WLAN 
+
+#endif //__CONNMOADAPTER_IBY__
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/connmoadapter/src/AddBuffer.cpp	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,302 @@
+/*
+ * ==============================================================================
+ * Copyright (c) 2009 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:
+ * 
+ * ==============================================================================
+ */
+
+#include <e32base.h>
+
+#include "AddBuffer.h"
+#include "Utils.h"
+#include "OstTraceDefinitions.h"
+#ifdef OST_TRACE_COMPILER_IN_USE
+#include "AddBufferTraces.h"
+#endif
+
+_LIT8( KChildNodeWildCardPattern, "/*" );
+_LIT8( KNodeSeparator, "/" );
+
+// ======== LOCAL FUNCTIONS =========
+
+// ======== MEMBER FUNCTIONS ========
+//------------------------------------------------------------------------------
+// CConnMoNodeElement::CConnMoNodeElement()
+//------------------------------------------------------------------------------
+CConnMoNodeElement::CConnMoNodeElement() 
+    {
+    OstTraceFunctionEntry0( CCONNMONODEELEMENT_CCONNMONODEELEMENT_ENTRY );
+    
+    OstTraceFunctionExit0( CCONNMONODEELEMENT_CCONNMONODEELEMENT_EXIT );
+    }
+
+//------------------------------------------------------------------------------
+// CAddBuffer::~CAddBuffer()
+//------------------------------------------------------------------------------
+CConnMoNodeElement::~CConnMoNodeElement()
+    {
+    OstTraceFunctionEntry0( CCONNMONODEELEMENT_DELETE_ENTRY );
+    
+    OstTraceFunctionExit0( CCONNMONODEELEMENT_DELETE_EXIT );
+    }
+
+//-----------------------------------------------------------------------------
+// CAddBuffer* CAddBuffer::NewL( )
+//-----------------------------------------------------------------------------
+CAddBuffer* CAddBuffer::NewL()
+    {
+    OstTraceFunctionEntry0( CADDBUFFER_NEWL_ENTRY );
+    
+    CAddBuffer* self = new ( ELeave ) CAddBuffer();
+    CleanupStack::PushL( self );
+    
+    self->ConstructL();
+    
+    CleanupStack::Pop( self );
+
+    OstTraceFunctionExit1( CADDBUFFER_NEWL_EXIT, ( TUint )( self ) );
+    return self;
+    }
+
+//------------------------------------------------------------------------------
+// CAddBuffer::CAddBuffer()
+//------------------------------------------------------------------------------
+CAddBuffer::CAddBuffer() 
+    {
+    OstTraceFunctionEntry0( CADDBUFFER_CADDBUFFER_ENTRY );
+    
+    OstTraceFunctionExit0( CADDBUFFER_CADDBUFFER_EXIT );
+    }
+
+//------------------------------------------------------------------------------
+// CAddBuffer::~CAddBuffer()
+//------------------------------------------------------------------------------
+CAddBuffer::~CAddBuffer()
+    {
+    OstTraceFunctionEntry0( CADDBUFFER_DELETE_ENTRY );
+    
+    iBuffer.ResetAndDestroy();
+    
+    OstTraceFunctionExit0( CADDBUFFER_DELETE_EXIT );
+    }
+
+//------------------------------------------------------------------------------
+// CAddBuffer::CAddBuffer()
+//------------------------------------------------------------------------------
+void CAddBuffer::ConstructL() 
+    {
+    OstTraceFunctionEntry0( CADDBUFFER_CONSTRUCTL_ENTRY );
+    
+    OstTraceFunctionExit0( CADDBUFFER_CONSTRUCTL_EXIT );
+    }
+
+//------------------------------------------------------------------------------
+// CAddBuffer::AddNodeToBuffer()
+//------------------------------------------------------------------------------
+void CAddBuffer::AddNodeToBufferL( const TDesC8& aUri, 
+                                   const TDesC8& aParentLUID,
+                                   const TInt    aStatusRef )
+    {
+    OstTraceExt1( TRACE_NORMAL, CADDBUFFER_ADDNODETOBUFFERL_ENTRY, "ENTRY: CAddBuffer::AddNodeToBufferL;aUri=%s", aUri );
+    
+    CConnMoNodeElement* newNode = new (ELeave) CConnMoNodeElement();
+    
+    newNode->iUri.Copy( aUri );
+    newNode->iParentLUID.Copy( aParentLUID );
+    newNode->iStatusRef = aStatusRef;
+    newNode->iProcessed = EFalse;
+    newNode->iLeaf = EFalse;
+    
+    iBuffer.AppendL( newNode );
+    OstTrace0( TRACE_NORMAL, CADDBUFFER_ADDNODETOBUFFERL_EXIT, "EXIT: CAddBuffer::AddNodeToBufferL");
+    }
+
+//------------------------------------------------------------------------------
+// CAddBuffer::AddNodeToBuffer()
+//------------------------------------------------------------------------------
+void CAddBuffer::AddNodeToBufferL( const TDesC8& aUri, 
+                                   const TDesC8& aLUID,
+                                   const TDesC8& aObject,
+                                   const TInt    aStatusRef )
+    {
+    OstTraceExt1( TRACE_NORMAL, CADDBUFFER_ADDNODETOBUFFERL_LEAF_ENTRY, "ENTRY: CAddBuffer::AddNodeToBufferL;aUri=%s", aUri );
+    
+    CConnMoNodeElement* newNode = new (ELeave) CConnMoNodeElement();
+    
+    newNode->iUri.Copy( aUri );
+    newNode->iParentLUID.Copy( aLUID );
+    newNode->iObject.Copy( aObject );
+    newNode->iStatusRef = aStatusRef;
+    newNode->iProcessed = EFalse;
+    newNode->iLeaf = ETrue;
+    
+    iBuffer.AppendL( newNode );
+    OstTrace0( TRACE_NORMAL, CADDBUFFER_ADDNODETOBUFFERL_LEAF_EXIT, "EXIT: CAddBuffer::AddNodeToBufferL");
+    }
+
+//------------------------------------------------------------------------------
+// CAddBuffer::FindDynamicNode
+//------------------------------------------------------------------------------
+CConnMoNodeElement* CAddBuffer::FindDynamicNode( const TDesC8& aUri )
+    {
+    OstTraceExt1( TRACE_NORMAL, CADDBUFFER_FINDDYNAMICNODE_ENTRY, "ENTRY: CAddBuffer::FindDynamicNode;aUri=%s", aUri );
+
+    CConnMoNodeElement* resultNode = NULL;
+
+    for ( TInt i = 0; i < iBuffer.Count(); ++i )
+        {
+        if ( iBuffer[i]->iUri.Match(aUri) != KErrNotFound )
+            {
+            // 
+            TBuf8<KMaxFieldLength> dynamicNodeChildUri(aUri);
+            dynamicNodeChildUri.Append( KChildNodeWildCardPattern );
+            
+            if ( iBuffer[i]->iUri.Match( dynamicNodeChildUri ) == KErrNotFound )
+                {
+                // Correct dynamic node found.
+                OstTrace0( TRACE_NORMAL, 
+                           CADDBUFFER_FINDDYNAMICNODE_MATCH_FOUND, 
+                           "CAddBuffer::FindDynamicNode;Matching node found.");
+                resultNode = iBuffer[i];
+                break;
+                }
+            }
+        }
+	if ( resultNode != NULL )
+	    {
+        OstTraceExt1( TRACE_NORMAL, 
+                  CADDBUFFER_FINDDYNAMICNODE_EXIT, 
+                  "EXIT: CAddBuffer::FindDynamicNode;resultNode=%s", 
+                  resultNode->iUri );
+	    }
+    
+    return resultNode;
+    }
+    
+
+//------------------------------------------------------------------------------
+// CAddBuffer::Find
+//------------------------------------------------------------------------------
+CConnMoNodeElement* CAddBuffer::CacheFind( const TDesC8& aUri )
+    {
+    OstTraceExt1( TRACE_NORMAL, CADDBUFFER_CACHEFIND_ENTRY, "ENTRY: CAddBuffer::CacheFind;aUri=%s", aUri );
+    
+    CConnMoNodeElement* resultNode = NULL;
+
+    for ( TInt i = 0; i < iCache.Count(); ++i )
+        {
+        if ( iCache[i]->iUri.Match( aUri ) != KErrNotFound )
+            {
+            OstTrace0( TRACE_NORMAL, CADDBUFFER_CACHEFIND_MATCH_FOUND, "CAddBuffer::CacheFind; Matching URI found.");
+            resultNode = iCache[i];
+            
+            OstTraceExt1( TRACE_NORMAL, 
+                          CADDBUFFER_CACHEFIND_RESULT_NODE, 
+                          "CAddBuffer::CacheFind; resultNode=%s", 
+                          resultNode->iUri );
+            break;
+            }
+        }
+    
+    OstTrace0( TRACE_NORMAL, CADDBUFFER_CACHEFIND_EXIT, "EXIT: CAddBuffer::CacheFind");
+    return resultNode;
+    }
+
+//------------------------------------------------------------------------------
+// CAddBuffer::FindDynamicNode
+//------------------------------------------------------------------------------
+CConnMoNodeElement* CAddBuffer::CacheFindDynamicNode( const TDesC8& aUri )
+    {
+    OstTraceExt1( TRACE_NORMAL, CADDBUFFER_CACHEFINDDYNAMICNODE_ENTRY, "ENTRY: CAddBuffer::CacheFindDynamicNode;aUri=%s", aUri );
+    
+    CConnMoNodeElement* resultNode = NULL;
+
+    for ( TInt i = 0; i < iCache.Count(); ++i )
+        {
+        if ( iCache[i]->iUri.Match( aUri ) != KErrNotFound )
+            {
+            // 
+            TBuf8<KMaxFieldLength> dynamicNodeChildUri( aUri );
+            dynamicNodeChildUri.Append( KChildNodeWildCardPattern );
+            
+            if ( iCache[i]->iUri.Match(dynamicNodeChildUri) == KErrNotFound )
+                {
+                // Correct dynamic node found.
+                OstTrace0( TRACE_NORMAL, 
+                           CADDBUFFER_CACHEFINDDYNAMICNODE_MATCH_FOUND, 
+                           "CAddBuffer::CacheFindDynamicNode; Matching node found.");
+                          
+                resultNode = iCache[i];
+                break;
+                }
+            }
+        }
+    if ( resultNode != NULL )
+        {
+        OstTraceExt1( TRACE_NORMAL, 
+                  CADDBUFFER_CACHEFINDDYNAMICNODE_EXIT, 
+                  "EXIT: CAddBuffer::CacheFindDynamicNode;resultNode=%s", 
+                  resultNode->iUri );
+        }
+    
+    return resultNode;
+    }
+//------------------------------------------------------------------------------
+// CAddBuffer::AddNodeToBuffer()
+//------------------------------------------------------------------------------
+TInt CAddBuffer::GetGroup( const TDesC8& aRoot, RPointerArray<CConnMoNodeElement>* aGroup )
+    {
+    OstTraceExt1( TRACE_NORMAL, CADDBUFFER_GETGROUP_ENTRY, "ENTRY: CAddBuffer::GetGroup;aRoot=%s", aRoot );
+
+    iCache.Reset();
+    TInt retval( KErrNotFound );
+    TBool first = ETrue;
+    TBuf8<KSmlMaxURISegLen> groupTag;
+    groupTag.Copy( aRoot );
+    groupTag.Append( KChildNodeWildCardPattern );
+
+    for ( TInt i = 0; i < iBuffer.Count(); ++i )
+        {
+        if ( iBuffer[i]->iUri.Match( groupTag ) != KErrNotFound
+             && !iBuffer[i]->iProcessed )
+            {
+            if ( first )
+                {
+                groupTag.Insert( aRoot.Length(), KNodeSeparator );
+                groupTag.Insert( aRoot.Length() + 1, CUtils::GetSecondURISeg( iBuffer[i]->iUri ) );
+                first = EFalse;
+                retval = 0;
+                }
+            aGroup->Append(iBuffer[i]);
+            iCache.Append(iBuffer[i]);
+            retval++;
+            }
+        }
+    OstTrace1( TRACE_NORMAL, CADDBUFFER_GETGROUP_EXIT, "EXIT: CAddBuffer::GetGroup;retval=%d", retval );
+
+    return retval;
+    }
+//------------------------------------------------------------------------------
+// CAddBuffer::~CAddBuffer()
+//------------------------------------------------------------------------------
+void CAddBuffer::Reset()
+    {
+    OstTraceFunctionEntry0( CADDBUFFER_Reset_ENTRY );
+    
+    iBuffer.ResetAndDestroy();
+    
+    OstTraceFunctionExit0( CADDBUFFER_Reset_EXIT );
+    }
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/connmoadapter/src/BranchBase.cpp	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,220 @@
+/*
+ * ==============================================================================
+ * Copyright (c) 2009 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:
+ * 
+ * ==============================================================================
+ */
+
+#include <smldmadapter.h>
+#include <cdbcols.h>
+#include <cmpluginpacketdatadef.h>
+#include "BranchBase.h"
+
+#include "Utils.h"
+#include "OstTraceDefinitions.h"
+#ifdef OST_TRACE_COMPILER_IN_USE
+#include "BranchBaseTraces.h"
+#endif
+
+_LIT8( KCMProxyNodeSeparator,   "/" );
+
+
+
+// ======== LOCAL FUNCTIONS =========
+
+// ======== MEMBER FUNCTIONS ========
+// -------------------------------------------------------------------------------------
+// CBranchBase::CBranchBase()
+// -------------------------------------------------------------------------------------
+CBranchBase::CBranchBase()
+    {
+    OstTraceFunctionEntry0( CBRANCHBASE_CBRANCHBASE_ENTRY );
+    
+    OstTraceFunctionExit0( CBRANCHBASE_CBRANCHBASE_EXIT );
+    }
+// -------------------------------------------------------------------------------------
+// CBranchBase::CBranchBase
+// -------------------------------------------------------------------------------------
+CBranchBase::CBranchBase( MSmlDmCallback* aDmCallback )
+
+    {
+    OstTraceFunctionEntry0( CBRANCHBASE_CBRANCHBASE_2_ENTRY );
+    iCallback = aDmCallback;
+    OstTraceFunctionExit0( DUP1_CBRANCHBASE_CBRANCHBASE_2_EXIT );
+    }
+// -------------------------------------------------------------------------------------
+// CBranchBase::~CBranchBase()
+// -------------------------------------------------------------------------------------
+CBranchBase::~CBranchBase()
+    {
+    OstTraceFunctionEntry0( CBRANCHBASE_DELETE_ENTRY );
+    
+    OstTraceFunctionExit0( CBRANCHBASE_DELETE_EXIT );
+    }
+
+// -------------------------------------------------------------------------------------
+// CBranchBase::GetAllConnectionMethodsL()
+// Returns all connection methods
+// -------------------------------------------------------------------------------------
+void CBranchBase::GetAllConnectionMethodsL( RArray<TUint32>& aCmArray,
+                                           RCmManagerExt& aCmManager )
+    {
+    OstTraceFunctionEntry0( CBRANCHBASE_GETALLCONNECTIONMETHODSL_ENTRY );
+    
+    // Get all connection methods
+    TBool supportedBearersOnly = EFalse;
+    TBool legacyCmsOnly = EFalse;
+    TBool includeEasyWlan = EFalse;
+        
+    aCmManager.ConnectionMethodL( aCmArray, 
+                                 supportedBearersOnly,
+                                 legacyCmsOnly,
+                                 includeEasyWlan );
+    
+    RCmConnectionMethodExt cm;
+    
+    // Loop all connection methods and filter away everything else besides packet data.
+    // Other bearer types are not supported
+    for( TInt i = 0; i < aCmArray.Count(); i++ )
+        {
+        if ( GetConnectionMethodLC( aCmManager, cm, aCmArray[i] ) )
+            {
+            TUint bearerType = cm.GetIntAttributeL( CMManager::ECmBearerType );                      
+            
+            if( bearerType != KUidPacketDataBearerType )
+                {
+                // Non supported bearer type. Remove
+                aCmArray.Remove( i );
+                i--;              
+                }            
+            }        
+        CleanupStack::PopAndDestroy( &cm );
+        }
+    OstTrace1( TRACE_NORMAL, CBRANCHBASE_GETALLCONNECTIONMETHODSL_COUNT, "CBranchBase::GetAllConnectionMethodsL; Found %u connection methods.", aCmArray.Count() );
+    
+    OstTraceFunctionExit0( CBRANCHBASE_GETALLCONNECTIONMETHODSL_EXIT );
+    }
+
+//-----------------------------------------------------------------------------
+// TBool CBranchBase::CheckPreviousURIList()
+//-----------------------------------------------------------------------------
+TBool CBranchBase::CheckPreviousURIList( const CArrayFix<TSmlDmMappingInfo>& aPreviousURISegmentList,
+                                         const TUint32 aCmId,
+                                         TDes8& aURISeg )
+    {
+    OstTraceExt2( TRACE_NORMAL, CBRANCHBASE_CHECKPREVIOUSURILIST_ENTRY, "ENTRY: CBranchBase::CheckPreviousURIList;aURISeg=%s;aCmId=%u", aURISeg, aCmId );
+    
+    TBool retval = EFalse;
+    
+    for ( TInt i = 0; i < aPreviousURISegmentList.Count(); i++ )
+        {        
+        if ( CUtils::IntLUID( aPreviousURISegmentList.At(i).iURISegLUID ) == aCmId )
+            {
+            aURISeg.Copy( aPreviousURISegmentList.At(i).iURISeg );
+            retval = ETrue;
+            break;
+            }
+        }
+    OstTrace1( TRACE_NORMAL, CBRANCHBASE_CHECKPREVIOUSURILIST_EXIT, "EXIT: CBranchBase::CheckPreviousURIList;retval=%d", retval );
+    
+    return retval;
+    }
+
+
+//-----------------------------------------------------------------------------
+// CBranchBase::GetAllDynamicNodesL
+//-----------------------------------------------------------------------------
+void CBranchBase::GetAllDynamicNodesL( const TDesC8& aURI, 
+                                       const TDesC8& /*aLUID*/,
+                                       const CArrayFix<TSmlDmMappingInfo>& aPreviousURISegmentList,
+                                       TInt aResultsRef,
+                                       TInt aStatusRef,
+                                       RCmManagerExt& /*aCmManagerExt*/,
+                                       CBufBase& aCurrentURISegmentList,
+                                       const TDesC8& aField,
+                                       const TInt aNodeCount,
+                                       MSmlDmCallback* aCallback )
+    {
+    OstTraceExt3( TRACE_NORMAL, 
+                  CBRANCHBASE_GETALLDYNAMICNODESL_ENTRY, 
+                  "ENTRY: CBranchBase::GetAllDynamicNodesL;aURI=%s;aField=%s;aNodeCount=%d", 
+                  aURI, 
+                  aField, 
+                  aNodeCount );
+    
+    if ( aPreviousURISegmentList.Count() > 0 ) // Already mapped
+        {
+        for ( TInt i = 0; i < aPreviousURISegmentList.Count(); i++ )
+            {
+            aCurrentURISegmentList.InsertL( aCurrentURISegmentList.Size(), 
+                                            aPreviousURISegmentList.At(i).iURISeg );
+            aCurrentURISegmentList.InsertL( aCurrentURISegmentList.Size(), 
+                                            KCMProxyNodeSeparator );                
+            }
+        }
+    else
+        {
+        TBuf8<KSmlMaxURISegLen> addNodeName;
+   
+        // Generate as many nodes as defined
+        for ( TInt i = 1; i <= aNodeCount; i++ )
+            {
+            addNodeName.Format( _L8( "%s%d" ), aField.Ptr(), i );
+            aCurrentURISegmentList.InsertL( aCurrentURISegmentList.Size(), addNodeName );
+            aCurrentURISegmentList.InsertL( aCurrentURISegmentList.Size(), 
+                                            KCMProxyNodeSeparator );
+            }            
+       }
+    
+    aCallback->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
+    aCallback->SetResultsL( aResultsRef, aCurrentURISegmentList, KNullDesC8);
+    
+    OstTrace0( TRACE_NORMAL, 
+               CBRANCHBASE_GETALLDYNAMICNODESL_EXIT, 
+               "EXIT: CBranchBase::GetAllDynamicNodesL" );
+       
+    }
+
+//------------------------------------------------------------------------------
+//  TBool CBranchBase::GetConnectionMethodLC()
+//------------------------------------------------------------------------------ 
+TBool CBranchBase::GetConnectionMethodLC( RCmManagerExt& aCmManagerExt,
+                                          RCmConnectionMethodExt& aCm,
+                                          TUint32 aCmId )
+    {
+    OstTrace1( TRACE_NORMAL, CBRANCHBASE_GETCONNECTIONMETHODLC_ENTRY, "ENTRY: CBranchBase::GetConnectionMethodLC;aCmId=%d", aCmId );
+    TInt error( KErrNone );
+    
+    TRAP( error, aCm = aCmManagerExt.ConnectionMethodL( aCmId ) );
+    
+    CleanupClosePushL( aCm );
+    
+    if ( error != KErrNone )
+        {
+        OstTrace0( TRACE_NORMAL, 
+                   CBRANCHBASE_GETCONNECTIONMETHODLC_EXIT_NOT_FOUND, 
+                   "EXIT: CBranchBase::GetConnectionMethodLC;Connection Method NOT found: EFalse." );
+        return EFalse;
+        }
+    
+    OstTrace0( TRACE_NORMAL, 
+               CBRANCHBASE_GETCONNECTIONMETHODLC_EXIT_FOUND, 
+               "EXIT: CBranchBase::GetConnectionMethodLC;Connection Method FOUND: ETrue." );
+    
+    return ETrue;
+    }
+
+// ======== GLOBAL FUNCTIONS ========
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/connmoadapter/src/ConnMoAdapter.cpp	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,571 @@
+/*
+ * ==============================================================================
+ * Copyright (c) 2009 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:
+ * 
+ * ==============================================================================
+ */
+
+#include <e32base.h>
+#include <implementationproxy.h> // For TImplementationProxy definition
+#include <cmmanagerext.h> 
+
+#include "nsmldebug.h"
+#include "ConnMoAdapter.h"
+#include "Utils.h"
+#include "BranchBase.h"
+#include "NapBranch.h" 
+#include "ProxyBranch.h"
+#include "AddBuffer.h" 
+#include "OstTraceDefinitions.h"
+#ifdef OST_TRACE_COMPILER_IN_USE
+#include "ConnMoAdapterTraces.h"
+#endif
+
+// ------------------------------------------------------------------------------------------------
+// Constants
+// ------------------------------------------------------------------------------------------------
+// DDF version number
+_LIT8( KConnMoAdapterDDFversion,    "1.0");
+
+// URI base for ConnMo Nodes
+_LIT8( KConnMoBase,                 "");
+
+// ======== LOCAL FUNCTIONS =========
+
+CBranchBase* CConnMoAdapter::GetBranch( const TDesC8& aUri )
+    {
+    TDesC8 connMoBase( KConnMoBase );
+    CBranchBase* retval = NULL;
+        
+    TPtrC8 connMoTree = 
+        ( CUtils::GetEndOfURIFromSeg( aUri, KConnMoBase )).Mid( connMoBase.Size() );
+        
+    if ( CUtils::GetFirstURISeg( connMoTree ).Match( KCMDdfNAP )!= KErrNotFound )
+        {
+        retval = iNapBranch;
+        }
+    else if ( CUtils::GetFirstURISeg( connMoTree ).Match( KCMDdfProxy )!= KErrNotFound )
+        {
+        retval = iProxyBranch;
+        }
+    return retval;
+    }
+
+// -------------------------------------------------------------------------------------
+// CConnMoAdapter::AddBaseUriL( )
+// Handles addition of possible base URI to ConnMO DDF structure
+// -------------------------------------------------------------------------------------
+MSmlDmDDFObject& CConnMoAdapter::AddBaseUriL( MSmlDmDDFObject& aRootDDF )
+    {
+    OstTraceFunctionEntry0( CCONNMOADAPTER_ADDBASEURIL_ENTRY );
+    
+    TDesC8 base(KConnMoBase);
+    
+    if ( base.Size() > 0)
+        {
+    
+        // Set rest acceptable operations for data itself     
+        TSmlDmAccessTypes aclTypesOnlyGet;
+        aclTypesOnlyGet.SetGet();
+        
+        MSmlDmDDFObject& ddf = aRootDDF.AddChildObjectL( KConnMoBase ); // CMO
+
+        _LIT8( KDescription, "ConnMo DDF description" );
+        _LIT8( KDFTitle, "ConnMo Settings Base Node" );
+    
+        CUtils::FillNodeInfoL( ddf, 
+                   aclTypesOnlyGet, 
+                   MSmlDmDDFObject::EOne, 
+                   MSmlDmDDFObject::EPermanent, 
+                   MSmlDmDDFObject::ENode, 
+                   KDescription );
+                   
+        ddf.SetDFTitleL( KDFTitle );
+        ddf.SetDefaultValueL( KNullDesC8 );
+        OstTraceFunctionExit0( CCONNMOADAPTER_ADDBASEURIL_EXIT );
+        return ddf;
+        }
+    else
+        {
+        OstTraceFunctionExit0( CCONNMOADAPTER_ADDBASEURIL_EXIT_2 );
+        return aRootDDF;
+        }    
+    
+    }
+// -------------------------------------------------------------------------------------
+// CConnMoAdapter::AddBranchL( )
+// Adds dynamic branch to given root node with given name
+// -------------------------------------------------------------------------------------
+MSmlDmDDFObject& CConnMoAdapter::AddBranchL( MSmlDmDDFObject& aRootDDF, 
+                                            const TDesC8& aNodeName )
+    {
+    OstTraceExt1( TRACE_NORMAL, CCONNMOADAPTER_ADDBRANCHL_ENTRY, "ENTRY: CConnMoAdapter::AddBranchL;aNodeName=%s", aNodeName );
+    
+    // Set rest acceptable operations for data itself     
+    TSmlDmAccessTypes aclTypesOnlyGet;
+    aclTypesOnlyGet.SetGet();
+
+    TSmlDmAccessTypes aclTypesAll;
+    aclTypesAll.SetGet();
+    aclTypesAll.SetReplace();
+    aclTypesAll.SetAdd();
+    aclTypesAll.SetDelete();
+    
+    TSmlDmAccessTypes aclTypesNoDelete;
+    aclTypesNoDelete.SetGet();
+    aclTypesNoDelete.SetReplace();
+    aclTypesNoDelete.SetAdd();
+    
+    MSmlDmDDFObject& nChildRootDdf = aRootDDF.AddChildObjectL( aNodeName ); // Node
+    CUtils::FillNodeInfoL( nChildRootDdf, 
+                           aclTypesOnlyGet, 
+                           MSmlDmDDFObject::EOne,
+                           MSmlDmDDFObject::EPermanent, 
+                           MSmlDmDDFObject::ENode, 
+                           KNullDesC8 );
+    
+    MSmlDmDDFObject& nChildDdf = nChildRootDdf.AddChildObjectGroupL();  // Node/<X>  
+    if ( aNodeName == KCMDdfNAP )
+        {      
+        CUtils::FillNodeInfoL( nChildDdf, 
+                               aclTypesAll, 
+                               MSmlDmDDFObject::EZeroOrMore, 
+                               MSmlDmDDFObject::EDynamic, 
+                               MSmlDmDDFObject::ENode, 
+                               KNullDesC8 );
+        }
+    else
+        {  
+        CUtils::FillNodeInfoL( nChildDdf, 
+                               aclTypesNoDelete, 
+                               MSmlDmDDFObject::EZeroOrMore, 
+                               MSmlDmDDFObject::EDynamic, 
+                               MSmlDmDDFObject::ENode, 
+                               KNullDesC8 );
+        }
+    OstTrace0( TRACE_NORMAL, CCONNMOADAPTER_ADDBRANCHL_EXIT, "EXIT: CConnMoAdapter::AddBranchL" );
+    return nChildDdf;
+    }
+
+// ======== MEMBER FUNCTIONS ========
+//-----------------------------------------------------------------------------
+// CConnMoAdapter* CConnMoAdapter::NewL( )
+//-----------------------------------------------------------------------------
+CConnMoAdapter* CConnMoAdapter::NewL( MSmlDmCallback* aDmCallback )
+    {
+    OstTraceFunctionEntry0( CCONNMOADAPTER_NEWL_ENTRY );
+
+    CConnMoAdapter* self = CConnMoAdapter::NewLC( aDmCallback );
+    CleanupStack::Pop();
+
+    OstTraceFunctionExit1( CCONNMOADAPTER_NEWL_EXIT, ( TUint )( self ) );
+    return self;
+    }
+
+//-----------------------------------------------------------------------------
+// CConnMoAdapter* CConnMoAdapter::NewLC( )
+//-----------------------------------------------------------------------------
+CConnMoAdapter* CConnMoAdapter::NewLC( MSmlDmCallback* aDmCallback )
+    {
+    OstTraceFunctionEntry0( CCONNMOADAPTER_NEWLC_ENTRY );
+       
+    CConnMoAdapter* self = new ( ELeave ) CConnMoAdapter( aDmCallback );
+    CleanupStack::PushL( self );
+
+    self->iCallBack = aDmCallback;
+    self->ConstructL();
+
+    OstTraceFunctionExit1( CCONNMOADAPTER_NEWLC_EXIT, ( TUint )( self ) );
+    return self;
+    }
+
+//------------------------------------------------------------------------------
+// CConnMoAdapter::CConnMoAdapter()
+//------------------------------------------------------------------------------
+CConnMoAdapter::CConnMoAdapter( TAny* aEcomArguments ) 
+    : CSmlDmAdapter( aEcomArguments )
+    {
+    OstTraceFunctionEntry0( CCONNMOADAPTER_CCONNMOADAPTER_ENTRY );
+    
+    OstTraceFunctionExit0( CCONNMOADAPTER_CCONNMOADAPTER_EXIT );
+    }
+
+//------------------------------------------------------------------------------
+// CConnMoAdapter::~CConnMoAdapter()
+//------------------------------------------------------------------------------
+CConnMoAdapter::~CConnMoAdapter()
+    {
+    OstTraceFunctionEntry0( CCONNMOADAPTER_DELETE_ENTRY );
+    
+    delete iBuffer;
+    delete iNapBranch;
+    delete iProxyBranch;
+    iCmManager.Close();
+
+    OstTraceFunctionExit0( CCONNMOADAPTER_DELETE_EXIT );
+    }
+
+//=============================================
+//      CConnMoAdapter::ConstructL()
+//      Second phase constructor.
+//=============================================
+void CConnMoAdapter::ConstructL()
+    {
+    OstTraceFunctionEntry0( CCONNMOADAPTER_CONSTRUCTL_ENTRY );  
+    
+    iCmManager.OpenL();
+       
+    iBuffer = CAddBuffer::NewL();
+    iNapBranch = CNapBranch::NewL( iCallBack, iBuffer, &iCmManager );
+    iProxyBranch = CProxyBranch::NewL( iCallBack, iBuffer, &iCmManager );
+    
+    OstTraceFunctionExit0( CCONNMOADAPTER_CONSTRUCTL_EXIT );
+    }
+
+void CConnMoAdapter::DDFVersionL( CBufBase& aDDFVersion )
+    {
+    OstTraceFunctionEntry0( CCONNMOADAPTER_DDFVERSIONL_ENTRY );
+    
+    aDDFVersion.InsertL( 0, KConnMoAdapterDDFversion );
+    
+    OstTraceFunctionExit0( CCONNMOADAPTER_DDFVERSIONL_EXIT );
+    }
+
+//------------------------------------------------------------------------------
+//  void CConnMoAdapter::DDFStructureL()
+//------------------------------------------------------------------------------
+void CConnMoAdapter::DDFStructureL( MSmlDmDDFObject& aDDF )
+    {
+    OstTraceFunctionEntry0( CCONNMOADAPTER_DDFSTRUCTUREL_ENTRY );
+    
+    // Insert Base URI in the beginning of the tree
+    MSmlDmDDFObject& ddf = AddBaseUriL( aDDF);
+    
+    // NAP Branch
+    MSmlDmDDFObject& nNapDdf = AddBranchL( ddf, KCMDdfNAP );
+    iNapBranch->DDFStructureL( nNapDdf );
+    
+    // Proxy Branch
+    MSmlDmDDFObject& nProxyDdf = AddBranchL( ddf, KCMDdfProxy );
+    iProxyBranch->DDFStructureL( nProxyDdf );
+    
+    OstTraceFunctionExit0( CCONNMOADAPTER_DDFSTRUCTUREL_EXIT );
+    }
+    
+void CConnMoAdapter::UpdateLeafObjectL( const TDesC8& aURI, 
+                                        const TDesC8& aLUID,
+                                        const TDesC8& aObject, 
+                                        const TDesC8& aType,
+                                        TInt aStatusRef )
+    {
+    OstTraceExt1( TRACE_NORMAL, CCONNMOADAPTER_UPDATELEAFOBJECTL_ENTRY, "ENTRY: CConnMoAdapter::UpdateLeafObjectL;aURI=%s", aURI );
+    
+    CBranchBase* implementation = GetBranch( aURI ); 
+    
+    implementation->UpdateLeafObjectL( aURI, aLUID, aObject, aType, aStatusRef );
+
+    OstTrace0( TRACE_NORMAL, CCONNMOADAPTER_UPDATELEAFOBJECTL_EXIT, "EXIT: CConnMoAdapter::UpdateLeafObjectL" );
+    }
+
+//------------------------------------------------------------------------------
+// void CConnMoAdapter::UpdateLeafObjectL
+//------------------------------------------------------------------------------
+void CConnMoAdapter::UpdateLeafObjectL( const TDesC8& /*aURI*/, 
+                                        const TDesC8& /*aLUID*/,
+                                        RWriteStream*& /*aStream*/, 
+                                        const TDesC8& /*aType*/,
+                                        TInt aStatusRef )
+    {
+    OstTraceFunctionEntry0( CCONNMOADAPTER_UPDATELEAFOBJECTL_STREAM_ENTRY );
+    
+    iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
+    OstTrace0( TRACE_NORMAL, 
+               CCONNMOADAPTER_UPDATELEAFOBJECTL_STREAM_UNSUPPORTED_METHOD_CALL, 
+               "CConnMoAdapter::UpdateLeafObjectL;Unsupported method call. CSmlDmAdapter::EError." );
+   
+    OstTraceFunctionExit0( CCONNMOADAPTER_UPDATELEAFOBJECTL_STREAM_EXIT );
+    }
+
+//------------------------------------------------------------------------------
+// void CConnMoAdapter::DeleteObjectL
+//------------------------------------------------------------------------------
+void CConnMoAdapter::DeleteObjectL( const TDesC8& aURI, 
+                                    const TDesC8& aLUID,
+                                    TInt aStatusRef )
+    {
+    OstTraceExt1( TRACE_NORMAL, CCONNMOADAPTER_DELETEOBJECTL_ENTRY, "ENTRY: CConnMoAdapter::DeleteObjectL;aURI=%s", aURI );
+
+    CBranchBase* implementation = GetBranch( aURI ); 
+    
+    implementation->DeleteObjectL( aURI, aLUID, aStatusRef );
+    
+    OstTrace0( TRACE_NORMAL, CCONNMOADAPTER_DELETEOBJECTL_EXIT, "EXIT: CConnMoAdapter::DeleteObjectL" );
+    }
+
+//------------------------------------------------------------------------------
+// void CConnMoAdapter::FetchLeafObjectL
+//------------------------------------------------------------------------------
+void CConnMoAdapter::FetchLeafObjectL( const TDesC8& aURI, 
+                                       const TDesC8& aLUID,
+                                       const TDesC8& aType, 
+                                       TInt aResultsRef,
+                                       TInt aStatusRef )
+    {
+    OstTraceExt1( TRACE_NORMAL, CCONNMOADAPTER_FETCHLEAFOBJECTL_ENTRY, "ENTRY: CConnMoAdapter::FetchLeafObjectL;aURI=%s", aURI );
+    
+    CBranchBase* implementation = GetBranch( aURI ); 
+    
+    implementation->FetchLeafObjectL( aURI, aLUID, aType, aResultsRef, aStatusRef );
+       
+    OstTrace0( TRACE_NORMAL, CCONNMOADAPTER_FETCHLEAFOBJECTL_EXIT, "EXIT: CConnMoAdapter::FetchLeafObjectL" );
+    }
+
+//------------------------------------------------------------------------------
+// void CConnMoAdapter::FetchLeafObjectSizeL
+//------------------------------------------------------------------------------
+void CConnMoAdapter::FetchLeafObjectSizeL( const TDesC8& aURI, 
+                                           const TDesC8& aLUID,
+                                           const TDesC8& aType, 
+                                           TInt aResultsRef,
+                                           TInt aStatusRef )
+    {
+    OstTraceExt1( TRACE_NORMAL, CCONNMOADAPTER_FETCHLEAFOBJECTSIZEL_ENTRY, "ENTRY: CConnMoAdapter::FetchLeafObjectSizeL;aURI=%s", aURI );
+    
+    CBranchBase* implementation = GetBranch( aURI ); 
+    
+    implementation->FetchLeafObjectSizeL( aURI, 
+                                          aLUID, 
+                                          aType, 
+                                          aResultsRef, 
+                                          aStatusRef );
+    
+    OstTrace0( TRACE_NORMAL, CCONNMOADAPTER_FETCHLEAFOBJECTSIZEL_EXIT, "EXIT: CConnMoAdapter::FetchLeafObjectSizeL" );
+    }
+
+//------------------------------------------------------------------------------
+// CConnMoAdapter::ChildURIListL
+// Return childs of the requested node.
+//------------------------------------------------------------------------------
+void CConnMoAdapter::ChildURIListL( const TDesC8& aURI, 
+                        const TDesC8& aLUID,
+                        const CArrayFix<TSmlDmMappingInfo>& aPreviousURISegmentList,
+                        TInt aResultsRef,
+						TInt aStatusRef )
+    {
+    OstTraceExt1( TRACE_NORMAL, CCONNMOADAPTER_CHILDURILISTL_ENTRY, "ENTRY: CConnMoAdapter::ChildURIListL;aURI=%s", aURI );
+    
+    CBranchBase* implementation = GetBranch( aURI ); 
+    
+    implementation->ChildURIListL( aURI, aLUID, aPreviousURISegmentList, 
+                                   aResultsRef, aStatusRef );
+
+    
+    OstTrace0( TRACE_NORMAL, CCONNMOADAPTER_CHILDURILISTL_EXIT, "EXIT: CConnMoAdapter::ChildURIListL" );
+    }
+    
+//------------------------------------------------------------------------------
+// CConnMoAdapter::AddNodeObjectL
+//------------------------------------------------------------------------------
+void CConnMoAdapter::AddNodeObjectL( const TDesC8& aURI, 
+                                     const TDesC8& aParentLUID,
+                                     TInt aStatusRef )
+    {
+    OstTraceExt1( TRACE_NORMAL, CCONNMOADAPTER_ADDNODEOBJECTL_ENTRY, "ENTRY: CConnMoAdapter::AddNodeObjectL;aURI=%s", aURI );
+    
+    CBranchBase* implementation = GetBranch( aURI ); 
+    
+    implementation->AddNodeObjectL( aURI, aParentLUID, aStatusRef );
+
+    OstTrace0( TRACE_NORMAL, CCONNMOADAPTER_ADDNODEOBJECTL_EXIT, "EXIT: CConnMoAdapter::AddNodeObjectL" );
+    }
+
+//------------------------------------------------------------------------------
+// CConnMoAdapter::ExecuteCommandL
+// Not supported. Returns EError.
+//------------------------------------------------------------------------------
+void CConnMoAdapter::ExecuteCommandL( const TDesC8& /*aURI*/, 
+                                      const TDesC8& /*aLUID*/,
+                                      const TDesC8& /*aArgument*/, 
+                                      const TDesC8& /*aType*/,
+                                      TInt aStatusRef )
+    {
+    OstTraceFunctionEntry0( CCONNMOADAPTER_EXECUTECOMMANDL_ENTRY );
+    
+    iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
+
+    OstTrace0( TRACE_NORMAL, 
+               CCONNMOADAPTER_EXECUTECOMMANDL_UNSUPPORTED_METHOD_CALL, 
+               "CConnMoAdapter::ExecuteCommandL;Unsupported method call. CSmlDmAdapter::EError." );
+
+    OstTraceFunctionExit0( CCONNMOADAPTER_EXECUTECOMMANDL_EXIT );
+    }
+
+//------------------------------------------------------------------------------
+// CConnMoAdapter::ExecuteCommandL
+// Not supported. Returns EError.
+//------------------------------------------------------------------------------
+void CConnMoAdapter::ExecuteCommandL( const TDesC8& /*aURI*/, 
+                                      const TDesC8& /*aLUID*/,
+                                      RWriteStream*& /*aStream*/, 
+                                      const TDesC8& /*aType*/,
+                                      TInt aStatusRef )
+    {
+    OstTraceFunctionEntry0( CCONNMOADAPTER_EXECUTECOMMANDL_STREAM_ENTRY );
+    
+    iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
+    
+    OstTrace0( TRACE_NORMAL, 
+               CCONNMOADAPTER_EXECUTECOMMANDL_STREAM_UNSUPPORTED_METHOD_CALL, 
+               "CConnMoAdapter::ExecuteCommandL;Unsupported method call. CSmlDmAdapter::EError." );
+    
+    OstTraceFunctionExit0( CCONNMOADAPTER_EXECUTECOMMANDL_STREAM_EXIT );
+    }
+
+//------------------------------------------------------------------------------
+// CConnMoAdapter::CopyCommandL
+// Not supported. Returns EError.
+//------------------------------------------------------------------------------
+void CConnMoAdapter::CopyCommandL( const TDesC8& /*aTargetURI*/, 
+                                   const TDesC8& /*aTargetLUID*/,
+                                   const TDesC8& /*aSourceURI*/, 
+                                   const TDesC8& /*aSourceLUID*/,
+                                   const TDesC8& /*aType*/, 
+                                   TInt aStatusRef )
+    {
+    OstTraceFunctionEntry0( CCONNMOADAPTER_COPYCOMMANDL_ENTRY );
+    
+    iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
+
+    OstTrace0( TRACE_NORMAL, 
+               CCONNMOADAPTER_COPYCOMMANDL_UNSUPPORTED_METHOD_CALL, 
+               "CConnMoAdapter::CopyCommandL;Unsupported method call. CSmlDmAdapter::EError." );
+    
+    OstTraceFunctionExit0( CCONNMOADAPTER_COPYCOMMANDL_EXIT );
+    }
+
+//------------------------------------------------------------------------------
+// CConnMoAdapter::StartAtomicL
+// Not supported.
+//------------------------------------------------------------------------------
+void CConnMoAdapter::StartAtomicL()
+    {
+    OstTraceFunctionEntry0( CCONNMOADAPTER_STARTATOMICL_ENTRY );
+    
+    OstTrace0( TRACE_NORMAL, 
+               CCONNMOADAPTER_STARTATOMICL_UNSUPPORTED_METHOD_CALL, 
+               "CConnMoAdapter::StartAtomicL;Unsupported method call." );
+
+    OstTraceFunctionExit0( CCONNMOADAPTER_STARTATOMICL_EXIT );
+    }
+
+//------------------------------------------------------------------------------
+// CConnMoAdapter::CommitAtomicL
+// Not supported.
+//------------------------------------------------------------------------------
+void CConnMoAdapter::CommitAtomicL()
+    {
+    OstTraceFunctionEntry0( CCONNMOADAPTER_COMMITATOMICL_ENTRY );
+
+    OstTrace0( TRACE_NORMAL, 
+               CCONNMOADAPTER_COMMITATOMICL_UNSUPPORTED_METHOD_CALL, 
+               "CConnMoAdapter::CommitAtomicL;Unsupported method call." );
+    
+    OstTraceFunctionExit0( CCONNMOADAPTER_COMMITATOMICL_EXIT );
+    }
+
+//------------------------------------------------------------------------------
+// CConnMoAdapter::RollbackAtomicL
+// Not supported.
+//------------------------------------------------------------------------------
+void CConnMoAdapter::RollbackAtomicL()
+    {
+    OstTraceFunctionEntry0( CCONNMOADAPTER_ROLLBACKATOMICL_ENTRY );
+
+    OstTrace0( TRACE_NORMAL, 
+               CCONNMOADAPTER_ROLLBACKATOMICL_UNSUPPORTED_METHOD_CALL, 
+               "CConnMoAdapter::RollbackAtomicL;Unsupported method call." );
+    
+    OstTraceFunctionExit0( CCONNMOADAPTER_ROLLBACKATOMICL_EXIT );
+    }
+
+//------------------------------------------------------------------------------
+// CConnMoAdapter::StreamingSupport
+// Not supported. Returns EFalse.
+//------------------------------------------------------------------------------
+TBool CConnMoAdapter::StreamingSupport( TInt& /*aItemSize*/ )
+    {
+    OstTraceFunctionEntry0( CCONNMOADAPTER_STREAMINGSUPPORT_ENTRY );
+
+    
+    OstTrace0( TRACE_NORMAL, 
+               CCONNMOADAPTER_STREAMINGSUPPORT_NOT_SUPPORTED, 
+               "CConnMoAdapter::StreamingSupport;Not supported." );
+    
+    OstTraceFunctionExitExt( CCONNMOADAPTER_STREAMINGSUPPORT_EXIT, this, EFalse );
+    return EFalse;
+    }
+
+//------------------------------------------------------------------------------
+// CConnMoAdapter::StreamCommittedL
+// Not supported. Returns EError.
+//------------------------------------------------------------------------------
+void CConnMoAdapter::StreamCommittedL()
+    {
+    OstTraceFunctionEntry0( CCONNMOADAPTER_STREAMCOMMITTEDL_ENTRY);
+    
+    OstTrace0( TRACE_NORMAL, 
+               CCONNMOADAPTER_STREAMCOMMMITTEDL_UNSUPPORTED_METHOD_CALL, 
+               "CConnMoAdapter::StreamCommittedL;Unsupported method call." );
+
+    OstTraceFunctionExit0( CCONNMOADAPTER_STREAMCOMMITTEDL_EXIT );
+    }
+
+void CConnMoAdapter::CompleteOutstandingCmdsL()
+    {
+    OstTraceFunctionEntry0( CCONNMOADAPTER_COMPLETEOUTSTANDINGCMDSL_ENTRY );
+    
+    iNapBranch->ProcessBufferL();
+    iProxyBranch->ProcessBufferL();
+    
+    iBuffer->Reset();
+    
+    OstTraceFunctionExit0( CCONNMOADAPTER_COMPLETEOUTSTANDINGCMDSL_EXIT );
+    }
+
+// ======== GLOBAL FUNCTIONS ========
+//------------------------------------------------------------------------------
+//
+//------------------------------------------------------------------------------
+#ifndef IMPLEMENTATION_PROXY_ENTRY
+#define IMPLEMENTATION_PROXY_ENTRY( aUid, aFuncPtr )  {{aUid},(aFuncPtr)}
+#endif
+
+const TImplementationProxy ImplementationTable[] = 
+    {
+    IMPLEMENTATION_PROXY_ENTRY(KConnMoAdapterUid, CConnMoAdapter::NewL)
+    };
+
+//------------------------------------------------------------------------------
+// TImplementationProxy* ImplementationGroupProxy()
+//------------------------------------------------------------------------------
+EXPORT_C const TImplementationProxy* ImplementationGroupProxy( TInt& aTableCount )
+    {
+    OstTraceFunctionEntry1( CONNMOADAPTER_IMPLEMENTATIONGROUPPROXY_ENTRY, aTableCount );
+
+    aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
+
+    OstTraceFunctionExit0( CONNMOADAPTER_IMPLEMENTATIONGROUPPROXY_EXIT );
+    return ImplementationTable;
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/connmoadapter/src/ConnMoAdapter.rss	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,42 @@
+/** @file
+* Copyright (c) 2009 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:  ConnMO resources
+*
+*/
+
+#include <registryinfo.rh>
+#include "nsmldmconstants.h"
+
+RESOURCE REGISTRY_INFO theRegistryInfo
+  {
+  dll_uid = 0x2001FE5E; //The DLL's 3rd UID.
+  interfaces = 
+      {
+      INTERFACE_INFO
+          {
+          interface_uid = KNSmlDMInterfaceUid; // DM interface UID
+          implementations = 
+            {
+            IMPLEMENTATION_INFO
+                {
+                implementation_uid = 0x2001FE5F; // DM ConnMO Adapter
+                version_no = 1; 
+                display_name = "";
+                default_data = "";
+                opaque_data = "";
+                }
+            };
+          }
+      };
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/connmoadapter/src/Luid.cpp	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,78 @@
+/*
+ * ==============================================================================
+ * Copyright (c) 2009 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:
+ * 
+ * ==============================================================================
+ */
+
+#include "Luid.h"
+#include "OstTraceDefinitions.h"
+#ifdef OST_TRACE_COMPILER_IN_USE
+#include "LuidTraces.h"
+#endif
+
+
+// ======== LOCAL FUNCTIONS =========
+
+// ======== MEMBER FUNCTIONS ========
+
+//------------------------------------------------------------------------------
+// TLuid::TLuid()
+//------------------------------------------------------------------------------
+TLuid::TLuid() 
+    {
+
+    }
+
+//------------------------------------------------------------------------------
+// TLuid::TLuid()
+//------------------------------------------------------------------------------
+TLuid::TLuid( const TDesC8& aName, const TUint32 aCmId ) 
+    {
+    OstTraceExt2( TRACE_NORMAL, TLUID_TLUID, "ENTRY: TLuid::TLuid;aName=%s;aCmId=%u", aName, aCmId );
+    
+    iName = aName;
+    iCmId = aCmId;
+    }
+
+//------------------------------------------------------------------------------
+// TLuid::Equals()
+//------------------------------------------------------------------------------
+TBool TLuid::Equals( TUint32 aId ) const
+    {
+    OstTraceFunctionEntry1( TLUID_EQUALS_ENTRY, this );
+    if ( aId == iCmId)
+        {
+        OstTraceFunctionExitExt( TLUID_EQUALS_EXIT, this, ETrue );
+        return ETrue;
+        }
+    else
+        {
+        OstTraceFunctionExitExt( DUP1_TLUID_EQUALS_EXIT, this, EFalse );
+        return EFalse;
+        }
+    }
+
+//------------------------------------------------------------------------------
+// TLuid::GetCmId()
+//------------------------------------------------------------------------------
+TUint32 TLuid::GetCmId()
+    {
+    OstTrace1( TRACE_NORMAL, TLUID_GETCMID, "TLuid::GetCmId;iCmId=%u", iCmId );
+    
+    return iCmId;
+    }
+
+// ======== GLOBAL FUNCTIONS ========  
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/connmoadapter/src/NapBranch.cpp	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,1350 @@
+/*
+ * ==============================================================================
+ * Copyright (c) 2009 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:
+ * 
+ * ==============================================================================
+ */
+#include <featmgr.h>
+#include <cmmanagerext.h> 
+#include <cmpluginpacketdatadef.h>
+#include <cmpluginwlandef.h>
+#include <cmconnectionmethoddef.h>
+#include <nsmldmtreedbclient.h>
+#include "NapBranch.h"
+#include "Utils.h"
+#include "AddBuffer.h"
+#include "OstTraceDefinitions.h"
+#ifdef OST_TRACE_COMPILER_IN_USE
+#include "NapBranchTraces.h"
+#endif
+// ------------------------------------------------------------------------------------------------
+// Constants
+// ------------------------------------------------------------------------------------------------
+// NAP Branch
+_LIT8( KCMDdfID, "ID" );
+_LIT8( KCMDdfName, "Name" );
+_LIT8( KCMDdfAddrType, "AddrType" );
+_LIT8( KCMDdfAddr, "Addr" );
+_LIT8( KCMDdfIP, "IP" );
+_LIT8( KCMDdfAuthInfo, "AuthInfo" );
+_LIT8( KCMDdfAuthType, "AuthType" );
+_LIT8( KCMDdfBearerType, "BearerType" );
+_LIT8( KCMDdfBearerParams, "BearerParams" );
+_LIT8( KCMDdfIPv4, "IPv4" );
+_LIT8( KCMDdfAutoConfig, "AutoConfig" );
+_LIT8( KCMDdfIPAddr, "IPAddr" );
+_LIT8( KCMDdfNetMask, "NetMask" );
+_LIT8( KCMDdfGateway, "Gateway" );
+_LIT8( KCMDdfAutoDNS, "AutoDNS" );
+_LIT8( KCMDdfDNS, "DNS" );
+_LIT8( KCMDdfServers, "Servers" );
+_LIT8( KCMDdfServer, "Server" );
+_LIT8( KCMDdfAuthName, "AuthName" );
+_LIT8( KCMDdfAuthSecret, "AuthSecret" );
+// NAP Child URI List
+_LIT8( KCMNapFields, "ID/Name/AddrType/Addr/IP/AuthInfo/BearerType" );
+_LIT8( KCMNIPFields, "IPv4" );
+_LIT8( KCMNIPv4Fields, "AutoConfig/IPAddr/NetMask/Gateway/AutoDNS/DNS" );
+_LIT8( KCMNDNSFields, "Servers" );
+_LIT8( KCMNAuthInfoFields, "AuthType/AuthName/AuthSecret" );
+_LIT8( KCMNDNSServersFields, "Addr");
+_LIT8( KSlash, "/" );
+_LIT8( KDynamicNapNode, "NAP/*" );
+_LIT8( KDynamicNapNodeChildUri, "NAP/*/*" );
+_LIT8( KDynamicIPNode, "NAP/*/IP" );
+_LIT8( KDynamicIPNodeChildUri, "NAP/*/IP/*" );
+_LIT8( KDynamicIPv4Node, "NAP/*/IP/IPv4" );
+_LIT8( KDynamicIPv4NodeChildUri, "NAP/*/IP/IPv4/*" );
+_LIT8( KDynamicIPv4DnsNode, "NAP/*/IP/IPv4/DNS" );
+_LIT8( KDynamicIPv4DnsNodeChildUri, "NAP/*/IP/IPv4/DNS/*" );
+_LIT8( KDynamicIPv4DnsServersNode, "NAP/*/IP/IPv4/DNS/Servers" );
+_LIT8( KDynamicIPv4DnsServersNodeChildUri, "NAP/*/IP/IPv4/DNS/Servers/*" );
+_LIT8( KDynamicIPv4DnsServersNodeChildUriNodes, "NAP/*/IP/IPv4/DNS/Servers/*/*");
+_LIT8( KDynamicAuthInfoNode, "NAP/*/AuthInfo");
+_LIT8( KDynamicAuthInfoNodeChildUri, "NAP/*/AuthInfo/*");
+_LIT8( KNapBearerTypeUri, "NAP/*/BearerType");
+_LIT8( KNapAddrUri, "NAP/*/Addr");
+_LIT8( KNapDNSAddr1Uri, "NAP/*/Server1/Addr");
+_LIT8( KNapDNSAddr2Uri, "NAP/*/Server2/Addr");
+_LIT8( KNapIPv4AddrUri, "NAP/*/IPv4/*Addr");
+_LIT8( KPacketDataBearerType, "3GPPPS");
+_LIT8( KGPRSAddrType, "APN");
+_LIT8( KGPRSAuthType, "PAP");
+
+
+TInt const KInvalidBearerType = 0;
+TInt const KBufferExpandSize = 128;
+TInt const KNumOfNAPNodes = 8;
+TInt const KMaxResultSize = 64;
+TInt const KMaxDnsAddr = 2;
+_LIT8( KFalse, "False");
+_LIT8( KTrue, "True");
+
+_LIT8( KDynamicNodePrefix, "NAPId" );
+
+// ======== LOCAL FUNCTIONS =========
+//-----------------------------------------------------------------------------
+// TUint32 CNapBranch::CheckForUnmodifiableFieldL()
+//-----------------------------------------------------------------------------
+CSmlDmAdapter::TError CNapBranch::GetUnmodifiableFieldValueL(
+        const TDesC8& aUri, CBufBase* aResult)
+    {
+    OstTraceExt1( TRACE_NORMAL, CNAPBRANCH_GETUNMODIFIABLEFIELDVALUEL_ENTRY,
+            "ENTRY: CNapBranch::GetUnmodifiableFieldValueL;aUri=%s", aUri );
+
+    CSmlDmAdapter::TError retval( CSmlDmAdapter::ENotFound );
+    TPtrC8 nodeName = CUtils::GetLastURISeg( aUri );
+
+    if ( nodeName.Match( KCMDdfAddrType ) != KErrNotFound )
+        {
+        aResult->InsertL( 0, KGPRSAddrType );
+        retval = CSmlDmAdapter::EOk;
+        }
+    else if ( nodeName.Match( KCMDdfBearerType ) != KErrNotFound )
+        {
+        aResult->InsertL( 0, KPacketDataBearerType );
+        retval = CSmlDmAdapter::EOk;
+        }
+    else if ( nodeName.Match( KCMDdfAuthType ) != KErrNotFound )
+        {
+        aResult->InsertL( 0, KGPRSAuthType );
+        retval = CSmlDmAdapter::EOk;
+        }
+    else if ( nodeName.Match( KCMDdfID ) != KErrNotFound )
+        {
+        TPtrC8 dynamicNode = GetDynamicNAPNodeUri( aUri );
+        aResult->InsertL( 0, dynamicNode );
+        retval = CSmlDmAdapter::EOk;
+        }
+
+    OstTrace1( TRACE_NORMAL, CNAPBRANCH_GETUNMODIFIABLEFIELDVALUEL_EXIT,
+            "EXIT: CNapBranch::GetUnmodifiableFieldValueL;retval=%{TError}", retval );
+
+    return retval;
+    }
+//-----------------------------------------------------------------------------
+// CSmlDmAdapter::TErrorCNapBranch::GetLeafData()
+//-----------------------------------------------------------------------------
+CSmlDmAdapter::TError CNapBranch::GetLeafDataL(const TDesC8& aURI,
+        RCmConnectionMethodExt& aCm, CBufBase* aResult)
+    {
+    OstTraceExt1( TRACE_NORMAL, CNAPBRANCH_GETLEAFDATAL_ENTRY,
+            "ENTRY: CNapBranch::GetLeafDataL;aURI=%s", aURI );
+
+    TUint32 attributeRef( 0 );
+    CSmlDmAdapter::TError status = CSmlDmAdapter::EOk;
+    HBufC16* resultTmp;
+
+    attributeRef = MapUriToCmAttribute( aURI );
+    switch ( attributeRef )
+        {
+        case CMManager::ECmName:
+        case CMManager::EPacketDataIPNameServer1:
+        case CMManager::EPacketDataIPNameServer2:
+        case CMManager::EPacketDataAPName:
+        case CMManager::EPacketDataIFAuthName:
+        case CMManager::EPacketDataIPAddr:
+        case CMManager::EPacketDataIPNetmask:
+        case CMManager::EPacketDataIPGateway:
+        resultTmp = aCm.GetStringAttributeL( attributeRef );
+        CleanupStack::PushL( resultTmp );
+        aResult->InsertL( 0, CUtils::ConvertTo8LC( *resultTmp ) );
+        CleanupStack::PopAndDestroy(); // ConvertTo8LC
+        CleanupStack::PopAndDestroy( resultTmp );
+        break;
+        case CMManager::EPacketDataIPAddrFromServer:
+        case CMManager::EPacketDataIPDNSAddrFromServer:
+        if ( aCm.GetBoolAttributeL( attributeRef ) )
+            {
+            aResult->InsertL( 0, KTrue );
+            }
+        else
+            {
+            aResult->InsertL( 0, KFalse );
+            }
+
+        break;
+        default:
+        status = GetUnmodifiableFieldValueL( aURI, aResult );
+        break;
+        }
+    OstTrace1( TRACE_NORMAL, CNAPBRANCH_GETLEAFDATAL_EXIT,
+            "EXIT: CNapBranch::GetLeafDataL;status=%{TError}", status );
+
+    return status;
+    }
+
+//-----------------------------------------------------------------------------
+// CNapBranch::GetUnmodifiableFieldAddResult()
+//-----------------------------------------------------------------------------
+CSmlDmAdapter::TError CNapBranch::GetUnmodifiableFieldAddResult(
+        const TDesC8& aUri, const TDesC8& aObject)
+    {
+    OstTraceExt1( TRACE_NORMAL, CNAPBRANCH_GETUNMODIFIABLEFIELDADDRESULT_ENTRY,
+            "ENTRY: CNapBranch::GetUnmodifiableFieldAddResult;aUri=%s", aUri );
+
+    CSmlDmAdapter::TError retval( CSmlDmAdapter::ENotFound );
+    TPtrC8 nodeName = CUtils::GetLastURISeg( aUri );
+
+    if ( nodeName.Match( KCMDdfAddrType ) != KErrNotFound )
+        {
+        if ( aObject.Match( KGPRSAddrType ) != KErrNotFound )
+            {
+            retval = CSmlDmAdapter::EOk;
+            }
+        else
+            {
+            retval = CSmlDmAdapter::EInvalidObject;
+            }
+        }
+    else if ( nodeName.Match( KCMDdfAuthType ) != KErrNotFound )
+        {
+        if ( aObject.Match( KGPRSAuthType ) != KErrNotFound )
+            {
+            retval = CSmlDmAdapter::EOk;
+            }
+        else
+            {
+            retval = CSmlDmAdapter::EInvalidObject;
+            }
+        }
+
+    OstTrace1( TRACE_NORMAL, DUP1_CNAPBRANCH_GETUNMODIFIABLEFIELDADDRESULT_EXIT,
+            "EXIT: CNapBranch::GetUnmodifiableFieldAddResult;retval=%{TError}", retval );
+
+    return retval;
+    }
+//-----------------------------------------------------------------------------
+// CNapBranch::MapUriToCmAttribute(()
+//-----------------------------------------------------------------------------
+TUint32 CNapBranch::MapUriToCmAttribute(const TDesC8& aUri)
+    {
+    OstTraceExt1( TRACE_NORMAL, CNAPBRANCH_MAPURITOCMATTRIBUTE_ENTRY,
+            "ENTRY: CNapBranch::MapUriToCmAttribute;aUri=%s", aUri );
+
+    TUint32 retval( 0 );
+
+    TPtrC8 nodeName = CUtils::GetLastURISeg( aUri );
+
+    OstTraceExt1( TRACE_NORMAL, CNAPBRANCH_MAPURITOCMATTRIBUTE_GET_NODE,
+            "CNapBranch::MapUriToCmAttribute;nodeName=%s", nodeName );
+
+    if ( nodeName.Match( KCMDdfName ) != KErrNotFound )
+        {
+        retval = CMManager::ECmName;
+        }
+    else if ( nodeName.Match( KCMDdfAddr ) != KErrNotFound )
+        {
+        // IP branch and NAP branch have both "Addr" leaf. Select between them.
+        if ( aUri.Match( KNapAddrUri ) != KErrNotFound &&
+                aUri.Match( KNapIPv4AddrUri ) == KErrNotFound )
+            {
+            retval = CMManager::EPacketDataAPName;
+            }
+        else if ( aUri.Match( KNapDNSAddr1Uri ) != KErrNotFound )
+            {
+            retval = CMManager::EPacketDataIPNameServer1;
+            }
+        else if ( aUri.Match( KNapDNSAddr2Uri ) != KErrNotFound )
+            {
+            retval = CMManager::EPacketDataIPNameServer2;
+            }
+        }
+    else if ( nodeName.Match( KCMDdfBearerType ) != KErrNotFound )
+        {
+        retval = CMManager::ECmBearerType;
+        }
+    else if ( nodeName.Match( KCMDdfAuthName ) != KErrNotFound )
+        {
+        retval = CMManager::EPacketDataIFAuthName;
+        }
+    else if ( nodeName.Match( KCMDdfAuthSecret ) != KErrNotFound )
+        {
+        retval = CMManager::EPacketDataIFAuthPass;
+        }
+    else if ( nodeName.Match( KCMDdfAutoConfig ) != KErrNotFound )
+        {
+        retval = CMManager::EPacketDataIPAddrFromServer;
+        }
+    else if ( nodeName.Match( KCMDdfIPAddr ) != KErrNotFound )
+        {
+        retval = CMManager::EPacketDataIPAddr;
+        }
+    else if ( nodeName.Match( KCMDdfNetMask ) != KErrNotFound )
+        {
+        retval = CMManager::EPacketDataIPNetmask;
+        }
+    else if ( nodeName.Match( KCMDdfGateway ) != KErrNotFound )
+        {
+        retval = CMManager::EPacketDataIPGateway;
+        }
+    else if ( nodeName.Match( KCMDdfAutoDNS )!= KErrNotFound )
+        {
+        retval = CMManager::EPacketDataIPDNSAddrFromServer;
+        }
+
+    OstTrace1( TRACE_NORMAL, CNAPBRANCH_MAPURITOCMATTRIBUTE_EXIT,
+            "EXIT: CNapBranch::MapUriToCmAttribute;retval=%{TError}", retval );
+
+    return retval;
+    }
+//-----------------------------------------------------------------------------
+// void CNapBranch::SetLeafData()
+//-----------------------------------------------------------------------------
+void CNapBranch::SetLeafDataL(const TDesC8& aURI, const TDesC8& aObject,
+        TInt aStatusRef, RCmConnectionMethodExt& aCm)
+    {
+    OstTraceExt1( TRACE_FLOW, CNAPBRANCH_SETLEAFDATAL_ENTRY,
+            "ENTRY: CNapBranch::SetLeafDataL;aURI=%s", aURI );
+
+    TUint32 attributeRef( 0 );
+    TBool tmpBool = EFalse;
+    CSmlDmAdapter::TError status = CSmlDmAdapter::EOk;
+
+    attributeRef = MapUriToCmAttribute( aURI );
+    OstTrace1( TRACE_NORMAL, CNAPBRANCH_SETLEAFDATAL_GET_CMATTRIB,
+            "CNapBranch::SetLeafDataL;CM Attribute:;attributeRef=%{TConnectionMethodCommonAttributes}",
+            attributeRef );
+
+    switch ( attributeRef )
+        {
+        case CMManager::ECmName:
+        case CMManager::EPacketDataIPNameServer1:
+        case CMManager::EPacketDataIPNameServer2:
+        case CMManager::EPacketDataAPName:
+        case CMManager::EPacketDataIFAuthName:
+        case CMManager::EPacketDataIFAuthPass:
+        case CMManager::EPacketDataIPAddr:
+        case CMManager::EPacketDataIPNetmask:
+        case CMManager::EPacketDataIPGateway:
+        aCm.SetStringAttributeL( attributeRef, CUtils::ConvertTo16LC( aObject ) );
+        CleanupStack::PopAndDestroy(); // ConvertTo16LC
+        break;
+        case CMManager::EPacketDataIPAddrFromServer:
+        case CMManager::EPacketDataIPDNSAddrFromServer:
+        if ( CUtils::DesToBool( aObject, tmpBool ) == KErrNone )
+            {
+            aCm.SetBoolAttributeL( attributeRef, tmpBool );
+            }
+        else
+            {
+            status = CSmlDmAdapter::EInvalidObject;
+            }
+        break;
+        case CMManager::ECmBearerType:
+        // BearerType is already set when CM was created.
+        break;
+        default:
+        // Attribute field was not from CM. Check if value is hard coded to CM.
+        status = GetUnmodifiableFieldAddResult( aURI, aObject );
+        break;
+        }
+    iCallback->SetStatusL( aStatusRef, status );
+    OstTrace1( TRACE_NORMAL, CNAPBRANCH_SETLEAFDATAL_EXIT,
+            "EXIT: CNapBranch::SetLeafDataL;status=%{TError}", status );
+    }
+
+//-----------------------------------------------------------------------------
+// TBool CNapBranch::SetNodeData()
+//-----------------------------------------------------------------------------
+void CNapBranch::SetNodeDataL(CConnMoNodeElement* aNode,
+        RCmConnectionMethodExt& aCm)
+    {
+    OstTraceExt1( TRACE_NORMAL, CNAPBRANCH_SETNODEDATAL_ENTRY,
+            "ENTRY: CNapBranch::SetNodeDataL;aNode->iUri=%s", aNode->iUri );
+
+    if ( aNode->iParentLUID.Length() == 0 )
+        {
+        TBuf8<16> addLUID;
+        _LIT8( KFormat, "%d" );    
+        addLUID.Format( KFormat, aCm.GetIntAttributeL( CMManager::ECmId ) );
+        
+        iCallback->SetMappingL( aNode->iUri, addLUID );
+        iCallback->SetStatusL( aNode->iStatusRef, CSmlDmAdapter::EOk );
+
+        OstTrace0( TRACE_NORMAL, CNAPBRANCH_SETNODEDATAL_OK,
+                "CNapBranch::SetNodeDataL; CSmlDmAdapter::EOk" );
+        }
+    else
+        {
+        iCallback->SetStatusL( aNode->iStatusRef, CSmlDmAdapter::EAlreadyExists );
+        OstTrace0( TRACE_NORMAL, CNAPBRANCH_SETNODEDATAL_EXISTS,
+                "CNapBranch::SetNodeDataL; CSmlDmAdapter::EAlreadyExists" );
+        }
+    OstTrace0( TRACE_NORMAL, CNAPBRANCH_SETNODEDATAL_EXIT,
+            "EXIT: CNapBranch::SetNodeDataL" );
+    }
+
+//-----------------------------------------------------------------------------
+// TBool CNapBranch::FindNewCmType
+//-----------------------------------------------------------------------------
+TBool CNapBranch::FindNewCmType(TUint32& aBearerType)
+    {
+    OstTrace0( TRACE_NORMAL, CNAPBRANCH_FINDNEWCMTYPE_ENTRY, "ENTRY: CNapBranch::FindNewCmType" );
+
+    TBool retval = EFalse;
+    // Find bearer type for creating a connection methdod
+    CConnMoNodeElement* processNode = iBuffer->CacheFind( KNapBearerTypeUri );
+    if ( processNode )
+        {
+        if ( processNode->iObject.Match( KPacketDataBearerType ) != KErrNotFound )
+            {
+            OstTraceExt1( TRACE_NORMAL, CNAPBRANCH_FINDNEWCMTYPE_3GPP,
+                    "CNapBranch::FindNewCmType;Bearer Type: %s", KPacketDataBearerType );
+
+            aBearerType = KUidPacketDataBearerType;
+            retval = ETrue;
+            }
+        else
+            {
+            aBearerType = KInvalidBearerType;
+            }
+        }
+    OstTrace1( TRACE_NORMAL, CNAPBRANCH_FINDNEWCMTYPE_EXIT,
+            "EXIT: CNapBranch::FindNewCmType;retval=%d", retval );
+
+    return retval;
+    }
+//-----------------------------------------------------------------------------
+// TBool CNapBranch::AllMandatoryNapFieldsFound()
+//-----------------------------------------------------------------------------
+TBool CNapBranch::AllMandatoryNapFieldsFound()
+    {
+    OstTrace0( TRACE_NORMAL, CNAPBRANCH_ALLMANDATORYNAPFIELDSFOUND_ENTRY,
+            "ENTRY: CNapBranch::AllMandatoryNapFieldsFound" );
+
+    TBool retval = ETrue;
+
+    // Check that NAP Address addition is found
+    if ( !iBuffer->CacheFind( KNapAddrUri ) )
+        {
+        retval = EFalse;
+        }
+    // Check that dynamic nap node addition is found
+    if ( !iBuffer->CacheFindDynamicNode( KDynamicNapNode ) )
+        {
+        retval = EFalse;
+        }
+
+    OstTrace1( TRACE_NORMAL, CNAPBRANCH_ALLMANDATORYNAPFIELDSFOUND_EXIT,
+            "EXIT: CNapBranch::AllMandatoryNapFieldsFound;retval=%d", retval );
+
+    return retval;
+    }
+//-----------------------------------------------------------------------------
+// TBool CNapBranch::NapChildURIListL
+// TBool CNapBranch::NapChildURIList( )
+//-----------------------------------------------------------------------------
+void CNapBranch::NapChildURIListL(const TDesC8& aURI, const CArrayFix<
+        TSmlDmMappingInfo>& aPreviousURISegmentList, TInt aResultsRef,
+        TInt aStatusRef, CBufBase& aCurrentURISegmentList)
+    {
+    OstTraceExt1( TRACE_NORMAL, CNAPBRANCH_NAPCHILDURILISTL_ENTRY,
+            "ENTRY: CNapBranch::NapChildURIListL;aURI=%s", aURI );
+
+    RArray<TUint32> CmArray;
+    CleanupClosePushL( CmArray );
+
+    TPtrC8 napTree = CUtils::GetEndOfURIFromSeg( aURI, KCMDdfNAP );
+
+    GetAllConnectionMethodsL( CmArray, *iCmManager );
+
+    for (TInt i = 0; i < CmArray.Count(); i++ )
+        {
+        TBuf8<KBufferExpandSize> addURISeg;
+        if ( !CheckPreviousURIList( aPreviousURISegmentList, CmArray[i], addURISeg ) )
+            {
+            // Connection Method not found in previous URI list                        
+            addURISeg.Append( aURI );
+            addURISeg.Append( KSlash );
+            addURISeg.Append( KDynamicNodePrefix );
+
+            addURISeg.AppendNumFixedWidth( CmArray[i], EDecimal, 3);
+
+            TBuf8<16> addLUID;
+            _LIT8( KFormat, "%d" );    
+            addLUID.Format( KFormat, CmArray[i] );
+
+            OstTraceExt1( TRACE_NORMAL,
+                    CNAPBRANCH_NAPCHILDURILISTL_ADDED_TO_LIST,
+                    "CNapBranch::NapChildURIListL;Added to list: URI=%s", addURISeg );
+
+            iCallback->SetMappingL( addURISeg, addLUID );
+            }
+
+        // Child is the last segment in uri
+        aCurrentURISegmentList.InsertL( aCurrentURISegmentList.Size(),
+                CUtils::GetLastURISeg(addURISeg) );
+        aCurrentURISegmentList.InsertL( aCurrentURISegmentList.Size(), KSlash );
+        }
+    iCallback->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
+    iCallback->SetResultsL( aResultsRef, aCurrentURISegmentList, KNullDesC8 );
+
+    CleanupStack::PopAndDestroy( &CmArray );
+
+    OstTrace0( TRACE_NORMAL, CNAPBRANCH_NAPCHILDURILISTL_EXIT,
+            "EXIT: CNapBranch::NapChildURIListL" );
+    }
+//-----------------------------------------------------------------------------
+// CSmlDmAdapter::TError CNapBranch::DeleteObjectL
+//-----------------------------------------------------------------------------
+CSmlDmAdapter::TError CNapBranch::DeleteObjectL(const TDesC8& aURI,
+        const TDesC8& aLUID)
+    {
+    OstTrace0( TRACE_NORMAL, CNAPBRANCH_DELETEOBJECTL_PRIVATE_ENTRY,
+            "ENTRY: CNapBranch::DeleteObjectL" );
+
+    CSmlDmAdapter::TError status = CSmlDmAdapter::ENotFound;
+
+    // If this is for pre-defined node then get CM id xxx from URI (NAP/NAPIdxxx)
+    TInt cmId = GetCmIdFromURIL( aURI );
+    
+    RCmConnectionMethodExt cm;
+    
+    if( aLUID.Length() > 0 )
+        {       
+        cmId = CUtils::IntLUID( aLUID );
+        }
+
+    // Check, if referred connection method exists           
+    if ( GetConnectionMethodLC( *iCmManager, cm, cmId ) )
+        {
+        cm.DeleteL();
+        status = CSmlDmAdapter::EOk;
+        OstTrace1( TRACE_NORMAL, CNAPBRANCH_DELETEOBJECTL_PRIVATE_DELETE,
+                "CNapBranch::DeleteObjectL; Connection Method=%u deleted.", cmId );
+        }
+
+    CleanupStack::PopAndDestroy( &cm );
+
+    OstTrace1( TRACE_NORMAL, CNAPBRANCH_DELETEOBJECTL_PRIVATE_EXIT,
+            "EXIT: CNapBranch::DeleteObjectL;status=%{TError}", status );
+
+    return status;
+    }
+
+// ======== MEMBER FUNCTIONS ========
+//-----------------------------------------------------------------------------
+// CNapBranch* CNapBranch::NewL( )
+//-----------------------------------------------------------------------------
+CNapBranch* CNapBranch::NewL(MSmlDmCallback* aDmCallback,
+        CAddBuffer* aBuffer, RCmManagerExt* aCmManagerExt)
+    {
+    OstTraceFunctionEntry1( CNAPBRANCH_NEWL_ENTRY, ( TUint )( aDmCallback ) );
+
+    CNapBranch* self = new (ELeave) CNapBranch( aDmCallback );
+    CleanupStack::PushL(self);
+
+    self->ConstructL( aBuffer, aCmManagerExt );
+
+    CleanupStack::Pop(self);
+
+    OstTraceFunctionExit1( CNAPBRANCH_NEWL_EXIT, ( TUint )( self ) );
+    return self;
+    }
+
+//------------------------------------------------------------------------------
+// CNapBranch::CNapBranch()
+//------------------------------------------------------------------------------
+CNapBranch::CNapBranch(MSmlDmCallback* aDmCallback) :
+    CBranchBase(aDmCallback)
+    {
+    OstTraceFunctionEntry1( CNAPBRANCH_CONSTRUCTOR_ENTRY, this );
+
+    iCallback = aDmCallback;
+
+    OstTraceFunctionExit1( CNAPBRANCH_CONSTRUCTOR_EXIT, this );
+    }
+
+//------------------------------------------------------------------------------
+// CNapBranch::~CNapBranch()
+//------------------------------------------------------------------------------
+CNapBranch::~CNapBranch()
+    {
+    OstTraceFunctionEntry1( CNAPBRANCH_DESTRUCTOR_ENTRY, this );
+
+    OstTraceFunctionExit1( CNAPBRANCH_DESTRUCTOR_EXIT, this );
+    }
+
+//=============================================
+//      CNapBranch::ConstructL()
+//      Second phase constructor.
+//=============================================
+void CNapBranch::ConstructL(CAddBuffer* aBuffer, RCmManagerExt* aCmManagerExt)
+    {
+    OstTraceFunctionEntry1( CNAPBRANCH_CONSTRUCTL_ENTRY, this );
+
+    iBuffer = aBuffer;
+    iCmManager = aCmManagerExt;
+
+    OstTraceFunctionExit1( CNAPBRANCH_CONSTRUCTL_EXIT, this );
+    }
+
+//------------------------------------------------------------------------------
+//  void CNapBranch::DDFStructureL()
+//------------------------------------------------------------------------------
+void CNapBranch::DDFStructureL(MSmlDmDDFObject& aDDF)
+    {
+    OstTraceFunctionEntry0( CNAPBRANCH_DDFSTRUCTUREL_ENTRY );
+
+    //
+    // Set rest acceptable operations for data itself
+    //
+    TSmlDmAccessTypes aclTypesNoDelete;
+    aclTypesNoDelete.SetGet();
+    aclTypesNoDelete.SetReplace();
+    aclTypesNoDelete.SetAdd();
+
+    TSmlDmAccessTypes aclTypesNoGet;
+    aclTypesNoGet.SetReplace();
+    aclTypesNoGet.SetAdd();
+    aclTypesNoGet.SetDelete();
+
+    TSmlDmAccessTypes aclTypesOnlyGet;
+    aclTypesOnlyGet.SetGet();
+
+    MSmlDmDDFObject& nIDDDF = aDDF.AddChildObjectL( KCMDdfID ); // ID
+    CUtils::FillNodeInfoL( nIDDDF,
+            aclTypesOnlyGet,
+            MSmlDmDDFObject::EOne,
+            MSmlDmDDFObject::EDynamic,
+            MSmlDmDDFObject::EChr,
+            KNullDesC8 );
+
+    MSmlDmDDFObject& nNameDDF = aDDF.AddChildObjectL( KCMDdfName ); // Name
+    CUtils::FillNodeInfoL( nNameDDF,
+            aclTypesNoDelete,
+            MSmlDmDDFObject::EZeroOrOne,
+            MSmlDmDDFObject::EDynamic,
+            MSmlDmDDFObject::EChr,
+            KNullDesC8 );
+
+    MSmlDmDDFObject& nAddrTypeDDF = aDDF.AddChildObjectL( KCMDdfAddrType ); // AddrType
+    CUtils::FillNodeInfoL( nAddrTypeDDF,
+            aclTypesNoDelete,
+            MSmlDmDDFObject::EZeroOrOne,
+            MSmlDmDDFObject::EDynamic,
+            MSmlDmDDFObject::EChr,
+            KNullDesC8 );
+
+    MSmlDmDDFObject& nAddrDDF = aDDF.AddChildObjectL( KCMDdfAddr ); // Addr
+    CUtils::FillNodeInfoL( nAddrDDF,
+            aclTypesNoDelete,
+            MSmlDmDDFObject::EOne,
+            MSmlDmDDFObject::EDynamic,
+            MSmlDmDDFObject::EChr,
+            KNullDesC8 );
+
+    MSmlDmDDFObject& nIPDDF = aDDF.AddChildObjectL( KCMDdfIP ); // IP
+    CUtils::FillNodeInfoL( nIPDDF,
+            aclTypesNoDelete,
+            MSmlDmDDFObject::EOne,
+            MSmlDmDDFObject::EDynamic,
+            MSmlDmDDFObject::ENode,
+            KNullDesC8 );
+
+    MSmlDmDDFObject& nIPv4DDF = nIPDDF.AddChildObjectL( KCMDdfIPv4 ); // IPv4
+    CUtils::FillNodeInfoL( nIPv4DDF,
+            aclTypesNoDelete,
+            MSmlDmDDFObject::EZeroOrOne,
+            MSmlDmDDFObject::EDynamic,
+            MSmlDmDDFObject::ENode,
+            KNullDesC8 );
+    IpBranchDDFStructureL( nIPv4DDF );
+
+    MSmlDmDDFObject& nAuthInfoDDF = aDDF.AddChildObjectL( KCMDdfAuthInfo ); // AuthInfo
+    CUtils::FillNodeInfoL( nAuthInfoDDF,
+            aclTypesNoDelete,
+            MSmlDmDDFObject::EZeroOrOne,
+            MSmlDmDDFObject::EDynamic,
+            MSmlDmDDFObject::ENode,
+            KNullDesC8 );
+
+    MSmlDmDDFObject& nAuthNameDDF = nAuthInfoDDF.AddChildObjectL( KCMDdfAuthName ); // AuthName
+    CUtils::FillNodeInfoL( nAuthNameDDF,
+            aclTypesNoDelete,
+            MSmlDmDDFObject::EZeroOrOne,
+            MSmlDmDDFObject::EDynamic,
+            MSmlDmDDFObject::EChr,
+            KNullDesC8 );
+
+    MSmlDmDDFObject& nAuthTypeDDF = nAuthInfoDDF.AddChildObjectL( KCMDdfAuthType ); // AuthType
+    CUtils::FillNodeInfoL( nAuthTypeDDF,
+            aclTypesNoDelete,
+            MSmlDmDDFObject::EZeroOrOne,
+            MSmlDmDDFObject::EDynamic,
+            MSmlDmDDFObject::EChr,
+            KNullDesC8 );
+
+    MSmlDmDDFObject& nAuthSecretDDF = nAuthInfoDDF.AddChildObjectL( KCMDdfAuthSecret ); // AuthSecret
+    CUtils::FillNodeInfoL( nAuthSecretDDF,
+            aclTypesNoGet,
+            MSmlDmDDFObject::EZeroOrOne,
+            MSmlDmDDFObject::EDynamic,
+            MSmlDmDDFObject::EChr,
+            KNullDesC8 );
+
+    MSmlDmDDFObject& nBearerTypeDDF = aDDF.AddChildObjectL( KCMDdfBearerType ); // BearerType
+    CUtils::FillNodeInfoL( nBearerTypeDDF,
+            aclTypesNoDelete,
+            MSmlDmDDFObject::EOne,
+            MSmlDmDDFObject::EDynamic,
+            MSmlDmDDFObject::EChr,
+            KNullDesC8 );
+
+    MSmlDmDDFObject& nBearerParamsDDF = aDDF.AddChildObjectL( KCMDdfBearerParams ); // BearerParams
+    CUtils::FillNodeInfoL( nBearerParamsDDF,
+            aclTypesNoDelete,
+            MSmlDmDDFObject::EOne,
+            MSmlDmDDFObject::EDynamic,
+            MSmlDmDDFObject::ENode,
+            KNullDesC8 );
+
+    OstTraceFunctionExit0( CNAPBRANCH_DDFSTRUCTUREL_EXIT );
+    }
+
+// -------------------------------------------------------------------------------------
+// CNapBranch::IpBranchDDFStructureL
+// -------------------------------------------------------------------------------------
+void CNapBranch::IpBranchDDFStructureL(MSmlDmDDFObject& nIPvXDDF)
+    {
+    OstTraceFunctionEntry0( CNAPBRANCH_IPBRANCHDDFSTRUCTUREL_ENTRY );
+
+    //
+    // Set rest acceptable operations for data itself
+    //
+    TSmlDmAccessTypes aclTypesNoDelete;
+    aclTypesNoDelete.SetGet();
+    aclTypesNoDelete.SetReplace();
+    aclTypesNoDelete.SetAdd();
+
+    MSmlDmDDFObject& nAutoConfigDDF = nIPvXDDF.AddChildObjectL( KCMDdfAutoConfig ); // AutoConfig
+    CUtils::FillNodeInfoL( nAutoConfigDDF,
+            aclTypesNoDelete,
+            MSmlDmDDFObject::EZeroOrOne,
+            MSmlDmDDFObject::EDynamic,
+            MSmlDmDDFObject::EChr,
+            KNullDesC8 );
+
+    MSmlDmDDFObject& nIPAddrDDF = nIPvXDDF.AddChildObjectL( KCMDdfIPAddr ); // IPAddr
+    CUtils::FillNodeInfoL( nIPAddrDDF,
+            aclTypesNoDelete,
+            MSmlDmDDFObject::EZeroOrOne,
+            MSmlDmDDFObject::EDynamic,
+            MSmlDmDDFObject::EChr,
+            KNullDesC8 );
+
+    MSmlDmDDFObject& nNetMaskDDF = nIPvXDDF.AddChildObjectL( KCMDdfNetMask ); // NetMask
+    CUtils::FillNodeInfoL( nNetMaskDDF,
+            aclTypesNoDelete,
+            MSmlDmDDFObject::EZeroOrOne,
+            MSmlDmDDFObject::EDynamic,
+            MSmlDmDDFObject::EChr,
+            KNullDesC8 );
+
+    MSmlDmDDFObject& nGatewayDDF = nIPvXDDF.AddChildObjectL( KCMDdfGateway ); // Gateway
+    CUtils::FillNodeInfoL( nGatewayDDF,
+            aclTypesNoDelete,
+            MSmlDmDDFObject::EZeroOrOne,
+            MSmlDmDDFObject::EDynamic,
+            MSmlDmDDFObject::EChr,
+            KNullDesC8 );
+
+    MSmlDmDDFObject& nAutoDNSDDF = nIPvXDDF.AddChildObjectL( KCMDdfAutoDNS ); // AutoDNS
+    CUtils::FillNodeInfoL( nAutoDNSDDF,
+            aclTypesNoDelete,
+            MSmlDmDDFObject::EZeroOrOne,
+            MSmlDmDDFObject::EDynamic,
+            MSmlDmDDFObject::EBool,
+            KNullDesC8 );
+
+    MSmlDmDDFObject& nDNSDDF = nIPvXDDF.AddChildObjectL( KCMDdfDNS ); // DNS
+    CUtils::FillNodeInfoL( nDNSDDF,
+            aclTypesNoDelete,
+            MSmlDmDDFObject::EZeroOrOne,
+            MSmlDmDDFObject::EDynamic,
+            MSmlDmDDFObject::ENode,
+            KNullDesC8 );
+
+    MSmlDmDDFObject& nServersDDF = nDNSDDF.AddChildObjectL( KCMDdfServers ); // Servers
+    CUtils::FillNodeInfoL( nServersDDF,
+            aclTypesNoDelete,
+            MSmlDmDDFObject::EZeroOrOne,
+            MSmlDmDDFObject::EDynamic,
+            MSmlDmDDFObject::ENode,
+            KNullDesC8 );
+
+    MSmlDmDDFObject& nServersRootDDF = nServersDDF.AddChildObjectGroupL(); // Servers/<x>
+    CUtils::FillNodeInfoL( nServersRootDDF,
+            aclTypesNoDelete,
+            MSmlDmDDFObject::EOneOrMore,
+            MSmlDmDDFObject::EDynamic,
+            MSmlDmDDFObject::ENode,
+            KNullDesC8 );
+
+    MSmlDmDDFObject& nAddrDDF = nServersRootDDF.AddChildObjectL( KCMDdfAddr ); // Addr
+    CUtils::FillNodeInfoL( nAddrDDF,
+            aclTypesNoDelete,
+            MSmlDmDDFObject::EOne,
+            MSmlDmDDFObject::EDynamic,
+            MSmlDmDDFObject::EChr,
+            KNullDesC8 );
+
+    OstTraceFunctionExit0( CNAPBRANCH_IPBRANCHDDFSTRUCTUREL_EXIT );
+    }
+
+// -------------------------------------------------------------------------------------
+// CNapBranch::UpdateLeafObjectL
+// -------------------------------------------------------------------------------------
+void CNapBranch::UpdateLeafObjectL(const TDesC8& aURI, const TDesC8& aLUID,
+        const TDesC8& aObject, const TDesC8& /*aType*/, TInt aStatusRef)
+    {
+    OstTraceExt1( TRACE_NORMAL, CNAPBRANCH_UPDATELEAFOBJECTL_ENTRY,
+            "ENTRY: CNapBranch::UpdateLeafObjectL;aURI=%s", aURI );
+
+    // If this is for pre-defined node then get CM id xxx from URI (NAP/NAPIdxxx)
+    TInt cmId = GetCmIdFromURIL( aURI );
+    
+    if ( aLUID.Length() == 0 && cmId == KErrNotFound )
+        {
+            // New node, add to buffer
+            iBuffer->AddNodeToBufferL( aURI, aLUID, aObject, aStatusRef );    
+        }  
+    else
+        {
+        // Existing node, update data immediately
+        TInt err( KErrNone );
+        RCmConnectionMethodExt cm;
+        if ( cmId == KErrNotFound )
+            {
+            cmId = CUtils::IntLUID( aLUID );
+            }
+            
+        TRAP( err, cm = iCmManager->ConnectionMethodL( cmId ) );
+        CleanupClosePushL( cm );
+
+        if ( !err )
+            {
+            OstTrace0( TRACE_NORMAL, CNAPBRANCH_UPDATELEAFOBJECTL, "CNapBranch::UpdateLeafObjectL; Update existing node data immediately." );
+            SetLeafDataL( aURI, aObject, aStatusRef, cm );
+            cm.UpdateL();
+            }
+        else
+            {
+            OstTrace0( TRACE_NORMAL, DUP1_CNAPBRANCH_UPDATELEAFOBJECTL, "CNapBranch::UpdateLeafObjectL; Stale LUID - Buffer setting." );
+            iBuffer->AddNodeToBufferL( aURI, KNullDesC8, aObject, aStatusRef );
+            }
+
+        CleanupStack::PopAndDestroy( &cm );
+        }
+
+    OstTrace0( TRACE_NORMAL, CNAPBRANCH_UPDATELEAFOBJECTL_EXIT,
+            "EXIT: CNapBranch::UpdateLeafObjectL" );
+    }
+
+// -------------------------------------------------------------------------------------
+// CNapBranch::DeleteObjectL
+// -------------------------------------------------------------------------------------
+void CNapBranch::DeleteObjectL(const TDesC8& aURI, const TDesC8& aLUID,
+        TInt aStatusRef)
+    {
+    OstTraceExt1( TRACE_NORMAL, CNAPBRANCH_DELETEOBJECTL_ENTRY,
+            "ENTRY: CNapBranch::DeleteObjectL;aURI=%s", aURI );
+
+    CSmlDmAdapter::TError status = CSmlDmAdapter::EError;
+
+    TPtrC8 napTree = CUtils::GetEndOfURIFromSeg( aURI, KCMDdfNAP );
+
+    if ( napTree.Match( KDynamicNapNode ) != KErrNotFound &&
+            napTree.Match( KDynamicNapNodeChildUri ) == KErrNotFound )
+        {
+
+        status = DeleteObjectL( aURI, aLUID );
+
+        }
+
+    iCallback->SetStatusL( aStatusRef, status );
+
+    OstTrace1( TRACE_NORMAL, CNAPBRANCH_DELETEOBJECTL_EXIT,
+            "EXIT: CNapBranch::DeleteObjectL;status=%{TError}", status );
+    }
+
+// -------------------------------------------------------------------------------------
+// CNapBranch::FetchLeafObjectL
+// -------------------------------------------------------------------------------------
+void CNapBranch::FetchLeafObjectL(const TDesC8& aURI, const TDesC8& aLUID,
+        const TDesC8& aType, TInt aResultsRef, TInt aStatusRef)
+    {
+    OstTraceExt1( TRACE_NORMAL, CNAPBRANCH_FETCHLEAFOBJECTL_ENTRY,
+            "ENTRY: CNapBranch::FetchLeafObjectL;aURI=%s", aURI );
+    TInt cmId( KErrNotFound );
+    if ( aLUID.Length() > 0 )
+         {
+         cmId = CUtils::IntLUID( aLUID );      
+         }
+     else
+         {
+         // If this is for pre-defined node then get CM id xxx from URI (NAP/NAPIdxxx)
+         cmId = GetCmIdFromURIL( aURI );
+         }
+    if ( cmId != KErrNotFound )
+        {
+        CBufBase* result = CBufFlat::NewL( KBufferExpandSize );
+        CleanupStack::PushL( result );
+
+        // Open connection method.
+        RCmConnectionMethodExt cm;
+        TRAPD(err, cm = iCmManager->ConnectionMethodL( cmId ) );
+        if (err != KErrNone )
+            {
+            CleanupStack::PopAndDestroy( result );
+            iCallback->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
+            OstTrace0( TRACE_NORMAL, CNAPBRANCH_DUP_FETCHLEAFOBJECTL_NOT_FOUND, "CSmlDmAdapter::ENotFound" );
+            return;
+            }
+        CleanupClosePushL( cm );
+
+        // Find data from CM
+        CSmlDmAdapter::TError status = GetLeafDataL( aURI,
+                cm,
+                result );
+
+        OstTrace1( TRACE_NORMAL, CNAPBRANCH_FETCHLEAFOBJECTL_STATUS,
+                "CNapBranch::FetchLeafObjectL;status=%{TError}", status );
+
+        if ( status == CSmlDmAdapter::EOk )
+            {
+            iCallback->SetResultsL( aResultsRef, *result, aType );
+            }
+        iCallback->SetStatusL( aStatusRef, status );
+
+        CleanupStack::PopAndDestroy( &cm );
+        CleanupStack::PopAndDestroy( result );
+        }
+    else
+        {
+        iCallback->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
+        OstTrace0( TRACE_NORMAL, CNAPBRANCH_FETCHLEAFOBJECTL_NOT_FOUND, "CSmlDmAdapter::ENotFound" );
+        }
+    OstTrace0( TRACE_NORMAL, CNAPBRANCH_FETCHLEAFOBJECTL_EXIT, "EXIT: CNapBranch::FetchLeafObjectL" );
+    }
+
+// -------------------------------------------------------------------------------------
+// CNapBranch::FetchLeafObjectSizeL
+// -------------------------------------------------------------------------------------
+void CNapBranch::FetchLeafObjectSizeL(const TDesC8& aURI,
+        const TDesC8& aLUID, const TDesC8& aType, TInt aResultsRef,
+        TInt aStatusRef)
+    {
+    OstTraceExt1( TRACE_NORMAL, CNAPBRANCH_FETCHLEAFOBJECTSIZEL_ENTRY,
+            "ENTRY: CNapBranch::FetchLeafObjectSizeL;aURI=%s", aURI );
+    TInt cmId( KErrNotFound );
+    if ( aLUID.Length() > 0 )
+         {
+         cmId = CUtils::IntLUID( aLUID );        
+         }
+     else
+         {
+         // If this is for pre-defined node then get CM id xxx from URI (NAP/NAPIdxxx)
+         cmId = GetCmIdFromURIL( aURI );
+         }
+    if ( cmId != KErrNotFound )
+        {
+        CBufBase* result = CBufFlat::NewL( KBufferExpandSize );
+        CleanupStack::PushL(result);
+
+        // Open connection method.
+        RCmConnectionMethodExt cm;
+        TRAPD(err, cm = iCmManager->ConnectionMethodL( cmId ) );
+        if (err != KErrNone )
+            {
+            CleanupStack::PopAndDestroy( result );
+            iCallback->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
+            OstTrace0( TRACE_NORMAL, CNAPBRANCH_DUP1_FETCHLEAFOBJECTL_NOT_FOUND, "CSmlDmAdapter::ENotFound" );
+            return;
+            }
+        CleanupClosePushL( cm );
+
+        // Find data from CM
+        CSmlDmAdapter::TError status = GetLeafDataL( aURI,
+                cm,
+                result );
+
+        OstTrace1( TRACE_NORMAL, CNAPBRANCH_FETCHLEAFOBJECTSIZEL_STATUS,
+                "CNapBranch::FetchLeafObjectSizeL;status=%{TError}", status );
+
+        if ( status == CSmlDmAdapter::EOk )
+            {
+            TInt size = result->Size();
+            TBuf8<KMaxResultSize> sizeStr;
+            sizeStr.AppendNum( size );
+
+            result->Reset();
+            result->InsertL( 0, sizeStr );
+
+            iCallback->SetResultsL( aResultsRef, *result, aType);
+            }
+        iCallback->SetStatusL( aStatusRef, status );
+
+        CleanupStack::PopAndDestroy( &cm );
+        CleanupStack::PopAndDestroy( result );
+        }
+    else
+        {
+        iCallback->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
+        OstTrace0( TRACE_NORMAL, CNAPBRANCH_FETCHLEAFOBJECTSIZEL_NOT_FOUND,
+                "CNapBranch::FetchLeafObjectSizeL;CSmlDmAdapter::ENotFound" );
+        }
+    OstTrace0( TRACE_NORMAL, CNAPBRANCH_FETCHLEAFOBJECTSIZEL_EXIT,
+            "EXIT: CNapBranch::FetchLeafObjectSizeL" );
+    }
+
+// -------------------------------------------------------------------------------------
+// CNapBranch::ChildURIListL
+// -------------------------------------------------------------------------------------
+void CNapBranch::ChildURIListL(const TDesC8& aURI, const TDesC8& aLUID,
+        const CArrayFix<TSmlDmMappingInfo>& aPreviousURISegmentList,
+        TInt aResultsRef, TInt aStatusRef)
+    {
+    OstTraceExt1( TRACE_NORMAL, CNAPBRANCH_CHILDURILISTL_ENTRY,
+            "ENTRY: CNapBranch::ChildURIListL;aURI=%s", aURI );
+    
+       
+    TPtrC8 napTree = CUtils::GetEndOfURIFromSeg( aURI,KCMDdfNAP );
+
+    CBufBase* currentURISegmentList = CBufFlat::NewL( KSmlMaxURISegLen );
+    CleanupStack::PushL( currentURISegmentList );    
+    
+    // First handle ./NAP as a special case
+    if ( napTree.Match( KCMDdfNAP ) != KErrNotFound )
+        {
+        NapChildURIListL( aURI,
+                aPreviousURISegmentList,
+                aResultsRef,
+                aStatusRef,
+                *currentURISegmentList );
+        CleanupStack::PopAndDestroy( currentURISegmentList );
+        return;
+        }
+
+    // Then check if the CM exists. Use LUID or predefined ID    
+    TInt cmId( KErrNotFound );
+    if ( aLUID.Length() > 0 )
+        {
+        cmId = CUtils::IntLUID( aLUID );
+        }
+    else
+        {
+        // If this is for pre-defined node then get CM id xxx from URI (NAP/NAPIdxxx)
+        cmId = GetCmIdFromURIL( aURI );
+        }
+    // If after this cmId is still not found then the branch does not exist
+    if ( cmId == KErrNotFound )
+        {
+        iCallback->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
+        CleanupStack::PopAndDestroy( currentURISegmentList );
+        OstTrace0( TRACE_NORMAL, DUP1_CNAPBRANCH_CHILDURILISTL, "CNapBranch::ChildURIListL; CSmlDmAdapter::ENotFound" );
+        return;
+        }
+    
+    RCmConnectionMethodExt cm;
+    // Check it the method actually can be found      
+    if ( !GetConnectionMethodLC( *iCmManager, cm, cmId ) )       
+        {
+        iCallback->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
+        CleanupStack::PopAndDestroy( &cm );
+        CleanupStack::PopAndDestroy( currentURISegmentList );        
+        OstTrace0( TRACE_NORMAL, DUP2_CNAPBRANCH_CHILDURILISTL, "CNapBranch::ChildURIListL; CSmlDmAdapter::ENotFound" );
+        return;
+        }            
+    CleanupStack::PopAndDestroy( &cm );    
+            
+    if ( napTree.Match( KDynamicNapNode ) != KErrNotFound &&
+            napTree.Match( KDynamicNapNodeChildUri ) == KErrNotFound )
+        {
+        currentURISegmentList->InsertL( currentURISegmentList->Size(), KCMNapFields ); 
+        iCallback->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
+        iCallback->SetResultsL( aResultsRef, *currentURISegmentList, KNullDesC8 );        
+        }
+    // ./NAP/*/IP
+
+    else if ( napTree.Match( KDynamicIPNode ) != KErrNotFound &&
+            napTree.Match( KDynamicIPNodeChildUri ) == KErrNotFound )
+        {
+        currentURISegmentList->InsertL( currentURISegmentList->Size(), KCMNIPFields );
+        iCallback->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
+        iCallback->SetResultsL( aResultsRef, *currentURISegmentList, KNullDesC8 );
+        }
+    // ./NAP/*/IP/IPv4
+
+    else if ( napTree.Match( KDynamicIPv4Node ) != KErrNotFound &&
+            napTree.Match( KDynamicIPv4NodeChildUri ) == KErrNotFound )
+        {
+        currentURISegmentList->InsertL( currentURISegmentList->Size(), KCMNIPv4Fields );
+        iCallback->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
+        iCallback->SetResultsL( aResultsRef, *currentURISegmentList, KNullDesC8 );
+        }
+    // ./NAP/*/IP/IPv4/DNS
+
+    else if ( napTree.Match( KDynamicIPv4DnsNode ) != KErrNotFound &&
+            napTree.Match( KDynamicIPv4DnsNodeChildUri ) == KErrNotFound )
+        {
+        currentURISegmentList->InsertL( currentURISegmentList->Size(), KCMNDNSFields );
+        iCallback->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
+        iCallback->SetResultsL( aResultsRef, *currentURISegmentList, KNullDesC8 );
+        }
+    // ./NAP/*/IP/IPv4/DNS/Servers
+
+    else if ( napTree.Match( KDynamicIPv4DnsServersNode ) != KErrNotFound )
+        {
+        GetAllDynamicNodesL( aURI,
+                aLUID,
+                aPreviousURISegmentList,
+                aResultsRef,
+                aStatusRef,
+                *iCmManager,
+                *currentURISegmentList,
+                KCMDdfServer,
+                KMaxDnsAddr,
+                iCallback );
+        }
+    // ./NAP/*/IP/IPv4/DNS/Servers*
+
+    else if ( napTree.Match( KDynamicIPv4DnsServersNodeChildUri ) != KErrNotFound &&
+            napTree.Match( KDynamicIPv4DnsServersNodeChildUriNodes ) == KErrNotFound )
+        {
+        currentURISegmentList->InsertL( currentURISegmentList->Size(), KCMNDNSServersFields ); 
+        iCallback->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
+        iCallback->SetResultsL( aResultsRef, *currentURISegmentList, KNullDesC8 );
+        }
+    // ./NAP/*/AuthInfo
+
+    else if ( napTree.Match( KDynamicAuthInfoNode ) != KErrNotFound &&
+            napTree.Match( KDynamicAuthInfoNodeChildUri ) == KErrNotFound )
+        {
+        currentURISegmentList->InsertL( currentURISegmentList->Size(), KCMNAuthInfoFields );
+        iCallback->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
+        iCallback->SetResultsL( aResultsRef, *currentURISegmentList, KNullDesC8 );
+        }
+    else
+        {
+        iCallback->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
+        OstTrace0( TRACE_NORMAL, CNAPBRANCH_CHILDURILISTL,
+                "CNapBranch::ChildURIListL; CSmlDmAdapter::ENotFound" );
+        }
+
+    CleanupStack::PopAndDestroy( currentURISegmentList );
+
+    OstTrace0( TRACE_NORMAL, DUP1_CNAPBRANCH_CHILDURILISTL_EXIT,
+            "EXIT: CNapBranch::ChildURIListL" );
+    }
+
+// -------------------------------------------------------------------------------------
+// CNapBranch::AddNodeObjectL
+// -------------------------------------------------------------------------------------
+void CNapBranch::AddNodeObjectL(const TDesC8& aURI,
+        const TDesC8& aParentLUID, TInt aStatusRef)
+    {
+    OstTraceExt1( TRACE_NORMAL, CNAPBRANCH_ADDNODEOBJECTL_ENTRY,
+            "ENTRY: CNapBranch::AddNodeObjectL;aURI=%s", aURI );
+
+    if ( aParentLUID.Length() == 0 )
+        {        
+        // If this is for pre-defined node then get CM id xxx from URI (NAP/NAPIdxxx)
+        TInt cmId = GetCmIdFromURIL( aURI );
+        RCmConnectionMethodExt cm;
+        // Check if CM exists
+        if ( cmId != KErrNotFound && GetConnectionMethodLC( *iCmManager, cm, cmId ) )
+            {
+            CleanupStack::PopAndDestroy( &cm );
+            // Pre-defined CM already exists for this ID.
+            // NAPs must be added in one message. If luid is given add is done to existing AP or node
+            iCallback->SetStatusL( aStatusRef, CSmlDmAdapter::EAlreadyExists );
+            OstTrace0( TRACE_NORMAL, CNAPBRANCH_ADDNODEOBJECTL, 
+                    "CNapBranch::AddNodeObjectL; CSmlDmAdapter::EAlreadyExists because tried to add in predefined node format that exists" );
+            return;
+            }                          
+        if ( cmId != KErrNotFound )
+            {
+            CleanupStack::PopAndDestroy( &cm );
+            }
+
+        // New node, add to buffer
+        iBuffer->AddNodeToBufferL( aURI, aParentLUID, aStatusRef );
+        //iCallback->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
+        OstTrace0( TRACE_NORMAL, CNAPBRANCH_ADDNODEOBJECTL_NEW_NODE,
+                "CNapBranch::AddNodeObjectL;New node -> Add to buffer." );
+        }
+    else
+        {
+        // Sanity check: If the dynamic name of the NAP node has is the same as deleted previously and
+        // DM Framework hasn't updated the tree, it will give the LUID when calling this method. Thus,
+        // it's needed to check that the connection method really exists.
+        TBuf8<KSmlMaxURISegLen> parentLUID;
+        parentLUID.Zero();
+        parentLUID = aParentLUID;
+        RCmConnectionMethodExt cm;               
+        if ( !GetConnectionMethodLC( *iCmManager, cm,  CUtils::IntLUID( parentLUID) ) )
+            {            
+			if(aParentLUID.Length() > 0)
+				{
+				TInt ret = iCallback->RemoveMappingL(KConnMoAdapterUid,
+							GetDynamicNAPNodeUri( aURI ), ETrue );
+				if(ret)
+					{
+					iCallback->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
+					CleanupStack::PopAndDestroy( &cm );
+					return;
+					}				
+				}
+			// New node, add to buffer
+            iBuffer->AddNodeToBufferL( aURI, KNullDesC8, aStatusRef );
+            OstTrace0( TRACE_NORMAL, CNAPBRANCH_ADDNODEOBJECTL_NEW_NODE2,
+                    "CNapBranch::AddNodeObjectL;New node -> Add to buffer." );
+            }
+        else
+            {
+            // NAPs must be added in one message. If luid is given add is done to existing AP or node
+            iCallback->SetStatusL( aStatusRef, CSmlDmAdapter::EAlreadyExists );
+            OstTrace0( TRACE_NORMAL, CNAPBRANCH_ADDNODEOBJECTL_ALLREADY_EXISTS,
+                    "CNapBranch::AddNodeObjectL; CSmlDmAdapter::EAlreadyExists" );
+            }
+
+        CleanupStack::PopAndDestroy( &cm );
+        }
+    OstTrace0( TRACE_NORMAL, CNAPBRANCH_ADDNODEOBJECTL_EXIT, "EXIT: CNapBranch::AddNodeObjectL" );
+
+    }
+
+// -------------------------------------------------------------------------------------
+// CNapBranch::ProcessNodeBufferL()
+// -------------------------------------------------------------------------------------
+void CNapBranch::ProcessBufferL()
+    {
+    OstTrace0( TRACE_NORMAL, CNAPBRANCH_PROCESSBUFFERL_ENTRY, "ENTRY: CNapBranch::ProcessBufferL" );
+
+    TUint32 bearerType;
+
+    RPointerArray<CConnMoNodeElement> napNodes( KNumOfNAPNodes );
+    CleanupClosePushL( napNodes );
+
+    while ( iBuffer->GetGroup( KCMDdfNAP, &napNodes ) != KErrNotFound )
+        {
+
+        if ( FindNewCmType( bearerType ) && AllMandatoryNapFieldsFound() )
+            {
+            // Create new connection method and update nodes
+            RCmConnectionMethodExt cm = iCmManager->CreateConnectionMethodL( bearerType );
+            CleanupClosePushL( cm );
+            cm.UpdateL();
+
+            for ( TInt i = 0; i < napNodes.Count(); ++i )
+                {
+                if ( napNodes[i]->iLeaf )
+                    {
+                    // Leaf data found
+                    SetLeafDataL( napNodes[i]->iUri,
+                            napNodes[i]->iObject,
+                            napNodes[i]->iStatusRef, cm );
+                    napNodes[i]->iProcessed = ETrue;
+                    }
+                else
+                    {
+                    // Node has no leaf data
+                    SetNodeDataL( napNodes[i], cm);
+                    napNodes[i]->iProcessed = ETrue;
+                    }
+                }
+            cm.UpdateL();
+            CleanupStack::PopAndDestroy( &cm );
+            }
+        else
+            {
+            for ( TInt i = 0; i < napNodes.Count(); ++i )
+                {
+                iCallback->SetStatusL( napNodes[i]->iStatusRef, CSmlDmAdapter::EError );
+                napNodes[i]->iProcessed = ETrue;
+                }
+            }
+        napNodes.Reset();
+        }
+    CleanupStack::Pop( &napNodes );
+    napNodes.Close();
+
+    OstTrace0( TRACE_NORMAL, CNAPBRANCH_PROCESSBUFFERL_EXIT, "EXIT: CNapBranch::ProcessBufferL" );
+
+    }
+
+//------------------------------------------------------------------------------
+// TPtrC8 CUtils::GetDynamicAPNodeUri( const TDesC8& aURI )
+// returns NAP/xxx URI
+//------------------------------------------------------------------------------
+TPtrC8 CNapBranch::GetDynamicNAPNodeUri(const TDesC8& aURI)
+    {
+
+    OstTraceExt1( TRACE_NORMAL, CNAPBRANCH_GETDYNAMICNAPNODEURI, "CNapBranch::GetDynamicNAPNodeUri;aURI=%s", aURI );
+
+    TInt i= 0;
+    for ( i = aURI.Find( KCMDdfNAP ) + 4; i < aURI.Length(); i++ )
+        {
+        if( aURI[i] == '/' )
+            {
+            break;
+            }
+        }
+    OstTraceExt1( TRACE_NORMAL, DUP1_CNAPBRANCH_GETDYNAMICNAPNODEURI, "CNapBranch::GetDynamicNAPNodeUri;return URI=%s", aURI.Left( i ) );
+
+    return aURI.Left( i );
+    }
+
+//--------------------------------------------------------------------
+//TInt CNapBranch::IsNAPUriFormatMatchPredefined(const TDesC8 & aURI)
+//
+//-------------------------------------------------------------------
+
+
+TBool CNapBranch::IsNAPUriFormatMatchPredefined(const TDesC8 & aURI)
+{
+    if( aURI.Match( _L8( "NAP/NAPId*" ) ) != KErrNotFound )
+    {
+        return ETrue;
+    }
+    else
+    {
+        return EFalse;
+    }
+}
+//------------------------------------------------------------------------------
+// TUint32 CNapBranch::GetAPIdFromURIL(const TDesC8& aURI)
+//         Get NAP id for given aURI
+//------------------------------------------------------------------------------
+TInt CNapBranch::GetCmIdFromURIL(const TDesC8& aURI)
+    {
+    TInt ret(KErrNotFound);
+    
+    if( !IsNAPUriFormatMatchPredefined( aURI ) )
+        {
+        // Cannot get CmIds from any other format URIs than predefined
+        return ret;
+        }
+   
+    TLex8 lex;
+    //  Find xxx from ./NAP/NAPIdxxx/...    
+    TInt start = aURI.Find( KDynamicNodePrefix ) + KDynamicNodePrefix().Length();
+    lex = aURI.Mid( start, 3 );
+    lex.Val( ret );
+    
+    return ret;
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/connmoadapter/src/ProxyBranch.cpp	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,1112 @@
+/*
+ * ==============================================================================
+ * Copyright (c) 2009 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:
+ * 
+ * ==============================================================================
+ */
+
+#include <e32base.h>
+#include <cmconnectionmethoddef.h>
+#include <nsmldmtreedbclient.h>
+
+#include "ProxyBranch.h"
+#include "Utils.h"
+
+#include "OstTraceDefinitions.h"
+#ifdef OST_TRACE_COMPILER_IN_USE
+#include "ProxyBranchTraces.h"
+#endif
+
+// ------------------------------------------------------------------------------------------------
+// Constants
+// ------------------------------------------------------------------------------------------------
+_LIT8( KCMProxyDdf,             "Proxy" );
+_LIT8( KCMProxyDdfProxyId,      "ProxyId" );
+_LIT8( KCMProxyDdfName,         "Name" );
+_LIT8( KCMProxyDdfAddr,         "Addr" );
+_LIT8( KCMProxyDdfToConRef,     "ToConRef" );
+_LIT8( KCMProxyDdfConRef,       "ConRef" );
+_LIT8( KCMProxyDdfPorts,        "Ports" );
+_LIT8( KCMProxyDdfPortNbr,      "PortNbr" );
+_LIT8( KCMProxyDdfProxyParams,  "ProxyParams" );
+_LIT8( KCMProxyDdfProxyType,    "ProxyType" );
+_LIT8( KCMProxyDdfWap,          "WAP" );
+_LIT8( KCMProxyDdfStartpg,      "Startpg" );
+
+_LIT8( KCMProxyFields,          "ProxyId/Addr/ToConRef/Ports/ProxyType/ProxyParams" );
+_LIT8( KCMProxyParamsFields,    "WAP" );
+_LIT8( KCMProxyWapFields,       "Startpg" );
+_LIT8( KCMProxyNodeSeparator,   "/" );
+
+_LIT8( KDynamicProxyNodePattern,            "Proxy/*" );
+_LIT8( KDynamicProxyNodeChildUri,           "Proxy/*/*" );
+_LIT8( KDynamicToConrefNode,                "Proxy/*/ToConRef" ); 
+_LIT8( KDynamicToConrefNodeChildUri,        "Proxy/*/ToConRef/*" ); 
+_LIT8( KDynamicToConrefNodeChildUriNodes,   "Proxy/*/ToConRef/*/*" );
+_LIT8( KDynamicPortsNode,                   "Proxy/*/Ports" );
+_LIT8( KDynamicPortsNodeChildUri,           "Proxy/*/Ports/*" );
+_LIT8( KDynamicPortsNodeChildUriNodes,      "Proxy/*/Ports/*/*" );
+_LIT8( KDynamicProxyParamsNode,             "Proxy/*/ProxyParams" );
+_LIT8( KDynamicProxyParamsNodeChildUri,     "Proxy/*/ProxyParams/*" );
+_LIT8( KDynamicProxyParamsWapNode,          "Proxy/*/ProxyParams/WAP" );
+
+_LIT8( KProxyAddrUri,                     "Proxy/*/Addr");
+_LIT8( KProxyConrefUri,                   "Proxy/*/ConRef");
+
+_LIT8( KRoot,                             "./");
+
+TInt const KBufferExpandSize = 128;
+TInt const KNumOfProxyNodes = 8;
+
+_LIT8( KDynamicNodePrefix,                  "ProxyId");
+
+// ======== LOCAL FUNCTIONS =========
+
+//-----------------------------------------------------------------------------
+// CSmlDmAdapter::TError CProxyBranch::FetchLeafObjectL()
+//-----------------------------------------------------------------------------
+CSmlDmAdapter::TError CProxyBranch::FetchLeafObjectL( const TDesC8& aURI,
+                                                      const TDesC8& aLUID,
+                                                      CBufBase& aLeafObject )
+    {
+    OstTraceExt1( TRACE_NORMAL, CPROXYBRANCH_FETCHLEAFOBJECTL_ENTRY, 
+                  "ENTRY: CProxyBranch::FetchLeafObjectL;aURI=%s", aURI );
+    
+    RCmConnectionMethodExt cm;    
+    CSmlDmAdapter::TError status = CSmlDmAdapter::ENotAllowed;
+    TPtrC8 leafNode = CUtils::GetLastURISeg( aURI );
+    TInt cmId( KErrNotFound );
+    if ( aLUID.Length() > 0 )
+         {
+         cmId = CUtils::IntLUID( aLUID );         
+         }
+     else
+         {
+         // If this is for pre-defined node then get CM id xxx from URI (NAP/NAPIdxxx)
+         cmId = GetCmIdFromURIL( aURI );
+         }
+    
+    if ( cmId == KErrNotFound || !GetConnectionMethodLC( *iCmManager, cm, cmId ) || 
+            !cm.GetBoolAttributeL(CMManager::ECmProxyUsageEnabled) )
+        {
+        if ( cmId != KErrNotFound )
+            {
+            CleanupStack::PopAndDestroy( &cm );
+            }
+        status = CSmlDmAdapter::ENotFound;
+        
+        OstTrace1( TRACE_NORMAL, CPROXYBRANCH_FETCHLEAFOBJECTL_NOT_FOUND, 
+                   "CProxyBranch::FetchLeafObjectL;status=%{TError}", status );
+        
+        return status;
+        }
+    
+    if ( leafNode.Compare( KCMProxyDdfAddr ) == 0 )
+        {
+        HBufC* serverName = cm.GetStringAttributeL( CMManager::ECmProxyServerName );
+        
+        CleanupStack::PushL( serverName );
+        aLeafObject.InsertL( 0, CUtils::ConvertTo8LC( *serverName ) );
+        
+        CleanupStack::PopAndDestroy(); // CUtils::ConvertTo8LC
+        CleanupStack::PopAndDestroy( serverName );
+        
+        status = CSmlDmAdapter::EOk;
+        }
+    else if ( leafNode.Compare( KCMProxyDdfConRef ) == 0 )
+        {
+        TBuf8<KBufferExpandSize> conRef;
+        TBuf8<KBufferExpandSize> napChildList;
+        CBufBase* napChildListBuf = CBufFlat::NewL( KSmlMaxURISegLen );
+        CleanupStack::PushL( napChildListBuf );      
+        
+        // Get all NAP node childs
+        iCallback->FetchLinkL( _L8("./NAP"), *napChildListBuf,  status );
+        napChildListBuf->Read( 0, napChildList, napChildListBuf->Size() );
+        
+        if ( status == CSmlDmAdapter::EOk)
+            {
+            // Reset operation end status 
+            status = CSmlDmAdapter::EError;
+            
+            // Find correct Uri
+            while ( napChildList.Length() > 0 && status != CSmlDmAdapter::EOk )
+                {
+                conRef.Append( _L("NAP/") );
+                CUtils::AppendFirstURISeg( napChildList, conRef );
+                HBufC8* napLuid = iCallback->GetLuidAllocL( conRef );
+                if ( cmId == CUtils::IntLUID( *napLuid ) )
+                    {
+                    status = CSmlDmAdapter::EOk;
+                    aLeafObject.InsertL( 0, conRef );
+                    }
+                delete napLuid;
+                conRef.Delete( 0, conRef.Length() );
+                }
+            }
+        
+        CleanupStack::PopAndDestroy( napChildListBuf );
+        }
+    else if ( leafNode.Compare( KCMProxyDdfPortNbr ) == 0 )
+        {
+        TInt proxyPort = cm.GetIntAttributeL( CMManager::ECmProxyPortNumber );
+                        
+        aLeafObject.InsertL( 0, CUtils::IntToCharL( proxyPort ) );
+        CleanupStack::PopAndDestroy();
+                
+        status = CSmlDmAdapter::EOk;
+        }
+    else if ( leafNode.Compare( KCMProxyDdfStartpg ) == 0 )
+        {
+        HBufC* startPage = cm.GetStringAttributeL( CMManager::ECmStartPage );
+        
+        CleanupStack::PushL( startPage );
+        aLeafObject.InsertL( 0, CUtils::ConvertTo8LC( *startPage ) );
+        
+        CleanupStack::PopAndDestroy(); // CUtils::ConvertTo8LC
+        CleanupStack::PopAndDestroy( startPage );
+        
+        status = CSmlDmAdapter::EOk;
+        }
+    else if ( leafNode.Compare( KCMProxyDdfProxyType ) == 0 )
+        {
+        HBufC* protocolName = cm.GetStringAttributeL( CMManager::ECmProxyProtocolName );
+        
+        CleanupStack::PushL( protocolName );
+        aLeafObject.InsertL( 0, CUtils::ConvertTo8LC( *protocolName ) );
+        
+        CleanupStack::PopAndDestroy(); // CUtils::ConvertTo8LC
+        CleanupStack::PopAndDestroy( protocolName );
+        
+        status = CSmlDmAdapter::EOk;
+        }
+    else if ( leafNode.Compare( KCMProxyDdfProxyId ) == 0 )
+        {
+        TPtrC8 dynamicNode = GetDynamicProxyNodeUri( aURI );
+        aLeafObject.InsertL( 0, dynamicNode );
+        status = CSmlDmAdapter::EOk;
+        }
+
+    CleanupStack::PopAndDestroy( &cm );
+    
+    OstTrace1( TRACE_NORMAL, CPROXYBRANCH_FETCHLEAFOBJECTL_EXIT, 
+               "EXIT: CProxyBranch::FetchLeafObjectL;status=%{TError}", status );
+    return status;
+    }
+
+//-----------------------------------------------------------------------------
+// TUint32 CProxyBranch::CheckForUnmodifiableField()
+//-----------------------------------------------------------------------------
+CSmlDmAdapter::TError CProxyBranch::CheckForUnmodifiableField(const TDesC8& aUri)
+    {
+    OstTraceExt1( TRACE_NORMAL, CPROXYBRANCH_CHECKFORUNMODIFIABLEFIELD_ENTRY, 
+                  "ENTRY: CProxyBranch::CheckForUnmodifiableField;aUri=%s", aUri );
+    
+    CSmlDmAdapter::TError retval(CSmlDmAdapter::ENotFound);
+    TPtrC8 nodeName = CUtils::GetLastURISeg(aUri);
+       
+    if ( nodeName.Match(KCMProxyDdfName) != KErrNotFound ||
+         nodeName.Match(KCMProxyDdfConRef) != KErrNotFound  )
+        {
+        retval = CSmlDmAdapter::EOk;
+        }
+    
+    OstTrace1( TRACE_NORMAL, CPROXYBRANCH_CHECKFORUNMODIFIABLEFIELD_EXIT, 
+               "EXIT: CProxyBranch::CheckForUnmodifiableField;retval=%{TError}", retval );
+    
+    return retval;
+    }
+//-----------------------------------------------------------------------------
+// TBool CProxyBranch::MapUriToCmAttribute()
+//-----------------------------------------------------------------------------
+TUint32 CProxyBranch::MapUriToCmAttribute( const TDesC8& aUri )
+    {
+    OstTraceExt1( TRACE_NORMAL, CPROXYBRANCH_MAPURITOCMATTRIBUTE_ENTRY, 
+                  "ENTRY: CProxyBranch::MapUriToCmAttribute;aUri=%s", aUri );
+    
+    TUint32 retval(0);
+    
+    TPtrC8 nodeName = CUtils::GetLastURISeg( aUri );
+    
+    if ( nodeName.Match( KCMProxyDdfAddr )!= KErrNotFound )
+        {
+        retval = CMManager::ECmProxyServerName;
+        }
+    else if ( nodeName.Match( KCMProxyDdfPortNbr ) != KErrNotFound )
+        {
+        retval = CMManager::ECmProxyPortNumber; 
+        }
+    else if ( nodeName.Match( KCMProxyDdfStartpg ) != KErrNotFound )
+        {
+        retval = CMManager::ECmStartPage;
+        }
+    else if ( nodeName.Match( KCMProxyDdfProxyType ) != KErrNotFound )
+            {
+            retval = CMManager::ECmProxyProtocolName;
+            }
+    
+    OstTrace1( TRACE_NORMAL, CPROXYBRANCH_MAPURITOCMATTRIBUTE_EXIT, 
+               "EXIT: CProxyBranch::MapUriToCmAttribute;retval=%{TConnectionMethodCommonAttributes}", 
+               retval );
+    
+    return retval;
+    }
+//-----------------------------------------------------------------------------
+// TInt32 CProxyBranch::FindConnectionMethodL()
+//-----------------------------------------------------------------------------
+TInt32 CProxyBranch::FindConnectionMethodL()
+    {
+    OstTrace0( TRACE_NORMAL, CPROXYBRANCH_FINDCONNECTIONMETHODL_ENTRY, 
+               "ENTRY: CProxyBranch::FindConnectionMethod" );
+    
+    TInt32 retval = KErrNotFound;
+    
+    CConnMoNodeElement* processNode = iBuffer->CacheFind( KProxyConrefUri );
+    
+    if ( processNode )
+        {
+        
+        HBufC8* luid;
+        
+        // Ignore root part ("./") of the URI if present in the beginning
+        if ( processNode->iObject.Mid( 0, 2 ).Match( KRoot ) != KErrNotFound )
+            {
+            luid = iCallback->GetLuidAllocL( processNode->iObject.Mid( 2 ) );
+            }
+        else
+            {
+            luid = iCallback->GetLuidAllocL( processNode->iObject );
+            }
+        
+        retval = CUtils::IntLUID( *luid );
+        
+        delete luid;
+        
+        }
+    
+    OstTrace1( TRACE_NORMAL, CPROXYBRANCH_FINDCONNECTIONMETHODL_EXIT, 
+               "EXIT: CProxyBranch::FindConnectionMethod;CmId=%d", retval );
+    
+    return retval;
+    }
+//-----------------------------------------------------------------------------
+// TBool CProxyBranch::AllMandatoryProxyFieldsFound()
+//-----------------------------------------------------------------------------
+TBool CProxyBranch::AllMandatoryProxyFieldsFound()
+    {
+    OstTrace0( TRACE_NORMAL, CPROXYBRANCH_ALLMANDATORYPROXYFIELDSFOUND_ENTRY, 
+               "ENTRY: CProxyBranch::AllMandatoryProxyFieldsFound" );
+    
+    TBool retval = ETrue;
+
+    // Check that NAP Address addition is found
+    if ( !iBuffer->CacheFind(KProxyAddrUri) )
+        {
+        retval = EFalse;
+        }
+    if ( !iBuffer->CacheFind(KProxyConrefUri) )
+        {
+        retval = EFalse;
+        }
+    // Check that dynamic nap node addition is found
+    if ( !iBuffer->CacheFindDynamicNode(KDynamicProxyNodePattern) )
+        {
+        retval = EFalse;
+        }
+    OstTrace1( TRACE_NORMAL, CPROXYBRANCH_ALLMANDATORYPROXYFIELDSFOUND_EXIT, 
+               "EXIT: CProxyBranch::AllMandatoryProxyFieldsFound;retval=%d", retval );
+    
+    return retval;
+    }
+//-----------------------------------------------------------------------------
+// TBool CProxyBranch::SetLeafData()
+//-----------------------------------------------------------------------------
+void CProxyBranch::SetLeafDataL(const TDesC8& aURI, 
+                                const TDesC8& /*aLUID*/,
+                                const TDesC8& aObject, 
+                                 TInt aStatusRef, 
+                                 RCmConnectionMethodExt& aCm)
+    {
+    OstTraceExt1( TRACE_NORMAL, CPROXYBRANCH_SETLEAFDATAL_ENTRY, 
+                  "ENTRY: CProxyBranch::SetLeafDataL;aURI=%s", aURI );
+    
+    TUint32 attributeRef = ( 0 );
+    TLex8 lex( aObject );
+    TInt value = 0;
+    CSmlDmAdapter::TError status = CSmlDmAdapter::EOk;
+
+    attributeRef = MapUriToCmAttribute( aURI );
+    
+    switch ( attributeRef )
+        {
+        case CMManager::ECmProxyServerName:
+        case CMManager::ECmStartPage:
+        case CMManager::ECmProxyProtocolName:
+            aCm.SetStringAttributeL( attributeRef, CUtils::ConvertTo16LC( aObject ) );
+            CleanupStack::PopAndDestroy(); // CUtils::ConvertTo16LC
+            break;
+        case CMManager::ECmProxyPortNumber:        
+            if ( lex.Val( value ) == KErrNone )
+                {
+                aCm.SetIntAttributeL( attributeRef, value );
+                }
+            else
+                {
+                status = CSmlDmAdapter::EInvalidObject;
+                }
+            break;
+        default:
+            status = CheckForUnmodifiableField( aURI );
+            break;
+        }
+    iCallback->SetStatusL( aStatusRef, status );
+    
+    OstTrace1( TRACE_NORMAL, CPROXYBRANCH_SETLEAFDATAL_EXIT, 
+               "EXIT: CProxyBranch::SetLeafDataL;status=%{TError}", status );
+    }
+//-----------------------------------------------------------------------------
+// TBool CProxyBranch::SetNodeData()
+//-----------------------------------------------------------------------------
+void CProxyBranch::SetNodeDataL(CConnMoNodeElement* aNode, RCmConnectionMethodExt& aCm)
+    {
+    OstTraceExt1( TRACE_NORMAL, CPROXYBRANCH_SETNODEDATAL_ENTRY, "ENTRY: CProxyBranch::SetNodeDataL;aNode->iUri=%s", aNode->iUri );
+    
+    if ( aNode->iParentLUID.Length() == 0 )
+        {
+        TBuf8<16> addLUID;
+        _LIT8( KFormat, "%d" );    
+        addLUID.Format( KFormat, aCm.GetIntAttributeL( CMManager::ECmId ) );
+        
+        iCallback->SetMappingL( aNode->iUri, addLUID );
+        iCallback->SetStatusL( aNode->iStatusRef, CSmlDmAdapter::EOk );
+        }
+    else
+        {
+        iCallback->SetStatusL( aNode->iStatusRef, CSmlDmAdapter::EAlreadyExists );
+        }
+    OstTrace0( TRACE_NORMAL, CPROXYBRANCH_SETNODEDATAL_EXIT, "EXIT: CProxyBranch::SetNodeDataL" );
+    
+    }
+//------------------------------------------------------------------------------
+//  void CProxyBranch::GetAllDynamicProxyNodes()
+//------------------------------------------------------------------------------
+void CProxyBranch::GetAllDynamicProxyNodesL( const TDesC8& aURI,
+                                             const CArrayFix<TSmlDmMappingInfo>& aPreviousURISegmentList,
+                                             TInt aResultsRef, 
+                                             TInt aStatusRef,
+                                             CBufBase& aCurrentURISegmentList )
+    {
+    OstTraceExt1( TRACE_NORMAL, CPROXYBRANCH_GETALLDYNAMICPROXYNODESL_ENTRY, 
+                  "ENTRY: CProxyBranch::GetAllDynamicProxyNodesL;aURI=%s", aURI );
+    
+    // Array for connection methods
+    RArray <TUint32> cmArray;
+    
+    CleanupClosePushL( cmArray );
+    cmArray.Reset();
+    
+    GetAllConnectionMethodsL( cmArray, *iCmManager );
+    
+    // Loop through all connection methods
+    for ( TInt i = 0; i < cmArray.Count(); i++ )
+        {
+        RCmConnectionMethodExt cm = iCmManager->ConnectionMethodL( cmArray[i] );
+        CleanupClosePushL( cm );
+        
+        // If proxy is enabled for connection method
+        if ( cm.GetBoolAttributeL( CMManager::ECmProxyUsageEnabled ) )
+            {
+            OstTrace1( TRACE_NORMAL, CPROXYBRANCH_GETALLDYNAMICPROXYNODESL_PROXY, 
+                        "CProxyBranch::GetAllDynamicProxyNodesL;Proxy enabled for Cm Id=%u", 
+                        cmArray[i] );
+            
+            TBuf8<KSmlMaxURISegLen>addCmName;
+            // Check if node exists in aPreviousURISegmentList
+            if ( !CheckPreviousURIList( aPreviousURISegmentList, cmArray[i], addCmName ) )
+                {
+                // Connection Method not found in previous URI list                        
+                addCmName.Append( aURI );
+                addCmName.Append( KCMProxyNodeSeparator );
+                addCmName.Append( KDynamicNodePrefix );
+                
+                addCmName.AppendNumFixedWidth( cmArray[i], EDecimal, 3); 
+                
+                TBuf8<16> addLUID;
+                _LIT8( KFormat, "%d" );    
+                addLUID.Format( KFormat, cmArray[i] );
+                
+                OstTraceExt1( TRACE_NORMAL, 
+                           CPROXYBRANCH_GETALLDYNAMICPROXYNODES_ADDED_TO_LIST, 
+                           "CProxyBranch::GetAllDynamicProxyNodesL;Added to list: URI=%s", addCmName );
+                                             
+                iCallback->SetMappingL( addCmName, addLUID );
+                }
+            aCurrentURISegmentList.InsertL( aCurrentURISegmentList.Size(), CUtils::GetLastURISeg( addCmName ) );
+            aCurrentURISegmentList.InsertL( aCurrentURISegmentList.Size(), KCMProxyNodeSeparator );
+            }
+        CleanupStack::PopAndDestroy( &cm );
+        }
+    
+    iCallback->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
+    iCallback->SetResultsL( aResultsRef, aCurrentURISegmentList, KNullDesC8 );
+
+    CleanupStack::PopAndDestroy( &cmArray );
+    
+    OstTrace0( TRACE_NORMAL, CPROXYBRANCH_GETALLDYNAMICPROXYNODESL_EXIT, 
+               "EXI: CProxyBranch::GetAllDynamicProxyNodesLT" );  
+    }
+
+// ======== MEMBER FUNCTIONS ========
+//-----------------------------------------------------------------------------
+// CProxyBranch* CProxyBranch::NewL( )
+//-----------------------------------------------------------------------------
+CProxyBranch* CProxyBranch::NewL(MSmlDmCallback* aDmCallback, 
+                                 CAddBuffer* aBuffer, 
+                                 RCmManagerExt* aCmManagerExt  )
+    {
+    OstTraceFunctionEntry1( CPROXYBRANCH_NEWL_ENTRY, ( TUint )( aDmCallback ) );
+
+    CProxyBranch* self = new (ELeave) CProxyBranch(aDmCallback, aBuffer, aCmManagerExt );
+
+    OstTraceFunctionExit1( CPROXYBRANCH_NEWL_EXIT, ( TUint )( self ) );
+    return self;
+    }
+
+//------------------------------------------------------------------------------
+// CProxyBranch::CProxyBranch()
+//------------------------------------------------------------------------------
+CProxyBranch::CProxyBranch(MSmlDmCallback* aDmCallback, 
+                           CAddBuffer* aBuffer,
+                           RCmManagerExt* aCmManagerExt )
+    : CBranchBase( aDmCallback )
+    {
+    OstTraceFunctionEntry1( CPROXYBRANCH_CONSTRUCTOR_ENTRY, this );
+    
+    iCallback = aDmCallback;
+    iBuffer = aBuffer;
+    iCmManager = aCmManagerExt;
+    
+    OstTraceFunctionExit1( CPROXYBRANCH_CONSTRUCTOR_EXIT, this );
+    }
+
+//------------------------------------------------------------------------------
+// CProxyBranch::~CProxyBranch()
+//------------------------------------------------------------------------------
+CProxyBranch::~CProxyBranch()
+    {
+    OstTraceFunctionEntry1( CPROXYBRANCH_DESTRUCTOR_ENTRY, this );
+
+    OstTraceFunctionExit1( CPROXYBRANCH_DESTRUCTOR_EXIT, this );
+    }
+
+//------------------------------------------------------------------------------
+//  void CProxyBranch::DDFStructureL()
+//------------------------------------------------------------------------------
+void CProxyBranch::DDFStructureL( MSmlDmDDFObject& aDDF )
+    {
+    OstTraceFunctionEntry0( CPROXYBRANCH_DDFSTRUCTUREL_ENTRY );
+        
+    //
+    // Set rest acceptable operations for data itself
+    //
+    TSmlDmAccessTypes aclTypesNoDelete;
+    aclTypesNoDelete.SetGet();
+    aclTypesNoDelete.SetReplace();
+    aclTypesNoDelete.SetAdd();
+
+    TSmlDmAccessTypes aclTypesAddGet;
+    aclTypesAddGet.SetGet();
+    aclTypesAddGet.SetAdd();
+    
+    TSmlDmAccessTypes aclTypesOnlyGet;
+    aclTypesOnlyGet.SetGet();
+
+    MSmlDmDDFObject& nProxyIdDDF = aDDF.AddChildObjectL( KCMProxyDdfProxyId );        // ProxyId
+    CUtils::FillNodeInfoL( nProxyIdDDF, 
+                           aclTypesOnlyGet, 
+                           MSmlDmDDFObject::EOne, 
+                           MSmlDmDDFObject::EDynamic, 
+                           MSmlDmDDFObject::EChr, 
+                           KNullDesC8 );
+    
+    MSmlDmDDFObject& nAddrDDF = aDDF.AddChildObjectL( KCMProxyDdfAddr );     // Addr
+    CUtils::FillNodeInfoL( nAddrDDF, 
+                           aclTypesNoDelete, 
+                           MSmlDmDDFObject::EOne, 
+                           MSmlDmDDFObject::EDynamic, 
+                           MSmlDmDDFObject::EChr, 
+                           KNullDesC8 ); 
+    
+    MSmlDmDDFObject& nToConRefDDF = aDDF.AddChildObjectL( KCMProxyDdfToConRef );     // ToConRef
+    CUtils::FillNodeInfoL( nToConRefDDF, 
+                           aclTypesNoDelete, 
+                           MSmlDmDDFObject::EZeroOrOne, 
+                           MSmlDmDDFObject::EDynamic, 
+                           MSmlDmDDFObject::ENode, 
+                           KNullDesC8 );
+    
+    MSmlDmDDFObject& nToConRefRootDDF = nToConRefDDF.AddChildObjectGroupL();     // ToConRef/<x>
+    CUtils::FillNodeInfoL( nToConRefRootDDF, 
+                           aclTypesNoDelete, 
+                           MSmlDmDDFObject::EOneOrMore, 
+                           MSmlDmDDFObject::EDynamic, 
+                           MSmlDmDDFObject::ENode, 
+                           KNullDesC8 );
+    
+    MSmlDmDDFObject& nConRefDDF = nToConRefRootDDF.AddChildObjectL( KCMProxyDdfConRef ); // ToConRef/<x>/ConRef
+    CUtils::FillNodeInfoL( nConRefDDF, 
+                           aclTypesAddGet, 
+                           MSmlDmDDFObject::EOne, 
+                           MSmlDmDDFObject::EDynamic, 
+                           MSmlDmDDFObject::EChr, 
+                           KNullDesC8 );    
+       
+    MSmlDmDDFObject& nPortsDDF = aDDF.AddChildObjectL( KCMProxyDdfPorts );     // Ports
+    CUtils::FillNodeInfoL( nPortsDDF, 
+                           aclTypesNoDelete, 
+                           MSmlDmDDFObject::EZeroOrOne, 
+                           MSmlDmDDFObject::EDynamic, 
+                           MSmlDmDDFObject::ENode, 
+                           KNullDesC8 );
+
+    MSmlDmDDFObject& nPortsRootDDF = nPortsDDF.AddChildObjectGroupL();     // Ports/<x>
+    CUtils::FillNodeInfoL( nPortsRootDDF, 
+                           aclTypesNoDelete, 
+                           MSmlDmDDFObject::EOneOrMore, 
+                           MSmlDmDDFObject::EDynamic, 
+                           MSmlDmDDFObject::ENode, 
+                           KNullDesC8 );    
+          
+    MSmlDmDDFObject& nPortNbrDDF = nPortsRootDDF.AddChildObjectL( KCMProxyDdfPortNbr );  // Ports/<x>/PortNbr
+    CUtils::FillNodeInfoL( nPortNbrDDF, 
+                           aclTypesNoDelete, 
+                           MSmlDmDDFObject::EOne, 
+                           MSmlDmDDFObject::EDynamic, 
+                           MSmlDmDDFObject::EInt, 
+                           KNullDesC8 );
+
+    MSmlDmDDFObject& nProxyParamsDDF = aDDF.AddChildObjectL( KCMProxyDdfProxyParams ); // ProxyParams
+    CUtils::FillNodeInfoL( nProxyParamsDDF, 
+                           aclTypesNoDelete, 
+                           MSmlDmDDFObject::EZeroOrOne, 
+                           MSmlDmDDFObject::EDynamic, 
+                           MSmlDmDDFObject::ENode, 
+                           KNullDesC8 );
+
+    MSmlDmDDFObject& nProxyTypeDDF = aDDF.AddChildObjectL( KCMProxyDdfProxyType ); // ProxyType
+    CUtils::FillNodeInfoL( nProxyTypeDDF, 
+                           aclTypesNoDelete, 
+                           MSmlDmDDFObject::EZeroOrOne, 
+                           MSmlDmDDFObject::EDynamic, 
+                           MSmlDmDDFObject::EChr, 
+                           KNullDesC8 );
+
+    
+    MSmlDmDDFObject& nWapDDF = nProxyParamsDDF.AddChildObjectL( KCMProxyDdfWap ); // WAP
+    CUtils::FillNodeInfoL( nWapDDF, 
+                           aclTypesNoDelete, 
+                           MSmlDmDDFObject::EZeroOrOne, 
+                           MSmlDmDDFObject::EDynamic, 
+                           MSmlDmDDFObject::ENode, 
+                           KNullDesC8 );
+
+    MSmlDmDDFObject& nStartpgDDF = nWapDDF.AddChildObjectL( KCMProxyDdfStartpg ); // Startpg
+    CUtils::FillNodeInfoL( nStartpgDDF, 
+                           aclTypesNoDelete, 
+                           MSmlDmDDFObject::EZeroOrOne, 
+                           MSmlDmDDFObject::EDynamic, 
+                           MSmlDmDDFObject::EChr, 
+                           KNullDesC8 );
+    
+    OstTraceFunctionEntry0( CPROXYBRANCH_DDFSTRUCTUREL_EXIT );
+    }
+
+//------------------------------------------------------------------------------
+//  void CProxyBranch::UpdateLeafObjectL()
+//------------------------------------------------------------------------------
+void CProxyBranch::UpdateLeafObjectL( const TDesC8& aURI, 
+                                      const TDesC8& aLUID,
+                                      const TDesC8& aObject, 
+                                      const TDesC8& /*aType*/,
+                                      TInt aStatusRef )
+    {
+    OstTraceExt1( TRACE_NORMAL, CPROXYBRANCH_UPDATELEAFOBJECTL_ENTRY, 
+                  "ENTRY: CProxyBranch::UpdateLeafObjectL;aURI=%s", aURI );        
+    
+    // If this is for pre-defined node then get CM id xxx from URI (NAP/NAPIdxxx)
+    TInt cmId = GetCmIdFromURIL( aURI );
+
+    if ( aLUID.Length() == 0 && cmId == KErrNotFound )
+        {
+        // New node, add to buffer
+        iBuffer->AddNodeToBufferL( aURI, aLUID, aObject, aStatusRef);
+        }
+    else
+        {
+        // Existing node, update data immediately
+        TInt err( KErrNone );
+        RCmConnectionMethodExt cm;
+        if ( cmId == KErrNotFound )
+            {
+            cmId = CUtils::IntLUID( aLUID );
+            }
+            
+        TRAP( err, cm = iCmManager->ConnectionMethodL( cmId ) );
+        CleanupClosePushL( cm );
+                
+        if ( !err )
+            {
+            OstTrace0( TRACE_NORMAL, DUP1_CPROXYBRANCH_UPDATELEAFOBJECTL, "CProxyBranch::UpdateLeafObjectL; Existing connection method - write value immediately." );            
+            SetLeafDataL( aURI, aLUID, aObject, aStatusRef, cm );
+            cm.UpdateL();
+            }
+        else
+            {
+            //iCallback->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
+            OstTrace0( TRACE_NORMAL, CPROXYBRANCH_UPDATELEAFOBJECTL, "CProxyBranch::UpdateLeafObjectL; Stale LUID - buffer setting." );            
+            iBuffer->AddNodeToBufferL(aURI,KNullDesC8,aObject,aStatusRef);
+            }
+
+        CleanupStack::PopAndDestroy( &cm );
+        }
+    OstTrace0( TRACE_NORMAL, CPROXYBRANCH_UPDATELEAFOBJECTL_EXIT, 
+               "EXIT: CProxyBranch::UpdateLeafObjectL" );
+    
+    }
+    
+//------------------------------------------------------------------------------
+//  void CProxyBranch::DeleteObjectL()
+//------------------------------------------------------------------------------
+void CProxyBranch::DeleteObjectL( const TDesC8& /*aURI*/, 
+                                  const TDesC8& /*aLUID*/,
+                                  TInt /*aStatusRef*/ )
+    {
+ 
+    }
+    
+//------------------------------------------------------------------------------
+//  void CProxyBranch::FetchLeafObjectL()
+//------------------------------------------------------------------------------
+void CProxyBranch::FetchLeafObjectL( const TDesC8& aURI, 
+                                     const TDesC8& aLUID,
+                                     const TDesC8& aType, 
+                                     TInt aResultsRef,
+                                     TInt aStatusRef )
+    {
+    OstTraceExt1( TRACE_NORMAL, CPROXYBRANCH_FETCHLEAFOBJECTL_PUPLIC_ENTRY, 
+                  "ENTRY: CProxyBranch::FetchLeafObjectL;aURI=%s", aURI );
+    
+    CSmlDmAdapter::TError status = CSmlDmAdapter::ENotFound;
+    
+    CBufBase *leafObject = CBufFlat::NewL( KBufferExpandSize );
+    CleanupStack::PushL( leafObject );
+    leafObject->Reset();
+   
+    status = FetchLeafObjectL( aURI, aLUID, *leafObject );
+    
+    if ( status == CSmlDmAdapter::EOk )
+        {
+        iCallback->SetResultsL( aResultsRef, *leafObject, aType );
+        OstTrace0( TRACE_NORMAL, CPROXYBRANCH_FETCHLEAFOBJECT_OK, 
+                   "CProxyBranch::FetchLeafObjectL; EOk" );
+        }
+    
+    CleanupStack::PopAndDestroy( leafObject );   
+
+    iCallback->SetStatusL( aStatusRef, status );
+    OstTrace1( TRACE_NORMAL, CPROXYBRANCH_FETCHLEAFOBJECTL_PUPLIC_EXIT, 
+               "EXIT: CProxyBranch::FetchLeafObjectL;status=%{TError}", status );
+    
+    }
+    
+//------------------------------------------------------------------------------
+//  void CProxyBranch::FetchLeafObjectSizeL()
+//------------------------------------------------------------------------------
+void CProxyBranch::FetchLeafObjectSizeL( const TDesC8& aURI, 
+                                         const TDesC8& aLUID,
+                                         const TDesC8& aType, 
+                                         TInt aResultsRef,
+                                         TInt aStatusRef )
+    {
+    OstTraceExt1( TRACE_NORMAL, CPROXYBRANCH_FETCHLEAFOBJECTSIZEL_ENTRY, 
+                  "ENTRY: CProxyBranch::FetchLeafObjectSizeL;aURI=%s", aURI );
+    
+    CSmlDmAdapter::TError status = CSmlDmAdapter::ENotFound;
+ 
+    CBufBase *leafObject = CBufFlat::NewL( KSmlMaxURISegLen );
+    CleanupStack::PushL( leafObject );
+    leafObject->Reset();
+
+    status = FetchLeafObjectL( aURI, aLUID, *leafObject );
+
+    if ( status == CSmlDmAdapter::EOk )
+        {
+        leafObject->Compress();
+        TBuf8<8> size;
+        size.Num( leafObject->Size() );
+        leafObject->Reset();
+        leafObject->InsertL(0, size );
+        iCallback->SetResultsL( aResultsRef, *leafObject, aType );
+        }
+    
+    CleanupStack::PopAndDestroy( leafObject );
+
+    iCallback->SetStatusL( aStatusRef, status );
+    OstTrace1( TRACE_NORMAL, CPROXYBRANCH_FETCHLEAFOBJECTSIZEL_EXIT, 
+               "EXIT: CProxyBranch::FetchLeafObjectSizeL;status=%{TError}", status );
+    
+    }
+
+//------------------------------------------------------------------------------
+//  void CProxyBranch::ChildURIListL()
+//------------------------------------------------------------------------------
+void CProxyBranch::ChildURIListL( const TDesC8& aURI, 
+                                  const TDesC8& aLUID,
+                                  const CArrayFix<TSmlDmMappingInfo>& aPreviousURISegmentList,
+                                  TInt aResultsRef,
+                                  TInt aStatusRef )
+    {
+    OstTraceExt1( TRACE_NORMAL, CPROXYBRANCH_CHILDURILISTL_ENTRY, 
+                  "ENTRY: CProxyBranch::ChildURIListL;aURI=%s", aURI );
+        
+    TPtrC8 proxyDdfTree = CUtils::GetEndOfURIFromSeg( aURI, KCMProxyDdf );
+    
+    CBufBase* currentURISegmentList = CBufFlat::NewL( KSmlMaxURISegLen );
+    CleanupStack::PushL( currentURISegmentList );
+    
+    // Proxy (handle as special case)   
+    if ( proxyDdfTree.Match( KCMProxyDdf ) != KErrNotFound )
+        {
+        GetAllDynamicProxyNodesL( aURI,
+                                  aPreviousURISegmentList,
+                                  aResultsRef, 
+                                  aStatusRef,
+                                  *currentURISegmentList );
+        CleanupStack::PopAndDestroy( currentURISegmentList );
+        return;
+        }
+    // Then check if the CM exists. Use LUID or predefined ID    
+    TInt cmId( KErrNotFound );
+    if ( aLUID.Length() > 0 )
+        {
+        cmId = CUtils::IntLUID( aLUID );
+        }
+    else
+        {
+        // If this is for pre-defined node then get CM id xxx from URI (NAP/NAPIdxxx)
+        cmId = GetCmIdFromURIL( aURI );
+        }
+    // If after this cmId is still not found then the branch does not exist
+    if ( cmId == KErrNotFound )
+        {
+        iCallback->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
+        CleanupStack::PopAndDestroy( currentURISegmentList );
+        OstTrace0( TRACE_NORMAL, DUP1_CPROXYBRANCH_CHILDURILISTL, "CNapBranch::ChildURIListL; CSmlDmAdapter::ENotFound" );
+        return;
+        }
+    
+    RCmConnectionMethodExt cm;
+    // Check it the method actually can be found      
+    if ( !GetConnectionMethodLC( *iCmManager, cm, cmId ) || !cm.GetBoolAttributeL(CMManager::ECmProxyUsageEnabled ) )       
+        {
+        iCallback->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
+        CleanupStack::PopAndDestroy( &cm );
+        CleanupStack::PopAndDestroy( currentURISegmentList );        
+        OstTrace0( TRACE_NORMAL, DUP2_CPROXYBRANCH_CHILDURILISTL, "CNapBranch::ChildURIListL; CSmlDmAdapter::ENotFound" );
+        return;
+        }            
+    CleanupStack::PopAndDestroy( &cm );    
+    
+    
+    // Proxy/<x>
+    if ( proxyDdfTree.Match( KDynamicProxyNodePattern ) != KErrNotFound &&
+              proxyDdfTree.Match( KDynamicProxyNodeChildUri ) == KErrNotFound )
+        {
+        currentURISegmentList->InsertL( currentURISegmentList->Size(), KCMProxyFields ); 
+        iCallback->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
+        iCallback->SetResultsL( aResultsRef, *currentURISegmentList, KNullDesC8 );        
+        }
+    
+    // Proxy/<x>/ToConRef/<x>
+    else if ( proxyDdfTree.Match( KDynamicToConrefNodeChildUri ) != KErrNotFound &&
+              proxyDdfTree.Match( KDynamicToConrefNodeChildUriNodes ) == KErrNotFound )
+        {
+        currentURISegmentList->InsertL( currentURISegmentList->Size(), KCMProxyDdfConRef ); 
+        iCallback->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
+        iCallback->SetResultsL( aResultsRef, *currentURISegmentList, KNullDesC8 );
+        }
+    
+    // Proxy/<x>/ToConRef
+    else if ( proxyDdfTree.Match( KDynamicToConrefNode ) != KErrNotFound )
+        {        
+        GetAllDynamicNodesL( aURI,
+                             aLUID,
+                             aPreviousURISegmentList,
+                             aResultsRef, 
+                             aStatusRef,
+                             *iCmManager,
+                             *currentURISegmentList,
+                             KCMProxyDdfToConRef,
+                             1,
+                             iCallback );
+        }
+    
+    // Proxy/<x>/Ports/<x>
+    else if ( proxyDdfTree.Match( KDynamicPortsNodeChildUri ) != KErrNotFound &&
+              proxyDdfTree.Match( KDynamicPortsNodeChildUriNodes ) == KErrNotFound )
+        {      
+        currentURISegmentList->InsertL( currentURISegmentList->Size(), KCMProxyDdfPortNbr ); 
+        iCallback->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
+        iCallback->SetResultsL( aResultsRef, *currentURISegmentList, KNullDesC8 );        
+        }
+    
+    // Proxy/<x>/Ports
+    else if ( proxyDdfTree.Match( KDynamicPortsNode ) != KErrNotFound )
+        {
+        GetAllDynamicNodesL( aURI, 
+                             aLUID,
+                             aPreviousURISegmentList,
+                             aResultsRef, 
+                             aStatusRef,
+                             *iCmManager,
+                             *currentURISegmentList,
+                             KCMProxyDdfPorts,
+                             1,
+                             iCallback );      
+        }
+    
+    // Proxy/<x>/ProxyParams
+    else if ( proxyDdfTree.Match( KDynamicProxyParamsNode ) != KErrNotFound &&
+              proxyDdfTree.Match( KDynamicProxyParamsNodeChildUri ) == KErrNotFound )
+        {
+        currentURISegmentList->InsertL( currentURISegmentList->Size(), KCMProxyParamsFields ); 
+        iCallback->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
+        iCallback->SetResultsL( aResultsRef, *currentURISegmentList, KNullDesC8 );        
+        }
+    
+    // Proxy/<x>/ProxyParams/WAP
+    else if ( proxyDdfTree.Match( KDynamicProxyParamsWapNode ) != KErrNotFound )
+        {
+        currentURISegmentList->InsertL( currentURISegmentList->Size(), KCMProxyWapFields ); 
+        iCallback->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
+        iCallback->SetResultsL( aResultsRef, *currentURISegmentList, KNullDesC8 );  
+        }
+    
+    // Not found
+    else
+        {
+        iCallback->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
+        OstTrace0( TRACE_NORMAL, CPROXYBRANCH_CHILDURILISTL_NOT_FOUND, 
+                   "CProxyBranch::ChildURIListL;CSmlDmAdapter::ENotFound" );
+        
+        }
+    
+    CleanupStack::PopAndDestroy( currentURISegmentList );
+    OstTrace0( TRACE_NORMAL, CPROXYBRANCH_CHILDURILISTL_EXIT, 
+               "EXIT: CProxyBranch::ChildURIListL" );
+        
+    }
+
+//------------------------------------------------------------------------------
+//  void CProxyBranch::AddNodeObjectL()
+//------------------------------------------------------------------------------    
+void CProxyBranch::AddNodeObjectL( const TDesC8& aURI, 
+                                   const TDesC8& aParentLUID,
+                                   TInt aStatusRef )
+    {
+    OstTraceExt1( TRACE_NORMAL, CPROXYBRANCH_ADDNODEOBJECTL_ENTRY, 
+                  "ENTRY: CProxyBranch::AddNodeObjectL;aURI=%s", aURI );
+    
+    if ( aParentLUID.Length() == 0 )
+        {
+        // If this is for pre-defined node then get CM id xxx from URI (Proxy/ProxyIdxxx)
+        TInt cmId = GetCmIdFromURIL( aURI );
+        RCmConnectionMethodExt cm;
+        // Check if CM exists
+        if ( cmId != KErrNotFound && GetConnectionMethodLC( *iCmManager, cm, cmId ) 
+             && cm.GetBoolAttributeL(CMManager::ECmProxyUsageEnabled))
+            {
+            CleanupStack::PopAndDestroy( &cm );
+            // Pre-defined CM already exists for this ID.            
+            iCallback->SetStatusL( aStatusRef, CSmlDmAdapter::EAlreadyExists );
+            return;
+            }
+        if ( cmId != KErrNotFound )
+            {
+            CleanupStack::PopAndDestroy( &cm );
+            }
+        // New node, add to buffer
+        iBuffer->AddNodeToBufferL( aURI, aParentLUID, aStatusRef );
+        OstTrace0( TRACE_NORMAL, CPROXYBRANCH_ADDNODEOBJECTL_NEW_NODE, 
+                   "CProxyBranch::AddNodeObjectL;New node -> Add to buffer." );
+        }
+    else
+        {
+        // Sanity check: If the dynamic name of the Proxy node has is the same as deleted previously and
+        // DM Framework hasn't updated the tree, it will give the LUID when calling this method. Thus,
+        // it's needed to check that the connection method really exists.
+        RCmConnectionMethodExt cm;
+    
+        
+        if ( !GetConnectionMethodLC( *iCmManager, cm, CUtils::IntLUID( aParentLUID ) ) )
+            {
+            // New node, add to buffer
+            iBuffer->AddNodeToBufferL( aURI, KNullDesC8, aStatusRef );
+            OstTrace0( TRACE_NORMAL, CPROXYBRANCH_ADDNODEOBJECTL_NEW_NODE2, 
+                       "CProxyBranch::AddNodeObjectL;New node -> Add to buffer." );
+            }
+        else
+            {
+            // Proxies must be added in one message. If luid is given add is done to existing AP or node
+            iCallback->SetStatusL( aStatusRef, CSmlDmAdapter::EAlreadyExists );
+            OstTrace0( TRACE_NORMAL, CPROXYBRANCH_ADDNODEOBJECTL_ALREADY_EXISTS, 
+                       "CProxyBranch::AddNodeObjectL;CSmlDmAdapter::EAlreadyExists" );
+            } 
+       
+        CleanupStack::PopAndDestroy( &cm );
+        }
+        
+    OstTrace0( TRACE_NORMAL, CPROXYBRANCH_ADDNODEOBJECTL_EXIT, "EXIT: CProxyBranch::AddNodeObjectL" );   
+    }
+
+// -------------------------------------------------------------------------------------
+// CProxyBranch::ProcessNodeBufferL()
+// -------------------------------------------------------------------------------------
+void CProxyBranch::ProcessBufferL()
+    {
+    OstTrace0( TRACE_NORMAL, CPROXYBRANCH_PROCESSBUFFERL_ENTRY, "ENTRY: CProxyBranch::ProcessBufferL" );
+    
+    RPointerArray<CConnMoNodeElement> proxyNodes( KNumOfProxyNodes );
+    CleanupClosePushL( proxyNodes );
+    while ( iBuffer->GetGroup( KCMDdfProxy, &proxyNodes ) != KErrNotFound )
+        {
+        TInt32 cmId = FindConnectionMethodL();
+    
+        if ( AllMandatoryProxyFieldsFound() && cmId != KErrNotFound )
+            {
+            // Open connection method, enable proxy and update nodes
+            RCmConnectionMethodExt cm;
+            TRAPD( err, cm = iCmManager->ConnectionMethodL( cmId ) );
+            CleanupClosePushL( cm );
+            
+            if ( !err )
+                {
+                cm.SetBoolAttributeL( CMManager::ECmProxyUsageEnabled, ETrue );
+        
+                for ( TInt i = 0; i < proxyNodes.Count(); ++i )
+                    {
+                    if ( proxyNodes[i]->iLeaf  )
+                        {
+                    // Leaf data found
+                    SetLeafDataL( proxyNodes[i]->iUri, 
+                                  proxyNodes[i]->iParentLUID, 
+                                  proxyNodes[i]->iObject, 
+                                  proxyNodes[i]->iStatusRef, cm );
+                    proxyNodes[i]->iProcessed = ETrue;
+                        }
+                    else
+                        {
+                        // Node has no leaf data
+                        SetNodeDataL( proxyNodes[i], cm );
+                        proxyNodes[i]->iProcessed = ETrue;
+                        }
+                    }
+                cm.UpdateL();
+                }
+            else
+                {
+                for ( TInt i = 0; i < proxyNodes.Count(); ++i )
+                    {
+                    iCallback->SetStatusL( proxyNodes[i]->iStatusRef, CSmlDmAdapter::EError );
+                    proxyNodes[i]->iProcessed = ETrue;
+                    }
+                }
+            CleanupStack::PopAndDestroy( &cm );
+            }
+        else
+            {
+            for ( TInt i = 0; i < proxyNodes.Count(); ++i )
+                {
+                iCallback->SetStatusL( proxyNodes[i]->iStatusRef, CSmlDmAdapter::EError );
+                proxyNodes[i]->iProcessed = ETrue;
+                }
+            }
+        proxyNodes.Reset();
+        }
+    CleanupStack::Pop( &proxyNodes );
+    proxyNodes.Close();
+ 
+    OstTrace0( TRACE_NORMAL, CPROXYBRANCH_PROCESSBUFFERL_EXIT, "EXIT: CProxyBranch::ProcessBufferL" );  
+    }
+
+
+//------------------------------------------------------------------------------
+// TPtrC8 CUtils::GetDynamicAPNodeUri( const TDesC8& aURI )
+// returns NAP/xxx URI
+//------------------------------------------------------------------------------
+TPtrC8 CProxyBranch::GetDynamicProxyNodeUri( const TDesC8& aURI )
+    {    
+    OstTraceExt1( TRACE_NORMAL, CPROXYBRANCH_GETDYNAMICPROXYNODEURI, "CProxyBranch::GetDynamicProxyNodeUri;aURI=%s", aURI );
+    TInt i= 0;
+    for ( i = aURI.Find( KCMDdfProxy ) + 6; i < aURI.Length(); i++ )
+        {
+        if( aURI[i] == '/' )
+            {
+            break;
+            }
+        }           
+    OstTraceExt1( TRACE_NORMAL, DUP1_CPROXYRANCH_GETDYNAMICPROXYNODEURI, "CProxyBranch::GetDynamicProxyNodeUri;return URI=%s", aURI.Left( i ) );
+    return aURI.Left( i );
+    }
+
+//--------------------------------------------------------------------
+//TInt CProxyBranch::IsNAPUriFormatMatchPredefined(const TDesC8 & aURI)
+//
+//-------------------------------------------------------------------
+
+
+TBool CProxyBranch::IsProxyUriFormatMatchPredefined(const TDesC8 & aURI)
+{
+    if( aURI.Match( _L8( "Proxy/ProxyId*" ) ) != KErrNotFound )
+    {
+        return ETrue;
+    }
+    else
+    {
+        return EFalse;
+    }
+}
+//------------------------------------------------------------------------------
+// TUint32 CProxyBranch::GetAPIdFromURIL(const TDesC8& aURI)
+//         Get NAP id for given aURI
+//------------------------------------------------------------------------------
+TInt CProxyBranch::GetCmIdFromURIL(const TDesC8& aURI)
+    {
+    TInt ret(KErrNotFound);
+    
+    if( !IsProxyUriFormatMatchPredefined( aURI ) )
+        {
+        // Cannot get CmIds from any other format URIs than predefined
+        return ret;
+        }
+   
+    TLex8 lex;
+    //  Find xxx from ./Proxy/ProxyIdxxx/...    
+    TInt start = aURI.Find( KDynamicNodePrefix ) + KDynamicNodePrefix().Length();
+    lex = aURI.Mid( start, 3 );
+    lex.Val( ret );
+    
+    return ret;
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/connmoadapter/src/Utils.cpp	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,312 @@
+/*
+ * ==============================================================================
+ * Copyright (c) 2009 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:
+ * 
+ * ==============================================================================
+ */
+
+#include <e32base.h>
+#include <utf.h>
+#include <cmpluginpacketdatadef.h>
+
+#include "Utils.h"
+#include "OstTraceDefinitions.h"
+#ifdef OST_TRACE_COMPILER_IN_USE
+#include "UtilsTraces.h"
+#endif
+
+// ======== LOCAL CONSTANTS =========
+
+_LIT8( KFalse,               "False" );
+_LIT8( KTrue,                "True" );
+_LIT8( KWhiteSpace,          " " );
+
+// ======== LOCAL FUNCTIONS =========
+
+// ======== MEMBER FUNCTIONS ========   
+//------------------------------------------------------------------------------
+// CUtils::CUtils()
+//------------------------------------------------------------------------------
+CUtils::CUtils() 
+    {
+    OstTraceFunctionEntry0( CUTILS_CUTILS_ENTRY );
+    OstTraceFunctionExit0( CUTILS_CUTILS_EXIT );
+    }
+
+//------------------------------------------------------------------------------
+// CUtils::~CUtils()
+//------------------------------------------------------------------------------
+CUtils::~CUtils()
+    {
+    }
+
+//------------------------------------------------------------------------------
+// TPtrC8 CUtils::GetFirstURISeg(const TDesC8& aURI)
+//------------------------------------------------------------------------------
+TPtrC8 CUtils::GetFirstURISeg( const TDesC8& aURI )
+    {
+    OstTraceExt1( TRACE_NORMAL, CUTILS_GETFIRSTURISEG_ENTRY, 
+                  "ENTRY: CUtils::GetFirstURISeg;aURI=%s", aURI );
+    
+    TInt i = 0;
+    TInt j = 0;
+    
+    for( i  =0; i <= aURI.Length()-1; i++ )
+        {
+        if( aURI[i] == '/' )
+            {
+            if ( i == 0 )
+                {
+                // Skip first slash
+                j = 1;
+                continue;
+                }
+            break;
+            }
+        }
+    OstTraceExt1( TRACE_NORMAL, CUTILS_GETFIRSTURISEG_EXIT, 
+                  "EXIT: CUtils::GetFirstURISeg;retval=%s", aURI.Mid( j,i-j ) );
+    
+    return aURI.Mid( j,i-j );
+    }
+
+//------------------------------------------------------------------------------
+// TPtrC8 CUtils::GetSecondURISeg(const TDesC8& aURI)
+//------------------------------------------------------------------------------
+TPtrC8 CUtils::GetSecondURISeg( const TDesC8& aURI )
+    {
+    OstTraceExt1( TRACE_NORMAL, CUTILS_GETSECONDURISEG_ENTRY, 
+                  "ENTRY: CUtils::GetSecondURISeg;aURI=%s", aURI );
+    
+    TInt j = 0;
+    TInt i = 0;
+    
+    for( i = 0; i <= aURI.Length() - 1; i++ )
+        {
+        if( aURI[i] == '/' )
+            {
+            for( j = i + 1; j <= aURI.Length() - 1; j++ )
+                {
+                if( aURI[j] == '/' ) // Second slash => AP/xxxx
+                    {
+                    break;
+                    }
+                }
+            break;
+            }
+        }
+    OstTraceExt1( TRACE_NORMAL, CUTILS_GETSECONDTURISEG_EXIT, 
+                  "EXIT: CUtils::GetSecondURISeg;retval=%s", aURI.Mid( i+1, j-1-i ) );
+    
+    return aURI.Mid( i+1, j-1-i );
+    }
+
+//------------------------------------------------------------------------------
+// TPtrC8 CUtils::GetLastURISeg(const TDesC8& aURI)
+// Returns only the last uri segment
+//------------------------------------------------------------------------------
+TPtrC8 CUtils::GetLastURISeg( const TDesC8& aURI )
+    {
+    OstTraceExt1( TRACE_NORMAL, CUTILS_GETLASTURISEG_ENTRY, 
+                  "ENTRY: CUtils::GetLastURISeg;aURI=%s", aURI );
+    
+    TInt i;
+    
+    for( i = aURI.Length() - 1 ; i >= 0; i-- )
+        {
+        if( aURI[i] == '/' )
+            {
+            break;
+            }
+        }
+    if( i == 0 )
+        {
+        OstTraceExt1( TRACE_NORMAL, CUTILS_GETLASTURISEG_EXIT, 
+                      "EXIT: CUtils::GetLastURISeg;retval=%s", aURI );
+        return aURI;
+        }
+    else
+        {
+        OstTraceExt1( TRACE_NORMAL, CUTILS_GETLASTURISEG_EXIT2, 
+                      "EXIT: CUtils::GetLastURISeg;retval=%s", aURI.Mid( i+1 ) );
+        return aURI.Mid( i+1 );
+        }
+    }
+
+//------------------------------------------------------------------------------
+// TPtrC8 CUtils::GetEndOfURIFromSeg(const TDesC8& aURI,const TDesC8 aName)
+// Returns the end of aURI starting from aName
+//------------------------------------------------------------------------------
+TPtrC8 CUtils::GetEndOfURIFromSeg( const TDesC8& aURI, const TDesC8& aName )
+    {
+    OstTraceExt2( TRACE_NORMAL, CUTILS_GETENDOFURIFROMSEG_ENTRY, 
+                  "ENTRY: CUtils::GetEndOfURIFromSeg;aURI=%s;aName=%s", aURI, aName );
+    
+    TInt begin = aURI.Find( aName );
+    
+    if ( begin == KErrNotFound )
+        {
+        OstTrace1( TRACE_NORMAL, CUTILS_GETENDOFURIFROMSEG_EXIT, 
+                   "EXIT: CUtils::GetEndOfURIFromSeg;%d", KErrNotFound );
+        return aURI;
+        }
+    OstTraceExt1( TRACE_NORMAL, CUTILS_GETENDOFURIFROMSEG_EXIT2, 
+                  "EXIT: CUtils::GetEndOfURIFromSeg;%s", aURI.Mid(begin) );    
+    return aURI.Mid(begin);
+    }
+
+//------------------------------------------------------------------------------
+// CUtils::ConvertTo8LC()
+// Converts string value to 8-bit
+//------------------------------------------------------------------------------
+TDesC8& CUtils::ConvertTo8LC( const TDesC& aSource )
+    {
+    HBufC8* buf = HBufC8::NewLC( aSource.Length() * 2 );
+    TPtr8 bufPtr = buf->Des();
+    CnvUtfConverter::ConvertFromUnicodeToUtf8( bufPtr, aSource );
+
+    return *buf;
+    }
+
+//------------------------------------------------------------------------------
+// CUtils::ConvertTo16LC()
+// Converts string value to 16-bit      
+//------------------------------------------------------------------------------
+TDesC16& CUtils::ConvertTo16LC( const TDesC8& aSource )
+    {
+    HBufC16* buf16 = HBufC16::NewLC( aSource.Length() );
+    TPtr bufPtr16 = buf16->Des();
+
+    CnvUtfConverter::ConvertToUnicodeFromUtf8( bufPtr16, aSource );
+
+    return *buf16;
+    }
+
+// -------------------------------------------------------------------------------------
+// CUtils::FillNodeInfoL()
+// Fills the node info in ddf structure
+// -------------------------------------------------------------------------------------
+void CUtils::FillNodeInfoL( MSmlDmDDFObject& aNode,
+                            TSmlDmAccessTypes aAccTypes,
+                            MSmlDmDDFObject::TOccurence aOccurrence, 
+                            MSmlDmDDFObject::TScope aScope, 
+                            MSmlDmDDFObject::TDFFormat aFormat,
+                            const TDesC8& aDescription )
+                                          
+    {
+    aNode.SetAccessTypesL( aAccTypes );
+    aNode.SetOccurenceL( aOccurrence );
+    aNode.SetScopeL( aScope );
+    aNode.SetDFFormatL( aFormat );
+    if( aFormat != MSmlDmDDFObject::ENode )
+        {
+        // aNode.AddDFTypeMimeTypeL(KNSmlMimeType);
+        }
+    if ( aDescription != KNullDesC8 )
+        {
+        aNode.SetDescriptionL( aDescription );
+        }
+    }
+
+// -------------------------------------------------------------------------------------
+// CUtils::StripWhiteSpaces()
+// Removes all white spaces from a string
+// -------------------------------------------------------------------------------------
+void CUtils::RemoveIllegalCharsFromURI( TDes8& aString )
+    {
+    TInt delPos;
+    TInt delLen = 1;
+    
+    aString.TrimAll();
+    delPos = aString.Find( KWhiteSpace );
+    while ( delPos != KErrNotFound )
+        {
+        aString.Delete( delPos,delLen );
+        delPos = aString.Find( KWhiteSpace );
+        }
+    }
+
+// -------------------------------------------------------------------------------------
+// TInt CUtils::DesCToBool
+// -------------------------------------------------------------------------------------
+TInt32 CUtils::DesToBool( const TDesC8& aSource, TBool& aBool )
+    {
+    TInt retval( KErrNone );
+    
+    if ( aSource.Match( KTrue ) != KErrNotFound )
+        {
+        aBool = ETrue;
+        }
+    else if ( aSource.Match( KFalse ) != KErrNotFound )
+        {
+        aBool = EFalse;
+        }
+    else
+        {
+        retval = KErrGeneral;
+        }
+        
+    return retval;
+    }
+
+// -------------------------------------------------------------------------------------
+// CUtils::IntToCharL()
+// -------------------------------------------------------------------------------------
+TDesC8& CUtils::IntToCharL( const TInt& aObject )
+    {
+    HBufC8* buf = HBufC8::NewLC( 8 );
+    TPtr8 ptrBuf = buf->Des();
+
+    ptrBuf.Num( aObject );
+
+    return *buf;
+    }
+//------------------------------------------------------------------------------
+// TPtrC8 CUtils::AppendFirstURISeg( TDes8& aURI, TDes8& aTarget )
+//------------------------------------------------------------------------------
+TInt CUtils::AppendFirstURISeg( TDes8& aURI, TDes8& aTarget )
+    {
+    
+    TInt i = aURI.FindC(_L8("/"));
+    
+    if ( i != KErrNotFound )
+        {
+        aTarget.Append( aURI.Left( i ) );
+        aURI.Copy( aURI.Right( aURI.Length() - i - 1 ) );
+        }
+    else
+        {
+        aTarget.Copy( aURI );
+        aURI.Copy( aURI.Right( 0 ) );
+        }
+    
+    return i;
+    }
+
+//=============================================
+//      CUtils::IntLUID()
+//      Returns IntValue for aLUID
+//=============================================
+TInt CUtils::IntLUID(const TDesC8& aLUID)
+    {
+    TInt ret(0);
+
+    TLex8 lex(aLUID);
+    
+    lex.Val( ret );
+    
+    return ret;
+    }
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/connmoadapter/traces/OstTraceDefinitions.h	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,7 @@
+#ifndef __OSTTRACEDEFINITIONS_H__
+#define __OSTTRACEDEFINITIONS_H__
+// OST_TRACE_COMPILER_IN_USE flag has been added by Trace Compiler
+// REMOVE BEFORE CHECK-IN TO VERSION CONTROL
+//#define OST_TRACE_COMPILER_IN_USE
+#include <opensystemtrace.h>
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/connmoadapter/traces/fixed_id.definitions	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,586 @@
+#Fixed group and trace id definitions. If this file is removed, the identifiers are rebuilt.
+[GROUP]TRACE_FLOW=0x7
+[GROUP]TRACE_NORMAL=0x3
+[TRACE]TRACE_FLOW[0x7]_CADDBUFFER_CADDBUFFER_ENTRY=0x1ef
+[TRACE]TRACE_FLOW[0x7]_CADDBUFFER_CADDBUFFER_EXIT=0x1f0
+[TRACE]TRACE_FLOW[0x7]_CADDBUFFER_CONSTRUCTL_ENTRY=0x1f3
+[TRACE]TRACE_FLOW[0x7]_CADDBUFFER_CONSTRUCTL_EXIT=0x1f4
+[TRACE]TRACE_FLOW[0x7]_CADDBUFFER_DELETE_ENTRY=0x1f7
+[TRACE]TRACE_FLOW[0x7]_CADDBUFFER_DELETE_EXIT=0x1f8
+[TRACE]TRACE_FLOW[0x7]_CADDBUFFER_NEWL_ENTRY=0x1ad
+[TRACE]TRACE_FLOW[0x7]_CADDBUFFER_NEWL_EXIT=0x1ae
+[TRACE]TRACE_FLOW[0x7]_CADDBUFFER_Reset_ENTRY=0x27b
+[TRACE]TRACE_FLOW[0x7]_CADDBUFFER_Reset_EXIT=0x27c
+[TRACE]TRACE_FLOW[0x7]_CBRANCHBASE_CBRANCHBASE_2_ENTRY=0x209
+[TRACE]TRACE_FLOW[0x7]_CBRANCHBASE_CBRANCHBASE_ENTRY=0x207
+[TRACE]TRACE_FLOW[0x7]_CBRANCHBASE_CBRANCHBASE_EXIT=0x208
+[TRACE]TRACE_FLOW[0x7]_CBRANCHBASE_DELETE_ENTRY=0x20b
+[TRACE]TRACE_FLOW[0x7]_CBRANCHBASE_DELETE_EXIT=0x20c
+[TRACE]TRACE_FLOW[0x7]_CBRANCHBASE_GETALLCONNECTIONMETHODSL_ENTRY=0x277
+[TRACE]TRACE_FLOW[0x7]_CBRANCHBASE_GETALLCONNECTIONMETHODSL_EXIT=0x278
+[TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_ADDBASEURIL_ENTRY=0x274
+[TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_ADDBASEURIL_EXIT=0x275
+[TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_ADDBASEURIL_EXIT_2=0x276
+[TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_CCONNMOADAPTER_ENTRY=0x24f
+[TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_CCONNMOADAPTER_EXIT=0x250
+[TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_COMMITATOMICL_ENTRY=0x263
+[TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_COMMITATOMICL_EXIT=0x264
+[TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_COMPLETEOUTSTANDINGCMDSL_ENTRY=0x26b
+[TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_COMPLETEOUTSTANDINGCMDSL_EXIT=0x26c
+[TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_CONSTRUCTL_ENTRY=0x253
+[TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_CONSTRUCTL_EXIT=0x254
+[TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_COPYCOMMANDL_ENTRY=0x25f
+[TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_COPYCOMMANDL_EXIT=0x260
+[TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_DDFSTRUCTUREL_ENTRY=0x257
+[TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_DDFSTRUCTUREL_EXIT=0x258
+[TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_DDFVERSIONL_ENTRY=0x255
+[TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_DDFVERSIONL_EXIT=0x256
+[TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_DELETE_ENTRY=0x251
+[TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_DELETE_EXIT=0x252
+[TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_EXECUTECOMMANDL_ENTRY=0x25b
+[TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_EXECUTECOMMANDL_EXIT=0x25c
+[TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_EXECUTECOMMANDL_STREAM_ENTRY=0x25d
+[TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_EXECUTECOMMANDL_STREAM_EXIT=0x25e
+[TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_NEWLC_ENTRY=0x24d
+[TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_NEWLC_EXIT=0x24e
+[TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_NEWL_ENTRY=0x24b
+[TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_NEWL_EXIT=0x24c
+[TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_ROLLBACKATOMICL_ENTRY=0x265
+[TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_ROLLBACKATOMICL_EXIT=0x266
+[TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_STARTATOMICL_ENTRY=0x261
+[TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_STARTATOMICL_EXIT=0x262
+[TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_STREAMCOMMITTEDL_ENTRY=0x269
+[TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_STREAMCOMMITTEDL_EXIT=0x26a
+[TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_STREAMINGSUPPORT_ENTRY=0x267
+[TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_STREAMINGSUPPORT_EXIT=0x268
+[TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_UPDATELEAFOBJECTL_STREAM_ENTRY=0x259
+[TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_UPDATELEAFOBJECTL_STREAM_EXIT=0x25a
+[TRACE]TRACE_FLOW[0x7]_CCONNMONODEELEMENT_CCONNMONODEELEMENT_ENTRY=0x1eb
+[TRACE]TRACE_FLOW[0x7]_CCONNMONODEELEMENT_CCONNMONODEELEMENT_EXIT=0x1ec
+[TRACE]TRACE_FLOW[0x7]_CCONNMONODEELEMENT_DELETE_ENTRY=0x1f5
+[TRACE]TRACE_FLOW[0x7]_CCONNMONODEELEMENT_DELETE_EXIT=0x1f6
+[TRACE]TRACE_FLOW[0x7]_CNAPBRANCH_CONSTRUCTL_ENTRY=0x7d
+[TRACE]TRACE_FLOW[0x7]_CNAPBRANCH_CONSTRUCTL_EXIT=0x7e
+[TRACE]TRACE_FLOW[0x7]_CNAPBRANCH_CONSTRUCTOR_ENTRY=0x79
+[TRACE]TRACE_FLOW[0x7]_CNAPBRANCH_CONSTRUCTOR_EXIT=0x7a
+[TRACE]TRACE_FLOW[0x7]_CNAPBRANCH_DDFSTRUCTUREL_ENTRY=0x7f
+[TRACE]TRACE_FLOW[0x7]_CNAPBRANCH_DDFSTRUCTUREL_EXIT=0x80
+[TRACE]TRACE_FLOW[0x7]_CNAPBRANCH_DESTRUCTOR_ENTRY=0x7b
+[TRACE]TRACE_FLOW[0x7]_CNAPBRANCH_DESTRUCTOR_EXIT=0x7c
+[TRACE]TRACE_FLOW[0x7]_CNAPBRANCH_IPBRANCHDDFSTRUCTUREL_ENTRY=0x279
+[TRACE]TRACE_FLOW[0x7]_CNAPBRANCH_IPBRANCHDDFSTRUCTUREL_EXIT=0x27a
+[TRACE]TRACE_FLOW[0x7]_CNAPBRANCH_NEWL_ENTRY=0x77
+[TRACE]TRACE_FLOW[0x7]_CNAPBRANCH_NEWL_EXIT=0x78
+[TRACE]TRACE_FLOW[0x7]_CNAPBRANCH_SETLEAFDATAL_ENTRY=0x247
+[TRACE]TRACE_FLOW[0x7]_CONNMOADAPTER_IMPLEMENTATIONGROUPPROXY_ENTRY=0x26d
+[TRACE]TRACE_FLOW[0x7]_CONNMOADAPTER_IMPLEMENTATIONGROUPPROXY_EXIT=0x26e
+[TRACE]TRACE_FLOW[0x7]_CPROXYBRANCH_CONSTRUCTOR_ENTRY=0x8d
+[TRACE]TRACE_FLOW[0x7]_CPROXYBRANCH_CONSTRUCTOR_EXIT=0x8e
+[TRACE]TRACE_FLOW[0x7]_CPROXYBRANCH_DDFSTRUCTUREL_ENTRY=0x91
+[TRACE]TRACE_FLOW[0x7]_CPROXYBRANCH_DDFSTRUCTUREL_EXIT=0x92
+[TRACE]TRACE_FLOW[0x7]_CPROXYBRANCH_DESTRUCTOR_ENTRY=0x8f
+[TRACE]TRACE_FLOW[0x7]_CPROXYBRANCH_DESTRUCTOR_EXIT=0x90
+[TRACE]TRACE_FLOW[0x7]_CPROXYBRANCH_NEWL_ENTRY=0x8b
+[TRACE]TRACE_FLOW[0x7]_CPROXYBRANCH_NEWL_EXIT=0x8c
+[TRACE]TRACE_FLOW[0x7]_CUTILS_CUTILS_ENTRY=0xe4
+[TRACE]TRACE_FLOW[0x7]_CUTILS_CUTILS_EXIT=0xe5
+[TRACE]TRACE_FLOW[0x7]_DUP1_CBRANCHBASE_CBRANCHBASE_2_EXIT=0x20a
+[TRACE]TRACE_NORMAL[0x3]_CADDBUFFER_ADDNODETOBUFFERL_ENTRY=0x1b
+[TRACE]TRACE_NORMAL[0x3]_CADDBUFFER_ADDNODETOBUFFERL_EXIT=0x1c
+[TRACE]TRACE_NORMAL[0x3]_CADDBUFFER_ADDNODETOBUFFERL_LEAF_ENTRY=0x1d
+[TRACE]TRACE_NORMAL[0x3]_CADDBUFFER_ADDNODETOBUFFERL_LEAF_EXIT=0x1e
+[TRACE]TRACE_NORMAL[0x3]_CADDBUFFER_CACHEFINDDYNAMICNODE_ENTRY=0x49
+[TRACE]TRACE_NORMAL[0x3]_CADDBUFFER_CACHEFINDDYNAMICNODE_EXIT=0x4b
+[TRACE]TRACE_NORMAL[0x3]_CADDBUFFER_CACHEFINDDYNAMICNODE_MATCH_FOUND=0x4a
+[TRACE]TRACE_NORMAL[0x3]_CADDBUFFER_CACHEFIND_ENTRY=0x148
+[TRACE]TRACE_NORMAL[0x3]_CADDBUFFER_CACHEFIND_EXIT=0x48
+[TRACE]TRACE_NORMAL[0x3]_CADDBUFFER_CACHEFIND_MATCH_FOUND=0x47
+[TRACE]TRACE_NORMAL[0x3]_CADDBUFFER_CACHEFIND_RESULT_NODE=0x147
+[TRACE]TRACE_NORMAL[0x3]_CADDBUFFER_FINDDYNAMICNODE_ENTRY=0x43
+[TRACE]TRACE_NORMAL[0x3]_CADDBUFFER_FINDDYNAMICNODE_EXIT=0x45
+[TRACE]TRACE_NORMAL[0x3]_CADDBUFFER_FINDDYNAMICNODE_MATCH_FOUND=0x44
+[TRACE]TRACE_NORMAL[0x3]_CADDBUFFER_GETGROUP_ENTRY=0x4c
+[TRACE]TRACE_NORMAL[0x3]_CADDBUFFER_GETGROUP_EXIT=0x4d
+[TRACE]TRACE_NORMAL[0x3]_CBRANCHBASE_CHECKPREVIOUSURILIST_ENTRY=0x61
+[TRACE]TRACE_NORMAL[0x3]_CBRANCHBASE_CHECKPREVIOUSURILIST_EXIT=0x9d
+[TRACE]TRACE_NORMAL[0x3]_CBRANCHBASE_GETALLCONNECTIONMETHODSL_COUNT=0x16e
+[TRACE]TRACE_NORMAL[0x3]_CBRANCHBASE_GETALLDYNAMICNODESL_ENTRY=0x65
+[TRACE]TRACE_NORMAL[0x3]_CBRANCHBASE_GETALLDYNAMICNODESL_EXIT=0x67
+[TRACE]TRACE_NORMAL[0x3]_CBRANCHBASE_GETCONNECTIONMETHODLC_ENTRY=0x173
+[TRACE]TRACE_NORMAL[0x3]_CBRANCHBASE_GETCONNECTIONMETHODLC_EXIT_FOUND=0x175
+[TRACE]TRACE_NORMAL[0x3]_CBRANCHBASE_GETCONNECTIONMETHODLC_EXIT_NOT_FOUND=0x174
+[TRACE]TRACE_NORMAL[0x3]_CCONNMOADAPTER_ADDBRANCHL_ENTRY=0x16c
+[TRACE]TRACE_NORMAL[0x3]_CCONNMOADAPTER_ADDBRANCHL_EXIT=0x16d
+[TRACE]TRACE_NORMAL[0x3]_CCONNMOADAPTER_ADDNODEOBJECTL_ENTRY=0x157
+[TRACE]TRACE_NORMAL[0x3]_CCONNMOADAPTER_ADDNODEOBJECTL_EXIT=0x158
+[TRACE]TRACE_NORMAL[0x3]_CCONNMOADAPTER_CHILDURILISTL_ENTRY=0x155
+[TRACE]TRACE_NORMAL[0x3]_CCONNMOADAPTER_CHILDURILISTL_EXIT=0x156
+[TRACE]TRACE_NORMAL[0x3]_CCONNMOADAPTER_COMMITATOMICL_UNSUPPORTED_METHOD_CALL=0x15d
+[TRACE]TRACE_NORMAL[0x3]_CCONNMOADAPTER_COPYCOMMANDL_UNSUPPORTED_METHOD_CALL=0x15b
+[TRACE]TRACE_NORMAL[0x3]_CCONNMOADAPTER_DELETEOBJECTL_ENTRY=0x14f
+[TRACE]TRACE_NORMAL[0x3]_CCONNMOADAPTER_DELETEOBJECTL_EXIT=0x150
+[TRACE]TRACE_NORMAL[0x3]_CCONNMOADAPTER_EXECUTECOMMANDL_STREAM_UNSUPPORTED_METHOD_CALL=0x15a
+[TRACE]TRACE_NORMAL[0x3]_CCONNMOADAPTER_EXECUTECOMMANDL_UNSUPPORTED_METHOD_CALL=0x159
+[TRACE]TRACE_NORMAL[0x3]_CCONNMOADAPTER_FETCHLEAFOBJECTL_ENTRY=0x151
+[TRACE]TRACE_NORMAL[0x3]_CCONNMOADAPTER_FETCHLEAFOBJECTL_EXIT=0x152
+[TRACE]TRACE_NORMAL[0x3]_CCONNMOADAPTER_FETCHLEAFOBJECTSIZEL_ENTRY=0x153
+[TRACE]TRACE_NORMAL[0x3]_CCONNMOADAPTER_FETCHLEAFOBJECTSIZEL_EXIT=0x154
+[TRACE]TRACE_NORMAL[0x3]_CCONNMOADAPTER_ROLLBACKATOMICL_UNSUPPORTED_METHOD_CALL=0x15e
+[TRACE]TRACE_NORMAL[0x3]_CCONNMOADAPTER_STARTATOMICL_UNSUPPORTED_METHOD_CALL=0x15c
+[TRACE]TRACE_NORMAL[0x3]_CCONNMOADAPTER_STREAMCOMMMITTEDL_UNSUPPORTED_METHOD_CALL=0x160
+[TRACE]TRACE_NORMAL[0x3]_CCONNMOADAPTER_STREAMINGSUPPORT_NOT_SUPPORTED=0x15f
+[TRACE]TRACE_NORMAL[0x3]_CCONNMOADAPTER_UPDATELEAFOBJECTL_ENTRY=0x14c
+[TRACE]TRACE_NORMAL[0x3]_CCONNMOADAPTER_UPDATELEAFOBJECTL_EXIT=0x14d
+[TRACE]TRACE_NORMAL[0x3]_CCONNMOADAPTER_UPDATELEAFOBJECTL_STREAM_UNSUPPORTED_METHOD_CALL=0x14e
+[TRACE]TRACE_NORMAL[0x3]_CNAPBRANCH_ADDNODEOBJECTL=0x18a
+[TRACE]TRACE_NORMAL[0x3]_CNAPBRANCH_ADDNODEOBJECTL_ALLREADY_EXISTS=0x181
+[TRACE]TRACE_NORMAL[0x3]_CNAPBRANCH_ADDNODEOBJECTL_ENTRY=0xdc
+[TRACE]TRACE_NORMAL[0x3]_CNAPBRANCH_ADDNODEOBJECTL_EXIT=0xdd
+[TRACE]TRACE_NORMAL[0x3]_CNAPBRANCH_ADDNODEOBJECTL_NEW_NODE=0x165
+[TRACE]TRACE_NORMAL[0x3]_CNAPBRANCH_ADDNODEOBJECTL_NEW_NODE2=0x169
+[TRACE]TRACE_NORMAL[0x3]_CNAPBRANCH_ALLMANDATORYNAPFIELDSFOUND_ENTRY=0xb8
+[TRACE]TRACE_NORMAL[0x3]_CNAPBRANCH_ALLMANDATORYNAPFIELDSFOUND_EXIT=0xb9
+[TRACE]TRACE_NORMAL[0x3]_CNAPBRANCH_CHILDURILISTL=0x6
+[TRACE]TRACE_NORMAL[0x3]_CNAPBRANCH_CHILDURILISTL_ENTRY=0xd8
+[TRACE]TRACE_NORMAL[0x3]_CNAPBRANCH_DELETEOBJECTL_ENTRY=0xcb
+[TRACE]TRACE_NORMAL[0x3]_CNAPBRANCH_DELETEOBJECTL_EXIT=0xcc
+[TRACE]TRACE_NORMAL[0x3]_CNAPBRANCH_DELETEOBJECTL_PRIVATE_DELETE=0x166
+[TRACE]TRACE_NORMAL[0x3]_CNAPBRANCH_DELETEOBJECTL_PRIVATE_ENTRY=0xc7
+[TRACE]TRACE_NORMAL[0x3]_CNAPBRANCH_DELETEOBJECTL_PRIVATE_EXIT=0xc8
+[TRACE]TRACE_NORMAL[0x3]_CNAPBRANCH_DUP1_FETCHLEAFOBJECTL_NOT_FOUND=0x189
+[TRACE]TRACE_NORMAL[0x3]_CNAPBRANCH_DUP_FETCHLEAFOBJECTL_NOT_FOUND=0x188
+[TRACE]TRACE_NORMAL[0x3]_CNAPBRANCH_FETCHLEAFOBJECTL_ENTRY=0xcf
+[TRACE]TRACE_NORMAL[0x3]_CNAPBRANCH_FETCHLEAFOBJECTL_EXIT=0xd3
+[TRACE]TRACE_NORMAL[0x3]_CNAPBRANCH_FETCHLEAFOBJECTL_NOT_FOUND=0xd2
+[TRACE]TRACE_NORMAL[0x3]_CNAPBRANCH_FETCHLEAFOBJECTL_STATUS=0xd0
+[TRACE]TRACE_NORMAL[0x3]_CNAPBRANCH_FETCHLEAFOBJECTSIZEL_ENTRY=0xd4
+[TRACE]TRACE_NORMAL[0x3]_CNAPBRANCH_FETCHLEAFOBJECTSIZEL_EXIT=0xd7
+[TRACE]TRACE_NORMAL[0x3]_CNAPBRANCH_FETCHLEAFOBJECTSIZEL_NOT_FOUND=0xd6
+[TRACE]TRACE_NORMAL[0x3]_CNAPBRANCH_FETCHLEAFOBJECTSIZEL_STATUS=0xd5
+[TRACE]TRACE_NORMAL[0x3]_CNAPBRANCH_FINDNEWCMTYPE_3GPP=0xb4
+[TRACE]TRACE_NORMAL[0x3]_CNAPBRANCH_FINDNEWCMTYPE_ENTRY=0xb2
+[TRACE]TRACE_NORMAL[0x3]_CNAPBRANCH_FINDNEWCMTYPE_EXIT=0xb3
+[TRACE]TRACE_NORMAL[0x3]_CNAPBRANCH_GETDYNAMICNAPNODEURI=0x17a
+[TRACE]TRACE_NORMAL[0x3]_CNAPBRANCH_GETLEAFDATAL_ENTRY=0xa3
+[TRACE]TRACE_NORMAL[0x3]_CNAPBRANCH_GETLEAFDATAL_EXIT=0x9a
+[TRACE]TRACE_NORMAL[0x3]_CNAPBRANCH_GETUNMODIFIABLEFIELDADDRESULT_ENTRY=0xa4
+[TRACE]TRACE_NORMAL[0x3]_CNAPBRANCH_GETUNMODIFIABLEFIELDVALUEL_ENTRY=0x16f
+[TRACE]TRACE_NORMAL[0x3]_CNAPBRANCH_GETUNMODIFIABLEFIELDVALUEL_EXIT=0x170
+[TRACE]TRACE_NORMAL[0x3]_CNAPBRANCH_MAPURITOCMATTRIBUTE_ENTRY=0xac
+[TRACE]TRACE_NORMAL[0x3]_CNAPBRANCH_MAPURITOCMATTRIBUTE_EXIT=0xa8
+[TRACE]TRACE_NORMAL[0x3]_CNAPBRANCH_MAPURITOCMATTRIBUTE_GET_NODE=0xa7
+[TRACE]TRACE_NORMAL[0x3]_CNAPBRANCH_NAPCHILDURILISTL_ADDED_TO_LIST=0xc1
+[TRACE]TRACE_NORMAL[0x3]_CNAPBRANCH_NAPCHILDURILISTL_ENTRY=0xc0
+[TRACE]TRACE_NORMAL[0x3]_CNAPBRANCH_NAPCHILDURILISTL_EXIT=0xc2
+[TRACE]TRACE_NORMAL[0x3]_CNAPBRANCH_PROCESSBUFFERL_ENTRY=0xdf
+[TRACE]TRACE_NORMAL[0x3]_CNAPBRANCH_PROCESSBUFFERL_EXIT=0xe0
+[TRACE]TRACE_NORMAL[0x3]_CNAPBRANCH_SETLEAFDATAL_EXIT=0xae
+[TRACE]TRACE_NORMAL[0x3]_CNAPBRANCH_SETLEAFDATAL_GET_CMATTRIB=0xad
+[TRACE]TRACE_NORMAL[0x3]_CNAPBRANCH_SETNODEDATAL_ENTRY=0xaf
+[TRACE]TRACE_NORMAL[0x3]_CNAPBRANCH_SETNODEDATAL_EXISTS=0x163
+[TRACE]TRACE_NORMAL[0x3]_CNAPBRANCH_SETNODEDATAL_EXIT=0x161
+[TRACE]TRACE_NORMAL[0x3]_CNAPBRANCH_SETNODEDATAL_OK=0x162
+[TRACE]TRACE_NORMAL[0x3]_CNAPBRANCH_UPDATELEAFOBJECTL=0x176
+[TRACE]TRACE_NORMAL[0x3]_CNAPBRANCH_UPDATELEAFOBJECTL_ENTRY=0xc5
+[TRACE]TRACE_NORMAL[0x3]_CNAPBRANCH_UPDATELEAFOBJECTL_EXIT=0xc6
+[TRACE]TRACE_NORMAL[0x3]_CPROXYBRANCH_ADDNODEOBJECTL_ALREADY_EXISTS=0x10b
+[TRACE]TRACE_NORMAL[0x3]_CPROXYBRANCH_ADDNODEOBJECTL_ENTRY=0x109
+[TRACE]TRACE_NORMAL[0x3]_CPROXYBRANCH_ADDNODEOBJECTL_EXIT=0x10c
+[TRACE]TRACE_NORMAL[0x3]_CPROXYBRANCH_ADDNODEOBJECTL_NEW_NODE=0x167
+[TRACE]TRACE_NORMAL[0x3]_CPROXYBRANCH_ADDNODEOBJECTL_NEW_NODE2=0x168
+[TRACE]TRACE_NORMAL[0x3]_CPROXYBRANCH_ALLMANDATORYPROXYFIELDSFOUND_ENTRY=0xf2
+[TRACE]TRACE_NORMAL[0x3]_CPROXYBRANCH_ALLMANDATORYPROXYFIELDSFOUND_EXIT=0xf3
+[TRACE]TRACE_NORMAL[0x3]_CPROXYBRANCH_CHECKFORUNMODIFIABLEFIELD_ENTRY=0xe6
+[TRACE]TRACE_NORMAL[0x3]_CPROXYBRANCH_CHECKFORUNMODIFIABLEFIELD_EXIT=0xe7
+[TRACE]TRACE_NORMAL[0x3]_CPROXYBRANCH_CHILDURILISTL_ENTRY=0x106
+[TRACE]TRACE_NORMAL[0x3]_CPROXYBRANCH_CHILDURILISTL_EXIT=0x108
+[TRACE]TRACE_NORMAL[0x3]_CPROXYBRANCH_CHILDURILISTL_NOT_FOUND=0x107
+[TRACE]TRACE_NORMAL[0x3]_CPROXYBRANCH_FETCHLEAFOBJECTL_ENTRY=0xe3
+[TRACE]TRACE_NORMAL[0x3]_CPROXYBRANCH_FETCHLEAFOBJECTL_EXIT=0xe5
+[TRACE]TRACE_NORMAL[0x3]_CPROXYBRANCH_FETCHLEAFOBJECTL_NOT_FOUND=0xe4
+[TRACE]TRACE_NORMAL[0x3]_CPROXYBRANCH_FETCHLEAFOBJECTL_PUPLIC_ENTRY=0x102
+[TRACE]TRACE_NORMAL[0x3]_CPROXYBRANCH_FETCHLEAFOBJECTL_PUPLIC_EXIT=0x103
+[TRACE]TRACE_NORMAL[0x3]_CPROXYBRANCH_FETCHLEAFOBJECTSIZEL_ENTRY=0x104
+[TRACE]TRACE_NORMAL[0x3]_CPROXYBRANCH_FETCHLEAFOBJECTSIZEL_EXIT=0x105
+[TRACE]TRACE_NORMAL[0x3]_CPROXYBRANCH_FETCHLEAFOBJECT_OK=0x18
+[TRACE]TRACE_NORMAL[0x3]_CPROXYBRANCH_FINDCONNECTIONMETHODL_ENTRY=0x171
+[TRACE]TRACE_NORMAL[0x3]_CPROXYBRANCH_FINDCONNECTIONMETHODL_EXIT=0x172
+[TRACE]TRACE_NORMAL[0x3]_CPROXYBRANCH_GETALLDYNAMICPROXYNODESL_ENTRY=0xf8
+[TRACE]TRACE_NORMAL[0x3]_CPROXYBRANCH_GETALLDYNAMICPROXYNODESL_EXIT=0xfa
+[TRACE]TRACE_NORMAL[0x3]_CPROXYBRANCH_GETALLDYNAMICPROXYNODESL_PROXY=0xfb
+[TRACE]TRACE_NORMAL[0x3]_CPROXYBRANCH_GETALLDYNAMICPROXYNODES_ADDED_TO_LIST=0x1
+[TRACE]TRACE_NORMAL[0x3]_CPROXYBRANCH_GETDYNAMICPROXYNODEURI=0x17e
+[TRACE]TRACE_NORMAL[0x3]_CPROXYBRANCH_MAPURITOCMATTRIBUTE_ENTRY=0xea
+[TRACE]TRACE_NORMAL[0x3]_CPROXYBRANCH_MAPURITOCMATTRIBUTE_EXIT=0xeb
+[TRACE]TRACE_NORMAL[0x3]_CPROXYBRANCH_PROCESSBUFFERL_ENTRY=0x10d
+[TRACE]TRACE_NORMAL[0x3]_CPROXYBRANCH_PROCESSBUFFERL_EXIT=0x10f
+[TRACE]TRACE_NORMAL[0x3]_CPROXYBRANCH_SETLEAFDATAL_ENTRY=0xf4
+[TRACE]TRACE_NORMAL[0x3]_CPROXYBRANCH_SETLEAFDATAL_EXIT=0xf5
+[TRACE]TRACE_NORMAL[0x3]_CPROXYBRANCH_SETNODEDATAL_ENTRY=0xf6
+[TRACE]TRACE_NORMAL[0x3]_CPROXYBRANCH_SETNODEDATAL_EXIT=0xf7
+[TRACE]TRACE_NORMAL[0x3]_CPROXYBRANCH_UPDATELEAFOBJECTL=0x179
+[TRACE]TRACE_NORMAL[0x3]_CPROXYBRANCH_UPDATELEAFOBJECTL_ENTRY=0xfe
+[TRACE]TRACE_NORMAL[0x3]_CPROXYBRANCH_UPDATELEAFOBJECTL_EXIT=0xff
+[TRACE]TRACE_NORMAL[0x3]_CUTILS_GETENDOFURIFROMSEG_ENTRY=0x13b
+[TRACE]TRACE_NORMAL[0x3]_CUTILS_GETENDOFURIFROMSEG_EXIT=0x13c
+[TRACE]TRACE_NORMAL[0x3]_CUTILS_GETENDOFURIFROMSEG_EXIT2=0x13f
+[TRACE]TRACE_NORMAL[0x3]_CUTILS_GETFIRSTURISEG_ENTRY=0x110
+[TRACE]TRACE_NORMAL[0x3]_CUTILS_GETFIRSTURISEG_EXIT=0x13d
+[TRACE]TRACE_NORMAL[0x3]_CUTILS_GETLASTURISEG_ENTRY=0x123
+[TRACE]TRACE_NORMAL[0x3]_CUTILS_GETLASTURISEG_EXIT=0x124
+[TRACE]TRACE_NORMAL[0x3]_CUTILS_GETLASTURISEG_EXIT2=0x141
+[TRACE]TRACE_NORMAL[0x3]_CUTILS_GETSECONDTURISEG_EXIT=0x140
+[TRACE]TRACE_NORMAL[0x3]_CUTILS_GETSECONDURISEG_ENTRY=0x112
+[TRACE]TRACE_NORMAL[0x3]_DUP1_CNAPBRANCH_CHILDURILISTL=0x182
+[TRACE]TRACE_NORMAL[0x3]_DUP1_CNAPBRANCH_CHILDURILISTL_EXIT=0xd9
+[TRACE]TRACE_NORMAL[0x3]_DUP1_CNAPBRANCH_GETDYNAMICNAPNODEURI=0x17b
+[TRACE]TRACE_NORMAL[0x3]_DUP1_CNAPBRANCH_GETUNMODIFIABLEFIELDADDRESULT_EXIT=0xa5
+[TRACE]TRACE_NORMAL[0x3]_DUP1_CNAPBRANCH_UPDATELEAFOBJECTL=0x177
+[TRACE]TRACE_NORMAL[0x3]_DUP1_CPROXYBRANCH_CHILDURILISTL=0x186
+[TRACE]TRACE_NORMAL[0x3]_DUP1_CPROXYBRANCH_UPDATELEAFOBJECTL=0x178
+[TRACE]TRACE_NORMAL[0x3]_DUP1_CPROXYRANCH_GETDYNAMICPROXYNODEURI=0x17f
+[TRACE]TRACE_NORMAL[0x3]_DUP2_CNAPBRANCH_CHILDURILISTL=0x183
+[TRACE]TRACE_NORMAL[0x3]_DUP2_CPROXYBRANCH_CHILDURILISTL=0x187
+[[OBSOLETE]][TRACE]TRACE_DEBUG[0x9]_CUTILS_GETSEGPOSITIONFROMURI=0x1
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CADDBUFFER_AddNodeToBufferL_ENTRY=0x1b3
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CADDBUFFER_AddNodeToBufferL_EXIT=0x1b4
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CADDBUFFER_AddNodeToBufferL__leaf_EXIT=0x1b6
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CADDBUFFER_AddNodeToBufferL_leaf_ENTRY=0x1b5
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CADDBUFFER_CONSTRUCTOR_ENTRY=0x1af
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CADDBUFFER_CONSTRUCTOR_EXIT=0x1b0
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CADDBUFFER_CacheFindDynamicNode_ENTRY=0x1c5
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CADDBUFFER_CacheFindDynamicNode_EXIT=0x1c6
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CADDBUFFER_CacheFind_ENTRY=0x1c3
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CADDBUFFER_CacheFind_EXIT=0x1c4
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CADDBUFFER_DESTRUCTOR_ENTRY=0x1b1
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CADDBUFFER_DESTRUCTOR_EXIT=0x1b2
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CADDBUFFER_FindDynamicNode_ENTRY=0x1b9
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CADDBUFFER_FindDynamicNode_EXIT=0x1ba
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CADDBUFFER_Find_ENTRY=0x1b7
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CADDBUFFER_Find_EXIT=0x1b8
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CADDBUFFER_GetGroup_ENTRY=0x1bb
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CADDBUFFER_GetGroup_EXIT=0x1bc
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CADDBUFFER_NEWLC_ENTRY=0x9d
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CADDBUFFER_NEWLC_EXIT=0x9e
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CADDBUFFER_NEWL_ENTRY=0x9b
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CADDBUFFER_NEWL_EXIT=0x9c
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CBRANCHBASE_CALLBACK_ENTRY=0x20d
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CBRANCHBASE_CALLBACK_EXIT=0x20e
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CBRANCHBASE_GETALLCONNECTIONMETHODS_ENTRY=0x20f
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CBRANCHBASE_GETALLCONNECTIONMETHODS_EXIT=0x210
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_ADDBASEURI_ENTRY=0x248
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_ADDBASEURI_EXIT=0x249
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_ADDBASEURI_EXIT_2=0x24a
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_ADDBRANCH_ENTRY=0x165
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_ADDBRANCH_EXIT=0x166
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_ADDNODEOBJECTL_ENTRY=0x181
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_ADDNODEOBJECTL_EXIT=0x182
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_CCONNMOADAPTER_ENTRY=0x214
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_CCONNMOADAPTER_EXIT=0x215
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_CHILDURILISTL_ENTRY=0x17f
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_CHILDURILISTL_EXIT=0x180
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_COMMITATOMICL_ENTRY=0x18b
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_COMMITATOMICL_EXIT=0x18c
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_COMPLETEOUTSTANDINGCMDSL_ENTRY=0x193
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_COMPLETEOUTSTANDINGCMDSL_EXIT=0x194
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_CONSTRUCTL_ENTRY=0x16f
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_CONSTRUCTL_EXIT=0x170
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_CONSTRUCTOR_ENTRY=0x16b
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_CONSTRUCTOR_EXIT=0x16c
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_COPYCOMMANDL_ENTRY=0x228
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_COPYCOMMANDL_EXIT=0x229
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_DDFSTRUCTUREL_ENTRY=0x173
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_DDFSTRUCTUREL_EXIT=0x174
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_DDFVERSIONL_ENTRY=0x171
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_DDFVERSIONL_EXIT=0x172
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_DELETEOBJECTL_ENTRY=0x179
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_DELETEOBJECTL_EXIT=0x17a
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_DELETE_ENTRY=0x218
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_DELETE_EXIT=0x219
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_DESTRUCTOR_ENTRY=0x16d
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_DESTRUCTOR_EXIT=0x16e
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_EXECUTECOMMANDL_ENTRY=0x224
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_EXECUTECOMMANDL_EXIT=0x225
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_EXECUTECOMMANDL_STREAM_ENTRY=0x226
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_EXECUTECOMMANDL_STREAM_EXIT=0x227
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_FETCHLEAFOBJECTL_ENTRY=0x17b
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_FETCHLEAFOBJECTL_EXIT=0x17c
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_FETCHLEAFOBJECTSIZEL_ENTRY=0x17d
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_FETCHLEAFOBJECTSIZEL_EXIT=0x17e
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_NEWLC_ENTRY=0x169
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_NEWLC_EXIT=0x16a
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_NEWL_ENTRY=0x167
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_NEWL_EXIT=0x168
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_ROLLBACKATOMICL_ENTRY=0x18d
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_ROLLBACKATOMICL_EXIT=0x18e
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_STARTATOMICL_ENTRY=0x189
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_STARTATOMICL_EXIT=0x18a
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_STREAMCOMMITTEDL_ENTRY=0x191
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_STREAMCOMMITTEDL_EXIT=0x192
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_STREAMINGSUPPORT_ENTRY=0x18f
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_STREAMINGSUPPORT_EXIT=0x190
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_UPDATELEAFOBJECTL_ENTRY=0x175
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_UPDATELEAFOBJECTL_EXIT=0x176
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_UPDATELEAFOBJECTL_STREAM_ENTRY=0x22a
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CCONNMOADAPTER_UPDATELEAFOBJECTL_STREAM_EXIT=0x237
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CEAPBRANCH_ADDNODEOBJECTL_ENTRY=0x1ab
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CEAPBRANCH_ADDNODEOBJECTL_EXIT=0x1ac
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CEAPBRANCH_CHILDURILISTL_ENTRY=0x1a9
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CEAPBRANCH_CHILDURILISTL_EXIT=0x1aa
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CEAPBRANCH_CONSTRUCTOR_ENTRY=0x233
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CEAPBRANCH_CONSTRUCTOR_EXIT=0x234
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CEAPBRANCH_DDFSTRUCTUREL_ENTRY=0x19d
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CEAPBRANCH_DDFSTRUCTUREL_EXIT=0x19e
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CEAPBRANCH_DELETEOBJECTL_ENTRY=0x1a3
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CEAPBRANCH_DELETEOBJECTL_EXIT=0x1a4
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CEAPBRANCH_DESTRUCTOR_ENTRY=0x235
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CEAPBRANCH_DESTRUCTOR_EXIT=0x236
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CEAPBRANCH_FETCHLEAFOBJECTL_ENTRY=0x1a5
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CEAPBRANCH_FETCHLEAFOBJECTL_EXIT=0x1a6
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CEAPBRANCH_FETCHLEAFOBJECTSIZEL_ENTRY=0x1a7
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CEAPBRANCH_FETCHLEAFOBJECTSIZEL_EXIT=0x1a8
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CEAPBRANCH_NEWL_ENTRY=0x232
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CEAPBRANCH_NEWL_EXIT=0x22d
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CEAPBRANCH_UPDATELEAFOBJECTL_ENTRY=0x19f
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CEAPBRANCH_UPDATELEAFOBJECTL_EXIT=0x1a0
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CNAPBRANCH_ADDNODEOBJECTL_ENTRY=0xc2
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CNAPBRANCH_ADDNODEOBJECTL_EXIT=0xc3
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CNAPBRANCH_AllMandatoryNapFieldsFound_ENTRY=0x14b
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CNAPBRANCH_AllMandatoryNapFieldsFound_EXIT=0x14c
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CNAPBRANCH_CHECKPREVIOUSURILIST_ENTRY=0xe8
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CNAPBRANCH_CHECKPREVIOUSURILIST_EXIT=0xe9
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CNAPBRANCH_CHILDURILISTL_ENTRY=0xc0
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CNAPBRANCH_CHILDURILISTL_EXIT=0xc1
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CNAPBRANCH_CheckForUnmodifiableField_ENTRY=0x141
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CNAPBRANCH_CheckForUnmodifiableField_EXIT=0x142
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CNAPBRANCH_DELETEOBJECTL_ENTRY=0xba
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CNAPBRANCH_DELETEOBJECTL_EXIT=0xbb
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CNAPBRANCH_FETCHLEAFOBJECTL_ENTRY=0xbc
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CNAPBRANCH_FETCHLEAFOBJECTL_EXIT=0xbd
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CNAPBRANCH_FETCHLEAFOBJECTSIZEL_ENTRY=0xbe
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CNAPBRANCH_FETCHLEAFOBJECTSIZEL_EXIT=0xbf
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CNAPBRANCH_FindNewCmType_ENTRY=0x149
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CNAPBRANCH_FindNewCmType_EXIT=0x14a
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CNAPBRANCH_GETURILISTFORNAPNODEL_ENTRY=0x127
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CNAPBRANCH_GETURILISTFORNAPNODEL_EXIT=0x128
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CNAPBRANCH_GetLeafDataL_ENTRY=0x1c1
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CNAPBRANCH_GetLeafDataL_EXIT=0x1c2
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CNAPBRANCH_GetUnmodifiableFieldValue_ENTRY=0x1bf
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CNAPBRANCH_GetUnmodifiableFieldValue_EXIT=0x1c0
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CNAPBRANCH_IPBRANCHDDFSTRUCTURE_ENTRY=0x81
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CNAPBRANCH_IPBRANCHDDFSTRUCTURE_EXIT=0x82
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CNAPBRANCH_MapUriToCmAttribute_ENTRY=0x143
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CNAPBRANCH_MapUriToCmAttribute_EXIT=0x144
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CNAPBRANCH_NAPCHILDURILISTL_ENTRY=0x105
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CNAPBRANCH_NAPCHILDURILISTL_EXIT=0x106
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CNAPBRANCH_ProcessBufferL_ENTRY=0x14d
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CNAPBRANCH_ProcessBufferL_EXIT=0x14e
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CNAPBRANCH_SetLeafDataL_ENTRY=0x145
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CNAPBRANCH_SetLeafDataL_EXIT=0x146
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CNAPBRANCH_SetNodeDataL_ENTRY=0x147
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CNAPBRANCH_SetNodeDataL_EXIT=0x148
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CNAPBRANCH_UPDATELEAFOBJECTL_ENTRY=0xb6
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CNAPBRANCH_UPDATELEAFOBJECTL_EXIT=0xb7
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CNAPBRANCH_UPDATELEAFOBJECTL_STREAM_ENTRY=0xb8
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CNAPBRANCH_UPDATELEAFOBJECTL_STREAM_EXIT=0xb9
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CONNMOADAPTER_IMPLEMENTATIONGROUPPROXY_ENTRY=0x195
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CONNMOADAPTER_IMPLEMENTATIONGROUPPROXY_EXIT=0x196
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CPROXYBRANCH_ADDNODEOBJECTL_ENTRY=0x121
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CPROXYBRANCH_ADDNODEOBJECTL_EXIT=0x122
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CPROXYBRANCH_AllMandatoryProxyFieldsFound_ENTRY=0x135
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CPROXYBRANCH_AllMandatoryProxyFieldsFound_EXIT=0x136
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CPROXYBRANCH_CHILDURILISTL_ENTRY=0x11f
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CPROXYBRANCH_CHILDURILISTL_EXIT=0x120
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CPROXYBRANCH_CheckForUnmodifiableField_ENTRY=0x12f
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CPROXYBRANCH_CheckForUnmodifiableField_EXIT=0x130
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CPROXYBRANCH_DELETEOBJECTL_ENTRY=0x119
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CPROXYBRANCH_DELETEOBJECTL_EXIT=0x11a
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CPROXYBRANCH_FETCHLEAFOBJECTL_ENTRY=0x11b
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CPROXYBRANCH_FETCHLEAFOBJECTL_EXIT=0x11c
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CPROXYBRANCH_FETCHLEAFOBJECTSIZEL_ENTRY=0x11d
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CPROXYBRANCH_FETCHLEAFOBJECTSIZEL_EXIT=0x11e
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CPROXYBRANCH_FindConnectionMethod_ENTRY=0x133
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CPROXYBRANCH_FindConnectionMethod_EXIT=0x134
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CPROXYBRANCH_GETALLDYNAMICPROXYNODES_ENTRY=0x113
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CPROXYBRANCH_GETALLDYNAMICPROXYNODES_EXIT=0x114
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CPROXYBRANCH_GETCONNECTIONMETHOD_ENTRY=0x110
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CPROXYBRANCH_GETCONNECTIONMETHOD_EXIT=0x111
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CPROXYBRANCH_GETDYNAMICNODESFORPROXYFIELDL_ENTRY=0x125
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CPROXYBRANCH_GETDYNAMICNODESFORPROXYFIELDL_EXIT=0x126
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CPROXYBRANCH_GETURILISTFORPROXYNODEL_ENTRY=0x123
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CPROXYBRANCH_GETURILISTFORPROXYNODEL_EXIT=0x124
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CPROXYBRANCH_MapUriToCmAttribute_ENTRY=0x131
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CPROXYBRANCH_MapUriToCmAttribute_EXIT=0x132
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CPROXYBRANCH_ProcessBufferL_ENTRY=0x13b
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CPROXYBRANCH_ProcessBufferL_EXIT=0x13c
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CPROXYBRANCH_SetLeafDataL_ENTRY=0x137
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CPROXYBRANCH_SetLeafDataL_EXIT=0x138
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CPROXYBRANCH_SetNodeDataL_ENTRY=0x139
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CPROXYBRANCH_SetNodeDataL_EXIT=0x13a
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CPROXYBRANCH_UPDATELEAFOBJECTL_ENTRY=0x115
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CPROXYBRANCH_UPDATELEAFOBJECTL_EXIT=0x116
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CPROXYBRANCH_UPDATELEAFOBJECTL_STREAM_ENTRY=0x117
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CPROXYBRANCH_UPDATELEAFOBJECTL_STREAM_EXIT=0x118
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CUTILS_CONSTRUCTL_ENTRY=0x26
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CUTILS_CONSTRUCTL_EXIT=0x27
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CUTILS_CONVERTTO16LC_ENTRY=0x1a
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CUTILS_CONVERTTO16LC_EXIT=0x1b
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CUTILS_CONVERTTO8LC_ENTRY=0x18
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CUTILS_CONVERTTO8LC_EXIT=0x19
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CUTILS_CUTILS_ENTRY=0x22
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CUTILS_CUTILS_EXIT=0x23
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CUTILS_DESTOINT_ENTRY=0x1c
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CUTILS_DESTOINT_EXIT=0x1d
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CUTILS_DesToBool_ENTRY=0x13d
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CUTILS_DesToBool_EXIT=0x13e
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CUTILS_ExtractCmId_ENTRY=0x13f
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CUTILS_ExtractCmId_EXIT=0x140
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CUTILS_GETALLDYNAMICNODESL_ENTRY=0x1bd
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CUTILS_GETALLDYNAMICNODESL_EXIT=0x1be
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CUTILS_GETENDOFURIFROMSEG_ENTRY=0x3f
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CUTILS_GETENDOFURIFROMSEG_EXIT=0x41
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CUTILS_GETFIRSTURISEG_ENTRY=0xea
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CUTILS_GETFIRSTURISEG_EXIT=0x104
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CUTILS_GETLASTURISEG_ENTRY=0x33
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CUTILS_GETLASTURISEG_EXIT=0x36
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CUTILS_GETLASTURISEG_EXIT2=0x37
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CUTILS_GETSECONDTURISEG_EXIT=0xec
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CUTILS_GETSECONDURISEG_ENTRY=0xeb
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CUTILS_GETSEGFROMURI_ENTRY=0x3c
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CUTILS_GETSEGFROMURI_EXIT=0x3d
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CUTILS_GETSEGPOSITIONFROMURI_ENTRY=0x49
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CUTILS_GETSEGPOSITIONFROMURI_EXIT=0x4a
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CUTILS_GETURILISTFORNODEL_ENTRY=0x12d
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CUTILS_GETURILISTFORNODEL_EXIT=0x12e
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CUTILS_NEWLC_ENTRY=0xe2
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CUTILS_NEWLC_EXIT=0xe3
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CUTILS_NEWL_ENTRY=0xe0
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CUTILS_NEWL_EXIT=0xe1
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CUTILS_NUMOFURISEGS_ENTRY=0x39
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CUTILS_NUMOFURISEGS_ENTRY_EXIT=0x3b
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CUTILS_NUMOFURISEGS_EXIT=0xf
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CUTILS_NUMOFURISEG_ENTRY=0x38
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CWLANBRANCH_ADDNODEOBJECTL_ENTRY=0x163
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CWLANBRANCH_ADDNODEOBJECTL_EXIT=0x164
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CWLANBRANCH_CHILDURILISTL_ENTRY=0x161
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CWLANBRANCH_CHILDURILISTL_EXIT=0x162
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CWLANBRANCH_CONSTRUCTOR_ENTRY=0x151
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CWLANBRANCH_CONSTRUCTOR_EXIT=0x152
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CWLANBRANCH_DDFSTRUCTUREL_ENTRY=0x155
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CWLANBRANCH_DDFSTRUCTUREL_EXIT=0x156
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CWLANBRANCH_DELETEOBJECTL_ENTRY=0x15b
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CWLANBRANCH_DELETEOBJECTL_EXIT=0x15c
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CWLANBRANCH_DESTRUCTOR_ENTRY=0x153
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CWLANBRANCH_DESTRUCTOR_EXIT=0x154
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CWLANBRANCH_FETCHLEAFOBJECTL_ENTRY=0x15d
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CWLANBRANCH_FETCHLEAFOBJECTL_EXIT=0x15e
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CWLANBRANCH_FETCHLEAFOBJECTSIZEL_ENTRY=0x15f
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CWLANBRANCH_FETCHLEAFOBJECTSIZEL_EXIT=0x160
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CWLANBRANCH_NEWL_ENTRY=0x14f
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CWLANBRANCH_NEWL_EXIT=0x150
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CWLANBRANCH_UPDATELEAFOBJECTL_ENTRY=0x157
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CWLANBRANCH_UPDATELEAFOBJECTL_EXIT=0x158
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CWLANBRANCH_UPDATELEAFOBJECTL_STREAM_ENTRY=0x159
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_CWLANBRANCH_UPDATELEAFOBJECTL_STREAM_EXIT=0x15a
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_DUP1_CEAPBRANCH_UPDATELEAFOBJECTL_ENTRY=0x1a1
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_DUP1_CEAPBRANCH_UPDATELEAFOBJECTL_EXIT=0x1a2
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_DUP1_CPROXYBRANCH_GETCONNECTIONMETHOD_EXIT=0x112
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_DUP1_CUTILS_CUTILS_ENTRY=0x24
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_DUP1_CUTILS_CUTILS_EXIT=0x25
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_DUP1_CUTILS_GETENDOFURIFROMSEG_EXIT=0x40
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_DUP1_CUTILS_GETSEGFROMURI_EXIT=0x3e
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_DUP1_CUTILS_GETSEGPOSITIONFROMURI_EXIT=0x4b
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_DUP1_TLUID_EQUALS_EXIT=0x273
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_DUP2_CUTILS_GETSEGFROMURI_EXIT=0x42
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_TLUID_DELETE_ENTRY=0x26f
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_TLUID_DELETE_EXIT=0x270
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_TLUID_EQUALS_ENTRY=0x271
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_TLUID_EQUALS_EXIT=0x272
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x7]_TLUID_GETCMID_EXIT=0x246
+[[OBSOLETE]][TRACE]TRACE_IMPORTANT[0x2]_CCONNMOADAPTER_COMMITATOMICL_UNSUPPORTED_METHOD_CALL=0xe
+[[OBSOLETE]][TRACE]TRACE_IMPORTANT[0x2]_CCONNMOADAPTER_COPYCOMMANDL_UNSUPPORTED_METHOD_CALL=0xc
+[[OBSOLETE]][TRACE]TRACE_IMPORTANT[0x2]_CCONNMOADAPTER_EXECUTECOMMANDL_STREAM_UNSUPPORTED_METHOD_CALL=0xb
+[[OBSOLETE]][TRACE]TRACE_IMPORTANT[0x2]_CCONNMOADAPTER_EXECUTECOMMANDL_UNSUPPORTED_METHOD_CALL=0xa
+[[OBSOLETE]][TRACE]TRACE_IMPORTANT[0x2]_CCONNMOADAPTER_ROLLBACKATOMICL_UNSUPPORTED_METHOD_CALL=0xf
+[[OBSOLETE]][TRACE]TRACE_IMPORTANT[0x2]_CCONNMOADAPTER_STARTATOMICL_UNSUPPORTED_METHOD_CALL=0xd
+[[OBSOLETE]][TRACE]TRACE_IMPORTANT[0x2]_CCONNMOADAPTER_STREAMCOMMMITTEDL_UNSUPPORTED_METHOD_CALL=0x10
+[[OBSOLETE]][TRACE]TRACE_IMPORTANT[0x2]_CCONNMOADAPTER_UPDATELEAFOBJECTL_UNSUPPORTED_METHOD_CALL=0x9
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_CADDBUFFER_CACHEFIND_ENTRY=0x46
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_CADDBUFFER_FIND_ENTRY=0x1f
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_CADDBUFFER_FIND_EXIT=0x20
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_CADDBUFFER_FIND_MATCH_FOUND=0x42
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_CBRANCHBASE_CHECKPREVIOUSURILIST_EXIT=0x62
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_CBRANCHBASE_GETALLCONNECTIONMETHODS_COUNT=0xf9
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_CBRANCHBASE_GETALLDYNAMICNODESL_ADDED_TO_LIST=0x17
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_CBRANCHBASE_GETALLDYNAMICNODESL_NOTFOUND=0x66
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_CBRANCHBASE_GETCONNECTIONMETHODL_ENTRY=0x68
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_CBRANCHBASE_GETCONNECTIONMETHODL_EXIT_FOUND=0x6a
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_CBRANCHBASE_GETCONNECTIONMETHODL_EXIT_NOT_FOUND=0x69
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_CBRANCHBASE_GETURILISTFORNODEL_ENTRY=0x63
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_CBRANCHBASE_GETURILISTFORNODEL_EXIT=0x185
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_CBRANCHBASE_GETURILISTFORNODEL_NOTFOUND=0x184
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_CBRANCHBASE_GETURILISTFORNODEL_OK=0x14
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_CCONNMOADAPTER_ADDBRANCH_ENTRY=0x149
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_CCONNMOADAPTER_ADDBRANCH_EXIT=0x14a
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_CCONNMOADAPTER_ADDNODEOBJECTL_ENTRY=0x7b
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_CCONNMOADAPTER_ADDNODEOBJECTL_EXIT=0x7c
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_CCONNMOADAPTER_CHILDURILISTL_ENTRY=0x85
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_CCONNMOADAPTER_CHILDURILISTL_EXIT=0x86
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_CCONNMOADAPTER_COMMITATOMICL_UNSUPPORTED_METHOD_CALL=0x81
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_CCONNMOADAPTER_COPYCOMMANDL_UNSUPPORTED_METHOD_CALL=0x7f
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_CCONNMOADAPTER_DDFVERSIONL_VERSION=0x14b
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_CCONNMOADAPTER_DELETEOBJECTL_ENTRY=0x8b
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_CCONNMOADAPTER_DELETEOBJECTL_EXIT=0x8c
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_CCONNMOADAPTER_EXECUTECOMMANDL_STREAM_UNSUPPORTED_METHOD_CALL=0x7e
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_CCONNMOADAPTER_EXECUTECOMMANDL_UNSUPPORTED_METHOD_CALL=0x7d
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_CCONNMOADAPTER_FETCHLEAFOBJECTL_ENTRY=0x89
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_CCONNMOADAPTER_FETCHLEAFOBJECTL_EXIT=0x8a
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_CCONNMOADAPTER_FETCHLEAFOBJECTSIZEL_ENTRY=0x87
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_CCONNMOADAPTER_FETCHLEAFOBJECTSIZEL_EXIT=0x88
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_CCONNMOADAPTER_ROLLBACKATOMICL_UNSUPPORTED_METHOD_CALL=0x82
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_CCONNMOADAPTER_STARTATOMICL_UNSUPPORTED_METHOD_CALL=0x80
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_CCONNMOADAPTER_STREAMCOMMMITTEDL_UNSUPPORTED_METHOD_CALL=0x84
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_CCONNMOADAPTER_STREAMINGSUPPORT_NOT_SUPPORTED=0x83
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_CCONNMOADAPTER_UPDATELEAFOBJECTL_ENTRY=0x8e
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_CCONNMOADAPTER_UPDATELEAFOBJECTL_EXIT=0x8f
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_CCONNMOADAPTER_UPDATELEAFOBJECTL_STREAM_UNSUPPORTED_METHOD_CALL=0x8d
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_CCONNMONODEELEMENT_CCONNMONODEELEMENT_ENTRY_2=0x40
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_CCONNMONODEELEMENT_CCONNMONODEELEMENT_EXIT_2=0x41
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_CNAPBRANCH_ADDNODEOBJECTL=0x180
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_CNAPBRANCH_ADDNODEOBJECTL_ALLREADY_EXISTS=0xde
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_CNAPBRANCH_DELETEOBJECTL_PUBLIC_ENTRY=0xc3
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_CNAPBRANCH_DELETEOBJECTL_PUBLIC_EXIT=0xc4
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_CNAPBRANCH_FINDNEWCMTYPE_WLAN=0xb5
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_CNAPBRANCH_GETLEAFDATAL=0x99
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_CNAPBRANCH_GETUNMODIFIABLEFIELDVALUE=0x98
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_CNAPBRANCH_GETUNMODIFIABLEFIELDVALUE_ENTRY=0x97
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_CNAPBRANCH_GETUNMODIFIABLEFIELDVALUE_EXIT=0xa2
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_CNAPBRANCH_GETURILISTFORNAPNODEL=0x7
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_CNAPBRANCH_GETURILISTFORNAPNODEL_NOTFOUND=0xf
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_CNAPBRANCH_GETURILISTFORNAPNODEL_OK=0xe
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_CPROXYBRANCH_ADDNODEOBJECTL_NEW_NODE=0x164
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_CPROXYBRANCH_CHILDURILISTL3=0x4
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_CPROXYBRANCH_FETCHLEAFOBJECTSIZE_OK=0x19
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_CPROXYBRANCH_FINDCONNECTIONMETHOD_ENTRY=0xee
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_CPROXYBRANCH_FINDCONNECTIONMETHOD_EXIT=0x10e
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_CPROXYBRANCH_GETDYNAMICNODESFORPROXYFIELDL_ADDED_TO_LIST=0x5
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_CUTILS_GETALLDYNAMICNODESL_ADDED_TO_LIST=0x1a
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_CUTILS_GETSEGFROMURI_ENTRY=0x133
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_CUTILS_GETSEGFROMURI_EXIT=0x136
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_CUTILS_GETSEGFROMURI_EXIT2=0x139
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_CUTILS_GETSEGFROMURI_EXIT3=0x142
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_CUTILS_GETSEGPOSITIONFROMURI_ENTRY=0x143
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_CUTILS_GETSEGPOSITIONFROMURI_EXIT=0x144
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_CUTILS_GETSEGPOSITIONFROMURI_EXIT2=0x145
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_CUTILS_GETURILISTFORNODEL_NOTFOUND=0x13
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_CUTILS_GETURILISTFORNODEL_OK=0x16
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_CUTILS_NUMOFURISEGS_ENTRY_EXIT=0x146
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_CUTILS_NUMOFURISEG_ENTRY=0x131
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_DUP2_CPROXYBRANCH_UPDATELEAFOBJECTL=0x17d
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_DUP3_CNAPBRANCH_UPDATELEAFOBJECTL=0x17c
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_GetUriListForProxyNodeL=0x2
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_GetUriListForProxyNodeL2=0x3
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_TLUID_GETCMID=0x16b
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_TLUID_TLUID=0x16a
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_TLUID_TLUID_ID=0x91
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_TLUID_TLUID_NAME=0x90
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/connmoadapter/traces/trace.properties	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,117 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<trace_properties>
+<enum name="TError">
+<value id="0">EOk</value>
+<value id="1">ENotFound</value>
+<value id="2">EInvalidObject</value>
+<value id="3">EAlreadyExists</value>
+<value id="4">ETooLargeObject</value>
+<value id="5">EDiskFull</value>
+<value id="6">EError</value>
+<value id="7">ERollbackFailed</value>
+<value id="8">EObjectInUse</value>
+<value id="9">ENoMemory</value>
+<value id="10">ECommitOK</value>
+<value id="11">ERollbackOK</value>
+<value id="12">ECommitFailed</value>
+<value id="13">ENotAllowed</value>
+</enum>
+<enum name="TConnectionMethodCommonAttributes">
+<value id="0">ECmCoverage</value>
+<value id="1">ECmDefaultPriority</value>
+<value id="2">ECmDestination</value>
+<value id="3">ECmBearerHasUi</value>
+<value id="4">ECmIPv6Supported</value>
+<value id="5">ECmDefaultUiPriority</value>
+<value id="100">ECmBearerIcon</value>
+<value id="101">ECmBearerAvailableIcon</value>
+<value id="200">ECmBearerAvailableName</value>
+<value id="201">ECmBearerSupportedName</value>
+<value id="202">ECmBearerAvailableText</value>
+<value id="203">ECmBearerNamePopupNote</value>
+<value id="204">ECmCommsDBBearerType</value>
+<value id="205">ECmBearerSettingName</value>
+<value id="206">ECmVirtual</value>
+<value id="400">ECmInvalidAttribute</value>
+<value id="401">ECmAddToAvailableList</value>
+<value id="402">ECmLoadResult</value>
+<value id="500">ECmBearerType</value>
+<value id="501">ECmName</value>
+<value id="502">ECmIapId</value>
+<value id="503">ECmStartPage</value>
+<value id="504">ECmHidden</value>
+<value id="505">ECmProtected</value>
+<value id="506">ECmNamingMethod</value>
+<value id="507">ECmSeamlessnessLevel</value>
+<value id="508">ECmElementID</value>
+<value id="509">ECmNetworkId</value>
+<value id="510">ECmConnected</value>
+<value id="511">ECmId</value>
+<value id="512">ECmWapId</value>
+<value id="513">ECmIapServiceId</value>
+<value id="600">ECmMetaHighlight</value>
+<value id="601">ECmMetaHiddenAgent</value>
+<value id="602">ECmNextLayerIapId</value>
+<value id="603">ECmNextLayerSNAPId</value>
+<value id="1000">ECmProxyUsageEnabled</value>
+<value id="1001">ECmProxyServerName</value>
+<value id="1002">ECmProxyProtocolName</value>
+<value id="1003">ECmProxyPortNumber</value>
+<value id="1004">ECmProxyExceptions</value>
+<value id="1999">ECmProxyRangeMax</value>
+<value id="2000">ECmChargeCardUsageEnabled</value>
+<value id="2001">ECmChargeCardAccountNumber</value>
+<value id="2002">ECmChargeCardPIN</value>
+<value id="2003">ECmChargeCardLocalRule</value>
+<value id="2004">ECmChargeCardNatRule</value>
+<value id="2005">ECmChargeCardIntlRule</value>
+<value id="2999">ECmChargeCardRangeMax</value>
+<value id="3000">ECmLocationUsageEnabled</value>
+<value id="3001">ECmLocationIntlPrefixCode</value>
+<value id="3002">ECmLocationNatPrefixCode</value>
+<value id="3003">ECmLocationNatCode</value>
+<value id="3004">ECmLocationAreaCode</value>
+<value id="3005">ECmLocationDialOutCode</value>
+<value id="3006">ECmLocationDisableCallWaitingCode</value>
+<value id="3007">ECmLocationMobile</value>
+<value id="3008">ECmLocationUsePulseDial</value>
+<value id="3009">ECmLocationWaitForDialTone</value>
+<value id="3010">ECmLocationPauseAfterDialOut</value>
+<value id="3999">ECmLocationRangeMax</value>
+<value id="4000">ECmWapIPGatewayAddress</value>
+<value id="4001">ECmWapIPWSPOption</value>
+<value id="4002">ECmWapIPSecurity</value>
+<value id="4003">ECmWapIPProxyPort</value>
+<value id="4004">ECmWapIPProxyLoginName</value>
+<value id="4005">ECmWapIPProxyLoginPass</value>
+<value id="4099">ECmWapRangeMax</value>
+<value id="5000">ECmCommonAttributesStart</value>
+<value id="5001">ECmIFName</value>
+<value id="5002">ECmIFParams</value>
+<value id="5003">ECmIFNetworks</value>
+<value id="5004">ECmIFPromptForAuth</value>
+<value id="5005">ECmIFAuthName</value>
+<value id="5006">ECmIFAuthPass</value>
+<value id="5007">ECmIFAuthRetries</value>
+<value id="5050">ECmIPNetmask</value>
+<value id="5051">ECmIPGateway</value>
+<value id="5052">ECmIPAddFromServer</value>
+<value id="5053">ECmIPAddress</value>
+<value id="5054">ECmIPDNSAddrFromServer</value>
+<value id="5055">ECmIPNameServer1</value>
+<value id="5056">ECmIPNameServer2</value>
+<value id="5057">ECmIP6DNSAddrFromServer</value>
+<value id="5058">ECmIP6NameServer1</value>
+<value id="5059">ECmIP6NameServer2</value>
+<value id="5060">ECmIPAddrLeaseValidFrom</value>
+<value id="5061">ECmIPAddrLeaseValidTo</value>
+<value id="5100">ECmConfigDaemonManagerName</value>
+<value id="5101">ECmConfigDaemonName</value>
+<value id="5110">ECmEnableLPCExtension</value>
+<value id="5111">ECmDisablePlainTextAuth</value>
+<value id="5999">ECmCommonAttributesEnd</value>
+<value id="6000">ECmSpecialAttributes</value>
+<value id="6001">ECmIsLinked</value>
+<value id="8999">ECmSpecialAttributesEnd</value>
+</enum>
+</trace_properties>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/devdetail/bld/DevDetail_HwV.txt	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,1 @@
+0000
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/devdetail/bld/DevDetail_SwV.txt	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,1 @@
+xxx-xxx 0.00 00
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/devdetail/bld/bld.inf	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,32 @@
+/*
+* Copyright (c) 2002 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:    build info file for DevDetail adapter
+*
+*/
+
+
+
+
+PRJ_EXPORTS
+./DevDetail_SwV.txt /epoc32/release/winscw/udeb/z/resource/devman/devdetail_swv.txt
+./DevDetail_SwV.txt /epoc32/release/winscw/urel/z/resource/devman/devdetail_swv.txt
+./DevDetail_HwV.txt /epoc32/release/winscw/udeb/z/resource/devman/devdetail_hwv.txt
+./DevDetail_HwV.txt /epoc32/release/winscw/urel/z/resource/devman/devdetail_hwv.txt
+
+PRJ_MMPFILES
+./nsmldmdevdetailadapter.mmp
+
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/devdetail/bld/nsmldmdevdetailadapter.mmp	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,70 @@
+/*
+* Copyright (c) 2004 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:    Project file for devdetail adapter
+*
+*/
+
+
+
+
+#include "defaultcaps.hrh"
+#include  <platform_paths.hrh>
+
+//This flag is used for enabling Fota Multi-ROFS Support
+MACRO	_ENABLE_MULTIROFS_SUPPORT
+
+TARGET          nsmldmdevdetailadapter.dll
+TARGETTYPE      PLUGIN
+UID             0x10009D8D 0x101F6DE9
+VENDORID        VID_DEFAULT
+CAPABILITY  CAP_GENERAL_DLL
+
+APP_LAYER_SYSTEMINCLUDE
+SYSTEMINCLUDE   /epoc32/include/ecom
+
+SOURCEPATH      ../src
+USERINCLUDE     ../inc
+USERINCLUDE     ../../inc
+SOURCE          nsmldmdevdetailadapter.cpp
+
+//#if defined(ARMCC)
+SOURCE          nsmldmdevdetailutils_ARM.cpp
+//#elif defined(WINSCW)
+//SOURCE          nsmldmdevdetailutils_WINSCW.cpp
+//#endif
+
+START RESOURCE nsmldmdevdetailadapter.rss
+LANGUAGE_IDS
+END
+
+
+
+
+//#if defined(ARMCC)
+LIBRARY sysutil.lib
+//#elif defined(WINSCW)
+//LIBRARY efsrv.lib
+//#endif
+
+
+LIBRARY         euser.lib 
+LIBRARY         ecom.lib 
+LIBRARY         nsmldebug.lib
+LIBRARY         nsmlagentcommon.lib
+
+//For Multi-ROFS Support
+LIBRARY			  sysversioninfo.lib
+
+
+SMPSAFE
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/devdetail/inc/nsmldmdevdetailadapter.h	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,164 @@
+/*
+* Copyright (c) 2004 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:    DM DevDetail Adapter
+*
+*/
+
+
+
+
+#ifndef __NSMLDMDEVDETAILADAPTER_H__
+#define __NSMLDMDEVDETAILADAPTER_H__
+
+// INCLUDES
+
+#include <e32base.h>
+#include <smldmadapter.h>
+#include "nsmldmconstants.h"
+
+// the DDF version must be changed if any changes in DDF structure 
+// ( built in DDFStructureL() function )
+_LIT8( KNSmlDMDevDetailDDFVersion, "1.0" ); 
+
+_LIT8( KNSmlDMDevDetailTextPlain, "text/plain" );
+_LIT8( KNSmlDMDevDetailNodeName, "DevDetail" );
+_LIT8( KNSmlDMDevDetailDescription, "The interior object holds all DevDetail objects" );
+
+_LIT8( KNSmlDMDevDetailDevTypNodeName, "DevTyp" );
+_LIT8( KNSmlDMDevDetailDevTypDescription, "The type of the device" );
+_LIT8( KNSmlDMDevDetailDevTypValue, "smartphone" );
+
+_LIT8( KNSmlDMDevDetailOEMNodeName, "OEM" );
+_LIT8( KNSmlDMDevDetailOEMDescription, "Original Equipment Manufacturer" );
+
+_LIT8( KNSmlDMDevDetailFwVNodeName, "FwV" );
+_LIT8( KNSmlDMDevDetailFwVDescription, "The firmware revision of the device" );
+
+_LIT8( KNSmlDMDevDetailSwVNodeName, "SwV" );
+_LIT8( KNSmlDMDevDetailSwVDescription, "The software revision of the device" );
+
+_LIT8( KNSmlDMDevDetailHwVNodeName, "HwV" );
+_LIT8( KNSmlDMDevDetailHwVDescription, "The hardware revision of the device" );
+
+_LIT8( KNSmlDMDevDetailLrgObjNodeName, "LrgObj" );
+_LIT8( KNSmlDMDevDetailLrgObjDescription, "Large object handling supported if value is true" );
+_LIT8( KNSmlDMDevDetailLrgObjValue, "true" );
+
+_LIT8( KNSmlDMDevDetailURINodeName, "URI" );
+_LIT8( KNSmlDMDevDetailURIDescription, "The tree limitations branch" );
+
+_LIT8( KNSmlDMDevDetailMaxDepthNodeName, "MaxDepth" );
+_LIT8( KNSmlDMDevDetailMaxDepthDescription, "Maximum tree depth" );
+_LIT8( KNSmlDMDevDetailMaxDepthValue, "0" );
+
+_LIT8( KNSmlDMDevDetailMaxTotLenNodeName, "MaxTotLen" );
+_LIT8( KNSmlDMDevDetailMaxTotLenDescription, "Maximum URI length" );
+_LIT8( KNSmlDMDevDetailMaxTotLenValue, "0" );
+
+_LIT8( KNSmlDMDevDetailMaxSegLenNodeName, "MaxSegLen" );
+_LIT8( KNSmlDMDevDetailMaxSegLenDescription, "Maximum URI segment length" );
+_LIT8( KNSmlDMDevDetailMaxSegLenValue, "9" );
+
+_LIT8( KNSmlDMDevDetailSeparator, "/" );
+
+const TInt KNSmlMaxRequestBufferLength = 128;
+const TInt KNSmlMaxSizeBufferLength = 4;
+
+_LIT( KNSmlDevDetailPanic,      "DevDetail" );
+
+// CLASS DECLARATION
+class CNSmlDmDevDetailAdapter : public CSmlDmAdapter
+    {
+public:  // contructors and destructor
+    static CNSmlDmDevDetailAdapter* NewL(MSmlDmCallback* aDmCallback );
+    static CNSmlDmDevDetailAdapter* NewLC(MSmlDmCallback* aDmCallback );
+
+    virtual ~CNSmlDmDevDetailAdapter();
+    virtual TInt DevDetailValueCrcL();
+
+private: // new functions
+    CNSmlDmDevDetailAdapter(TAny* aEcomArguments);
+    void AddObjectToBufferL( CBufBase& aCrcBuf, const TDesC8& aURI ); 
+    CSmlDmAdapter::TError FetchLeafObjectL( const TDesC8& aURI, CBufBase& aObject ); 
+    void SetLeafPropertiesL( MSmlDmDDFObject& aObject, 
+                             const TSmlDmAccessTypes& aAccessTypes, 
+                             const TDesC8& aDescription ) const;
+            
+private: // functions from base classes
+    // from CSmlDmAdapter
+    void DDFVersionL( CBufBase& aVersion );
+    void DDFStructureL( MSmlDmDDFObject& aDDF );
+    void UpdateLeafObjectL( const TDesC8& aURI, const TDesC8& aLUID, 
+                            const TDesC8& aObject, const TDesC8& aType, 
+                            const TInt aStatusRef );
+    void DeleteObjectL( const TDesC8& aURI, const TDesC8& aLUID, const TInt aStatusRef ); 
+    void FetchLeafObjectL( const TDesC8& aURI, const TDesC8& aLUID, 
+                           const TDesC8& aType, const TInt aResultsRef, 
+                           const TInt aStatusRef ); 
+    void ChildURIListL( const TDesC8& aURI, const TDesC8& aLUID, 
+                        const CArrayFix<TSmlDmMappingInfo>& aPreviousURISegmentList, 
+                        const TInt aResultsRef, const TInt aStatusRef );  
+    void AddNodeObjectL( const TDesC8& aURI, const TDesC8& aParentLUID, 
+                         const TInt aStatusRef );
+    void UpdateLeafObjectL( const TDesC8& aURI, const TDesC8& aLUID, 
+                            RWriteStream*& aStream, const TDesC8& aType, 
+                            const TInt aStatusRef );
+    void FetchLeafObjectSizeL( const TDesC8& aURI, const TDesC8& aLUID, 
+                               const TDesC8& aType, const TInt aResultsRef, 
+                               const TInt aStatusRef );
+    void ExecuteCommandL( const TDesC8& aURI, const TDesC8& aLUID, const TDesC8& aArgument, 
+                          const TDesC8& aType, const TInt aStatusRef );
+    void ExecuteCommandL( const TDesC8& aURI, const TDesC8& aLUID, RWriteStream*& aStream, 
+                          const TDesC8& aType, const TInt aStatusRef );
+    void CopyCommandL( const TDesC8& aTargetURI, const TDesC8& aTargetLUID, 
+                       const TDesC8& aSourceURI, const TDesC8& aSourceLUID, 
+                       const TDesC8& aType, TInt aStatusRef );
+    void StartAtomicL();
+    void CommitAtomicL();
+    void RollbackAtomicL();
+    TBool StreamingSupport( TInt& aItemSize );
+    void StreamCommittedL();
+    void CompleteOutstandingCmdsL();
+
+// FOTA
+private:
+
+    /**
+    * Enumeration specifies the data that can be fetched using
+    * GetDevDetailDataL().
+    */
+    enum TNSmlDevDetailData
+        {
+        ESwVersion,
+        EHwVersion
+        };
+
+    /**
+    * Fetches and/or forms DevDetail data specified by aElement.
+    * In WINSCW this data is read from file. In ARM builds the 
+    * data is fetched from EInfo.
+    * @param aObject The buffer where fetched data is inserted.
+    * @param aElement Specifies the data that should be fetched.
+    */
+    void GetDevDetailDataL( CBufBase& aObject, TNSmlDevDetailData aElement ) const;
+	
+// FOTA end
+
+private:
+
+    MSmlDmCallback* iDmCallback;
+    
+    };
+
+#endif // __NSMLDMDEVDETAILADAPTER_H__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/devdetail/src/nsmldmdevdetailadapter.cpp	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,561 @@
+/*
+* Copyright (c) 2004 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:    DM DevDetail Adapter Source Code
+*
+*/
+
+
+
+
+// INCLUDE FILES
+#include <implementationproxy.h> // For TImplementationProxy definition
+
+#include "nsmldmimpluids.h"
+#include "nsmldmdevdetailadapter.h"
+#include "nsmldebug.h"
+#include "nsmlphoneinfo.h"
+#include "nsmlunicodeconverter.h"
+#include "nsmlconstants.h"
+
+
+// ------------------------------------------------------------------------------------------------
+// CNSmlDmDevDetailAdapter::NewL( )
+// ------------------------------------------------------------------------------------------------
+CNSmlDmDevDetailAdapter* CNSmlDmDevDetailAdapter::NewL(MSmlDmCallback* aDmCallback )
+    {
+    _DBG_FILE("CNSmlDmDevDetailAdapter::NewL(): begin");
+    CNSmlDmDevDetailAdapter* self = NewLC( aDmCallback );
+    CleanupStack::Pop();
+    _DBG_FILE("CNSmlDmDevDetailAdapter::NewL(): end");
+    return self;
+    }
+
+// ------------------------------------------------------------------------------------------------
+// CNSmlDmDevDetailAdapter::NewLC( )
+// ------------------------------------------------------------------------------------------------
+CNSmlDmDevDetailAdapter* CNSmlDmDevDetailAdapter::NewLC(MSmlDmCallback* aDmCallback )
+    {
+    _DBG_FILE("CNSmlDmDevDetailAdapter::NewLC(): begin");
+    CNSmlDmDevDetailAdapter* self = new (ELeave) CNSmlDmDevDetailAdapter(aDmCallback);
+    CleanupStack::PushL(self);
+    self->iDmCallback=aDmCallback;
+    _DBG_FILE("CNSmlDmDevDetailAdapter::NewLC(): end");
+    return self;
+    }
+
+    
+// ------------------------------------------------------------------------------------------------
+// CNSmlDmDevDetailAdapter::CNSmlDmDevDetailAdapter(TAny* aEcomArguments)
+// ------------------------------------------------------------------------------------------------
+CNSmlDmDevDetailAdapter::CNSmlDmDevDetailAdapter(TAny* aEcomArguments):CSmlDmAdapter(aEcomArguments)
+    {
+    _DBG_FILE("CNSmlDmDevDetailAdapter::CNSmlDmDevDetailAdapter(): begin");
+    _DBG_FILE("CNSmlDmDevDetailAdapter::CNSmlDmDevDetailAdapter(): end");
+    }
+
+// -----------------------------------------------------------------------------
+// CNSmlDmDevDetailAdapter::~CNSmlDmDevDetailAdapter()
+// -----------------------------------------------------------------------------
+CNSmlDmDevDetailAdapter::~CNSmlDmDevDetailAdapter()
+    {
+    _DBG_FILE("CNSmlDmDevDetailAdapter::~CNSmlDmDevDetailAdapter(): begin");
+    _DBG_FILE("CNSmlDmDevDetailAdapter::~CNSmlDmDevDetailAdapter(): end");
+    }
+
+// -----------------------------------------------------------------------------
+// CNSmlDmDevDetailAdapter::DevDetailValueCrcL()
+// -----------------------------------------------------------------------------
+TInt CNSmlDmDevDetailAdapter::DevDetailValueCrcL()
+    {
+    CBufBase* crcBuf = CBufFlat::NewL( 1 );
+    CleanupStack::PushL( crcBuf );
+    
+    AddObjectToBufferL( *crcBuf, KNSmlDMDevDetailDevTypNodeName() );
+    AddObjectToBufferL( *crcBuf, KNSmlDMDevDetailOEMNodeName() );
+    AddObjectToBufferL( *crcBuf, KNSmlDMDevDetailFwVNodeName() );
+    AddObjectToBufferL( *crcBuf, KNSmlDMDevDetailSwVNodeName() );
+    AddObjectToBufferL( *crcBuf, KNSmlDMDevDetailHwVNodeName() );
+    AddObjectToBufferL( *crcBuf, KNSmlDMDevDetailLrgObjNodeName() );
+    AddObjectToBufferL( *crcBuf, KNSmlDMDevDetailMaxDepthNodeName() );
+    AddObjectToBufferL( *crcBuf, KNSmlDMDevDetailMaxTotLenNodeName() );
+    AddObjectToBufferL( *crcBuf, KNSmlDMDevDetailMaxSegLenNodeName() );
+    
+    TUint16 crc = 0;
+    Mem::Crc( crc, crcBuf->Ptr(0).Ptr(), crcBuf->Size() );
+    CleanupStack::PopAndDestroy();  // crcBuf
+    return crc;
+    }
+
+// -----------------------------------------------------------------------------
+// CNSmlDmDevDetailAdapter::AddObjectToBufferL()
+// -----------------------------------------------------------------------------
+void CNSmlDmDevDetailAdapter::AddObjectToBufferL( CBufBase& aCrcBuf, 
+                                                  const TDesC8& aURI )
+    {
+    CBufBase* buf = CBufFlat::NewL( 1 );
+    CleanupStack::PushL( buf );
+    FetchLeafObjectL( aURI, *buf );
+    aCrcBuf.InsertL( aCrcBuf.Size(), buf->Ptr(0) );
+    _LIT8( KNSmlDmSeparator, ";" );
+    aCrcBuf.InsertL( aCrcBuf.Size(), KNSmlDmSeparator );
+    CleanupStack::PopAndDestroy(); //buf    
+    }
+
+// -----------------------------------------------------------------------------
+// CNSmlDmDevDetailAdapter::FetchLeafObjectL()
+// -----------------------------------------------------------------------------
+CSmlDmAdapter::TError CNSmlDmDevDetailAdapter::FetchLeafObjectL( const TDesC8& aURI, 
+                                                                 CBufBase& aObject )
+    {
+    _DBG_FILE("CNSmlDmDevDetailAdapter::FetchLeafObjectL(): begin");
+    CSmlDmAdapter::TError retValue = CSmlDmAdapter::EOk;
+
+    TInt ret = aURI.LocateReverse(KNSmlDMDevDetailSeparator()[0]);
+    if ( ret == KErrNotFound ) 
+        {
+        ret = -1;
+        }
+    TInt len = aURI.Length() - ( ret + 1 );
+    TPtrC8 segment = aURI.Right( len );
+    if ( segment == KNSmlDMDevDetailDevTypNodeName )
+        {
+        aObject.InsertL( 0, KNSmlDMDevDetailDevTypValue );
+        }
+    else
+    if ( segment == KNSmlDMDevDetailOEMNodeName )
+        {
+        CNSmlPhoneInfo* phoneInfo = CNSmlPhoneInfo::NewLC();
+        HBufC* manufacturer = HBufC::NewLC( 50 );
+        TPtr manufacturerPtr = manufacturer->Des();  
+        phoneInfo->PhoneDataL( CNSmlPhoneInfo::EPhoneManufacturer, manufacturerPtr );
+        HBufC8* manufacturerInUTF8 = NULL;
+        NSmlUnicodeConverter::HBufC8InUTF8LC( *manufacturer, manufacturerInUTF8 );
+        aObject.InsertL( 0, *manufacturerInUTF8 );
+        CleanupStack::PopAndDestroy( 3 ); //manufacturerInUTF8, manufacturer, phoneInfo
+        }
+    else
+    if ( segment == KNSmlDMDevDetailSwVNodeName )
+        {
+        // fetch software version
+        GetDevDetailDataL( aObject, ESwVersion );
+        }
+    else
+    if ( segment == KNSmlDMDevDetailHwVNodeName )
+        {
+        // fetch hardware version
+        GetDevDetailDataL( aObject, EHwVersion );
+        }
+    else
+    if ( segment == KNSmlDMDevDetailLrgObjNodeName )
+        {
+        aObject.InsertL( 0, KNSmlDMDevDetailLrgObjValue );
+        }
+    else
+    if ( segment == KNSmlDMDevDetailMaxDepthNodeName )
+        {
+        aObject.InsertL( 0, KNSmlDMDevDetailMaxDepthValue );
+        }
+    else
+    if ( segment == KNSmlDMDevDetailMaxTotLenNodeName )
+        {
+        aObject.InsertL( 0, KNSmlDMDevDetailMaxTotLenValue );
+        }
+    else
+    if ( segment == KNSmlDMDevDetailMaxSegLenNodeName )
+        {
+        aObject.InsertL( 0, KNSmlDMDevDetailMaxSegLenValue );
+        }
+    else
+    if ( segment != KNSmlDMDevDetailFwVNodeName )
+        {
+        retValue = CSmlDmAdapter::EError;
+        }
+        
+    _DBG_FILE("CNSmlDmDevDetailAdapter::FetchLeafObjectL(): end");
+    return retValue;
+    }
+// -----------------------------------------------------------------------------
+// CNSmlDmDevDetailAdapter::SetLeafPropertiesL()
+// -----------------------------------------------------------------------------
+void CNSmlDmDevDetailAdapter::SetLeafPropertiesL( MSmlDmDDFObject& aObject, 
+                                                  const TSmlDmAccessTypes& aAccessTypes,  
+                                                  const TDesC8& aDescription ) const
+    {
+    aObject.SetAccessTypesL( aAccessTypes );
+    aObject.SetScopeL( MSmlDmDDFObject::EPermanent );
+    aObject.SetDFFormatL( MSmlDmDDFObject::EChr );
+    aObject.AddDFTypeMimeTypeL( KNSmlDMDevDetailTextPlain );
+    aObject.SetDescriptionL( aDescription );
+    }
+
+
+
+// -----------------------------------------------------------------------------
+// CNSmlDmDevDetailAdapter::DDFVersionL()
+// -----------------------------------------------------------------------------
+void CNSmlDmDevDetailAdapter::DDFVersionL(CBufBase& aDDFVersion)
+    {
+    _DBG_FILE("CNSmlDmDevDetailAdapter::DDFVersionL(TDes& aDDFVersion): begin");
+    aDDFVersion.InsertL(0,KNSmlDMDevDetailDDFVersion);
+    _DBG_FILE("CNSmlDmDevDetailAdapter::DDFVersionL(TDes& aDDFVersion): end");
+    }
+
+
+// -----------------------------------------------------------------------------
+// void CNSmlDmDevDetailAdapter::DDFStructureL()
+//
+// -----------------------------------------------------------------------------
+void CNSmlDmDevDetailAdapter::DDFStructureL( MSmlDmDDFObject& aDDF )
+    {
+    _DBG_FILE("CNSmlDmDevDetailAdapter::DDFStructureL(): begin");
+    
+    TSmlDmAccessTypes accessTypes;
+    
+    accessTypes.SetGet();
+    // DevDetail
+    MSmlDmDDFObject& devDetail = aDDF.AddChildObjectL( KNSmlDMDevDetailNodeName );
+    devDetail.SetAccessTypesL( accessTypes ); 
+    devDetail.SetScopeL( MSmlDmDDFObject::EPermanent );
+    devDetail.SetDescriptionL( KNSmlDMDevDetailDescription );
+
+    // DevTyp   
+    MSmlDmDDFObject& devTyp = devDetail.AddChildObjectL(KNSmlDMDevDetailDevTypNodeName );
+    SetLeafPropertiesL( devTyp, accessTypes, KNSmlDMDevDetailDevTypDescription );
+    // OEM  
+    MSmlDmDDFObject& oem = devDetail.AddChildObjectL(KNSmlDMDevDetailOEMNodeName);
+    SetLeafPropertiesL( oem, accessTypes, KNSmlDMDevDetailOEMDescription );
+    // FwV  
+    MSmlDmDDFObject& fwv = devDetail.AddChildObjectL(KNSmlDMDevDetailFwVNodeName);
+    SetLeafPropertiesL( fwv, accessTypes, KNSmlDMDevDetailFwVDescription );
+    // SwV  
+    MSmlDmDDFObject& swv = devDetail.AddChildObjectL( KNSmlDMDevDetailSwVNodeName );
+    SetLeafPropertiesL( swv, accessTypes, KNSmlDMDevDetailSwVDescription );
+    // HwV  
+    MSmlDmDDFObject& hwv = devDetail.AddChildObjectL(KNSmlDMDevDetailHwVNodeName );
+    SetLeafPropertiesL( hwv, accessTypes, KNSmlDMDevDetailHwVDescription );
+    // LrgObj   
+    MSmlDmDDFObject& lrgObj = devDetail.AddChildObjectL(KNSmlDMDevDetailLrgObjNodeName );
+    SetLeafPropertiesL( lrgObj, accessTypes, KNSmlDMDevDetailLrgObjDescription );
+    lrgObj.SetDFFormatL( MSmlDmDDFObject::EBool );
+    // URI
+    MSmlDmDDFObject& uri = devDetail.AddChildObjectL(KNSmlDMDevDetailURINodeName);
+    uri.SetAccessTypesL( accessTypes );
+    uri.SetScopeL( MSmlDmDDFObject::EPermanent );
+    uri.SetDescriptionL( KNSmlDMDevDetailURIDescription );
+    // MaxDepth
+    MSmlDmDDFObject& maxDepth = uri.AddChildObjectL( KNSmlDMDevDetailMaxDepthNodeName);
+    SetLeafPropertiesL( maxDepth, accessTypes, KNSmlDMDevDetailMaxDepthDescription );
+    // MaxTotLen
+    MSmlDmDDFObject& maxTotLen = uri.AddChildObjectL( KNSmlDMDevDetailMaxTotLenNodeName );
+    SetLeafPropertiesL( maxTotLen, accessTypes, KNSmlDMDevDetailMaxTotLenDescription );
+    // MaxSegLen
+    MSmlDmDDFObject& maxSegLen = uri.AddChildObjectL( KNSmlDMDevDetailMaxSegLenNodeName);
+    SetLeafPropertiesL( maxSegLen, accessTypes, KNSmlDMDevDetailMaxSegLenDescription );
+        
+    _DBG_FILE("CNSmlDmDevDetailAdapter::DDFStructureL(): end");
+    }
+
+// -----------------------------------------------------------------------------
+// CNSmlDmDevDetailAdapter::UpdateLeafObjectL()
+// -----------------------------------------------------------------------------
+void  CNSmlDmDevDetailAdapter::UpdateLeafObjectL( const TDesC8& /*aURI*/, 
+                                                  const TDesC8& /*aLUID*/, 
+                                                  const TDesC8& /*aObject*/, 
+                                                  const TDesC8& /*aType*/,
+                                                  const TInt aStatusRef )
+    {
+    _DBG_FILE("CNSmlDmDevDetailAdapter::UpdateLeafObjectL(): begin");
+    _DBG_FILE("CNSmlDmDevDetailAdapter::UpdateLeafObjectL(): end");
+    iDmCallback->SetStatusL(aStatusRef,CSmlDmAdapter::EError);
+    }
+
+
+// -----------------------------------------------------------------------------
+//  CNSmlDmDevDetailAdapter::DeleteObjectL()
+// -----------------------------------------------------------------------------
+void  CNSmlDmDevDetailAdapter::DeleteObjectL( const TDesC8& /*aURI*/, 
+                                              const TDesC8& /*aLUID*/,
+                                              const TInt aStatusRef )
+    {
+    _DBG_FILE("CNSmlDmDevDetailAdapter::DeleteLeafObjectL( ): begin");
+    _DBG_FILE("CNSmlDmDevDetailAdapter::DeleteLeafObjectL( ): end");
+    iDmCallback->SetStatusL(aStatusRef,CSmlDmAdapter::EError);
+    }
+
+
+// -----------------------------------------------------------------------------
+// CNSmlDmDevDetailAdapter::FetchLeafObjectL()
+// -----------------------------------------------------------------------------
+void  CNSmlDmDevDetailAdapter::FetchLeafObjectL( const TDesC8& aURI, 
+                                                 const TDesC8& /*aLUID*/, 
+                                                 const TDesC8& aType, 
+                                                 const TInt aResultsRef, 
+                                                 const TInt aStatusRef )
+    {
+    _DBG_FILE("CNSmlDmDevDetailAdapter::FetchLeafObjectL(): begin");
+    CBufBase *object = CBufFlat::NewL( 1 );
+    CleanupStack::PushL( object );
+    CSmlDmAdapter::TError retValue = FetchLeafObjectL( aURI, *object );
+
+    iDmCallback->SetStatusL( aStatusRef, retValue );
+    iDmCallback->SetResultsL( aResultsRef, *object, aType);
+    CleanupStack::PopAndDestroy(); //object
+        
+    _DBG_FILE("CNSmlDmDevDetailAdapter::FetchLeafObjectL(): end");
+    }
+
+
+// -----------------------------------------------------------------------------
+// CSmlDmAdapter::TError CNSmlDmDevDetailAdapter::ChildURIListL()
+// -----------------------------------------------------------------------------
+
+void  CNSmlDmDevDetailAdapter::ChildURIListL( const TDesC8& aURI, 
+                                              const TDesC8& /*aLUID*/, 
+                                              const CArrayFix<TSmlDmMappingInfo>& /*aPreviousURISegmentList*/, 
+                                              const TInt aResultsRef, 
+                                              const TInt aStatusRef )
+    {
+    _DBG_FILE("CNSmlDmDevDetailAdapter::ChildURIListL(): begin");
+    CSmlDmAdapter::TError retValue = CSmlDmAdapter::EOk;
+    CBufBase *currentURISegmentList = CBufFlat::NewL(64);
+    CleanupStack::PushL(currentURISegmentList);
+
+    TInt ret = aURI.LocateReverse(KNSmlDMDevDetailSeparator()[0]);
+    if ( ret == KErrNotFound ) 
+        {
+        ret = -1;
+        }
+    TInt len = aURI.Length() - ( ret + 1 );
+    TPtrC8 segment = aURI.Right( len );
+
+    if ( segment == KNSmlDMDevDetailNodeName )
+        {
+        currentURISegmentList->InsertL( currentURISegmentList->Size(), KNSmlDMDevDetailDevTypNodeName() );
+        currentURISegmentList->InsertL( currentURISegmentList->Size(), KNSmlDMDevDetailSeparator() );
+        currentURISegmentList->InsertL( currentURISegmentList->Size(), KNSmlDMDevDetailOEMNodeName() );
+        currentURISegmentList->InsertL( currentURISegmentList->Size(), KNSmlDMDevDetailSeparator() );
+        currentURISegmentList->InsertL( currentURISegmentList->Size(), KNSmlDMDevDetailFwVNodeName() );
+        currentURISegmentList->InsertL( currentURISegmentList->Size(), KNSmlDMDevDetailSeparator() );
+        currentURISegmentList->InsertL( currentURISegmentList->Size(), KNSmlDMDevDetailSwVNodeName() );
+        currentURISegmentList->InsertL( currentURISegmentList->Size(), KNSmlDMDevDetailSeparator() );
+         currentURISegmentList->InsertL( currentURISegmentList->Size(), KNSmlDMDevDetailHwVNodeName() );
+        currentURISegmentList->InsertL( currentURISegmentList->Size(), KNSmlDMDevDetailSeparator() );
+        currentURISegmentList->InsertL( currentURISegmentList->Size(), KNSmlDMDevDetailLrgObjNodeName() );
+        currentURISegmentList->InsertL( currentURISegmentList->Size(), KNSmlDMDevDetailSeparator() );
+         currentURISegmentList->InsertL( currentURISegmentList->Size(), KNSmlDMDevDetailURINodeName() );
+        }
+    else
+    if ( segment == KNSmlDMDevDetailURINodeName )
+        {
+        currentURISegmentList->InsertL( currentURISegmentList->Size(), KNSmlDMDevDetailMaxDepthNodeName() );
+        currentURISegmentList->InsertL( currentURISegmentList->Size(), KNSmlDMDevDetailSeparator() );
+        currentURISegmentList->InsertL( currentURISegmentList->Size(), KNSmlDMDevDetailMaxTotLenNodeName() );
+        currentURISegmentList->InsertL( currentURISegmentList->Size(), KNSmlDMDevDetailSeparator() );
+        currentURISegmentList->InsertL( currentURISegmentList->Size(), KNSmlDMDevDetailMaxSegLenNodeName() );
+        }
+    else
+        {
+        retValue = CSmlDmAdapter::EError;
+        }
+
+    iDmCallback->SetStatusL(aStatusRef,retValue);
+    iDmCallback->SetResultsL(aResultsRef,*currentURISegmentList,KNullDesC8);
+    CleanupStack::PopAndDestroy(); //currentURISegmentList;
+    _DBG_FILE("CNSmlDmDevDetailAdapter::ChildURIListL(): end");
+    }
+
+// -----------------------------------------------------------------------------
+// CNSmlDmDevDetailAdapter::AddNodeObjectL()
+// -----------------------------------------------------------------------------
+void  CNSmlDmDevDetailAdapter::AddNodeObjectL( const TDesC8& /*aURI*/, 
+                                               const TDesC8& /*aParentLUID*/,
+                                               const TInt aStatusRef )
+    {
+    _DBG_FILE("CNSmlDmDevDetailAdapter::AddNodeObjectL(): begin");
+    _DBG_FILE("CNSmlDmDevDetailAdapter::AddNodeObjectL(): end");
+    iDmCallback->SetStatusL(aStatusRef,CSmlDmAdapter::EError);
+    }
+
+// -----------------------------------------------------------------------------
+//  CNSmlDmDevDetailAdapter::UpdateLeafObjectL(const TDesC8& aURI, 
+// const TDesC8& aLUID, RWriteStream*& aStream, const TDesC8& aType, 
+// const TInt aStatusRef)
+// -----------------------------------------------------------------------------
+void CNSmlDmDevDetailAdapter::UpdateLeafObjectL( const TDesC8& /*aURI*/, 
+                                                 const TDesC8& /*aLUID*/, 
+                                                 RWriteStream*& /*aStream*/, 
+                                                 const TDesC8& /*aType*/, 
+                                                 const TInt aStatusRef )
+    {
+    _DBG_FILE("CNSmlDmDevInfoAdapter::UpdateLeafObjectL(): stream: begin");
+    iDmCallback->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
+    _DBG_FILE("CNSmlDmDevInfoAdapter::UpdateLeafObjectL(): stream: end");
+    }
+
+// -----------------------------------------------------------------------------
+//  CNSmlDmDevDetailAdapter::FetchLeafObjectSizeL( const TDesC8& aURI, 
+// const TDesC8& aLUID, const TDesC8& aType, const TInt aResultsRef, 
+// const TInt aStatusRef )
+// -----------------------------------------------------------------------------
+void CNSmlDmDevDetailAdapter::FetchLeafObjectSizeL( const TDesC8& aURI, 
+                                                    const TDesC8& /*aLUID*/, 
+                                                    const TDesC8& aType, 
+                                                    const TInt aResultsRef, 
+                                                    const TInt aStatusRef )
+    {
+    _DBG_FILE("CNSmlDmDevDetailAdapter::FetchLeafObjectSizeL(): begin");
+
+    CBufBase *object = CBufFlat::NewL( 1 );
+    CleanupStack::PushL( object );
+    CSmlDmAdapter::TError retValue = FetchLeafObjectL( aURI, *object );
+
+    TInt objSizeInBytes = object->Size();
+    TBuf8<KNSmlMaxSizeBufferLength> stringObjSizeInBytes;
+    stringObjSizeInBytes.Num( objSizeInBytes );
+    object->Reset();
+    object->InsertL( 0, stringObjSizeInBytes );
+    
+    iDmCallback->SetStatusL( aStatusRef, retValue );
+    iDmCallback->SetResultsL( aResultsRef, *object, aType);
+    CleanupStack::PopAndDestroy(); //object 
+
+            
+    _DBG_FILE("CNSmlDmDevDetailAdapter::FetchLeafObjectSizeL(): end");
+    }
+    
+// -----------------------------------------------------------------------------
+//  CNSmlDmDevDetailAdapter::ExecuteCommandL( const TDesC8& aURI, 
+//  const TDesC8& aParentLUID, TDesC8& aArgument, const TDesC8& aType, 
+//  TInt aStatusRef )
+// -----------------------------------------------------------------------------
+void CNSmlDmDevDetailAdapter::ExecuteCommandL( const TDesC8& /*aURI*/, const TDesC8& /*aLUID*/, const TDesC8& /*aArgument*/, const TDesC8& /*aType*/, const TInt aStatusRef )
+    {
+    _DBG_FILE("CNSmlDmDevInfoAdapter::ExecuteCommandL(): begin");
+    iDmCallback->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
+    _DBG_FILE("CNSmlDmDevInfoAdapter::ExecuteCommandL(): end");
+    }
+
+// -----------------------------------------------------------------------------
+//  CNSmlDmDevDetailAdapter::ExecuteCommandL( const TDesC8& aURI, 
+//  const TDesC8& aParentLUID, RWriteStream*& aStream, const TDesC8& aType, 
+//  const TInt aStatusRef )
+// -----------------------------------------------------------------------------
+void CNSmlDmDevDetailAdapter::ExecuteCommandL( const TDesC8& /*aURI*/, 
+                                               const TDesC8& /*aParentLUID*/, 
+                                               RWriteStream*& /*aStream*/, 
+                                               const TDesC8& /*aType*/, 
+                                               const TInt aStatusRef )
+    {
+    _DBG_FILE("CNSmlDmDevInfoAdapter::ExecuteCommandL(): stream: begin");
+    iDmCallback->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
+    _DBG_FILE("CNSmlDmDevInfoAdapter::ExecuteCommandL(): stream: end");
+    }
+// -----------------------------------------------------------------------------
+//  CNSmlDmDevDetailAdapter::CopyCommandL( const TDesC8& aTargetURI, 
+//  const TDesC8& aSourceURI, const TDesC8& aSourceLUID, const TDesC8& aType, 
+//  const TInt aStatusRef )
+// -----------------------------------------------------------------------------
+void CNSmlDmDevDetailAdapter::CopyCommandL( const TDesC8& /*aTargetURI*/, 
+                                            const TDesC8& /*aTargetLUID*/, 
+                                            const TDesC8& /*aSourceURI*/, 
+                                            const TDesC8& /*aSourceLUID*/, 
+                                            const TDesC8& /*aType*/, 
+                                            TInt aStatusRef )
+    {
+    _DBG_FILE("CNSmlDmDevInfoAdapter::CopyCommandL(): begin");
+    iDmCallback->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
+    _DBG_FILE("CNSmlDmDevInfoAdapter::CopyCommandL(): end");
+    }
+
+// ----------------------------------------
+//  CNSmlDmDevDetailAdapter::StartAtomicL()
+// ----------------------------------------
+void CNSmlDmDevDetailAdapter::StartAtomicL()
+    {
+    _DBG_FILE("CNSmlDmDevInfoAdapter::StartAtomicL(): begin");
+    _DBG_FILE("CNSmlDmDevInfoAdapter::StartAtomicL(): end");
+    }
+    
+// -----------------------------------------
+//  CNSmlDmDevDetailAdapter::CommitAtomicL()
+// -----------------------------------------
+void CNSmlDmDevDetailAdapter::CommitAtomicL()
+    {
+    _DBG_FILE("CNSmlDmDevInfoAdapter::CommitAtomicL(): begin");
+    _DBG_FILE("CNSmlDmDevInfoAdapter::CommitAtomicL(): end");
+    }
+
+// -------------------------------------------
+//  CNSmlDmDevDetailAdapter::RollbackAtomicL()
+// -------------------------------------------
+void CNSmlDmDevDetailAdapter::RollbackAtomicL()
+    {
+    _DBG_FILE("CNSmlDmDevInfoAdapter::RollbackAtomicL(): begin");
+    _DBG_FILE("CNSmlDmDevInfoAdapter::RollbackAtomicL(): end");
+    }
+
+// -------------------------------------------------------------
+//  CNSmlDmDevDetailAdapter::StreamingSupport( TInt& aItemSize )
+// -------------------------------------------------------------    
+TBool CNSmlDmDevDetailAdapter::StreamingSupport( TInt& /*aItemSize*/ )
+    {
+    _DBG_FILE("CNSmlDmDevInfoAdapter::StreamingSupport(): begin");
+    _DBG_FILE("CNSmlDmDevInfoAdapter::StreamingSupport(): end");
+    return EFalse;
+    }
+
+// --------------------------------------------
+//  CNSmlDmDevDetailAdapter::StreamCommittedL()
+// --------------------------------------------
+void CNSmlDmDevDetailAdapter::StreamCommittedL()
+    {
+    _DBG_FILE("CNSmlDmDevInfoAdapter::StreamCommittedL(): begin");
+    _DBG_FILE("CNSmlDmDevInfoAdapter::StreamCommittedL(): end");
+    }
+
+// ----------------------------------------------------
+//  CNSmlDmDevDetailAdapter::CompleteOutstandingCmdsL()
+// ---------------------------------------------------- 
+void CNSmlDmDevDetailAdapter::CompleteOutstandingCmdsL()
+    {
+    _DBG_FILE("CNSmlDmDevInfoAdapter::CompleteOutstandingCmdsL(): begin");
+    _DBG_FILE("CNSmlDmDevInfoAdapter::CompleteOutstandingCmdsL(): end");
+    }
+
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+
+#ifndef IMPLEMENTATION_PROXY_ENTRY
+#define IMPLEMENTATION_PROXY_ENTRY(aUid, aFuncPtr)  {{aUid},(aFuncPtr)}
+#endif
+
+const TImplementationProxy ImplementationTable[] = 
+    {
+        IMPLEMENTATION_PROXY_ENTRY(KNSmlDMDevDetailAdapterImplUid, 
+                                   CNSmlDmDevDetailAdapter::NewL)
+    };
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+EXPORT_C const TImplementationProxy* ImplementationGroupProxy( TInt& aTableCount )
+    {
+    _DBG_FILE("ImplementationGroupProxy() for CNSmlDmDevDetailAdapter: begin");
+    aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
+    _DBG_FILE("ImplementationGroupProxy() for CNSmlDmDevDetailAdapter: end");
+    return ImplementationTable;
+    }
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/devdetail/src/nsmldmdevdetailadapter.rss	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,66 @@
+/*
+* Copyright (c) 2009 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 adapters
+* 	This is part of omadmextensions.
+*
+*/
+
+
+CHARACTER_SET UTF8
+
+/*
+* ============================================================================
+*  Name     : 101f6de9.rss
+*  Part of  : SyncMl
+*  Origin   : SyncML Phase 2 
+*  Created  : 06.03.2003
+*  Implementation notes:
+*     
+*  Version  : 0.1
+*   $Revision: 2 $, $Modtime: 10.05.05 11:04 $ by $Author: Kollasep $
+*  ---------------------------------------------------------------------------
+*  Version history:
+*  Template version: 1.02, 21.6.2000 by maparnan
+*  <ccm_history>
+*  </ccm_history>
+* ============================================================================
+*/
+
+
+
+#include <registryinfo.rh>
+#include <nsmldmconstants.h>
+
+RESOURCE REGISTRY_INFO theRegistryInfo
+  {
+  dll_uid = 0x101F6DE9; //The DLL's 3rd UID.
+  interfaces = 
+      {
+      INTERFACE_INFO
+          {
+          interface_uid = KNSmlDMInterfaceUid; // DM interface UID
+          implementations = 
+            {
+            IMPLEMENTATION_INFO
+                {
+                implementation_uid = 0x101F6DEF; // DM devdetail implementation UID
+                version_no = 1; 
+                display_name = "";
+                default_data = "";
+                opaque_data = "";
+                }
+            };
+          }
+      };
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/devdetail/src/nsmldmdevdetailutils_ARM.cpp	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,132 @@
+/*
+* Copyright (c) 2004 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:    DM DevDetail Adapter Source Code, ARM implementation
+*
+*/
+
+
+
+
+// INCLUDES
+#include <sysutil.h>
+#include "nsmldmdevdetailadapter.h"
+#include "nsmldebug.h"
+
+#if defined (_ENABLE_MULTIROFS_SUPPORT)
+#include <sysversioninfo.h>
+#else
+// CONSTANTS
+_LIT8( KNSmlSwVersionSeparator, " " );
+#endif
+
+// ---------------------------------------------------------------------------
+// CNSmlDmDevDetailAdapter::GetDevDetailDataL( )
+// Fetches device specific data using EInfo interface.
+// ---------------------------------------------------------------------------
+void CNSmlDmDevDetailAdapter::GetDevDetailDataL( 
+                                CBufBase& aObject, 
+                                TNSmlDevDetailData aElement ) const
+    {
+    _DBG_FILE("CNSmlDmDevDetailAdapter::GetDevDetailDataL(): begin (MARM)");
+    
+    aObject.Reset();
+    
+    switch( aElement )
+        {
+        case ESwVersion:
+            {
+            // buffers for data fetched from sysutil
+#if defined (_ENABLE_MULTIROFS_SUPPORT)
+
+            TBuf16<KSysVersionInfoTextLength> temp;
+			TBuf8<KSysVersionInfoTextLength> temp8;
+			temp.Zero();
+			temp8.Zero();
+            SysVersionInfo::TVersionInfoType what = SysVersionInfo::EFWVersion;
+            TInt error = SysVersionInfo::GetVersionInfo(what,temp);
+			
+			User::LeaveIfError(error);
+
+			//Ascii copy which is required
+			temp8.Copy(temp);
+			aObject.InsertL(0,temp8);
+			//Unicode copy if required
+			//aObject.InsertL(0,temp.Ptr(),temp.Length());
+#else
+            HBufC* verBuf = HBufC::NewLC( KSysUtilVersionTextLength );
+            HBufC8* verBuf8 = HBufC8::NewLC( KSysUtilVersionTextLength );
+            
+            TPtr ver = verBuf->Des();
+            TPtr8 ver8 = verBuf8->Des();
+            // fetch software version (sw.txt) from sysutil
+        	SysUtil::GetSWVersion( ver );
+        	ver8.Copy( ver );
+        	
+            // parse sw fields and append to aObject
+        	TChar separator('\n');
+        	TInt pos = ver8.Locate( separator );
+
+            if ( pos == KErrNotFound )
+                {
+                User::Leave( KErrNotFound );
+                }
+
+            // insert version (1st field) and separator to beginning
+        	aObject.InsertL( 0, ver8.Mid( 0, pos ) );
+        	aObject.InsertL( 0, KNSmlSwVersionSeparator );
+        	
+        	// locate type designator (3rd field)
+        	ver8 = ver8.Mid( pos + 1 );
+        	pos = ver8.Locate( separator );
+        	ver8 = ver8.Mid( pos + 1 );
+        	pos = ver8.Locate( separator );
+        	
+        	if ( pos == KErrNotFound )
+        	    {
+                // type designator (the rest of the string, since there was no \n found) 
+            	aObject.InsertL( 0, ver8 );
+        	    }
+        	else
+        	    {
+                // type designator to beginning
+            	aObject.InsertL( 0, ver8.Mid( 0, pos ) );
+        	    }
+        	
+        	// fetch variant (lang.txt) from sysutil
+        	ver.Zero();
+        	SysUtil::GetLangVersion( ver );
+        	ver8.Copy( ver );
+        	
+            // insert separator and variant to the end
+        	aObject.InsertL( aObject.Size(), KNSmlSwVersionSeparator );
+        	aObject.InsertL( aObject.Size(), ver8 );
+            
+            CleanupStack::PopAndDestroy( verBuf8 );
+            CleanupStack::PopAndDestroy( verBuf );
+#endif //_ENABLE_MULTIROFS_SUPPORT
+            break;
+            }
+        case EHwVersion:
+            {
+            break;
+            }
+        default:
+            User::Panic( KNSmlDevDetailPanic, KErrArgument );
+            break;
+        }
+
+    _DBG_FILE("CNSmlDmDevDetailAdapter::GetDevDetailDataL(): end (MARM)");
+    }
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/devdetail/src/nsmldmdevdetailutils_WINSCW.cpp	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,94 @@
+/*
+* Copyright (c) 2004 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:    DM DevDetail Adapter Source Code, WINSCW implementation
+*
+*/
+
+
+
+
+// INCLUDES
+#include "nsmldmdevdetailadapter.h"
+#include "nsmldebug.h"
+
+// CONSTANTS
+_LIT( KNSmlDevDetailSwVFile,    "z:\\Resource\\DevMan\\DevDetail_SwV.txt" );
+_LIT( KNSmlDevDetailHwVFile,    "z:\\Resource\\DevMan\\DevDetail_HwV.txt" );
+
+const TInt KNSmlDevDetailMaxDataSize = 2048;
+
+// ---------------------------------------------------------------------------
+// CNSmlDmDevDetailAdapter::GetDevDetailDataL( )
+// ---------------------------------------------------------------------------
+void CNSmlDmDevDetailAdapter::GetDevDetailDataL( 
+                                CBufBase& aObject, 
+                                TNSmlDevDetailData aElement ) const
+    {
+    _DBG_FILE("CNSmlDmDevDetailAdapter::GetDevDetailDataL(): begin (WINSCW)");
+    
+    // Select file according to aElement
+    HBufC* name = NULL;
+    
+    switch( aElement )
+        {
+        case ESwVersion:
+            name = KNSmlDevDetailSwVFile().AllocLC();
+            break;
+        case EHwVersion:
+            name = KNSmlDevDetailHwVFile().AllocLC();
+            break;
+        default:
+            User::Panic( KNSmlDevDetailPanic, KErrArgument );
+        }
+    
+    // open file server session
+    RFs fileSession;
+    User::LeaveIfError( fileSession.Connect() );
+    CleanupClosePushL( fileSession );
+    
+    // open file
+    RFile file;
+    TInt err = file.Open( fileSession, *name, EFileRead|EFileShareReadersOnly );
+    
+    // if opening file succeeded, read the contents of the file
+    if ( err == KErrNone )
+        {
+        CleanupClosePushL( file );
+        
+        // read only if data size is not too large
+        TInt fileSize = 0;
+        User::LeaveIfError( file.Size( fileSize ) );
+        if ( fileSize <= KNSmlDevDetailMaxDataSize )
+            {
+            // read data
+            HBufC8* data = HBufC8::NewLC( fileSize );
+            TPtr8 dataPtr = data->Des();
+            file.Read( dataPtr, fileSize );
+            
+            // insert data to result buffer
+            aObject.Reset();
+            aObject.InsertL( 0, *data );
+            
+            CleanupStack::PopAndDestroy( data );
+            }
+        
+        CleanupStack::PopAndDestroy( &file );
+        }
+    
+    CleanupStack::PopAndDestroy( &fileSession );
+    CleanupStack::PopAndDestroy( name );
+    
+    _DBG_FILE("CNSmlDmDevDetailAdapter::GetDevDetailDataL(): end (WINSCW)");
+    }
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/devinfo/bld/bld.inf	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,26 @@
+/*
+* Copyright (c) 2002 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:    build info file for DevInfo adapter
+*
+*/
+
+
+
+
+PRJ_MMPFILES
+./nsmldmdevinfoadapter.mmp
+
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/devinfo/bld/nsmldmdevinfoadapter.mmp	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,52 @@
+/*
+* Copyright (c) 2002 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 adapters
+* 	This is part of omadmextensions.
+*
+*/
+
+
+
+
+
+#include "defaultcaps.hrh"
+#include  <platform_paths.hrh>
+
+CAPABILITY      CAP_ECOM_PLUGIN
+TARGET          nsmldmdevinfoadapter.dll
+TARGETTYPE      PLUGIN
+UID             0x10009D8D 0x101F6DE8
+VENDORID        VID_DEFAULT
+
+APP_LAYER_SYSTEMINCLUDE
+SYSTEMINCLUDE 	/epoc32/include/ecom
+SOURCEPATH      ../src
+
+USERINCLUDE     ../inc ../../inc
+USERINCLUDE     ../../devdetail/inc
+SOURCE          nsmldmdevinfoadapter.cpp
+
+START RESOURCE nsmldmdevinfoadapter.rss
+LANGUAGE_IDS
+END
+
+
+
+LIBRARY         euser.lib 
+LIBRARY         ecom.lib 
+LIBRARY         nsmldebug.lib
+LIBRARY         nsmlagentcommon.lib
+LIBRARY     	featmgr.lib
+
+SMPSAFE
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/devinfo/inc/nsmldmdevinfoadapter.h	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,210 @@
+/*
+* Copyright (c) 2004 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:    DM DevInfo Adapter
+*
+*/
+
+
+
+
+
+
+#ifndef __NSMLDMDEVINFOADAPTER_H__
+#define __NSMLDMDEVINFOADAPTER_H__
+
+// INCLUDES
+#include <e32base.h>
+#include <smldmadapter.h>
+#include "nsmldmconstants.h"
+
+// MACROS
+
+// the DDF version must be changed if any changes in DDF structure 
+// ( built in DDFStructureL() function )
+_LIT8( KNSmlDMDevInfoDDFVersion, "1.0" ); 
+
+_LIT8( KNSmlDMDevInfoTextPlain, "text/plain" );
+_LIT8( KNSmlDMDevInfoNodeName, "DevInfo" );
+_LIT8( KNSmlDMDevInfoDescription, "The interior object holds all DevInfo objects" );
+
+_LIT8( KNSmlDMDevInfoManNodeName, "Man" );
+_LIT8( KNSmlDMDevInfoManDescription, "The name of the device manufacturer" );
+
+_LIT8( KNSmlDMDevInfoModNodeName, "Mod" );
+_LIT8( KNSmlDMDevInfoModDescription, "The name of the device model" );
+
+_LIT8( KNSmlDMDevInfoDevIdNodeName, "DevId" );
+_LIT8( KNSmlDMDevInfoDevIdDescription, "The unique device identifier" );
+
+_LIT8( KNSmlDMDevInfoLangNodeName, "Lang" );
+_LIT8( KNSmlDMDevInfoLangDescription, "The current language setting of the device" );
+
+_LIT8( KNSmlDMDevInfoDmVNodeName, "DmV" );
+_LIT8( KNSmlDMDevInfoDmVDescription, "The current DM client revision of the device" );
+
+_LIT8( KNSmlDMDevInfoExtNodeName, "Ext" );
+_LIT8( KNSmlDMDevInfoExtDescription, "The extendable DevInfo branch" );
+
+_LIT8( KNSmlDMDevInfoModDDFNodeName, "ModDDF" );
+_LIT8( KNSmlDMDevInfoModDDFDescription, "The checksum counted from DDF" );
+
+_LIT8( KNSmlDMDevInfoModDevDetNodeName, "ModDevDet" );
+_LIT8( KNSmlDMDevInfoModDevDetDescription, "The checksum counted from DevDetail values" );
+
+_LIT8( KNSmlDmDDFChangeUri, "DDFCHANGE" );
+
+_LIT8( KNSmlDMDevInfoSeparator, "/" );
+
+_LIT8( KNSmlDMEnglish, "en" );
+_LIT8( KNSmlDMFrench, "fr" );
+_LIT8( KNSmlDMGerman, "de" );
+_LIT8( KNSmlDMSpanish, "es" );
+_LIT8( KNSmlDMItalian, "it" );
+_LIT8( KNSmlDMSwedish, "sv" );
+_LIT8( KNSmlDMDanish, "da" );
+_LIT8( KNSmlDMNorwegian, "no" ); 
+_LIT8( KNSmlDMFinnish, "fi" );
+_LIT8( KNSmlDMPortuguese, "pt" );
+_LIT8( KNSmlDMTurkish, "tr" );
+_LIT8( KNSmlDMIcelandic, "is" );
+_LIT8( KNSmlDMRussian, "ru" );
+_LIT8( KNSmlDMHungarian, "hu" );
+_LIT8( KNSmlDMDutch, "nl" );
+_LIT8( KNSmlDMCzech, "cs" );
+_LIT8( KNSmlDMSlovak, "sk" );
+_LIT8( KNSmlDMPolish, "pl" );
+_LIT8( KNSmlDMSlovenian, "sl" );
+_LIT8( KNSmlDMChinese, "ch" );
+_LIT8( KNSmlDMJapanese, "ja" );
+_LIT8( KNSmlDMThai, "th" );
+_LIT8( KNSmlDMAfrikaans, "af" );
+_LIT8( KNSmlDMAlbanian, "sq" );
+_LIT8( KNSmlDMAmharic, "am" );
+_LIT8( KNSmlDMArabic, "ar" );
+_LIT8( KNSmlDMArmenian, "hy" );
+_LIT8( KNSmlDMTagalog, "tl" );
+_LIT8( KNSmlDMBelarussian, "be" );
+_LIT8( KNSmlDMBengali, "bn" );
+_LIT8( KNSmlDMBulgarian, "bg" );
+_LIT8( KNSmlDMBurmese, "my" );
+_LIT8( KNSmlDMCatalan, "ca" );
+_LIT8( KNSmlDMCroatian, "hr" );
+_LIT8( KNSmlDMEstonian, "et" );
+_LIT8( KNSmlDMFarsi, "fo" );
+_LIT8( KNSmlDMScotsGaelic, "gl" );
+_LIT8( KNSmlDMGeorgian, "ka" );
+_LIT8( KNSmlDMGreek, "el" );
+_LIT8( KNSmlDMGujarati, "gu" );
+_LIT8( KNSmlDMHebrew, "he" );
+_LIT8( KNSmlDMHindi, "hi" );
+_LIT8( KNSmlDMIndonesian, "id" );
+_LIT8( KNSmlDMIrish, "ga" );
+_LIT8( KNSmlDMKannada, "kn" );
+_LIT8( KNSmlDMKazakh, "kk" );
+_LIT8( KNSmlDMKorean, "ko" );
+_LIT8( KNSmlDMLao, "lo" );
+_LIT8( KNSmlDMLatvian, "lv" );
+_LIT8( KNSmlDMLithuanian, "lt" );
+_LIT8( KNSmlDMMacedonian, "mk" );
+_LIT8( KNSmlDMMalay, "ms" );
+_LIT8( KNSmlDMMalayalam, "ml" );
+_LIT8( KNSmlDMMarathi, "mr" );
+_LIT8( KNSmlDMMoldavian, "mo" );
+_LIT8( KNSmlDMMongolian, "mn" );
+_LIT8( KNSmlDMPunjabi, "pa" );
+_LIT8( KNSmlDMRomanian, "ro" );
+_LIT8( KNSmlDMSerbian, "sr" );
+_LIT8( KNSmlDMSinhalese, "si" );                
+_LIT8( KNSmlDMSomali, "so" );
+_LIT8( KNSmlDMSwahili, "sw" );
+_LIT8( KNSmlDMTamil, "ta" );
+_LIT8( KNSmlDMTelugu, "te" );
+_LIT8( KNSmlDMTibetan, "bo" );
+_LIT8( KNSmlDMTigrinya, "ti" );
+_LIT8( KNSmlDMTurkmen, "tk" );
+_LIT8( KNSmlDMUkrainian, "uk" );
+_LIT8( KNSmlDMUrdu, "ur" ); 
+_LIT8( KNSmlDMVietnamese, "vi" );
+_LIT8( KNSmlDMWelsh, "cy" );
+_LIT8( KNSmlDMZulu, "zu" );
+
+
+// CLASS DECLARATION
+class CNSmlDmDevInfoAdapter : public CSmlDmAdapter
+    {
+public: // constructors and destructor
+    static CNSmlDmDevInfoAdapter* NewL(MSmlDmCallback* aDmCallback );
+    static CNSmlDmDevInfoAdapter* NewLC(MSmlDmCallback* aDmCallback );
+
+    virtual ~CNSmlDmDevInfoAdapter();
+
+private: ///new functions
+
+    void SetLeafPropertiesL( MSmlDmDDFObject& aObject, 
+                 const TSmlDmAccessTypes& aAccessTypes, 
+                 const TDesC8& aDescription ) const;
+    CNSmlDmDevInfoAdapter(TAny* aEcomArguments);
+    CSmlDmAdapter::TError FetchLeafObjectL( const TDesC8& aURI, CBufBase& aObject );
+    
+private: // from base classes
+    // Adapter interface from CSmlDmAdapter
+    void DDFVersionL( CBufBase& aDDFVersion );
+    void DDFStructureL( MSmlDmDDFObject& aDDF );
+    void UpdateLeafObjectL( const TDesC8& aURI, const TDesC8& aLUID, 
+                const TDesC8& aObject, const TDesC8& aType, 
+                const TInt aStatusRef );
+    void DeleteObjectL( const TDesC8& aURI, const TDesC8& aLUID, TInt aStatusRef ); 
+    void FetchLeafObjectL( const TDesC8& aURI, const TDesC8& aLUID, 
+                   const TDesC8& aType, const TInt aResultsRef, 
+                   const TInt aStatusRef ); 
+    void ChildURIListL( const TDesC8& aURI, const TDesC8& aLUID, 
+                const CArrayFix<TSmlDmMappingInfo>& aPreviousURISegmentList, 
+                const TInt aResultsRef, const TInt aStatusRef );  
+    void AddNodeObjectL( const TDesC8& aURI, const TDesC8& aParentLUID, 
+                 const TInt aStatusRef );
+    
+    void UpdateLeafObjectL( const TDesC8& aURI, const TDesC8& aLUID, 
+                RWriteStream*& aStream, const TDesC8& aType, 
+                const TInt aStatusRef );
+    void FetchLeafObjectSizeL( const TDesC8& aURI, const TDesC8& aLUID, 
+                   const TDesC8& aType, const TInt aResultsRef, 
+                   const TInt aStatusRef );
+     
+    void ExecuteCommandL( const TDesC8& aURI, const TDesC8& aLUID,
+                          const TDesC8& aArgument, 
+                          const TDesC8& aType,
+                          const TInt aStatusRef );
+                                  
+    void ExecuteCommandL( const TDesC8& aURI, const TDesC8& aLUID,
+                          RWriteStream*& aStream, 
+                          const TDesC8& aType,
+                          const TInt aStatusRef );
+    
+    void CopyCommandL( const TDesC8& aTargetURI, const TDesC8& aTargetLUID,
+                       const TDesC8& aSourceURI, 
+                       const TDesC8& aSourceLUID,
+                       const TDesC8& aType, TInt aStatusRef );
+    void StartAtomicL();
+    void CommitAtomicL();
+    void RollbackAtomicL();
+    TBool StreamingSupport( TInt& aItemSize );
+    void StreamCommittedL();
+    void CompleteOutstandingCmdsL();
+    
+    
+private:
+    MSmlDmCallback* iDmCallback;
+    };
+
+#endif // __NSMLDMDEVINFOADAPTER_H__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/devinfo/src/nsmldmdevinfoadapter.cpp	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,770 @@
+/*
+* Copyright (c) 2004 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:    DM DevInfo Adapter
+*
+*/
+
+
+
+
+
+//INCLUDE FILES
+#include <implementationproxy.h> // For TImplementationProxy definition
+#include "nsmldmimpluids.h"
+#include <featmgr.h>
+
+#include "nsmldmdevinfoadapter.h"
+#include "nsmldebug.h"
+#include "nsmlphoneinfo.h"
+#include "nsmlunicodeconverter.h"
+#include "nsmlconstants.h"
+#include "nsmldmconst.h"
+#include "nsmldmdevdetailadapter.h"
+
+
+// -----------------------------------------------------------------------------
+// CNSmlDmDevInfoAdapter* CNSmlDmDevInfoAdapter::NewL( )
+// -----------------------------------------------------------------------------
+CNSmlDmDevInfoAdapter* CNSmlDmDevInfoAdapter::NewL(MSmlDmCallback* aDmCallback )
+    {
+    _DBG_FILE("CNSmlDmDevInfoAdapter::NewL(): begin");
+    CNSmlDmDevInfoAdapter* self = NewLC( aDmCallback );
+    CleanupStack::Pop();
+    _DBG_FILE("CNSmlDmDevInfoAdapter::NewL(): end");
+    return self;
+    }
+
+// -----------------------------------------------------------------------------
+// CNSmlDmDevInfoAdapter* CNSmlDmDevInfoAdapter::NewLC( )
+// -----------------------------------------------------------------------------
+CNSmlDmDevInfoAdapter* CNSmlDmDevInfoAdapter::NewLC(MSmlDmCallback* aDmCallback )
+    {
+    _DBG_FILE("CNSmlDmDevInfoAdapter::NewLC(): begin");
+    CNSmlDmDevInfoAdapter* self = new (ELeave) CNSmlDmDevInfoAdapter(aDmCallback);
+    CleanupStack::PushL(self);
+    self->iDmCallback = aDmCallback;
+    FeatureManager::InitializeLibL();
+    _DBG_FILE("CNSmlDmDevInfoAdapter::NewLC(): end");
+    return self;
+    }
+
+
+
+// -----------------------------------------------------------------------------
+// CNSmlDmDevInfoAdapter::~CNSmlDmDevInfoAdapter()
+// -----------------------------------------------------------------------------
+CNSmlDmDevInfoAdapter::~CNSmlDmDevInfoAdapter()
+    {
+    _DBG_FILE("CNSmlDmDevInfoAdapter::~CNSmlDmDevInfoAdapter(): begin");
+    FeatureManager::UnInitializeLib();
+    _DBG_FILE("CNSmlDmDevInfoAdapter::~CNSmlDmDevInfoAdapter(): end");
+    }
+    
+// -----------------------------------------------------------------------------
+// CNSmlDmDevInfoAdapter::CNSmlDmDevInfoAdapter()
+// -----------------------------------------------------------------------------
+
+CNSmlDmDevInfoAdapter::CNSmlDmDevInfoAdapter(TAny* aEcomArguments):CSmlDmAdapter(aEcomArguments)
+    {
+    _DBG_FILE("CNSmlDmDevInfoAdapter::CNSmlDmDevInfoAdapter(aEcomArguments): begin");
+    _DBG_FILE("CNSmlDmDevInfoAdapter::CNSmlDmDevInfoAdapter(aEcomArguments): end"); 
+    }
+
+// -----------------------------------------------------------------------------
+// CNSmlDmDevInfoAdapter::SetLeafPropertiesL()
+// -----------------------------------------------------------------------------
+void CNSmlDmDevInfoAdapter::SetLeafPropertiesL( MSmlDmDDFObject& aObject, 
+                                                const TSmlDmAccessTypes& aAccessTypes, 
+                                                const TDesC8& aDescription ) const
+    {
+    aObject.SetAccessTypesL( aAccessTypes );
+    aObject.SetScopeL( MSmlDmDDFObject::EPermanent );
+    aObject.SetDFFormatL( MSmlDmDDFObject::EChr );
+    aObject.AddDFTypeMimeTypeL( KNSmlDMDevInfoTextPlain );
+    aObject.SetDescriptionL( aDescription );
+    }
+
+
+// -----------------------------------------------------------------------------
+//  CNSmlDmDevInfoAdapter::DDFVersionL()
+// -----------------------------------------------------------------------------
+void CNSmlDmDevInfoAdapter::DDFVersionL(CBufBase& aDDFVersion)
+    {
+    _DBG_FILE("CNSmlDmDevInfoAdapter::DDFVersionL(TDes& aDDFVersion): begin");
+    aDDFVersion.InsertL(0,KNSmlDMDevInfoDDFVersion);
+    _DBG_FILE("CNSmlDmDevInfoAdapter::DDFVersionL(TDes& aDDFVersion): end");
+    }
+
+
+// -----------------------------------------------------------------------------
+//  CNSmlDmDevInfoAdapter::DDFStructureL()
+//
+// -----------------------------------------------------------------------------
+void CNSmlDmDevInfoAdapter::DDFStructureL( MSmlDmDDFObject& aDDF )
+    {
+    _DBG_FILE("CNSmlDmDevInfoAdapter::DDFStructureL(): begin");
+    
+    TSmlDmAccessTypes accessTypes;
+    accessTypes.SetGet();
+    // DevInfo
+    MSmlDmDDFObject& devInfo = aDDF.AddChildObjectL( KNSmlDMDevInfoNodeName );
+    devInfo.SetAccessTypesL( accessTypes ); 
+    devInfo.SetScopeL( MSmlDmDDFObject::EPermanent );
+    devInfo.SetDescriptionL( KNSmlDMDevInfoDescription );
+    // Man  
+    MSmlDmDDFObject& man = devInfo.AddChildObjectL(KNSmlDMDevInfoManNodeName);
+    SetLeafPropertiesL( man, accessTypes, KNSmlDMDevInfoManDescription );
+    // Mod  
+    MSmlDmDDFObject& mod = devInfo.AddChildObjectL(KNSmlDMDevInfoModNodeName );
+    SetLeafPropertiesL( mod, accessTypes, KNSmlDMDevInfoModDescription );
+    // DevId    
+    MSmlDmDDFObject& devid = devInfo.AddChildObjectL( KNSmlDMDevInfoDevIdNodeName);
+    SetLeafPropertiesL( devid, accessTypes, KNSmlDMDevInfoDevIdDescription ); 
+    // Lang 
+    MSmlDmDDFObject& lang = devInfo.AddChildObjectL(KNSmlDMDevInfoLangNodeName );
+    SetLeafPropertiesL( lang, accessTypes, KNSmlDMDevInfoLangDescription ); 
+    // DmV  
+    MSmlDmDDFObject& dmv = devInfo.AddChildObjectL(KNSmlDMDevInfoDmVNodeName);
+    SetLeafPropertiesL( dmv, accessTypes, KNSmlDMDevInfoDmVDescription );
+    // Ext
+    MSmlDmDDFObject& ext = devInfo.AddChildObjectL(KNSmlDMDevInfoExtNodeName );
+    ext.SetAccessTypesL( accessTypes );
+    ext.SetScopeL( MSmlDmDDFObject::EPermanent );
+    ext.SetDescriptionL( KNSmlDMDevInfoExtDescription );
+    // ModDDF   
+    MSmlDmDDFObject& modDDF = ext.AddChildObjectL( KNSmlDMDevInfoModDDFNodeName);
+    SetLeafPropertiesL( modDDF, accessTypes, KNSmlDMDevInfoModDDFDescription );
+    // ModDevDet    
+    MSmlDmDDFObject& modDevDet = ext.AddChildObjectL(KNSmlDMDevInfoModDevDetNodeName );
+    SetLeafPropertiesL( modDevDet, accessTypes, KNSmlDMDevInfoModDevDetDescription );
+    _DBG_FILE("CNSmlDmDevInfoAdapter::DDFStructureL(): end");
+    }
+
+// -----------------------------------------------------------------------------
+//  CNSmlDmDevInfoAdapter::UpdateLeafObjectL()
+// -----------------------------------------------------------------------------
+void CNSmlDmDevInfoAdapter::UpdateLeafObjectL( const TDesC8& /*aURI*/, 
+                                               const TDesC8& /*aLUID*/, 
+                                               const TDesC8& /*aObject*/, 
+                                               const TDesC8& /*aType*/, 
+                                               const TInt aStatusRef )
+    {
+    _DBG_FILE("CNSmlDmDevInfoAdapter::UpdateLeafObjectL(): begin");
+    _DBG_FILE("CNSmlDmDevInfoAdapter::UpdateLeafObjectL(): end");
+    iDmCallback->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
+    }
+
+
+// -----------------------------------------------------------------------------
+// CNSmlDmDevInfoAdapter::DeleteObjectL()
+// -----------------------------------------------------------------------------
+void CNSmlDmDevInfoAdapter::DeleteObjectL( const TDesC8& /*aURI*/, 
+                                           const TDesC8& /*aLUID*/, 
+                                           const TInt aStatusRef )
+    {
+    _DBG_FILE("CNSmlDmDevInfoAdapter::DeleteLeafObjectL( ): begin");
+    _DBG_FILE("CNSmlDmDevInfoAdapter::DeleteLeafObjectL( ): end");
+    iDmCallback->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
+    }
+
+
+// -----------------------------------------------------------------------------
+//  CNSmlDmDevInfoAdapter::FetchLeafObjectL( const TDesC8& aURI, const TDesC8& aLUID, 
+// const TDesC8& aType, const TInt aResultsRef, const TInt aStatusRef )
+// -----------------------------------------------------------------------------
+void CNSmlDmDevInfoAdapter::FetchLeafObjectL( const TDesC8& aURI, 
+                                              const TDesC8& /*aLUID*/, 
+                                              const TDesC8& aType, 
+                                              const TInt aResultsRef, 
+                                              const TInt aStatusRef )
+    {
+    _DBG_FILE("CNSmlDmDevInfoAdapter::FetchLeafObjectL(): begin");
+    
+    CBufBase *object = CBufFlat::NewL( 1 );
+    CleanupStack::PushL( object );
+    
+    CSmlDmAdapter::TError retValue = FetchLeafObjectL( aURI, *object );
+    
+    iDmCallback->SetStatusL( aStatusRef, retValue );
+    iDmCallback->SetResultsL( aResultsRef, *object, aType );
+    CleanupStack::PopAndDestroy(); //object
+    _DBG_FILE("CNSmlDmDevInfoAdapt+er::FetchLeafObjectL(): end");
+    }
+
+
+// -----------------------------------------------------------------------------
+//  CNSmlDmDevInfoAdapter::ChildURIListL( const TDesC& aURI, 
+// const TDesC& aParentLUID, const CArrayFix<TSmlDmMappingInfo>& aPreviousURISegmentList, 
+// const TInt aResultsRef, const TInt aStatusRef )
+// -----------------------------------------------------------------------------
+void CNSmlDmDevInfoAdapter::ChildURIListL( const TDesC8& aURI, 
+                                           const TDesC8& /*aParentLUID*/, 
+                                           const CArrayFix<TSmlDmMappingInfo>& /*aPreviousURISegmentList*/, 
+                                           const TInt aResultsRef, 
+                                           const TInt aStatusRef )
+    {
+    _DBG_FILE("CNSmlDmDevInfoAdapter::ChildURIListL(): begin");
+    CSmlDmAdapter::TError retValue = CSmlDmAdapter::EOk;
+    CBufBase* currentURISegmentList = CBufFlat::NewL( 1 );
+    CleanupStack::PushL( currentURISegmentList );
+    TInt ret = aURI.LocateReverse(KNSmlDMDevInfoSeparator()[0]);
+    if ( ret == KErrNotFound ) 
+        {
+        ret = -1;
+        }
+    TInt len = aURI.Length() - ( ret + 1 );
+    TPtrC8 segment = aURI.Right( len );
+
+    if ( segment == KNSmlDMDevInfoNodeName )
+        {
+        currentURISegmentList->InsertL( currentURISegmentList->Size(), KNSmlDMDevInfoManNodeName() );
+        currentURISegmentList->InsertL( currentURISegmentList->Size(), KNSmlDMDevInfoSeparator() );
+        currentURISegmentList->InsertL( currentURISegmentList->Size(), KNSmlDMDevInfoModNodeName() );
+        currentURISegmentList->InsertL( currentURISegmentList->Size(), KNSmlDMDevInfoSeparator() );
+        currentURISegmentList->InsertL( currentURISegmentList->Size(), KNSmlDMDevInfoDevIdNodeName() );
+        currentURISegmentList->InsertL( currentURISegmentList->Size(), KNSmlDMDevInfoSeparator() );
+        currentURISegmentList->InsertL( currentURISegmentList->Size(), KNSmlDMDevInfoLangNodeName() );
+        currentURISegmentList->InsertL( currentURISegmentList->Size(), KNSmlDMDevInfoSeparator() );
+        currentURISegmentList->InsertL( currentURISegmentList->Size(), KNSmlDMDevInfoDmVNodeName() );
+        currentURISegmentList->InsertL( currentURISegmentList->Size(), KNSmlDMDevInfoSeparator() );
+        currentURISegmentList->InsertL( currentURISegmentList->Size(), KNSmlDMDevInfoExtNodeName() );
+        }
+    else
+    if ( segment == KNSmlDMDevInfoExtNodeName )
+        {
+        currentURISegmentList->InsertL( currentURISegmentList->Size(), KNSmlDMDevInfoModDDFNodeName() );
+        currentURISegmentList->InsertL( currentURISegmentList->Size(), KNSmlDMDevInfoSeparator() );
+        currentURISegmentList->InsertL( currentURISegmentList->Size(), KNSmlDMDevInfoModDevDetNodeName() );
+        }
+    else
+        {
+        retValue = CSmlDmAdapter::EError;
+        }
+    iDmCallback->SetStatusL( aStatusRef, retValue );
+    iDmCallback->SetResultsL( aResultsRef, *currentURISegmentList, KNullDesC8 );
+    CleanupStack::PopAndDestroy(); //currentURISegmentList
+    _DBG_FILE("CNSmlDmDevInfoAdapter::ChildURIListL(): end");
+    }
+
+
+// -----------------------------------------------------------------------------
+// CNSmlDmDevInfoAdapter::AddNodeObjectL( const TDesC8& aURI, 
+// const TDesC8& aParentLUID, const TInt aStatusRef )
+// -----------------------------------------------------------------------------
+void CNSmlDmDevInfoAdapter::AddNodeObjectL( const TDesC8& /*aURI*/, 
+                                            const TDesC8& /*aParentLUID*/, 
+                                            const TInt aStatusRef )
+    {
+    _DBG_FILE("CNSmlDmDevInfoAdapter::AddNodeObjectL(): begin");
+    iDmCallback->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
+    _DBG_FILE("CNSmlDmDevInfoAdapter::AddNodeObjectL(): end");
+    }
+
+// -----------------------------------------------------------------------------
+//  CNSmlDmDevInfoAdapter::UpdateLeafObjectL()
+// -----------------------------------------------------------------------------
+void CNSmlDmDevInfoAdapter::UpdateLeafObjectL( const TDesC8& /*aURI*/, 
+                                               const TDesC8& /*aLUID*/, 
+                                               RWriteStream*& /*aStream*/, 
+                                               const TDesC8& /*aType*/, 
+                                               const TInt aStatusRef )
+    {
+    _DBG_FILE("CNSmlDmDevInfoAdapter::UpdateLeafObjectL(): stream: begin");
+    _DBG_FILE("CNSmlDmDevInfoAdapter::UpdateLeafObjectL(): stream: end");
+    iDmCallback->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
+    }
+
+
+// -----------------------------------------------------------------------------
+//  CNSmlDmDevInfoAdapter::FetchLeafObjectSizeL( const TDesC8& aURI, 
+//  const TDesC8& aLUID, const TDesC8& aType, TInt aResultsRef, TInt aStatusRef )
+// -----------------------------------------------------------------------------
+void CNSmlDmDevInfoAdapter::FetchLeafObjectSizeL( const TDesC8& aURI, 
+                                                  const TDesC8& /*aLUID*/, 
+                                                  const TDesC8& aType, 
+                                                  const TInt aResultsRef, 
+                                                  const TInt aStatusRef )
+    {
+
+    _DBG_FILE("CNSmlDmDevInfoAdapter::FetchLeafObjectSizeL(): begin");
+    
+    CBufBase *object = CBufFlat::NewL( 1 );
+    CleanupStack::PushL( object );
+    CSmlDmAdapter::TError retValue = FetchLeafObjectL( aURI, *object );
+        
+    TInt objSizeInBytes = object->Size();
+    TBuf8<2> stringObjSizeInBytes;
+    stringObjSizeInBytes.Num( objSizeInBytes );
+    object->Reset();
+    object->InsertL( 0, stringObjSizeInBytes );
+    
+    iDmCallback->SetStatusL( aStatusRef, retValue );
+    iDmCallback->SetResultsL( aResultsRef, *object, aType );
+    CleanupStack::PopAndDestroy(); //object
+    _DBG_FILE("CNSmlDmDevInfoAdapter::FetchLeafObjectSizeL(): end");
+    }
+    
+
+// -----------------------------------------------------------------------------
+//  CNSmlDmDevInfoAdapter::ExecuteCommandL( const TDesC8& aURI, 
+//  const TDesC8& aParentLUID, TDesC8& aArgument, const TDesC8& aType, TInt aStatusRef )
+// -----------------------------------------------------------------------------
+void CNSmlDmDevInfoAdapter::ExecuteCommandL( const TDesC8& /*aURI*/, const TDesC8& /*aLUID*/, const TDesC8& /*aArgument*/, const TDesC8& /*aType*/, const TInt aStatusRef )
+    {
+    _DBG_FILE("CNSmlDmDevInfoAdapter::ExecuteCommandL(): begin");
+    iDmCallback->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
+    _DBG_FILE("CNSmlDmDevInfoAdapter::ExecuteCommandL(): end");
+    }
+
+// -----------------------------------------------------------------------------
+//  CNSmlDmDevInfoAdapter::ExecuteCommandL( const TDesC8& aURI, 
+//  const TDesC8& aParentLUID, RWriteStream*& aStream, const TDesC8& aType, 
+//  TInt aStatusRef )
+// -----------------------------------------------------------------------------
+void CNSmlDmDevInfoAdapter::ExecuteCommandL( const TDesC8& /*aURI*/, 
+                                             const TDesC8& /*aParentLUID*/, 
+                                             RWriteStream*& /*aStream*/, 
+                                             const TDesC8& /*aType*/, 
+                                             const TInt aStatusRef )
+    {
+    _DBG_FILE("CNSmlDmDevInfoAdapter::ExecuteCommandL(): stream: begin");
+    iDmCallback->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
+    _DBG_FILE("CNSmlDmDevInfoAdapter::ExecuteCommandL(): stream: end");
+    }
+
+// -----------------------------------------------------------------------------
+//  CNSmlDmDevInfoAdapter::CopyCommandL( const TDesC8& aTargetURI, const TDesC8& 
+//  aSourceURI, const TDesC8& aSourceLUID, const TDesC8& /*aType*/, TInt aStatusRef )
+// -----------------------------------------------------------------------------
+void CNSmlDmDevInfoAdapter::CopyCommandL( const TDesC8& /*aTargetURI*/, const TDesC8& 
+                                          /*aTargetLUID*/, const TDesC8& /*aSourceURI*/, 
+                                          const TDesC8& /*aSourceLUID*/, 
+                                          const TDesC8& /*aType*/, TInt aStatusRef )
+    {
+    _DBG_FILE("CNSmlDmDevInfoAdapter::CopyCommandL(): begin");
+    iDmCallback->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
+    _DBG_FILE("CNSmlDmDevInfoAdapter::CopyCommandL(): end");
+    }
+
+// --------------------------------------
+//  CNSmlDmDevInfoAdapter::StartAtomicL()
+// --------------------------------------
+void CNSmlDmDevInfoAdapter::StartAtomicL()
+    {
+    _DBG_FILE("CNSmlDmDevInfoAdapter::StartAtomicL(): begin");
+    _DBG_FILE("CNSmlDmDevInfoAdapter::StartAtomicL(): end");
+    }
+    
+// ---------------------------------------
+//  CNSmlDmDevInfoAdapter::CommitAtomicL()
+// ---------------------------------------
+void CNSmlDmDevInfoAdapter::CommitAtomicL()
+    {
+    _DBG_FILE("CNSmlDmDevInfoAdapter::CommitAtomicL(): begin");
+    _DBG_FILE("CNSmlDmDevInfoAdapter::CommitAtomicL(): end");
+    }
+
+// -----------------------------------------
+//  CNSmlDmDevInfoAdapter::RollbackAtomicL()
+// -----------------------------------------
+void CNSmlDmDevInfoAdapter::RollbackAtomicL()
+    {
+    _DBG_FILE("CNSmlDmDevInfoAdapter::RollbackAtomicL(): begin");
+    _DBG_FILE("CNSmlDmDevInfoAdapter::RollbackAtomicL(): end");
+    }
+
+// -----------------------------------------------------------
+//  CNSmlDmDevInfoAdapter::StreamingSupport( TInt& aItemSize )
+// -----------------------------------------------------------  
+TBool CNSmlDmDevInfoAdapter::StreamingSupport( TInt& /*aItemSize*/ )
+    {
+    _DBG_FILE("CNSmlDmDevInfoAdapter::StreamingSupport(): begin");
+    _DBG_FILE("CNSmlDmDevInfoAdapter::StreamingSupport(): end");
+    return EFalse;
+    }
+
+// ------------------------------------------
+//  CNSmlDmDevInfoAdapter::StreamCommittedL()
+// ------------------------------------------
+void CNSmlDmDevInfoAdapter::StreamCommittedL()
+    {
+    _DBG_FILE("CNSmlDmDevInfoAdapter::StreamCommittedL(): begin");
+    _DBG_FILE("CNSmlDmDevInfoAdapter::StreamCommittedL(): end");
+    }
+
+// --------------------------------------------------
+//  CNSmlDmDevInfoAdapter::CompleteOutstandingCmdsL()
+// --------------------------------------------------   
+void CNSmlDmDevInfoAdapter::CompleteOutstandingCmdsL()
+    {
+    _DBG_FILE("CNSmlDmDevInfoAdapter::CompleteOutstandingCmdsL(): begin");
+    _DBG_FILE("CNSmlDmDevInfoAdapter::CompleteOutstandingCmdsL(): end");    
+    }
+
+// -----------------------------------------------------------------------------
+// CNSmlDmDevDetailAdapter::FetchLeafObjectL()
+// -----------------------------------------------------------------------------
+CSmlDmAdapter::TError CNSmlDmDevInfoAdapter::FetchLeafObjectL( const TDesC8& aURI, 
+                                                               CBufBase& aObject )
+    {
+    _DBG_FILE("CNSmlDmInfoAdapter::FetchLeafObjectL(): begin");
+    CSmlDmAdapter::TError retValue = CSmlDmAdapter::EOk;
+    TInt ret = aURI.LocateReverse(KNSmlDMDevInfoSeparator()[0]);
+    if ( ret == KErrNotFound ) 
+        {
+        retValue = CSmlDmAdapter::EError;
+        }
+    else
+        {
+        TInt len = aURI.Length() - (ret + 1);
+        TPtrC8 segment = aURI.Right( len );
+        if ( segment == KNSmlDMDevInfoManNodeName ||
+             segment == KNSmlDMDevInfoModNodeName ||
+             segment == KNSmlDMDevInfoDevIdNodeName )
+            {
+            CNSmlPhoneInfo* phoneInfo = CNSmlPhoneInfo::NewLC();
+            HBufC* phonedata = HBufC::NewLC( 50 );
+            TPtr phonedataPtr = phonedata->Des();  
+            if ( segment == KNSmlDMDevInfoManNodeName )
+                {
+                phoneInfo->PhoneDataL( CNSmlPhoneInfo::EPhoneManufacturer, phonedataPtr );
+                }
+            if ( segment == KNSmlDMDevInfoModNodeName )
+                {
+                phoneInfo->PhoneDataL( CNSmlPhoneInfo::EPhoneModelId, phonedataPtr );
+                }
+            if ( segment == KNSmlDMDevInfoDevIdNodeName )
+                {
+                phoneInfo->PhoneDataL( CNSmlPhoneInfo::EPhoneSerialNumber, phonedataPtr );
+                }
+            HBufC8* phonedataInUTF8 = NULL;
+            NSmlUnicodeConverter::HBufC8InUTF8LC( *phonedata, phonedataInUTF8 );
+            aObject.InsertL( 0, *phonedataInUTF8 );
+            CleanupStack::PopAndDestroy( 3 ); //phonedataInUTF8, phonedata, phoneInfo
+            }
+        else
+        if ( segment == KNSmlDMDevInfoLangNodeName )
+            { 
+            TLanguage language = User::Language();
+            TBuf8<2> langCode;
+            switch ( language )
+                {
+                case ELangEnglish: 
+                case ELangAmerican:
+                case ELangAustralian:
+                case ELangNewZealand:
+                case ELangCanadianEnglish:
+                case ELangInternationalEnglish:
+                case ELangSouthAfricanEnglish:
+                    langCode = KNSmlDMEnglish;
+                    break; 
+                case ELangFrench:
+                case ELangSwissFrench:
+                case ELangBelgianFrench:
+                case ELangInternationalFrench:
+                case ELangCanadianFrench:
+                    langCode = KNSmlDMFrench;
+                    break;
+                case ELangGerman:
+                case ELangSwissGerman:
+                case ELangAustrian:
+                    langCode = KNSmlDMGerman;
+                    break;
+                case ELangSpanish:
+                case ELangInternationalSpanish:
+                case ELangLatinAmericanSpanish:
+                    langCode = KNSmlDMSpanish;
+                    break;
+                case ELangItalian:
+                case ELangSwissItalian:
+                    langCode = KNSmlDMItalian;
+                    break;
+                case ELangSwedish:
+                case ELangFinlandSwedish:
+                    langCode = KNSmlDMSwedish;
+                    break;
+                case ELangDanish:
+                    langCode = KNSmlDMDanish;
+                    break;
+                case ELangNorwegian:
+                case ELangNorwegianNynorsk:
+                    langCode = KNSmlDMNorwegian;
+                    break;
+                case ELangFinnish:
+                    langCode = KNSmlDMFinnish;
+                    break;
+                case ELangPortuguese:
+                case ELangBrazilianPortuguese:
+                    langCode = KNSmlDMPortuguese;
+                    break;
+                case ELangTurkish:
+                case ELangCyprusTurkish:
+                    langCode = KNSmlDMTurkish;
+                    break;
+                case ELangIcelandic:
+                    langCode = KNSmlDMIcelandic;
+                    break;
+                case ELangRussian:
+                    langCode = KNSmlDMRussian;
+                    break;
+                case ELangHungarian:
+                    langCode = KNSmlDMHungarian;
+                    break;
+                case ELangDutch:
+                case ELangBelgianFlemish:
+                    langCode = KNSmlDMDutch;
+                    break;
+                case ELangCzech:
+                    langCode = KNSmlDMCzech;
+                    break;
+                case ELangSlovak:
+                    langCode = KNSmlDMSlovak;
+                    break;
+                case ELangPolish:
+                    langCode = KNSmlDMPolish;
+                    break;
+                case ELangSlovenian:
+                    langCode = KNSmlDMSlovenian;
+                    break;
+                case ELangTaiwanChinese:
+                case ELangHongKongChinese:
+                case ELangPrcChinese:
+                    langCode = KNSmlDMChinese;
+                    break;
+                case ELangJapanese:
+                    langCode = KNSmlDMJapanese;
+                    break;
+                case ELangThai:
+                    langCode = KNSmlDMThai;
+                    break;
+                case ELangAfrikaans:
+                    langCode = KNSmlDMAfrikaans;
+                    break;
+                case ELangAlbanian:
+                    langCode = KNSmlDMAlbanian;
+                    break;
+                case ELangAmharic:
+                    langCode = KNSmlDMAmharic;
+                    break;
+                case ELangArabic:
+                    langCode = KNSmlDMArabic;
+                    break;
+                case ELangArmenian:
+                    langCode = KNSmlDMArmenian;
+                    break;
+                case ELangTagalog:
+                    langCode = KNSmlDMTagalog;
+                    break;
+                case ELangBelarussian:
+                    langCode = KNSmlDMBelarussian;
+                    break;
+                case ELangBengali:
+                    langCode = KNSmlDMBengali;
+                    break;
+                case ELangBulgarian:
+                    langCode = KNSmlDMBulgarian;
+                    break;
+                case ELangBurmese:
+                    langCode = KNSmlDMBurmese;
+                    break;
+                case ELangCatalan:
+                    langCode = KNSmlDMCatalan;
+                    break;
+                case ELangCroatian:
+                    langCode = KNSmlDMCroatian;
+                    break;
+                case ELangEstonian:
+                    langCode = KNSmlDMEstonian;
+                    break;
+                case ELangFarsi:
+                    langCode = KNSmlDMFarsi;
+                    break;
+                case ELangScotsGaelic:
+                    langCode = KNSmlDMScotsGaelic;
+                    break;
+                case ELangGeorgian:
+                    langCode = KNSmlDMGeorgian;
+                    break;
+                case ELangGreek:
+                case ELangCyprusGreek:
+                    langCode = KNSmlDMGreek;
+                    break;
+                case ELangGujarati:
+                    langCode = KNSmlDMGujarati;
+                    break;
+                case ELangHebrew:
+                    langCode = KNSmlDMHebrew;
+                    break;
+                case ELangHindi:
+                    langCode = KNSmlDMHindi;
+                    break;
+                case ELangIndonesian:
+                    langCode = KNSmlDMIndonesian;
+                    break;
+                case ELangIrish:
+                    langCode = KNSmlDMIrish;
+                    break;
+                case ELangKannada:
+                    langCode = KNSmlDMKannada;
+                    break;
+                case ELangKazakh:
+                    langCode = KNSmlDMKazakh;
+                    break;
+                case ELangKorean:
+                    langCode = KNSmlDMKorean;
+                    break;
+                case ELangLao:
+                    langCode = KNSmlDMLao;
+                    break;
+                case ELangLatvian:
+                    langCode = KNSmlDMLatvian;
+                    break;
+                case ELangLithuanian:
+                    langCode = KNSmlDMLithuanian;
+                    break;
+                case ELangMacedonian:
+                    langCode = KNSmlDMMacedonian;
+                    break;
+                case ELangMalay:
+                    langCode = KNSmlDMMalay;
+                    break;
+                case ELangMalayalam:
+                    langCode = KNSmlDMMalayalam;
+                    break;
+                case ELangMarathi:
+                    langCode = KNSmlDMMarathi;
+                    break;
+                case ELangMoldavian:
+                    langCode = KNSmlDMMoldavian;
+                    break;
+                case ELangMongolian:
+                    langCode = KNSmlDMMongolian;
+                    break;
+                case ELangPunjabi:
+                    langCode = KNSmlDMPunjabi;
+                    break;
+                case ELangRomanian:
+                    langCode = KNSmlDMRomanian;
+                    break;
+                case ELangSerbian:
+                    langCode = KNSmlDMSerbian;
+                    break;
+                case ELangSinhalese:
+                    langCode = KNSmlDMSinhalese;
+                    break;
+                case ELangSomali:
+                    langCode = KNSmlDMSomali;
+                    break;
+                case ELangSwahili:
+                    langCode = KNSmlDMSwahili;
+                    break;
+                case ELangTamil:
+                    langCode = KNSmlDMTamil;
+                    break;
+                case ELangTelugu:
+                    langCode = KNSmlDMTelugu;
+                    break;
+                case ELangTibetan:
+                    langCode = KNSmlDMTibetan;
+                    break;
+                case ELangTigrinya:
+                    langCode = KNSmlDMTigrinya;
+                    break;
+                case ELangTurkmen:
+                    langCode = KNSmlDMTurkmen;
+                    break;
+                case ELangUkrainian:
+                    langCode = KNSmlDMUkrainian;
+                    break;
+                case ELangUrdu:
+                    langCode = KNSmlDMUrdu;
+                    break;
+                case ELangVietnamese:
+                    langCode = KNSmlDMVietnamese;
+                    break;
+                case ELangWelsh:
+                    langCode = KNSmlDMWelsh;
+                    break;
+                case ELangZulu:
+                    langCode = KNSmlDMZulu;
+                    break;
+                default:
+                    langCode = KNSmlDMEnglish;
+                }
+            aObject.InsertL( 0, langCode );
+            }
+        else
+        if ( segment == KNSmlDMDevInfoDmVNodeName )
+            {
+            if(!FeatureManager::FeatureSupported( KFeatureIdSyncMlDm112  ))
+                aObject.InsertL( 0, KNSmlDMDmV12 );
+            else
+            aObject.InsertL( 0, KNSmlDMDmV );
+            }
+        else
+        if ( segment == KNSmlDMDevInfoModDDFNodeName )
+            {
+
+            }
+        else
+        if ( segment == KNSmlDMDevInfoModDevDetNodeName )
+            {
+            TUid implUID;
+            implUID.iUid = KNSmlDMDevDetailAdapterImplUid;
+            
+            TAny* nPtr = NULL;
+            MSmlDmCallback& aDmNull = reinterpret_cast<MSmlDmCallback&>(nPtr);
+            CNSmlDmDevDetailAdapter* devDetAdapter = 
+                reinterpret_cast<CNSmlDmDevDetailAdapter*>(CSmlDmAdapter::NewL( implUID, aDmNull ) );
+            CleanupStack::PushL(devDetAdapter);
+            TInt checkSumDevDet = devDetAdapter->DevDetailValueCrcL();
+            TBuf8<16> stringCheckSumDevDet; 
+            stringCheckSumDevDet.Num( checkSumDevDet );
+            aObject.InsertL( 0, stringCheckSumDevDet );
+            CleanupStack::PopAndDestroy(); // devDetAdapter
+            }
+        else
+            {
+            retValue = CSmlDmAdapter::EError;
+            }
+        }
+    _DBG_FILE("CNSmlDmInfoAdapter::FetchLeafObjectL(): end");
+    return retValue;
+    }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+#ifndef IMPLEMENTATION_PROXY_ENTRY
+#define IMPLEMENTATION_PROXY_ENTRY(aUid, aFuncPtr)  {{aUid},(aFuncPtr)}
+#endif
+
+const TImplementationProxy ImplementationTable[] = 
+    {
+        IMPLEMENTATION_PROXY_ENTRY(KNSmlDMDevInfoAdapterImplUid, CNSmlDmDevInfoAdapter::NewL)
+    };
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+EXPORT_C const TImplementationProxy* ImplementationGroupProxy( TInt& aTableCount )
+    {
+    _DBG_FILE("ImplementationGroupProxy() for CNSmlDmDevInfoAdapter: begin");
+    aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
+    _DBG_FILE("ImplementationGroupProxy() for CNSmlDmDevInfoAdapter: end");
+    return ImplementationTable;
+    }
+
+// End of file
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/devinfo/src/nsmldmdevinfoadapter.rss	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,66 @@
+/*
+* Copyright (c) 2009 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 adapters
+* 	This is part of omadmextensions.
+*
+*/
+
+
+CHARACTER_SET UTF8
+
+/*
+* ============================================================================
+*  Name     : 101f6de8.rss
+*  Part of  : SyncMl
+*  Origin   : SyncML Phase 2 
+*  Created  : 06.03.2003
+*  Implementation notes:
+*     
+*  Version  : 0.1
+*   $Revision: 2 $, $Modtime: 10.05.05 11:06 $ by $Author: Kollasep $
+*  ---------------------------------------------------------------------------
+*  Version history:
+*  Template version: 1.02, 21.6.2000 by maparnan
+*  <ccm_history>
+*  </ccm_history>
+* ============================================================================
+*/
+
+
+
+#include <registryinfo.rh>
+#include <nsmldmconstants.h>
+
+RESOURCE REGISTRY_INFO theRegistryInfo
+  {
+  dll_uid = 0x101F6DE8; //The DLL's 3rd UID.
+  interfaces = 
+      {
+      INTERFACE_INFO
+          {
+          interface_uid = KNSmlDMInterfaceUid; // DM interface UID
+          implementations = 
+            {
+            IMPLEMENTATION_INFO
+                {
+                implementation_uid = 0x101F6DEE; // DM devinfo implementation UID
+                version_no = 1; 
+                display_name = "";
+                default_data = "";
+                opaque_data = "";
+                }
+            };
+          }
+      };
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/globalwlansettings/group/bld.inf	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,32 @@
+/*
+* 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:   build info file for globalwlanadapter
+*
+*/
+
+
+
+#include <platform_paths.hrh>
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+
+
+PRJ_MMPFILES
+./globalwlanadapter.mmp
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/globalwlansettings/group/globalwlanadapter.mmp	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,43 @@
+/*
+* 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:   Project definition file for project globalwlanadapter 
+*
+*/
+
+
+
+#include  <platform_paths.hrh>
+#include <data_caging_paths.hrh>
+
+CAPABILITY      CAP_ECOM_PLUGIN
+TARGET	      	globalwlanadapter.dll
+TARGETTYPE      PLUGIN
+UID             0x10009D8D 0x1315DBD
+VENDORID        VID_DEFAULT
+
+APP_LAYER_SYSTEMINCLUDE
+SYSTEMINCLUDE 	/epoc32/include/ecom 
+
+USERINCLUDE     ../inc
+
+START RESOURCE	../src/globalwlanadapter.rss
+END
+
+SOURCEPATH ../src
+SOURCE globalwlanadapter.cpp
+
+LIBRARY		charconv.lib commdb.lib efsrv.lib ecom.lib euser.lib  
+LIBRARY		nsmldebug.lib sysutil.lib
+LIBRARY		inetprotutil.lib
+LIBRARY 	centralrepository.lib bafl.lib estor.lib edbms.lib FeatMgr.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/globalwlansettings/inc/globalwlanadapter.h	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,392 @@
+/*
+* 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:   Global WLAN settings adapter
+*
+*/
+
+
+
+#ifndef __GLOBALWLANADAPTER_H__
+#define __GLOBALWLANADAPTER_H__
+
+
+// -----------------------------------------------------------------------------------------------
+// Includes
+// -----------------------------------------------------------------------------------------------
+#include <utf.h>
+#include <commdb.h>
+#include <EapSettings.h>
+#include <internetconnectivitycrkeys.h>
+#include <smldmadapter.h>
+
+
+// -----------------------------------------------------------------------------------------------
+// Constants
+// -----------------------------------------------------------------------------------------------
+
+// The nodes of the DDF structure
+_LIT8( KNSmlWLan, "WLAN" );
+_LIT8( KNSmlWLanInternetConnectivityTest, "InternetConnectivityTest" );
+_LIT8( KNSmlWLanUseDefaultSettings, "UseDefaultSettings" );
+_LIT8( KNSmlWLanLongRetryLimit, "LongRetryLimit" );
+_LIT8( KNSmlWLanShortRetryLimit, "ShortRetryLimit" );
+_LIT8( KNSmlWLanRTSThreshold, "RTSThreshold" );
+_LIT8( KNSmlWLanTXPowerLevel, "TXPowerLevel" );
+_LIT8( KNSmlWLanPowerSaving, "PowerSaving" );
+_LIT8( KNSmlWLanBackgroundScanInterval, "BackgroundScanInterval" );
+_LIT8( KNSmlWLanScanRate, "ScanRate" );
+_LIT8( KNSmlWLanRCPITrigger, "RCPITrigger" );
+_LIT8( KNSmlWLanMinActiveChannelTime, "MinActiveChannelTime" );
+_LIT8( KNSmlWLanMaxActiveChannelTime, "MaxActiveChannelTime" );
+_LIT8( KNSmlWLanMaxTxMSDULifeTime, "MaxTxMSDULifeTime" );
+_LIT8( KNSmlWLanScanExpirationTimer, "ScanExpirationTimer" );
+_LIT8( KNSmlWLanUnloadDriverTimer, "UnloadDriverTimer" );
+_LIT8( KNSmlWLanRoamTimer, "RoamTimer" );
+_LIT8( KNSmlWLanRCPIDifference, "RCPIDifference" );
+_LIT8( KNSmlWLanConnRegainTimer, "ConnRegainTimer" );
+_LIT8( KNSmlWLanMaxTriesToFindNw, "MaxTriesToFindNw" );
+_LIT8( KNSmlWLanDelayBetweenFindNw, "DelayBetweenFindNw" );
+_LIT8( KNSmlWLanAllowRadioMeasurements, "AllowRadioMeasurements" );
+_LIT8( KNSmlWLanMinPassiveChannelTime, "MinPassiveChannelTime" );
+_LIT8( KNSmlWLanMaxPassiveChannelTime, "MaxPassiveChannelTime" );
+_LIT8( KNSmlWLanMaxApFailureCount, "MaxApFailureCount" );
+_LIT8( KNSmlWLanLongBeaconFindCount, "LongBeaconFindCount" );
+_LIT8( KNSmlWLanQosNullFrameInterval, "QosNullFrameInterval" );
+_LIT8( KNSmlWLanQosNullFrameTimeout, "QosNullFrameTimeout" );
+_LIT8( KNSmlWLanMTU, "MTU" );
+_LIT8( KNSmlWLanNode, "InternetConnectivityTest/UseDefaultSettings/LongRetryLimit/ShortRetryLimit/RTSThreshold/TXPowerLevel/PowerSaving/BackgroundScanInterval/ScanRate/RCPITrigger/MinActiveChannelTime/MaxActiveChannelTime/MaxTxMSDULifeTime/ScanExpirationTimer/UnloadDriverTimer/RoamTimer/RCPIDifference/ConnRegainTimer/MaxTriesToFindNw/DelayBetweenFindNw/AllowRadioMeasurements/MinPassiveChannelTime/MaxApFailureCount/LongBeaconFindCount/QosNullFrameInterval/QosNullFrameTimeout" );
+
+//DDF version number
+_LIT8( KNSmGlobalWlanAdapterDDFversion, "1.0");
+_LIT8( KNSmlMimeType, "text/plain" );
+_LIT8( KNSmlEmpty, "");
+
+
+const TInt KUriSegListLength = 128;
+// Maximum input size for nodes
+const TInt KInputMaxLength = 50;
+// Max lenght of the DDF type
+const TInt KTypeMaxLength = 40;
+// Repository id
+const TUid KCRUidWlanDeviceSettingsRegistryId = {0x101f8e44};
+
+
+// WLan engine central repository parameters
+const TUint32 KWlanScanRate =                            0x00000004;
+const TUint32 KWlanRcpiTrigger =                         0x00000005;
+const TUint32 KWlanMinActiveChannelTime =                0x00000006;
+const TUint32 KWlanMaxActiveChannelTime =                0x00000007;
+const TUint32 KWlanMaxTxMSDULifeTime =                   0x00000008;
+const TUint32 KWlanScanExpirationTimer =                 0x00000009;
+const TUint32 KWlanUnloadDriverTimer =                   0x0000000A;
+const TUint32 KWlanRoamTimer =                           0x0000000B;
+const TUint32 KWlanRcpiDifference =                      0x0000000C;
+const TUint32 KWlanConnRegainTimer =                     0x0000000D;
+const TUint32 KWlanMaxTriesToFindNw =                    0x0000000E;
+const TUint32 KWlanDelayBetweenFindNw =                  0x0000000F;
+const TUint32 KWlanMTU =								 0x00000010;
+const TUint32 KWlanMinPassiveChannelTime =               0x00000011;
+const TUint32 KWlanMaxPassiveChannelTime =               0x00000012;
+const TUint32 KWlanMaxApFailureCount =                   0x00000013;
+const TUint32 KWlanLongBeaconFindCount =                 0x00000014;
+const TUint32 KWlanQosNullFrameInterval =                0x00000015;
+const TUint32 KWlanQosNullFrameTimeout =                 0x00000016;
+
+// -----------------------------------------------------------------------------------------------
+// Structures
+// -----------------------------------------------------------------------------------------------
+
+// Structure for storing the settings to be stored into cenrep and commsdb
+struct TGlobalSettings
+{
+	TUint32 internetConnectivityTest;
+	TBool internetConnectivityTestPresent;
+	TBool useDefaultSettings;
+	TBool useDefaultSettingsPresent;
+	TUint32 longRetryLimit;
+	TBool longRetryLimitPresent;
+	TUint32 shortRetryLimit;
+	TBool shortRetryLimitPresent;
+	TUint32 RTSThreshold;
+	TBool RTSThresholdPresent;
+	TUint32 TXPowerLevel;
+	TBool TXPowerLevelPresent;
+	TBool powerSaving;
+	TBool powerSavingPresent;
+	TUint32 backgroundScanInterval;
+	TBool backgroundScanIntervalPresent;
+	TUint32 scanRate;
+	TBool scanRatePresent;
+	TUint32 RCPITrigger;
+	TBool RCPITriggerPresent;
+	TUint32 minActiveChannelTime;
+	TBool minActiveChannelTimePresent;
+	TUint32 maxActiveChannelTime;
+	TBool maxActiveChannelTimePresent;
+	TUint32 maxTxMSDULifeTime;
+	TBool maxTxMSDULifeTimePresent;
+	TUint32 scanExpirationTimer;
+	TBool scanExpirationTimerPresent;
+	TUint32 unloadDriverTimer;
+	TBool unloadDriverTimerPresent;
+	TUint32 roamTimer;
+	TBool roamTimerPresent;
+	TUint32 RCPIDifference;
+	TBool RCPIDifferencePresent;
+	TUint32 connRegainTimer;
+	TBool connRegainTimerPresent;
+	TUint32 maxTriesToFindNw;
+	TBool maxTriesToFindNwPresent;
+	TUint32 delayBetweenFindNw;
+	TBool delayBetweenFindNwPresent;
+	TBool allowRadioMeasurements;
+	TBool allowRadioMeasurementsPresent;
+	TUint32 minPassiveChannelTime;
+	TBool minPassiveChannelTimePresent;
+	TUint32 maxPassiveChannelTime;
+	TBool maxPassiveChannelTimePresent;
+	TUint32 maxApFailureCount;
+	TBool maxApFailureCountPresent;
+	TUint32 longBeaconFindCount;
+	TBool longBeaconFindCountPresent;
+	TUint32 qosNullFrameInterval;
+	TBool qosNullFrameIntervalPresent;
+	TUint32 qosNullFrameTimeout;
+	TBool qosNullFrameTimeoutPresent;
+	TUint32 MTU;
+	TBool MTUPresent;
+};
+
+// Structure for storing the result and status variables from every addition/fetch command
+struct TStatusResult
+{
+	TInt internetConnectivityTestStatus;
+	TInt internetConnectivityTestResult;
+	TInt useDefaultSettingsStatus;
+	TInt useDefaultSettingsResult;
+	TInt longRetryLimitStatus;
+	TInt longRetryLimitResult;
+	TInt shortRetryLimitStatus;
+	TInt shortRetryLimitResult;
+	TInt RTSThresholdStatus;
+	TInt RTSThresholdResult;
+	TInt TXPowerLevelStatus;
+	TInt TXPowerLevelResult;
+	TInt powerSavingStatus;
+	TInt powerSavingResult;
+	TInt backgroundScanIntervalStatus;
+	TInt backgroundScanIntervalResult;
+	TInt scanRateStatus;
+	TInt scanRateResult;
+	TInt RCPITriggerStatus;
+	TInt RCPITriggerResult;
+	TInt minActiveChannelTimeStatus;
+	TInt minActiveChannelTimeResult;
+	TInt maxActiveChannelTimeStatus;
+	TInt maxActiveChannelTimeResult;
+	TInt maxTxMSDULifeTimeStatus;
+	TInt maxTxMSDULifeTimeResult;
+	TInt scanExpirationTimerStatus;
+	TInt scanExpirationTimerResult;
+	TInt unloadDriverTimerStatus;
+	TInt unloadDriverTimerResult;
+	TInt roamTimerStatus;
+	TInt roamTimerResult;
+	TInt RCPIDifferenceStatus;
+	TInt RCPIDifferenceResult;
+	TInt connRegainTimerStatus;
+	TInt connRegainTimerResult;
+	TInt maxTriesToFindNwStatus;
+	TInt maxTriesToFindNwResult;
+	TInt delayBetweenFindNwStatus;
+	TInt delayBetweenFindNwResult;
+	TInt allowRadioMeasurementsStatus;
+	TInt allowRadioMeasurementsResult;
+	TInt minPassiveChannelTimeStatus;
+	TInt minPassiveChannelTimeResult;
+	TInt maxPassiveChannelTimeStatus;
+	TInt maxPassiveChannelTimeResult;
+	TInt maxApFailureCountStatus;
+	TInt maxApFailureCountResult;
+	TInt longBeaconFindCountStatus;
+	TInt longBeaconFindCountResult;
+	TInt qosNullFrameIntervalStatus;
+	TInt qosNullFrameIntervalResult;
+	TInt qosNullFrameTimeoutStatus;
+	TInt qosNullFrameTimeoutResult;
+	TInt MTUStatus;
+	TInt MTUResult;
+};
+
+
+// -----------------------------------------------------------------------------------------------
+// Enumerations
+// -----------------------------------------------------------------------------------------------
+        
+   
+// ------------------------------------------------------------------------------------------------
+// CGlobalWLanAdapter 
+// ------------------------------------------------------------------------------------------------
+class CGlobalWLANAdapter : public CSmlDmAdapter
+        {
+public:
+        static CGlobalWLANAdapter* NewL( MSmlDmCallback* aDmCallback );
+        static CGlobalWLANAdapter* NewLC( MSmlDmCallback* aDmCallback );
+        void ConstructL( );
+        virtual ~CGlobalWLANAdapter();
+
+// Adapter interface
+        void DDFVersionL( CBufBase& aDDFVersion );
+        void DDFStructureL( MSmlDmDDFObject& aDDF );
+        void AddLeafObjectL( const TDesC8& aURI,
+                             const TDesC8& aParentLUID, 
+                             const TDesC8& aObject, 
+                             const TDesC8& aType, 
+                             const TInt aStatusRef );  
+        void UpdateLeafObjectL( const TDesC8& aURI, 
+                                const TDesC8& aLUID, 
+                            const TDesC8& aObject, 
+                            const TDesC8& aType, 
+                            const TInt aStatusRef );
+       void UpdateLeafObjectL( const TDesC8& aURI, 
+                            const TDesC8& aLUID,
+                            RWriteStream*& aStream, 
+                            const TDesC8& aType,
+                            TInt aStatusRef );
+        void DeleteObjectL( const TDesC8& aURI, 
+                            const TDesC8& aLUID, 
+                            const TInt aStatusRef ); 
+        void FetchLeafObjectL( const TDesC8& aURI, 
+                               const TDesC8& aLUID, 
+                               const TDesC8& aType, 
+                               const TInt aResultsRef, 
+                               const TInt aStatusRef ); 
+        void FetchLeafObjectSizeL( const TDesC8& aURI, 
+                               const TDesC8& aLUID,
+                               const TDesC8& aType, 
+                               TInt aResultsRef,
+                               TInt aStatusRef );
+        void ChildURIListL( const TDesC8& aURI, 
+                            const TDesC8& aLUID, 
+                            const CArrayFix<TSmlDmMappingInfo>& aPreviousURISegmentList, 
+                            const TInt aResultsRef, 
+                            const TInt aStatusRef ); 
+        void AddNodeObjectL( const TDesC8& aURI, 
+                             const TDesC8& aParentLUID, 
+                             const TInt aStatusRef );
+        void ExecuteCommandL( const TDesC8& aURI, 
+                              const TDesC8& aLUID,
+                              const TDesC8& aArgument, 
+                              const TDesC8& aType,
+                              TInt aStatusRef );
+        void ExecuteCommandL( const TDesC8& aURI, 
+                              const TDesC8& aLUID,
+                              RWriteStream*& aStream, 
+                              const TDesC8& aType,
+                              TInt aStatusRef );
+        void CopyCommandL( const TDesC8& aTargetURI, 
+                           const TDesC8& aTargetLUID, 
+                           const TDesC8& aSourceURI,
+                           const TDesC8& aSourceLUID, 
+                           const TDesC8& aType,
+                           TInt aStatusRef );
+        void StartAtomicL();
+        void CommitAtomicL();
+        void RollbackAtomicL();
+        TBool StreamingSupport( TInt& aItemSize );
+        void StreamCommittedL();
+        void CompleteOutstandingCmdsL();
+
+
+private:
+        CGlobalWLANAdapter(TAny* aEcomArguments);
+        void FillNodeInfoL( MSmlDmDDFObject& aNode,
+                            TSmlDmAccessTypes aAccTypes,
+                            MSmlDmDDFObject::TOccurence aOccurrence, 
+                            MSmlDmDDFObject::TScope aScope, 
+                            MSmlDmDDFObject::TDFFormat aFormat,
+                            const TDesC8& aDescription );
+        void ExecuteBufferL( TBool aFinal = EFalse ); 
+        
+        /**
+     	* Stores the central repository parameters
+     	*
+     	* @return 
+     	*/
+        void StoreCenRepParamsL();
+        
+        /**
+     	* Stores the CommsDB parameters
+     	*
+     	* @return 
+     	*/
+  		void StoreCommsDBParamsL();
+  			
+  		/**
+     	* Reads the central repository parameters
+     	*
+     	* @return 
+     	*/
+        void ReadCenRepParamsL();
+        
+        /**
+     	* Returns the central repository parameters and updates statuses
+     	*
+     	* @return 
+     	*/
+        void UpdateStatusAndResultL( TInt aResult, TInt aStatus, TDesC8& aValue, TDesC8& aType, TInt aStoreErr );
+        
+        /**
+     	* Reads the CommsDB parameters
+     	*
+     	* @return 
+     	*/
+  		void ReadCommsDBParamsL();
+                          
+        /**
+     	* Gets the number of uri segments in the URI
+     	*
+     	* @since S60 ?S60_version
+     	* @param aUri The URI whose segments are counted
+     	* @return The amount of segments
+     	*/
+        TInt NumOfUriSegs( const TDesC8& aUri );
+        
+        /**
+     	* Gets the last uri segment
+     	*
+     	* @since S60 ?S60_version
+     	* @param aUri The URI whose segments are counted
+     	* @return The last segment
+     	*/        
+        TPtrC8 GetLastUriSeg(const TDesC8& aURI);
+        
+        TInt DesToInt( const TDesC8& aLuid );
+        void InitMemberVariables();
+
+        MSmlDmCallback* iCallBack;
+        
+        // Variable to store the received parameters
+        TGlobalSettings* iWriteSettings;
+        // Variable to store whick parameters are to be fetched
+        TGlobalSettings* iReadSettings;
+        // Status and result information related to fetches and additions
+        TStatusResult* iReadStatuses;
+        TStatusResult* iWriteStatuses;
+        
+        TBool iWlanSupported;
+
+        };
+
+#endif __GLOBALWLANADAPTER_H__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/globalwlansettings/rom/globalwlanadapter.iby	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,35 @@
+/*
+* 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:   Image description file for project GlobalWLANAdapter
+*
+*/
+
+
+
+REM SyncML Device Management internet adapter
+
+#include <bldvariant.hrh>
+
+#ifndef __GLOBALWLANADAPTER_IBY__
+#define __GLOBALWLANADAPTER_IBY__
+
+#ifdef __SYNCML_DM // nothing should be installed from this .iby file if __SYNCML_DM feature is not selected
+
+#ifdef __SYNCML_DM_WLAN 
+ECOM_PLUGIN(globalwlanadapter.dll,globalwlanadapter.rsc)
+#endif // __SYNCML_DM_WLAN
+
+#endif //__SYNCML_DM
+
+#endif //__GLOBALWLANADAPTER_IBY__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/globalwlansettings/src/globalwlanadapter.cpp	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,2998 @@
+/*
+* 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:   Global WLAN settings Adapter
+*
+*/
+
+
+
+#include "globalwlanadapter.h"
+#include "nsmldebug.h"
+#include <implementationproxy.h> // For TImplementationProxy definition
+#include <commdb.h>
+#include <WlanCdbCols.h>
+#include <utf.h>
+#include <cdbstore.h>
+#include <cdbcols.h>
+#include <f32file.h>
+#include <e32const.h>
+#include <s32strm.h>
+#include <e32base.h>
+#include <sysutil.h>
+#include <e32cmn.h>
+#include <featmgr.h>
+
+#include <centralrepository.h>
+#include <commsdattypesv1_1.h>
+
+
+#ifndef __WINS__
+// This lowers the unnecessary compiler warning (armv5) to remark.
+// "Warning:  #174-D: expression has no effect..." is caused by 
+// DBG_ARGS8 macro in no-debug builds.
+#pragma diag_remark 174
+#endif
+
+
+//------------------------------------------------------------------------------
+//
+//------------------------------------------------------------------------------
+const TImplementationProxy ImplementationTable[] = 
+    {
+    IMPLEMENTATION_PROXY_ENTRY(0x1315DBE, CGlobalWLANAdapter::NewL)
+    };
+
+//------------------------------------------------------------------------------
+// TImplementationProxy* ImplementationGroupProxy()
+//------------------------------------------------------------------------------
+EXPORT_C const TImplementationProxy* ImplementationGroupProxy( TInt& aTableCount )
+    {
+    _DBG_FILE("ImplementationGroupProxy() for CGlobalWLANAdapter: begin");
+
+    aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
+
+    _DBG_FILE("ImplementationGroupProxy() for CGlobalWLANAdapter: end");
+    return ImplementationTable;
+    }
+
+
+//-----------------------------------------------------------------------------
+// CGlobalWLANAdapter* CGlobalWLANAdapter::NewL( )
+//-----------------------------------------------------------------------------
+CGlobalWLANAdapter* CGlobalWLANAdapter::NewL( MSmlDmCallback* aDmCallback )
+    {
+    _DBG_FILE("CGlobalWLANAdapter::NewL(): begin");
+
+    CGlobalWLANAdapter* self = NewLC( aDmCallback );
+    CleanupStack::Pop( self );
+
+    _DBG_FILE("CGlobalWLANAdapter::NewL(): end");
+    return self;
+    }
+
+//-----------------------------------------------------------------------------
+// CGlobalWLANAdapter* CGlobalWLANAdapter::NewLC( )
+//-----------------------------------------------------------------------------
+CGlobalWLANAdapter* CGlobalWLANAdapter::NewLC( MSmlDmCallback* aDmCallback )
+    {
+    _DBG_FILE("CGlobalWLANAdapter::NewLC(): begin");
+    
+    CGlobalWLANAdapter* self = new(ELeave) CGlobalWLANAdapter(aDmCallback);
+    CleanupStack::PushL( self );
+
+    self->iCallBack = aDmCallback;
+    _DBG_FILE("CGlobalWLANAdapter::NewLC(): call constructL");
+    self->ConstructL( );
+
+    _DBG_FILE("CGlobalWLANAdapter::NewLC(): end");
+    return self;
+    }
+
+//-----------------------------------------------------------------------------
+// void CGlobalWLAdapter::ConstructL( )
+// Second phase constructor
+//-----------------------------------------------------------------------------
+void CGlobalWLANAdapter::ConstructL(  )
+	{
+    _DBG_FILE("CGlobalWLANAdapter::ConstructL(): begin");
+    
+    // checks if Wlan feature is supported
+    FeatureManager::InitializeLibL();
+    iWlanSupported = FeatureManager::FeatureSupported( KFeatureIdProtocolWlan );
+    FeatureManager::UnInitializeLib();
+    
+    iWriteSettings = new(ELeave) TGlobalSettings;
+    iReadSettings = new(ELeave) TGlobalSettings;
+    iReadStatuses = new(ELeave) TStatusResult;
+    iWriteStatuses = new(ELeave) TStatusResult;
+    
+    // set "present" variables to false, since symbian inits thems as true
+    InitMemberVariables();
+     
+    _DBG_FILE("CGlobalWLANAdapter::ConstructL(): end");
+    }
+
+//-----------------------------------------------------------------------------
+// CGlobalWLANAdapter::CGlobalWLANAdapter( )
+// Constructor
+//-----------------------------------------------------------------------------
+CGlobalWLANAdapter::CGlobalWLANAdapter( TAny* aEcomArguments )
+    : CSmlDmAdapter(aEcomArguments)
+    {
+    _DBG_FILE("CGlobalWLANAdapter::CGlobalWLANAdapter(): begin");
+    _DBG_FILE("CGlobalWLANAdapter::CGlobalWLANAdapter(): end");
+    }
+
+//-----------------------------------------------------------------------------
+// CGlobalWLANAdapter::~CGlobalWLANAdapter( )
+// Destructor
+//-----------------------------------------------------------------------------
+CGlobalWLANAdapter::~CGlobalWLANAdapter( )
+    {
+    _DBG_FILE("CGlobalWLANAdapter::~CGlobalWLANAdapter(): begin");
+    
+    delete iWriteSettings;
+    delete iReadSettings;
+    delete iReadStatuses;
+    delete iWriteStatuses;
+    
+    _DBG_FILE("CGlobalWLANAdapter::~CGlobalWLANAdapter(): end");
+    }
+
+
+//-----------------------------------------------------------------------------
+// CGlobalWLANAdapter* CGlobalWLANAdapter::DDFVersionL( CBufBase& aDDFVersion )
+//-----------------------------------------------------------------------------
+void CGlobalWLANAdapter::DDFVersionL( CBufBase& aDDFVersion )
+    {
+    _DBG_FILE("CGlobalWLANAdapter::DDFVersionL(): begin");
+    
+    aDDFVersion.InsertL( 0, KNSmGlobalWlanAdapterDDFversion );
+    
+    _DBG_FILE("CGlobalWLANAdapter::DDFVersionL(): end");
+    }
+
+//-----------------------------------------------------------------------------
+// CGlobalWLANAdapter* CGlobalWLANAdapter::DDFStructureL( MSmlDmDDFObject& aDDF )
+//-----------------------------------------------------------------------------
+void CGlobalWLANAdapter::DDFStructureL( MSmlDmDDFObject& aDDF )
+    {
+    _DBG_FILE("CGlobalWLANAdapter::DDFStructureL(): begin");
+    if( !iWlanSupported )
+        {
+        _DBG_FILE("CGlobalWLANAdapter::DDFStructureL(): WLAN not supported.");
+        return;
+        }  
+//
+// Set Get, add and replace as acceptable operations
+//
+
+    TSmlDmAccessTypes accessTypesGetAddReplace;     
+    accessTypesGetAddReplace.SetAdd();
+    accessTypesGetAddReplace.SetGet();
+    accessTypesGetAddReplace.SetReplace();
+    
+    //WLAN
+    MSmlDmDDFObject& rootWLan = aDDF.AddChildObjectL( KNSmlWLan );
+    FillNodeInfoL( rootWLan,
+               	accessTypesGetAddReplace,
+               	MSmlDmDDFObject::EZeroOrOne,
+               	MSmlDmDDFObject::EDynamic,
+               	MSmlDmDDFObject::ENode,
+               	KNSmlEmpty );
+
+    //WLAN/InternetConnectivityTest
+    MSmlDmDDFObject& internetConnectivityTest = rootWLan.AddChildObjectL( KNSmlWLanInternetConnectivityTest );
+    FillNodeInfoL( internetConnectivityTest,
+    			accessTypesGetAddReplace,
+    			MSmlDmDDFObject::EZeroOrOne,
+    			MSmlDmDDFObject::EDynamic,
+    			MSmlDmDDFObject::EInt,
+    			KNSmlEmpty );
+    
+    //WLAN/UseDefaultSettings
+    MSmlDmDDFObject& useDefaultSettings = rootWLan.AddChildObjectL( KNSmlWLanUseDefaultSettings );
+    FillNodeInfoL( useDefaultSettings,
+    			accessTypesGetAddReplace,
+    			MSmlDmDDFObject::EZeroOrOne,
+    			MSmlDmDDFObject::EDynamic,
+    			MSmlDmDDFObject::EBool,
+    			KNSmlEmpty );
+
+     //WLAN/LongRetryLimit
+    MSmlDmDDFObject& longRetryLimit = rootWLan.AddChildObjectL( KNSmlWLanLongRetryLimit );
+    FillNodeInfoL( longRetryLimit,
+    			accessTypesGetAddReplace,
+    			MSmlDmDDFObject::EZeroOrOne,
+    			MSmlDmDDFObject::EDynamic,
+    			MSmlDmDDFObject::EInt,
+    			KNSmlEmpty );
+    			
+    //WLAN/ShortRetryLimit
+    MSmlDmDDFObject& shortRetryLimit = rootWLan.AddChildObjectL( KNSmlWLanShortRetryLimit );
+    FillNodeInfoL( shortRetryLimit,
+    			accessTypesGetAddReplace,
+    			MSmlDmDDFObject::EZeroOrOne,
+    			MSmlDmDDFObject::EDynamic,
+    			MSmlDmDDFObject::EInt,
+    			KNSmlEmpty );
+    			
+    			
+    //WLAN/RTSThreshold
+    MSmlDmDDFObject& RTSThreshold = rootWLan.AddChildObjectL( KNSmlWLanRTSThreshold );
+    FillNodeInfoL( RTSThreshold,
+    			accessTypesGetAddReplace,
+    			MSmlDmDDFObject::EZeroOrOne,
+    			MSmlDmDDFObject::EDynamic,
+    			MSmlDmDDFObject::EInt,
+    			KNSmlEmpty );
+    			
+    //WLAN/TXPowerLevel
+    MSmlDmDDFObject& TXPowerLevel = rootWLan.AddChildObjectL( KNSmlWLanTXPowerLevel );
+    FillNodeInfoL( TXPowerLevel,
+    			accessTypesGetAddReplace,
+    			MSmlDmDDFObject::EZeroOrOne,
+    			MSmlDmDDFObject::EDynamic,
+    			MSmlDmDDFObject::EInt,
+    			KNSmlEmpty );
+    			
+    //WLAN/PowerSaving
+    MSmlDmDDFObject& powerSaving = rootWLan.AddChildObjectL( KNSmlWLanPowerSaving );
+    FillNodeInfoL( powerSaving,
+    			accessTypesGetAddReplace,
+    			MSmlDmDDFObject::EZeroOrOne,
+    			MSmlDmDDFObject::EDynamic,
+    			MSmlDmDDFObject::EBool,
+    			KNSmlEmpty );
+    			
+    //WLAN/BackgroundScanInterval
+    MSmlDmDDFObject& backgroundScanInterval = rootWLan.AddChildObjectL( KNSmlWLanBackgroundScanInterval );
+    FillNodeInfoL( backgroundScanInterval,
+    			accessTypesGetAddReplace,
+    			MSmlDmDDFObject::EZeroOrOne,
+    			MSmlDmDDFObject::EDynamic,
+    			MSmlDmDDFObject::EInt,
+    			KNSmlEmpty );
+    			
+    //WLAN/ScanRate
+    MSmlDmDDFObject& scanRate = rootWLan.AddChildObjectL( KNSmlWLanScanRate );
+    FillNodeInfoL( scanRate,
+    			accessTypesGetAddReplace,
+    			MSmlDmDDFObject::EZeroOrOne,
+    			MSmlDmDDFObject::EDynamic,
+    			MSmlDmDDFObject::EInt,
+    			KNSmlEmpty );
+
+    //WLAN/RCPITrigger
+    MSmlDmDDFObject& RCPITrigger = rootWLan.AddChildObjectL( KNSmlWLanRCPITrigger );
+    FillNodeInfoL( RCPITrigger,
+    			accessTypesGetAddReplace,
+    			MSmlDmDDFObject::EZeroOrOne,
+    			MSmlDmDDFObject::EDynamic,
+    			MSmlDmDDFObject::EInt,
+    			KNSmlEmpty );
+
+    //WLAN/MinActiveChannelTime
+    MSmlDmDDFObject& minActiveChannelTime = rootWLan.AddChildObjectL( KNSmlWLanMinActiveChannelTime );
+    FillNodeInfoL( minActiveChannelTime,
+    			accessTypesGetAddReplace,
+    			MSmlDmDDFObject::EZeroOrOne,
+    			MSmlDmDDFObject::EDynamic,
+    			MSmlDmDDFObject::EInt,
+    			KNSmlEmpty );
+    			
+     //WLAN/MaxActiveChannelTime
+    MSmlDmDDFObject& maxActiveChannelTime = rootWLan.AddChildObjectL( KNSmlWLanMaxActiveChannelTime );
+    FillNodeInfoL( maxActiveChannelTime,
+    			accessTypesGetAddReplace,
+    			MSmlDmDDFObject::EZeroOrOne,
+    			MSmlDmDDFObject::EDynamic,
+    			MSmlDmDDFObject::EInt,
+    			KNSmlEmpty );
+    			
+     //WLAN/MaxTxMSDULifeTime
+    MSmlDmDDFObject& maxTxMSDULifeTime = rootWLan.AddChildObjectL( KNSmlWLanMaxTxMSDULifeTime );
+    FillNodeInfoL( maxTxMSDULifeTime,
+    			accessTypesGetAddReplace,
+    			MSmlDmDDFObject::EZeroOrOne,
+    			MSmlDmDDFObject::EDynamic,
+    			MSmlDmDDFObject::EInt,
+    			KNSmlEmpty );
+    			
+    //WLAN/ScanExpirationTimer
+    MSmlDmDDFObject& scanExpirationTimer = rootWLan.AddChildObjectL( KNSmlWLanScanExpirationTimer );
+    FillNodeInfoL( scanExpirationTimer,
+    			accessTypesGetAddReplace,
+    			MSmlDmDDFObject::EZeroOrOne,
+    			MSmlDmDDFObject::EDynamic,
+    			MSmlDmDDFObject::EInt,
+    			KNSmlEmpty );
+
+    //WLAN/UnloadDriverTimer
+    MSmlDmDDFObject& unloadDriverTimer = rootWLan.AddChildObjectL( KNSmlWLanUnloadDriverTimer );
+    FillNodeInfoL( unloadDriverTimer,
+    			accessTypesGetAddReplace,
+    			MSmlDmDDFObject::EZeroOrOne,
+    			MSmlDmDDFObject::EDynamic,
+    			MSmlDmDDFObject::EInt,
+    			KNSmlEmpty );
+    			
+    //WLAN/RoamTimer
+    MSmlDmDDFObject& roamTimer = rootWLan.AddChildObjectL( KNSmlWLanRoamTimer );
+    FillNodeInfoL( roamTimer,
+    			accessTypesGetAddReplace,
+    			MSmlDmDDFObject::EZeroOrOne,
+    			MSmlDmDDFObject::EDynamic,
+    			MSmlDmDDFObject::EInt,
+    			KNSmlEmpty );
+    			
+    //WLAN/KNSmlWLanRCPIDifference
+    MSmlDmDDFObject& RCPIDifference = rootWLan.AddChildObjectL( KNSmlWLanRCPIDifference );
+    FillNodeInfoL( RCPIDifference,
+    			accessTypesGetAddReplace,
+    			MSmlDmDDFObject::EZeroOrOne,
+    			MSmlDmDDFObject::EDynamic,
+    			MSmlDmDDFObject::EInt,
+    			KNSmlEmpty );
+
+    //WLAN/ConnRegainTimer
+    MSmlDmDDFObject& connRegainTimer = rootWLan.AddChildObjectL( KNSmlWLanConnRegainTimer );
+    FillNodeInfoL( connRegainTimer,
+    			accessTypesGetAddReplace,
+    			MSmlDmDDFObject::EZeroOrOne,
+    			MSmlDmDDFObject::EDynamic,
+    			MSmlDmDDFObject::EInt,
+    			KNSmlEmpty );
+
+    //WLAN/MaxTriesToFindNw
+    MSmlDmDDFObject& maxTriesToFindNw = rootWLan.AddChildObjectL( KNSmlWLanMaxTriesToFindNw );
+    FillNodeInfoL( maxTriesToFindNw,
+    			accessTypesGetAddReplace,
+    			MSmlDmDDFObject::EZeroOrOne,
+    			MSmlDmDDFObject::EDynamic,
+    			MSmlDmDDFObject::EInt,
+    			KNSmlEmpty );
+
+    //WLAN/DelayBetweenFindNw
+    MSmlDmDDFObject& delayBetweenFindNw = rootWLan.AddChildObjectL( KNSmlWLanDelayBetweenFindNw );
+    FillNodeInfoL( delayBetweenFindNw,
+    			accessTypesGetAddReplace,
+    			MSmlDmDDFObject::EZeroOrOne,
+    			MSmlDmDDFObject::EDynamic,
+    			MSmlDmDDFObject::EInt,
+    			KNSmlEmpty );
+
+    //WLAN/AllowRadioMeasurements
+    MSmlDmDDFObject& allowRadioMeasurements = rootWLan.AddChildObjectL( KNSmlWLanAllowRadioMeasurements );
+    FillNodeInfoL( allowRadioMeasurements,
+    			accessTypesGetAddReplace,
+    			MSmlDmDDFObject::EZeroOrOne,
+    			MSmlDmDDFObject::EDynamic,
+    			MSmlDmDDFObject::EBool,
+    			KNSmlEmpty );
+
+    //WLAN/MinPassiveChannelTime
+    MSmlDmDDFObject& minPassiveChannelTime = rootWLan.AddChildObjectL( KNSmlWLanMinPassiveChannelTime );
+    FillNodeInfoL( minPassiveChannelTime,
+    			accessTypesGetAddReplace,
+    			MSmlDmDDFObject::EZeroOrOne,
+    			MSmlDmDDFObject::EDynamic,
+    			MSmlDmDDFObject::EInt,
+    			KNSmlEmpty );
+    			
+    //WLAN/MaxPassiveChannelTime
+    MSmlDmDDFObject& maxPassiveChannelTime = rootWLan.AddChildObjectL( KNSmlWLanMaxPassiveChannelTime );
+    FillNodeInfoL( maxPassiveChannelTime,
+    			accessTypesGetAddReplace,
+    			MSmlDmDDFObject::EZeroOrOne,
+    			MSmlDmDDFObject::EDynamic,
+    			MSmlDmDDFObject::EInt,
+    			KNSmlEmpty );
+    			
+    //WLAN/MaxApFailureCount
+    MSmlDmDDFObject& maxApFailureCount = rootWLan.AddChildObjectL( KNSmlWLanMaxApFailureCount );
+    FillNodeInfoL( maxApFailureCount,
+    			accessTypesGetAddReplace,
+    			MSmlDmDDFObject::EZeroOrOne,
+    			MSmlDmDDFObject::EDynamic,
+    			MSmlDmDDFObject::EInt,
+    			KNSmlEmpty );
+
+    //WLAN/LongBeaconFindCount
+    MSmlDmDDFObject& longBeaconFindCount = rootWLan.AddChildObjectL( KNSmlWLanLongBeaconFindCount );
+    FillNodeInfoL( longBeaconFindCount,
+    			accessTypesGetAddReplace,
+    			MSmlDmDDFObject::EZeroOrOne,
+    			MSmlDmDDFObject::EDynamic,
+    			MSmlDmDDFObject::EInt,
+    			KNSmlEmpty );
+    			
+    //WLAN/QosNullFrameInterval
+    MSmlDmDDFObject& qosNullFrameInterval = rootWLan.AddChildObjectL( KNSmlWLanQosNullFrameInterval );
+    FillNodeInfoL( qosNullFrameInterval,
+    			accessTypesGetAddReplace,
+    			MSmlDmDDFObject::EZeroOrOne,
+    			MSmlDmDDFObject::EDynamic,
+    			MSmlDmDDFObject::EInt,
+    			KNSmlEmpty );
+
+    //WLAN/QosNullFrameTimeout
+    MSmlDmDDFObject& qosNullFrameTimeout = rootWLan.AddChildObjectL( KNSmlWLanQosNullFrameTimeout );
+    FillNodeInfoL( qosNullFrameTimeout,
+    			accessTypesGetAddReplace,
+    			MSmlDmDDFObject::EZeroOrOne,
+    			MSmlDmDDFObject::EDynamic,
+    			MSmlDmDDFObject::EInt,
+    			KNSmlEmpty );
+
+    //WLAN/MTU
+    MSmlDmDDFObject& MTU = rootWLan.AddChildObjectL( KNSmlWLanMTU );
+    FillNodeInfoL( MTU,
+    			accessTypesGetAddReplace,
+    			MSmlDmDDFObject::EZeroOrOne,
+    			MSmlDmDDFObject::EDynamic,
+    			MSmlDmDDFObject::EInt,
+    			KNSmlEmpty );
+
+
+    _DBG_FILE("CGlobalWLANAdapter::DDFStructureL(): end");
+    }
+    
+      
+
+//-----------------------------------------------------------------------------
+// CGlobalWLANAdapter* CGlobalWLANAdapter::AddLeafObjectL( const TDesC& aURI,const 
+// TDesC& aParentLUID, const TDesC8& aObject, const TDesC& aType, 
+// const TInt aStatusRef )
+//-----------------------------------------------------------------------------
+void CGlobalWLANAdapter::AddLeafObjectL( const TDesC8& aURI,
+                                       const TDesC8& aParentLUID, 
+                                       const TDesC8& aObject, 
+                                       const TDesC8& /*aType*/, 
+                                       const TInt aStatusRef )
+    {
+    DBG_ARGS8(_S8("CGlobalWLANAdapter::AddLeafObjectL - <%S> <%S>"), &aURI, &aParentLUID );
+
+    // Get the last uri segment and the number of uri items in the input
+    TInt uriSegs = NumOfUriSegs( aURI );
+    TInt err(KErrNone);
+    TPtrC8 lastUriSeg = GetLastUriSeg( aURI );
+    
+    //**************************************************************************
+    // Check which leaf is in question
+    //**************************************************************************
+    if( aURI.Match( _L8("WLAN/*" ) ) != KErrNotFound && uriSegs==2 )
+    	{  
+      	// *****************************************************************
+      	if( lastUriSeg.Match( KNSmlWLanInternetConnectivityTest ) != KErrNotFound )
+      		{
+      		// check whether input is of legal size
+      		if ( aObject.Size() <= KInputMaxLength )
+      			{
+      	    	//store the parameter
+      	    	DBG_ARGS8(_S8("CGlobalWLANAdapter::AddLeafObjectL, add leaf - <%S>"), &aURI );
+      	    	
+      	    	err = DesToInt( aObject );
+      	    	if ( err >= 0 )
+      	    		{
+      	    		iWriteSettings->internetConnectivityTest = err;
+      	    		iWriteSettings->internetConnectivityTestPresent = ETrue;
+      	    		iWriteStatuses->internetConnectivityTestStatus = aStatusRef;
+      	    		err = KErrNone;
+      	    		}
+      			}
+      		else
+      			{
+      			err = KErrTooBig;
+      			}
+      		}
+      	
+      	// *****************************************************************
+      	else if( lastUriSeg.Match( KNSmlWLanUseDefaultSettings ) != KErrNotFound )
+      		{
+      		// check whether input is of legal size
+      		if ( aObject.Size() <= KInputMaxLength )
+      			{
+      		    //store the parameter 
+      		    if( aObject.MatchF( _L8("True")) != KErrNotFound ||
+      		    	aObject.MatchF( _L8("true")) != KErrNotFound )
+                	{
+                	DBG_ARGS8(_S8("CGlobalWLANAdapter::AddLeafObjectL, add leaf - <%S>"), &aURI );
+                	iWriteSettings->useDefaultSettings = ETrue;
+                	iWriteSettings->useDefaultSettingsPresent = ETrue;
+                	iWriteStatuses->useDefaultSettingsStatus = aStatusRef;
+                	}
+            	else if ( aObject.MatchF( _L8("False")) != KErrNotFound ||
+            			  aObject.MatchF( _L8("false")) != KErrNotFound )
+                	{
+                	DBG_ARGS8(_S8("CGlobalWLANAdapter::AddLeafObjectL, add leaf - <%S>"), &aURI );
+                	iWriteSettings->useDefaultSettings = EFalse;
+                	iWriteSettings->useDefaultSettingsPresent = ETrue;
+                	iWriteStatuses->useDefaultSettingsStatus = aStatusRef;
+                	}
+              	else 
+              		{
+              		err = KErrArgument;
+              		}
+            	}
+      		else
+      			{
+      			err = KErrTooBig;
+      			}
+      		}	
+      	// *****************************************************************
+      	else if( lastUriSeg.Match( KNSmlWLanLongRetryLimit ) != KErrNotFound )
+      		{
+      		// check whether input is of legal size
+      		if ( aObject.Size() <= KInputMaxLength )
+      			{
+      	    	//store the parameter
+      	    	DBG_ARGS8(_S8("CGlobalWLANAdapter::AddLeafObjectL, add leaf - <%S>"), &aURI );
+      	    	err = DesToInt( aObject );
+      	    	if ( err >= 0 )
+      	    		{
+      	    		iWriteSettings->longRetryLimit = err;
+      	    		iWriteSettings->longRetryLimitPresent = ETrue;
+      	    		iWriteStatuses->longRetryLimitStatus = aStatusRef;
+      	    		err = KErrNone;
+      	    		}
+      			}
+      		else
+      			{
+      			err = KErrTooBig;
+      			}
+      		}
+      	// *****************************************************************
+      	else if( lastUriSeg.Match( KNSmlWLanShortRetryLimit ) != KErrNotFound )
+      		{
+      		// check whether input is of legal size
+      		if ( aObject.Size() <= KInputMaxLength )
+      			{
+				//store the parameter
+				DBG_ARGS8(_S8("CGlobalWLANAdapter::AddLeafObjectL, add leaf - <%S>"), &aURI );
+      	    	err = DesToInt( aObject );
+      	    	if ( err >= 0 )
+      	    		{
+      	    		iWriteSettings->shortRetryLimit = err;
+      	    		iWriteSettings->shortRetryLimitPresent = ETrue;
+      	    		iWriteStatuses->shortRetryLimitStatus = aStatusRef;
+      	    		err = KErrNone;
+      	    		}
+      			}
+      		else
+      			{
+      			err = KErrTooBig;
+      			}
+      		}	
+      	// *****************************************************************
+      	else if( lastUriSeg.Match( KNSmlWLanRTSThreshold ) != KErrNotFound )
+      		{
+      		// check whether input is of legal size
+      		if ( aObject.Size() <= KInputMaxLength )
+      			{
+      			DBG_ARGS8(_S8("CGlobalWLANAdapter::AddLeafObjectL, add leaf - <%S>"), &aURI );
+      	    	err = DesToInt( aObject );
+      	    	if ( err >= 0 )
+      	    		{
+      	    		iWriteSettings->RTSThreshold = err;
+      	    		iWriteSettings->RTSThresholdPresent = ETrue;
+      	    		iWriteStatuses->RTSThresholdStatus = aStatusRef;
+      	    		err = KErrNone;
+      	    		}
+      			}
+      		else
+      			{
+      			err = KErrTooBig;
+      			}
+      		}
+      	// *****************************************************************
+      	else if( lastUriSeg.Match( KNSmlWLanTXPowerLevel ) != KErrNotFound )
+      		{
+      		// check whether input is of legal size
+      		if ( aObject.Size() <= KInputMaxLength )
+      			{
+      			DBG_ARGS8(_S8("CGlobalWLANAdapter::AddLeafObjectL, add leaf - <%S>"), &aURI );
+      		  	//store the parameter
+      	    	err = DesToInt( aObject );
+      	    	if ( err >= 0)
+      	    		{
+      	    		iWriteSettings->TXPowerLevel = err;
+      	    		iWriteSettings->TXPowerLevelPresent = ETrue;
+      	    		iWriteStatuses->TXPowerLevelStatus = aStatusRef;
+      	    		err = KErrNone;
+      	    		}
+      			}
+      		else
+      			{
+      			err = KErrTooBig;
+      			}
+      		}
+       	// *****************************************************************
+      	else if( lastUriSeg.Match( KNSmlWLanPowerSaving ) != KErrNotFound )
+      		{
+      		// check whether input is of legal size
+      		if ( aObject.Size() <= KInputMaxLength )
+      			{
+      		  	//store the parameter 
+      		  	if( aObject.MatchF( _L8("True")) != KErrNotFound ||
+      		  		aObject.MatchF( _L8("true")) != KErrNotFound )
+              		{
+              		DBG_ARGS8(_S8("CGlobalWLANAdapter::AddLeafObjectL, add leaf - <%S>"), &aURI );
+              		iWriteSettings->powerSaving = ETrue;
+              		iWriteSettings->powerSavingPresent = ETrue;
+              		iWriteStatuses->powerSavingStatus = aStatusRef;
+              		}
+           		else if ( aObject.MatchF( _L8("False")) != KErrNotFound ||
+           				  aObject.MatchF( _L8("false")) != KErrNotFound )
+              		{
+              		DBG_ARGS8(_S8("CGlobalWLANAdapter::AddLeafObjectL, add leaf - <%S>"), &aURI );
+              		iWriteSettings->powerSaving = EFalse;
+              		iWriteSettings->powerSavingPresent = ETrue;
+              		iWriteStatuses->powerSavingStatus = aStatusRef;
+              		}
+            	else
+            		{
+            		err = KErrArgument;
+            		}
+      			}
+      		else
+      			{
+      			err = KErrTooBig;
+      			}
+      		}	
+      	// *****************************************************************
+      	else if( lastUriSeg.Match( KNSmlWLanBackgroundScanInterval ) != KErrNotFound )
+      		{
+      		// check whether input is of legal size
+      		if ( aObject.Size() <= KInputMaxLength )
+      			{
+				//store the parameter
+				DBG_ARGS8(_S8("CGlobalWLANAdapter::AddLeafObjectL, add leaf - <%S>"), &aURI );
+      	    	err = DesToInt( aObject );
+      	    	if ( err >= 0 )
+      	    		{
+      	    		iWriteSettings->backgroundScanInterval = err;
+      	    		iWriteSettings->backgroundScanIntervalPresent = ETrue;
+      	    		iWriteStatuses->backgroundScanIntervalStatus = aStatusRef;
+      	    		err = KErrNone;
+      	    		}
+      			}
+      		else
+      			{
+      			err = KErrTooBig;
+      			}
+      		}
+      	// *****************************************************************
+      	else if( lastUriSeg.Match( KNSmlWLanScanRate ) != KErrNotFound )
+      		{
+      		// check whether input is of legal size
+      		if ( aObject.Size() <= KInputMaxLength )
+      			{
+      			//store the parameter
+      			DBG_ARGS8(_S8("CGlobalWLANAdapter::AddLeafObjectL, add leaf - <%S>"), &aURI );
+      	    	err = DesToInt( aObject );
+      	    	if ( err >= 0 )
+      	    		{
+      	    		iWriteSettings->scanRate = err;
+      	    		iWriteSettings->scanRatePresent = ETrue;
+      	    		iWriteStatuses->scanRateStatus = aStatusRef;
+      	    		err = KErrNone;
+      	    		}
+      			}
+      		else
+      			{
+      			err = KErrTooBig;
+      			}
+      		}	
+      	// *****************************************************************
+      	else if( lastUriSeg.Match( KNSmlWLanRCPITrigger ) != KErrNotFound )
+      		{
+      		// check whether input is of legal size
+      		if ( aObject.Size() <= KInputMaxLength )
+      			{
+      		  	//store the parameter
+      		  	DBG_ARGS8(_S8("CGlobalWLANAdapter::AddLeafObjectL, add leaf - <%S>"), &aURI );
+      	    	err = DesToInt( aObject );
+      	    	if ( err >= 0)
+      	    		{
+      	    		iWriteSettings->RCPITrigger = err;
+      	    		iWriteSettings->RCPITriggerPresent = ETrue;
+      	    		iWriteStatuses->RCPITriggerStatus = aStatusRef;
+      	    		err = KErrNone;
+      	    		}
+      			}
+      		else
+      			{
+      			err = KErrTooBig;
+      			}
+      		}	
+      	// *****************************************************************
+      	else if( lastUriSeg.Match( KNSmlWLanMinActiveChannelTime ) != KErrNotFound )
+      		{
+      		// check whether input is of legal size
+      		if ( aObject.Size() <= KInputMaxLength )
+      			{
+      		  	//store the parameter
+      		  	DBG_ARGS8(_S8("CGlobalWLANAdapter::AddLeafObjectL, add leaf - <%S>"), &aURI );
+      	    	err = DesToInt( aObject );
+      	    	if ( err >= 0 )
+      	    		{
+      	    		iWriteSettings->minActiveChannelTime = err;
+      	    		iWriteSettings->minActiveChannelTimePresent = ETrue;
+      	    		iWriteStatuses->minActiveChannelTimeStatus = aStatusRef;
+      	    		err = KErrNone;
+      	    		}
+      			}
+      		else
+      			{
+      			err = KErrTooBig;
+      			}
+      		}
+      	// *****************************************************************
+      	else if( lastUriSeg.Match( KNSmlWLanMaxActiveChannelTime ) != KErrNotFound )
+      		{
+      		// check whether input is of legal size
+      		if ( aObject.Size() <= KInputMaxLength )
+      			{
+      		  	//store the parameter
+      		  	DBG_ARGS8(_S8("CGlobalWLANAdapter::AddLeafObjectL, add leaf - <%S>"), &aURI );
+      	    	err = DesToInt( aObject );
+      	    	if ( err >= 0)
+      	    		{
+      	    		iWriteSettings->maxActiveChannelTime = err;
+      	    		iWriteSettings->maxActiveChannelTimePresent = ETrue;
+      	    		iWriteStatuses->maxActiveChannelTimeStatus = aStatusRef;
+      	    		err = KErrNone;
+      	    		}
+      			}
+      		else
+      			{
+      			err = KErrTooBig;
+      			}
+      		}
+      	// *****************************************************************
+      	else if( lastUriSeg.Match( KNSmlWLanMaxTxMSDULifeTime ) != KErrNotFound )
+      		{
+      		// check whether input is of legal size
+      		if ( aObject.Size() <= KInputMaxLength )
+      			{
+      		  	//store the parameter
+      		  	DBG_ARGS8(_S8("CGlobalWLANAdapter::AddLeafObjectL, add leaf - <%S>"), &aURI );
+      	    	err = DesToInt( aObject );
+      	    	if ( err >= 0 )
+      	    		{
+      	    		iWriteSettings->maxTxMSDULifeTime = err;
+      	    		iWriteSettings->maxTxMSDULifeTimePresent = ETrue;
+      	    		iWriteStatuses->maxTxMSDULifeTimeStatus = aStatusRef;
+      	    		err = KErrNone;
+      	    		}
+      			}
+      		else
+      			{
+      			err = KErrTooBig;
+      			}
+      		}
+      	// *****************************************************************
+      	else if( lastUriSeg.Match( KNSmlWLanScanExpirationTimer ) != KErrNotFound )
+      		{
+      		// check whether input is of legal size
+      		if ( aObject.Size() <= KInputMaxLength )
+      			{
+      		  	//store the parameter
+      			DBG_ARGS8(_S8("CGlobalWLANAdapter::AddLeafObjectL, add leaf - <%S>"), &aURI );
+      	    	err = DesToInt( aObject );
+      	    	if ( err >= 0 )
+      	    		{
+      	    		iWriteSettings->scanExpirationTimer = err;
+      	    		iWriteSettings->scanExpirationTimerPresent = ETrue;
+      	    		iWriteStatuses->scanExpirationTimerStatus = aStatusRef;
+      	    		err = KErrNone;
+      	    		}
+      			}
+      		else
+      			{
+      			err = KErrTooBig;
+      			}
+      		}
+      	// *****************************************************************
+      	else if( lastUriSeg.Match( KNSmlWLanUnloadDriverTimer ) != KErrNotFound )
+      		{
+      		// check whether input is of legal size
+      		if ( aObject.Size() <= KInputMaxLength )
+      			{
+      		  	//store the parameter
+      		  	DBG_ARGS8(_S8("CGlobalWLANAdapter::AddLeafObjectL, add leaf - <%S>"), &aURI );
+      	    	err = DesToInt( aObject );
+      	    	if ( err >= 0 )
+      	    		{
+      	    		iWriteSettings->unloadDriverTimer = err;
+      	    		iWriteSettings->unloadDriverTimerPresent = ETrue;
+      	    		iWriteStatuses->unloadDriverTimerStatus = aStatusRef;
+      	    		err = KErrNone;
+      	    		}
+      			}
+      		else
+      			{
+      			err = KErrTooBig;
+      			}
+      		}
+      	// *****************************************************************
+      	else if( lastUriSeg.Match( KNSmlWLanRoamTimer ) != KErrNotFound )
+      		{
+      		// check whether input is of legal size
+      		if ( aObject.Size() <= KInputMaxLength )
+      			{
+      		  	//store the parameter
+      		  	DBG_ARGS8(_S8("CGlobalWLANAdapter::AddLeafObjectL, add leaf - <%S>"), &aURI );
+      	    	err = DesToInt( aObject );
+      	    	if ( err >= 0 )
+      	    		{
+      	    		iWriteSettings->roamTimer = err;
+      	    		iWriteSettings->roamTimerPresent = ETrue;
+      	    		iWriteStatuses->roamTimerStatus = aStatusRef;
+      	    		err = KErrNone;
+      	    		}
+      			}
+      		else
+      			{
+      			err = KErrTooBig;
+      			}
+      		}
+       	// *****************************************************************
+      	else if( lastUriSeg.Match( KNSmlWLanRCPIDifference ) != KErrNotFound )
+      		{
+      		// check whether input is of legal size
+      		if ( aObject.Size() <= KInputMaxLength )
+      			{
+      		  	//store the parameter
+      		  	DBG_ARGS8(_S8("CGlobalWLANAdapter::AddLeafObjectL, add leaf - <%S>"), &aURI );
+      	    	err = DesToInt( aObject );
+      	    	if ( err >= 0 )
+      	    		{
+      	    		iWriteSettings->RCPIDifference = err;
+      	    		iWriteSettings->RCPIDifferencePresent = ETrue;
+      	    		iWriteStatuses->RCPIDifferenceStatus = aStatusRef;
+      	    		err = KErrNone;
+      	    		}
+      			}
+      		else
+      			{
+      			err = KErrTooBig;
+      			}
+      		}
+      	// *****************************************************************
+      	else if( lastUriSeg.Match( KNSmlWLanConnRegainTimer ) != KErrNotFound )
+      		{
+      		// check whether input is of legal size
+      		if ( aObject.Size() <= KInputMaxLength )
+      			{
+      		  	//store the parameter
+      		  	DBG_ARGS8(_S8("CGlobalWLANAdapter::AddLeafObjectL, add leaf - <%S>"), &aURI );
+      	    	err = DesToInt( aObject );
+      	    	if ( err >= 0 )
+      	    		{
+      	    		iWriteSettings->connRegainTimer = err;
+      	    		iWriteSettings->connRegainTimerPresent = ETrue;
+      	    		iWriteStatuses->connRegainTimerStatus = aStatusRef;
+      	    		err = KErrNone;
+      	    		}
+      			}
+      		else
+      			{
+      			err = KErrTooBig;
+      			}
+      		}
+      	// *****************************************************************
+      	else if( lastUriSeg.Match( KNSmlWLanMaxTriesToFindNw ) != KErrNotFound )
+      		{
+      		// check whether input is of legal size
+      		if ( aObject.Size() <= KInputMaxLength )
+      			{
+      		  	//store the parameter
+      		  	DBG_ARGS8(_S8("CGlobalWLANAdapter::AddLeafObjectL, add leaf - <%S>"), &aURI );
+      	    	err = DesToInt( aObject );
+      	    	if ( err >= 0)
+      	    		{
+      	    		iWriteSettings->maxTriesToFindNw = err;
+      	    		iWriteSettings->maxTriesToFindNwPresent = ETrue;
+      	    		iWriteStatuses->maxTriesToFindNwStatus = aStatusRef;
+      	    		err = KErrNone;
+      	    		}
+      			}
+      		else
+      			{
+      			err = KErrTooBig;
+      			}
+      		}
+      	// *****************************************************************
+      	else if( lastUriSeg.Match( KNSmlWLanDelayBetweenFindNw ) != KErrNotFound )
+      		{
+      		// check whether input is of legal size
+      		if ( aObject.Size() <= KInputMaxLength )
+      			{
+      		  	//store the parameter
+      		  	DBG_ARGS8(_S8("CGlobalWLANAdapter::AddLeafObjectL, add leaf - <%S>"), &aURI );
+      	    	err = DesToInt( aObject );
+      	    	if ( err >= 0 )
+      	    		{
+      	    		iWriteSettings->delayBetweenFindNw = err;
+      	    		iWriteSettings->delayBetweenFindNwPresent = ETrue;
+      	    		iWriteStatuses->delayBetweenFindNwStatus = aStatusRef;
+      	    		err = KErrNone;
+      	    		}
+      			}
+      		else
+      			{
+      			err = KErrTooBig;
+      			}
+      		}
+      	// *****************************************************************
+      	else if( lastUriSeg.Match( KNSmlWLanAllowRadioMeasurements ) != KErrNotFound )
+      		{
+      		// check whether input is of legal size
+      		if ( aObject.Size() <= KInputMaxLength )
+      			{
+      		  	if( aObject.MatchF( _L8("True")) != KErrNotFound ||
+      		  		aObject.MatchF( _L8("true")) != KErrNotFound )
+              		{
+              		DBG_ARGS8(_S8("CGlobalWLANAdapter::AddLeafObjectL, add leaf - <%S>"), &aURI );
+              		iWriteSettings->allowRadioMeasurements = ETrue;
+              		iWriteSettings->allowRadioMeasurementsPresent = ETrue;
+              		iWriteStatuses->allowRadioMeasurementsStatus = aStatusRef;
+              		}
+           		else if ( aObject.MatchF( _L8("False")) != KErrNotFound ||
+           			      aObject.MatchF( _L8("false")) != KErrNotFound )
+              		{
+              		DBG_ARGS8(_S8("CGlobalWLANAdapter::AddLeafObjectL, add leaf - <%S>"), &aURI );
+              		iWriteSettings->allowRadioMeasurements = EFalse;
+              		iWriteSettings->allowRadioMeasurementsPresent = ETrue;
+              		iWriteStatuses->allowRadioMeasurementsStatus = aStatusRef;
+              		}
+           		else
+           			{
+           			err = KErrArgument;
+      				}
+      			}
+      		else
+      			{
+      			err = KErrTooBig;
+      			}
+      		}
+      	// *****************************************************************
+      	else if( lastUriSeg.Match( KNSmlWLanMinPassiveChannelTime ) != KErrNotFound )
+      		{
+      		// check whether input is of legal size
+      		if ( aObject.Size() <= KInputMaxLength )
+      			{
+      		  	//store the parameter
+      		  	DBG_ARGS8(_S8("CGlobalWLANAdapter::AddLeafObjectL, add leaf - <%S>"), &aURI );
+      	    	err = DesToInt( aObject );
+      	    	if ( err >= 0 )
+      	    		{
+      	    		iWriteSettings->minPassiveChannelTime = err;
+      	    		iWriteSettings->minPassiveChannelTimePresent = ETrue;
+      	    		iWriteStatuses->minPassiveChannelTimeStatus = aStatusRef;
+      	    		err = KErrNone;
+      	    		}
+      			}
+      		else
+      			{
+      			err = KErrTooBig;
+      			}
+      		}
+      	// *****************************************************************
+      	else if( lastUriSeg.Match( KNSmlWLanMaxPassiveChannelTime ) != KErrNotFound )
+      		{
+      		// check whether input is of legal size
+      		if ( aObject.Size() <= KInputMaxLength )
+      			{
+      		  	//store the parameter
+      		  	DBG_ARGS8(_S8("CGlobalWLANAdapter::AddLeafObjectL, add leaf - <%S>"), &aURI );
+      	    	err = DesToInt( aObject );
+      	    	if ( err >= 0 )
+      	    		{
+      	    		iWriteSettings->maxPassiveChannelTime = err;
+      	    		iWriteSettings->maxPassiveChannelTimePresent = ETrue;
+      	    		iWriteStatuses->maxPassiveChannelTimeStatus = aStatusRef;
+      	    		err = KErrNone;
+      	    		}
+      			}
+      		else
+      			{
+      			err = KErrTooBig;
+      			}
+      		}
+      	// *****************************************************************
+      	else if( lastUriSeg.Match( KNSmlWLanMaxApFailureCount ) != KErrNotFound )
+      		{
+      		// check whether input is of legal size
+      		if ( aObject.Size() <= KInputMaxLength )
+      			{
+      		  	//store the parameter
+      		  	DBG_ARGS8(_S8("CGlobalWLANAdapter::AddLeafObjectL, add leaf - <%S>"), &aURI );
+      	    	err = DesToInt( aObject );
+      	    	if ( err >= 0 )
+      	    		{
+      	    		iWriteSettings->maxApFailureCount = err;
+      	    		iWriteSettings->maxApFailureCountPresent = ETrue;
+      	    		iWriteStatuses->maxApFailureCountStatus = aStatusRef;
+      	    		err = KErrNone;
+      	    		}
+      			}
+      		else
+      			{
+      			err = KErrTooBig;
+      			}
+      		}
+      	// *****************************************************************
+      	else if( lastUriSeg.Match( KNSmlWLanLongBeaconFindCount ) != KErrNotFound )
+      		{
+      		// check whether input is of legal size
+      		if ( aObject.Size() <= KInputMaxLength )
+      			{
+      		  	//store the parameter
+      		  	DBG_ARGS8(_S8("CGlobalWLANAdapter::AddLeafObjectL, add leaf - <%S>"), &aURI );
+      	    	err = DesToInt( aObject );
+      	    	if ( err >= 0 )
+      	    		{
+      	    		iWriteSettings->longBeaconFindCount = err;
+      	    		iWriteSettings->longBeaconFindCountPresent = ETrue;
+      	    		iWriteStatuses->longBeaconFindCountStatus = aStatusRef;
+      	    		err = KErrNone;
+      	    		}
+      			}
+      		else
+      			{
+      			err = KErrTooBig;
+      			}
+      		}
+      	// *****************************************************************
+      	else if( lastUriSeg.Match( KNSmlWLanQosNullFrameInterval ) != KErrNotFound )
+      		{
+      		// check whether input is of legal size
+      		if ( aObject.Size() <= KInputMaxLength )
+      			{
+      		  	//store the parameter
+      		  	DBG_ARGS8(_S8("CGlobalWLANAdapter::AddLeafObjectL, add leaf - <%S>"), &aURI );
+      	    	err = DesToInt( aObject );
+      	    	if ( err >= 0 )
+      	    		{
+      	    		iWriteSettings->qosNullFrameInterval = err;
+      	    		iWriteSettings->qosNullFrameIntervalPresent = ETrue;
+      	    		iWriteStatuses->qosNullFrameIntervalStatus = aStatusRef;
+      	    		err = KErrNone;
+      	    		}
+      			}
+      		else
+      			{
+      			err = KErrTooBig;
+      			}
+      		}
+      	// *****************************************************************
+      	else if( lastUriSeg.Match( KNSmlWLanQosNullFrameTimeout ) != KErrNotFound )
+      		{
+      		// check whether input is of legal size
+      		if ( aObject.Size() <= KInputMaxLength )
+      			{
+      		  	//store the parameter
+      		  	DBG_ARGS8(_S8("CGlobalWLANAdapter::AddLeafObjectL, add leaf - <%S>"), &aURI );
+      	    	err = DesToInt( aObject );
+      	    	if ( err >= 0 )
+      	    		{
+      	    		iWriteSettings->qosNullFrameTimeout = err;
+      	    		iWriteSettings->qosNullFrameTimeoutPresent = ETrue;
+      	    		iWriteStatuses->qosNullFrameTimeoutStatus = aStatusRef;
+      	    		err = KErrNone;
+      	    		}
+      			}
+      		else
+      			{
+      			err = KErrTooBig;
+      			}
+      		}
+      	// *****************************************************************
+      	else if( lastUriSeg.Match( KNSmlWLanMTU ) != KErrNotFound )
+      		{
+      		// check whether input is of legal size
+      		if ( aObject.Size() <= KInputMaxLength )
+      			{
+      		  	//store the parameter
+      		  	DBG_ARGS8(_S8("CGlobalWLANAdapter::AddLeafObjectL, add leaf - <%S>"), &aURI );
+      	    	err = DesToInt( aObject );
+      	    	if ( err >= 0 )
+      	    		{
+      	    		iWriteSettings->MTU = err;
+      	    		iWriteSettings->MTUPresent = ETrue;
+      	    		iWriteStatuses->MTUStatus = aStatusRef;
+      	    		err = KErrNone;
+      	    		}
+      			}
+      		else
+      			{
+      			err = KErrTooBig;
+      			}
+      		}
+      	// *****************************************************************
+     	// The given leaf was not found
+	  	else
+  			{
+			err = KErrNotFound;
+  			}
+    	}
+	else
+    	{
+        // Something went wrong
+    	_DBG_FILE("CGlobalWLANAdapter::AddLeafObjectL(): Leaf addition failed");
+        err = KErrGeneral;
+    	}   	
+
+    // Update the possible failure to the status, success is updated when the 
+    // actual writing to db is done
+    switch ( err )
+    	{
+    	case KErrTooBig:
+    		iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ETooLargeObject );
+    		break;	
+    		
+    	case KErrNotFound:
+    		iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EInvalidObject );
+    		break;
+    		
+    	case KErrGeneral:
+    		iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
+    		break;
+    		
+    	case KErrArgument:
+			iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EInvalidObject );
+			break;
+			
+    	case KErrOverflow:
+    		iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EInvalidObject );
+    		break;
+    	}
+
+    _DBG_FILE("CGlobalWLANAdapter::AddLeafObjectL(): end");
+    }
+
+//-----------------------------------------------------------------------------
+// CGlobalWLANAdapter* CGlobalWLANAdapter::UpdateLeafObjectL( const TDesC& aURI, 
+//    const TDesC& aLUID, const TDesC8& aObject, const TDesC& aType, 
+//    const TInt aStatusRef )
+//-----------------------------------------------------------------------------
+void CGlobalWLANAdapter::UpdateLeafObjectL( const TDesC8& aURI, 
+                                          const TDesC8& aLUID, 
+                                          const TDesC8& aObject, 
+                                          const TDesC8& aType, 
+                                          const TInt aStatusRef )
+    {
+    _DBG_FILE("CGlobalWLANAdapter::UpdateLeafObjectL(): begin");
+    DBG_ARGS8(_S8("CGlobalWLANAdapter::UpdateLeafObjectL - <%S> <%S>"), &aURI, &aLUID );
+    
+    AddLeafObjectL( aURI, aLUID, aObject, aType, aStatusRef );
+
+    _DBG_FILE("CGlobalWLANAdapter::UpdateLeafObjectL(): end");
+    }
+
+//------------------------------------------------------------------------------
+// CGlobalWLANAdapter::UpdateLeafObjectL( const TDesC8& aURI, 
+// const TDesC8& aLUID, const TDesC8& aObject, const TDesC8& aType )
+// Not supported
+//------------------------------------------------------------------------------
+
+void CGlobalWLANAdapter::UpdateLeafObjectL( const TDesC8& /*aURI*/, 
+                                          const TDesC8& /*aLUID*/,
+                                          RWriteStream*& /*aStream*/, 
+                                          const TDesC8& /*aType*/,
+                                          TInt aStatusRef )
+    {
+    _DBG_FILE("CGlobalWLANAdapter::UpdateLeafObjectL(): streaming: begin");
+    
+    iCallBack->SetStatusL(aStatusRef, CSmlDmAdapter::EError);
+    
+    _DBG_FILE("CGlobalWLANAdapter::UpdateLeafObjectL() streaming: end");
+    }
+
+//-----------------------------------------------------------------------------
+// CGlobalWLANAdapter* CGlobalWLANAdapter::DeleteObjectL( const TDesC8& aURI, 
+// const TDesC8& aLUID, const TInt aStatusRef )
+// Not supported
+//-----------------------------------------------------------------------------
+void CGlobalWLANAdapter::DeleteObjectL( const TDesC8& /*aURI*/, 
+                                      const TDesC8& /*aLUID*/, 
+                                      const TInt aStatusRef )
+    {
+    _DBG_FILE("CGlobalWLANAdapter::DeleteObjectL(): begin");
+    
+    iCallBack->SetStatusL(aStatusRef, CSmlDmAdapter::EError); 
+       
+    _DBG_FILE("CGlobalWLANAdapter::DeleteObjectL(): end");
+    }
+
+//-----------------------------------------------------------------------------
+// CGlobalWLANAdapter* CGlobalWLANAdapter::FetchLeafObjectSizeL( const TDesC8& aURI, 
+//                     const TDesC8& aLUID, const TDesC8& aType, 
+//                     const TInt aResultsRef, const TInt aStatusRef )
+// not supported
+//-----------------------------------------------------------------------------
+
+void CGlobalWLANAdapter::FetchLeafObjectSizeL( const TDesC8& /*aURI*/, 
+                                                 const TDesC8& /*aLUID*/,
+                                                 const TDesC8& /*aType*/, 
+                                                 TInt /*aResultsRef*/,
+                                                 TInt /*aStatusRef*/ )
+    {
+    _DBG_FILE("CGlobalWLANAdapter::FetchLeafObjectSizeL(): begin");
+    _DBG_FILE("CGlobalWLANAdapter::FetchLeafObjectSizeL(): end");
+    return;
+    }                                                
+
+
+//-----------------------------------------------------------------------------
+// CGlobalWLANAdapter* CGlobalWLANAdapter::FetchLeafObjectL( const TDesC8& aURI, 
+//                     const TDesC8& aLUID, const TDesC8& aType, 
+//                     const TInt aResultsRef, const TInt aStatusRef )
+// 
+//-----------------------------------------------------------------------------
+void CGlobalWLANAdapter::FetchLeafObjectL( const TDesC8& aURI, 
+                                        const TDesC8& aLUID, 
+                                        const TDesC8& /*aType*/, 
+                                        const TInt aResultsRef, 
+                                        const TInt aStatusRef )
+    {
+    _DBG_FILE("CGlobalWLANAdapter::FetchLeafObjectL(): begin");
+    DBG_ARGS8(_S8("Fetch aURI - %S - %S"), &aURI, &aLUID);
+    
+    // Store the required parameters into the struct. Actual reading will be done in
+    // when CompleteOutstandingCommands is called
+    
+    // Get the last uri segment
+    TPtrC8 lastUriSeg = GetLastUriSeg( aURI );
+    DBG_ARGS8(_S8("Fetch leaf, lasturiseg - %S"), &lastUriSeg);
+    
+    //**************************************************************************
+    // Check which leaf is in question
+    //**************************************************************************
+    if( aURI.Match( _L8("WLAN/*" ) ) != KErrNotFound )
+    	{
+        _DBG_FILE("CGlobalWLANAdapter::FetchLeafObjectL(): WLAN/* found in uri");
+      	// *****************************************************************
+      	if( lastUriSeg.Match( KNSmlWLanInternetConnectivityTest ) != KErrNotFound )
+      		{	
+      		_DBG_FILE("CGlobalWLANAdapter::FetchLeafObjectL(): leaf"); 
+      	   	iReadSettings->internetConnectivityTestPresent = ETrue;
+      	   	iReadStatuses->internetConnectivityTestResult = aResultsRef;
+      	   	iReadStatuses->internetConnectivityTestStatus = aStatusRef;
+      		}
+      	
+      	// *****************************************************************
+      	else if( lastUriSeg.Match( KNSmlWLanUseDefaultSettings ) != KErrNotFound )
+      		{	
+      		_DBG_FILE("CGlobalWLANAdapter::FetchLeafObjectL(): leaf"); 
+            iReadSettings->useDefaultSettingsPresent = ETrue;  
+            iReadStatuses->useDefaultSettingsResult = aResultsRef;
+            iReadStatuses->useDefaultSettingsStatus = aStatusRef;
+            }
+	
+      	// *****************************************************************
+      	else if( lastUriSeg.Match( KNSmlWLanLongRetryLimit ) != KErrNotFound )
+      		{
+      		_DBG_FILE("CGlobalWLANAdapter::FetchLeafObjectL(): leaf"); 
+      	    iReadSettings->longRetryLimitPresent = ETrue;
+      	    iReadStatuses->longRetryLimitResult = aResultsRef;
+      	    iReadStatuses->longRetryLimitStatus = aStatusRef;
+      		}
+
+      	// *****************************************************************
+      	else if( lastUriSeg.Match( KNSmlWLanShortRetryLimit ) != KErrNotFound )
+      		{	
+      		_DBG_FILE("CGlobalWLANAdapter::FetchLeafObjectL(): leaf"); 
+      	    iReadSettings->shortRetryLimitPresent = ETrue;
+      	    iReadStatuses->shortRetryLimitResult = aResultsRef;
+      	    iReadStatuses->shortRetryLimitStatus = aStatusRef;
+      		}
+	
+      	// *****************************************************************
+      	else if( lastUriSeg.Match( KNSmlWLanRTSThreshold ) != KErrNotFound )
+      		{
+      		_DBG_FILE("CGlobalWLANAdapter::FetchLeafObjectL(): leaf"); 
+      	    iReadSettings->RTSThresholdPresent = ETrue;
+      	    iReadStatuses->RTSThresholdResult = aResultsRef;
+      	    iReadStatuses->RTSThresholdStatus = aStatusRef;
+      		}
+      		
+      	// *****************************************************************
+      	else if( lastUriSeg.Match( KNSmlWLanTXPowerLevel ) != KErrNotFound )
+      		{
+      		_DBG_FILE("CGlobalWLANAdapter::FetchLeafObjectL(): leaf"); 
+      	   	iReadSettings->TXPowerLevelPresent = ETrue;
+      	   	iReadStatuses->TXPowerLevelResult = aResultsRef;
+      	   	iReadStatuses->TXPowerLevelStatus = aStatusRef;
+      		}
+      		
+       	// *****************************************************************
+      	else if( lastUriSeg.Match( KNSmlWLanPowerSaving ) != KErrNotFound )
+      		{
+      		_DBG_FILE("CGlobalWLANAdapter::FetchLeafObjectL(): leaf"); 
+            iReadSettings->powerSavingPresent = ETrue;
+            iReadStatuses->powerSavingResult = aResultsRef;
+            iReadStatuses->powerSavingStatus = aStatusRef;
+      		}
+      			
+      	// *****************************************************************
+      	else if( lastUriSeg.Match( KNSmlWLanBackgroundScanInterval ) != KErrNotFound )
+      		{
+      		_DBG_FILE("CGlobalWLANAdapter::FetchLeafObjectL(): leaf"); 
+      	   	iReadSettings->backgroundScanIntervalPresent = ETrue;
+      	   	iReadStatuses->backgroundScanIntervalResult = aResultsRef;
+      	   	iReadStatuses->backgroundScanIntervalStatus = aStatusRef;
+      		}
+      		
+      	// *****************************************************************
+      	else if( lastUriSeg.Match( KNSmlWLanScanRate ) != KErrNotFound )
+      		{
+      		_DBG_FILE("CGlobalWLANAdapter::FetchLeafObjectL(): leaf"); 
+      	   	iReadSettings->scanRatePresent = ETrue;
+      	   	iReadStatuses->scanRateResult = aResultsRef;
+      	   	iReadStatuses->scanRateStatus = aStatusRef;
+      		}
+      			
+      	// *****************************************************************
+      	else if( lastUriSeg.Match( KNSmlWLanRCPITrigger ) != KErrNotFound )
+      		{
+      		_DBG_FILE("CGlobalWLANAdapter::FetchLeafObjectL(): leaf"); 
+      	   	iReadSettings->RCPITriggerPresent = ETrue;
+      	   	iReadStatuses->RCPITriggerResult = aResultsRef;
+      	   	iReadStatuses->RCPITriggerStatus = aStatusRef;
+      		}
+      			
+      	// *****************************************************************
+      	else if( lastUriSeg.Match( KNSmlWLanMinActiveChannelTime ) != KErrNotFound )
+      		{
+      		_DBG_FILE("CGlobalWLANAdapter::FetchLeafObjectL(): leaf"); 
+      	   	iReadSettings->minActiveChannelTimePresent = ETrue;
+      	   	iReadStatuses->minActiveChannelTimeResult = aResultsRef;
+      	   	iReadStatuses->minActiveChannelTimeStatus = aStatusRef;
+      		}
+      		
+      	// *****************************************************************
+      	else if( lastUriSeg.Match( KNSmlWLanMaxActiveChannelTime ) != KErrNotFound )
+      		{
+      		_DBG_FILE("CGlobalWLANAdapter::FetchLeafObjectL(): leaf"); 
+      	   	iReadSettings->maxActiveChannelTimePresent = ETrue;
+      	   	iReadStatuses->maxActiveChannelTimeResult = aResultsRef;
+      	   	iReadStatuses->maxActiveChannelTimeStatus = aStatusRef;
+      		}
+      		
+      	// *****************************************************************
+      	else if( lastUriSeg.Match( KNSmlWLanMaxTxMSDULifeTime ) != KErrNotFound )
+      		{
+      		_DBG_FILE("CGlobalWLANAdapter::FetchLeafObjectL(): leaf"); 
+      	   	iReadSettings->maxTxMSDULifeTimePresent = ETrue;
+      	   	iReadStatuses->maxTxMSDULifeTimeResult = aResultsRef;
+      	   	iReadStatuses->maxTxMSDULifeTimeStatus = aStatusRef;
+      		}
+      		
+      	// *****************************************************************
+      	else if( lastUriSeg.Match( KNSmlWLanScanExpirationTimer ) != KErrNotFound )
+      		{
+      		_DBG_FILE("CGlobalWLANAdapter::FetchLeafObjectL(): leaf"); 
+      	   	iReadSettings->scanExpirationTimerPresent = ETrue;
+      	   	iReadStatuses->scanExpirationTimerResult = aResultsRef;
+      	   	iReadStatuses->scanExpirationTimerStatus = aStatusRef;
+      		}
+      		
+      	// *****************************************************************
+      	else if( lastUriSeg.Match( KNSmlWLanUnloadDriverTimer ) != KErrNotFound )
+      		{
+      		_DBG_FILE("CGlobalWLANAdapter::FetchLeafObjectL(): leaf"); 
+      	   	iReadSettings->unloadDriverTimerPresent = ETrue;
+      	   	iReadStatuses->unloadDriverTimerResult = aResultsRef;
+      	   	iReadStatuses->unloadDriverTimerStatus = aStatusRef;
+      		}
+      		
+      	// *****************************************************************
+      	else if( lastUriSeg.Match( KNSmlWLanRoamTimer ) != KErrNotFound )
+      		{
+      		_DBG_FILE("CGlobalWLANAdapter::FetchLeafObjectL(): leaf"); 
+      	   	iReadSettings->roamTimerPresent = ETrue;
+      	   	iReadStatuses->roamTimerResult = aResultsRef;
+      	   	iReadStatuses->roamTimerStatus = aStatusRef;
+      		}
+      		
+       	// *****************************************************************
+      	else if( lastUriSeg.Match( KNSmlWLanRCPIDifference ) != KErrNotFound )
+      		{
+      		_DBG_FILE("CGlobalWLANAdapter::FetchLeafObjectL(): leaf"); 
+      	   	iReadSettings->RCPIDifferencePresent = ETrue;
+      	   	iReadStatuses->RCPIDifferenceResult = aResultsRef;
+      	   	iReadStatuses->RCPIDifferenceStatus = aStatusRef;
+      		}
+      		
+      	// *****************************************************************
+      	else if( lastUriSeg.Match( KNSmlWLanConnRegainTimer ) != KErrNotFound )
+      		{
+      		_DBG_FILE("CGlobalWLANAdapter::FetchLeafObjectL(): leaf"); 
+      	   	iReadSettings->connRegainTimerPresent = ETrue;
+      	   	iReadStatuses->connRegainTimerResult = aResultsRef;
+      	   	iReadStatuses->connRegainTimerStatus = aStatusRef;
+      		}
+      		
+      	// *****************************************************************
+      	else if( lastUriSeg.Match( KNSmlWLanMaxTriesToFindNw ) != KErrNotFound )
+      		{
+      		_DBG_FILE("CGlobalWLANAdapter::FetchLeafObjectL(): leaf"); 
+      	   	iReadSettings->maxTriesToFindNwPresent = ETrue;
+      	   	iReadStatuses->maxTriesToFindNwResult = aResultsRef;
+      	   	iReadStatuses->maxTriesToFindNwStatus = aStatusRef;
+      		}
+      		
+      	// *****************************************************************
+      	else if( lastUriSeg.Match( KNSmlWLanDelayBetweenFindNw ) != KErrNotFound )
+      		{
+      		_DBG_FILE("CGlobalWLANAdapter::FetchLeafObjectL(): leaf"); 
+      	   	iReadSettings->delayBetweenFindNwPresent = ETrue;
+      	   	iReadStatuses->delayBetweenFindNwResult = aResultsRef;
+      	   	iReadStatuses->delayBetweenFindNwStatus = aStatusRef;
+      		}
+      		
+      	// *****************************************************************
+      	else if( lastUriSeg.Match( KNSmlWLanAllowRadioMeasurements ) != KErrNotFound )
+      		{
+      		_DBG_FILE("CGlobalWLANAdapter::FetchLeafObjectL(): leaf"); 
+            iReadSettings->allowRadioMeasurementsPresent = ETrue;
+           	iReadStatuses->allowRadioMeasurementsResult = aResultsRef;
+      	   	iReadStatuses->allowRadioMeasurementsStatus = aStatusRef;
+            }
+              
+      	// *****************************************************************
+      	else if( lastUriSeg.Match( KNSmlWLanMinPassiveChannelTime ) != KErrNotFound )
+      		{
+      		_DBG_FILE("CGlobalWLANAdapter::FetchLeafObjectL(): leaf"); 
+      	   	iReadSettings->minPassiveChannelTimePresent = ETrue;
+      	   	iReadStatuses->minPassiveChannelTimeResult = aResultsRef;
+      	   	iReadStatuses->minPassiveChannelTimeStatus = aStatusRef;
+      		}
+      		
+      	// *****************************************************************
+      	else if( lastUriSeg.Match( KNSmlWLanMaxPassiveChannelTime ) != KErrNotFound )
+      		{
+      		_DBG_FILE("CGlobalWLANAdapter::FetchLeafObjectL(): leaf"); 
+      	   	iReadSettings->maxPassiveChannelTimePresent = ETrue;
+      	   	iReadStatuses->maxPassiveChannelTimeResult = aResultsRef;
+      	   	iReadStatuses->maxPassiveChannelTimeStatus = aStatusRef;
+      		}
+      		
+      	// *****************************************************************
+      	else if( lastUriSeg.Match( KNSmlWLanMaxApFailureCount ) != KErrNotFound )
+      		{
+      		_DBG_FILE("CGlobalWLANAdapter::FetchLeafObjectL(): leaf"); 
+      	   	iReadSettings->maxApFailureCountPresent = ETrue;
+      	   	iReadStatuses->maxApFailureCountResult = aResultsRef;
+      	   	iReadStatuses->maxApFailureCountStatus = aStatusRef;
+      		}
+      		
+      	// *****************************************************************
+      	else if( lastUriSeg.Match( KNSmlWLanLongBeaconFindCount ) != KErrNotFound )
+      		{
+      		_DBG_FILE("CGlobalWLANAdapter::FetchLeafObjectL(): leaf"); 
+      	   	iReadSettings->longBeaconFindCountPresent = ETrue;
+      	   	iReadStatuses->longBeaconFindCountResult = aResultsRef;
+      	   	iReadStatuses->longBeaconFindCountStatus = aStatusRef;
+      		}
+      		
+      	// *****************************************************************
+      	else if( lastUriSeg.Match( KNSmlWLanQosNullFrameInterval ) != KErrNotFound )
+      		{
+      		_DBG_FILE("CGlobalWLANAdapter::FetchLeafObjectL(): leaf"); 
+      	   	iReadSettings->qosNullFrameIntervalPresent = ETrue;
+      	   	iReadStatuses->qosNullFrameIntervalResult = aResultsRef;
+      	   	iReadStatuses->qosNullFrameIntervalStatus = aStatusRef;
+      		}
+      		
+      	// *****************************************************************
+      	else if( lastUriSeg.Match( KNSmlWLanQosNullFrameTimeout ) != KErrNotFound )
+      		{
+      		_DBG_FILE("CGlobalWLANAdapter::FetchLeafObjectL(): leaf"); 
+      	   	iReadSettings->qosNullFrameTimeoutPresent = ETrue;
+      	   	iReadStatuses->qosNullFrameTimeoutResult = aResultsRef;
+      	   	iReadStatuses->qosNullFrameTimeoutStatus = aStatusRef;
+      		}
+      		
+      	// *****************************************************************
+      	else if( lastUriSeg.Match( KNSmlWLanMTU ) != KErrNotFound )
+      		{
+      		_DBG_FILE("CGlobalWLANAdapter::FetchLeafObjectL(): leaf"); 
+      	   	iReadSettings->MTUPresent = ETrue;
+      	   	iReadStatuses->MTUResult = aResultsRef;
+      	   	iReadStatuses->MTUStatus = aStatusRef;
+      		}
+      		
+      	// *****************************************************************
+   		// The given leaf was not found
+	  	else
+  			{
+  			_DBG_FILE("CGlobalWLANAdapter::FetchLeafObjectL(): No matchin leaf was found");
+			iCallBack->SetStatusL(aStatusRef, ENotFound);
+  			}
+    	}
+	else
+    	{
+        // Something went wrong
+    	_DBG_FILE("CGlobalWLANAdapter::FetchLeafObjectL(): No matchin node was found");
+        iCallBack->SetStatusL(aStatusRef, EInvalidObject);
+    	}   
+
+    _DBG_FILE("CGlobalWLANAdapter::FetchLeafObjectL(): end");
+
+    }
+    
+
+//-----------------------------------------------------------------------------
+// CGlobalWLANAdapter* CGlobalWLANAdapter::ChildURIListL( const TDesC& aURI, 
+// const TDesC& aLUID, const CArrayFix<TNSmlDmMappingInfo>& aPreviousURISegmentList, 
+// const TInt aResultsRef, const TInt aStatusRef )
+//-----------------------------------------------------------------------------
+void CGlobalWLANAdapter::ChildURIListL( const TDesC8& aURI, 
+                                      const TDesC8& /*aLUID*/, 
+                                      const CArrayFix<TSmlDmMappingInfo>& /*aPreviousURISegmentList*/, 
+                                      const TInt aResultsRef, 
+                                      const TInt aStatusRef )
+    {
+    _DBG_FILE("CGlobalWLANAdapter::ChildURIListL(): begin");
+    DBG_ARGS8(_S8("globalwlanadapter::ChildUriList - <%S>"), &aURI );
+ 
+    CBufBase* currentUriSegmentList = CBufFlat::NewL( KUriSegListLength );
+    CleanupStack::PushL( currentUriSegmentList );
+   	TEntry currentEntry;
+   	TInt uriSegs = NumOfUriSegs( aURI );
+    
+    // Check whether WLAN node in question	
+    if ( aURI.Match(_L8("WLAN"  ))!= KErrNotFound && uriSegs == 1 )
+    	{
+    	_DBG_FILE("CGlobalWLANAdapter::ChildURIListL(): WLAN");
+    	currentUriSegmentList->InsertL( 0, KNSmlWLanNode );
+      	iCallBack->SetResultsL( aResultsRef, *currentUriSegmentList, KNullDesC8 );
+    	iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
+    	_DBG_FILE("CGlobalWLANAdapter::ChildURIListL(): WLAN leafs returned");
+    	}
+    
+    // Some illegal node/leaf in question
+    else
+    	{
+        iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::ENotFound);
+        _DBG_FILE("CNSmlInternetAdapter::ChildURIListL(): ENotFound end");
+    	}
+    
+    // delete the list
+    CleanupStack::PopAndDestroy( currentUriSegmentList );
+    _DBG_FILE("CGlobalWLANAdapter::ChildURIListL(): end");
+    }
+
+//-----------------------------------------------------------------------------
+// void CGlobalWLANAdapter::AddNodeObjectL( const TDesC& aURI, const TDesC& aParentLUID, 
+// const TInt aStatusRef )
+//-----------------------------------------------------------------------------
+void CGlobalWLANAdapter::AddNodeObjectL( const TDesC8& aURI, 
+                                       const TDesC8& aParentLUID, 
+                                       const TInt aStatusRef )
+    {
+ 
+    DBG_ARGS8(_S8("CGlobalWLANAdapter::AddNodeObjectL - uri: <%S> to aParentLuid: <%S>"), 
+                &aURI, &aParentLUID ); 
+                
+    TInt uriSegs = NumOfUriSegs( aURI );
+                
+    // The only node is WLAN, lets check if that is in question
+    if( aURI.Match( _L8("WLAN" ) ) != KErrNotFound && uriSegs==1 )
+    	{
+    	// No actions needed, the table is created and filled in the
+    	// Execution function.
+    	iCallBack->SetStatusL(aStatusRef, CSmlDmAdapter::EOk);
+    	}
+    else
+    	{
+    	iCallBack->SetStatusL(aStatusRef, CSmlDmAdapter::EError);
+    	}
+
+    _DBG_FILE("CGlobalWLANAdapter::AddNodeObjectL(): end");
+    }
+    
+//------------------------------------------------------------------------------
+// CGlobalWLANAdapter::ExecuteCommandL
+// not supported
+//------------------------------------------------------------------------------
+void CGlobalWLANAdapter::ExecuteCommandL( const TDesC8& /*aURI*/, 
+                              const TDesC8& /*aLUID*/,
+                              const TDesC8& /*aArgument*/, 
+                              const TDesC8& /*aType*/,
+                              TInt aStatusRef )
+    {
+    _DBG_FILE("CGlobalWLANAdapter::ExecuteCommandL(): begin");
+    
+    iCallBack->SetStatusL(aStatusRef, CSmlDmAdapter::EError);
+    
+    _DBG_FILE("CGlobalWLANAdapter::ExecuteCommandL(): end");
+    }
+
+//------------------------------------------------------------------------------
+// CGlobalWLANAdapter::ExecuteCommandL ( .. RWriteStream ..)
+// not supported
+//------------------------------------------------------------------------------
+void CGlobalWLANAdapter::ExecuteCommandL( const TDesC8& /*aURI*/, 
+                              const TDesC8& /*aLUID*/,
+                              RWriteStream*& /*aStream*/, 
+                              const TDesC8& /*aType*/,
+                              TInt aStatusref )
+    {
+    _DBG_FILE("CGlobalWLANAdapter::ExecuteCommandL(): begin");
+     
+   	iCallBack->SetStatusL( aStatusref, CSmlDmAdapter::EError );
+   	
+    _DBG_FILE("CGlobalWLANAdapter::ExecuteCommandL(): end");
+    }
+
+//------------------------------------------------------------------------------
+// CGlobalWLANAdapter::CopyCommandL
+// not supported
+//------------------------------------------------------------------------------
+void CGlobalWLANAdapter::CopyCommandL( const TDesC8& /*aTargetURI*/,
+                                     const TDesC8& /*aTargetLUID*/,
+                                     const TDesC8& /* aSourceURI*/,
+                                     const TDesC8& /*aSourceLUID*/, 
+                                     const TDesC8& /*aType*/,
+                                     TInt aStatusRef )
+    {
+    _DBG_FILE("CGlobalWLANAdapter::CopyCommandL(): begin");
+    
+    iCallBack->SetStatusL(aStatusRef, CSmlDmAdapter::EError);
+    
+    _DBG_FILE("CGlobalWLANAdapter::CopyCommandL(): end");
+    }
+//------------------------------------------------------------------------------
+// CGlobalWLANAdapter::StartAtomicL
+// not supported
+//------------------------------------------------------------------------------
+void CGlobalWLANAdapter::StartAtomicL()
+    {
+    _DBG_FILE("CGlobalWLANAdapter::StartAtomicL(): begin");
+    _DBG_FILE("CGlobalWLANAdapter::StartAtomicL(): end");
+    }
+
+//------------------------------------------------------------------------------
+// CGlobalWLANAdapter::CommitAtomicL
+// not supported
+//------------------------------------------------------------------------------
+void CGlobalWLANAdapter::CommitAtomicL()
+    {
+    _DBG_FILE("CGlobalWLANAdapter::CommitAtomicL(): begin");
+    _DBG_FILE("CGlobalWLANAdapter::CommitAtomicL(): end");
+    }
+
+//------------------------------------------------------------------------------
+// CGlobalWLANAdapter::RollbackAtomicL
+// returns EError
+//------------------------------------------------------------------------------
+void CGlobalWLANAdapter::RollbackAtomicL()
+    {
+    _DBG_FILE("CGlobalWLANAdapter::RollbackAtomicL(): begin");
+    _DBG_FILE("CGlobalWLANAdapter::RollbackAtomicL(): end");
+    }
+
+
+//------------------------------------------------------------------------------
+// CGlobalWLANAdapter::StreamingSupport
+// returns ETrue, streaming is supported
+//------------------------------------------------------------------------------
+
+TBool CGlobalWLANAdapter::StreamingSupport( TInt& /*aItemSize*/ )
+    {
+    _DBG_FILE("CGlobalWLANAdapter::StreamingSupport(): begin");
+    _DBG_FILE("CGlobalWLANAdapter::StreamingSupport(): end");
+    return EFalse;
+    }
+
+//------------------------------------------------------------------------------
+// CGlobalWLANAdapter::StreamCommittedL
+// not used in this adapter
+//------------------------------------------------------------------------------
+
+void CGlobalWLANAdapter::StreamCommittedL()
+    {
+    _DBG_FILE("CGlobalWLANAdapter::StreamCommittedL(): begin");
+    _DBG_FILE("CGlobalWLANAdapter::StreamCommittedL(): end");
+    }
+
+//-----------------------------------------------------------------------------
+// CGlobalWLANAdapter* CGlobalWLANAdapter::CompleteOutstandingCmdsL( )
+//-----------------------------------------------------------------------------
+void CGlobalWLANAdapter::CompleteOutstandingCmdsL( )
+    {
+    _DBG_FILE("CGlobalWLANAdapter::CompleteOutStandingCmdsL(): begin");
+    
+    ExecuteBufferL( ETrue );  
+    
+    _DBG_FILE("CGlobalWLANAdapter::CompleteOutStandingCmdsL(): end");
+    }
+
+
+// -------------------------------------------------------------------------------------
+// CGlobalWLANAdapter::FillNodeInfoL()
+// Fills the node info in ddf structure
+// -------------------------------------------------------------------------------------
+void CGlobalWLANAdapter::FillNodeInfoL( MSmlDmDDFObject& aNode,
+                                          TSmlDmAccessTypes aAccTypes,
+                                          MSmlDmDDFObject::TOccurence aOccurrence, 
+                                          MSmlDmDDFObject::TScope aScope, 
+                                          MSmlDmDDFObject::TDFFormat aFormat,
+                                          const TDesC8& aDescription )
+                                          
+    {
+    aNode.SetAccessTypesL(aAccTypes);
+    aNode.SetOccurenceL(aOccurrence);
+    aNode.SetScopeL(aScope);
+    aNode.SetDFFormatL(aFormat);
+    if(aFormat!=MSmlDmDDFObject::ENode)
+        {
+        aNode.AddDFTypeMimeTypeL(KNSmlMimeType);
+        }
+    aNode.SetDescriptionL(aDescription);
+    }
+
+
+// ------------------------------------------------------------------------------------------------
+// void CGlobalWLANAdapter::ExecuteBufferL( TBool aFinal )
+// Executes buffered commands
+// ------------------------------------------------------------------------------------------------
+void CGlobalWLANAdapter::ExecuteBufferL( TBool /*aFinal*/ )
+    {
+    
+    _DBG_FILE("CGlobalWLANAdapter::ExecuteBuffer(): begin");
+  
+  	// Store the given values into cenrep and commsdb and
+  	// read the required parameters from cenrep and commsdb
+  	TRAPD (err1, StoreCenRepParamsL());
+  	TRAPD (err2, StoreCommsDBParamsL());
+  	TRAPD (err3, ReadCenRepParamsL());
+  	TRAPD (err4, ReadCommsDBParamsL());
+  	
+  	// Init the member variables after updates
+  	InitMemberVariables();
+  	
+  	// If some of the operations failed, then leave
+  	User::LeaveIfError( err1 );
+  	User::LeaveIfError( err2 );
+  	User::LeaveIfError( err3 );
+  	User::LeaveIfError( err4 );
+  	
+    _DBG_FILE("CGlobalWLANAdapter::ExecuteBuffer(): End");
+    }
+
+
+// ------------------------------------------------------------------------------------------------
+// TBool CGlobalWLANAdapter::StoreCenRepParamsL( )
+// Stores the parameters to central repository
+// ------------------------------------------------------------------------------------------------
+void CGlobalWLANAdapter::StoreCenRepParamsL()
+	{
+	
+	_DBG_FILE("CGlobalWLANAdapter::StoreCenRepParams(): begin");
+
+ 	CRepository* repository = NULL;
+ 	CRepository* conSettRep = NULL;
+ 	TInt err = KErrNone;
+    
+
+	// Write KWlanInternetConnectivityTest
+    if ( iWriteSettings->internetConnectivityTestPresent )
+    	{
+    	_DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams() KWlanInternetConnectivityTest start " ); 
+    	// Open the cenrep for internet connectivity settings. This is the only global wlan parameter
+    	// from this cenrep
+        conSettRep = CRepository::NewL( KCRUidInternetConnectivitySettings );
+        
+        // There is no pointer to the repository, leave
+        if ( conSettRep == NULL )
+        	{
+        	User::LeaveIfError( KErrGeneral );
+        	}
+        
+        CleanupStack::PushL(conSettRep);
+        
+    	err = conSettRep->Set( KIctsTestPermission, static_cast<TInt>( iWriteSettings->internetConnectivityTest ) );
+    	_DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams() KWlanInternetConnectivityTest set to cenRep " ); 
+    	if( err == KErrNone ) 
+        	{ 
+        	_DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams() KWlanInternetConnectivityTest" ); 
+        	iCallBack->SetStatusL(iWriteStatuses->internetConnectivityTestStatus, CSmlDmAdapter::EOk);
+       	 	}
+       	 else
+       	 	{
+       	 	_DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams() KWlanInternetConnectivityTest failed " ); 
+       	 	iCallBack->SetStatusL(iWriteStatuses->internetConnectivityTestStatus, CSmlDmAdapter::EError);
+       	 	}
+    	CleanupStack::PopAndDestroy(conSettRep);
+       	}
+    
+    
+    // The rest of the parameters are stored to Wlan device settings cenRep
+    repository = CRepository::NewL( KCRUidWlanDeviceSettingsRegistryId );
+    
+    // There is no pointer to the repository, leave
+    if ( repository == NULL )
+    	{
+    	User::LeaveIfError( KErrGeneral );
+    	}
+    
+    CleanupStack::PushL(repository);
+    
+    if ( iWriteSettings->MTUPresent )
+    	{
+    	err = repository->Set( KWlanMTU, static_cast<TInt>( iWriteSettings->MTU ) );
+    		
+    	DBG_ARGS8(_S8("CGlobalWLANAdapter::StoreCenRepParams, MTU status - (%d)"), err );
+    	if( err == KErrNone  ) 
+        	{ 
+        	_DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams() MTU" ); 
+        	iCallBack->SetStatusL(iWriteStatuses->MTUStatus, CSmlDmAdapter::EOk);
+       	 	}
+       	 else
+       	 	{
+       	 	_DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams() MTU failed " ); 
+       	 	iCallBack->SetStatusL(iWriteStatuses->MTUStatus, CSmlDmAdapter::EError);
+       	 	}
+       	}
+
+    // Write KWlanScanRate
+    if ( iWriteSettings->scanRatePresent )
+    	{
+    	err = repository->Set( KWlanScanRate, static_cast<TInt>( iWriteSettings->scanRate ) );
+    		
+    	DBG_ARGS8(_S8("CGlobalWLANAdapter::StoreCenRepParams, scanrate status - (%d)"), err );
+    	if( err == KErrNone ) 
+        	{ 
+        	_DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams() WlanScanRate" ); 
+        	iCallBack->SetStatusL(iWriteStatuses->scanRateStatus, CSmlDmAdapter::EOk);
+       	 	}
+       	 else
+       	 	{
+       	 	_DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams() WlanScanRate failed " ); 
+       	 	iCallBack->SetStatusL(iWriteStatuses->scanRateStatus, CSmlDmAdapter::EError);
+       	 	}
+       	}
+
+    // Write KWlanRcpiTrigger
+   	if ( iWriteSettings->RCPITriggerPresent )
+    	{
+    	err = repository->Set( KWlanRcpiTrigger, static_cast<TInt>( iWriteSettings->RCPITrigger ) );
+    		
+    	if( err == KErrNone ) 
+        	{
+        	_DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams() KWlanRcpiTrigger" );
+    	    iCallBack->SetStatusL(iWriteStatuses->RCPITriggerStatus, CSmlDmAdapter::EOk);
+       	 	}
+       	 else
+       	 	{
+       	 	_DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams() KWlanRcpiTrigger failed" );
+       	 	iCallBack->SetStatusL(iWriteStatuses->RCPITriggerStatus, CSmlDmAdapter::EError);
+       	 	}
+    	}
+
+    // Write KWlanMinActiveChannelTime
+    if ( iWriteSettings->minActiveChannelTimePresent )
+    	{
+    	err = repository->Set( KWlanMinActiveChannelTime, static_cast<TInt>( iWriteSettings->minActiveChannelTime ) );
+    		
+    	if( err == KErrNone ) 
+        	{
+        	_DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams() KWlanMinActiveChannelTime" );
+        	iCallBack->SetStatusL(iWriteStatuses->minActiveChannelTimeStatus, CSmlDmAdapter::EOk);
+       	 	}
+       	 else
+       	 	{
+       	 	_DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams() KWlanMinActiveChannelTime failed" );
+       	 	iCallBack->SetStatusL(iWriteStatuses->minActiveChannelTimeStatus, CSmlDmAdapter::EError);
+       	 	}
+        }
+
+    // Write KWlanMaxActiveChannelTime
+    if ( iWriteSettings->maxActiveChannelTimePresent )
+    	{
+    	err = repository->Set( KWlanMaxActiveChannelTime, static_cast<TInt>( iWriteSettings->maxActiveChannelTime ) );
+    		
+    	if( err == KErrNone ) 
+        	{ 
+        	_DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams() KWlanMaxActiveChannelTime" );
+        	iCallBack->SetStatusL(iWriteStatuses->maxActiveChannelTimeStatus, CSmlDmAdapter::EOk);
+       	 	}
+       	 else
+       	 	{
+       	 	_DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams() KWlanMaxActiveChannelTime failed" );
+       	 	iCallBack->SetStatusL(iWriteStatuses->maxActiveChannelTimeStatus, CSmlDmAdapter::EError);
+       	 	}
+        }
+
+    // Write KWlanMaxTxMSDULifeTime
+    if ( iWriteSettings->maxTxMSDULifeTimePresent )
+    	{
+    	err = repository->Set( KWlanMaxTxMSDULifeTime, static_cast<TInt>( iWriteSettings->maxTxMSDULifeTime ) );
+    	
+    	if( err == KErrNone ) 
+        	{
+        	_DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams()KWlanMaxTxMSDULifeTime" );
+        	iCallBack->SetStatusL(iWriteStatuses->maxTxMSDULifeTimeStatus, CSmlDmAdapter::EOk);
+       	 	}
+       	 else
+       	 	{
+       	 	_DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams()KWlanMaxTxMSDULifeTime failed" );
+       	 	iCallBack->SetStatusL(iWriteStatuses->maxTxMSDULifeTimeStatus, CSmlDmAdapter::EError);
+       	 	}
+        }
+
+    // Write KWlanScanExpirationTimer
+    if ( iWriteSettings->scanExpirationTimerPresent )
+    	{
+    	err = repository->Set( KWlanScanExpirationTimer, static_cast<TInt>( iWriteSettings->scanExpirationTimer ) );
+    	
+    	if( err == KErrNone ) 
+        	{
+        	_DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams()KWlanScanExpirationTimer" );
+        	iCallBack->SetStatusL(iWriteStatuses->scanExpirationTimerStatus, CSmlDmAdapter::EOk);
+       	 	}
+       	 else
+       	 	{
+       	 	_DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams()KWlanScanExpirationTimer failed" );
+       	 	iCallBack->SetStatusL(iWriteStatuses->scanExpirationTimerStatus, CSmlDmAdapter::EError);
+       	 	}
+		}
+				
+    // Write KWlanUnloadDriverTimer
+    if ( iWriteSettings->unloadDriverTimerPresent )
+    	{
+    	err = repository->Set( KWlanUnloadDriverTimer, static_cast<TInt>( iWriteSettings->unloadDriverTimer ) );
+    	
+    	if( err == KErrNone ) 
+        	{
+        	_DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams()KWlanUnloadDriverTimer" );
+        	iCallBack->SetStatusL(iWriteStatuses->unloadDriverTimerStatus, CSmlDmAdapter::EOk);
+       	 	}
+       	 else
+       	 	{
+       	 	_DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams()KWlanUnloadDriverTimer failed" );
+       	 	iCallBack->SetStatusL(iWriteStatuses->unloadDriverTimerStatus, CSmlDmAdapter::EError);
+       	 	}
+        }
+
+    // Write KWlanRoamTimer
+    if ( iWriteSettings->roamTimerPresent )
+    	{
+    	err = repository->Set( KWlanRoamTimer, static_cast<TInt>( iWriteSettings->roamTimer ) );
+    	
+    	if( err == KErrNone) 
+        	{
+        	_DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams() KWlanRoamTimer" );
+        	iCallBack->SetStatusL(iWriteStatuses->roamTimerStatus, CSmlDmAdapter::EOk);
+       	 	}
+       	 else
+       	 	{
+       	 	_DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams() KWlanRoamTimer failed" );
+       	 	iCallBack->SetStatusL(iWriteStatuses->roamTimerStatus, CSmlDmAdapter::EError);
+       	 	}
+        }
+
+    // Write KWlanRcpiDifference
+    if ( iWriteSettings->RCPIDifferencePresent )
+    	{
+    	err = repository->Set( KWlanRcpiDifference, static_cast<TInt>( iWriteSettings->RCPIDifference ) );
+    	
+    	DBG_ARGS8(_S8("CGlobalWLANAdapter::StoreCenRepParams, rcpidifference status - (%d)"), err );
+    	if( err == KErrNone) 
+        	{ 
+        	_DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams() KWlanRcpiDifference" );
+        	iCallBack->SetStatusL(iWriteStatuses->RCPIDifferenceStatus, CSmlDmAdapter::EOk);
+       	 	}
+       	 else
+       	 	{
+       	 	_DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams() KWlanRcpiDifference failed" );
+       	 	iCallBack->SetStatusL(iWriteStatuses->RCPIDifferenceStatus, CSmlDmAdapter::EError);
+       	 	}
+        }
+
+    // Write KWlanConnRegainTimer
+    if ( iWriteSettings->connRegainTimerPresent )
+    	{
+    	err = repository->Set( KWlanConnRegainTimer, static_cast<TInt>( iWriteSettings->connRegainTimer ) );
+    	
+    	if( err == KErrNone ) 
+        	{
+        	_DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams() KWlanConnRegainTimer" );
+        	iCallBack->SetStatusL(iWriteStatuses->connRegainTimerStatus, CSmlDmAdapter::EOk);
+       	 	}
+       	else
+       	 	{
+       	 	_DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams() KWlanConnRegainTimer failed" );
+       	 	iCallBack->SetStatusL(iWriteStatuses->connRegainTimerStatus, CSmlDmAdapter::EError);
+       	 	}
+		}
+				
+    // Write KWlanMaxTriesToFindNw
+   	if ( iWriteSettings->maxTriesToFindNwPresent )
+    	{
+    	err = repository->Set( KWlanMaxTriesToFindNw, static_cast<TInt>( iWriteSettings->maxTriesToFindNw ) );
+    	
+    	if( err == KErrNone ) 
+        	{
+        	_DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams() KWlanMaxTriesToFindNw ");
+        	iCallBack->SetStatusL(iWriteStatuses->maxTriesToFindNwStatus, CSmlDmAdapter::EOk);
+       	 	}
+       	 else
+       	 	{
+       	 	_DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams() KWlanMaxTriesToFindNw failed");
+       	 	iCallBack->SetStatusL(iWriteStatuses->maxTriesToFindNwStatus, CSmlDmAdapter::EError);
+       	 	}
+        }
+
+    // Write KWlanDelayBetweenFindNw
+    if ( iWriteSettings->delayBetweenFindNwPresent )
+    	{
+    	err = repository->Set( KWlanDelayBetweenFindNw, static_cast<TInt>( iWriteSettings->delayBetweenFindNw ) );
+    	
+    	if( err == KErrNone ) 
+        	{
+        	_DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams() KWlanDelayBetweenFindNw" );
+        	iCallBack->SetStatusL(iWriteStatuses->delayBetweenFindNwStatus, CSmlDmAdapter::EOk);
+       	 	}
+       	 else
+       	 	{
+       	 	_DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams() KWlanDelayBetweenFindNw failed" );
+       	 	iCallBack->SetStatusL(iWriteStatuses->delayBetweenFindNwStatus, CSmlDmAdapter::EError);
+       	 	}
+		}
+				
+    // Write KWlanMinPassiveChannelTime
+    if ( iWriteSettings->minPassiveChannelTimePresent )
+    	{
+    	err = repository->Set( KWlanMinPassiveChannelTime, static_cast<TInt>( iWriteSettings->minPassiveChannelTime ) );
+    	
+    	if( err == KErrNone ) 
+        	{
+        	_DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams() KWlanMinPassiveChannelTime" );
+        	iCallBack->SetStatusL(iWriteStatuses->minPassiveChannelTimeStatus, CSmlDmAdapter::EOk);
+       	 	}
+       	 else
+       	 	{
+       	 	_DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams() KWlanMinPassiveChannelTime failed" );
+       	 	iCallBack->SetStatusL(iWriteStatuses->minPassiveChannelTimeStatus, CSmlDmAdapter::EError);
+       	 	}
+        }
+
+    // Write KWlanMaxPassiveChannelTime
+    if ( iWriteSettings->maxPassiveChannelTimePresent )
+    	{
+    	err = repository->Set( KWlanMaxPassiveChannelTime, static_cast<TInt>( iWriteSettings->maxPassiveChannelTime ) );
+    	
+    	if( err == KErrNone ) 
+        	{
+        	_DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams() KWlanMaxPassiveChannelTime" );
+        	iCallBack->SetStatusL(iWriteStatuses->maxPassiveChannelTimeStatus, CSmlDmAdapter::EOk);
+       	 	}
+       	else
+       	 	{
+       	 	_DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams() KWlanMaxPassiveChannelTime failed" );
+       	 	iCallBack->SetStatusL(iWriteStatuses->maxPassiveChannelTimeStatus, CSmlDmAdapter::EError);
+       	 	}
+		}
+				
+    // Write KWlanMaxApFailureCount
+    if ( iWriteSettings->maxApFailureCountPresent )
+    	{
+    	err = repository->Set( KWlanMaxApFailureCount, static_cast<TInt>( iWriteSettings->maxApFailureCount ) );
+    	
+    	if( err == KErrNone ) 
+        	{
+        	_DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams() KWlanMaxApFailureCount" );
+        	iCallBack->SetStatusL(iWriteStatuses->maxApFailureCountStatus, CSmlDmAdapter::EOk);
+       	 	}
+        else
+       	 	{
+       	 	_DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams() KWlanMaxApFailureCount failed" );
+       	 	iCallBack->SetStatusL(iWriteStatuses->maxApFailureCountStatus, CSmlDmAdapter::EError);
+       	 	}
+        }
+
+    // Write KWlanLongBeaconFindCount
+    if ( iWriteSettings->longBeaconFindCountPresent )
+    	{
+    	err = repository->Set( KWlanLongBeaconFindCount, static_cast<TInt>( iWriteSettings->longBeaconFindCount ) );
+    	
+    	if( err == KErrNone ) 
+      		{
+        	_DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams() KWlanLongBeaconFindCount" );
+        	iCallBack->SetStatusL(iWriteStatuses->longBeaconFindCountStatus, CSmlDmAdapter::EOk);
+       	 	}
+       	else
+       	 	{
+       	 	_DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams() KWlanLongBeaconFindCount failed" );
+       	 	iCallBack->SetStatusL(iWriteStatuses->longBeaconFindCountStatus, CSmlDmAdapter::EError);
+       	 	}
+		}
+				
+    // Write KWlanQosNullFrameInterval
+    if ( iWriteSettings->qosNullFrameIntervalPresent )
+    	{
+    	err = repository->Set( KWlanQosNullFrameInterval, static_cast<TInt>( iWriteSettings->qosNullFrameInterval ) );
+    	
+    	if( err == KErrNone ) 
+        	{
+        	_DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams() KWlanQosNullFrameInterval" );
+        	iCallBack->SetStatusL(iWriteStatuses->qosNullFrameIntervalStatus, CSmlDmAdapter::EOk);
+       	 	}
+       	else
+       	 	{
+       	 	_DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams() KWlanQosNullFrameInterval failed" );
+       	 	iCallBack->SetStatusL(iWriteStatuses->qosNullFrameIntervalStatus, CSmlDmAdapter::EError);
+       	 	}
+        }
+
+    // Write KWlanQosNullFrameTimeout
+    if ( iWriteSettings->qosNullFrameTimeoutPresent )
+    	{
+    	err = repository->Set( KWlanQosNullFrameTimeout, static_cast<TInt>( iWriteSettings->qosNullFrameTimeout ) );
+    	
+    	if( err == KErrNone ) 
+        	{
+        	_DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams() KWlanQosNullFrameTimeout" );
+        	iCallBack->SetStatusL(iWriteStatuses->qosNullFrameTimeoutStatus, CSmlDmAdapter::EOk);
+       	 	}
+       	else
+       	 	{
+       	 	_DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams() KWlanQosNullFrameTimeout failed" );
+       	 	iCallBack->SetStatusL(iWriteStatuses->qosNullFrameTimeoutStatus, CSmlDmAdapter::EError);
+       	 	}
+       	}
+
+    // Cleanup
+   	CleanupStack::PopAndDestroy(repository);
+    _DBG_FILE("CGlobalWLANAdapter::StoreCenRepParams(): end");
+    return;
+	}
+	
+// ------------------------------------------------------------------------------------------------
+// void CGlobalWLANAdapter::StoreCommsDBParams( )
+// Stores the parameters to central repository
+// ------------------------------------------------------------------------------------------------
+void CGlobalWLANAdapter::StoreCommsDBParamsL()
+	{
+	
+	_DBG_FILE("CGlobalWLANAdapter::StoreCommsDBParams(): begin");
+	
+	CCommsDatabase* db = CCommsDatabase::NewL();
+	CleanupStack::PushL(db);
+			
+	// User defined WLAN device settings table from Comms database
+    CCommsDbTableView* usrTable;
+    
+    // Open user settings.
+    usrTable = db->OpenViewMatchingUintLC( TPtrC(WLAN_DEVICE_SETTINGS),
+											TPtrC(WLAN_DEVICE_SETTINGS_TYPE),
+											KWlanUserSettings );
+		
+	// if record did not exist, then it is created.
+    if ( usrTable->GotoFirstRecord() != KErrNone )
+        {
+        _DBG_FILE("CGlobalWLANAdapter::StoreCommsDBParams(): Record creation");
+    	TUint32 id;
+    	User::LeaveIfError( usrTable->InsertRecord( id ) );
+    
+    	usrTable->WriteUintL( TPtrC(WLAN_DEVICE_SETTINGS_TYPE), KWlanUserSettings );  
+    	//usrTable->WriteUintL( TPtrC(WLAN_TABLE_VERSION), KWlanDeviceSettingsTableVersion );
+    	User::LeaveIfError( usrTable->PutRecordChanges() ); // End and save changes.
+        }
+			
+	// Write CommsDat settings
+    User::LeaveIfError( usrTable->UpdateRecord() ); // Begin changes.
+	
+	// Check which parameters are present in the structure, store them into commsdb and
+	// update the status to OK/Error accordingly	
+	if ( iWriteSettings->backgroundScanIntervalPresent )
+		{
+		_DBG_FILE("CGlobalWLANAdapter::StoreCommsDBParams(): write KBgScanInterval");
+    	TRAPD( err, usrTable->WriteUintL( TPtrC(WLAN_BG_SCAN_INTERVAL), iWriteSettings->backgroundScanInterval ));
+    	if ( err == KErrNone)
+    		{
+    		iCallBack->SetStatusL(iWriteStatuses->backgroundScanIntervalStatus, CSmlDmAdapter::EOk);
+    		}
+    	else
+    		{
+    		iCallBack->SetStatusL(iWriteStatuses->backgroundScanIntervalStatus, CSmlDmAdapter::EError);	
+    		}
+		}
+		
+    if ( iWriteSettings->useDefaultSettingsPresent )
+    	{
+    	_DBG_FILE("CGlobalWLANAdapter::StoreCommsDBParams(): write KUseDefaultSettings");
+    	TRAPD( err, usrTable->WriteBoolL( TPtrC(WLAN_USE_DEFAULT_SETTINGS), iWriteSettings->useDefaultSettings ));
+    	if ( err == KErrNone)
+    		{
+    		iCallBack->SetStatusL(iWriteStatuses->useDefaultSettingsStatus, CSmlDmAdapter::EOk);
+    		}
+    	else
+    		{
+    		iCallBack->SetStatusL(iWriteStatuses->useDefaultSettingsStatus, CSmlDmAdapter::EError);	
+    		}
+		}
+		
+    if ( iWriteSettings->longRetryLimitPresent )
+   		{
+   		_DBG_FILE("CGlobalWLANAdapter::StoreCommsDBParams(): write KWlanLongRetry");
+    	TRAPD( err, usrTable->WriteUintL( TPtrC(WLAN_LONG_RETRY), iWriteSettings->longRetryLimit ));
+    	if ( err == KErrNone)
+    		{
+    		iCallBack->SetStatusL(iWriteStatuses->longRetryLimitStatus, CSmlDmAdapter::EOk);
+    		}
+    	else
+    		{
+    		iCallBack->SetStatusL(iWriteStatuses->longRetryLimitStatus, CSmlDmAdapter::EError);	
+    		}
+		}
+		
+    if ( iWriteSettings->shortRetryLimitPresent )
+    	{
+    	_DBG_FILE("CGlobalWLANAdapter::StoreCommsDBParams(): write KWlanShortRetry");
+    	TRAPD( err, usrTable->WriteUintL( TPtrC(WLAN_SHORT_RETRY), iWriteSettings->shortRetryLimit ));
+    	if ( err == KErrNone)
+    		{
+    		iCallBack->SetStatusL(iWriteStatuses->shortRetryLimitStatus, CSmlDmAdapter::EOk);
+    		}
+    	else
+    		{
+    		iCallBack->SetStatusL(iWriteStatuses->shortRetryLimitStatus, CSmlDmAdapter::EError);	
+    		}
+		}
+		
+    if ( iWriteSettings->RTSThresholdPresent )
+   		{
+   		_DBG_FILE("CGlobalWLANAdapter::StoreCommsDBParams(): write KWlanRTSThreshold");
+    	TRAPD( err, usrTable->WriteUintL( TPtrC(WLAN_RTS_THRESHOLD), iWriteSettings->RTSThreshold ));
+    	if ( err == KErrNone)
+    		{
+    		iCallBack->SetStatusL(iWriteStatuses->RTSThresholdStatus, CSmlDmAdapter::EOk);
+    		}
+    	else
+    		{
+    		iCallBack->SetStatusL(iWriteStatuses->RTSThresholdStatus, CSmlDmAdapter::EError);	
+    		}
+		}
+		
+    if ( iWriteSettings->TXPowerLevelPresent )
+    	{
+    	_DBG_FILE("CGlobalWLANAdapter::StoreCommsDBParams(): write KWlanTxPowerLevel");
+    	TRAPD( err, usrTable->WriteUintL( TPtrC(NU_WLAN_TX_POWER_LEVEL), iWriteSettings->TXPowerLevel ));
+    	if ( err == KErrNone)
+    		{
+    		iCallBack->SetStatusL(iWriteStatuses->TXPowerLevelStatus, CSmlDmAdapter::EOk);
+    		}
+    	else
+    		{
+    		iCallBack->SetStatusL(iWriteStatuses->TXPowerLevelStatus, CSmlDmAdapter::EError);	
+    		}
+		}
+		
+    if ( iWriteSettings->allowRadioMeasurementsPresent )
+    	{
+    	_DBG_FILE("CGlobalWLANAdapter::StoreCommsDBParams(): write KWlanAllowRadioMeasurements");
+    	TRAPD( err, usrTable->WriteBoolL( TPtrC(WLAN_ALLOW_RADIO_MEASUREMENTS), iWriteSettings->allowRadioMeasurements ));
+        if ( err == KErrNone)
+    		{
+    		iCallBack->SetStatusL(iWriteStatuses->allowRadioMeasurementsStatus, CSmlDmAdapter::EOk);
+    		}
+    	else
+    		{
+    		iCallBack->SetStatusL(iWriteStatuses->allowRadioMeasurementsStatus, CSmlDmAdapter::EError);	
+    		}
+		}
+    
+    if ( iWriteSettings->powerSavingPresent )
+    	{
+    	_DBG_FILE("CGlobalWLANAdapter::StoreCommsDBParams(): write KWlanPowerSaving");
+    	TRAPD( err, usrTable->WriteBoolL( TPtrC(WLAN_POWER_MODE), iWriteSettings->powerSaving ));
+        if ( err == KErrNone)
+    		{
+    		iCallBack->SetStatusL(iWriteStatuses->powerSavingStatus, CSmlDmAdapter::EOk);
+    		}
+    	else
+    		{
+    		iCallBack->SetStatusL(iWriteStatuses->powerSavingStatus, CSmlDmAdapter::EError);	
+    		}
+		}
+    
+    _DBG_FILE("CGlobalWLANAdapter::StoreCommsDBParams(): end");
+    User::LeaveIfError( usrTable->PutRecordChanges() ); // End and save changes.
+    CleanupStack::PopAndDestroy( usrTable );
+    CleanupStack::PopAndDestroy( db );
+    return;
+    
+	}
+			
+
+// ------------------------------------------------------------------------------------------------
+// void CGlobalWLANAdapter::ReadCenRepParams( )
+// Reads parameters from central repository
+// ------------------------------------------------------------------------------------------------
+void CGlobalWLANAdapter::ReadCenRepParamsL()
+	{
+		
+	_DBG_FILE("CGlobalWLANAdapter::ReadCenRepParams(): begin");
+	
+	TInt err = KErrNone;
+    CRepository* repository = NULL;
+    TBuf8<KInputMaxLength> value;
+    TBuf8<KTypeMaxLength> type;
+    TInt temp = 0;
+     
+    // InternetConnectivityTest parameter is in a different cenRep than the other parameters
+    // Write KWlanScanRate
+    if ( iReadSettings->internetConnectivityTestPresent )
+    	{
+    	// This parameter is in the internet connectivity settings cenRep, open the repository
+        repository = CRepository::NewL( KCRUidInternetConnectivitySettings );
+        CleanupStack::PushL(repository);
+      
+    	value.Zero();
+    	type.Zero();
+    	
+    	// if opening the cenrtral repository failed, then leave this function
+    	if ( repository == NULL )
+    		{
+    		User::LeaveIfError( KErrGeneral );
+    		}
+    	
+    	err = repository->Get( KIctsTestPermission, temp );    	
+       	value.Num(temp);
+       	type.Append( KNSmlWLanInternetConnectivityTest );
+       	UpdateStatusAndResultL( iReadStatuses->internetConnectivityTestResult, iReadStatuses->internetConnectivityTestStatus, 
+       					value, type, err  );
+       	
+       	CleanupStack::PopAndDestroy(repository);
+    	}
+    
+    // The rest of the parameters are in WlanDeviceSettings cenRep
+    repository = CRepository::NewL( KCRUidWlanDeviceSettingsRegistryId );
+    CleanupStack::PushL(repository);
+    
+    // if opening the cenrtral repository failed, then leave this function
+	if ( repository == NULL )
+		{
+		User::LeaveIfError( KErrGeneral );
+		}
+    
+    if ( iReadSettings->MTUPresent )
+    	{
+    	value.Zero();
+    	type.Zero();
+    	err = repository->Get( KWlanMTU, temp );
+       	value.Num(temp);
+       	type.Append( KNSmlWLanMTU );
+       	UpdateStatusAndResultL( iReadStatuses->MTUResult, iReadStatuses->MTUStatus, 
+       					value, type, err  );
+    	}
+    
+    // Write KWlanScanRate
+    if ( iReadSettings->scanRatePresent )
+    	{
+    	value.Zero();
+    	type.Zero();
+    	err = repository->Get( KWlanScanRate, temp );
+       	value.Num(temp);
+       	type.Append( KNSmlWLanScanRate );
+       	UpdateStatusAndResultL( iReadStatuses->scanRateResult, iReadStatuses->scanRateStatus, 
+       					value, type, err  );
+    	}
+
+    // Write KWlanRcpiTrigger
+   	if ( iReadSettings->RCPITriggerPresent )
+    	{
+    	value.Zero();
+    	type.Zero();
+    	err = repository->Get( KWlanRcpiTrigger, temp );
+       	value.Num(temp);
+       	type.Append( KNSmlWLanRCPITrigger );
+       	UpdateStatusAndResultL( iReadStatuses->RCPITriggerResult, iReadStatuses->RCPITriggerStatus, 
+       					value, type, err  );
+       	}
+
+    // Write KWlanMinActiveChannelTime
+    if ( iReadSettings->minActiveChannelTimePresent )
+   	 	{
+   	 	value.Zero();
+   	 	type.Zero();
+   	 	err = repository->Get( KWlanMinActiveChannelTime, temp );
+       	value.Num(temp);
+       	type.Append( KNSmlWLanMinActiveChannelTime );
+       	UpdateStatusAndResultL( iReadStatuses->minActiveChannelTimeResult, iReadStatuses->minActiveChannelTimeStatus, 
+       					value, type, err  );
+       	}
+       	
+    // Write KWlanMaxActiveChannelTime
+    if ( iReadSettings->maxActiveChannelTimePresent )
+   	 	{
+   	 	value.Zero();
+   	 	type.Zero();
+   	 	err = repository->Get( KWlanMaxActiveChannelTime, temp );
+		value.Num(temp);
+		type.Append( KNSmlWLanMaxActiveChannelTime );
+       	UpdateStatusAndResultL( iReadStatuses->maxActiveChannelTimeResult, iReadStatuses->maxActiveChannelTimeStatus, 
+       					value, type, err  );
+       	}
+
+    // Write KWlanMaxTxMSDULifeTime
+    if ( iReadSettings->maxTxMSDULifeTimePresent )
+   	 	{
+   	 	value.Zero();
+   	 	type.Zero();
+   	 	err = repository->Get( KWlanMaxTxMSDULifeTime, temp );
+		value.Num(temp);
+		type.Append( KNSmlWLanMaxTxMSDULifeTime );
+       	UpdateStatusAndResultL( iReadStatuses->maxTxMSDULifeTimeResult, iReadStatuses->maxTxMSDULifeTimeStatus, 
+       					value, type, err  );
+       	}
+
+    // Write KWlanScanExpirationTimer
+    if ( iReadSettings->scanExpirationTimerPresent )
+   	 	{
+   	 	value.Zero();
+   	 	type.Zero();
+   	 	err = repository->Get( KWlanScanExpirationTimer, temp );
+		value.Num(temp);
+		type.Append( KNSmlWLanScanExpirationTimer );
+       	UpdateStatusAndResultL( iReadStatuses->scanExpirationTimerResult, iReadStatuses->scanExpirationTimerStatus, 
+       					value, type, err  );
+       	}
+				
+    // Write KWlanUnloadDriverTimer
+    if ( iReadSettings->unloadDriverTimerPresent )
+   	 	{
+   	 	value.Zero();
+   	 	type.Zero();
+   	 	err = repository->Get( KWlanUnloadDriverTimer, temp );
+		value.Num(temp);
+		type.Append( KNSmlWLanUnloadDriverTimer );
+       	UpdateStatusAndResultL( iReadStatuses->unloadDriverTimerResult, iReadStatuses->unloadDriverTimerStatus, 
+       					value, type, err  );
+       	}
+
+    // Write KWlanRoamTimer
+    if ( iReadSettings->roamTimerPresent )
+    	{
+    	value.Zero();
+		type.Zero();
+    	err = repository->Get( KWlanRoamTimer, temp );
+    	value.Num(temp);
+		type.Append( KNSmlWLanRoamTimer );
+       	UpdateStatusAndResultL( iReadStatuses->roamTimerResult, iReadStatuses->roamTimerStatus, 
+       					value, type, err  );
+       	}
+
+    // Write KWlanRcpiDifference
+    if ( iReadSettings->RCPIDifferencePresent )
+    	{
+    	value.Zero();
+    	type.Zero();
+    	type.Append( KNSmlWLanRCPIDifference );
+    	err = repository->Get( KWlanRcpiDifference, temp );
+		value.Num(temp); 	
+       	UpdateStatusAndResultL( iReadStatuses->RCPIDifferenceResult, iReadStatuses->RCPIDifferenceStatus, 
+       					value, type, err  );
+       	}
+
+    // Write KWlanConnRegainTimer
+    if ( iReadSettings->connRegainTimerPresent )
+    	{
+    	value.Zero();
+    	type.Zero();
+    	type.Append( KNSmlWLanConnRegainTimer );
+    	err = repository->Get( KWlanConnRegainTimer, temp );
+		value.Num(temp);
+       	UpdateStatusAndResultL( iReadStatuses->connRegainTimerResult, iReadStatuses->connRegainTimerStatus, 
+       					value, type, err  );
+       	}
+				
+    // Write KWlanMaxTriesToFindNw
+   	if ( iReadSettings->maxTriesToFindNwPresent )
+    	{
+    	value.Zero();
+    	type.Zero();
+    	err = repository->Get( KWlanMaxTriesToFindNw, temp );
+		value.Num(temp);
+		type.Append( KNSmlWLanMaxTriesToFindNw );
+       	UpdateStatusAndResultL( iReadStatuses->maxTriesToFindNwResult, iReadStatuses->maxTriesToFindNwStatus, 
+       					value, type, err  );
+       	}
+
+    // Write KWlanDelayBetweenFindNw
+    if ( iReadSettings->delayBetweenFindNwPresent )
+    	{
+    	value.Zero();
+    	type.Zero();
+    	err = repository->Get( KWlanDelayBetweenFindNw, temp );
+		value.Num(temp);
+		type.Append( KNSmlWLanDelayBetweenFindNw );
+       	UpdateStatusAndResultL( iReadStatuses->delayBetweenFindNwResult, iReadStatuses->delayBetweenFindNwStatus, 
+       					value, type, err  );
+       	}
+				
+    // Write KWlanMinPassiveChannelTime
+    if ( iReadSettings->minPassiveChannelTimePresent )
+    	{
+    	value.Zero();
+    	type.Zero();
+    	err = repository->Get( KWlanMinPassiveChannelTime, temp );
+		value.Num(temp);
+		type.Append( KNSmlWLanRCPITrigger );
+       	UpdateStatusAndResultL( iReadStatuses->minPassiveChannelTimeResult, iReadStatuses->minPassiveChannelTimeStatus, 
+       					value, type, err  );
+       	}
+
+    // Write KWlanMaxPassiveChannelTime
+    if ( iReadSettings->maxPassiveChannelTimePresent )
+    	{
+    	value.Zero();
+    	type.Zero();
+    	err = repository->Get( KWlanMaxPassiveChannelTime, temp );
+		value.Num(temp);
+		type.Append( KNSmlWLanMinPassiveChannelTime );
+       	UpdateStatusAndResultL( iReadStatuses->maxPassiveChannelTimeResult, iReadStatuses->maxPassiveChannelTimeStatus, 
+       					value, type, err  );
+       	}
+       			
+    // Write KWlanMaxApFailureCount
+    if ( iReadSettings->maxApFailureCountPresent )
+    	{
+    	value.Zero();
+    	type.Zero();
+    	err = repository->Get( KWlanMaxApFailureCount, temp );
+		value.Num(temp);
+		type.Append( KNSmlWLanMaxApFailureCount );
+       	UpdateStatusAndResultL( iReadStatuses->maxApFailureCountResult, iReadStatuses->maxApFailureCountStatus, 
+       					value, type, err  );
+       	}
+
+    // Write KWlanLongBeaconFindCount
+    if ( iReadSettings->longBeaconFindCountPresent )
+    	{
+    	value.Zero();
+    	type.Zero();
+    	err = repository->Get( KWlanLongBeaconFindCount, temp );
+		value.Num(temp);
+		type.Append( KNSmlWLanLongBeaconFindCount );
+       	UpdateStatusAndResultL( iReadStatuses->longBeaconFindCountResult, iReadStatuses->longBeaconFindCountStatus, 
+       					value, type, err  );
+       	}
+				
+    // Write KWlanQosNullFrameInterval
+    if ( iReadSettings->qosNullFrameIntervalPresent )
+    	{
+    	value.Zero();
+    	type.Zero();
+    	err = repository->Get( KWlanQosNullFrameInterval, temp );
+		value.Num(temp);
+		type.Append( KNSmlWLanQosNullFrameInterval );
+       	UpdateStatusAndResultL( iReadStatuses->qosNullFrameIntervalResult, iReadStatuses->qosNullFrameIntervalStatus, 
+       					value, type, err  );
+       	}
+
+    // Write KWlanQosNullFrameTimeout
+    if ( iReadSettings->qosNullFrameTimeoutPresent )
+    	{
+    	value.Zero();
+    	type.Zero();
+    	err = repository->Get( KWlanQosNullFrameTimeout, temp );
+		value.Num(temp);
+		type.Append( KNSmlWLanQosNullFrameTimeout );
+       	UpdateStatusAndResultL( iReadStatuses->qosNullFrameTimeoutResult, iReadStatuses->qosNullFrameTimeoutStatus, 
+       					value, type, err  );
+       	}
+
+    // Cleanup
+    CleanupStack::PopAndDestroy(repository);
+    _DBG_FILE("CGlobalWLANAdapter::ReadCenRepParams(): end"); 
+    return;
+	
+	}
+
+// ------------------------------------------------------------------------------------------------
+// void CGlobalWLANAdapter::UpdateStatusAndResultL( )
+// Reads parameters from cenrep and updates result/status
+// ------------------------------------------------------------------------------------------------
+void CGlobalWLANAdapter::UpdateStatusAndResultL( TInt aResult, TInt aStatus, TDesC8& aValue, TDesC8& aType, TInt aStoreErr )
+	{
+	
+	_DBG_FILE("CGlobalWLANAdapter::UpdateStatusAndResultL(): begin");
+
+	CBufBase *lObject = CBufFlat::NewL(KInputMaxLength);
+    CleanupStack::PushL(lObject);
+
+    // If reading went ok, then we can set the results and statuses
+    if ( aStoreErr == KErrNone )
+    	{
+    	lObject->InsertL(0, aValue);
+    	iCallBack->SetResultsL( aResult,*lObject,aType );
+    	iCallBack->SetStatusL( aStatus, CSmlDmAdapter::EOk);
+    	}
+    else
+    	{
+    	iCallBack->SetStatusL( aStatus, CSmlDmAdapter::EError );
+    	}
+    
+    _DBG_FILE("CGlobalWLANAdapter::UpdateStatusAndResultL(): end");
+    CleanupStack::PopAndDestroy(lObject);
+    return;
+   	}
+
+// ------------------------------------------------------------------------------------------------
+// void CGlobalWLANAdapter::ReadCommsDBParams( )
+// Reads parameters from commsDB
+// ------------------------------------------------------------------------------------------------
+void CGlobalWLANAdapter::ReadCommsDBParamsL()
+	{
+	_DBG_FILE("CGlobalWLANAdapter::ReadCommsDBParams() begin" );  
+   
+  	CCommsDatabase* db = CCommsDatabase::NewL();
+  	CleanupStack::PushL(db);
+			
+	// User defined WLAN device settings table from Comms database
+    CCommsDbTableView* usrTable;
+    
+    // Open user settings.
+    usrTable = db->OpenViewMatchingUintLC( TPtrC(WLAN_DEVICE_SETTINGS),
+    										TPtrC(WLAN_DEVICE_SETTINGS_TYPE),
+    										KWlanUserSettings );
+
+    TUint32 intVal;
+    TBool boolVal = EFalse;
+    TBuf8<KInputMaxLength> value;
+    TBuf8<KTypeMaxLength> type;
+    TInt err = KErrNone;
+    TInt readErr = KErrNone;
+    _LIT8(KTrue,"True");
+    _LIT8(KFalse,"False");
+		
+	// if record did not exist, then we don't do anything
+    if ( usrTable == NULL )
+    	readErr = KErrGeneral;
+   	else
+   		readErr = usrTable->GotoFirstRecord();
+
+    // Check whether parameter was requested to be fetched
+   	if ( iReadSettings->backgroundScanIntervalPresent )
+   		{
+   		// The reading is done if the commdb record was opened successfully, otherwise the err
+   		// is updated so that the ReadAndSetStatus function can update thet status correctly
+   		if ( readErr == KErrNone )
+   			{
+    		TRAP( err, usrTable->ReadUintL( TPtrC(WLAN_BG_SCAN_INTERVAL), intVal ));
+   			}
+    	else
+    		{
+            err=readErr;
+    		}
+   		
+   		value.Zero();
+   		type.Zero();
+    	value.Num(intVal); 
+    	type.Append( KNSmlWLanBackgroundScanInterval );
+    	UpdateStatusAndResultL( iReadStatuses->backgroundScanIntervalResult, iReadStatuses->backgroundScanIntervalStatus, 
+       					value, type, err );
+   		}
+ 
+    if ( iReadSettings->useDefaultSettingsPresent )
+    	{
+   		if ( readErr == KErrNone )
+   			{
+    		TRAP( err, usrTable->ReadBoolL( TPtrC(WLAN_USE_DEFAULT_SETTINGS), boolVal ));
+   			}
+    	else
+    		{
+            err=readErr;
+    		}
+    	
+		value.Zero();
+		type.Zero();
+    	if ( boolVal == 0 )
+    		value.Copy(KFalse);
+    	else
+    		value.Copy(KTrue);
+    	
+    	type.Append( KNSmlWLanUseDefaultSettings );
+    	_DBG_FILE("CGlobalWLANAdapter::ReadCommsDBParams() go set status" );
+    	UpdateStatusAndResultL( iReadStatuses->useDefaultSettingsResult, iReadStatuses->useDefaultSettingsStatus, 
+       					value, type, err );
+    	}
+    
+    if ( iReadSettings->longRetryLimitPresent )
+    	{
+    	if ( readErr == KErrNone )
+    		{
+    		TRAP( err, usrTable->ReadUintL( TPtrC(WLAN_LONG_RETRY), intVal ));
+    		}
+   		else
+   			{
+   			err = readErr;
+   			}
+    	
+    	value.Zero();
+    	value.Num(intVal);
+    	type.Zero();
+    	type.Append( KNSmlWLanLongRetryLimit );
+    	UpdateStatusAndResultL( iReadStatuses->longRetryLimitResult, iReadStatuses->longRetryLimitStatus, 
+       					value, type, err );
+    	}
+    
+    if ( iReadSettings->shortRetryLimitPresent )
+    	{
+    	if ( readErr == KErrNone )
+    		{
+    		TRAP( err, usrTable->ReadUintL( TPtrC(WLAN_SHORT_RETRY), intVal ));
+    		}
+   		else
+   			{
+   			err = readErr;
+   			}
+    	
+    	value.Zero();
+    	type.Zero();
+    	value.Num(intVal);
+    	type.Append( KNSmlWLanShortRetryLimit );
+    	UpdateStatusAndResultL( iReadStatuses->shortRetryLimitResult, iReadStatuses->shortRetryLimitStatus, 
+       					value, type, err );
+    	}
+    	
+    if ( iReadSettings->RTSThresholdPresent )
+    	{
+    	if ( readErr == KErrNone )
+    		{
+    		TRAP( err, usrTable->ReadUintL( TPtrC(WLAN_RTS_THRESHOLD), intVal ));
+    		}
+   		else
+   			{
+   			err = readErr;
+   			}
+    	
+    	value.Zero();
+    	type.Zero();
+    	value.Num(intVal);
+    	type.Append( KNSmlWLanRTSThreshold );
+    	UpdateStatusAndResultL( iReadStatuses->RTSThresholdResult, iReadStatuses->RTSThresholdStatus, 
+       					value, type, err );
+    	}
+    
+    if ( iReadSettings->TXPowerLevelPresent )
+    	{
+		if ( readErr == KErrNone )
+			{
+    		TRAP( err, usrTable->ReadUintL( TPtrC(NU_WLAN_TX_POWER_LEVEL), intVal ));
+			}
+   		else
+   			{
+   			err = readErr;
+   			}
+		
+		value.Zero();
+		type.Zero();
+    	value.Num(intVal);
+    	type.Append( KNSmlWLanTXPowerLevel );
+    	UpdateStatusAndResultL( iReadStatuses->TXPowerLevelResult, iReadStatuses->TXPowerLevelStatus, 
+       					value, type, err );
+    	}
+    
+    if ( iReadSettings->allowRadioMeasurementsPresent )
+    	{
+		if ( readErr == KErrNone )
+			{
+    		TRAP( err, usrTable->ReadBoolL( TPtrC(WLAN_ALLOW_RADIO_MEASUREMENTS), boolVal ));
+			}
+   		else
+   			{
+   			err = readErr;
+   			}
+		
+		value.Zero();
+		type.Zero();
+    	if ( boolVal )
+    		value.Copy(_L8("True"));
+    	else
+    		value.Copy(_L8("False"));
+    	
+    	type.Append( KNSmlWLanAllowRadioMeasurements );
+    	UpdateStatusAndResultL( iReadStatuses->allowRadioMeasurementsResult, iReadStatuses->allowRadioMeasurementsStatus, 
+       					value, type, err );
+    	}
+    
+    if ( iReadSettings->powerSavingPresent )
+    	{
+		if ( readErr == KErrNone )
+    		{
+    		TRAP( err, usrTable->ReadBoolL( TPtrC(WLAN_POWER_MODE), boolVal ));
+    		}
+   		else
+   			{
+   			err = readErr;
+   			}
+		
+		value.Zero();
+		type.Zero();
+    	if ( boolVal )
+    		value.Copy(_L8("True"));
+    	else
+    		value.Copy(_L8("False"));
+    	
+    	type.Append( KNSmlWLanPowerSaving );
+    	UpdateStatusAndResultL( iReadStatuses->powerSavingResult, iReadStatuses->powerSavingStatus, 
+       					value, type, err );
+    	}
+
+	CleanupStack::PopAndDestroy( usrTable );
+    CleanupStack::PopAndDestroy( db );
+	_DBG_FILE("CGlobalWLANAdapter::ReadCommsDBParams() end" );  
+	return;
+	}
+
+
+
+// ------------------------------------------------------------------------------------------------
+// TInt CGlobalWLANAdapter::NumOfUriSegs( const TDesC8& aUri )
+// Return count of URI segments of aUri
+// ------------------------------------------------------------------------------------------------
+TInt CGlobalWLANAdapter::NumOfUriSegs( const TDesC8& aUri )
+    {
+    _DBG_FILE("CGlobalWLANAdapter::NumOfUriSegs(): begin");
+
+    TInt count = 1;
+    for( TInt i=0; i<aUri.Length(); i++ )
+        {
+        if( aUri[i] == '/' )
+            count ++;
+        }
+
+    _DBG_FILE("CGlobalWLANAdapter::NumOfUriSegs(): end");
+    return count;
+    }
+
+
+// ------------------------------------------------------------------------------------------------
+// TPtrC8 CGlobalWLANAdapter::GetLastUriSeg(const TDesC8& aURI)
+// Returns only the last uri segemnt
+// ------------------------------------------------------------------------------------------------
+TPtrC8 CGlobalWLANAdapter::GetLastUriSeg( const TDesC8& aURI )
+    {
+    _DBG_FILE("CGlobalWLANAdapter::GetLastUriSeg(): begin");
+
+	// search for the segment after the last slash
+    TInt i;
+    for( i = aURI.Length() - 1; i >= 0; i-- )
+        {
+        if( aURI[i] == '/' )
+            {
+            break;
+            }
+        }
+
+    if( i == 0 )
+        {
+        _DBG_FILE("CGlobalWLANAdapter::GetLastUriSeg(): end");
+        return aURI;
+        }
+    else
+        {
+        _DBG_FILE("CGlobalWLANAdapter::GetLastUriSeg(): end");
+        return aURI.Mid( i + 1 );
+        }
+    }
+    
+
+// ------------------------------------------------------------------------------------------------
+// TInt CNSmlWLanAdapter::DesToInt( const TDesC8& aNumber )
+// Returns aLuid as integer value
+// ------------------------------------------------------------------------------------------------
+TInt CGlobalWLANAdapter::DesToInt( const TDesC8& aNumber )
+    {
+    _DBG_FILE("CGlobalWLANAdapter::DesToInt(): begin");
+    
+    TInt err = KErrNone;
+    TLex8 lex(aNumber);
+    TInt value = 0;
+    err = lex.Val( value );
+
+    DBG_ARGS8(_S8("CGlobalWLANAdapter::DesToInt() - Des: <%S> Int: <%D>"), &aNumber, value );
+    _DBG_FILE("CGlobalWLANAdapter::DesToInt(): end");
+   
+    // the input might have been illegal. Return error code if conversion failed.
+    if ( err == KErrNone )
+    	return value;
+    else
+    	return err;
+    }
+    
+    
+// ------------------------------------------------------------------------------------------------
+// TInt CNSmlWLanAdapter::InitMemberVariables
+// Inits the member variable structures
+// ------------------------------------------------------------------------------------------------
+void CGlobalWLANAdapter::InitMemberVariables()
+    {
+    _DBG_FILE("CGlobalWLANAdapter::InitMemberVariables(): begin");
+    
+    iWriteSettings->RCPITriggerPresent=EFalse;
+  	iWriteSettings->internetConnectivityTestPresent=EFalse;
+	iWriteSettings->useDefaultSettingsPresent=EFalse;
+	iWriteSettings->longRetryLimitPresent=EFalse;
+	iWriteSettings->shortRetryLimitPresent=EFalse;
+	iWriteSettings->RTSThresholdPresent=EFalse;
+	iWriteSettings->TXPowerLevelPresent=EFalse;
+	iWriteSettings->powerSavingPresent=EFalse;
+	iWriteSettings->backgroundScanIntervalPresent=EFalse;
+	iWriteSettings->scanRatePresent=EFalse;
+	iWriteSettings->RCPITriggerPresent=EFalse;
+	iWriteSettings->minActiveChannelTimePresent=EFalse;
+	iWriteSettings->maxActiveChannelTimePresent=EFalse;
+	iWriteSettings->maxTxMSDULifeTimePresent=EFalse;
+	iWriteSettings->scanExpirationTimerPresent=EFalse;
+	iWriteSettings->unloadDriverTimerPresent=EFalse;
+	iWriteSettings->roamTimerPresent=EFalse;
+	iWriteSettings->RCPIDifferencePresent=EFalse;
+	iWriteSettings->connRegainTimerPresent=EFalse;
+	iWriteSettings->maxTriesToFindNwPresent=EFalse;
+	iWriteSettings->delayBetweenFindNwPresent=EFalse;
+	iWriteSettings->allowRadioMeasurementsPresent=EFalse;
+	iWriteSettings->minPassiveChannelTimePresent=EFalse;
+	iWriteSettings->maxPassiveChannelTimePresent=EFalse;
+	iWriteSettings->maxApFailureCountPresent=EFalse;
+	iWriteSettings->longBeaconFindCountPresent=EFalse;
+	iWriteSettings->qosNullFrameIntervalPresent=EFalse;
+	iWriteSettings->qosNullFrameTimeoutPresent=EFalse;
+	iWriteSettings->MTUPresent=EFalse;
+		 
+	iReadSettings->RCPITriggerPresent=EFalse;
+  	iReadSettings->internetConnectivityTestPresent=EFalse;
+	iReadSettings->useDefaultSettingsPresent=EFalse;
+	iReadSettings->longRetryLimitPresent=EFalse;
+	iReadSettings->shortRetryLimitPresent=EFalse;
+	iReadSettings->RTSThresholdPresent=EFalse;
+	iReadSettings->TXPowerLevelPresent=EFalse;
+	iReadSettings->powerSavingPresent=EFalse;
+	iReadSettings->backgroundScanIntervalPresent=EFalse;
+	iReadSettings->scanRatePresent=EFalse;
+	iReadSettings->RCPITriggerPresent=EFalse;
+	iReadSettings->minActiveChannelTimePresent=EFalse;
+	iReadSettings->maxActiveChannelTimePresent=EFalse;
+	iReadSettings->maxTxMSDULifeTimePresent=EFalse;
+	iReadSettings->scanExpirationTimerPresent=EFalse;
+	iReadSettings->unloadDriverTimerPresent=EFalse;
+	iReadSettings->roamTimerPresent=EFalse;
+	iReadSettings->RCPIDifferencePresent=EFalse;
+	iReadSettings->connRegainTimerPresent=EFalse;
+	iReadSettings->maxTriesToFindNwPresent=EFalse;
+	iReadSettings->delayBetweenFindNwPresent=EFalse;
+	iReadSettings->allowRadioMeasurementsPresent=EFalse;
+	iReadSettings->minPassiveChannelTimePresent=EFalse;
+	iReadSettings->maxPassiveChannelTimePresent=EFalse;
+	iReadSettings->maxApFailureCountPresent=EFalse;
+	iReadSettings->longBeaconFindCountPresent=EFalse;
+	iReadSettings->qosNullFrameIntervalPresent=EFalse;
+	iReadSettings->qosNullFrameTimeoutPresent=EFalse;
+	iReadSettings->MTUPresent=EFalse;
+
+	_DBG_FILE("CGlobalWLANAdapter::InitMemberVariables(): begin");
+    }
+
+// end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/globalwlansettings/src/globalwlanadapter.rss	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,45 @@
+CHARACTER_SET UTF8/*
+* 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:   glowal wlan-settings adapter resources
+*
+*/
+
+ 
+
+
+#include <registryinfo.rh>
+#include "nsmldmconstants.h"
+
+RESOURCE REGISTRY_INFO theRegistryInfo
+  {
+  dll_uid = 0x1315DBD; //The DLL's 3rd UID.
+  interfaces = 
+      {
+      INTERFACE_INFO
+          {
+          interface_uid = KNSmlDMInterfaceUid; // DM interface UID
+          implementations = 
+            {
+            IMPLEMENTATION_INFO
+                {
+                implementation_uid = 0x1315DBE; // Global WLAN Adapter
+                version_no = 1; 
+                display_name = "GlobalWLanAdapter";
+                default_data = "";
+                opaque_data = "";
+                }
+            };
+          }
+      };
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/inc/nsmldmimpluids.h	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,42 @@
+/*
+* Copyright (c) 2002 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:    DM tree etc.
+*
+*/
+
+
+
+
+#ifndef __NSMLDMIMPLUIDS_H__
+#define __NSMLDMIMPLUIDS_H__
+
+// ------------------------------------------------------------------------------------------------
+// Includes
+// ------------------------------------------------------------------------------------------------
+#include <e32base.h>
+
+// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
+
+// Implementation UIDs for DS adapters
+const TUint KNSmlDMSettingsAdapterImplUid = 0x101F6DEC;
+const TUint KNSmlDSSettingsAdapterImplUid = 0x101F6DED;
+const TUint KNSmlDMDevInfoAdapterImplUid = 0x101F6DEE;
+const TUint KNSmlDMDevDetailAdapterImplUid = 0x101F6DEF;
+const TUint KNSmlInternetAdapterImplUid = 0x101F6DE2;
+const TUint KNSmlDMEmailAdapterImplUid = 0x101F6E35;
+const TUint KNSmlDMMMSAdapterImplUid = 0x101F6E37;
+const TUint KNSmlDMFotaAdapterImplUid = 0x101F9A09;
+#endif // __CNSMLDMIMPLUIDS_H__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/mms/bld/bld.inf	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,26 @@
+/*
+* Copyright (c) 2005 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:    build info file for MMS settings adapter
+*
+*/
+
+
+
+
+PRJ_MMPFILES
+./nsmldmmmsadapter.mmp
+
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/mms/bld/nsmldmmmsadapter.mmp	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,55 @@
+/*
+* Copyright (c) 2005 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:    DM MMS Settings Adapter
+*
+*/
+
+
+
+
+#include "defaultcaps.hrh"
+#include  <platform_paths.hrh>
+
+TARGET          nsmldmmmsadapter.dll
+TARGETTYPE      PLUGIN
+UID             0x10009D8D 0x101F6E36
+VENDORID        VID_DEFAULT
+CAPABILITY      CAP_ECOM_PLUGIN
+
+APP_LAYER_SYSTEMINCLUDE
+SYSTEMINCLUDE 	/epoc32/include/ecom
+SYSTEMINCLUDE  /epoc32/include/comms-infras/commdb/protection
+#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
+SYSTEMINCLUDE		/epoc32/include/platform/comms-infras/commdb/protection
+#endif
+
+SOURCEPATH      ../src
+USERINCLUDE     ../inc ../../inc
+
+SOURCE          nsmldmmmsadapter.cpp
+
+START RESOURCE nsmldmmmsadapter.rss
+TARGET nsmldmmmsadapter.rsc
+LANGUAGE_IDS
+END
+
+
+LIBRARY     euser.lib ecom.lib msgs.lib charconv.lib nsmldebug.lib 
+LIBRARY 	commdb.lib cmmanager.lib mmsserversettings.lib
+LIBRARY     nsmldmiapmatcher.lib
+LIBRARY     nsmldmtreedbclient.lib
+
+
+SMPSAFE
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/mms/inc/nsmldmmmsadapter.h	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,379 @@
+/*
+* Copyright (c) 2005 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:    DM MMS Settings Adapter
+ *
+*/
+
+
+
+
+
+#ifndef __NSMLDMMMSADAPTER_H__
+#define __NSMLDMMMSADAPTER_H__
+
+// -----------------------------------------------------------------------------
+// Includes
+// -----------------------------------------------------------------------------
+#include <e32base.h>
+#include <smldmadapter.h>
+#include <mtclreg.h>
+#include <mmssettings.h>
+
+// --------------------------------------------------------------------------
+// Class forwards
+// --------------------------------------------------------------------------
+class CClientMtmRegistry;
+class CMsvSession;
+class CMmsClientMtm;
+
+// --------------------------------------------------------------------------
+// Constant definitions
+// --------------------------------------------------------------------------
+
+const TInt KNSmlDMMMSDefaultExpiry = 72 * 3600; //3 days
+const TInt KNSmlDMMMSExpiryHour = 3600; //1 hour
+const TInt KNSmlDMMMSExpirySixHours = 6*3600; //6 hours
+const TInt KNSmlDMMMSExpiryDay = 24*3600; //24 hours
+const TInt KNSmlDMMMSExpiryThreeDays = 3*24*3600; //3 days
+const TInt KNSmlDMMMSExpiryWeek = 7*24*3600; //1 week
+const TInt KNSmlDMMMSExpiryMaximum = 0;
+//Iap id which is not found from commsdb
+const TUint32 KNSmlDMMMSIapNotDefined = 999999; 
+const TInt KNSmlMMSUndefinedStatusRef = -1;
+
+const TInt KNSmlDMMMSFirstAccessPointId = 0;
+const TInt KNSmlDMMMSSecondAccessPointId = 1;
+const TUint8 KNSmlDMMMSSeparatorDef = 0x2f; //forward slash
+const TUint8 KNSmlDmMmsObjectSizeWidth = 4;
+
+// the DDF version must be changed if any changes in DDF structure 
+// ( built in DDFStructureL() function )
+
+// --------------------------------------------------------------------------
+// Literal definitions
+// --------------------------------------------------------------------------
+
+_LIT8( KNSmlDMMMSDDFVersion, "1.1" ); 
+
+_LIT8( KNSmlDMMMSNodeName, "MMS" );
+_LIT8( KNSmlDMMMSName, "Name" );
+_LIT8( KNSmlDMMMSMMRecep, "MMRecep" );
+_LIT8( KNSmlDMMMSAMsg, "AMsg" );
+_LIT8( KNSmlDMMMSRcvAds, "RcvAds" );
+_LIT8( KNSmlDMMMSImgSize, "ImgSize" );
+_LIT8( KNSmlDMMMSDRepSnd, "DRepSnd" );
+_LIT8( KNSmlDMMMSRcvRep, "RcvRep" );
+_LIT8( KNSmlDMMMSMsgVal, "MsgVal" );
+_LIT8( KNSmlDMMMSCon, "Con" );
+_LIT8( KNSmlDMMMSMToNapID, "MToNapID" );
+_LIT8( KNSmlDMMMSMToNapIDL, "MToNapIDL" );
+_LIT8( KNSmlDMMMSCreMode, "CreMode" );
+
+_LIT8( KNSmlDMMMSConSlash, "Con/" );
+_LIT8( KNSmlDMMMSTextPlain, "text/plain" );
+
+_LIT8( KNSmlDMMMSNodeNameDescription, "The interior object holds all MMS objects" );
+_LIT8( KNSmlDMMMSDynamicNodeDescription, "Placeholder for one set of MMS settings" );
+_LIT8( KNSmlDMMMSNameDescription, "Displayable Account Name for the MMS Settings" );
+_LIT8( KNSmlDMMMSMMRecepDescription, "Level of MMS protocol operations" );
+_LIT8( KNSmlDMMMSAMsgDescription, "Anonymous messages allowed or not" );
+_LIT8( KNSmlDMMMSRcvAdsDescription, "Receiving adverts allowed or not" );
+_LIT8( KNSmlDMMMSImgSizeDescription, "Image  resolution in sending messages" );
+_LIT8( KNSmlDMMMSDRepSndDescription, "Sending of Delivery Reports is allowed or not" );
+_LIT8( KNSmlDMMMSRcvRepDescription, "Defines whether the delivery report is requested by default from each recipient or not" );
+_LIT8( KNSmlDMMMSMsgValDescription, "Message validity time" );
+_LIT8( KNSmlDMMMSMMSSAddrDescription, "MMS server address" );
+
+_LIT8( KNSmlDMMMSConNodeDescription, "Parent for MMS connectivity object" );
+_LIT8( KNSmlDMMMSConRtNodeDescription, "Place holder for one or more connectivity objects" );
+_LIT8( KNSmlDMMMSMToNapIDDescription, "Parent to multiple NAP connection reference objects" );
+_LIT8( KNSmlDMMMSMToNapIDLDescription, "Link to internet access point" );
+_LIT8( KNSmlDMMMSCreModeDescription, "MMS creation mode" );
+_LIT8( KNSmlDMMMSTextPlainDescription, "text/plain" );
+
+_LIT8( KNSmlDMMMSAccount8, "MMSAcc" );
+_LIT( KNSmlDMMMSAccount16, "MMSAcc" );
+_LIT8( KNSmlDMMMSListOfLeafsLo, "MMRecep/CreMode/AMsg/RcvAds/ImgSize/DRepSnd/RcvRep/MsgVal/Con" );
+_LIT8( KNSmlDMMMSListOfLeafsMid, "MMSSAddr/MToNapID" );
+_LIT8( KNSmlDMMMSListOfLeafsHi, "MToNapIDL" );
+_LIT8( KNSmlDMMMSConDynamicName8, "DCon" );
+_LIT8( KNSmlDMMMSConDynamicName16, "DCon" );
+_LIT8( KNSmlDMMMSMMSSAddr, "MMSSAddr" );
+
+_LIT8( KNSmlDMMMSDynamicPrimary, "Primary" );
+
+
+_LIT( KNSmlDMMMSSeparator16, "/" );
+_LIT8( KNSmlDMMMSSeparator8, "/" );
+
+_LIT8( KNSmlDMMMSValueTrue, "True" );
+_LIT8( KNSmlDMMMSValueFalse, "False" );
+_LIT8( KNSmlDMMMSValueAlwaysOn, "Always on" );
+
+_LIT8( KNSmlDMMMSValueAutomaticAtHome, "Automatic at home" );
+_LIT8( KNSmlDMMMSValueAutomaticAtHomeShort, "Aut" );
+_LIT8( KNSmlDMMMSValueAlwaysManual, "Always Manual" );
+_LIT8( KNSmlDMMMSValueAlwaysManual2, "Always manual" );  
+_LIT8( KNSmlDMMMSValueOff, "Off" );
+_LIT8( KNSmlDMMMSValueFree, "Free" );
+_LIT8( KNSmlDMMMSValueRestricted, "Restricted" );
+_LIT8( KNSmlDMMMSValueWarning, "Warning" );
+
+_LIT8( KNSmlDMMMSValueLow, "Low" );
+_LIT8( KNSmlDMMMSValueNormal, "Normal" );
+_LIT8( KNSmlDMMMSValueHigh, "High" );
+_LIT8( KNSmlDMMMSValueSmall, "Small" );
+_LIT8( KNSmlDMMMSValueLarge, "Large" );
+_LIT8( KNSmlDMMMSValueOriginal, "Original" );
+
+_LIT8( KNSmlDMMMSValueHour, "one hour" );
+_LIT8( KNSmlDMMMSValueSixHours, "six hours" );
+_LIT8( KNSmlDMMMSValueDay, "24 hours" );
+_LIT8( KNSmlDMMMSValueThreeDays, "three days" );
+_LIT8( KNSmlDMMMSValueWeek, "a week" );
+
+_LIT8( KNSmlDMMMSValueHourShort, "hour" );
+_LIT8( KNSmlDMMMSValueSixHoursShort, "six" );
+_LIT8( KNSmlDMMMSValueSixHoursShortNum, "6" );
+_LIT8( KNSmlDMMMSValueDayShort, "24" );
+_LIT8( KNSmlDMMMSValueThreeDaysShort, "three" );
+_LIT8( KNSmlDMMMSValueThreeDaysShortNum, "3" );
+_LIT8( KNSmlDMMMSValueWeekShort, "week" );
+_LIT8( KNSmlDMMMSValueMaximumTimeShort, "max" );
+_LIT8( KNSmlDMMMSValueMaximumTime , "maximum time" );
+
+_LIT8( KNSmlDMMMSValuePrimary, "Primary" );
+_LIT8( KNSmlDMMMSValueSecondary, "Secondary" );
+_LIT8( KNSmlMMSUriDotSlash, "./");
+_LIT8( KNSmlDMMMSIAPUri, "AP" );
+
+_LIT8( KNSmlDMMMSLevel3Parents, "MMS/MMSAcc" );
+_LIT8( KNSmlDMMMSLevel5Parents, "MMS/MMSAcc/Con/DCon" );
+_LIT8( KNSmlDMMMSLevel7Parents1, "MMS/MMSAcc/Con/DCon/MToNapID/Primary" );
+_LIT8( KNSmlDMMMSLevel7Parents2, "MMS/MMSAcc/Con/DCon/MToNapID/Secondary" );
+
+_LIT8( KNSmlDMMMSAclName, "MMS/MMSAcc/Name" );
+_LIT8( KNSmlDMMMSAclMMRecep, "MMS/MMSAcc/MMRecep" );
+_LIT8( KNSmlDMMMSAclCreMode, "MMS/MMSAcc/CreMode" );
+_LIT8( KNSmlDMMMSAclAMsg, "MMS/MMSAcc/AMsg" );
+_LIT8( KNSmlDMMMSAclRcvAds, "MMS/MMSAcc/RcvAds" );
+_LIT8( KNSmlDMMMSAclImgSize, "MMS/MMSAcc/ImgSize" );
+_LIT8( KNSmlDMMMSAclDRepSnd, "MMS/MMSAcc/DRepSnd" );
+_LIT8( KNSmlDMMMSAclRcvRep, "MMS/MMSAcc/RcvRep" );
+_LIT8( KNSmlDMMMSAclMsgVal, "MMS/MMSAcc/MsgVal" );
+_LIT8( KNSmlDMMMSAclMMSSAddr, "MMS/MMSAcc/Con/DCon/MMSSAddr" );
+_LIT8( KNSmlDMMMSAclPrimaryMToNapIDL, "MMS/MMSAcc/Con/DCon/MToNapID/Primary/MToNapIDL" );
+
+_LIT8(KNSmlDmMMSAclDefault, "Get=*&Replace=*");
+_LIT8(KNSmlDmMMSAclGet, "Get=*");
+
+/**
+* The main class of the SyncML DM MMS adapter.
+*
+*  @since 
+*/
+
+class CNSmlDmMMSAdapter : public CSmlDmAdapter, public MMsvSessionObserver
+    {
+public:
+    static CNSmlDmMMSAdapter* NewL(MSmlDmCallback* aDmCallback );
+
+    ~CNSmlDmMMSAdapter();
+    
+    // Adapter interface from CSmlDmAdapter
+    void DDFVersionL( CBufBase& aDDFVersion );
+    void DDFStructureL( MSmlDmDDFObject& aDDF );
+    void UpdateLeafObjectL( const TDesC8& aURI, const TDesC8& aLUID, 
+                            const TDesC8& aObject, const TDesC8& aType, 
+                            TInt aStatusRef );
+    void DeleteObjectL( const TDesC8& aURI, const TDesC8& aLUID, 
+                        const TInt aStatusRef ); 
+    void FetchLeafObjectL( const TDesC8& aURI, const TDesC8& aLUID, 
+                           const TDesC8& aType, const TInt aResultsRef, 
+                           const TInt aStatusRef ); 
+    void ChildURIListL( const TDesC8& aURI, const TDesC8& aLUID, 
+                        const CArrayFix<TSmlDmMappingInfo>& aPreviousURISegmentList, 
+                        const TInt aResultsRef, const TInt aStatusRef );
+    void AddNodeObjectL( const TDesC8& aURI, const TDesC8& aParentLUID, 
+                         const TInt aStatusRef );
+    void UpdateLeafObjectL( const TDesC8& aURI, const TDesC8& aLUID, 
+                            RWriteStream*& aStream, const TDesC8& aType, 
+                            const TInt aStatusRef );
+    void FetchLeafObjectSizeL( const TDesC8& aURI, const TDesC8& aLUID, 
+                               const TDesC8& aType, const TInt aResultsRef, 
+                               const TInt aStatusRef );
+    void ExecuteCommandL( const TDesC8& aURI, const TDesC8& aLUID, 
+                          const TDesC8& aArgument, const TDesC8& aType, 
+                          const TInt aStatusRef );
+    void ExecuteCommandL( const TDesC8& aURI, const TDesC8& aLUID, 
+                          RWriteStream*& aStream, const TDesC8& aType, 
+                          const TInt aStatusRef );
+    void CopyCommandL( const TDesC8& aTargetURI, const TDesC8& aTargetLUID, 
+                       const TDesC8& aSourceURI, const TDesC8& aSourceLUID, 
+                       const TDesC8& aType, TInt aStatusRef );
+    void StartAtomicL();
+    void CommitAtomicL();
+    void RollbackAtomicL();
+    TBool StreamingSupport( TInt& aItemSize );
+    void StreamCommittedL();
+    void CompleteOutstandingCmdsL();
+        
+    // from MMsvSessionObserver
+    void HandleSessionEventL( TMsvSessionEvent aEvent, TAny* aArg1, TAny* aArg2, 
+                              TAny* aArg3 );
+
+private:
+/**
+ * Default constructor
+ * @param   aDmCallback Pointer to callback interface
+ * @return    
+ */
+    CNSmlDmMMSAdapter( MSmlDmCallback* aDmCallback );
+
+/**
+* Second level constructor
+* @param    
+* @return    
+*/
+    void ConstructL();
+
+/**
+* Converts a descriptor to integer.
+* @param    aLuid Descriptor to convert.
+* @return    TInt value
+*/
+    TInt DesToInt( const TDesC& aLuid );
+/**
+* Removes the last uri segment, ie. everything after and including  the last "/" character.
+* @param    aURI The URI to process.
+* @return    The modified aURI
+*/
+
+    TPtrC8 RemoveLastURISeg( const TDesC8& aURI );
+/**
+* Calculates the number of the URI segments.
+* @param    aURI URI to process.
+* @return    The number of segments.
+*/
+
+    TInt NumOfURISegs( const TDesC8& aURI );
+/**
+* Parses the last segment of URI, ie everything after the last "/" character.
+* @param    aURI The URI to parse.
+* @return    The last segment of the URI.
+*/
+
+    TPtrC8 LastURISeg( const TDesC8& aURI );
+/**
+* Performs the actual UPDATE operation.
+* @param    aURI The URI to update.
+* @param    aParentLUID LUID of the object.
+* @param    aObject The new data to update.
+* @param    aStatusRef The command reference.
+* @return    Status of the UPDATE operation
+*/
+
+    CSmlDmAdapter::TError UpdateDataL( const TDesC8& aURI,
+                                       const TDesC8& aParentLUID, 
+                                       const TDesC8& aObject, 
+                                       TInt aStatusRef );
+/**
+* Replaces accesspoint in iMmsSettings's accesspoint array.
+* @param    aIapId The new IAP id to update.
+* @param    aPos A position to update IAP id
+* @return    
+*/
+
+    void ReplaceAPL( TInt aIapId, TInt aPos );
+/**
+* Performs updating of MMSAddr field.
+* @param    
+* @return   Status of the update. 
+*/
+
+    CSmlDmAdapter::TError UpdateMMSAddrL();
+/**
+* Retrieves the paramters to iMmsSettings class from phones permanent storage.
+* @param  
+* @return    
+*/
+
+    void CreateMMSClientL();
+
+/**
+* Updates the parameters of given DDF node
+* @param    aNode The node to update.
+* @param    aAccTypes Access types of the node.
+* @param    aOccurrence Occurrance of the node.
+* @param    aScope Scope of the node.
+* @param    aFormat Format of the node.
+* @param    aDescription A description of the node.
+* @return    
+*/
+
+    void FillNodeInfoL( MSmlDmDDFObject& aNode,TSmlDmAccessTypes aAccTypes,
+                        MSmlDmDDFObject::TOccurence aOccurrence, 
+                        MSmlDmDDFObject::TScope aScope, 
+                        MSmlDmDDFObject::TDFFormat aFormat,
+                        const TDesC8& aDescription);
+
+/**
+* Fetches a value from iMmsSettings class.
+* @param    aURI The URI to fetch
+* @param    aObject The container for the result.
+* @return    Status of the operation.
+*/
+
+    CSmlDmAdapter::TError FetchObjectL( const TDesC8& aURI, CBufBase& aObject );
+/**
+* Stores the contents of iMmsSettings class to phones permanen storage.
+* @param    
+* @return    
+*/
+
+    void StoreSettingsL();
+/**
+* Checks the URI validity.
+* @param    aURI The URI to check.
+* @return    Status of the operation.
+*/
+
+    CSmlDmAdapter::TError ValidateUriL(const TDesC8& aURI );
+    
+    TBool IsWAPAccessPointRecordLockedL(TUint32 aRecord);
+
+/**
+* Gets the IAP ID using CMManager
+* @param    aUid the accesspointID
+* @return   the IAP ID 
+*/
+    TUint32 GetIapIdL( TUint32 aUid );
+    
+    
+	  TInt DoProtectWAPAccessRecordL(TUint32 aRecord,TBool aProtect);
+private:
+    CClientMtmRegistry* iClientMtmRegistry;
+    CMsvSession* iMsvSession;
+    CMmsClientMtm *iMmsClient;
+    CMmsSettings* iMmsSettings;
+    MSmlDmCallback* iCallback;
+    TInt iStatusRef;
+    HBufC8 *iMMSSAddr;
+    TInt iImgSizeStatusRef;
+    CCommsDatabase* iDatabase;
+    };
+
+#endif // __NSMLDMMMSADAPTER_H__
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/mms/src/nsmldmmmsadapter.cpp	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,1514 @@
+/*
+* Copyright (c) 2005 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:    DM MMS Settings Adapter
+ *
+*/
+
+
+
+#include <iapprefs.h>
+#include <msvids.h>
+#include <msvuids.h>
+#include <utf.h>
+#include <implementationproxy.h> // For TImplementationProxy definition
+#include <commdb.h>
+#include <cdbcols.h>             // CommsDB columname defs
+#include <mmsclient.h>
+#include <MmsConformance.h>
+#include <protectdb.h>
+#include <cmconnectionmethoddef.h>
+#include <cmmanagerext.h>
+
+#include "nsmldmimpluids.h"
+#include "nsmldmmmsadapter.h"
+#include "nsmldebug.h"
+#include "nsmlconstants.h"
+#include "nsmldmconst.h"
+#include "nsmldmiapmatcher.h"
+#include "nsmldmtreedbclient.h"
+
+#ifndef __WINS__
+// This lowers the unnecessary compiler warning (armv5) to remark.
+// "Warning:  #174-D: expression has no effect..." is caused by 
+// DBG_ARGS8 macro in no-debug builds.
+#pragma diag_remark 174
+#endif
+
+
+// -----------------------------------------------------------------------------
+// CNSmlDmMMSAdapter* CNSmlDmMMSAdapter::NewL( )
+// -----------------------------------------------------------------------------
+CNSmlDmMMSAdapter* CNSmlDmMMSAdapter::NewL(MSmlDmCallback* aDmCallback )
+    {
+    _DBG_FILE("CNSmlDmMMSAdapter::NewL(): begin");
+    CNSmlDmMMSAdapter* self = new (ELeave) CNSmlDmMMSAdapter(aDmCallback);
+    CleanupStack::PushL(self);
+    self->ConstructL();
+    CleanupStack::Pop();
+    _DBG_FILE("CNSmlDmMMSAdapter::NewL(): end");
+    return self;
+    }
+    
+// -----------------------------------------------------------------------------
+// CNSmlDmMMSAdapter::CNSmlDmMMSAdapter()
+// -----------------------------------------------------------------------------
+CNSmlDmMMSAdapter::CNSmlDmMMSAdapter(MSmlDmCallback* aDmCallback) 
+    : CSmlDmAdapter(aDmCallback)
+    {
+    _DBG_FILE("CNSmlDmMMSAdapter::CNSmlDmMMSAdapter(): begin");
+    _DBG_FILE("CNSmlDmMMSAdapter::CNSmlDmMMSAdapter(): end");
+    }
+
+// -----------------------------------------------------------------------------
+// CNSmlDmMMSAdapter::ConstructL()
+// -----------------------------------------------------------------------------
+void CNSmlDmMMSAdapter::ConstructL()
+    {
+    _DBG_FILE("CNSmlDmMMSAdapter::ConstructL(): begin");
+    iStatusRef = KNSmlMMSUndefinedStatusRef;
+    iImgSizeStatusRef = KNSmlMMSUndefinedStatusRef;
+    iDatabase = CCommsDatabase::NewL(EDatabaseTypeIAP);
+    _DBG_FILE("CNSmlDmMMSAdapter::ConstructL(): end");
+    }
+
+
+// -----------------------------------------------------------------------------
+// CNSmlDmMMSAdapter::~CNSmlDmMMSAdapter()
+// -----------------------------------------------------------------------------
+CNSmlDmMMSAdapter::~CNSmlDmMMSAdapter()
+    {
+    _DBG_FILE("CNSmlDmMMSAdapter::~CNSmlDmMMSAdapter(): begin");
+    delete iMmsClient;
+    delete iClientMtmRegistry;
+    delete iMsvSession;
+    delete iMMSSAddr;
+    delete iMmsSettings;
+	if(iDatabase)
+    delete iDatabase;
+    _DBG_FILE("CNSmlDmMMSAdapter::~CNSmlDmMMSAdapter(): end");
+    }
+
+// -----------------------------------------------------------------------------
+//  CNSmlDmMMSAdapter::DDFVersionL()
+//  Returns the DDF version of the adapter
+// -----------------------------------------------------------------------------
+void CNSmlDmMMSAdapter::DDFVersionL(CBufBase& aDDFVersion)
+    {
+    _DBG_FILE("CNSmlDmMMSAdapter::DDFVersionL(TDes& aDDFVersion): begin");
+    aDDFVersion.InsertL(0,KNSmlDMMMSDDFVersion);
+    _DBG_FILE("CNSmlDmMMSAdapter::DDFVersionL(TDes& aDDFVersion): end");
+    }
+
+
+// -----------------------------------------------------------------------------
+//  CNSmlDmMMSAdapter::DDFStructureL()
+//  Builds the DDF structure of adapter
+// -----------------------------------------------------------------------------
+void CNSmlDmMMSAdapter::DDFStructureL( MSmlDmDDFObject& aDDF )
+    {
+    _DBG_FILE("CNSmlDmMMSAdapter::DDFStructureL(): begin");
+
+    TSmlDmAccessTypes accessTypesGetAdd;
+    accessTypesGetAdd.SetGet();
+    accessTypesGetAdd.SetAdd();
+    
+    TSmlDmAccessTypes accessTypesGet;
+    accessTypesGet.SetGet();
+
+    TSmlDmAccessTypes accessTypesNoDelete;
+    accessTypesNoDelete.SetGet();
+    accessTypesNoDelete.SetAdd();
+    accessTypesNoDelete.SetReplace();
+
+    // MMS
+    MSmlDmDDFObject& MMS = aDDF.AddChildObjectL(KNSmlDMMMSNodeName);
+    FillNodeInfoL(MMS,accessTypesGet,MSmlDmDDFObject::EOne,
+                  MSmlDmDDFObject::EPermanent,MSmlDmDDFObject::ENode,
+                  KNSmlDMMMSNodeNameDescription);
+
+    //run time node 
+    MSmlDmDDFObject& rtAcc = MMS.AddChildObjectGroupL();
+    FillNodeInfoL(rtAcc,accessTypesGet,MSmlDmDDFObject::EOne,
+                  MSmlDmDDFObject::EDynamic,MSmlDmDDFObject::ENode,
+                  KNSmlDMMMSDynamicNodeDescription);
+
+    //level of mms protocol operations
+    MSmlDmDDFObject& mmRecep = rtAcc.AddChildObjectL(KNSmlDMMMSMMRecep);
+    FillNodeInfoL(mmRecep,accessTypesNoDelete,MSmlDmDDFObject::EZeroOrOne,
+                  MSmlDmDDFObject::EDynamic,MSmlDmDDFObject::EChr,
+                  KNSmlDMMMSMMRecepDescription);
+
+    //Creation mode
+    MSmlDmDDFObject& creMode = rtAcc.AddChildObjectL(KNSmlDMMMSCreMode);
+    FillNodeInfoL(creMode,accessTypesNoDelete,MSmlDmDDFObject::EZeroOrOne,
+                  MSmlDmDDFObject::EDynamic,MSmlDmDDFObject::EChr,
+                  KNSmlDMMMSCreModeDescription);
+
+    //anonymous messages allowed
+    MSmlDmDDFObject& amsg = rtAcc.AddChildObjectL(KNSmlDMMMSAMsg);
+    FillNodeInfoL(amsg,accessTypesNoDelete,MSmlDmDDFObject::EZeroOrOne,
+                  MSmlDmDDFObject::EDynamic,MSmlDmDDFObject::EBool,
+                  KNSmlDMMMSAMsgDescription);
+
+    //adverts messages allowed
+    MSmlDmDDFObject& rcvAds = rtAcc.AddChildObjectL(KNSmlDMMMSRcvAds);
+    FillNodeInfoL(rcvAds,accessTypesNoDelete,MSmlDmDDFObject::EZeroOrOne,
+                  MSmlDmDDFObject::EDynamic,MSmlDmDDFObject::EBool,
+                  KNSmlDMMMSRcvAdsDescription);
+
+    //image size in sending
+    MSmlDmDDFObject& imgSize = rtAcc.AddChildObjectL(KNSmlDMMMSImgSize);
+    FillNodeInfoL(imgSize,accessTypesNoDelete,MSmlDmDDFObject::EZeroOrOne,
+                  MSmlDmDDFObject::EDynamic,MSmlDmDDFObject::EChr,
+                  KNSmlDMMMSImgSizeDescription);
+
+    //deny delivery report sending
+    MSmlDmDDFObject& dRepSnd = rtAcc.AddChildObjectL(KNSmlDMMMSDRepSnd);
+    FillNodeInfoL(dRepSnd,accessTypesNoDelete,MSmlDmDDFObject::EZeroOrOne,
+                  MSmlDmDDFObject::EDynamic,MSmlDmDDFObject::EBool,
+                  KNSmlDMMMSDRepSndDescription);
+
+    //delivery report requested by default
+    MSmlDmDDFObject& rcvRep = rtAcc.AddChildObjectL(KNSmlDMMMSRcvRep);
+    FillNodeInfoL(rcvRep,accessTypesNoDelete,MSmlDmDDFObject::EZeroOrOne,
+                  MSmlDmDDFObject::EDynamic,MSmlDmDDFObject::EBool,
+                  KNSmlDMMMSRcvRepDescription);
+
+    //message validity time
+    MSmlDmDDFObject& msgVal = rtAcc.AddChildObjectL(KNSmlDMMMSMsgVal);
+    FillNodeInfoL(msgVal,accessTypesNoDelete,MSmlDmDDFObject::EZeroOrOne,
+                  MSmlDmDDFObject::EDynamic,MSmlDmDDFObject::EChr,
+                  KNSmlDMMMSMsgValDescription);
+
+    // MMS/<X>/Con
+    MSmlDmDDFObject& con = rtAcc.AddChildObjectL(KNSmlDMMMSCon);
+    FillNodeInfoL(con,accessTypesGet,MSmlDmDDFObject::EOne,
+                  MSmlDmDDFObject::EDynamic,MSmlDmDDFObject::ENode,
+                  KNSmlDMMMSConNodeDescription);
+
+
+    // MMS/<X>/Con/<X>
+    MSmlDmDDFObject& rtCon = con.AddChildObjectL(KNSmlDMMMSConDynamicName16);
+    FillNodeInfoL(rtCon,accessTypesGet,MSmlDmDDFObject::EOne,
+                  MSmlDmDDFObject::EDynamic,MSmlDmDDFObject::ENode,
+                  KNSmlDMMMSConRtNodeDescription);
+
+
+    // MMS/<X>/Con/<X>/MMSSAddr
+    MSmlDmDDFObject& mmsAddr = rtCon.AddChildObjectL(KNSmlDMMMSMMSSAddr);
+    FillNodeInfoL(mmsAddr,accessTypesNoDelete,MSmlDmDDFObject::EOne,
+                  MSmlDmDDFObject::EDynamic,MSmlDmDDFObject::EChr,
+                  KNSmlDMMMSMMSSAddrDescription);
+
+    // MMS/<X>/Con/<X>/MToNapID
+    MSmlDmDDFObject& mToNapID = rtCon.AddChildObjectL(KNSmlDMMMSMToNapID);
+    FillNodeInfoL(mToNapID,accessTypesGet,MSmlDmDDFObject::EZeroOrOne,
+                  MSmlDmDDFObject::EDynamic,MSmlDmDDFObject::ENode,
+                  KNSmlDMMMSConRtNodeDescription);
+
+    // MMS/<X>/Con/<X>/MToNapID/<X>
+    MSmlDmDDFObject& rtNapIds = mToNapID.AddChildObjectL(KNullDesC8);
+    FillNodeInfoL(rtNapIds,accessTypesGet,MSmlDmDDFObject::EZeroOrOne,
+                  MSmlDmDDFObject::EDynamic,MSmlDmDDFObject::ENode,
+                  KNSmlDMMMSConRtNodeDescription);
+
+    // MMS/<X>/Con/<X>/MToNapID/<X>/MToNapIdL
+    MSmlDmDDFObject& mToNapIDL = rtNapIds.AddChildObjectL(KNSmlDMMMSMToNapIDL);
+    FillNodeInfoL(mToNapIDL,accessTypesNoDelete,MSmlDmDDFObject::EOneOrMore,
+                  MSmlDmDDFObject::EDynamic,MSmlDmDDFObject::EChr,
+                  KNSmlDMMMSMToNapIDLDescription);
+
+    RNSmlDMCallbackSession session;
+    User::LeaveIfError( session.Connect() );
+    CleanupClosePushL(session);
+    
+    session.UpdateAclL(KNSmlDMMMSLevel3Parents,KNSmlDmMMSAclGet);
+    session.UpdateAclL(KNSmlDMMMSAclName,KNSmlDmMMSAclDefault);
+    session.UpdateAclL(KNSmlDMMMSAclMMRecep,KNSmlDmMMSAclDefault);
+    session.UpdateAclL(KNSmlDMMMSAclCreMode,KNSmlDmMMSAclDefault);
+    session.UpdateAclL(KNSmlDMMMSAclAMsg,KNSmlDmMMSAclDefault);
+    session.UpdateAclL(KNSmlDMMMSAclRcvAds,KNSmlDmMMSAclDefault);
+    session.UpdateAclL(KNSmlDMMMSAclImgSize,KNSmlDmMMSAclDefault);
+    session.UpdateAclL(KNSmlDMMMSAclDRepSnd,KNSmlDmMMSAclDefault);
+    session.UpdateAclL(KNSmlDMMMSAclRcvRep,KNSmlDmMMSAclDefault);
+    session.UpdateAclL(KNSmlDMMMSAclMsgVal,KNSmlDmMMSAclDefault);
+    session.UpdateAclL(KNSmlDMMMSAclMMSSAddr,KNSmlDmMMSAclDefault);
+    session.UpdateAclL(KNSmlDMMMSAclPrimaryMToNapIDL,KNSmlDmMMSAclDefault);
+    CleanupStack::PopAndDestroy(); //session
+    
+    _DBG_FILE("CNSmlDmMMSAdapter::DDFStructureL(): end");
+    }
+
+// -----------------------------------------------------------------------------
+//  CNSmlDmMMSAdapter::UpdateLeafObjectL()
+// Updates value of leaf object
+// -----------------------------------------------------------------------------
+void CNSmlDmMMSAdapter::UpdateLeafObjectL( const TDesC8& aURI, 
+                                           const TDesC8& aLUID, 
+                                           const TDesC8& aObject, 
+                                           const TDesC8& /*aType*/, 
+                                           const TInt aStatusRef )
+    {
+    _DBG_FILE("CNSmlDmMMSAdapter::UpdateLeafObjectL(): begin");
+    CSmlDmAdapter::TError status = ValidateUriL( aURI );
+    if ( status == EOk )
+        {
+        _DBG_FILE("CNSmlDmMMSAdapter::UpdateLeafObjectL(): OK update");
+        status = UpdateDataL(aURI, aLUID, aObject, aStatusRef);
+        }
+    // ImgSize and MMSAddr are always stored last, from the 
+    // CompleteOutstandingCmdsL() function
+    if( ( aStatusRef != iStatusRef ) && (aStatusRef != iImgSizeStatusRef ))
+        {
+        StoreSettingsL();
+        Callback().SetStatusL(aStatusRef, status);
+        }
+    _DBG_FILE("CNSmlDmMMSAdapter::UpdateLeafObjectL(): end");
+    }
+// -----------------------------------------------------------------------------
+// CNSmlDmMMSAdapter::DeleteObjectL( const TDesC8& aURI, const TDesC8& aLUID )
+// This should delete values or accounts, but in case of MMS adapter the delete 
+// is not allowed
+// and the adapters returns allways the EError.
+// -----------------------------------------------------------------------------
+void CNSmlDmMMSAdapter::DeleteObjectL( const TDesC8& /*aURI*/, 
+                                       const TDesC8& /*aLUID*/, 
+                                       const TInt aStatusRef )
+    {
+    _DBG_FILE("CNSmlDmMMSAdapter::DeleteLeafObjectL( ): begin");
+
+    Callback().SetStatusL(aStatusRef, CSmlDmAdapter::EError);
+    _DBG_FILE("CNSmlDmMMSAdapter::DeleteLeafObjectL( ): end");
+    }
+// -----------------------------------------------------------------------------
+//  CNSmlDmMMSAdapter::FetchLeafObjectL( const TDesC8& aURI, 
+//  const TDesC8& aLUID,
+//  const TDesC8& aType, 
+//  const TInt aResultsRef, 
+//  const TInt aStatusRef )
+//  Fetches the values of leaf objects.
+// -----------------------------------------------------------------------------
+void CNSmlDmMMSAdapter::FetchLeafObjectL( const TDesC8& aURI, 
+                                          const TDesC8& /*aLUID*/, 
+                                          const TDesC8& aType, 
+                                          const TInt aResultsRef, 
+                                          const TInt aStatusRef )
+    {
+    _DBG_FILE("CNSmlDmMMSAdapter::FetchLeafObjectL(): begin");
+    CBufBase* result = CBufFlat::NewL(64);
+    CleanupStack::PushL(result);
+    CSmlDmAdapter::TError status = FetchObjectL(aURI, *result);
+    if(status == CSmlDmAdapter::EOk)
+        {
+        Callback().SetResultsL(aResultsRef,*result,aType);
+        }
+    Callback().SetStatusL(aStatusRef, status);
+
+    CleanupStack::PopAndDestroy(); //result
+    _DBG_FILE("CNSmlDmMMSAdapter::FetchLeafObjectL(): end");
+    }
+
+//----------------------------------------------------------------------
+// TUint32 GetIapIdL( TUint32 aUid )
+// Gets the IAP ID 
+//----------------------------------------------------------------------
+TUint32 CNSmlDmMMSAdapter::GetIapIdL( TUint32 aUid )
+        {
+        TUint32 retval( 0 );
+        RCmManagerExt  cmmanagerExt;
+        cmmanagerExt.OpenL();
+        CleanupClosePushL(cmmanagerExt);
+        RCmConnectionMethodExt cm;
+        cm = cmmanagerExt.ConnectionMethodL( aUid );
+        CleanupClosePushL( cm );
+        retval = cm.GetIntAttributeL(CMManager::ECmIapId);
+        CleanupStack::PopAndDestroy( 2 ); //cmmanagerext,cm
+        return retval;
+
+        }
+
+
+// -----------------------------------------------------------------------------
+//  CNSmlDmMMSAdapter::ChildURIListL( const TDesC8& aURI, 
+//                                       const TDesC8& /*aLUID*/, 
+//                                       const CArrayFix<TSmlDmMappingInfo>& 
+//                                       /*aPreviousURISegmentList*/, 
+//                                       const TInt aResultsRef, 
+//                                       const TInt aStatusRef )
+//  Retuns the list of children of the node
+// -----------------------------------------------------------------------------
+void CNSmlDmMMSAdapter::ChildURIListL( const TDesC8& aURI, 
+                                       const TDesC8& /*aLUID*/, 
+                                       const CArrayFix<TSmlDmMappingInfo>& 
+                                       /*aPreviousURISegmentList*/, 
+                                       const TInt aResultsRef, 
+                                       const TInt aStatusRef )
+    {
+    _DBG_FILE("CNSmlDmMMSAdapter::ChildURIListL(): begin");
+    TRAPD(err, CreateMMSClientL());
+    if(err!=KErrNone)
+        {
+        Callback().SetStatusL(aStatusRef, CSmlDmAdapter::EError);
+        _DBG_FILE("CNSmlDmMMSAdapter::ChildURIListL(): EError end");
+        return;
+        }
+
+    CBufBase* currentList = CBufFlat::NewL(1);
+    CleanupStack::PushL(currentList);
+
+    TMsvId id = iMmsSettings->Service();
+    if(id==KMsvNullIndexEntryId)
+        {
+        if(aURI.Compare(KNSmlDMMMSNodeName)==0)
+            {
+            Callback().SetResultsL(aResultsRef,*currentList,KNullDesC8);
+            Callback().SetStatusL(aStatusRef, CSmlDmAdapter::EOk);
+            _DBG_FILE("CNSmlDmMMSAdapter::ChildURIListL(): end");
+            }
+        else
+            {
+            Callback().SetStatusL(aStatusRef, CSmlDmAdapter::ENotFound);
+            _DBG_FILE("CNSmlDmMMSAdapter::ChildURIListL(): ENotFound end");
+            }
+        CleanupStack::PopAndDestroy(); //currentList
+        return;
+        }
+
+    CSmlDmAdapter::TError status = CSmlDmAdapter::EOk;
+    TPtrC8 lastSeg = LastURISeg(aURI);
+    TInt num = NumOfURISegs(aURI);
+
+    if(aURI.Compare(KNSmlDMMMSNodeName)==0)
+        {
+        currentList->InsertL(0,KNSmlDMMMSAccount8);
+        }
+    else if(num==2&&aURI.Find(KNSmlDMMMSAccount8)>=0)
+        {
+        currentList->InsertL(0,KNSmlDMMMSListOfLeafsLo);
+        }
+    else if(num==3&&lastSeg.Compare(KNSmlDMMMSCon)==0)
+        {
+        currentList->InsertL(0,KNSmlDMMMSConDynamicName8);
+        }
+    else if(num==4&&lastSeg.Compare(KNSmlDMMMSConDynamicName16)==0)
+        {
+        currentList->InsertL(0,KNSmlDMMMSListOfLeafsMid);
+        }
+    else if(num==5&&lastSeg.Compare(KNSmlDMMMSMToNapID)==0)
+        {
+        currentList->InsertL(0,KNSmlDMMMSValuePrimary);
+        }
+    else if(num==6&&(lastSeg.Compare(KNSmlDMMMSDynamicPrimary)==0))
+        {
+        currentList->InsertL(0,KNSmlDMMMSListOfLeafsHi);
+        }
+    else
+        {
+        status=CSmlDmAdapter::ENotFound;
+        }
+    Callback().SetStatusL(aStatusRef, status);
+    if(status==CSmlDmAdapter::EOk)
+        {
+        Callback().SetResultsL(aResultsRef,*currentList,KNullDesC8);
+        }
+    CleanupStack::PopAndDestroy(); //currentList
+
+    _DBG_FILE("CNSmlDmMMSAdapter::ChildURIListL(): end");
+    }
+// -----------------------------------------------------------------------------
+// CNSmlDmMMSAdapter::AddNodeObjectL( const TDesC8& aURI, 
+// const TDesC8& aParentLUID )
+// This should add a new account, but in case of MMS settings only one 
+// account exist,
+// and so the add is not possible. Returns allways CSmlDmAdapter::EError.
+// -----------------------------------------------------------------------------
+void CNSmlDmMMSAdapter::AddNodeObjectL( const TDesC8& /*aURI*/, 
+                                        const TDesC8& /*aParentLUID*/, 
+                                        const TInt aStatusRef )
+    {
+    _DBG_FILE("CNSmlDmMMSAdapter::AddNodeObjectL(): begin");
+    //If add is needed in future then add call to AddObjectL function here
+    Callback().SetStatusL(aStatusRef, CSmlDmAdapter::EError);
+    _DBG_FILE("CNSmlDmMMSAdapter::AddNodeObjectL(): end");
+    }
+// -----------------------------------------------------------------------------
+// CNSmlDmMMSAdapter::UpdateLeafObjectL( const TDesC8& aURI, 
+// const TDesC8& aLUID, RWriteStream*& aStream, const TDesC8& aType,
+//  const TInt aStatusRef )
+// This should update a stream object, but in case of MMS settings streaming is 
+// not supported.
+// -----------------------------------------------------------------------------
+void CNSmlDmMMSAdapter::UpdateLeafObjectL( const TDesC8& /*aURI*/, 
+                                           const TDesC8& /*aLUID*/, 
+                                           RWriteStream*& /*aStream*/, 
+                                           const TDesC8& /*aType*/, 
+                                           const TInt aStatusRef )
+    {
+    _DBG_FILE("CNSmlDmMMSAdapter::UpdateLeafObjectL(stream): begin");
+    Callback().SetStatusL(aStatusRef, CSmlDmAdapter::EError);
+    _DBG_FILE("CNSmlDmMMSAdapter::UpdateLeafObjectL(stream): end");
+    }
+// -----------------------------------------------------------------------------
+// void CNSmlDmMMSAdapter::FetchLeafObjectSizeL( const TDesC8& aURI, 
+// const TDesC8& aLUID, const TDesC8& aType, const TInt aResultsRef, 
+// const TInt aStatusRef )
+// Fetches data object and returns its size.
+// -----------------------------------------------------------------------------
+void CNSmlDmMMSAdapter::FetchLeafObjectSizeL( const TDesC8& aURI, 
+                                              const TDesC8& /*aLUID*/, 
+                                              const TDesC8& aType, 
+                                              const TInt aResultsRef, 
+                                              const TInt aStatusRef )
+    {
+    _DBG_FILE("CNSmlDmMMSAdapter::FetchLeafObjectSizeL(): begin");
+
+    CBufBase* result = CBufFlat::NewL(64);
+    CleanupStack::PushL(result);
+    CSmlDmAdapter::TError status = FetchObjectL(aURI, *result);
+    if( status == CSmlDmAdapter::EOk )
+        {
+        TInt objSizeInBytes = result->Size();
+        TBuf8<KNSmlDmMmsObjectSizeWidth> stringObjSizeInBytes;
+        stringObjSizeInBytes.Num( objSizeInBytes );
+        result->Reset();
+        result->InsertL( 0, stringObjSizeInBytes );
+        Callback().SetResultsL(aResultsRef, *result, aType);
+        }
+    Callback().SetStatusL(aStatusRef, status);
+    CleanupStack::PopAndDestroy(); //result
+    _DBG_FILE("CNSmlDmMMSAdapter::FetchLeafObjectSizeL(): end");
+    }
+//==============================================================================
+// CNSmlDmMMSAdapter::ExecuteCommandL()
+//==============================================================================
+void CNSmlDmMMSAdapter::ExecuteCommandL( const TDesC8& /*aURI*/, 
+                                         const TDesC8& /*aLUID*/, 
+                                         const TDesC8& /*aArgument*/, 
+                                         const TDesC8& /*aType*/, 
+                                         const TInt aStatusRef )
+    {
+    //Not supported 
+    Callback().SetStatusL(aStatusRef, CSmlDmAdapter::EError);
+    }
+
+//==============================================================================
+// CNSmlDmMMSAdapter::ExecuteCommandL()
+//==============================================================================
+void CNSmlDmMMSAdapter::ExecuteCommandL( const TDesC8& /*aURI*/, 
+                                         const TDesC8& /*aLUID*/, 
+                                         RWriteStream*& /*aStream*/, 
+                                         const TDesC8& /*aType*/, 
+                                         const TInt aStatusRef )
+    {
+    //Not supported
+    Callback().SetStatusL(aStatusRef, CSmlDmAdapter::EError);
+    }
+
+//==============================================================================
+// CNSmlDmMMSAdapter::CopyCommandL()
+//==============================================================================
+void CNSmlDmMMSAdapter::CopyCommandL( const TDesC8& /*aTargetURI*/, 
+                                      const TDesC8& /*aTargetLUID*/, 
+                                      const TDesC8& /*aSourceURI*/, 
+                                      const TDesC8& /*aSourceLUID*/, 
+                                      const TDesC8& /*aType*/, 
+                                      TInt aStatusRef )
+    {
+    //Not supported
+    Callback().SetStatusL(aStatusRef, CSmlDmAdapter::EError);
+
+    }
+
+//==============================================================================
+// CNSmlDmMMSAdapter::StartAtomicL()
+//==============================================================================
+void CNSmlDmMMSAdapter::StartAtomicL()
+    {
+    //Not supported
+    }
+
+//==============================================================================
+// CNSmlDmMMSAdapter::CommitAtomicL()
+//==============================================================================
+void CNSmlDmMMSAdapter::CommitAtomicL()
+    {
+    //Not supported
+    }
+
+//==============================================================================
+// CNSmlDmMMSAdapter::RollbackAtomicL()
+//==============================================================================
+void CNSmlDmMMSAdapter::RollbackAtomicL()
+    {
+    //Not supported
+    }
+
+//==============================================================================
+// CNSmlDmMMSAdapter::StreamingSupport()
+//==============================================================================
+TBool CNSmlDmMMSAdapter::StreamingSupport( TInt& /*aItemSize*/ )
+    {
+    return EFalse;
+    }
+
+//==============================================================================
+// CNSmlDmMMSAdapter::StreamCommittedL()
+//==============================================================================
+void CNSmlDmMMSAdapter::StreamCommittedL()
+    {
+    //Not supported
+    }
+// -----------------------------------------------------------------------------
+// CNSmlDmMMSAdapter::CompleteOutstandingCmdsL()
+// Indication of message ending. The buffered commands must be executed before 
+// return of this function.
+// -----------------------------------------------------------------------------
+void CNSmlDmMMSAdapter::CompleteOutstandingCmdsL()
+    {
+    _DBG_FILE("CNSmlDmMMSAdapter::CompleteOutstandingCmdsL(): begin");
+    if(iStatusRef!=KNSmlMMSUndefinedStatusRef)
+        {
+        Callback().SetStatusL(iStatusRef,UpdateMMSAddrL());
+        delete iMMSSAddr;
+        iMMSSAddr = 0;
+        iStatusRef = KNSmlMMSUndefinedStatusRef;
+        }
+    StoreSettingsL();
+    _DBG_FILE("CNSmlDmMMSAdapter::CompleteOutstandingCmdsL(): end");
+    }
+
+// -----------------------------------------------------------------------------
+// CNSmlDmMMSAdapter::HandleSessionEventL()
+// Inherited from MMsvSessionObserver, and this is needs to implemented for 
+// opening the CMsvSession
+// -----------------------------------------------------------------------------
+void CNSmlDmMMSAdapter::HandleSessionEventL( TMsvSessionEvent /*aEvent*/, 
+                                             TAny* /*aArg1*/, 
+                                             TAny* /*aArg2*/, 
+                                             TAny* /*aArg3*/ )
+    {
+    }
+
+
+// -----------------------------------------------------------------------------
+// CSmlDmAdapter::TError CNSmlDmMMSAdapter::UpdateDataL()
+// The function is used for updating the MMS settings. The function is used in 
+// AddLeafObjectL() and UpdateLeafObjectL()
+// -----------------------------------------------------------------------------
+CSmlDmAdapter::TError CNSmlDmMMSAdapter::UpdateDataL(const TDesC8& aURI, 
+                                                     const TDesC8& /*aParentLUID*/,
+                                                     const TDesC8& aObject, 
+                                                     TInt aStatusRef)
+    {
+    _DBG_FILE("CNSmlDmMMSAdapter::UpdateDataL(): begin");
+    HBufC8* data = NULL;
+    TRAPD(err, CreateMMSClientL());
+    if(err!=KErrNone)
+        {
+        _DBG_FILE("CNSmlDmMMSAdapter::UpdateDataL(): EError end");
+        return CSmlDmAdapter::EError;
+        }
+
+    TMsvId id = iMmsSettings->Service();
+
+    if( id == KMsvNullIndexEntryId || aURI.Find( KNSmlDMMMSAccount8 )
+        ==KErrNotFound )
+        {
+        _DBG_FILE("CNSmlDmMMSAdapter::UpdateDataL(): ENotFound end");
+        return CSmlDmAdapter::ENotFound;
+        }
+
+    TPtrC8 uriSeg = LastURISeg(aURI);
+    CSmlDmAdapter::TError status = CSmlDmAdapter::EOk;
+
+    if(uriSeg.Compare(KNSmlDMMMSName)==0)
+        {
+        // Not supported.
+        _DBG_FILE("CNSmlDmMMSAdapter::UpdateDataL(): ENotFound end");
+        status = CSmlDmAdapter::ENotFound;
+        }
+    else if(uriSeg.Compare(KNSmlDMMMSMMRecep)==0)
+        {
+        data = aObject.AllocLC();
+        TPtr8 dataPtr = data->Des();
+        dataPtr.Capitalize();
+        if(dataPtr.Find(KNSmlDMMMSValueAlwaysOn)==0)
+            {
+            iMmsSettings->SetReceivingModeHome(EMmsReceivingAutomatic);
+            iMmsSettings->SetReceivingModeForeign(EMmsReceivingAutomatic);
+            }
+        else if(dataPtr.Compare(KNSmlDMMMSValueOff)==0)
+            {
+            iMmsSettings->SetReceivingModeHome(EMmsReceivingReject);
+            iMmsSettings->SetReceivingModeForeign(EMmsReceivingReject);
+            }
+        else if(dataPtr.Find(KNSmlDMMMSValueAutomaticAtHome)==0)
+            {
+            iMmsSettings->SetReceivingModeHome(EMmsReceivingAutomatic);
+            iMmsSettings->SetReceivingModeForeign(EMmsReceivingReject);
+            }
+        else if (dataPtr.Find(KNSmlDMMMSValueAlwaysManual2)==0 ||
+                 dataPtr.Find(KNSmlDMMMSValueAlwaysManual)==0 )
+            {
+            iMmsSettings->SetReceivingModeHome(EMmsReceivingManual);
+            iMmsSettings->SetReceivingModeForeign(EMmsReceivingManual);
+            }
+        else
+            {
+            status = CSmlDmAdapter::EInvalidObject;
+            }
+        CleanupStack::PopAndDestroy(); //data
+        }
+    else if(uriSeg.Compare(KNSmlDMMMSCreMode)==0)
+        {
+        data = aObject.AllocLC();
+        TPtr8 dataPtr = data->Des();
+        dataPtr.Capitalize();
+        if(dataPtr.Find(KNSmlDMMMSValueFree)==0)
+            {
+            iMmsSettings->SetCreationMode(EMmsCreationModeFree);
+            }
+        else if(dataPtr.Find(KNSmlDMMMSValueRestricted)==0)
+            {
+               iMmsSettings->SetImageWidth(KImageRichWidth);
+               iMmsSettings->SetImageHeight(KImageRichHeight);
+               iMmsSettings->SetCreationMode(EMmsCreationModeRestricted);
+            }
+        else if(dataPtr.Find(KNSmlDMMMSValueWarning)==0)
+            {
+            iMmsSettings->SetCreationMode(EMmsCreationModeWarning);
+            }
+        else
+            {
+            status = CSmlDmAdapter::EInvalidObject;
+            }
+        CleanupStack::PopAndDestroy(); //data
+        }
+    else if( uriSeg.Compare(KNSmlDMMMSAMsg) == 0 )
+        {
+        data = aObject.AllocLC();
+        TPtr8 dataPtr = data->Des();
+        dataPtr.Capitalize();
+        TBool object=EFalse;
+        if(dataPtr.Find(KNSmlDMMMSValueTrue)>=0)
+            {
+            object = ETrue;
+            }
+        iMmsSettings->SetAcceptAnonymousMessages(object);
+        CleanupStack::PopAndDestroy(); //data
+        }
+    else if( uriSeg.Compare(KNSmlDMMMSRcvAds) == 0 )
+        {
+        data = aObject.AllocLC();
+        TPtr8 dataPtr = data->Des();
+        dataPtr.Capitalize();
+        TBool object=EFalse;
+        if(dataPtr.Find(KNSmlDMMMSValueTrue)>=0)
+            {
+            object = ETrue;
+            }
+        iMmsSettings->SetAcceptAdvertisementMessages(object);
+        CleanupStack::PopAndDestroy(); //data
+        }
+    else if(uriSeg.Compare(KNSmlDMMMSImgSize)==0)
+        {
+        data = aObject.AllocLC();
+        TPtr8 dataPtr = data->Des();
+        dataPtr.Capitalize();
+        if(dataPtr.Compare(KNSmlDMMMSValueLarge)==0)
+            {
+             switch(iMmsSettings->CreationMode())
+            {
+                case EMmsCreationModeRestricted:
+                status = CSmlDmAdapter::EInvalidObject;
+                break;
+                default : 
+                iMmsSettings->SetImageWidth(KImageMegapixelWidth);
+                iMmsSettings->SetImageHeight(KImageMegapixelHeight);
+                break;
+            }
+            iImgSizeStatusRef = KNSmlMMSUndefinedStatusRef;
+            }
+        else if(dataPtr.Compare(KNSmlDMMMSValueSmall)==0)
+            {
+            iMmsSettings->SetImageWidth(KImageRichWidth);
+            iMmsSettings->SetImageHeight(KImageRichHeight);
+            iImgSizeStatusRef = KNSmlMMSUndefinedStatusRef;
+            }
+        else
+            {
+            status = CSmlDmAdapter::EInvalidObject;
+            }
+        CleanupStack::PopAndDestroy(); //data
+        }
+    else if(uriSeg.Compare(KNSmlDMMMSDRepSnd)==0)
+        {
+        data = aObject.AllocLC();
+        TPtr8 dataPtr = data->Des();
+        dataPtr.Capitalize();
+        if(dataPtr.Compare(KNSmlDMMMSValueFalse)==0)
+            {
+            iMmsSettings->SetDeliveryReportSendingAllowed(KMmsYes);
+            }
+        else
+            {
+            iMmsSettings->SetDeliveryReportSendingAllowed(KMmsNo);
+            }
+        CleanupStack::PopAndDestroy(); //data
+        }
+    else if(uriSeg.Compare(KNSmlDMMMSRcvRep)==0)
+        {
+        data = aObject.AllocLC();
+        TPtr8 dataPtr = data->Des();
+        dataPtr.Capitalize();
+        if(dataPtr.Compare(KNSmlDMMMSValueTrue)==0)
+            {
+            iMmsSettings->SetDeliveryReportWanted(KMmsYes);
+            }
+        else
+            {
+            iMmsSettings->SetDeliveryReportWanted(KMmsNo);
+            }
+        CleanupStack::PopAndDestroy(); //data
+        }
+    else if(uriSeg.Compare(KNSmlDMMMSMsgVal)==0)
+        {
+        data = aObject.AllocLC();
+        TPtr8 dataPtr = data->Des();
+        dataPtr.LowerCase();
+        if(dataPtr.Compare(KNSmlDMMMSValueHour)==0 ||
+           dataPtr.Compare(KNSmlDMMMSValueHourShort)==0)
+            {
+            iMmsSettings->SetExpiryInterval(KNSmlDMMMSExpiryHour);
+            }
+        else if(dataPtr.Find(KNSmlDMMMSValueSixHoursShort)==0 ||
+                dataPtr.Find(KNSmlDMMMSValueSixHoursShortNum)==0)
+            {
+            iMmsSettings->SetExpiryInterval(KNSmlDMMMSExpirySixHours);
+            }
+        else if(dataPtr.Find(KNSmlDMMMSValueDayShort)==0)
+            {
+            iMmsSettings->SetExpiryInterval(KNSmlDMMMSExpiryDay);
+            }
+        else if(dataPtr.Find(KNSmlDMMMSValueThreeDaysShort)==0 ||
+                dataPtr.Find(KNSmlDMMMSValueThreeDaysShortNum)==0)
+            {
+            iMmsSettings->SetExpiryInterval(KNSmlDMMMSExpiryThreeDays);
+            }
+        else if(dataPtr.Find(KNSmlDMMMSValueWeekShort)>=0)
+            {
+            iMmsSettings->SetExpiryInterval(KNSmlDMMMSExpiryWeek);
+            }
+        else if(dataPtr.Find(KNSmlDMMMSValueMaximumTimeShort)==0)
+            {
+            iMmsSettings->SetExpiryInterval(KNSmlDMMMSExpiryMaximum);
+            }
+        else
+            {
+            status = CSmlDmAdapter::EInvalidObject;
+            }
+        CleanupStack::PopAndDestroy(); //data
+        }
+    else if(uriSeg.Compare(KNSmlDMMMSMToNapIDL)==0)
+        {
+        TPtrC8 seg=LastURISeg(RemoveLastURISeg(aURI));
+        if( seg.Compare(KNSmlDMMMSDynamicPrimary)==0 )
+            {
+            CNSmlDMIAPMatcher* iapmatch = CNSmlDMIAPMatcher::NewL( &Callback() );
+            CleanupStack::PushL(iapmatch);
+            
+            TInt iap = iapmatch->IAPIdFromURIL( aObject );
+
+            CleanupStack::PopAndDestroy(); // iapmatch
+            
+            if ( iap != KErrNotFound )
+                {
+                TRAP(err, iap = GetIapIdL( iap ) );
+                DBG_ARGS(_S("IAP = %d"), iap);
+
+                if( err == KErrNone)
+                    {
+                    ReplaceAPL( iap, KNSmlDMMMSFirstAccessPointId );
+                    }
+                else
+                    {
+                    _DBG_FILE("CNSmlDmMMSAdapter::UpdateDataL(): \
+                    err!=KErrNone");
+                    iap = KNSmlDMMMSIapNotDefined;
+                    status = CSmlDmAdapter::EInvalidObject;
+                    }
+                }
+            else
+                {
+                _DBG_FILE("CNSmlDmMMSAdapter::UpdateDataL(): status = \
+                CSmlDmAdapter::EInvalidObject");
+                status = CSmlDmAdapter::EInvalidObject;
+                }
+            }
+        else
+            {
+            if( status == CSmlDmAdapter::EOk )
+                {
+                status = CSmlDmAdapter::ENotFound;
+                }
+            }
+        }
+    else if(uriSeg.Compare(KNSmlDMMMSMMSSAddr)==0)
+        {
+        if(iMMSSAddr)
+            {
+            delete iMMSSAddr;
+            iMMSSAddr = 0;
+            }
+        if(iStatusRef != KNSmlMMSUndefinedStatusRef)
+            {
+            Callback().SetStatusL(iStatusRef,CSmlDmAdapter::EError);
+            }
+        iMMSSAddr = aObject.AllocL();
+        iStatusRef = aStatusRef;
+        }
+
+    _DBG_FILE("CNSmlDmMMSAdapter::UpdateDataL(): end");
+    return status;
+    }
+
+// -----------------------------------------------------------------------------
+// void CNSmlDmMMSAdapter::ReplaceAP( TInt aIapId, TInt aPos )
+// replace AP, if no AP exitst in aPos then just add it.
+// -----------------------------------------------------------------------------
+void CNSmlDmMMSAdapter::ReplaceAPL( TInt aIapId, TInt aPos )
+    {
+    if( iMmsSettings->AccessPoint( aPos ) != KErrNotFound )
+        {
+        iMmsSettings->DeleteAccessPointL( aPos );
+        }
+    iMmsSettings->AddAccessPointL( aIapId, aPos );
+    }
+
+// -----------------------------------------------------------------------------
+// CNSmlDmMMSAdapter::UpdateMMSAddrL()
+// Executes the buffered MMSSAddr update command. 
+// This command is called from CompleteOutstandingCmdsL() 
+// -----------------------------------------------------------------------------
+CSmlDmAdapter::TError CNSmlDmMMSAdapter::UpdateMMSAddrL()
+    {
+    _DBG_FILE("CNSmlDmMMSAdapter::UpdateMMSAddrL(): begin");
+    CSmlDmAdapter::TError status = CSmlDmAdapter::EOk;
+
+    TBool ok = EFalse;
+    TUint32 wapid = iMmsSettings->AccessPoint(KNSmlDMMMSFirstAccessPointId);
+    
+    //Check if locked , if locked unlock else execute normal sequence.
+        
+        TBool reclock = EFalse;
+        TBool lockerror =KErrNone;
+        reclock = IsWAPAccessPointRecordLockedL(wapid);
+        if(reclock)
+        {
+        	_DBG_FILE("CNSmlDmMMSAdapter::UpdateMMSAddrL():making record unlock");
+        	//unlock the record
+        	lockerror = DoProtectWAPAccessRecordL(wapid,EFalse);
+        	_DBG_FILE("CNSmlDmMMSAdapter::UpdateMMSAddrL():record unlocked with error as ");
+        	DBG_ARGS(_S("err = %d"), lockerror);
+        }
+        
+    
+    CCommsDbTableView* tableView=0;
+    tableView = iDatabase->OpenViewMatchingUintLC(TPtrC(WAP_ACCESS_POINT),
+                                               TPtrC(COMMDB_ID), wapid );        
+    if(tableView->GotoFirstRecord()==KErrNone)
+        {
+        _DBG_FILE("CNSmlDmMMSAdapter::UpdateMMSAddrL(): GotoFirstRecord");
+        
+        
+        //If it was unlocked, lock it again
+        
+        if(lockerror == KErrNone)
+        {
+        	TInt err = tableView->UpdateRecord();
+        	if(err == KErrNone)
+        	{
+        		HBufC* object = HBufC::NewLC(iMMSSAddr->Length());
+        TPtr obPtr = object->Des();
+        CnvUtfConverter::ConvertToUnicodeFromUtf8( obPtr, *iMMSSAddr);
+
+        TRAPD(err,tableView->WriteLongTextL(TPtrC(WAP_START_PAGE),obPtr));
+        DBG_ARGS(_S("err = %d"), err);
+        if(err==KErrNone)
+            {
+            _DBG_FILE("CNSmlDmMMSAdapter::UpdateMMSAddrL(): Write OK");
+            tableView->PutRecordChanges();
+            ok = ETrue;
+            }
+        CleanupStack::PopAndDestroy(); //object
+        
+        	}
+        	
+        }
+        
+        }
+    CleanupStack::PopAndDestroy(1); //tableview  //, commDb--iDatabase
+if(reclock)
+        	{
+        		TInt err = DoProtectWAPAccessRecordL(wapid,ETrue);
+        	_DBG_FILE("CNSmlDmMMSAdapter::UpdateMMSAddrL():record again locked with error as ");
+        	 DBG_ARGS(_S("err = %d"), err);
+        	 reclock = EFalse;
+        	}
+    if(!ok)
+        {
+        status = CSmlDmAdapter::EError;
+        }
+
+    _DBG_FILE("CNSmlDmMMSAdapter::UpdateMMSAddrL(): end");
+    return status;
+    }
+
+// -----------------------------------------------------------------------------
+// CNSmlDmMMSAdapter::DesToInt()
+// Converts a 16 bit descriptor to TInt
+// -----------------------------------------------------------------------------
+TInt CNSmlDmMMSAdapter::DesToInt(const TDesC& aLuid)
+    {
+    TLex16 lex(aLuid);
+    TInt value = 0;
+    lex.Val(value);
+    return value;
+    }
+
+
+// -----------------------------------------------------------------------------
+// TPtrC8 CNSmlDmMMSAdapter::RemoveLastURISeg(const TDesC8& aURI)
+// returns parent uri, i.e. removes last uri segment
+// -----------------------------------------------------------------------------
+TPtrC8 CNSmlDmMMSAdapter::RemoveLastURISeg(const TDesC8& aURI)
+    {
+    TInt i;
+    for(i=aURI.Length()-1;i>=0;i--)
+        {
+        if(aURI[i]==KNSmlDMMMSSeparatorDef)
+            {
+            break;
+            }
+        }
+    return aURI.Left(i);
+    }
+
+
+
+// -----------------------------------------------------------------------------
+// TInt CNSmlDmMMSAdapter::NumOfURISegs(const TDesC8& aURI)
+// Returns the num of uri segs
+// -----------------------------------------------------------------------------
+TInt CNSmlDmMMSAdapter::NumOfURISegs(const TDesC8& aURI)
+    {
+    TInt numOfURISegs = 1;
+    for(TInt i=0;i<aURI.Length();i++)
+        {
+        if(aURI[i]==KNSmlDMMMSSeparatorDef)
+            {
+            numOfURISegs++;
+            }
+        }
+    return numOfURISegs;
+    }
+
+
+// -----------------------------------------------------------------------------
+// TPtrC8 CNSmlDmMMSAdapter::LastURISeg(const TDesC8& aURI)
+// Returns only the last uri segemnt
+// -----------------------------------------------------------------------------
+TPtrC8 CNSmlDmMMSAdapter::LastURISeg(const TDesC8& aURI)
+    {
+    _DBG_FILE("CNSmlDmMMSAdapter::LastURISeg() : begin");
+    TInt i;
+    for(i=aURI.Length()-1;i>=0;i--)
+        {
+        if(aURI[i]==KNSmlDMMMSSeparatorDef)
+            {
+            break;
+            }
+        }
+    _DBG_FILE("CNSmlDmMMSAdapter::LastURISeg() : end");
+    if(i==0)
+        {
+        return aURI;
+        }
+    else
+        {
+        return aURI.Mid(i+1);
+        }
+    }
+
+
+// -----------------------------------------------------------------------------
+// CNSmlDmMMSAdapter::CreateMMSClientL()
+// Creates MMS client mtm
+// -----------------------------------------------------------------------------
+void CNSmlDmMMSAdapter::CreateMMSClientL()
+    {
+    if(iMmsClient ==0)
+        {
+        iMsvSession = CMsvSession::OpenSyncL( *this );
+        iClientMtmRegistry = CClientMtmRegistry::NewL(* iMsvSession );
+        iMmsClient = (CMmsClientMtm *) iClientMtmRegistry->
+            NewMtmL( KUidMsgTypeMultimedia );
+        iMmsClient->RestoreSettingsL();
+        iMmsSettings = CMmsSettings::NewL();
+        iMmsSettings->CopyL( iMmsClient->MmsSettings() );
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CNSmlDmMMSAdapter::FillNodeInfoL()
+// Fills the node info in ddf structure
+// -----------------------------------------------------------------------------
+void CNSmlDmMMSAdapter::FillNodeInfoL( MSmlDmDDFObject& aNode,
+                                       TSmlDmAccessTypes aAccTypes,
+                                       MSmlDmDDFObject::TOccurence aOccurrence, 
+                                       MSmlDmDDFObject::TScope aScope, 
+                                       MSmlDmDDFObject::TDFFormat aFormat,
+                                       const TDesC8& aDescription)
+    {
+    aNode.SetAccessTypesL(aAccTypes);
+    aNode.SetOccurenceL(aOccurrence);
+    aNode.SetScopeL(aScope);
+    aNode.SetDFFormatL(aFormat);
+    if(aFormat!=MSmlDmDDFObject::ENode)
+        {
+        aNode.AddDFTypeMimeTypeL(KNSmlDMMMSTextPlain);
+        }
+    aNode.SetDescriptionL(aDescription);
+
+    }
+
+// -----------------------------------------------------------------------------
+// CSmlDmAdapter::TError FetchObjectL(const TDesC8& aURI, const TDesC8& aObject)
+// Fetches data object and returns it in parameter. 
+// Return values according to CSmlDmAdapter::TError.
+// -----------------------------------------------------------------------------
+CSmlDmAdapter::TError CNSmlDmMMSAdapter::FetchObjectL(const TDesC8& aURI, 
+                                                      CBufBase& aObject)
+    {
+    _DBG_FILE("CNSmlDmMMSAdapter::FetchObjectL(): begin");
+    TRAPD(err, CreateMMSClientL());
+    if(err!=KErrNone)
+        {
+        _DBG_FILE("CNSmlDmMMSAdapter::FetchObjectL(): EError end");
+        return CSmlDmAdapter::EError;
+        }
+
+    TMsvId id = iMmsSettings->Service();
+
+    if(id == KMsvNullIndexEntryId||aURI.Find(KNSmlDMMMSAccount8)==KErrNotFound)
+        {
+        _DBG_FILE("CNSmlDmMMSAdapter::FetchObjectL(): ENotFound end");
+        return CSmlDmAdapter::ENotFound;
+        }
+
+    TPtrC8 uriSeg = LastURISeg(aURI);
+    CSmlDmAdapter::TError status = CSmlDmAdapter::EOk;
+
+    if(uriSeg.Compare(KNSmlDMMMSName)==0)
+        {
+        status = CSmlDmAdapter::ENotFound;
+        }
+    else if(uriSeg.Compare(KNSmlDMMMSMMRecep)==0)
+        {
+        TMmsReceivingMode rcvHome = iMmsSettings->ReceivingModeHome();
+        TMmsReceivingMode rcvForeign = iMmsSettings->ReceivingModeForeign();
+        if ( rcvHome == EMmsReceivingAutomatic )
+            {
+            if ( rcvForeign == EMmsReceivingAutomatic )
+                {
+                aObject.InsertL( 0, KNSmlDMMMSValueAlwaysOn );
+                }
+            else
+                {
+                aObject.InsertL( 0, KNSmlDMMMSValueAutomaticAtHome );
+                }
+            }
+        else if ( rcvHome == EMmsReceivingReject )
+            {
+            aObject.InsertL( 0, KNSmlDMMMSValueOff );
+            }
+        else if ( rcvHome == EMmsReceivingManual )
+            {
+            aObject.InsertL( 0, KNSmlDMMMSValueAlwaysManual );
+            }
+        else
+            {
+            aObject.InsertL( 0, KNSmlDMMMSValueAutomaticAtHome );
+            }
+
+        }
+    else if(uriSeg.Compare(KNSmlDMMMSCreMode)==0)
+        {
+        switch(iMmsSettings->CreationMode())
+            {
+        case EMmsCreationModeWarning:
+            aObject.InsertL(0,KNSmlDMMMSValueWarning);
+            break;
+            
+        case EMmsCreationModeFree:
+            aObject.InsertL(0,KNSmlDMMMSValueFree);
+            break;
+
+        case EMmsCreationModeRestricted:
+            aObject.InsertL(0,KNSmlDMMMSValueRestricted);
+            break;
+
+        default:
+            aObject.InsertL(0,KNSmlDMMMSValueWarning);
+            break;
+            }
+        }
+    else if(uriSeg.Compare(KNSmlDMMMSAMsg)==0)
+        {
+        if(iMmsSettings->AcceptAnonymousMessages())
+            {
+            aObject.InsertL(0,KNSmlDMMMSValueTrue);
+            }
+        else
+            {
+            aObject.InsertL(0,KNSmlDMMMSValueFalse);
+            }
+        }
+    else if(uriSeg.Compare(KNSmlDMMMSRcvAds)==0)
+        {
+        if(iMmsSettings->AcceptAdvertisementMessages())
+            {
+            aObject.InsertL(0,KNSmlDMMMSValueTrue);
+            }
+        else
+            {
+            aObject.InsertL(0,KNSmlDMMMSValueFalse);
+            }
+        }
+    else if(uriSeg.Compare(KNSmlDMMMSImgSize)==0)
+        {
+        if( iMmsSettings->ImageWidth() == KImageRichWidth && 
+            iMmsSettings->ImageHeight() == KImageRichHeight )
+            {
+            aObject.InsertL(0,KNSmlDMMMSValueSmall);
+            }
+        else if ( iMmsSettings->ImageWidth() == KImageMegapixelWidth && 
+                  iMmsSettings->ImageHeight() == KImageMegapixelHeight )
+            {
+            aObject.InsertL(0,KNSmlDMMMSValueLarge);
+            }
+        }
+    else if(uriSeg.Compare(KNSmlDMMMSDRepSnd)==0)
+        {
+        if( iMmsSettings->DeliveryReportSendingAllowed() == KMmsYes)
+            {
+            aObject.InsertL(0,KNSmlDMMMSValueFalse);
+            }
+        else
+            {
+            aObject.InsertL(0,KNSmlDMMMSValueTrue);
+            }
+        }
+    else if(uriSeg.Compare(KNSmlDMMMSRcvRep)==0)
+        {
+        if( iMmsSettings->DeliveryReportWanted() == KMmsYes)
+            {
+            aObject.InsertL(0,KNSmlDMMMSValueTrue);
+            }
+        else
+            {
+            aObject.InsertL(0,KNSmlDMMMSValueFalse);
+            }
+        }
+    else if( uriSeg.Compare( KNSmlDMMMSMsgVal ) == 0 )
+        {
+        switch(iMmsSettings->ExpiryInterval())
+            {
+        case KNSmlDMMMSExpiryHour:
+            aObject.InsertL(0,KNSmlDMMMSValueHourShort);
+            break;
+            
+        case KNSmlDMMMSExpirySixHours:
+            aObject.InsertL(0,KNSmlDMMMSValueSixHours);
+            break;
+
+        case KNSmlDMMMSExpiryDay:
+            aObject.InsertL(0,KNSmlDMMMSValueDay);
+            break;
+
+        case KNSmlDMMMSExpiryThreeDays:
+            aObject.InsertL(0,KNSmlDMMMSValueThreeDays);
+            break;
+
+        case KNSmlDMMMSExpiryWeek:
+            aObject.InsertL(0,KNSmlDMMMSValueWeek);
+            break;
+
+        case KNSmlDMMMSExpiryMaximum:
+            aObject.InsertL(0,KNSmlDMMMSValueMaximumTime);
+            break;
+
+        default:
+            aObject.InsertL(0,KNSmlDMMMSValueThreeDays);
+            break;
+            }
+        }
+    else if(uriSeg.Compare(KNSmlDMMMSMToNapIDL)==0)
+        {
+        TUint32 iap = KNSmlDMMMSIapNotDefined;
+        TInt32 mmsIap = -1;
+        
+        
+        if(LastURISeg(RemoveLastURISeg(aURI)).Compare(
+               KNSmlDMMMSDynamicPrimary)==0)
+            {
+            mmsIap = iMmsSettings->AccessPoint( KNSmlDMMMSFirstAccessPointId );
+            }
+        
+        if(mmsIap != KErrNotFound )
+        	{
+        	iap = mmsIap;
+        	TRAPD(err, iap =GetIapIdL(iap) ); 
+        
+        	if( iap != KNSmlDMMMSIapNotDefined && err == KErrNone )
+            	{
+            	CNSmlDMIAPMatcher* iapmatch = CNSmlDMIAPMatcher::NewL( &Callback() );
+            	CleanupStack::PushL(iapmatch);
+    
+            	HBufC8* uri8 = iapmatch->URIFromIAPIdL( iap );
+                
+            if( uri8 )
+                {
+                CleanupStack::PushL(uri8);
+                aObject.InsertL(0,uri8->Des());
+                status = CSmlDmAdapter::EOk;
+                CleanupStack::PopAndDestroy(); // uri8
+                }                
+            		CleanupStack::PopAndDestroy(); // iapMatch
+            }        	
+        } 
+        }
+    else if(uriSeg.Compare(KNSmlDMMMSMMSSAddr)==0)
+        {
+        CCommsDatabase* commDb = CCommsDatabase::NewL(EDatabaseTypeIAP);
+        CleanupStack::PushL(commDb);
+
+        TBool ok = EFalse;
+
+        CCommsDbTableView* tableView=0;
+        
+        TInt apId = iMmsSettings->AccessPoint(KNSmlDMMMSFirstAccessPointId);
+        
+        if ( apId != KErrNotFound )
+            {
+            
+            tableView = commDb->OpenViewMatchingUintLC(TPtrC(WAP_ACCESS_POINT),
+                                                       TPtrC(COMMDB_ID),
+                                                       apId);
+
+            if(tableView->GotoFirstRecord()==KErrNone)
+                {
+                TBuf<KCommsDbSvrMaxFieldLength> columnValue;
+                HBufC* tmpPage;
+                tmpPage = tableView->ReadLongTextLC(TPtrC(WAP_START_PAGE));
+            
+                if(err==KErrNone)
+                    {
+                    HBufC8* val8 = HBufC8::NewLC(tmpPage->Size());
+                    TPtr8 valPtr = val8->Des();
+                    CnvUtfConverter::ConvertFromUnicodeToUtf8( valPtr, 
+                                                               *tmpPage);
+                    aObject.InsertL(0,valPtr);
+                    ok = ETrue;
+                    CleanupStack::PopAndDestroy(); //val8
+                    }
+                CleanupStack::PopAndDestroy(tmpPage);
+                }
+            CleanupStack::PopAndDestroy(); //tableview
+            }
+        CleanupStack::PopAndDestroy(); //commDb
+        if(!ok)
+            {
+            status = CSmlDmAdapter::EError;
+            }
+        }
+    else 
+        {
+        status = CSmlDmAdapter::ENotFound;
+        }
+    _DBG_FILE("CNSmlDmMMSAdapter::FetchObjectL(): end");
+    return status;
+    }
+
+// -----------------------------------------------------------------------------
+// void StoreSettingsL()
+// Stores the MMS settings to the phone.
+// 
+// -----------------------------------------------------------------------------
+void CNSmlDmMMSAdapter::StoreSettingsL()
+    {
+    _DBG_FILE("CNSmlDmMMSAdapter::StoreSettingsL(): begin");
+    if ( iMmsSettings && iMmsClient )
+        {
+        iMmsSettings->SaveSettingsL();
+        iMmsClient->SetSettingsL( *iMmsSettings );
+        }
+    _DBG_FILE("CNSmlDmMMSAdapter::StoreSettingsL(): end");
+    }
+
+// -----------------------------------------------------------------------------
+// CSmlDmAdapter::TError ValidateUriL( const TDesC8& aURI )
+// Validate URI, return error if not valid.
+// 
+// -----------------------------------------------------------------------------
+CSmlDmAdapter::TError CNSmlDmMMSAdapter::ValidateUriL( const TDesC8& aURI )
+    {
+    _DBG_FILE("CNSmlDmMMSAdapter::ValidateUriL(): begin");
+    CSmlDmAdapter::TError status = EOk;
+    TPtrC8 parentUri = RemoveLastURISeg(aURI);
+    switch ( NumOfURISegs( aURI ) )
+        {
+    case 3:
+        if ( parentUri.Match( KNSmlDMMMSLevel3Parents ) != 0 )
+            {
+            _DBG_FILE("CNSmlDmMMSAdapter::ValidateUriL(): 3");
+            status = ENotFound;
+            }
+        break;
+    case 5:
+        if ( parentUri.Match( KNSmlDMMMSLevel5Parents ) != 0 )
+            {
+            _DBG_FILE("CNSmlDmMMSAdapter::ValidateUriL(): 5");
+            status = ENotFound;
+            }
+        break;
+    case 7:
+        if ( parentUri.Match( KNSmlDMMMSLevel7Parents1 ) != 0 && 
+             parentUri.Match( KNSmlDMMMSLevel7Parents2 ) != 0)
+            {
+            _DBG_FILE("CNSmlDmMMSAdapter::ValidateUriL(): 7");
+            status = ENotFound;
+            }
+        break;
+    default:
+        status = ENotFound;
+        break;
+
+        }
+    _DBG_FILE("CNSmlDmMMSAdapter::ValidateUriL(): end");
+    return status;
+    }
+
+// -----------------------------------------------------------------------------
+// TImplementationProxy ImplementationTable[]
+// Needed because of ECOM architecture
+// -----------------------------------------------------------------------------
+
+#ifndef IMPLEMENTATION_PROXY_ENTRY
+#define IMPLEMENTATION_PROXY_ENTRY(aUid, aFuncPtr)  {{aUid},(aFuncPtr)}
+#endif
+
+const TImplementationProxy ImplementationTable[] = 
+    {
+    IMPLEMENTATION_PROXY_ENTRY(KNSmlDMMMSAdapterImplUid, 
+                               CNSmlDmMMSAdapter::NewL)
+    };
+
+// -----------------------------------------------------------------------------
+// ImplementationGroupProxy()
+// Needed because of ECOM architecture
+// -----------------------------------------------------------------------------
+EXPORT_C const TImplementationProxy* ImplementationGroupProxy( TInt& 
+                                                               aTableCount )
+    {
+    _DBG_FILE("ImplementationGroupProxy() for CNSmlDmMMSAdapter: begin");
+    aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
+    _DBG_FILE("ImplementationGroupProxy() for CNSmlDmMMSAdapter: end");
+    return ImplementationTable;
+    }
+
+
+//----------------------------------------------------------------------
+//TBool CNSmlDmMMSAdapter::IsWAPAccessPointRecordLockedL(TUint32 aRecord)
+//check for wap access point record  lock status 
+//----------------------------------------------------------------------
+    
+TBool CNSmlDmMMSAdapter::IsWAPAccessPointRecordLockedL(TUint32 aRecord)
+	{
+	_DBG_FILE("CNSmlDmMMSAdapter::IsWAPAccessPointRecordLockedL():  BEGIN");	
+	
+	TBool ret = EFalse;
+    CCommsDbTableView* wapView;
+    DBG_ARGS8(_S8("CNSmlDmMMSAdapter::IsWAPAccessPointRecordLockedL record being checked = %d"),aRecord);
+    wapView = iDatabase->OpenViewMatchingUintLC(TPtrC(WAP_ACCESS_POINT),
+                                                            TPtrC(COMMDB_ID),
+                                                            aRecord);
+      	                                                      
+    TInt aAccess( 0 );
+    if(wapView!=NULL)
+    	{
+   		_DBG_FILE("CNSmlDmMMSAdapter::IsWAPAccessPointRecordLockedL():wap record exists, check for access type");	
+    	TInt err = (((CCommsDbProtectTableView*) wapView )->GetRecordAccess( aAccess ) );
+    	DBG_ARGS8(_S8("CNSmlDmMMSAdapter::IsWAPAccessPointRecordLockedL , GetrecordAccess code is =%d and acess type of record = %d"),err, aAccess);
+    	CleanupStack::PopAndDestroy( wapView);                                            
+    	if(aAccess == RDbRowSet::EReadOnly)                                                    
+       		ret = ETrue;
+    	}
+    
+    _DBG_FILE("CNSmlDmMMSAdapter::IsWAPAccessPointRecordLockedL():  END");	
+    return ret;
+        		
+	}
+//----------------------------------------------------------------------
+//TBool CNSmlDmMMSAdapter::DoProtectWAPAccessRecordL(TUint32 aRecord,TBool aProtect)
+// protect or unprotect wapaccesspoint record of access point being altered 
+//----------------------------------------------------------------------
+
+
+TInt CNSmlDmMMSAdapter::DoProtectWAPAccessRecordL(TUint32 aRecord,TBool aProtect)
+	{
+	_DBG_FILE("CNSmlDmMMSAdapter::DoProtectWAPAccessRecordL():  BEGIN");	
+	DBG_ARGS8(_S8("CNSmlDmMMSAdapter::DoProtectWAPAccessRecordL , record and protect value  =%d  = %d"),aRecord, aProtect);
+	TInt err = KErrNone;
+	
+	CCommsDbTableView* wapView;
+    wapView = iDatabase->OpenViewMatchingUintLC(TPtrC(WAP_ACCESS_POINT),
+                                                            TPtrC(COMMDB_ID),
+                                                            aRecord);
+	if( wapView != NULL )
+		{
+		_DBG_FILE("CNSmlDmMMSAdapter::DoProtectWAPAccessRecordL():  wap record exists");	
+		if( !aProtect )
+    		{
+    		err = ( (CCommsDbProtectTableView*) wapView )->UnprotectRecord();
+    		DBG_ARGS8(_S8("CNSmlDmMMSAdapter::DoProtectWAPAccessRecordL ,error code of Unprotectrecord = %d"),err);
+        	}
+     			
+     	else
+     		{
+     		err = ( (CCommsDbProtectTableView*) wapView )->ProtectRecord();
+     		DBG_ARGS8(_S8("CNSmlDmMMSAdapter::DoProtectWAPAccessRecordL ,error code of ProtectRecord = %d"),err);	
+     		}
+  
+  		CleanupStack::PopAndDestroy( wapView);
+		}
+   	
+	_DBG_FILE("CNSmlDmMMSAdapter::DoProtectWAPAccessRecordL():  END");	
+	return err;
+	}
+
+
+	
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/mms/src/nsmldmmmsadapter.rss	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,69 @@
+/*
+* Copyright (c) 2009 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 adapters
+* 	This is part of omadmextensions.
+*
+*/
+
+
+CHARACTER_SET UTF8
+
+/*
+* ============================================================================
+*  Name     : 101f6e36.rss
+*  Part of  : SyncMl
+*  Interface: ecom / SmlDmAdapter
+*  Origin   : SyncML Phase 2 
+*  Created  : 06.03.2003
+*  Implementation notes:
+*     
+*  Version  : 0.1
+*   $Revision: 4 $, $Modtime: 6.06.05 10:28 $ 
+*  ---------------------------------------------------------------------------
+*  Version history:
+*  Template version: 1.02, 21.6.2000 by maparnan
+*  <ccm_history>
+*  </ccm_history>
+* ============================================================================
+*/
+
+
+
+#include <registryinfo.rh>
+#include "nsmldmconstants.h"
+
+RESOURCE REGISTRY_INFO theRegistryInfo
+  {
+  dll_uid = 0x101F6E36; //The DLL's 3rd UID.
+  interfaces = 
+      {
+      INTERFACE_INFO
+          {
+          interface_uid = KNSmlDMInterfaceUid; // DM interface UID
+          implementations = 
+            {
+            IMPLEMENTATION_INFO
+                {
+                implementation_uid = 0x101F6E37; // DM MMS implementation UID
+                version_no = 1; 
+                display_name = "";
+                default_data = "";
+                opaque_data = "";
+                }
+            };
+          }
+      };
+    }
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/mms/tsrc/bwins/mmstestu.def	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,3 @@
+EXPORTS
+	?LibEntryL@@YAPAVCScriptBase@@AAVCTestModuleIf@@@Z @ 1 NONAME ; class CScriptBase * LibEntryL(class CTestModuleIf &)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/mms/tsrc/conf/mmstest.cfg	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,111 @@
+[Test]
+title DDF
+create mmstest foobar jee
+foobar DDFStructure
+delete foobar
+[Endtest] 
+
+[Test]
+title StartAtomic
+create mmstest foobar
+foobar StartAtomic
+delete foobar
+[Endtest]
+
+[Test]
+title CommitAtomic
+create mmstest foobar
+foobar CommitAtomic
+delete foobar
+[Endtest]
+
+[Test]
+title RollbackAtomic
+create mmstest foobar
+foobar RollbackAtomic
+delete foobar
+[Endtest]
+
+[Test]
+title UpdateMMSSAddr
+create mmstest foobar
+foobar UpdateLeaf MMS/MMSAcc/Con/DCon/MMSSAddr newname99
+delete foobar
+[Endtest]
+
+[Test]
+title UpdateMToNapIDL
+create mmstest foobar
+foobar UpdateLeaf MMS/MMSAcc/Con/DCon/MToNapID/Primary/MToNapIDL AP/APId000
+delete foobar
+[Endtest]
+
+[Test]
+title FetchNodemms
+create mmstest foobar
+foobar FetchNode MMS/MMSAcc/Con/DCon
+delete foobar
+[Endtest]
+
+[Test]
+title FetchMMSSAddr
+create mmstest foobar
+foobar FetchLeaf MMS/MMSAcc/Con/DCon/MMSSAddr
+delete foobar
+[Endtest]
+
+[Test]
+title FetchMToNapIDL
+create mmstest foobar
+foobar FetchLeaf MMS/MMSAcc/Con/DCon/MToNapID/Primary/MToNapIDL
+delete foobar
+[Endtest]
+
+[Test]
+title FetchCreMode
+create mmstest foobar
+foobar FetchLeaf MMS/MMSAcc/CreMode
+delete foobar
+[Endtest]
+
+[Test]
+title FetchDRepSnd
+create mmstest foobar
+foobar FetchLeaf MMS/MMSAcc/DRepSnd
+delete foobar
+[Endtest]
+
+[Test]
+title FetchImgSize
+create mmstest foobar
+foobar FetchLeaf MMS/MMSAcc/ImgSize
+delete foobar
+[Endtest]
+
+[Test]
+title FetchMMRecep
+create mmstest foobar
+foobar FetchLeaf MMS/MMSAcc/MMRecep
+delete foobar
+[Endtest]
+
+[Test]
+title FetchMsgVal
+create mmstest foobar
+foobar FetchLeaf MMS/MMSAcc/MsgVal
+delete foobar
+[Endtest]
+
+[Test]
+title FetchRcvAds
+create mmstest foobar
+foobar FetchLeaf MMS/MMSAcc/RcvAds
+delete foobar
+[Endtest]
+
+[Test]
+title FetchRcvRep
+create mmstest foobar
+foobar FetchLeaf MMS/MMSAcc/RcvRep
+delete foobar
+[Endtest]
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/mms/tsrc/eabi/mmstestu.def	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,9 @@
+EXPORTS
+	_Z9LibEntryLR13CTestModuleIf @ 1 NONAME
+	_ZTI16CTestDmDDFObject @ 2 NONAME ; #<TI>#
+	_ZTI8Cdmatest @ 3 NONAME ; #<TI>#
+	_ZTI8CmmsTest @ 4 NONAME ; #<TI>#
+	_ZTV16CTestDmDDFObject @ 5 NONAME ; #<VT>#
+	_ZTV8Cdmatest @ 6 NONAME ; #<VT>#
+	_ZTV8CmmsTest @ 7 NONAME ; #<VT>#
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/mms/tsrc/group/bld.inf	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,55 @@
+/*
+* 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.
+*
+*/
+
+
+
+
+
+
+PRJ_PLATFORMS
+// specify the platforms your component needs to be built for here
+// defaults to WINS MARM so you can ignore this if you just build these
+DEFAULT
+
+PRJ_TESTEXPORTS
+// NOTE: If using ARS requirements all export operations should be done under this.
+// 'abld test export'
+
+PRJ_EXPORTS
+// Specify the source file followed by its destination here
+// copy will be used to copy the source file to its destination
+// If there's no destination then the source file will be copied
+// to the same name in /epoc32/include
+// Example: 
+
+
+PRJ_TESTMMPFILES
+// NOTE: If using ARS requirements .mmp file operation should be done under this.
+// 'abld test build'
+mmstest.mmp
+
+PRJ_MMPFILES
+// Specify the .mmp files required for building the important component
+// releasables.
+//
+// Specify "tidy" if the component you need to build doesn't need to be
+// released. Specify "ignore" if the MMP file exists but should be
+// ignored.
+// Example:
+
+//  End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/mms/tsrc/group/mmstest.mmp	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,65 @@
+/*
+* 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 <platform_paths.hrh>
+
+TARGET          mmstest.dll
+TARGETTYPE      dll
+UID             0x1000008D 0x101FB3E3
+
+CAPABILITY	ALL -TCB
+/* Remove comments and replace 0x00000000 with correct vendor id */
+// VENDORID 	0x00000000
+
+//TARGETPATH      ?target_path
+DEFFILE         mmstest.def
+
+SOURCEPATH      ../src
+SOURCE          dmatest.cpp
+SOURCE          TestDmDDFObject.cpp
+SOURCE          mmstest.cpp
+SOURCE          mmstestBlocks.cpp
+
+
+USERINCLUDE     ../inc 
+USERINCLUDE		  ../../inc
+
+APP_LAYER_SYSTEMINCLUDE
+SYSTEMINCLUDE   /epoc32/include/ecom
+ 
+
+LIBRARY         apgrfx.lib apmime.lib
+LIBRARY         euser.lib ecom.lib
+LIBRARY         stiftestinterface.lib
+LIBRARY         stiftestengine.lib
+LIBRARY         efsrv.lib
+LIBRARY         estor.lib 
+LIBRARY         SWInstCli.lib
+LIBRARY     		msgs.lib charconv.lib nsmldebug.lib 
+LIBRARY 				commdb.lib apengine.lib mmsserversettings.lib
+
+LANG			SC
+
+
+
+SMPSAFE
+// End of File
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/mms/tsrc/group/mmstest.pkg	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,38 @@
+;
+; 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.
+;
+
+;*Languages
+&EN
+;
+;*Standard SIS file header. This section specifies the package name,
+;application UID, and version/build numbers. Add the package TYPE here if needed.
+#{"mmstest"},(0x101FB3E8),1,0,1;
+;
+
+;*Unique (Non-Localised) Vendor name
+;This is used in combination with signing to prevent the unauthroized
+;upgrade ofa a package by someone other than the rightful vendor.
+:"Nokia"
+
+;*Localized Vendor Name
+;This specifies the localised vendor name(s) correspodning to language(s).
+%{"Nokia Test EN"}
+
+;*Files To Copy...<src> <destination>
+"\epoc32\release\armv5\urel\mmstest.dll" -"C:\sys\bin\mmstest.dll"
+"..\conf\mmstest.cfg"-"C:\TestFramework\mmstest.cfg"
+"..\init\mmstest.ini"-"C:\TestFramework\mmstest.ini"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/mms/tsrc/inc/TestDmDDFObject.h	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,203 @@
+/*
+* 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.
+*
+*/
+
+
+
+
+
+
+#ifndef __TESTDMDDFOBJECT_H
+#define __TESTDMDDFOBJECT_H
+
+//  INCLUDES
+//#include <?include_file>
+#include <smldmadapter.h>
+
+// CONSTANTS
+//const ?type ?constant_var = ?constant;
+
+// MACROS
+//#define ?macro ?macro_def
+
+// DATA TYPES
+//enum ?declaration
+//typedef ?declaration
+//extern ?data_type;
+
+// FUNCTION PROTOTYPES
+//?type ?function_name(?arg_list);
+
+// FORWARD DECLARATIONS
+class CStifLogger;
+
+// CLASS DECLARATION
+
+/**
+*  ?one_line_short_description.
+*  ?other_description_lines
+*
+*  @lib ?library
+*  @since Series ?XX ?SeriesXX_version
+*/
+class CTestDmDDFObject : public CBase, public MSmlDmDDFObject
+    {
+    public:  // Constructors and destructor
+        
+        /**
+        * Two-phased constructor.
+        */
+        static CTestDmDDFObject* NewL( CStifLogger *aLog );
+        static CTestDmDDFObject* NewLC( CStifLogger *aLog );
+        
+        /**
+        * Destructor.
+        */
+        virtual ~CTestDmDDFObject();
+
+    public: // New functions
+        
+        /**
+        * ?member_description.
+        * @since Series ?XX ?SeriesXX_version
+        * @param ?arg1 ?description
+        * @return ?description
+        */
+        //?type ?member_function( ?type ?arg1 );
+
+		virtual void SetNameL( const TDesC8& aName );
+		
+		void DumpL( const TDesC8& aParentName, TBool aFullDump = ETrue );
+		void ExternalizeL(RWriteStream& aStream) const;
+		
+		
+
+    public: // Functions from base classes
+    
+//sf-    *********************************
+    
+		void SetAccessTypesL( TSmlDmAccessTypes aAccessTypes );
+		void SetDefaultValueL( const TDesC8& aDefaultValue );
+		void SetDescriptionL( const TDesC8& aDescription );
+		void SetDFFormatL( TDFFormat aFormat );
+		void SetOccurenceL( TOccurence aOccurence );
+		void SetScopeL( TScope aScope );
+		void SetDFTitleL( const TDesC8& aTitle );
+		void AddDFTypeMimeTypeL( const TDesC8& aMimeType );
+		void SetAsObjectGroup();
+		MSmlDmDDFObject& AddChildObjectL(const TDesC8& aNodeName);
+		MSmlDmDDFObject& AddChildObjectGroupL();
+
+//sf-    #############################
+
+		const TDesC8& Name();
+		TSmlDmAccessTypes  AccessTypes();
+		const TDesC8& DefaultValue();
+		const TDesC8& Description();
+		TDFFormat DFFormat();
+		TOccurence Occurence();
+		TScope Scope();
+		const TDesC8& DFTitle();
+		const TDesC8& DFTypeMimeType();
+		TBool ObjectGroup();
+		
+		TInt ChildObjectCount();
+		CTestDmDDFObject& ChildObject( TInt aIndex );
+
+		CTestDmDDFObject* FindChildObject( const TDesC8& aName );
+		TInt SubObjectsCount();
+
+
+    protected:  // New functions
+        
+        /**
+        * ?member_description.
+        * @since Series ?XX ?SeriesXX_version
+        * @param ?arg1 ?description
+        * @return ?description
+        */
+        //?type ?member_function( ?type ?arg1 );
+
+    protected:  // Functions from base classes
+        
+        /**
+        * From ?base_class ?member_description
+        */
+        //?type ?member_function();
+
+    private:
+
+        /**
+        * C++ default constructor.
+        */
+        CTestDmDDFObject( CStifLogger *aLog );
+
+        /**
+        * By default Symbian 2nd phase constructor is private.
+        */
+        void ConstructL();
+
+        // Prohibit copy constructor if not deriving from CBase.
+        // CTestDmDDFObject( const CTestDmDDFObject& );
+        // Prohibit assigment operator if not deriving from CBase.
+        // CTestDmDDFObject& operator=( const CTestDmDDFObject& );
+
+    public:     // Data
+        // ?one_line_short_description_of_data
+        //?data_declaration;
+    
+    protected:  // Data
+        // ?one_line_short_description_of_data
+        //?data_declaration;
+
+    private:    // Data
+        // ?one_line_short_description_of_data
+        //?data_declaration;
+		HBufC8* iName;
+
+		TSmlDmAccessTypes iAccessTypes;
+		HBufC8* iDefaultValue;
+		HBufC8* iDescription;
+		TDFFormat iFormat;
+		TOccurence iOccurence;
+		TScope iScope;
+		HBufC8* iTitle;
+		HBufC8* iMimeType;
+		TBool iObjectGroup;
+		
+		RPointerArray<CTestDmDDFObject> iChildren;
+
+         
+        // Reserved pointer for future extension
+        //TAny* iReserved;
+
+    public:     // Friend classes
+        //?friend_class_declaration;
+    protected:  // Friend classes
+        //?friend_class_declaration;
+    private:    // Friend classes
+        //?friend_class_declaration;
+        /**
+        * Logger.
+        */
+        CStifLogger*    iLog;
+
+    };
+
+#endif      // __TESTDMDDFOBJECT_H
+            
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/mms/tsrc/inc/dmatest.h	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,278 @@
+/*
+* 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.
+*
+*/
+
+
+
+
+
+
+#ifndef __DMA_TEST_H__
+#define __DMA_TEST_H__
+
+//  INCLUDES
+#include <StifLogger.h>
+#include <TestScripterInternal.h>
+#include <StifTestModule.h>
+#include <apmstd.h>
+#include <smldmadapter.h>
+#include <commdb.h>
+#include "nsmldmmmsadapter.h"
+
+class Cdmatest;
+
+
+struct TMapping
+	{
+	TBuf8<256> iURI;
+	TBuf8<64> iLuid;
+	TMapping( const TDesC8 &aURI, const TDesC8 &aLuid )  : iURI( aURI ), iLuid( aLuid )
+	{
+		
+		}
+	};
+	
+typedef RArray<TMapping> RMappingArray;
+
+typedef void (Cdmatest::* ResultsFunction)( TInt , CBufBase& , const TDesC8&  ) ; 
+
+
+// CLASS DECLARATION
+
+/**
+*  ?one_line_short_description.
+*  ?other_description_lines
+*
+*  @lib ?library
+*  @since Series ?XX ?SeriesXX_version
+*/
+class Cdmatest : public CScriptBase, public MSmlDmCallback
+    {
+    
+    public:  // Constructors and destructor
+        
+        /**
+        * Destructor.
+        */
+        virtual ~Cdmatest();
+
+    public: // Functions from base classes
+
+        /**
+        * From CScriptBase Runs a script line.
+        * @since ?Series60_version
+        * @param aItem Script line containing method name and parameters
+        * @return Symbian OS error code
+        */
+        virtual TInt RunMethodL( CStifItemParser& aItem ) = 0;
+    
+
+	public:
+		/**
+		The function is used to return the data in case of FetchLeafObjectL(),
+		FetchLeafObjectSizeL() and ChildURIListL() functions. It should not be
+		called where the DM command has failed, i.e. the error code returned in
+		SetStatusL is something other than EOk.
+		@param aResultsRef	Reference to correct command
+		@param aObject		The data which should be returned
+		@param aType			MIME type of the object
+		@publishedPartner
+		@prototype
+		*/
+		void SetResultsL( TInt aResultsRef, CBufBase& aObject,
+								  const TDesC8& aType );
+		
+		/**
+		The function is used to return the data in case of FetchLeafObjectL() and
+		ChildURIListL() functions, where the size of the data being returned is
+		large enough for the Adapter to stream it. This function should not be
+		called when command was failed, i.e. the error code returned in SetStatusL
+		is something other than EOk.
+		@param aResultsRef	Reference to correct command
+		@param aStream		Large data which should be returned, DM engine
+								closes stream when it has read all the data
+		@param aType			MIME type of the object
+		@publishedPartner
+		@prototype
+		*/
+		void SetResultsL( TInt /*aResultsRef*/, RReadStream*& /*aStream*/,
+								  const TDesC8& /*aType*/ ) 
+		{
+			
+		}
+
+		/**
+		The function returns information about the Add,Update,Delete and Fetch
+		commands success to DM engine. The reference to correct command must be
+		used when calling the SetStatusL function, the reference is got from the
+		argument of the command functions. The SetStatusL function must be called
+		separately for every single command.
+		@param aStatusRef	Reference to correct command
+		@param aErrorCode	Information about the command success
+		@publishedPartner
+		@prototype
+		*/
+		void SetStatusL( TInt aStatusRef,
+								 MSmlDmAdapter::TError aErrorCode ) ;
+
+		/**
+		The function passes map information to DM Module. This function is called
+		for a new management object, both for node objects and for leaf objects.
+		In addition if ChildURIListL() function has returned new objects a mapping
+		information of the new objects must be passed. A mapping is treated as
+		inheritable. If the mapping is not set with this function, the mapping
+		LUID of the parent object is passed in following commands to the object.
+		@param aURI	URI of the object. 
+		@param aLUID	LUID of the object. LUID must contain the all information,
+						which is needed for retrieve the invidual object from the
+						database. Typically it is ID for the database table. In
+						more complicated structures it can be combination of IDs,
+						which represent path to the object.
+		@publishedPartner
+		@prototype
+		*/
+		void SetMappingL( const TDesC8& aURI, const TDesC8& aLUID );
+
+		/**
+		The function is used to make a fetch to other adapters. The most common
+		use is to make a fetch to the AP adapter, because when managing the access
+		points, the data comes as URI. For example, there are ToNAPId field in
+		some adapters, and data to it can be something like AP/IAPidx, and then
+		the link to AP adapter is needed.
+		Using FetchLinkL causes the DM Framework to make a Get request to the
+		appropriate DM adapter.  The receiving adapter MUST complete the Get
+		request synchronously.
+		@param aURI		URI of the object. 
+		@param aData		Reference to data, i.e. data is returned here
+		@param aStatus	The status of fetch command is returned here
+		@publishedPartner
+		@prototype
+		*/
+		void FetchLinkL( const TDesC8& /*aURI*/, CBufBase& /*aData*/,
+								 MSmlDmAdapter::TError& /*aStatus*/ ) 
+			{
+				
+			}
+
+		/**
+		The function returns the LUID which is mapped to aURI. If LUID is not
+		found, the function allocates a null length string, i.e. the function
+		allocates memory in every case.
+		@param aURI	URI of the object. 
+		@publishedPartner
+		@prototype
+		*/
+		HBufC8* GetLuidAllocL( const TDesC8& aURI ) ;
+
+#ifdef __TARM_SYMBIAN_CONVERGENCY
+    
+    void GetMappingInfoListL( const TDesC8& aURI,
+								CArrayFix<TSmlDmMappingInfo>& aSegmentList );
+
+#else
+// nothing
+#endif
+		        
+    protected:  // New functions
+
+        
+		void FetchNodeResultsL( TInt aResultsRef, CBufBase& aObject,
+							  const TDesC8& aType );
+		void SaveDataL( TInt aResultsRef, CBufBase& aObject,
+							  const TDesC8& aType ) ;
+							  
+		TPtrC8 LastURISeg( const TDesC8& aURI );
+		TPtrC8 RemoveLastURISeg( const TDesC8& aURI );
+		TPtrC RemoveLastURISeg( const TDesC& aURI );
+		void SetURIL( const TDesC& aURI );
+		void SetURIL( const TDesC8& aURI );
+		void SetURIL( HBufC8* aURI );		
+		HBufC8 *LoadFileLC( const TDesC &aFileName, TDataType &aType );
+		HBufC8 *LoadFileLC( const TDesC8 &aFileName, TDataType &aType );
+		HBufC8 *GetNextStringLC ( CStifItemParser& aItem, const TDesC &aName );
+		HBufC8* GetLuidAllocLC( const TDesC8& aURI ) ;
+		TPtrC8 RemoveLastSeg(const TDesC8& aURI);
+		
+		TInt FetchNodeL( CStifItemParser& aItem ) ;
+		TInt FetchLeafL( CStifItemParser& aItem ) ;
+		TInt AddNodeL( CStifItemParser& aItem );
+		TInt DeleteObjectL( CStifItemParser& aItem );	
+		TInt UpdateLeafL( CStifItemParser& aItem )	;
+		TInt UpdateLeafDataL( CStifItemParser& aItem ) ;
+		TInt UpdateLeafDataURLL( CStifItemParser& aItem ) ;
+		
+		TInt ExecuteLeafL ( CStifItemParser& aItem ) ;
+		TInt ExecuteLeafDataL ( CStifItemParser& aItem ) ;
+		TInt StartAtomicL( CStifItemParser& aItem )	;
+		TInt CommitAtomicL( CStifItemParser& aItem )	;
+		TInt RollbackAtomicL( CStifItemParser& aItem )	;
+		TInt CompleteCommandsL( CStifItemParser& aItem );
+		TInt DDFStructureL( CStifItemParser& aItem )	;
+//        TInt DeliverL( CStifItemParser& aItem ) ;
+//        TInt DetailsL( CStifItemParser& aItem ) ;
+//		TInt InstallL( CStifItemParser& aItem ) ;
+//		TInt BareInstallL( CStifItemParser& aItem ) ;		
+
+    protected:
+
+        /**
+        * C++ default constructor.
+        */
+        Cdmatest( CTestModuleIf& aTestModuleIf, TUid aUid );
+
+        /**
+        * By default Symbian 2nd phase constructor is private.
+        */
+        void ConstructL();
+
+        // Prohibit copy constructor if not deriving from CBase.
+        // Cdmatest( const Cdmatest& );
+        // Prohibit assigment operator if not deriving from CBase.
+        // Cdmatest& operator=( const Cdmatest& );
+
+		/**
+        * Frees all resources allocated from test methods.
+        * @since ?Series60_version
+        */
+        virtual void Delete();
+        void LoadMappingsL();
+        void SaveMappingsL();
+    public:     // Data
+        // ?one_line_short_description_of_data
+        //?data_declaration;
+    
+    protected:  // Data
+        // ?one_line_short_description_of_data
+        //?data_declaration;
+		MSmlDmAdapter::TError iStatus ;
+        ResultsFunction iResultsFunction;
+        //CSmlDmAdapter *iAdapter ;
+        CNSmlDmMMSAdapter *iAdapter ;
+        HBufC8 *iURI; 
+        CArrayFix<TSmlDmMappingInfo> *iEmptyMappingInfoArray;
+		TFileName iSaveFileName;
+		RMappingArray iMappingTable;
+		TUid iUid;
+		TInt iCounter;
+		//class CNSmlDmMgmtTree* iMgmtTree;
+		class CNSmlDmMgmtTree* iMgmtTree;
+		CNSmlDmMMSAdapter *Adapter() ;
+    };
+
+#endif      // __DMA_TEST_H__
+            
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/mms/tsrc/inc/mmstest.h	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,133 @@
+/*
+* 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.
+*
+*/
+
+
+
+
+
+
+#ifndef TCTEST_H
+#define TCTEST_H
+
+//  INCLUDES
+#include <StifLogger.h>
+#include <TestScripterInternal.h>
+#include <StifTestModule.h>
+#include <smldmadapter.h>
+#include "dmatest.h"
+
+const TUint KNSmlmmsAdapterImplUid = 0x101F6E37;
+	
+
+const TUid KAdapterUid = 
+		{
+		KNSmlmmsAdapterImplUid
+		};
+// Logging path
+_LIT( KamtestLogPath, "\\logs\\testframework\\tctest\\" ); 
+// Log file
+_LIT( KamtestLogFile, "tctest.txt" ); 
+
+
+// FORWARD DECLARATIONS
+class CmmsTest;
+
+
+// CLASS DECLARATION
+
+/**
+*  CmmsTest test class for STIF Test Framework TestScripter.
+*  ?other_description_lines
+*
+*  @lib ?library
+*  @since ?Series60_version
+*/
+class CmmsTest : public Cdmatest
+    {
+    public:  // Constructors and destructor
+        
+        /**
+        * Two-phased constructor.
+        */
+        static CmmsTest* NewL( CTestModuleIf& aTestModuleIf );
+        
+        /**
+        * Destructor.
+        */
+        virtual ~CmmsTest();
+
+    public: // Functions from base classes
+
+        /**
+        * From CScriptBase Runs a script line.
+        * @since ?Series60_version
+        * @param aItem Script line containing method name and parameters
+        * @return Symbian OS error code
+        */
+        virtual TInt RunMethodL( CStifItemParser& aItem );
+                
+
+    private:
+
+        /**
+        * C++ default constructor.
+        */
+        CmmsTest( CTestModuleIf& aTestModuleIf );
+
+        /**
+        * By default Symbian 2nd phase constructor is private.
+        */
+        void ConstructL();
+
+        // Prohibit copy constructor if not deriving from CBase.
+        // ?classname( const ?classname& );
+        // Prohibit assigment operator if not deriving from CBase.
+        // ?classname& operator=( const ?classname& );
+    
+        /**
+        * Frees all resources allocated from test methods.
+        * @since ?Series60_version
+        */
+        virtual void Delete();
+        
+        /**
+        * Test methods are listed below. 
+        */
+        
+        /**
+        * Example test method.
+        * @since ?Series60_version
+        * @param aItem Script line containing parameters.
+        * @return Symbian OS error code.
+        */
+/*        virtual TInt ExampleL( CStifItemParser& aItem ) ;
+        virtual TInt DeliverL( CStifItemParser& aItem ) ;
+        virtual TInt DetailsL( CStifItemParser& aItem ) ;
+		    virtual TInt InstallL( CStifItemParser& aItem ) ;
+		    virtual TInt BareInstallL( CStifItemParser& aItem ) ;*/
+		
+
+    private:    // Data
+        HBufC8 *GetNextStringLC ( CStifItemParser& aItem, const TDesC &aName );
+
+
+    };
+
+#endif      // TCTEST_H
+            
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/mms/tsrc/init/mmstest.ini	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,204 @@
+#
+# This is STIF initialization file
+# Comment lines start with '#'-character.
+# See STIF TestFramework users guide.doc for instructions
+
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+# Set following test engine settings:
+#	- Set Test Reporting mode. TestReportMode's possible values are:
+#		+ 'Summary': Summary of the tested test cases.
+#		+ 'Environment': Hardware and software info.
+#		+ 'TestCases': Test case report.
+#		+ 'FullReport': Set of all above ones.
+#		+ Example 'TestReportMode= Summary TestCases'
+#
+# 	- CreateTestReport setting controls report creation mode
+#		+ YES, Test report will created.
+#		+ NO, No Test report.
+#
+# 	- File path indicates the base path of the test report.
+# 	- File name indicates the name of the test report.
+#
+# 	- File format indicates the type of the test report.
+#		+ TXT, Test report file will be txt type, for example 'TestReport.txt'.
+#		+ HTML, Test report will be html type, for example 'TestReport.html'.
+#
+# 	- File output indicates output source of the test report.
+#		+ FILE, Test report logging to file.
+#		+ RDEBUG, Test report logging to using rdebug.
+#
+# 	- File Creation Mode indicates test report overwriting if file exist.
+#		+ OVERWRITE, Overwrites if the Test report file exist.
+#		+ APPEND, Continue logging after the old Test report information if
+#                 report exist.
+# 	- Sets a device reset module's dll name(Reboot).
+#		+ If Nokia specific reset module is not available or it is not correct one
+#		  StifHWResetStub module may use as a template for user specific reset
+#		  module.
+# 	- Sets STIF test measurement disable options. e.g. pluging1 and pluging2 disablation
+#		DisableMeasurement= stifmeasurementplugin01 stifmeasurementplugin02
+#
+
+[Engine_Defaults]
+
+TestReportMode= FullReport    # Possible values are: 'Empty', 'Summary', 'Environment',
+                                                     'TestCases' or 'FullReport'
+
+CreateTestReport= YES         # Possible values: YES or NO
+
+TestReportFilePath= C:\LOGS\TestFramework\
+TestReportFileName= TestReport
+
+TestReportFormat= TXT         # Possible values: TXT or HTML
+TestReportOutput= FILE        # Possible values: FILE or RDEBUG
+TestReportFileCreationMode= OVERWRITE # Possible values: OVERWRITE or APPEND
+
+DeviceResetDllName= StifResetForNokia.dll # e.g. 'StifHWResetStub.dll' for user specific reseting
+
+DisableMeasurement= stifmeasurementdisablenone  # Possible values are:
+              # 'stifmeasurementdisablenone', 'stifmeasurementdisableall'
+              # 'stifmeasurementplugin01', 'stifmeasurementplugin02',
+              # 'stifmeasurementplugin03', 'stifmeasurementplugin04',
+              # 'stifmeasurementplugin05' or 'stifbappeaprofiler'
+
+Timeout= 0                    # Default timeout value for each test case. In milliseconds
+#UITestingSupport= YES        # Possible values: YES or NO
+#SeparateProcesses= YES       # Possible values: YES or NO (default: NO)
+[End_Defaults]
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+
+
+
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+# Module configurations start
+# Modules are added between module tags
+# tags. Module name is specified after ModuleName= tag, like
+# ModuleName= XXXXXXXXX
+# Modules might have initialisation file, specified as
+# IniFile= c:\testframework\YYYYYY
+# Modules might have several configuration files, like
+# TestCaseFile= c:\testframework\NormalCases.txt
+# TestCaseFile= c:\testframework\SmokeCases.txt
+# TestCaseFile= c:\testframework\ManualCases.txt
+
+# (TestCaseFile is synonym for old term ConfigFile)
+
+# Following case specifies demo module settings. Demo module
+# does not read any settings from file, so tags 
+# IniFile and TestCaseFile are not used.
+# In the simplest case it is enough to specify only the
+# name of the test module when adding new test module
+
+#[New_Module]
+#ModuleName= demomodule
+#[End_Module]
+
+
+[New_Module]
+ModuleName= testscripter
+#DM
+TestCaseFile= c:\testframework\mmstest.cfg
+[End_Module]
+
+
+# Load testmoduleXXX, optionally with initialization file and/or test case files
+#[New_Module]
+#ModuleName= testmodulexxx
+
+#TestModuleXXX used initialization file
+#IniFile= c:\testframework\init.txt
+
+#TestModuleXXX used configuration file(s)
+#TestCaseFile= c:\testframework\testcases1.cfg
+#TestCaseFile= c:\testframework\testcases2.cfg
+#TestCaseFile= c:\testframework\manualtestcases.cfg
+
+#[End_Module]
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+
+
+
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+# Set STIF logging overwrite parameters for Logger.
+# 	Hardware and emulator environment logging path and styles can
+# 	be configured from here to overwrite the Logger's implemented values.
+#	
+#	Settings description:
+#	- Indicates option for creation log directory/directories. If log directory/directories
+#         is/are not created by user they will make by software.
+#		+ YES, Create log directory/directories if not allready exist.
+#		+ NO, Log directory/directories not created. Only created one is used.
+#
+#	- Overwrite emulator path setting.
+#		+ Example: If 'EmulatorBasePath= C:\LOGS\TestFramework\' and in code is defined 
+#		           Logger's path 'D:\\LOGS\\Module\\' with those definition the path
+#		           will be 'C:\LOGS\TestFramework\LOGS\Module\'
+#
+#	- Overwrite emulator's logging format.
+#		+ TXT, Log file(s) will be txt type(s), for example 'Module.txt'.
+#		+ HTML, Log file(s) will be html type(s), for example 'Module.html'.
+#
+#	- Overwrited emulator logging output source.
+#		+ FILE, Logging to file(s).
+#		+ RDEBUG, Logging to using rdebug(s).
+#
+#	- Overwrite hardware path setting (Same description as above in emulator path).
+#	- Overwrite hardware's logging format(Same description as above in emulator format).
+#	- Overwrite hardware's logging output source(Same description as above in emulator output).
+#
+#	- File Creation Mode indicates file overwriting if file exist.
+#		+ OVERWRITE, Overwrites if file(s) exist.
+#		+ APPEND, Continue logging after the old logging information if file(s) exist.
+#
+#	- Will thread id include to the log filename.
+#		+ YES, Thread id to log file(s) name, Example filename 'Module_b9.txt'.
+#		+ NO, No thread id to log file(s), Example filename 'Module.txt'.
+#
+#	- Will time stamps include the to log file.
+#		+ YES, Time stamp added to each line in log file(s). Time stamp is 
+#                 for example'12.Nov.2003 115958    LOGGING INFO'
+#		+ NO, No time stamp(s).
+#
+#	- Will line breaks include to the log file.
+#		+ YES, Each logging event includes line break and next log event is in own line.
+#		+ NO, No line break(s).
+#
+#	- Will event ranking include to the log file.
+#		+ YES, Event ranking number added to each line in log file(s). Ranking number
+#                 depends on environment's tics, for example(includes time stamp also)
+#                 '012   12.Nov.2003 115958    LOGGING INFO'
+#		+ NO, No event ranking.
+#
+#	- Will write log file in unicode format.
+#		+ YES, Log file will be written in unicode format
+#		+ NO, Log will be written as normal, not unicode, file.
+#
+
+[Logger_Defaults]
+
+#NOTE: If you want to set Logger using next setting(s) remove comment(s)'#'
+#NOTE: TestEngine and TestServer logging settings cannot change here
+
+#CreateLogDirectories= YES    # Possible values: YES or NO
+
+#EmulatorBasePath= C:\LOGS\TestFramework\
+#EmulatorFormat= HTML         # Possible values: TXT or HTML
+#EmulatorOutput= FILE         # Possible values: FILE or RDEBUG
+
+#HardwareBasePath= D:\LOGS\TestFramework\
+#HardwareFormat= HTML         # Possible values: TXT or HTML
+#HardwareOutput= FILE         # Possible values: FILE or RDEBUG
+
+#FileCreationMode= OVERWRITE  # Possible values: OVERWRITE or APPEND
+
+#ThreadIdToLogFile= YES       # Possible values: YES or NO
+#WithTimeStamp= YES           # Possible values: YES or NO
+#WithLineBreak= YES           # Possible values: YES or NO
+#WithEventRanking= YES        # Possible values: YES or NO
+
+#FileUnicode= YES             # Possible values: YES or NO
+#AddTestCaseTitle= YES        # Possible values: YES or NO
+[End_Logger_Defaults]
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+
+# End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/mms/tsrc/src/TestDmDDFObject.cpp	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,516 @@
+/*
+* 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 "TestDmDDFObject.h"
+#include "StifLogger.h"
+
+// EXTERNAL DATA STRUCTURES
+//extern  ?external_data;
+
+// EXTERNAL FUNCTION PROTOTYPES  
+//extern ?external_function( ?arg_type,?arg_type );
+
+// CONSTANTS
+//const ?type ?constant_var = ?constant;
+
+// MACROS
+//#define ?macro ?macro_def
+
+// LOCAL CONSTANTS AND MACROS
+//const ?type ?constant_var = ?constant;
+//#define ?macro_name ?macro_def
+
+// MODULE DATA STRUCTURES
+//enum ?declaration
+//typedef ?declaration
+
+// LOCAL FUNCTION PROTOTYPES
+//?type ?function_name( ?arg_type, ?arg_type );
+
+// FORWARD DECLARATIONS
+//class ?FORWARD_CLASSNAME;
+
+// ============================= LOCAL FUNCTIONS ===============================
+
+
+
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CTestDmDDFObject::CTestDmDDFObject
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// -----------------------------------------------------------------------------
+//
+CTestDmDDFObject::CTestDmDDFObject( CStifLogger *aLog )
+	: iName( 0 )
+	, iAccessTypes()
+	, iDefaultValue( 0 )
+	, iDescription( 0 )
+	, iFormat( (TDFFormat)0 )
+	, iOccurence( (TOccurence)0 )
+	, iScope( (TScope)0 )
+	, iTitle ( 0 )
+	, iMimeType( 0 )
+	, iObjectGroup( EFalse )
+	, iLog( aLog )
+//	RPointerArray<CTestDmDDFObject> iChildren;
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CTestDmDDFObject::ConstructL
+// Symbian 2nd phase constructor can leave.
+// -----------------------------------------------------------------------------
+//
+void CTestDmDDFObject::ConstructL()
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CTestDmDDFObject::NewL
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CTestDmDDFObject* CTestDmDDFObject::NewL( CStifLogger *aLog )
+    {
+    CTestDmDDFObject* self = CTestDmDDFObject::NewLC( aLog );
+    CleanupStack::Pop( self );
+
+    return self;
+    }
+
+CTestDmDDFObject* CTestDmDDFObject::NewLC( CStifLogger *aLog )
+    {
+    CTestDmDDFObject* self = new( ELeave ) CTestDmDDFObject( aLog );
+    
+    CleanupStack::PushL( self );
+    self->ConstructL();
+
+    return self;
+    }
+
+    
+// Destructor
+CTestDmDDFObject::~CTestDmDDFObject()
+    {
+	delete iName;
+	delete iDefaultValue;
+	delete iDescription;
+	delete iTitle;
+	delete iMimeType;
+	iChildren.ResetAndDestroy();
+    }
+
+
+// -----------------------------------------------------------------------------
+// CTestDmDDFObject::?member_function
+// ?implementation_description
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+/*?type CTestDmDDFObject::?member_function(
+    ?arg_type arg,
+    ?arg_type arg )
+    {
+    
+    ?code
+    
+    }
+*/
+
+void CTestDmDDFObject::SetAccessTypesL( TSmlDmAccessTypes aAccessTypes )
+	{
+	iLog->Log( _L8( "SetAccessTypesL, aAccessTypes=%d" ), aAccessTypes.GetACL() );
+	iAccessTypes = aAccessTypes;
+	}
+
+void CTestDmDDFObject::SetDefaultValueL( const TDesC8& aDefaultValue )
+	{
+	iLog->Log( _L8( "SetDefaultValueL, aDefaultValue='%S'" ), &aDefaultValue );
+	delete iDefaultValue;
+	iDefaultValue = 0;
+	iDefaultValue = aDefaultValue.AllocL();
+	}
+
+void CTestDmDDFObject::SetDescriptionL( const TDesC8& aDescription )
+	{
+	iLog->Log( _L8( "SetDescriptionL, aDescription='%S'" ), &aDescription );
+	delete iDescription;
+	iDescription = 0;
+	iDescription = aDescription.AllocL();
+	}
+	
+void CTestDmDDFObject::SetDFFormatL( TDFFormat aFormat )
+	{
+	iLog->Log( _L8( "SetDFFormatL, aFormat=%d" ), aFormat );
+	iFormat = aFormat;
+	}
+	
+void CTestDmDDFObject::SetOccurenceL( TOccurence aOccurence )
+	{
+	iLog->Log( _L8( "SetOccurenceL, aOccurence=%d" ), aOccurence );
+	iOccurence = aOccurence;
+	}
+	
+void CTestDmDDFObject::SetScopeL( TScope aScope )
+	{
+	iLog->Log( _L8( "SetScopeL, aScope=%d" ), aScope );
+	iScope = aScope;
+	}
+	
+void CTestDmDDFObject::SetDFTitleL( const TDesC8& aTitle )
+	{
+	iLog->Log( _L8( "SetDFTitleL, aTitle='%S'" ), &aTitle );
+	delete iTitle;
+	iTitle = 0;
+	iTitle = aTitle.AllocL();
+	}
+	
+void CTestDmDDFObject::AddDFTypeMimeTypeL( const TDesC8& aMimeType )
+	{
+	iLog->Log( _L8( "AddDFTypeMimeTypeL, aMimeType='%S'" ), &aMimeType );
+	delete iMimeType;
+	iMimeType = 0;
+	iMimeType = aMimeType.AllocL();
+	}
+	
+void CTestDmDDFObject::SetAsObjectGroup()
+	{
+	iLog->Log( _L8( "SetAsObjectGroup, true" ) );
+	iObjectGroup = ETrue;
+	}
+	
+MSmlDmDDFObject& CTestDmDDFObject::AddChildObjectL(const TDesC8& aNodeName)
+	{
+	iLog->Log( _L8( "AddChildObjectL, aNodeName='%S'" ), &aNodeName );
+	CTestDmDDFObject* child = CTestDmDDFObject::NewLC( iLog ); //, aNodeName );
+	child->SetNameL( aNodeName );
+	iChildren.AppendL( child );
+	CleanupStack::Pop( child ); // Don't destroy
+	return *child;
+	}
+
+MSmlDmDDFObject& CTestDmDDFObject::AddChildObjectGroupL()
+	{
+	iLog->Log( _L8( "AddChildObjectGroupL, ''" ) );
+	CTestDmDDFObject* child = CTestDmDDFObject::NewLC( iLog ); //, KNullDesC );
+	child->SetAsObjectGroup();
+	iChildren.AppendL( child );
+	CleanupStack::Pop( child ); // Don't destroy
+	return *child;
+	}
+
+// Own functions
+
+void CTestDmDDFObject::SetNameL( const TDesC8& aName )
+	{
+	delete iName;
+	iName = 0;
+	iName = aName.AllocL();
+	}
+
+void CTestDmDDFObject::DumpL( const TDesC8& aParentName, TBool aFullDump )
+	{
+	TPtrC8 name( _L8("<X>") );
+	if (iName && iName->Length() > 0)
+		{
+		name.Set( *iName );
+		}
+
+	HBufC8* fullName = HBufC8::NewLC( aParentName.Length() + name.Length() + 1 );
+	*fullName = aParentName;
+	if (aParentName.Length() > 0 && aParentName[ aParentName.Length() - 1 ] != '/')
+		{
+		fullName->Des().Append( _L8("/"));
+		}
+	fullName->Des().Append( name );
+
+	/* Translate some members to text for dumping */
+	TBuf8<20> strAccessTypes;
+	TUint8 accessTypes = iAccessTypes.GetACL();
+	if ((accessTypes & iAccessTypes.EAccessType_Add) != 0)
+		{
+		strAccessTypes.Append( _L8("A") );
+		}
+	if ((accessTypes & iAccessTypes.EAccessType_Copy) != 0)
+		{
+		strAccessTypes.Append( _L8("C") );
+		}
+	if ((accessTypes & iAccessTypes.EAccessType_Delete) != 0)
+		{
+		strAccessTypes.Append( _L8("D") );
+		}
+	if ((accessTypes & iAccessTypes.EAccessType_Exec) != 0)
+		{
+		strAccessTypes.Append( _L8("E") );
+		}
+	if ((accessTypes & iAccessTypes.EAccessType_Get) != 0)
+		{
+		strAccessTypes.Append( _L8("G") );
+		}
+	if ((accessTypes & iAccessTypes.EAccessType_Replace) != 0)
+		{
+		strAccessTypes.Append( _L8("R") );
+		}
+	
+	TBuf8<20> strFormat;
+	switch( iFormat )
+		{
+	case EB64:
+		strFormat = _L8("Base64");
+		break;
+	case EBool:
+		strFormat = _L8("Bool");
+		break;
+	case EChr:
+		strFormat = _L8("Chr");
+		break;
+	case EInt:
+		strFormat = _L8("Int");
+		break;
+	case ENode:
+		strFormat = _L8("Node");
+		break;
+	case ENull:
+		strFormat = _L8("Null");
+		break;
+	case EXml:
+		strFormat = _L8("Xml");
+		break;
+	case EBin:
+		strFormat = _L8("Bin");
+		break;
+	default:
+		break;
+		}
+
+
+	TBuf8<20> strOccurence;
+	switch( iOccurence )
+		{
+	case EOne:
+		/** The node appears exactly once */
+		strOccurence = _L8("M:1");
+		break;
+	case EZeroOrOne:
+		/** The node is optional and may appear zero or once */
+		strOccurence = _L8("O:0-1");
+		break;
+	case EZeroOrMore:
+		/** The node is optional and may appear zero or more times */
+		strOccurence = _L8("O:0-*");
+		break;
+	case EOneOrMore:
+		/** The node is mandatory and may appear once or more times */
+		strOccurence = _L8("M:1-*");
+		break;
+	case EZeroOrN:
+		/** The node is optional and may appear between once and 'N' times */
+		strOccurence = _L8("O:1-N");
+		break;
+	case EOneOrN:
+		/** The node is mandatory and may appear between once and 'N' times */
+		strOccurence = _L8("M:1-N");
+		break;
+	default:
+		break;
+		}
+	
+	
+	TBuf8<20> strScope;
+	switch( iScope)
+		{
+	case EPermanent:
+		/** The node appears exactly once */
+		strScope = _L8("Permanent");
+		break;
+	case EDynamic:
+		/** The node is optional and may appear zero or once */
+		strScope = _L8("O:Dynamic");
+		break;
+	default:
+		break;
+		}
+
+	
+	/* Dump main data */
+	if (aFullDump)
+		{
+		iLog->Log( _L8( "DDFObject: '%S'" ), fullName );
+		}
+		else
+		{
+		iLog->Log( _L8( "DDFObject: '%S'   (%S), %S, %S, %S" ),
+					fullName, &strAccessTypes, &strFormat, &strOccurence, &strScope );
+		}
+	
+	/* Dump members */
+	if (aFullDump)
+		{
+		TPtrC8 empty( _L8( "<null>" ) );
+		#define CHK_NULL(a) ((a)==0?(TDesC8*)(&empty):(TDesC8*)(a))
+
+		iLog->Log( _L8( "    iName=='%S'" ), iName );
+		iLog->Log( _L8( "    iAccessTypes=%d (%S)" ), iAccessTypes.GetACL(), &strAccessTypes );
+		iLog->Log( _L8( "    iDefaultValue='%S'" ), CHK_NULL(iDefaultValue));
+		iLog->Log( _L8( "    iDescription='%S'" ), CHK_NULL(iDescription ));
+		iLog->Log( _L8( "    iFormat=%d (%S)" ), iFormat, &strFormat );
+		iLog->Log( _L8( "    iOccurence=%d (%S)" ), iOccurence, &strOccurence );
+		iLog->Log( _L8( "    iScope=%d (%S)" ), iScope, &strScope );
+		iLog->Log( _L8( "    iTitle='%S'" ), CHK_NULL(iTitle ));
+		iLog->Log( _L8( "    iMimeType='%S'" ), CHK_NULL(iMimeType ));
+		iLog->Log( _L8( "----------------------------------" ) );
+		}
+	
+	/* Dump children */
+	for (TInt i = 0 ; i < iChildren.Count() ; i++)
+		{
+		iChildren[i]->DumpL( *fullName, aFullDump );
+		}
+
+	CleanupStack::PopAndDestroy( fullName );
+	}
+
+/*
+void CTestDmDDFObject::ExternalizeL(RWriteStream& aStream) const
+	{
+	X;
+	aStream << *iName << eol;
+	}
+*/
+
+const TDesC8& CTestDmDDFObject::Name()
+	{
+	return (iName != 0) ? *iName : KNullDesC8();
+	}
+
+TSmlDmAccessTypes  CTestDmDDFObject::AccessTypes()
+	{
+	return iAccessTypes;
+	}
+
+const TDesC8& CTestDmDDFObject::DefaultValue()
+	{
+	return (iDefaultValue != 0) ? *iDefaultValue : KNullDesC8();
+	}
+
+const TDesC8& CTestDmDDFObject::Description()
+	{
+	return (iDescription != 0) ? *iDescription : KNullDesC8();
+	}
+
+CTestDmDDFObject::TDFFormat CTestDmDDFObject::DFFormat()
+	{
+	return iFormat;
+	}
+
+CTestDmDDFObject::TOccurence CTestDmDDFObject::Occurence()
+	{
+	return iOccurence;
+	}
+
+CTestDmDDFObject::TScope CTestDmDDFObject::Scope()
+	{
+	return iScope;
+	}
+
+const TDesC8& CTestDmDDFObject::DFTitle()
+	{
+	return (iTitle != 0) ? *iTitle : KNullDesC8();
+	}
+
+const TDesC8& CTestDmDDFObject::DFTypeMimeType()
+	{
+	return (iMimeType != 0) ? *iMimeType : KNullDesC8();
+	}
+
+TBool CTestDmDDFObject::ObjectGroup()
+	{
+	return iObjectGroup;
+	}
+
+TInt CTestDmDDFObject::ChildObjectCount()
+	{
+	return iChildren.Count();
+	}
+
+CTestDmDDFObject& CTestDmDDFObject::ChildObject( TInt aIndex )
+	{
+	return *iChildren[aIndex];
+	}
+
+CTestDmDDFObject* CTestDmDDFObject::FindChildObject( const TDesC8& aName )
+	{
+	CTestDmDDFObject* foundObject = 0;
+
+	for (TInt i = 0 ; i < iChildren.Count() ; i++)
+		{
+		if ( aName.CompareC( iChildren[i]->Name() ) == 0 )
+			{
+			foundObject = iChildren[i];
+			break;
+			}
+		}
+
+	return foundObject;
+	}
+
+TInt CTestDmDDFObject::SubObjectsCount()
+	{
+	TInt count = 0;
+
+	TInt i;
+	for (i = 0 ; i < iChildren.Count() ; i++)
+		{
+		count += iChildren[i]->SubObjectsCount();
+		}
+	count += i;
+
+	return count;
+	}
+
+/*
+// ========================== OTHER EXPORTED FUNCTIONS =========================
+
+// -----------------------------------------------------------------------------
+// ?function_name implements...
+// ?implementation_description.
+// Returns: ?value_1: ?description
+//          ?value_n: ?description
+//                    ?description
+// -----------------------------------------------------------------------------
+//
+?type  ?function_name(
+    ?arg_type arg,  // ?description
+    ?arg_type arg )  // ?description
+    {
+
+    ?code
+
+    }
+*/
+//  End of File  
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/mms/tsrc/src/dmatest.cpp	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,954 @@
+/*
+* 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 );
+		}
+    }
+    
+CNSmlDmMMSAdapter *Cdmatest::Adapter()  
+	{
+	if ( iAdapter == NULL )
+		{
+		if ( iLog )
+			{
+			iLog->Log( _L( "Loading Adapter" ) );
+			}
+  		
+  		TRAPD( err, iAdapter = (CNSmlDmMMSAdapter*) 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
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/mms/tsrc/src/mmstest.cpp	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,117 @@
+/*
+* 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 <Stiftestinterface.h>
+#include "mmsTest.h"
+#include <stiflogger.h>
+
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CmmsTest::CmmsTest
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// -----------------------------------------------------------------------------
+//
+/*CmmsTest::CmmsTest( 
+    CTestModuleIf& aTestModuleIf ):
+        CScriptBase( aTestModuleIf )
+    {
+    }*/
+CmmsTest::CmmsTest( CTestModuleIf& aTestModuleIf )
+		: Cdmatest( aTestModuleIf, KAdapterUid )
+    {
+    }
+// -----------------------------------------------------------------------------
+// CmmsTest::ConstructL
+// Symbian 2nd phase constructor can leave.
+// -----------------------------------------------------------------------------
+//
+void CmmsTest::ConstructL()
+    {
+/*    iLog = CStifLogger::NewL( KamtestLogPath, 
+                          KamtestLogFile,
+                          CStifLogger::ETxt,
+                          CStifLogger::EFile,
+                          EFalse );*///Commented the Part for mmsTest Dipak
+    iLog = CStifLogger::NewL( KamtestLogPath, 
+                          KamtestLogFile,
+                          CStifLogger::ETxt,
+                          CStifLogger::EFile );
+                          
+    iLog->Log( _L( "Loading Adapter" ) );
+    
+	Cdmatest::ConstructL();                         	
+
+    }
+
+// -----------------------------------------------------------------------------
+// CmmsTest::NewL
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CmmsTest* CmmsTest::NewL( 
+    CTestModuleIf& aTestModuleIf )
+    {
+    CmmsTest* self = new (ELeave) CmmsTest( aTestModuleIf );
+    
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop();
+
+    return self;
+    
+    }
+    
+// Destructor
+CmmsTest::~CmmsTest()
+    { 
+    
+    // Delete resources allocated from test methods
+//    Delete();
+    
+    // Delete logger
+//    delete iLog;  
+    
+    }
+
+// ========================== OTHER EXPORTED FUNCTIONS =========================
+
+// -----------------------------------------------------------------------------
+// LibEntryL is a polymorphic Dll entry point.
+// Returns: CScriptBase: New CScriptBase derived object
+// -----------------------------------------------------------------------------
+//
+EXPORT_C CScriptBase* LibEntryL( 
+    CTestModuleIf& aTestModuleIf ) // Backpointer to STIF Test Framework
+    {
+    
+    return ( CScriptBase* ) CmmsTest::NewL( aTestModuleIf );
+        
+    }
+
+
+    
+//  End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/mms/tsrc/src/mmstestBlocks.cpp	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,108 @@
+/*
+* 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 <e32svr.h>
+#include <StifParser.h>
+#include <Stiftestinterface.h>
+#include "mmsTest.h"
+#include <e32math.h>
+#include <f32file.h>
+#include <swinstapi.h>
+
+
+//using namespace NApplicationManagement;//Dipak
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CmmsTest::Delete
+// Delete here all resources allocated and opened from test methods. 
+// Called from destructor. 
+// -----------------------------------------------------------------------------
+//
+void CmmsTest::Delete() 
+    {
+    
+    }
+    
+// -----------------------------------------------------------------------------
+// CmmsTest::RunMethodL
+// Run specified method. Contains also table of test mothods and their names.
+// -----------------------------------------------------------------------------
+//
+TInt CmmsTest::RunMethodL( 
+    CStifItemParser& aItem ) 
+    {
+   
+    TStifFunctionInfo const KFunctions[] =
+        {  
+        // Copy this line for every implemented function.
+        // First string is the function name used in TestScripter script file.
+        // Second is the actual implementation member function. 
+        ENTRY( "DDFStructure", CmmsTest::DDFStructureL),
+        ENTRY( "FetchNode", CmmsTest::FetchNodeL ),
+        ENTRY( "FetchLeaf", CmmsTest::FetchLeafL ),
+        ENTRY( "AddNode", CmmsTest::AddNodeL ),
+        ENTRY( "UpdateLeaf", CmmsTest::UpdateLeafL ),
+        ENTRY( "UpdateLeafData", CmmsTest::UpdateLeafDataL ),
+        ENTRY( "Execute", CmmsTest::ExecuteLeafL ),
+        ENTRY( "ExecuteData", CmmsTest::ExecuteLeafDataL ),
+        ENTRY( "DeleteNode", CmmsTest::DeleteObjectL ),
+        ENTRY( "StartAtomic", CmmsTest::StartAtomicL),
+	    ENTRY( "CommitAtomic", CmmsTest::CommitAtomicL),
+	    ENTRY( "RollbackAtomic", CmmsTest::RollbackAtomicL),
+	    ENTRY( "CompleteCommands", CmmsTest::CompleteCommandsL),
+        };
+
+    const TInt count = sizeof( KFunctions ) / 
+                        sizeof( TStifFunctionInfo );
+
+    return RunInternalL( KFunctions, count, aItem );
+
+    }    
+
+        
+        
+HBufC8 *CmmsTest::GetNextStringLC ( CStifItemParser& aItem, const TDesC &aName )
+	{
+	TPtrC nodename;
+	nodename.Set( 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;
+	}
+	
+//  End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/nsmldmalwaysonadapter/group/bld.inf	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,33 @@
+/*
+* Copyright (c) 2007 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:  Build information file for project nsmldmalwaysonadapter
+*
+*/
+
+
+#include <platform_paths.hrh>
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+
+
+
+PRJ_MMPFILES
+nsmldmalwaysonadapter.mmp
+
+PRJ_TESTMMPFILES
+
+PRJ_TESTEXPORTS
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/nsmldmalwaysonadapter/group/nsmldmalwaysonadapter.mmp	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,43 @@
+/*
+* Copyright (c) 2007 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:  Project definition file for project nsmldmalwaysonadapter
+*
+*/
+
+#include <platform_paths.hrh>
+#include <defaultcaps.hrh>
+
+TARGET                  nsmldmalwaysonadapter.dll
+TARGETTYPE              PLUGIN
+UID                     0x10009d8d 0x101f6d36
+
+CAPABILITY              CAP_ECOM_PLUGIN
+VENDORID                VID_DEFAULT
+
+SOURCEPATH              ../src
+SOURCE                  nsmldmalwaysonadapter.cpp
+SOURCE                  nsmldmalwaysonsettingstore.cpp
+
+START RESOURCE          nsmldmalwaysonadapter.rss
+END
+
+USERINCLUDE             ../inc
+
+//Default system include paths for middleware layer modules
+APP_LAYER_SYSTEMINCLUDE
+
+SYSTEMINCLUDE 	        /epoc32/include/ecom
+
+LIBRARY                 euser.lib ecom.lib charconv.lib flogger.lib
+LIBRARY                 centralrepository.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/nsmldmalwaysonadapter/inc/logger.h	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,99 @@
+/*
+* Copyright (c) 2007 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:  Provides logging services.
+*
+*/
+
+
+#ifndef ALWAYSONLOGGER_H
+#define ALWAYSONLOGGER_H
+
+#ifdef _DEBUG
+                              // 0 = No logging,
+#define LOGGING_METHOD  1     // 1 = Flogger,
+                              // 2 = RDebug
+#else
+
+#define LOGGING_METHOD  0     // No logging in UREL builds
+
+#endif // _DEBUG
+
+
+#if LOGGING_METHOD == 1       // Flogger
+
+#include <flogger.h>
+_LIT(KLOGFolder,"ALWAYSONADAPTER");
+_LIT(KLOGFile,"ALWAYSONADAPTER.txt");
+
+#define LOGTEXT(x)\
+    {\
+    RFileLogger::Write(KLOGFolder(),KLOGFile(),EFileLoggingModeAppend,\
+    x);\
+    }
+
+#define LOGSTRING(x)\
+    {\
+    _LIT8(tempLogDes,x);\
+    RFileLogger::Write(KLOGFolder(),KLOGFile(),EFileLoggingModeAppend,\
+    tempLogDes());\
+    }
+
+#define LOGSTRING2(x,y)\
+    { _LIT8(tempLogDes,x);\
+    RFileLogger::WriteFormat(KLOGFolder(),\
+                             KLOGFile(),\
+                             EFileLoggingModeAppend,\
+                             TRefByValue<const TDesC8>(tempLogDes()),y);\
+    }
+
+#define LOGSTRING3(x,y,z)\
+    { _LIT8(tempLogDes,x);\
+    RFileLogger::WriteFormat(KLOGFolder(),\
+                             KLOGFile(),\
+                             EFileLoggingModeAppend,\
+    TRefByValue<const TDesC8>(tempLogDes()),y,z);\
+    }
+
+#define LOGSTRING4(w,x,y,z)\
+    { _LIT8(tempLogDes,w);\
+    RFileLogger::WriteFormat(KLOGFolder(),\
+                             KLOGFile(),\
+                             EFileLoggingModeAppend,\
+    TRefByValue<const TDesC8>(tempLogDes()),x,y,z);\
+    }
+
+
+#elif _LOGGING_METHOD == 2    // RDebug
+
+#include <e32svr.h>
+
+#define LOGSTRING(x) RDebug::Print(x);
+#define LOGSTRING(x) RDebug::Print(_L(x));
+#define LOGSTRING2(x,y) RDebug::Print(_L(x),y);
+#define LOGSTRING3(x,y,z) RDebug::Print(_L(x),y,z);
+#define LOGSTRING4(w,x,y,z) RDebug::Print(_L(w),x,y,z);
+
+#else // LOGGING_METHOD == 0 or invalid
+
+#define LOGSTRING(x)
+#define LOGSTRING(x)
+#define LOGSTRING2(x,y)
+#define LOGSTRING3(x,y,z)
+#define LOGSTRING4(w,x,y,z)
+
+#endif // LOGGING_METHOD
+
+#endif  // ALWAYSONLOGGER_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/nsmldmalwaysonadapter/inc/nsmldmalwaysonadapter.h	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,581 @@
+/*
+* Copyright (c) 2007 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:  DM adapter for handling always-on settings.
+*
+*/
+
+
+#ifndef NSMLDMALWAYSONADAPTER_H
+#define NSMLDMALWAYSONADAPTER_H
+
+#include <smldmadapter.h>
+
+#include "nsmldmalwaysonsettingstore.h"
+
+class CSmlDmAOCommandElement;
+class CNSmlDmAOSettingStore;
+
+// The DDF version must be changed if any changes in DDF structure 
+// ( built in DDFStructureL() function )
+_LIT8( KNSmlDmAOAdapterDDFVersion, "1.0" ); 
+_LIT8( KNSmlDmAOAdapterTextPlain, "text/plain" );
+
+// Names of the nodes
+// When updating KNSmlDmAOAdapterAOURI also update 
+// KNSmlDmAOAdapterURIMaxLength! */
+_LIT8(KNSmlDmAOAdapterAOURI, "./VENDORCONFIG");
+_LIT8(KNSmlDmAOAdapterAO, "VENDORCONFIG");
+_LIT8(KNSmlDmAOAdapterName, "NAME");
+_LIT8(KNSmlDmAOAdapterAwonPdpc, "AWON-PDPC");
+_LIT8(KNSmlDmAOAdapterTRetry, "T-RETRY");
+
+
+// Descriptions of the nodes
+_LIT8( KNSmlDmAOAdapterAODescription, 
+       "Always-on provides management of connections");
+_LIT8( KNSmlDmAOAdapterNameDescription, 
+       "Name of the VENDORCONFIG");
+_LIT8( KNSmlDmAOAdapterAwonPdpcDescription, 
+       "Always-on setting in home and visited network");
+_LIT8( KNSmlDmAOAdapterTRetryDescription, 
+       "T-Retry timer interval");
+
+// Leaf nodes of VENDORCONFIG node
+_LIT8( KNSmlDmAOAllLeafNodes, 
+       "NAME/AWON-PDPC/T-RETRY");
+
+// URI segment separator
+// When updating this literal also update 
+// KNSmlDmAOAdapterAPURIMaxLength and KNSmlDmAOAdapterURIMaxLength!
+_LIT8( KNSmlDmAOSeparator, "/" );
+
+// URI segment separator
+// When updating KNSmlDmAOAdapterAOURI also update 
+// KNSmlDmAOAdapterAPURIMaxLength and KNSmlDmAOAdapterURIMaxLength!
+_LIT8( KNSmlDmAOUriListSeparator, "," );
+
+// Prefix in URIs (removed for LUID mapping)
+_LIT8( KNSmlDmAOAdapterURIPrefix, "./" );
+
+// Name prefix for unnamed VENDORCONFIG nodes
+_LIT8( KNSmlDmAONamePrefix, "VENDORCONFIG" );
+
+const TInt KNSmlDmAOGranularity = 4;
+const TInt KNSmlDmAOInvalidRef = -1;
+
+// Maximum length of VENDORCONFIG URI including a separator 
+// character in URI List. Node is not calculated here.  
+// KNSmlDmAOAdapterAOURI + KNSmlDmAOSeparator + KNSmlDmAOUriListSeparator
+const TInt KNSmlDmAOAdapterURIMaxLength =  16;
+        
+/**
+ *  Always-on device management adapter
+ *
+ *  Always-on device management adapter manages settings
+ *  related to VENDORCONFIG.
+ *
+ *  @lib nsmldmalwaysonadapter
+ *  @since S60 v3.2
+ */
+class CNSmlDmAOAdapter : public CSmlDmAdapter
+    {
+    
+public:
+
+/** Possible command types */
+enum TCommandType
+    {
+    EAddCmd,
+    EGetCmd,
+    EGetSizeCmd,
+    EDeleteCmd
+    };
+
+
+    static CNSmlDmAOAdapter* NewL( MSmlDmCallback* aDmCallback );
+    
+    virtual ~CNSmlDmAOAdapter();
+
+
+// from base class CSmlDmAdapter
+
+    /**
+     *  The function returns current version of the DDF. 
+     *
+     *  @since S60 v3.2
+     *  @param aVersion DDF version of the
+     *  adapter. (filled by the adapter) 
+     */
+    void DDFVersionL( CBufBase& aDDFVersion );
+
+    /**
+     *  The function for filling the DDF structure of the adapter
+     *
+     *  @since S60 v3.2
+     *  @param aDDFObject   Reference to root object.
+    */
+    void DDFStructureL( MSmlDmDDFObject& aDDF );
+
+    /**
+     * The function creates new leaf objects, or replaces data in existing 
+     * leaf objects. The information about the success of the command is
+     * returned by calling SetStatusL function of MSmlDmCallback callback
+     * interface. 
+     *     
+     * @since S60 v3.2
+     * @param aURI         URI of the object
+     * @param aLUID        LUID of the object 
+     * @param aObject      Data of the object.
+     * @param aType        MIME type of the object
+     * @param aStatusRef   Reference to correct command, i.e. this reference
+     *                     must be used when calling the SetStatusL of this 
+     *                     command
+    */
+    void UpdateLeafObjectL( const TDesC8& aURI, const TDesC8& aLUID,
+							const TDesC8& aObject, const TDesC8& aType,
+							TInt aStatusRef );
+    /**
+     * The function deletes an object and its child objects. 
+     *
+     * @since S60 v3.2
+     * @param aURI         URI of the object
+     * @param aLUID        LUID of the object (if the adapter have earlier 
+     *                     returned LUID to the DM Module).
+     * @param aStatusRef   Reference to correct command, i.e. this reference 
+     *                     must be used when calling the SetStatusL of this 
+     *                     command.
+    */
+    void DeleteObjectL( const TDesC8& aURI, const TDesC8& aLUID,
+						TInt aStatusRef );
+
+    /**
+     * The function fetches data of a leaf object. The SetStatusL is used
+     * as described in UpdateLeafObjectL(). The data is returned by using the
+     * SetResultsL function of MSmlCallback callback interface.
+	 *
+     * @since S60 v3.2
+     * @param aURI             URI of the object
+     * @param aLUID            LUID of the object (if the adapter have 
+     *                         earlier returned LUID to the DM Module).   
+     * @param aType            MIME type of the object
+     * @param aResultsRef      Reference to correct results, i.e. this 
+     *                         reference must be used when returning the 
+     *                         result by calling the SetResultsL.
+     * @param aStatusRef       Reference to correct command, i.e. this 
+     *                         reference must be used when calling the 
+     *                         SetStatusL of this command.
+    */
+    void FetchLeafObjectL( const TDesC8& aURI, const TDesC8& aLUID,
+						   const TDesC8& aType, TInt aResultsRef,
+						   TInt aStatusRef );
+
+    /**
+     * The function fetches the size of the data of a leaf object. The size 
+     * is in bytes, and must reflect the number of bytes that will be 
+     * transferred when the framework calls FetchLeafObjectL. 
+	 *
+     * @since S60 v3.2
+     * @param aURI             URI of the object
+     * @param aLUID            LUID of the object (if the adapter have 
+     *                         earlier returned LUID to the DM Module).   
+     * @param aType            MIME type of the object
+     * @param aResultsRef      Reference to correct results, i.e. this 
+     *                         reference must be used when returning the 
+     *                         result by calling the SetResultsL.
+     * @param aStatusRef       Reference to correct command, i.e. this 
+     *                         reference must be used when calling the 
+     *                         SetStatusL of this command.
+    */
+    void FetchLeafObjectSizeL( const TDesC8& aURI, const TDesC8& aLUID,
+							   const TDesC8& aType, TInt aResultsRef,
+							   TInt aStatusRef );
+
+    /**
+     * The function fetches URI list. An adapter returns the list of URI 
+     * segments under the given URI be separated by slash ("/"). The URI 
+     * segment names for new objects must be given by the adapter.
+     * The list is returned by calling the SetResultsL function of 
+     * MSmlCallback callback interface. 
+	 *
+     * @since S60 v3.2
+     * @param aParentURI               URI of the parent object
+     * @param aParentLUID              LUID of the parent object (if the
+     *                                 adapter have earlier returned LUID to
+     *                                 the DM Module).   
+     * @param aPreviousURISegmentList  URI list with mapping LUID 
+     *                                 information, which is known by DM
+     *                                 engine.  
+     * @param aResultsRef              Reference to correct results, i.e. 
+     *                                 this reference must be used when 
+     *                                 returning the result by calling the 
+     *                                 SetResultsL.
+     * @param aStatusRef               Reference to correct command, i.e. 
+     *                                 this reference must be used when 
+     *                                 calling the SetStatusL of this 
+     *                                 command.
+    */
+    void ChildURIListL( const TDesC8& aURI, const TDesC8& aLUID,
+					    const CArrayFix<TSmlDmMappingInfo>& aPreviousURISegmentList,
+					    TInt aResultsRef, TInt aStatusRef );
+
+    /**
+     * The function adds node object. 
+     *
+     * @since S60 v3.2
+     * @param aURI             URI of the object
+     * @param aParentLUID      LUID of the parent object (if the adapter have
+     *                         earlier returned LUID to the DM Module).   
+     * @param aStatusRef       Reference to correct command, i.e. this 
+     *                         reference must be used when calling the 
+     *                         SetStatusL of this command.
+    */
+    void AddNodeObjectL( const TDesC8& aURI, const TDesC8& aParentLUID,
+						 TInt aStatusRef );
+    /**
+     * The adapter does not support streaming and no implementation is 
+     * provided for this function.
+     *
+     * @since S60 v3.2
+     * @param aURI         URI of the object
+     * @param aLUID        LUID of the object
+     * @param aStream      Data of the object. 
+     * @param aType        MIME type of the object
+     * @param aStatusRef   Reference to correct command, i.e. this reference
+     *                     must be used when calling the SetStatusL of this
+     *                     command.
+    */
+    void UpdateLeafObjectL( const TDesC8& aURI, const TDesC8& aLUID,
+							RWriteStream*& aStream, const TDesC8& aType,
+		 					TInt aStatusRef );
+    /**
+     * The adapter does not support execute command and does not 
+     * provide implementation for this function. 
+     *
+     *  @since S60 v3.2
+     * @param aURI             URI of the command
+     * @param aLUID            LUID of the object
+     * @param aArgument        Argument for the command
+     * @param aType            MIME type of the object 
+     * @param aStatusRef       Reference to correct command, i.e. this 
+     *                         reference must be used when calling the 
+     *                         SetStatusL of this command.
+    */
+    void ExecuteCommandL( const TDesC8& aURI, const TDesC8& aLUID, 
+                          const TDesC8& aArgument, const TDesC8& aType, 
+                          TInt aStatusRef );
+    /**
+     * The adapter does not support execute command and does not 
+     * provide implementation for this function. 
+     *
+     * @since S60 v3.2
+     * @param aURI         URI of the command
+     * @param aLUID            LUID of the object 
+     * @param aStream      Argument for the command. 
+     * @param aType            MIME type of the object 
+     * @param aStatusRef       Reference to correct command, i.e. this 
+     *                         reference must be used when calling the 
+     *                         SetStatusL of this command.
+    */
+    void ExecuteCommandL( const TDesC8& aURI, const TDesC8& aLUID,
+						  RWriteStream*& aStream, const TDesC8& aType,
+						  TInt aStatusRef );
+    /**
+     * The adapter does not support copy command and does not 
+     * provide implementation for this function. 
+     *
+     * @since S60 v3.2
+     * @param aTargetURI       Target URI for the command
+     * @param aSourceLUID      LUID of the target object 
+     * @param aSourceURI       Source URI for the command
+     * @param aSourceLUID      LUID of the source object 
+     * @param aType            MIME type of the objects
+     * @param aStatusRef       Reference to correct command, i.e. this 
+     *                         reference must be used when calling the 
+     *                         SetStatusL of this command.
+    */
+    void CopyCommandL( const TDesC8& aTargetURI, const TDesC8& aTargetLUID, 
+                       const TDesC8& aSourceURI, const TDesC8& aSourceLUID, 
+                       const TDesC8& aType, TInt aStatusRef );
+    /**
+     * Not supported
+     *  @since S60 v3.2
+    */
+    void StartAtomicL();
+    /**
+     * Not Supported     
+     *  @since S60 v3.2
+     *
+    */
+    void CommitAtomicL();
+    /**
+ 	 * Not supported.
+     *  @since S60 v3.2
+     */
+    void RollbackAtomicL();
+    /**
+     * Returns EFalse as the adapter does not support streaming
+     *
+     * @since S60 v3.2
+     * @param aItemSize size limit for stream usage
+     * @return TBool EFalse as streaming is not supported
+    */
+    TBool StreamingSupport( TInt& aItemSize );
+    /**
+     * Not supported
+     *
+     *  @since S60 v3.2
+    */  
+    void StreamCommittedL();
+    /**
+     * The function tells the adapter that all the commands of the message 
+     * that can be passed to the adapter have now been passed.  This 
+     * indciates that the adapter must supply status codes and results to 
+     * any buffered commands. This must be done at latest by the time this 
+     * function returns. This function is used at the end of SyncML messages, 
+     * and during processing of Atomic.  
+     *
+     *  @since S60 v3.2
+    */
+    void CompleteOutstandingCmdsL();
+        
+    /**
+     * Converts integer to 8bit descriptor
+     *
+     *  @since S60 v3.2
+     * @param    aLuid The integer to be converted
+     * @return    The Integer as a descriptor
+     */
+    HBufC8* IntToDes8L( TInt aLuid) const;
+    
+    /**
+     * Converts 8bit descriptor to integer
+     *
+     *  @since S60 v3.2
+     * @param    aLuid The descriptor to be converted
+     * @return    Integer value of the descriptor
+     */
+    TUint DesToIntL(const TDesC8& aLuid) const;
+
+
+private:
+
+     /**
+     * Constructor
+     */
+    CNSmlDmAOAdapter();
+
+    /**
+     * Constructor
+     * @param aDmCallback Callback object to the framework
+     */
+    CNSmlDmAOAdapter( MSmlDmCallback* aDmCallback );   
+
+    /**
+     * Second phase constructor
+     */
+    void ConstructL();
+     
+    /**
+     * Parses the last URI segment from URI
+     * @param    aURI The whole URI
+     * @return    The last URI segment
+     */
+    TPtrC8 LastURISeg(const TDesC8& aURI) const; 
+
+
+private: //data
+
+    /**
+     * Setting store object, which is called for managing settings 
+     * in CommsDat. Own.
+     */
+     CNSmlDmAOSettingStore * iSettingStore;
+        
+    };
+
+
+/**
+ *  CSmlDmAOCommandElement 
+ *
+ * Helper class, which stores a single command for a VENDORCONFIG. 
+ *  @lib nsmldmalwaysonadapter
+ *  @since S60 v3.2
+ */
+
+class CSmlDmAOCommandElement : public CBase
+    {
+
+public:
+
+    static CSmlDmAOCommandElement* NewLC( TBool aLeaf, 
+                                          TInt aStatusRef, 
+                                          TInt aResultRef, 
+                                          CNSmlDmAOAdapter::TCommandType  aCmdType, 
+                                          const TDesC8& aLastUriSeg, 
+                                          const TDesC8& aData );
+
+     ~CSmlDmAOCommandElement();
+
+    /**
+     * Returns the iExecuted member value of the object
+     *
+     * @since S60 v3.2
+     * @return The iExecuted member value of the object
+     */
+    inline TBool Executed();
+
+    /**
+     * Sets the iExecuted member value of the object
+     *
+     * @since S60 v3.2
+     * @param aExecuted Executed value for the object. 
+     */    
+    inline void SetExecuted( TBool aExecuted );
+    
+    /**
+     * Returns the iStatus member value of the object
+     *
+     * @since S60 v3.2
+     * @return The iStatus value of the object
+     */
+    inline CSmlDmAdapter::TError Status();
+    
+    /**
+     * Sets the iStatus member value of the object
+     *
+     * @since S60 v3.2
+     * @param aStatus Status value for the object. 
+     */    
+    inline void SetStatus( CSmlDmAdapter::TError aStatus ); 
+    
+    /**
+     * Returns the iLeaf member value of the object
+     *
+     * @since S60 v3.2
+     * @return The iLeaf member value of the object
+     */
+    inline TBool Leaf();
+    
+    /**
+     * Returns the iStatusRef member value of the object
+     *
+     * @since S60 v3.2
+     * @return The iStatusRef member value of the object
+     */
+    inline TInt StatusRef();
+    
+    /**
+     * Returns the iResultRef member value of the object
+     *
+     * @since S60 v3.2
+     * @return The iResultRef member value of the object
+     */
+    inline TInt ResultRef();
+    
+    /**
+     * Returns the iCmdType member value of the object
+     *
+     * @since S60 v3.2
+     * @return The iCmdType member value of the object
+     */
+    inline CNSmlDmAOAdapter::TCommandType  CmdType();        
+    
+    /**
+     * Returns the iData member value of the object
+     *
+     * @since S60 v3.2
+     * @return The iData member value of the object
+     */
+    inline const HBufC8* Data();
+    
+    /**
+     * Returns the iLastUriSeg member value of the object
+     *
+     * @since S60 v3.2
+     * @return The iLastUriSeg member value of the object
+     */
+    inline const HBufC8* LastUriSeg();
+    
+    /**
+     * Sets the iData member value of the object
+     *
+     * @since S60 v3.2
+     * @param aData Data set to the object. The data will be owned by 
+     * the command object. 
+     */    
+    inline void SetData( HBufC8* aData );
+
+private:
+
+    CSmlDmAOCommandElement( TBool aLeaf, 
+                            TInt aStatusRef, 
+                            TInt aResultRef, 
+                            CNSmlDmAOAdapter::TCommandType aCmdType );                              
+
+    void ConstructL( const TDesC8& aLastUriSeg, const TDesC8& aData );   
+
+    
+private: //data
+
+    /**
+     * Has command been executed. 
+     * Set to ETrue when command is executed.
+     */
+    TBool iExecuted;
+    
+    /**
+     * The execution status of an exeuted command. 
+     * Filled in when command is executed.
+     */    
+    CSmlDmAdapter::TError iStatus;
+    
+    
+    /**
+     * True if commend is for a leaf node, False if it is for a NAPDEF node.
+     */    
+    const TBool iLeaf;
+    
+    /**
+     * Reference for returning the status to DM framework.
+     */    
+    const TInt iStatusRef;
+    
+    /**
+     * Reference for returning result of Get command to the DM framework.
+     */    
+    const TInt iResultRef;
+    
+    /**
+     * Type of command.
+     */    
+    const CNSmlDmAOAdapter::TCommandType  iCmdType;        
+    
+
+    /**
+     * Data which is either ment to be stored to setting store 
+     * or which has been fetched from there. 
+     */
+    HBufC8* iData;
+
+    /**
+     * Last segment in the command URI, which indicates the leaf node 
+     * in question. For non leaf command empty string. 
+     */    
+    HBufC8* iLastUriSeg;
+
+    };
+    
+#include "nsmldmalwaysonadapter.inl"    
+
+#endif // NSMLDMALWAYSONADAPTER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/nsmldmalwaysonadapter/inc/nsmldmalwaysonadapter.inl	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,119 @@
+/*
+* Copyright (c) 2007 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:  Contains implementations of inline functions.
+*
+*/
+
+
+// -----------------------------------------------------------------------------
+// Returns the iExecuted member of the object
+// -----------------------------------------------------------------------------
+//
+TBool CSmlDmAOCommandElement::Executed()
+    {
+    return iExecuted;
+    }
+
+// -----------------------------------------------------------------------------
+// Returns the iStatus member of the object
+// -----------------------------------------------------------------------------
+//
+CSmlDmAdapter::TError CSmlDmAOCommandElement::Status()
+    {
+    return iStatus;
+    }
+    
+// -----------------------------------------------------------------------------
+// Returns the iLeaf member of the object
+// -----------------------------------------------------------------------------
+//
+TBool CSmlDmAOCommandElement::Leaf()
+    {
+    return iLeaf;
+    }
+    
+// -----------------------------------------------------------------------------
+// Returns the iStatusRef member of the object
+// -----------------------------------------------------------------------------
+//
+TInt CSmlDmAOCommandElement::StatusRef()
+    {
+    return iStatusRef;    
+    }
+    
+// -----------------------------------------------------------------------------
+// Returns the iResultRef member of the object
+// -----------------------------------------------------------------------------
+//
+TInt CSmlDmAOCommandElement::ResultRef()
+    {
+    return iResultRef;
+    }
+    
+// -----------------------------------------------------------------------------
+// Returns the iCmdType member of the object
+// -----------------------------------------------------------------------------
+//
+CNSmlDmAOAdapter::TCommandType  CSmlDmAOCommandElement::CmdType()
+    {
+    return iCmdType;
+    }
+    
+// -----------------------------------------------------------------------------
+// Returns the iData member of the object
+// -----------------------------------------------------------------------------
+//
+const HBufC8* CSmlDmAOCommandElement::Data()
+    {
+    return iData;
+    }
+    
+// -----------------------------------------------------------------------------
+// Returns the iLastUriSeg member of the object
+// -----------------------------------------------------------------------------
+//
+const HBufC8* CSmlDmAOCommandElement::LastUriSeg()
+    {
+    return iLastUriSeg;
+    }
+    
+// -----------------------------------------------------------------------------
+// Sets the iExecuted member of the object
+// -----------------------------------------------------------------------------
+//
+void CSmlDmAOCommandElement::SetExecuted( TBool aExecuted )
+    {
+    iExecuted = aExecuted;
+    }
+
+// -----------------------------------------------------------------------------
+// Sets the iStatus member of the object
+// -----------------------------------------------------------------------------
+//
+void CSmlDmAOCommandElement::SetStatus( CSmlDmAdapter::TError aStatus )
+    {
+    iStatus = aStatus;
+    }
+    
+    
+// -----------------------------------------------------------------------------
+// Sets the iData member of the object. Ownership of aData argument will be 
+// transfered to the CSmlDmAOCommandElement
+// -----------------------------------------------------------------------------
+//
+void CSmlDmAOCommandElement::SetData( HBufC8* aData )
+    {
+    iData = aData;
+    }
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/nsmldmalwaysonadapter/inc/nsmldmalwaysonsettingstore.h	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,165 @@
+/*
+* Copyright (c) 2007 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:  Manages always-on settings in Central Repository.
+*
+*/
+
+
+#ifndef NSMLDMALWAYSONSETTINGSTORE_H
+#define NSMLDMALWAYSONSETTINGSTORE_H
+
+#include "nsmldmalwaysonadapter.h"
+
+#include <centralrepository.h>
+
+const TInt KDefaultLuid = 1;
+
+class CNSmlDmAOAdapter;
+class CSmlDmAOCommandElement;
+
+/**
+ *  Setting Store is used for managing settings in CentralRepository
+ *
+ *  The class provides functions for executing commands 
+ *  and sets of commands that involve manipulation of 
+ *  data in CentralRepository. 
+ *
+ *  @lib nsmldmalwaysonadapter
+ *  @since S60 v3.2
+ */
+class CNSmlDmAOSettingStore : public CBase
+    {
+
+public:
+
+    static CNSmlDmAOSettingStore * NewL( CNSmlDmAOAdapter* aAdapter );
+
+    virtual ~CNSmlDmAOSettingStore();
+
+    /**
+     * Executes the argument command. 
+     *
+     * @since S60 v3.2
+     * @param aCmd Command to be executed
+     * @param aLUID LUID of the VENDORCONFIG which command is referring.
+     */
+     void ExecuteCmdL( CSmlDmAOCommandElement& aCmd, TUint aLuid);   
+
+    /**
+     * Fetches all VENDORCONFIGs and inserts id of each VENDORCONFIG
+     * into the argument array (in practise there is only one VENDORCONFIG)
+     *
+     * @since S60 v3.2
+     * @param aLUIDArray Array for VENDORCONFIG ids
+     */
+    void GetVendorConfigsL( RArray<TUint32>& aLUIDArray );
+ 
+private:
+
+    CNSmlDmAOSettingStore( CNSmlDmAOAdapter * aAdapter );
+
+    void ConstructL();
+
+//----------- Commands for managing leaf nodes -------------------//
+
+    /**
+     * Executes VENDORCONFIG commands. The valid commands include 
+     * get. With get commands the iData 
+     * memeber is used to pass fetched data back to caller. 
+     * After execution of command the function fills in the status 
+     * in aCmd.iStatus memeber and sets aCmd.iExecuted as True. The function
+     * leaves if command can not be executed for some reason. 
+     *
+     * @param aCmd The command to be executed
+     * @param aLuid The id of the VENDORCONFIG
+     */
+    void ExecuteVendorConfigCmdL( CSmlDmAOCommandElement& aCmd, TUint aLuid );    
+
+    /**
+     * Executes NAME commands. The valid commands include 
+     * update and get. With update commands data is read from the 
+     * iData memeber of the argument command. With get commands the iData 
+     * memeber is used to pass fetched data back to caller. 
+     * After execution of command the function fills in the status 
+     * in aCmd.iStatus memeber and sets aCmd.iExecuted as True. The function
+     * leaves if command can not be executed for some reason. 
+     *
+     * @param aCmd    The command to be executed
+     * @param aCenrep Pointer to PdpContextManager2 repository
+     */
+    void ExecuteNameCmdL( CSmlDmAOCommandElement& aCmd, 
+                          CRepository*            aCenrep );
+
+
+    /**
+     * Executes AWON-PDPC commands. The valid commands include 
+     * update and get. With update commands data is read from the 
+     * iData memeber of the argument command. With get commands the iData 
+     * memeber is used to pass fetched data back to caller. 
+     * After execution of command the function fills in the status 
+     * in aCmd.iStatus memeber and sets aCmd.iExecuted as True. The function
+     * leaves if command can not be executed for some reason. 
+     *
+     * @param aCmd The command to be executed
+     * @param aCenrep Pointer to PdpContextManager2 repository
+     */
+    void ExecuteAwonPdpcCmdL( CSmlDmAOCommandElement& aCmd, 
+                              CRepository*            aCenrep );
+
+
+    /**
+     * Executes T-RETRY commands. The valid commands include 
+     * update and get. With update commands data is read from the 
+     * iData memeber of the argument command. With get commands the iData 
+     * memeber is used to pass fetched data back to caller. 
+     * After execution of command the function fills in the status 
+     * in aCmd.iStatus memeber and sets aCmd.iExecuted as True. The function
+     * leaves if command can not be executed for some reason. 
+     *
+     * @param aCmd The command to be executed
+     * @param aCenrep Pointer to PdpContextManager2 repository
+     */
+    void ExecuteTRetryCmdL( CSmlDmAOCommandElement& aCmd, 
+                            CRepository*            aCenrep );
+    
+     /**
+     * Parses integer from descriptor 
+     *
+     * @param aPtr Descriptor containing value
+     * @param aInt Value as integer
+     */                        
+    void ParseIntegerL( const TDesC& aPtr, TInt& aInt );
+    
+     /**
+     * Parses settings for home network and visited network 
+     *
+     * @param aInt Interger containing home & visited network setting
+     * @param aHplmn "1" when always-on enabled in hplmn, otherwise "0"
+     * @param aVplmn "1" when always-on enabled in vplmn, otherwise "0"
+     */
+    void ParseAwonPdpcValuesL( const TInt aInt, TInt& aHplmn, TInt& aVplmn );                        
+
+private: //data
+     
+    /**
+     * Pointer to the adapter. This is used for 
+     * querying data from DM framework when necessary
+     * and using helper functions. Not own.
+     */ 
+    CNSmlDmAOAdapter* iAdapter;
+
+  };
+
+
+#endif // NSMLDMALWAYSONSETTINGSTORE_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/nsmldmalwaysonadapter/rom/nsmldmalwaysonadapter.iby	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,32 @@
+/*
+* Copyright (c) 2007 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:  Image description file for project nsmldmalwaysonadapter
+*
+*/
+
+
+#ifndef NSMLDMALWAYSONADAPTER_IBY
+#define NSMLDMALWAYSONADAPTER_IBY
+
+#include <data_caging_paths_for_iby.hrh>
+
+#ifdef __ALWAYS_ONLINE_PDPCONTEXT2 
+#ifdef __SYNCML_DM
+
+ECOM_PLUGIN( nsmldmalwaysonadapter.dll, nsmldmalwaysonadapter.rsc )
+
+#endif // __SYNCML_DM
+#endif // __ALWAYS_ONLINE_PDPCONTEXT2
+
+#endif // NSMLDMALWAYSONADAPTER_IBY
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/nsmldmalwaysonadapter/src/nsmldmalwaysonadapter.cpp	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,647 @@
+/*
+* Copyright (c) 2007 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:  Provides handling of Always-on settings in Device management.
+*
+*/
+
+
+#include <ecom/implementationproxy.h>
+
+#include "nsmldmalwaysonadapter.h"
+#include "logger.h"
+
+// ======== MEMBER FUNCTIONS ========
+
+
+// --------------------------------------------------------------------------
+// Maps plugin UID to its factory function (constructor)
+// --------------------------------------------------------------------------
+const TImplementationProxy ImplementationTable[] =
+    {
+    IMPLEMENTATION_PROXY_ENTRY(0x101f6d36, 
+                               CNSmlDmAOAdapter::NewL)
+    };
+
+// --------------------------------------------------------------------------
+// For ecom plugin implementation
+// -------------------------------------------------------------------------
+
+EXPORT_C const TImplementationProxy* ImplementationGroupProxy( TInt& aTableCount )
+    {
+    aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
+    return ImplementationTable;
+    }
+
+// --------------------------------------------------------------------------
+// CNSmlDmAOAdapter::NewL
+// --------------------------------------------------------------------------
+CNSmlDmAOAdapter* CNSmlDmAOAdapter::NewL( MSmlDmCallback* aDmCallback )
+    {
+    LOGSTRING("CNSmlDmAOAdapter::NewL: Start");
+    
+    CNSmlDmAOAdapter* self = new (ELeave) CNSmlDmAOAdapter( aDmCallback );
+    CleanupStack::PushL(self);
+    self->ConstructL();
+    CleanupStack::Pop( self );
+    
+    LOGSTRING("CNSmlDmAOAdapter::NewL: End");
+    return self;
+    }
+
+// --------------------------------------------------------------------------
+// CNSmlDmAOAdapter::CNSmlDmAOAdapter
+// --------------------------------------------------------------------------
+
+CNSmlDmAOAdapter::CNSmlDmAOAdapter( MSmlDmCallback* aDmCallback ) 
+    : CSmlDmAdapter( aDmCallback )
+    {
+    }
+
+// --------------------------------------------------------------------------
+// CNSmlDmAOAdapter::ConstructL
+// --------------------------------------------------------------------------
+void CNSmlDmAOAdapter::ConstructL()
+    {
+    LOGSTRING( "CNSmlDmAOAdapter::CNSmlDmAOAdapter: Start" );
+    
+    iSettingStore = CNSmlDmAOSettingStore::NewL( this );
+    
+    LOGSTRING( "CNSmlDmAOAdapter::CNSmlDmAOAdapter: End" );
+    }
+
+// --------------------------------------------------------------------------
+// CNSmlDmAOAdapter::~CNSmlDmAOAdapter
+// --------------------------------------------------------------------------
+CNSmlDmAOAdapter::~CNSmlDmAOAdapter()
+    {
+    LOGSTRING( "CNSmlDmAOAdapter::~CNSmlDmAOAdapter: Start" );    
+ 
+    //iBuffer.ResetAndDestroy();
+    //iBuffer.Close();
+    delete iSettingStore;
+ 
+    LOGSTRING( "CNSmlDmAOAdapter::~CNSmlDmAOAdapter: End" );
+    }
+    
+// --------------------------------------------------------------------------
+// CNSmlDmAOAdapter::DDFVersionL
+// Returns ddf version nr
+// --------------------------------------------------------------------------
+void CNSmlDmAOAdapter::DDFVersionL( CBufBase& aDDFVersion )
+    {
+    LOGSTRING( "CNSmlDmAOAdapter::DDFVersionL: Start" );
+ 
+    aDDFVersion.InsertL( 0, KNSmlDmAOAdapterDDFVersion );
+ 
+    LOGSTRING( "CNSmlDmAOAdapter::DDFVersionL:End" );
+    }
+   
+// --------------------------------------------------------------------------
+// CNSmlDmAOAdapter::DDFStructureL
+//  Constructs the DDF structure
+// --------------------------------------------------------------------------
+void CNSmlDmAOAdapter::DDFStructureL( MSmlDmDDFObject& aDDF )
+    {
+    LOGSTRING( "CNSmlDmAOAdapter::DDFStructureL: Start" );
+    TSmlDmAccessTypes accessTypes;
+
+    // VENDORCONFIG
+    MSmlDmDDFObject& ao = aDDF.AddChildObjectL( KNSmlDmAOAdapterAO );
+    
+    accessTypes.SetGet();    
+    
+    ao.SetAccessTypesL( accessTypes );
+    ao.SetOccurenceL( MSmlDmDDFObject::EOne );
+    ao.SetScopeL( MSmlDmDDFObject::EPermanent );
+    ao.SetDFFormatL( MSmlDmDDFObject::ENode );
+    ao.AddDFTypeMimeTypeL( KNSmlDmAOAdapterTextPlain );
+    ao.SetDescriptionL( KNSmlDmAOAdapterAODescription );
+    accessTypes.Reset();
+
+    // VENDORCONFIG/Name
+    MSmlDmDDFObject& name = ao.AddChildObjectL( KNSmlDmAOAdapterName );
+    
+    accessTypes.SetGet();
+    accessTypes.SetReplace();
+    accessTypes.SetAdd();
+    
+    name.SetAccessTypesL( accessTypes );
+    name.SetOccurenceL( MSmlDmDDFObject::EOne );
+    name.SetScopeL( MSmlDmDDFObject::EDynamic );
+    name.SetDFFormatL( MSmlDmDDFObject::EChr );
+    name.SetDescriptionL( KNSmlDmAOAdapterNameDescription );
+    accessTypes.Reset();
+
+    // VENDORCONFIG/AWON-PDPC
+    MSmlDmDDFObject& awonPdpc = 
+                          ao.AddChildObjectL( KNSmlDmAOAdapterAwonPdpc );
+    
+    accessTypes.SetGet();
+    accessTypes.SetReplace();
+    accessTypes.SetAdd();
+    
+    awonPdpc.SetAccessTypesL( accessTypes );
+    awonPdpc.SetOccurenceL( MSmlDmDDFObject::EOne );
+    awonPdpc.SetScopeL( MSmlDmDDFObject::EDynamic );
+    awonPdpc.SetDFFormatL( MSmlDmDDFObject::EChr );
+    awonPdpc.SetDescriptionL( KNSmlDmAOAdapterAwonPdpcDescription );
+    accessTypes.Reset();
+        
+    // VENDORCONFIG/T-RETRY
+    MSmlDmDDFObject& tRetry = 
+                          ao.AddChildObjectL( KNSmlDmAOAdapterTRetry );
+    
+    accessTypes.SetGet();
+    accessTypes.SetReplace();
+    accessTypes.SetAdd();
+    
+    tRetry.SetAccessTypesL( accessTypes );
+    tRetry.SetOccurenceL( MSmlDmDDFObject::EOne );
+    tRetry.SetScopeL( MSmlDmDDFObject::EDynamic );
+    tRetry.SetDFFormatL( MSmlDmDDFObject::EChr );
+    tRetry.SetDescriptionL( KNSmlDmAOAdapterTRetryDescription );
+    accessTypes.Reset();
+    
+    LOGSTRING( "CNSmlDmAOAdapter::DDFStructureL: End" );    
+    }
+
+// -------------------------------------------------------------------------
+// CNSmlDmAOAdapter::UpdateLeafObjectL
+// Adds or updates leaf node value. 
+// -------------------------------------------------------------------------
+void CNSmlDmAOAdapter::UpdateLeafObjectL( const TDesC8& aURI, 
+                                          const TDesC8& aLUID, 
+                                          const TDesC8& aObject, 
+                                          const TDesC8& /*aType*/, 
+                                          TInt aStatusRef )
+    {
+    LOGSTRING( "CNSmlDmAOAdapter::UpdateLeafObjectL: Start" );
+    LOGSTRING4( "\tUpdateLeafObjectL  \tURI: %S, \n\tLUID: %S,\
+                         \tobject: %S ", 
+                        &aURI, &aLUID, &aObject );
+        
+	// execute command and return status  
+    CSmlDmAOCommandElement* cmd = 
+    CSmlDmAOCommandElement::NewLC( ETrue, 
+                                   aStatusRef,
+                                   KNSmlDmAOInvalidRef, 
+                                   CNSmlDmAOAdapter::EAddCmd,
+                                   LastURISeg( aURI ), 
+                                   aObject);
+    
+    TInt luid( KDefaultLuid );
+    
+    if ( aLUID.Length() > 0 )
+        {
+        luid = DesToIntL( aLUID );    
+        }
+                                                                                                     
+    iSettingStore->ExecuteCmdL( *cmd, luid );    
+    
+    LOGSTRING2( "\tCmd executed with status: %d", 
+                          cmd->Status() );
+    Callback().SetStatusL( aStatusRef, cmd->Status() );     
+    CleanupStack::PopAndDestroy( cmd );                
+        
+    LOGSTRING( "CNSmlDmAOAdapter::UpdateLeafObjectL: End" );    
+    }
+// --------------------------------------------------------------------------
+// CNSmlDmAOAdapter::DeleteObjectL
+// Not supported
+// --------------------------------------------------------------------------
+
+void CNSmlDmAOAdapter::DeleteObjectL( const TDesC8& /*aURI*/, 
+                                      const TDesC8& /*aLUID*/,
+						              TInt aStatusRef )
+    {
+    LOGSTRING( "CNSmlDmAOAdapter::DeleteObjectL: Start" );
+    Callback().SetStatusL(aStatusRef, CSmlDmAdapter::EError); 
+    LOGSTRING( "CNSmlDmAOAdapter::DeleteObjectL: End" );
+    }
+    
+// -------------------------------------------------------------------------
+// CNSmlDmAOAdapter::FetchLeafObjectL
+// Fetches leaf object value.
+// -------------------------------------------------------------------------
+void CNSmlDmAOAdapter::FetchLeafObjectL( const TDesC8& aURI, 
+                                         const TDesC8& aLUID, 
+                                         const TDesC8& /*aType*/, 
+                                         const TInt aResultsRef, 
+                                         const TInt aStatusRef )
+    {
+    LOGSTRING( "NSmlDmAOAdapter::FetchLeafObjectL: Start" );
+    LOGSTRING3( "\tFetchLeafObjectL  \tURI: %S, \tLUID: %S,", 
+                        &aURI, &aLUID );
+    
+    CSmlDmAOCommandElement* cmd = 
+    CSmlDmAOCommandElement::NewLC( ETrue, 
+                                   aStatusRef, 
+                                   aResultsRef, 
+                                   CNSmlDmAOAdapter::EGetCmd,
+                                   LastURISeg( aURI ), 
+                                   KNullDesC8);
+
+    TInt luid( KDefaultLuid );
+    
+    if ( aLUID.Length() > 0 )
+        {
+        luid = DesToIntL( aLUID );    
+        }
+        
+    iSettingStore->ExecuteCmdL( *cmd, luid );
+    LOGSTRING2( "\tCmd executed with status: %d ", 
+                          cmd->Status() );
+
+    // if executed return status
+    if ( cmd->Executed() ) 
+        {
+        Callback().SetStatusL( aStatusRef, cmd->Status() );            
+        // if successful set results
+        if ( cmd->Status() == CSmlDmAdapter::EOk )
+            {
+            LOGSTRING2( "\tCmd executed with result: %S ", 
+                                  cmd->Data() );
+            CBufBase* result = CBufFlat::NewL( cmd->Data()->Size() );
+            CleanupStack::PushL( result );
+            result->InsertL( 0, *cmd->Data() );
+            Callback().SetResultsL( aResultsRef, *result, KNullDesC8 );
+            CleanupStack::PopAndDestroy( result );
+            }
+        }
+    else
+        {
+        // failed to execute command
+        Callback().SetStatusL( aStatusRef, CSmlDmAdapter::EError );
+        }
+    CleanupStack::PopAndDestroy( cmd );
+    
+    
+    LOGSTRING( "NSmlDmAOAdapter::FetchLeafObjectL: End" );
+    }
+
+// --------------------------------------------------------------------------
+//  CNSmlDmAOAdapter::FetchLeafObjectSizeL
+//  Fetches leaf object size.
+// -------------------------------------------------------------------------
+void CNSmlDmAOAdapter::FetchLeafObjectSizeL( const TDesC8& aURI, 
+                                             const TDesC8& aLUID,
+									         const TDesC8& /* aType */, 
+									         TInt aResultsRef,
+									         TInt aStatusRef )
+    {
+    LOGSTRING( "CNSmlDmAOAdapter::FetchLeafObjectSizeL: Start" );
+    LOGSTRING3( "\tFetchLeafObjectSizeL  \tURI: %S, \tLUID: %S,", 
+                         &aURI, &aLUID );
+   
+    CSmlDmAOCommandElement* cmd = 
+    CSmlDmAOCommandElement::NewLC( ETrue, 
+                                   aStatusRef, 
+                                   aResultsRef, 
+                                   CNSmlDmAOAdapter::EGetSizeCmd,
+                                   LastURISeg( aURI ), 
+                                   KNullDesC8);
+                                   
+    TInt luid( KDefaultLuid );
+    
+    if ( aLUID.Length() > 0 )
+        {
+        luid = DesToIntL( aLUID );    
+        }
+                                       
+    iSettingStore->ExecuteCmdL( *cmd, luid );
+    
+    LOGSTRING2( "\tCmd executed with status: %d ", 
+                          cmd->Status() );
+    // if executed get status
+    if ( cmd->Executed() ) 
+        {
+        Callback().SetStatusL( aStatusRef, cmd->Status() );            
+        // if successful get results
+        if ( cmd->Status() == CSmlDmAdapter::EOk )
+            {
+            LOGSTRING2( "\tCmd executed with result: %S ", 
+                                  cmd->Data() );
+            CBufBase* result = CBufFlat::NewL( cmd->Data()->Size() );
+            CleanupStack::PushL( result );
+            result->InsertL( 0, *cmd->Data() );
+            Callback().SetResultsL( aResultsRef, *result, KNullDesC8 );
+            CleanupStack::PopAndDestroy( result );
+            }
+        }
+    else
+        {
+        // failed to execute command
+        Callback().SetStatusL( aStatusRef, CSmlDmAdapter::EError );
+        }
+    
+    CleanupStack::PopAndDestroy( cmd );
+        
+    LOGSTRING( "CNSmlDmAOAdapter::FetchLeafObjectSizeL: End" );
+    }
+
+// ------------------------------------------------------------------------
+//  CNSmlDmAOAdapter::ChildURIListL
+//  Fetches child nodes of a node. these may be either all VENDORCONFIG 
+//  nodes or leaf nodes under a VENDORCONFIG node. 
+// ------------------------------------------------------------------------
+void CNSmlDmAOAdapter::ChildURIListL( const TDesC8& aURI, 
+                                      const TDesC8& aLUID,
+					                  const CArrayFix<TSmlDmMappingInfo>& 
+					                  /*aPreviousURISegmentList*/,
+					                  TInt aResultsRef, 
+					                  TInt aStatusRef )
+    {
+    LOGSTRING( "CNSmlDmAOAdapter::ChildURIListL: Start" );
+    LOGSTRING3( "\tChildURIListL  URI: %S, LUID: %S ", 
+                        &aURI, &aLUID );
+    
+    CBufBase* resultList = CBufFlat::NewL( KSmlMaxURISegLen );
+    CleanupStack::PushL( resultList );
+	
+	// get all leaf nodes below VENDORCONFIG node
+    if ( !aURI.Compare( KNSmlDmAOAdapterAO ) )
+        {        
+        CSmlDmAOCommandElement* cmd = 
+        CSmlDmAOCommandElement::NewLC( EFalse, 
+                                       aStatusRef,
+                                       aResultsRef, 
+                                       CNSmlDmAOAdapter::EGetCmd, 
+                                       KNullDesC8, 
+                                       KNullDesC8 );
+                                       
+        TInt luid( KDefaultLuid );
+    
+        if ( aLUID.Length() > 0 )
+            {
+            luid = DesToIntL( aLUID );    
+            }
+                                           
+        iSettingStore->ExecuteCmdL( *cmd, luid );
+        
+        LOGSTRING2( "\tCmd executed with status: %d ", 
+                              cmd->Status() );
+   
+        Callback().SetStatusL( aStatusRef, cmd->Status() );
+        if( cmd->Status() == CSmlDmAdapter::EOk )
+            {
+            resultList->InsertL( 0, *cmd->Data() );
+            Callback().SetResultsL( aResultsRef, 
+                                    *resultList, 
+                                    KNullDesC8 );
+            } 
+   
+        CleanupStack::PopAndDestroy( cmd );               
+        }        
+   
+    CleanupStack::PopAndDestroy( resultList );
+    LOGSTRING( "CNSmlDmAOAdapter::ChildURIListL: End" );
+    }
+ 
+// --------------------------------------------------------------------------
+//  CNSmlDmAOAdapter::AddNodeObjectL
+//  Not supported
+// --------------------------------------------------------------------------
+void CNSmlDmAOAdapter::AddNodeObjectL( const TDesC8& /*aURI*/, 
+                                       const TDesC8& /*aParentLUID*/,
+								       TInt aStatusRef )
+    {
+    LOGSTRING( "CNSmlDmAOAdapter::AddNodeObjectL: Start" );
+    Callback().SetStatusL(aStatusRef, CSmlDmAdapter::EError);
+    LOGSTRING( "CNSmlDmAOAdapter::AddNodeObjectL: End" );
+    }
+
+// -------------------------------------------------------------------------
+//  CNSmlDmAOAdapter::UpdateLeafObjectL
+//  Not supported from stream
+// -------------------------------------------------------------------------
+void CNSmlDmAOAdapter::UpdateLeafObjectL( const TDesC8& /* aURI */, 
+                                          const TDesC8& /* aLUID */, 
+                                          RWriteStream*& /* aStream */, 
+                                          const TDesC8& /* aType */, 
+                                          TInt aStatusRef )
+    {
+    LOGSTRING( "CNSmlDmAOAdapter::UpdateLeafObjectL: Start" );
+    Callback().SetStatusL(aStatusRef, CSmlDmAdapter::EError);    
+    LOGSTRING( "CNSmlDmAOAdapter::UpdateLeafObjectL: End" );
+    }
+
+
+
+// -------------------------------------------------------------------------
+//  CNSmlDmAOAdapter::ExecuteCommandL
+//  Not supported
+// -------------------------------------------------------------------------
+void CNSmlDmAOAdapter::ExecuteCommandL( const TDesC8& /* aURI */, 
+                                        const TDesC8& /* aLUID */, 
+                                        const TDesC8& /* aArgument */, 
+                                        const TDesC8& /* aType */, 
+                                        TInt aStatusRef )
+    {
+    LOGSTRING( "CNSmlDmAOAdapter::ExecuteCommandL: Start" );
+    Callback().SetStatusL(aStatusRef, CSmlDmAdapter::EError);    
+    LOGSTRING( "CNSmlDmAOAdapter::ExecuteCommandL: End" );
+    }
+// -------------------------------------------------------------------------
+//  CNSmlDmAOAdapter::ExecuteCommandL
+//  Not supported
+// -------------------------------------------------------------------------
+void CNSmlDmAOAdapter::ExecuteCommandL( const TDesC8& /* aURI */, 
+                                        const TDesC8& /* aLUID */, 
+                                        RWriteStream*& /* aStream */, 
+                                        const TDesC8& /* aType */, 
+                                        TInt aStatusRef )
+    {
+    LOGSTRING( "CNSmlDmAOAdapter::ExecuteCommandL: Start" );
+    Callback().SetStatusL( aStatusRef, CSmlDmAdapter::EError );    
+    LOGSTRING( "CNSmlDmAOAdapter::ExecuteCommandL: End" );
+    }
+ 
+// -------------------------------------------------------------------------
+//  CNSmlDmAOAdapter::CopyCommandL
+//  Not supported
+// -------------------------------------------------------------------------
+void CNSmlDmAOAdapter::CopyCommandL( const TDesC8& /* aTargetURI */ , 
+                                     const TDesC8& /* aTargetLUID */ , 
+                                     const TDesC8& /* aSourceURI */ , 
+                                     const TDesC8& /* aSourceLUID */, 
+                                     const TDesC8& /* aType */ , 
+                                     TInt aStatusRef )
+    {
+    //not supported
+    LOGSTRING( "CNSmlDmAOAdapter::CopyCommandL: Sart" );
+    Callback().SetStatusL( aStatusRef, CSmlDmAdapter::EError );    
+    LOGSTRING( "CNSmlDmAOAdapter::CopyCommandL: End" );
+    }
+// -------------------------------------------------------------------------
+//  CNSmlDmAOAdapter::StartAtomicL
+//  Not supported
+// -------------------------------------------------------------------------
+void CNSmlDmAOAdapter::StartAtomicL()
+    {
+    LOGSTRING( "CNSmlDmAOAdapter::StartAtomicL: Start" );
+    LOGSTRING( "CNSmlDmAOAdapter::StartAtomicL: End" );
+    }
+// -------------------------------------------------------------------------
+//  CNSmlDmAOAdapter::CommitAtomicL
+//  Not supported
+// -------------------------------------------------------------------------
+void CNSmlDmAOAdapter::CommitAtomicL()
+    {
+    LOGSTRING( "CNSmlDmAOAdapter::CommitAtomicL: Start" );
+    LOGSTRING( "CNSmlDmAOAdapter::CommitAtomicL: End" );
+    }
+
+// -------------------------------------------------------------------------
+//  CNSmlDmAOAdapter::RollbackAtomicL
+//  Not supported
+// -------------------------------------------------------------------------
+void CNSmlDmAOAdapter::RollbackAtomicL()
+    {
+    LOGSTRING( "CNSmlDmAOAdapter::RollbackAtomicL: Start" );
+    LOGSTRING( "CNSmlDmAOAdapter::RollbackAtomicL: End" );
+    }
+
+TBool CNSmlDmAOAdapter::StreamingSupport( TInt& /* aItemSize */ )
+    {
+    LOGSTRING( "CNSmlDmAOAdapter::StreamingSupport: Start" );
+    LOGSTRING( "CNSmlDmAOAdapter::StreamingSupport: End" );
+    return EFalse;
+    }
+// -------------------------------------------------------------------------
+//  CNSmlDmAOAdapter::StreamCommittedL
+//  Not supported
+// -------------------------------------------------------------------------
+void CNSmlDmAOAdapter::StreamCommittedL()
+    {
+    LOGSTRING( "CNSmlDmAOAdapter::StreamCommittedL: Start" );
+    LOGSTRING( "CNSmlDmAOAdapter::StreamCommittedL: End" );
+    }
+
+// -------------------------------------------------------------------------
+// CNSmlDmAOAdapter::CompleteOutstandingCmdsL
+// Buffering not needed because nodes can't be added
+// -------------------------------------------------------------------------
+void CNSmlDmAOAdapter::CompleteOutstandingCmdsL()
+    {
+    LOGSTRING( "CNSmlDmAOAdapter::CompleteOutstandingCmdsL: Start");
+    LOGSTRING( "CNSmlDmAOAdapter::CompleteOutstandingCmdsL: End" );    
+    }
+
+// --------------------------------------------------------------------------
+// CNSmlDmAOAdapter::IntToDes8L
+// Converts integer to 8bit descriptor
+// --------------------------------------------------------------------------
+HBufC8* CNSmlDmAOAdapter::IntToDes8L( TInt aLuid ) const
+    {
+    HBufC8* buf = HBufC8::NewL( 10 ); //10 = max length of 32bit integer
+    TPtr8 ptrBuf = buf->Des();
+    ptrBuf.Num( aLuid );
+    return buf;
+    }
+    
+// --------------------------------------------------------------------------
+// CNSmlDmAOAdapter::DesToIntL
+// Converts 8bit descriptor to int
+// --------------------------------------------------------------------------
+TUint CNSmlDmAOAdapter::DesToIntL( const TDesC8& aLuid ) const
+    {
+    TLex8 lex( aLuid );
+    TUint value( 0 );
+    User::LeaveIfError( lex.Val( value ) );
+    return value;
+    }        
+
+// --------------------------------------------------------------------------
+// CNSmlDmAOAdapter::LastURISeg
+// Returns the last uri segemnt of a uri. 
+// --------------------------------------------------------------------------
+TPtrC8 CNSmlDmAOAdapter::LastURISeg( const TDesC8& aURI ) const
+    {
+    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 );
+        }
+    }
+
+
+//---------------------- CSmlDmAOCommandElement -------------------------//
+
+// --------------------------------------------------------------------------
+// CSmlDmAOCommandElement* CSmlDmAOCommandElement::NewLC
+// --------------------------------------------------------------------------
+
+CSmlDmAOCommandElement* CSmlDmAOCommandElement::NewLC( TBool aLeaf,
+                                                       TInt aStatusRef, 
+                                                       TInt aResultRef, 
+                                                       CNSmlDmAOAdapter::TCommandType aCmdType,
+                                                       const TDesC8& aLastUriSeg, 
+                                                       const TDesC8& aData )
+    {
+    CSmlDmAOCommandElement* self = new (ELeave) CSmlDmAOCommandElement( aLeaf, 
+                                                                        aStatusRef, 
+                                                                        aResultRef, 
+                                                                        aCmdType );
+    CleanupStack::PushL(self);
+    self->ConstructL( aLastUriSeg, aData );
+    return self;
+    }    
+    
+// --------------------------------------------------------------------------
+// CSmlDmAOCommandElement::~CSmlDmAOCommandElement
+// --------------------------------------------------------------------------
+CSmlDmAOCommandElement::~CSmlDmAOCommandElement()
+    {
+    delete iLastUriSeg;
+    delete iData;
+    }
+    
+// --------------------------------------------------------------------------
+// CSmlDmAOCommandElement::CSmlDmAOCommandElement
+// --------------------------------------------------------------------------
+CSmlDmAOCommandElement::CSmlDmAOCommandElement( TBool aLeaf,
+                                                TInt aStatusRef, 
+                                                TInt aResultRef, 
+                                                CNSmlDmAOAdapter::TCommandType  aCmdType )
+                                                : iStatus( CSmlDmAdapter::EError ),
+                                                iLeaf( aLeaf ),
+                                                iStatusRef( aStatusRef ),
+                                                iResultRef( aResultRef ),
+                                                iCmdType( aCmdType ),
+                                                iData( NULL )
+                                                
+    {
+    }
+
+// --------------------------------------------------------------------------
+// CSmlDmAOCommandElement::ConstructL
+// --------------------------------------------------------------------------
+void CSmlDmAOCommandElement::ConstructL( const TDesC8& aLastUriSeg, 
+                                         const TDesC8& aData )
+    {
+    iLastUriSeg = aLastUriSeg.AllocL();    
+    iData = aData.AllocL();
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/nsmldmalwaysonadapter/src/nsmldmalwaysonadapter.rss	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,45 @@
+CHARACTER_SET UTF8/*
+* Copyright (c) 2007 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:  Resource definitions for project nsmldmalwaysonadapter
+*
+*/
+
+
+#include <ecom/registryinfo.rh>
+#include "nsmldmconstants.h"
+
+RESOURCE REGISTRY_INFO theRegistryInfo
+  {
+  dll_uid = 0x101f6d36; //The DLL's 3rd UID.
+  interfaces = 
+      {
+      INTERFACE_INFO
+          {
+          interface_uid = KNSmlDMInterfaceUid; //DM interface UID
+          implementations = 
+            {
+            IMPLEMENTATION_INFO
+                {
+                implementation_uid = 0x101f6d36; // adapter implementation UID
+                version_no = 1; 
+                display_name = "";
+                default_data = "";
+                opaque_data = "";
+                }
+            };
+          }
+      };
+    }
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/nsmldmalwaysonadapter/src/nsmldmalwaysonsettingstore.cpp	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,396 @@
+/*
+* Copyright (c) 2007 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:  Provides settings management in Central Repository.
+*
+*/
+
+
+
+#include <utf.h>
+#include <pdpcontextmanagerinternalcrkeys.h>
+
+#include "nsmldmalwaysonsettingstore.h"
+#include "nsmldmalwaysonadapter.h"
+#include "logger.h"
+
+// AWON-PDPC
+// Values are XY, where X is related to 3G flag and Y is related to 2G flag.
+// Possible values are:
+// "00", AlwaysOn is OFF for both 3G and 2G
+// "10", AlwaysOn is ON for 3G, OFF for 2G
+// "01", AlwaysOn is OFF for 3G, ON for 2G
+// "11", AlwaysOn is ON for 3G, ON for 2G
+const TInt KAwonPdpc_Off3G_Off2G = 00;
+const TInt KAwonPdpc_Off3G_On2G  = 01;
+const TInt KAwonPdpc_On3G_Off2G  = 10;
+const TInt KAwonPdpc_On3G_On2G   = 11;
+
+const TInt KBufSize = 10;
+
+// -----------------------------------------------------------------------------
+// CNSmlDmAOSettingStore::NewL
+// -----------------------------------------------------------------------------
+CNSmlDmAOSettingStore* CNSmlDmAOSettingStore::NewL( CNSmlDmAOAdapter * aAdapter )
+    {
+    CNSmlDmAOSettingStore* self = new (ELeave) CNSmlDmAOSettingStore( aAdapter );
+    CleanupStack::PushL(self);
+    self->ConstructL();
+    CleanupStack::Pop( self );
+    return self;
+    }
+
+// -----------------------------------------------------------------------------
+// CNSmlDmAOSettingStore::CNSmlDmAOSettingStore
+// -----------------------------------------------------------------------------
+CNSmlDmAOSettingStore::CNSmlDmAOSettingStore( CNSmlDmAOAdapter * aAdapter ) 
+    : iAdapter( aAdapter )
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CNSmlDmAOSettingStore::ConstructL
+// -----------------------------------------------------------------------------
+void CNSmlDmAOSettingStore::ConstructL()
+    {   
+    }
+
+// -----------------------------------------------------------------------------
+// CNSmlDmAOSettingStore::~CNSmlDmAOSettingStore
+// -----------------------------------------------------------------------------
+CNSmlDmAOSettingStore::~CNSmlDmAOSettingStore()
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CNSmlDmAOSettingStore::ExecuteCmdL
+// Executes a single command
+// -----------------------------------------------------------------------------
+void CNSmlDmAOSettingStore::ExecuteCmdL( CSmlDmAOCommandElement& aCmd, TUint aLuid)
+    {   
+    if( !aCmd.Leaf() )
+        {
+        ExecuteVendorConfigCmdL( aCmd, aLuid );
+        }
+    else 
+        {
+        CRepository* cenrep = CRepository::NewL( KCRUidPDPContextManager );
+        CleanupStack::PushL( cenrep );
+        
+        // name
+        if ( !aCmd.LastUriSeg()->Compare( KNSmlDmAOAdapterName ) )
+            {
+            ExecuteNameCmdL( aCmd, cenrep );            
+            }
+        // awon-pdpc
+        else if ( !aCmd.LastUriSeg()->Compare( KNSmlDmAOAdapterAwonPdpc ) )
+            {
+            ExecuteAwonPdpcCmdL( aCmd, cenrep );
+            } 
+        // t-retry
+        else if ( !aCmd.LastUriSeg()->Compare( KNSmlDmAOAdapterTRetry ) )
+            {
+            ExecuteTRetryCmdL( aCmd, cenrep ); 
+            } 
+        else
+            {
+            // invalid node
+            LOGSTRING( "ExecuteCmdL: Error, Invalid node name" );
+            aCmd.SetStatus( CSmlDmAdapter::ENotFound );
+            }
+                         				    
+        aCmd.SetExecuted( ETrue );
+        
+        CleanupStack::PopAndDestroy( cenrep );    
+        }   
+    }    
+
+	 
+// -----------------------------------------------------------------------------
+// CNSmlDmAOSettingStore::GetVendorConfigsL
+// Fetches all VENDORCONFIG ids
+// -----------------------------------------------------------------------------
+void CNSmlDmAOSettingStore::GetVendorConfigsL( RArray<TUint32>& aLUIDArray )
+        {
+        // Only one VENDORCONFIG node possible at the moment
+        aLUIDArray.Append( KDefaultLuid );
+        }
+ 
+// -----------------------------------------------------------------------------
+// CNSmlDmAOSettingStore::ExecuteVendorConfigCmdL
+// Executes a command for VENDORCONFIG node. Either delete or get, adds are handled 
+// in StoreVendorConfigL
+// -----------------------------------------------------------------------------
+void CNSmlDmAOSettingStore::ExecuteVendorConfigCmdL( CSmlDmAOCommandElement& aCmd, 
+                                                     TUint /*aLuid*/ )
+    {
+    
+    if ( aCmd.CmdType() == CNSmlDmAOAdapter::EGetCmd )
+        {
+        aCmd.SetData( KNSmlDmAOAllLeafNodes().AllocL() );
+        aCmd.SetStatus( CSmlDmAdapter::EOk );
+        aCmd.SetExecuted( ETrue );
+        }
+    else if ( aCmd.CmdType() == CNSmlDmAOAdapter::EDeleteCmd )
+        {
+        // Should not be possible to delete
+        aCmd.SetStatus( CSmlDmAdapter::EOk );
+        aCmd.SetExecuted( ETrue );
+        }
+    else
+        {
+        LOGSTRING( "ExecuteVendorConfigCmdL: Error, Invalid cmd type" );
+        aCmd.SetStatus( CSmlDmAdapter::EError );
+        }
+    }
+
+
+// ---------------------------------------------------------------------------
+// CNSmlDmAOSettingStore::ExecuteNameCmdL
+// Executes NAME command (add or get )
+// ---------------------------------------------------------------------------
+//
+void CNSmlDmAOSettingStore::ExecuteNameCmdL( CSmlDmAOCommandElement& aCmd, 
+                                             CRepository*         /*aCenrep*/ )
+    {
+    if ( aCmd.CmdType() == CNSmlDmAOAdapter::EAddCmd )
+        {
+        HBufC* name = HBufC::NewLC( aCmd.Data()->Size() );
+        TPtr namePtr = name->Des();
+        CnvUtfConverter::ConvertToUnicodeFromUtf8( namePtr, *aCmd.Data() );
+
+        // name is not written to the CentralRepository
+        // Add write to CR here
+
+        CleanupStack::PopAndDestroy( name );
+        aCmd.SetStatus( CSmlDmAdapter::EOk );
+        }        		
+    else if ( aCmd.CmdType() == CNSmlDmAOAdapter::EGetCmd ||
+              aCmd.CmdType() == CNSmlDmAOAdapter::EGetSizeCmd )
+        {
+        // name is not written/read to/from the CentralRepository
+        // Add read from CR here
+        
+        //HBufC* data = ...read name
+        
+        //HBufC8* data8 = HBufC8::NewLC( data->Size() );
+        //TPtr8 toPtr = data8->Des();        
+        //CnvUtfConverter::ConvertFromUnicodeToUtf8( toPtr, *data );
+        //aCmd.SetData( data8 );
+        //CleanupStack::Pop( data8 );
+        //CleanupStack::PopAndDestroy( data );
+
+        // for size command, set the command data to be the 
+        // size of the fetched data
+        
+        //if( aCmd.CmdType() == CNSmlDmAOAdapter::EGetSizeCmd )
+        //    {            
+        //    HBufC8* size = iAdapter->IntToDes8L( aCmd.Data()->Size() );
+        //    aCmd.SetData( size );
+        //    }                
+        
+        aCmd.SetStatus( CSmlDmAdapter::EOk );
+        aCmd.SetExecuted( ETrue );
+        }
+    else    
+        {
+        // unsupported command
+        // this is checked by framework
+        aCmd.SetStatus( CSmlDmAdapter::EError );
+        LOGSTRING( "ExecuteNameCmdL: Error, Only Add, Get and Get size commands supported" );
+        }  
+    }
+    
+// ---------------------------------------------------------------------------
+// CNSmlDmAOSettingStore::ExecuteAwonPdpcCmdL
+// Executes AWON-PDPC command (add or get )
+// ---------------------------------------------------------------------------
+//
+void CNSmlDmAOSettingStore::ExecuteAwonPdpcCmdL( CSmlDmAOCommandElement& aCmd, 
+                                                 CRepository*         aCenrep )
+    {
+    if ( aCmd.CmdType() == CNSmlDmAOAdapter::EAddCmd )
+        {
+        HBufC* data = HBufC::NewLC( aCmd.Data()->Size() );
+        TPtr dataPtr = data->Des();
+        CnvUtfConverter::ConvertToUnicodeFromUtf8( dataPtr, *aCmd.Data() );
+
+        // write to the CentralRepository
+        TInt value( 0 );
+        TInt hplmn( 0 );
+        TInt vplmn( 0 );
+        
+        ParseIntegerL( dataPtr, value );
+        ParseAwonPdpcValuesL( value, hplmn, vplmn );
+        
+        User::LeaveIfError( aCenrep->Set( KPDPContextManagerEnableWhenHome,
+        hplmn ) );
+        User::LeaveIfError( aCenrep->Set( KPDPContextManagerEnableWhenRoaming,
+        vplmn ) );
+
+        CleanupStack::PopAndDestroy( data );
+        aCmd.SetStatus( CSmlDmAdapter::EOk );
+        }        		
+    else if ( aCmd.CmdType() == CNSmlDmAOAdapter::EGetCmd ||
+              aCmd.CmdType() == CNSmlDmAOAdapter::EGetSizeCmd )
+        {
+        // read from CentralRepository
+        TInt hplmn( 0 );
+        TInt vplmn( 0 );
+        
+        User::LeaveIfError(
+        aCenrep->Get( KPDPContextManagerEnableWhenHome, hplmn ) );
+        User::LeaveIfError(
+        aCenrep->Get( KPDPContextManagerEnableWhenRoaming, vplmn ) );
+        
+        HBufC* data    = HBufC::NewLC( KBufSize );
+        TPtr   dataPtr = data->Des();
+        
+        dataPtr.Zero();
+        dataPtr.FillZ();
+        dataPtr.AppendNum( hplmn );
+        dataPtr.AppendNum( vplmn );
+        
+        HBufC8* data8 = HBufC8::NewLC( data->Size() );
+        TPtr8 toPtr = data8->Des();        
+        CnvUtfConverter::ConvertFromUnicodeToUtf8( toPtr, *data );
+        aCmd.SetData( data8 );
+        CleanupStack::Pop( data8 );
+        CleanupStack::PopAndDestroy( data );
+
+        // for size command, set the command data to be the 
+        // size of the fetched data
+        if( aCmd.CmdType() == CNSmlDmAOAdapter::EGetSizeCmd )
+            {            
+            HBufC8* size = iAdapter->IntToDes8L( aCmd.Data()->Size() );
+            aCmd.SetData( size );
+            }                
+        aCmd.SetStatus( CSmlDmAdapter::EOk );
+        aCmd.SetExecuted( ETrue );
+        }
+    else    
+        {
+        // unsupported command
+        // this is checked by framework
+        aCmd.SetStatus( CSmlDmAdapter::EError );
+        LOGSTRING( "ExecuteNameCmdL: Error, Only Add, Get and Get size commands supported" );
+        }  
+    }
+    
+ // ---------------------------------------------------------------------------
+// CNSmlDmAOSettingStore::ExecuteTRetryCmdL
+// Executes T-RETRY command (add or get )
+// ---------------------------------------------------------------------------
+//
+void CNSmlDmAOSettingStore::ExecuteTRetryCmdL( CSmlDmAOCommandElement& aCmd, 
+                                               CRepository*            aCenrep )
+    {
+    if ( aCmd.CmdType() == CNSmlDmAOAdapter::EAddCmd )
+        {
+        HBufC* data = HBufC::NewLC( aCmd.Data()->Size() );
+        TPtr dataPtr = data->Des();
+        CnvUtfConverter::ConvertToUnicodeFromUtf8( dataPtr, *aCmd.Data() );
+
+        // write to the CentralRepository
+        TInt value( 0 );
+        ParseIntegerL( dataPtr, value );
+        
+        User::LeaveIfError( aCenrep->Set( KPDPContextManagerRetryTimer,
+                            value ) );
+
+        CleanupStack::PopAndDestroy( data );
+        aCmd.SetStatus( CSmlDmAdapter::EOk );
+        }        		
+    else if ( aCmd.CmdType() == CNSmlDmAOAdapter::EGetCmd ||
+              aCmd.CmdType() == CNSmlDmAOAdapter::EGetSizeCmd )
+        {
+        // Read from CentralRepository
+        TInt value( 0 );
+        User::LeaveIfError( aCenrep->Get( KPDPContextManagerRetryTimer,
+                            value ) );
+        
+        HBufC* data    = HBufC::NewLC( KBufSize );
+        TPtr   dataPtr = data->Des();
+        
+        dataPtr.Zero();
+        dataPtr.FillZ();
+        dataPtr.AppendNum( value );
+        
+        HBufC8* data8 = HBufC8::NewLC( data->Size() );
+        TPtr8 toPtr = data8->Des();        
+        CnvUtfConverter::ConvertFromUnicodeToUtf8( toPtr, *data );
+        aCmd.SetData( data8 );
+        CleanupStack::Pop( data8 );
+        CleanupStack::PopAndDestroy( data );
+
+        // for size command, set the command data to be the 
+        // size of the fetched data
+        if( aCmd.CmdType() == CNSmlDmAOAdapter::EGetSizeCmd )
+            {            
+            HBufC8* size = iAdapter->IntToDes8L( aCmd.Data()->Size() );
+            aCmd.SetData( size );
+            }                
+        aCmd.SetStatus( CSmlDmAdapter::EOk );
+        aCmd.SetExecuted( ETrue );
+        }
+    else    
+        {
+        // unsupported command
+        // this is checked by framework
+        aCmd.SetStatus( CSmlDmAdapter::EError );
+        LOGSTRING( "ExecuteNameCmdL: Error, Only Add, Get and Get size commands supported" );
+        }  
+    }
+    
+// -----------------------------------------------------------------------------
+// CNSmlDmAOSettingStore::ParseIntegerL
+// -----------------------------------------------------------------------------
+//
+void CNSmlDmAOSettingStore::ParseIntegerL( const TDesC& aPtr, TInt& aInt )
+    {
+    TLex lex( aPtr );
+    User::LeaveIfError( lex.Val( aInt ) );
+    }
+
+// -----------------------------------------------------------------------------
+// CNSmlDmAOSettingStore::ParseAwonPdpcValuesL
+// -----------------------------------------------------------------------------
+//
+void CNSmlDmAOSettingStore::ParseAwonPdpcValuesL( const TInt aInt,
+                                                  TInt& aHplmn,
+                                                  TInt& aVplmn )
+    {
+    switch( aInt )
+        {
+        case KAwonPdpc_Off3G_Off2G:
+            aHplmn = 0;
+            aVplmn = 0;
+            break;
+        case KAwonPdpc_Off3G_On2G:
+            aHplmn = 0;
+            aVplmn = 1;
+            break;
+        case KAwonPdpc_On3G_Off2G:
+            aHplmn = 1;
+            aVplmn = 0;
+            break;
+        case KAwonPdpc_On3G_On2G:
+            aHplmn = 1;
+            aVplmn = 1;
+            break;
+        default:
+            User::Leave( KErrNotSupported );
+            break;
+        }
+    }           
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/rom/omadmadapters.iby	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,87 @@
+/*
+* Copyright (c) 2009 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:
+*
+*/
+REM SyncML Device Management
+
+#include <bldvariant.hrh>
+
+#ifndef __OMADMADAPTERS_IBY__
+#define __OMADMADAPTERS_IBY__
+
+#ifdef __SYNCML_DM // nothing should be installed from this .iby file if __SYNCML_DM feature is not selected
+
+
+REM  SyncML Device Management plug-in adapters
+ECOM_PLUGIN(nsmldmdevdetailadapter.dll,nsmldmdevdetailadapter.rsc)
+ECOM_PLUGIN(nsmldmdevinfoadapter.dll,nsmldmdevinfoadapter.rsc)
+#ifdef __SYNCML_DM_1_1_2
+ECOM_PLUGIN(nsmldmsettingsadapter.dll,nsmldmsettingsadapter.rsc)
+#else
+ECOM_PLUGIN(nsmldmsettingsadapter12.dll,nsmldmsettingsadapter12.rsc)
+#endif
+
+#ifdef FF_DM_STREAMING_ADAPTER
+REM ECOM_PLUGIN(nsmldmstreamingadapter.dll,nsmldmstreamingadapter.rsc)
+#endif
+
+#ifdef FF_DM_BROWSER_ADAPTER
+REM ECOM_PLUGIN(nsmldmbrowseradapter.dll,nsmldmbrowseradapter.rsc)
+#endif
+
+#ifdef __SYNCML_DS //  SyncML data synchronization
+#ifdef __SYNCML_DM_DS //  SyncML device management data sync settings plug-in
+ECOM_PLUGIN(nsmldssettingsadapter.dll,nsmldssettingsadapter.rsc)
+#endif // __SYNCML_DM_DS
+#endif // __SYNCML_DS
+
+#ifdef __SYNCML_DM_EMAIL //  SyncML device management email settings plug-in
+REM ECOM_PLUGIN(nsmldmemailadapter.dll,nsmldmemailadapter.rsc)
+#endif // __SYNCML_DM_EMAIL
+
+#ifdef __SYNCML_DM_MMS //  SyncML device management MMS settings plug-in
+ECOM_PLUGIN(nsmldmmmsadapter.dll,nsmldmmmsadapter.rsc)
+#endif // __SYNCML_DM_MMS
+
+#ifdef __SYNCML_DM_FOTA // SyncML device management Firmware update plug-in
+REM ECOM_PLUGIN(nsmldmfotaadapter.dll,nsmldmfotaadapter.rsc)
+REM data=ABI_DIR\BUILD_DIR\z\private\100012a5\policy\101F9A02.SPD		private\100012a5\policy\101F9A02.SPD
+#endif // __SYNCML_DM_FOTA
+
+
+#ifdef FF_DM_CONNMO_ADAPTER 
+// old internet adapter is not used in that case for access point provisioning.
+ECOM_PLUGIN(connmoadapter.dll,connmoadapter.rsc)
+#else
+REM ECOM_PLUGIN(nsmlinternetadapter.dll,nsmlinternetadapter.rsc)
+#endif FF_DM_CONNMO_ADAPTER
+
+#ifdef __SYNCML_DM_WLAN 
+ECOM_PLUGIN(globalwlanadapter.dll,globalwlanadapter.rsc)
+#endif // __SYNCML_DM_WLAN
+
+#ifdef __ALWAYS_ONLINE_PDPCONTEXT2
+ECOM_PLUGIN( nsmldmalwaysonadapter.dll, nsmldmalwaysonadapter.rsc )
+#endif // __ALWAYS_ONLINE_PDPCONTEXT2
+
+REM ECOM_PLUGIN( nsmldmbmadapter.dll, nsmldmbmadapter.rsc )
+
+#ifdef FF_RUNTIME_DEVICE_CAPABILITY_CONFIGURATION
+REM ECOM_PLUGIN(dcmodmadapter.dll,dcmodmadapter.rsc)
+#endif
+
+#endif //__SYNCML_DM
+
+#endif //__OMADMADAPTERS_IBY__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/syncmldm/bld/bld.inf	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,26 @@
+/*
+* Copyright (c) 2002 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:    build info file for SyncML DM settings adapter
+*
+*/
+
+
+
+
+PRJ_MMPFILES
+./nsmldmsettingsadapter.mmp
+
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/syncmldm/bld/nsmldmsettingsadapter.mmp	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,51 @@
+/*
+* Copyright (c) 2005 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:    DM-settings adapter
+*
+*/
+
+
+
+
+#include "defaultcaps.hrh"
+#include  <platform_paths.hrh>
+
+TARGET          nsmldmsettingsadapter.dll
+TARGETTYPE      PLUGIN
+UID             0x10009D8D 0x101F6DE6
+VENDORID        VID_DEFAULT
+CAPABILITY      CAP_ECOM_PLUGIN
+
+APP_LAYER_SYSTEMINCLUDE
+SYSTEMINCLUDE 	/epoc32/include/ecom
+
+SOURCEPATH      ../src
+USERINCLUDE     ../inc ../../inc
+
+SOURCE          NSmlDmSettingsAdapter.cpp
+
+
+START RESOURCE 	nsmldmsettingsadapter.rss
+END
+
+LIBRARY         euser.lib ecom.lib charconv.lib nsmldebug.lib
+LIBRARY         nsmldmiapmatcher.lib
+LIBRARY         syncmlclientapi.lib
+LIBRARY         nsmltransporthandler.lib
+LIBRARY         nsmlprivateapi.lib
+LIBRARY         featmgr.lib
+
+
+SMPSAFE
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/syncmldm/inc/NSmlDMSettingsAdapter.h	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,813 @@
+/*
+* Copyright (c) 2005 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:    DM Settings adapter header file
+*
+*/
+
+
+
+
+#ifndef __NSMLDMSETTINGSADAPTER_H__
+#define __NSMLDMSETTINGSADAPTER_H__
+
+
+// INCLUDES
+#include <utf.h>
+#include <smldmadapter.h>
+#include <SyncMLClientDM.h>
+#include "NSmlPrivateAPI.h"
+
+// CONSTANTS
+const TInt KNSmlDMGranularity = 4;
+const TUint8 KNSmlDMColon = ':';
+const TUint8 KNSmlDMUriSeparator = '/';
+const TInt KPortMaxSize = 65535;
+const TInt KPortMinSize = 0;
+//Dynamic Node Posn Const --> SyncML/DMAcc/DMIDxxx
+const TInt KDynNodePosn = 3;
+
+//DDF accepted DM-fieldnames
+_LIT8( KNSmlDdfId,				"Id" );
+_LIT8( KNSmlDdfAddr,			"Addr" );
+_LIT8( KNSmlDdfAddrType,		"AddrType" );
+_LIT8( KNSmlDdfPortNbr,			"PortNbr" );
+_LIT8( KNSmlDdfAuthScheme,		"AuthPref" ); 
+_LIT8( KNSmlDdfServerId,		"ServerId" );
+_LIT8( KNSmlDdfServerPW,		"ServerPW" );
+_LIT8( KNSmlDdfServerNonce,		"ServerNonce" );
+_LIT8( KNSmlDdfClientUserName,	"UserName" );
+_LIT8( KNSmlDdfClientPW,		"ClientPW" );
+_LIT8( KNSmlDdfClientNonce,		"ClientNonce" );
+_LIT8( KNSmlDdfName,			"Name" );
+_LIT8( KNSmlDdfConRef,			"ConRef" );
+_LIT( KNSmlDdfMConRef,			"MConRef" );
+
+//DDF DM-field descriptions
+_LIT8( KNSmlDdfAddrDescription,				"Host address of the SyncML server, IP or URL" );
+_LIT8( KNSmlDdfAddrTypeDescription,			"The type of address specified in the Addr node" );
+_LIT8( KNSmlDdfPortNbrDescription,			"SyncML Server port" );
+_LIT8( KNSmlDdfAuthSchemeDescription,		"Scheme of authentication" );
+_LIT8( KNSmlDdfServerIdDescription,			"The ServerId value for this server" );
+_LIT8( KNSmlDdfServerPWDescription,			"The password or secret that the server will use to authenticate itself to the client" );
+_LIT8( KNSmlDdfServerNonceDescription,		"The next nonce that the server will use to authenticate itself to the client" );
+_LIT8( KNSmlDdfClientUserNameDescription,	"The username of the device (or user)" );
+_LIT8( KNSmlDdfClientPWDescription,			"The password or secret that the client will use to authenticate itself to the server" );
+_LIT8( KNSmlDdfClientNonceDescription,		"The next nonce that the client will use to authenticate itself to the server" );
+_LIT8( KNSmlDdfNameDescription,				"Displayable name for the SyncML setings" );
+_LIT8( KNSmlDdfConRefDescription,			"Logical reference to a connectivity node" );
+_LIT( KNSmlDdfMConRefDescription,			"Parent to Multiple Connection Reference objects" );
+
+//Default data values
+_LIT( KNSmlDefName,				"DMAdapterIns" );
+_LIT8( KNSmlDefDMAcc,			"DMAcc" );
+_LIT8( KNSmlDMStart,			"SyncML/DMAcc/DMId" );
+_LIT( KNSmlDefDMIAP,			"AP" );
+_LIT8( KNSmlDMUriDotSlash,      "./");
+_LIT8( KNSmlDMNullDesc8,        "");
+_LIT8(KNSmlIAPId,               "NSmlIapId");
+
+// AuthPref text values
+_LIT8( KNSmlDMAuthPrefNoAuth,"syncml:auth-none");
+_LIT8( KNSmlDMAuthPrefBasic, "syncml:auth-basic");
+_LIT8( KNSmlDMAuthPrefMD5,	 "syncml:auth-md5");
+
+_LIT8( KNSmlDMSettingsHTTP,  "http://" );
+_LIT8( KNSmlDMSettingsHTTPS, "https://" );
+
+_LIT8( KIAPid, "IAPid" );
+_LIT8( KSegmDMAcc,"Addr/AddrType/PortNbr/AuthPref/ServerId/ServerPW/ServerNonce/UserName/ClientPW/ClientNonce/Name/ConRef");
+_LIT8( KSmlDmSlash, "/");
+_LIT8( KVersion,"1.1" );
+_LIT8( KMimeType, "text/plain" );
+_LIT8( KSyncMLText, "SyncML" );
+_LIT8( KNSmlDMadapterDesc, "DM-Settings DDF description" );
+_LIT8( KNSmlDMadapterTitle,"DM-Settings title" );
+_LIT8( KDmAccMatch, "SyncML/DMAcc/*" );
+_LIT8( KDmAccMatch2, "SyncML/DMAcc" );
+
+
+// DATA TYPES
+enum TNSmlDMFieldType
+	{
+	EStr,
+	EInt,
+	EBin,
+	EWrong
+	};
+
+enum TNSmlDMLeafType
+	{
+	EDMUpdate,
+	EDMDelete,
+	EDMUnset
+	};
+
+enum TNSmlDMProfileData
+	{
+	EProfileId,
+	EProfileName,
+	EProfileIAPId,
+	EProfileMediumType,
+	EProfileDMServerUsername,
+	EProfileDMServerPassword,
+	EServerNonce,
+	ESharedSecret,
+	EClientNonce,
+	EProfileURL,
+	EProfilePort,
+	EServerId,
+	EAuthenticationRequired,
+	ESyncAccepted
+	};
+
+enum TAuthenticationType
+	{
+	ENoAuth,    //"syncml:auth-none"
+	EBasic,     //"syncml:auth-basic"
+	EMD5        //"syncml:auth-md5"
+	};
+
+enum TNSmlDMMediumType
+	{
+	ENone,
+    EHttp,
+	EWsp,
+    EObex
+	};
+
+struct TNSmlDMLeafElement
+	{
+	HBufC8 *iUri;
+	HBufC8 *iData;
+	TInt iStatusRef;
+	HBufC8* iLuid;
+	};
+
+struct TNSmlDMBufferElement
+	{
+	CArrayFixFlat<TNSmlDMLeafElement> *iLeafBuf;
+	HBufC8* iMappingName; //Holds the Dyn.Node URI
+	TBool iExecuted; //Node updated to dB or not
+	TInt iDMBuffStatusref; //Statusref for callback
+	TBool iAddr;
+	TBool iServerId; //Bools for Mandatory fields
+	TBool iUName;
+	TBool iServerName;
+	};
+// CLASS DECLARATION
+/**
+*  CNSmlDMSettingsAdapter class 
+*  Contains the whole implementation of the DM settings adapter.
+*
+*  @lib nsmldmsettingsadapter.dll
+*  @since Series 60 Series60_3.0
+*/
+class CNSmlDMSettingsAdapter : public CSmlDmAdapter
+	{
+    public: // Constructors and destructor
+        
+        /**
+        * Two-phased constructor.
+        */
+	    static CNSmlDMSettingsAdapter* NewL(MSmlDmCallback* aDmCallback );
+	    static CNSmlDMSettingsAdapter* NewLC(MSmlDmCallback* aDmCallback );
+
+	    void ConstructL();
+
+        /**
+        * Destructor.
+        */
+	    virtual ~CNSmlDMSettingsAdapter();
+
+    public: // Functions from base classes
+
+	    /**
+        * From      CSmlDmAdapter   DDFVersionL returns current version of the DDF.
+        * @since    Series60_3.0
+        * @param    aVersion        DDF version of the adapter.
+        * @return   none
+        */
+	    void DDFVersionL( CBufBase& aVersion );
+
+        /**
+        * From      CSmlDmAdapter   DDFStructureL for filling the DDF structure of the adapter.
+        * @since    Series60_3.0
+        * @param    aDDF            Reference to root object.
+        * @return   none
+        */
+	    void DDFStructureL( MSmlDmDDFObject& aDDF );
+
+        /**
+        * From      CSmlDmAdapter   UpdateLeafObjectL creates new leaf objects, or replaces 
+        *                           data in existing leaf objects.
+        * @since    Series60_3.0
+        * @param    aURI            URI of the object
+        * @param    aLUID           LUID of the object
+        * @param    aObject         Data of the object
+        * @param    aType           MIME type of the object
+        * @param    aStatusRef      Reference to correct command
+        * @return   none
+        */
+	    void UpdateLeafObjectL( const TDesC8& aURI, const TDesC8& aLUID, 
+                            const TDesC8& aObject, const TDesC8& aType, 
+                            TInt aStatusRef );
+        
+        /**
+        * From      CSmlDmAdapter   DeleteObjectL deletes an object and its child objects.
+        * @since    Series60_3.0
+        * @param    aURI            URI of the object
+        * @param    aLUID           LUID of the object
+        * @param    aStatusRef      Reference to correct command
+        * @return   none
+        */
+	    void DeleteObjectL( const TDesC8& aURI, const TDesC8& aLUID, 
+                        const TInt aStatusRef );
+        
+        /**
+        * From      CSmlDmAdapter   FetchLeafObjectL fetches data of a leaf object.
+        * @since    Series60_3.0
+        * @param    aURI            URI of the object
+        * @param    aLUID           LUID of the object
+        * @param    aType           MIME type of the object
+        * @param    aResultsRef    	Reference to correct results
+        * @param    aStatusRef      Reference to correct command
+        * @return   none
+        */
+	    void FetchLeafObjectL(  const TDesC8& aURI, 
+                            const TDesC8& aLUID, 
+                            const TDesC8& aType, 
+                            const TInt aResultsRef, 
+                            const TInt aStatusRef ); 
+        /**
+        * From      CSmlDmAdapter   ChildURIListL fetches URI list.
+        * @since    Series60_3.0
+        * @param    aURI                    URI of the object
+        * @param    aLUID                   LUID of the object
+        * @param    aPreviousURISegmentList URI list with mapping LUID information
+        * @param    aResultsRef    	        Reference to correct results
+        * @param    aStatusRef              Reference to correct command
+        * @return   none
+        */
+	    void ChildURIListL( const TDesC8& aURI, const TDesC8& aLUID, 
+                        const CArrayFix<TSmlDmMappingInfo>& aPreviousURISegmentList, 
+                        const TInt aResultsRef, const TInt aStatusRef );
+        
+        /**
+        * From      CSmlDmAdapter   AddNodeObjectL adds node object.
+        * @since    Series60_3.0
+        * @param    aURI            URI of the object
+        * @param    aParentLUID     LUID of the parent object
+        * @param    aStatusRef      Reference to correct command
+        * @return   none
+        */
+	    void AddNodeObjectL( const TDesC8& aURI, const TDesC8& aParentLUID, 
+                            const TInt aStatusRef );
+
+        /**
+        * From      CSmlDmAdapter   UpdateLeafObjectL creates new leaf objects, or replaces 
+        *                           data in existing leaf objects.
+        * @since    Series60_3.0
+        * @param    aURI            URI of the object
+        * @param    aLUID           LUID of the object
+        * @param    aStream         Data of the object
+        * @param    aType           MIME type of the object
+        * @param    aStatusRef      Reference to correct command
+        * @return   none
+        */
+        void UpdateLeafObjectL( const TDesC8& aURI, const TDesC8& aLUID, 
+                            RWriteStream*& aStream, const TDesC8& aType, 
+                            const TInt aStatusRef );
+        
+        /**
+        * From      CSmlDmAdapter   FetchLeafObjectSizeL fetches the size of a leaf object.
+        * @since    Series60_3.0
+        * @param    aURI            URI of the object
+        * @param    aLUID           LUID of the object
+        * @param    aType           MIME type of the object
+        * @param    aResultsRef    	Reference to correct results
+        * @param    aStatusRef      Reference to correct command
+        * @return   none
+        */
+	    void FetchLeafObjectSizeL( const TDesC8& aURI, const TDesC8& aLUID, 
+                                const TDesC8& aType, const TInt aResultsRef, 
+                                const TInt aStatusRef );
+
+        /**
+        * From      CSmlDmAdapter   The function implements execute command.
+        * @since    Series60_3.0
+        * @param    aURI            URI of the object
+        * @param    aLUID           LUID of the object
+        * @param    aArgument       Argument for the command
+        * @param    aType       	MIME type of the object
+        * @param    aStatusRef      Reference to correct command
+        * @return   none
+        */
+	    void ExecuteCommandL( const TDesC8& aURI, const TDesC8& aLUID, 
+                            const TDesC8& aArgument, const TDesC8& aType, 
+                            const TInt aStatusRef );
+
+        /**
+        * From      CSmlDmAdapter   The function implements execute command.
+        * @since    Series60_3.0
+        * @param    aURI            URI of the object
+        * @param    aLUID           LUID of the object
+        * @param    aStream         Argument for the command
+        * @param    aType       	MIME type of the object
+        * @param    aStatusRef      Reference to correct command
+        * @return   none
+        */
+	    void ExecuteCommandL( const TDesC8& aURI, const TDesC8& aLUID, 
+                            RWriteStream*& aStream, const TDesC8& aType, 
+                            const TInt aStatusRef );
+        
+        /**
+        * From      CSmlDmAdapter   The function implements execute command.
+        * @since    Series60_3.0
+        * @param    aTargetURI      Target URI for the command
+        * @param    aTargetLUID     LUID of the target object
+        * @param    aSourceURI      Source URI for the command
+        * @param    aSourceLUID    	LUID of the source object
+        * @param    aType           MIME type of the object
+        * @param    aStatusRef      Reference to correct command
+        * @return   none
+        */
+	    void CopyCommandL( const TDesC8& aTargetURI, const TDesC8& aTargetLUID, 
+                        const TDesC8& aSourceURI, const TDesC8& aSourceLUID, 
+                        const TDesC8& aType, TInt aStatusRef );
+	
+        /**
+        * From      CSmlDmAdapter   The function indicates start of Atomic command.
+        * @since    Series60_3.0
+        * @param    none
+        * @return   none
+        */
+        void StartAtomicL();
+
+        /**
+        * From      CSmlDmAdapter   The function indicates successful end of Atomic command.
+        * @since    Series60_3.0
+        * @param    none
+        * @return   none
+        */
+	    void CommitAtomicL();
+    
+        /**
+        * From      CSmlDmAdapter   The function indicates unsuccessful end of Atomic command.
+        * @since    Series60_3.0
+        * @param    none
+        * @return   none
+        */
+	    void RollbackAtomicL();
+
+        /**
+        * From      CSmlDmAdapter   Returns ETrue if adapter supports streaming otherwise EFalse.
+        * @since    Series60_3.0
+        * @param    aItemSize       Size limit for stream usage.
+        * @return   ETrue or EFalse
+        */
+	    TBool StreamingSupport( TInt& aItemSize );
+        
+        /**
+        * From      CSmlDmAdapter   Called when stream returned from UpdateLeafObjectL or 
+        *                           ExecuteCommandL has been written to and committed.
+        * @since    Series60_3.0
+        * @param    none
+        * @return   none
+        */
+	    void StreamCommittedL();
+
+        /**
+        * From      CSmlDmAdapter   The function tells the adapter that all the commands of the message that
+	    *                           can be passed to the adapter have now been passed.
+        * @since    Series60_3.0
+        * @param    none
+        * @return   none
+        */
+	    void CompleteOutstandingCmdsL();
+	
+    private:
+	    
+        /**
+        * C++ default constructor.
+        */
+        CNSmlDMSettingsAdapter();
+        CNSmlDMSettingsAdapter( TAny* aEcomArguments );
+	    
+        /**
+        * The function stores integer value to buffer and returns reference to it.
+        * @param    aObject     data to be stored to buffer.
+        * @return   reference to data buffer.
+        */
+        TDesC8& SetIntObjectLC( const TInt& aObject );
+        
+        /**
+        * The function finds out the last element of the uri.
+        * @param    aSource     Uri object that contains all elements.
+        * @return   KErrNone if successful.
+        */
+	    TInt SetField( const TDesC8& aSource );
+
+        /**
+        * The function converts data to integer and returns it.
+        * @param    aObject     Data object to be converted.
+        * @return   Integer value for an object.
+        */
+	    TInt GetIntObject( const TDesC8& aObject );
+
+        /**
+        * The function converts data to integer and returns it.
+        * @param    aObject     Data object to be converted.
+        * @return   16-bit integer value for an object.
+        */
+	    TInt GetIntObject16( const TDesC& aObject );
+
+        /**
+        * The function converts LUID to integer.
+        * @param    aLUID     LUID data to be converted.
+        * @return   Integer value for a LUID.
+        */    
+	    TInt IntLUID( const TDesC8& aLUID );
+
+        /**
+        * The function sets the IAP value acording the given URI.
+        * @param    aLUID     LUID for a profile.
+        * @param    aObject   Data object containing the URI.
+        * @return   KErrNone if successfull.
+        */    
+	    TInt  SetConRefL( const TInt aLUID, const TDesC8& aObject );
+    
+        /**
+        * The function gets the URI for profile IAP.
+        * @param    aObject   Object where the result will be stored.
+        * @return   KErrNone if successfull.
+        */    
+	    TInt GetConRefL( CBufBase& aObject );
+	
+        /**
+        * The function checks if field to be handled is valid.
+        * @param    none
+        * @return   ETrue if valid field otherwise EFalse.
+        */    
+    	TBool AcceptDMField();
+
+        /**
+        * The function checks if field type to be handled is valid.
+        * @param    none
+        * @return   enum value for a field type.
+        */ 
+	    TNSmlDMFieldType   GetDMFieldType() const;
+
+        /**
+        * The function returns enum value for a field to be handled.
+        * @param    none
+        * @return   enum value for a field to be handled.
+        */ 
+	    TNSmlDMProfileData GetDMField() const;
+
+        /**
+        * The function checks if data length is valid.
+        * @param    aProfileItem    Field / Leaf ID to be handled.
+        * @param    aSource         Data to be handled.
+        * @return   ETrue if data length is valid otherwise EFalse.
+        */ 
+	    TBool NotValidStrLenght( const TNSmlDMProfileData& aProfileItem, 
+                            const TDesC8& aSource );
+        
+        /**
+        * The function converts 16-bit data to 8-bit and returns reference to it.
+        * @param    aSource    Reference data to be converted.
+        * @return   Reference to 8-bit data buffer.
+        */ 
+	    TDesC8&  ConvertTo8LC( const TDesC& aSource );
+
+        /**
+        * The function converts 8-bit data to 16-bit and returns reference to it.
+        * @param    aSource    Reference data to be converted.
+        * @return   Reference to 16-bit data buffer.
+        */ 
+	    TDesC16& ConvertTo16LC( const TDesC8& aSource );
+
+        /**
+        * The function find out the port number from URL and stores it to aPort.
+        * @param    aRealURI    Reference data to be containing the whole URI.
+        * @param    aPort       Reference variable where port number will be stored.
+        * @return   KErrNone if successful otherwise KErrNotFound.
+        */ 
+	    TInt ParseUri( const TDesC8& aRealURI, TInt& aPort );
+
+        /**
+        * The function opens the server session and profile via client API.
+        * @param    aIntLUID    Integer value for a LUID of the profile.
+        * @param    aMode       Read or Read and Write mode for a profile data.
+        * @return   KErrNone if successful otherwise KErrNotFound.
+        */ 
+        TInt OpenSyncSessionAndProfileL( const TInt aIntLUID, TSmlOpenMode aMode );
+
+        /**
+        * The function checks if requested profile ID exits.
+        * @param    aIntLUID    Integer value for a LUID of the profile.
+        * @return   ETrue if profile exits otherwise EFalse.
+        */ 
+	    TBool FindProfileIdL( const TInt aIntLUID );
+
+        /**
+        * The function creates new DM profile.
+        * @param    aPID    Reference to variable where new profile will be stored.
+        * @return   KErrNone if successful otherwise error code.
+        */ 
+        TInt CreateNewProfileL( TInt& aPID );
+
+        /**
+        * The function stores the server URL for a profile.
+        * @param    aPID    Profile ID.
+        * @param    aObj    Reference to server URL data.
+        * @return   KErrNone if successful otherwise error code.
+        */ 
+        TInt SetProfileServerURIL( const TInt aPID, const TDesC8& aObj );
+
+        /**
+        * The function stores the display name for a profile.
+        * @param    aPID    Profile ID.
+        * @param    aObj    Reference to data.
+        * @return   KErrNone if successful otherwise error code.
+        */ 
+        TInt SetProfileDisplayNameL( const TInt aPID, const TDesC8& aObj );
+
+        /**
+        * The function stores the user name for a profile.
+        * @param    aPID    Profile ID.
+        * @param    aObj    Reference to data.
+        * @return   KErrNone if successful otherwise error code.
+        */ 
+        TInt SetProfileUserNameL( const TInt aPID, const TDesC8& aObj );
+
+        /**
+        * The function stores the protocol version for a profile.
+        * @param    aPID    Profile ID.
+        * @param    aObj    Reference to data.
+        * @return   KErrNone if successful otherwise error code.
+        */ 
+        TInt SetProfileProtocolVersionL( const TInt aPID, const TDesC8& aObj );
+
+        /**
+        * The function stores the ServerId value for a profile.
+        * @param    aPID    Profile ID.
+        * @param    aObj    Reference to data.
+        * @return   KErrNone if successful otherwise error code.
+        */ 
+        TInt SetProfileServerIdL( const TInt aPID, const TDesC8& aObj );
+
+        /**
+        * The function stores the Server password for a profile.
+        * @param    aPID    Profile ID.
+        * @param    aObj    Reference to data.
+        * @return   KErrNone if successful otherwise error code.
+        */ 
+        TInt SetProfileServerPasswordL( const TInt aPID, const TDesC8& aObj );
+
+        /**
+        * The function stores the password value for a profile.
+        * @param    aPID    Profile ID.
+        * @param    aObj    Reference to data.
+        * @return   KErrNone if successful otherwise error code.
+        */ 
+        TInt SetProfilePasswordL( const TInt aPID, const TDesC8& aObj );
+
+        /**
+        * The function stores the IAP id value for a profile.
+        * @param    aLUID   Profile ID.
+        * @param    aIAPid  Reference to data.
+        * @return   KErrNone if successful otherwise error code.
+        */ 
+        TInt SetProfileConnectionPropertyL( const TInt aLUID, const TInt aIAPid );
+
+        /**
+        * The function deleted the profile data.
+        * @param    aPID    Profile ID.
+        * @return   KErrNone if successful otherwise error code.
+        */ 
+        TInt DeleteProfileL( const TInt aPID );
+        
+        /**
+        * The function gets the profile data acoeding to aDMField.
+        * @param    aLUID       Profile ID.
+        * @param    aDMField    Data field ID to be handled.
+        * @param    aObject     Reference where fetched data to be stored.
+        * @return   KErrNone if successful otherwise error code.
+        */ 
+        TInt GetObjectL( TInt aLUID, TNSmlDMProfileData aDMField, 
+                        CBufBase& aObject );
+
+        /**
+        * The function adds port number to address URL.
+        * @param    aLUID       Profile ID.
+        * @param    aPort       Reference to port number data.
+        * @return   KErrNone if successful otherwise error code.
+        */ 
+        TInt SetProfileConnectionPortNrL( const TInt aLUID, const TDesC8& aPort );
+        
+        /**
+        * The function adds port number to address URL.
+        * @param    aSrvURI     Original address URI.
+        * @param    aNewURI     New URI when port number has been added or deleted.
+        * @param    aPort       Reference to port number data.
+        * @return   KErrNone if successful otherwise error code.
+        */ 
+        void SetPortNrToAddrStr( const TDesC8& aSrvURI, HBufC8* aNewURI, 
+                                const TDesC8& aPort );
+
+        /**
+        * General function which selects which leaf to be handled.
+        * @param    aLUID       Profile LUID.
+        * @param    aObject     Data to be stored.
+        * @param    aField      Leaf of field ID to be handled.
+        * @return   KErrNone if successful otherwise error code.
+        */ 
+        TInt SetDMFieldDataL( const TInt aLUID, const TDesC8& aObject, 
+                            const TNSmlDMProfileData aField );
+        /**
+        * The function fills the node info.
+        * @param    aNode           Reference to node or leaf which info to be filled.
+        * @param    aAccTypes       Access rights for a leaf / node.
+        * @param    aOccurrence     Occurance of the node / leaf.
+        * @param    aScope          Scope (dynamic / permanent) of the leaf / node.
+        * @param    aFormat         Data format of the leaf / node.
+        * @param    aDescription    Description of the node / leaf.
+        * @param    aDefaultValue   Default value for a leaf or node.
+        * @param    aMimeType       MIME type for a leaf / node.
+        * @return   none
+        */ 
+        void FillNodeInfoL( MSmlDmDDFObject& aNode, TSmlDmAccessTypes aAccTypes, 
+                        MSmlDmDDFObject::TOccurence aOccurrence, 
+                        MSmlDmDDFObject::TScope aScope, 
+                        MSmlDmDDFObject::TDFFormat aFormat, 
+                        const TDesC8& aDescription, 
+                        const TDesC8& aDefaultValue, const TDesC8& aMimeType );
+        
+        /**
+        * The function reads the authentication data via private API.
+        * @param    aLUID       LUID for a profile.
+        * @param    aField      Leaf id to be handled.
+        * @param    aObject     Reference where to store the data.
+        * @return   KErrNone if successful otherwise error code.
+        */ 
+        TInt GetDMAuthInfoL( const TInt aLUID, const TNSmlDMProfileData aField, 
+                            CBufBase& aObject );
+
+        /**
+        * The function delete's the authentication data via private API.
+        * @param    aLUID       LUID for a profile.
+        * @param    aField      Leaf id to be handled.
+        * @return   KErrNone if successful otherwise error code.
+        */ 
+        TInt DeleteDMAuthInfoL( const TInt aLUID, const TNSmlDMProfileData aField );
+        
+        /**
+        * The function set's the address type / medium type value for a profile.
+        * @param    aLUID       LUID for a profile.
+        * @param    aIntObj     Address type value.
+        * @return   KErrNone if successful otherwise error code.
+        */ 
+        TInt SetProfileAddrTypeL( const TInt aLUID, const TInt aIntObj );
+
+        /**
+        * The function gets the profile medium type value.
+        * @param    aObject     Reference where data to be stored.
+        * @return   KErrNone if successful otherwise error code.
+        */ 
+        TInt GetProfileConnectiontypeL( CBufBase& aObject );
+
+        /**
+        * The function gets the profile IAP value.
+        * @param    aIAPid     Reference where data to be stored.
+        * @return   KErrNone if successful otherwise error code.
+        */ 
+        TInt GetProfileIAPIdL( TInt& aIAPid );
+
+        /**
+        * The function gets the profile Server URL value.
+        * @param    aURL     Reference where data to be stored.
+        * @return   KErrNone if successful otherwise error code.
+        */ 
+        void GetProfileServerURLL( CBufBase& aURL );
+
+        /**
+        * The function checks the requested medium type if supported.
+        * @param    aIntObj         Medium type.
+        * @param    aMediumType     UID for medium type.
+        * @return   none
+        */         
+        void GetMediumTypeL( const TInt aIntObj, TInt& aMediumType );
+
+        /**
+        * The function gets the server id value.
+        * @param    aObject     Reference where data to be stored.
+        * @return   none
+        */       
+        void GetServerIdL( CBufBase& aObject );
+
+        /**
+        * The function gets the profile name value.
+        * @param    aObject     Reference where data to be stored.
+        * @return   none
+        */       
+        void GetProfileNameL( CBufBase& aObject );
+
+        /**
+        * The function gets the user name value.
+        * @param    aObject     Reference where data to be stored.
+        * @return   none
+        */ 
+        void GetProfileUserNameL( CBufBase& aObject );
+
+        /**
+        * The function gets the profile port number value.
+        * @param    aObject     Reference where data to be stored.
+        * @return   none
+        */ 
+        void GetProfilePortNumberL( CBufBase& aObject );
+
+        /**
+        * The function sets the profile authentication info via private API.
+        * @param    aLUID       Profile LUID.
+        * @param    aField      Leaf ID to be handled.
+        * @param    aObject     Data to be stored.
+        * @param    aStatus     Status of the function, KErrNone if successful.
+        * @return   none
+        */         
+        void SetAuthInfoL( const TInt aLUID, const TNSmlDMProfileData aField, 
+                        const TDesC8& aObject, TInt& aStatus );
+	//Buffers Node Object
+	void AddNodeBufferL( const TDesC8& aURI, const TInt aStatusRef);
+	//Buffers Leaf Object
+	void AddLeafBufferL( const TDesC8& aURI, const TDesC8& aObject,
+			const TInt aStatusRef);
+	// Executes Buffer
+	void ExecuteBufferL();
+	//Extracts the ParentURI
+	TPtrC8 ParentURI(const TDesC8& aURI);
+	// Clears the elements of the passed in LeafElement Structure
+	void ClearBuffer( CArrayFixFlat<TNSmlDMLeafElement>* aBuffer);
+    private:    // Data
+	
+        // Client API session class 
+        RSyncMLSession iSyncSession;
+        // Client API Device Management profile handling
+        RSyncMLDevManProfile iProfile;
+        // Callback interface for returning result or status
+	    MSmlDmCallback* iCallBack;
+	    
+	    TInt iCurrentProfile;
+	    
+        // Profile LUID
+        TInt iLUID;
+        // Parent LUID
+	    TInt iParentLUID;
+        // For handling profile medium type 
+	    TInt iObject;
+                  
+        // Buffer for URI leaf element
+	    HBufC8* iField;
+		
+        // Information about data type
+	    TNSmlDMFieldType  iFieldType;
+        // Information about leaf command
+	    TNSmlDMLeafType	  iLeafType;
+        // Status information if session allready opened
+        TBool iSyncSessionOpen;
+
+        // Buffer for storing port number
+        HBufC8* iPortNbr;
+    
+        // Private API interface for handling authebtication data
+        RNSmlPrivateAPI iPrivateApi;
+        
+        struct TPortBuffer
+            {
+            // buffered data for updating port number
+            TBufC8<5> iPortBuf;
+            TInt iPortBufLUID;
+            TInt iPortBufStatusRef;
+            };
+        RArray<TPortBuffer> iPortBuffer;    
+	TBool iBufOn;
+	TBool iComplete;
+	TInt iExecutionIndex;
+	CArrayFixFlat<TNSmlDMBufferElement> *iBuffer;
+    };
+
+#endif // __NSMLDMSETTINGSADAPTER_H__
+
+// End of File
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/syncmldm/src/NSmlDmSettingsAdapter.cpp	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,3011 @@
+/*
+* Copyright (c) 2005 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:    DM-settings adapter
+*
+*/
+
+
+
+
+// INCLUDE FILES
+#include "NSmlDMSettingsAdapter.h"
+#include "nsmldebug.h"
+#include "nsmlconstants.h"
+#include "nsmldmconstants.h"
+#include "nsmldmimpluids.h"
+#include "nsmldmiapmatcher.h"
+#include "nsmldmauthinfo.h"
+#include <featmgr.h>
+#include <implementationproxy.h>
+#include <SyncMLClientDM.h>
+#include <SyncMLTransportProperties.h>
+
+
+#ifndef __WINS__
+// This lowers the unnecessary compiler warning (armv5) to remark.
+// "Warning:  #174-D: expression has no effect..." is caused by 
+// DBG_ARGS8 macro in no-debug builds.
+#pragma diag_remark 174
+#endif
+
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter::NewL
+//  Two-phased constructor.
+// -----------------------------------------------------------------------------
+CNSmlDMSettingsAdapter* CNSmlDMSettingsAdapter::NewL( MSmlDmCallback* aDmCallback )
+	{
+	_DBG_FILE("CNSmlDMSettingsAdapter::NewL(): begin");
+
+	CNSmlDMSettingsAdapter* self = NewLC( aDmCallback );
+	CleanupStack::Pop();
+
+	_DBG_FILE("CNSmlDMSettingsAdapter::NewL(): end");
+	return self;
+	}
+
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter::NewLC( )
+//  Loads the CNSmlDMSettingsAdapter class and pushes it to clenupstack.
+// -----------------------------------------------------------------------------
+CNSmlDMSettingsAdapter* CNSmlDMSettingsAdapter::NewLC( MSmlDmCallback* aDmCallback )
+	{
+	_DBG_FILE( "CNSmlDMSettingsAdapter::NewLC(): begin" );
+	CNSmlDMSettingsAdapter* self = new ( ELeave ) CNSmlDMSettingsAdapter( aDmCallback );
+	CleanupStack::PushL( self );
+    self->iCallBack = aDmCallback;
+	self->ConstructL();
+	self->iLeafType = EDMUnset;
+
+	_DBG_FILE( "CNSmlDMSettingsAdapter::NewLC(): end" );
+	return self;
+	}
+
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter::CNSmlDMSettingsAdapter()
+//  Default constructor.
+// -----------------------------------------------------------------------------
+CNSmlDMSettingsAdapter::CNSmlDMSettingsAdapter( TAny* aEcomArguments) : 
+                                                CSmlDmAdapter(aEcomArguments )
+	{
+	_DBG_FILE( "CNSmlDMSettingsAdapter::CNSmlDMSettingsAdapter(): begin" );
+	_DBG_FILE( "CNSmlDMSettingsAdapter::CNSmlDMSettingsAdapter(): end" );
+	}
+
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter::~CNSmlDMSettingsAdapter()
+//  Destructor.
+// -----------------------------------------------------------------------------
+CNSmlDMSettingsAdapter::~CNSmlDMSettingsAdapter()
+	{
+	_DBG_FILE( "CNSmlDMSettingsAdapter::~CNSmlDMSettingsAdapter(): begin" );
+
+    delete iField;
+
+    // Client API Session & Profile
+    iProfile.Close();
+	iSyncSession.Close();
+    iSyncSessionOpen = EFalse;
+    
+	// In Case the Buffer isnt cleared
+	if ( iBuffer)
+		{
+		for (TInt val =0; val<iBuffer->Count ();val++)
+			{
+			delete iBuffer->At(val).iMappingName;
+
+			ClearBuffer ( iBuffer->At(val).iLeafBuf);
+			delete iBuffer->At(val).iLeafBuf;
+			}
+
+		iBuffer->Reset ();
+		delete iBuffer;
+		}
+    delete iPortNbr;
+    iPortBuffer.Reset();
+    iPortBuffer.Close();    
+    iPrivateApi.Close();
+    
+    iCallBack = 0; 
+           
+	_DBG_FILE( "CNSmlDMSettingsAdapter::~CNSmlDMSettingsAdapter(): end" );
+	}
+
+// -----------------------------------------------------------------------------
+//		CNSmlDMSettingsAdapter::ConstructL()
+//		Second phase constructor.
+// -----------------------------------------------------------------------------
+void CNSmlDMSettingsAdapter::ConstructL()
+	{
+	iField = HBufC8::NewL( KNSmlMaxURLLength );
+    iSyncSessionOpen = EFalse;
+	// variables used for Buffering
+	iBufOn = EFalse;
+	iComplete = EFalse;
+	iExecutionIndex = -1;
+	// initialising iBuffer
+	iBuffer = new (ELeave) CArrayFixFlat <TNSmlDMBufferElement> (KNSmlDMGranularity);
+    }
+
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter::DDFVersionL()
+//  Returns the DDF version number.
+// -----------------------------------------------------------------------------
+void CNSmlDMSettingsAdapter::DDFVersionL( CBufBase& aVersion )
+	{
+	_DBG_FILE(
+            "CNSmlDMSettingsAdapter::DDFVersionL(CBufBase& aDDFVersion): begin" );
+	aVersion.InsertL( 0, KVersion );
+	_DBG_FILE(
+            "CNSmlDMSettingsAdapter::DDFVersionL(CBufBase& aDDFVersion): end" );
+	}
+
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter::DDFStructureL()
+//  Fills the DDF structure of the adapter.
+// -----------------------------------------------------------------------------
+void CNSmlDMSettingsAdapter::DDFStructureL( MSmlDmDDFObject& aDDF )
+	{
+	_DBG_FILE( "CNSmlDMSettingsAdapter::DDFStructureL(): begin" );
+      
+	MSmlDmDDFObject* ddfRoot = &aDDF;
+	MSmlDmDDFObject& ddf = ddfRoot->AddChildObjectL( KSyncMLText );
+
+	TSmlDmAccessTypes *aclTypes = new ( ELeave ) TSmlDmAccessTypes();
+	CleanupStack::PushL( aclTypes );
+    
+    // Set Get as acceptable operations
+    aclTypes->SetGet();
+	
+	ddf.SetDFTitleL( KNSmlDMadapterTitle );
+    FillNodeInfoL( ddf, *aclTypes, MSmlDmDDFObject::EOne, 
+                    MSmlDmDDFObject::EPermanent, MSmlDmDDFObject::ENode, 
+                    KNSmlDMadapterDesc, KNullDesC8, KNullDesC8 );
+
+
+	MSmlDmDDFObject& nDmDDF = ddf.AddChildObjectL( KNSmlDefDMAcc );
+    FillNodeInfoL( nDmDDF, *aclTypes, MSmlDmDDFObject::EOne, 
+                    MSmlDmDDFObject::EPermanent, MSmlDmDDFObject::ENode, 
+                    KNullDesC8, KNullDesC8, KNullDesC8 );
+    
+	aclTypes->SetAdd();
+	// Set rest acceptable operations for data itself
+	aclTypes->SetReplace();
+	aclTypes->SetDelete();
+
+	TSmlDmAccessTypes aclTypesNoGet;
+	aclTypesNoGet.SetReplace();
+	aclTypesNoGet.SetAdd();
+	aclTypesNoGet.SetDelete();
+
+	TSmlDmAccessTypes aclTypesAR;
+	aclTypesAR.SetReplace();
+	aclTypesAR.SetAdd();
+
+    TSmlDmAccessTypes aclTypesARG;
+	aclTypesARG.SetReplace();
+	aclTypesARG.SetAdd();
+    aclTypesARG.SetGet();
+    
+    TSmlDmAccessTypes aclTypesAG;
+	aclTypesAG.SetGet();
+	aclTypesAG.SetAdd();
+
+	MSmlDmDDFObject& nProDDF = nDmDDF.AddChildObjectGroupL();
+    FillNodeInfoL( nProDDF, *aclTypes, MSmlDmDDFObject::EZeroOrMore, 
+                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::ENode, 
+                    KNullDesC8, KNullDesC8, KMimeType );
+
+	MSmlDmDDFObject& nAddrDDF = nProDDF.AddChildObjectL( KNSmlDdfAddr );			// Addr
+    FillNodeInfoL( nAddrDDF, *aclTypes, MSmlDmDDFObject::EOne, 
+                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::EChr, 
+                    KNSmlDdfAddrDescription, KNullDesC8, KMimeType );
+
+	MSmlDmDDFObject& nAddrTypeDDF = nProDDF.AddChildObjectL( KNSmlDdfAddrType );	// AddrType
+    FillNodeInfoL( nAddrTypeDDF, *aclTypes, MSmlDmDDFObject::EOne, 
+                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::EChr, 
+                    KNSmlDdfAddrTypeDescription, KNullDesC8, KMimeType );
+
+	MSmlDmDDFObject& nPortNbrDDF = nProDDF.AddChildObjectL( KNSmlDdfPortNbr );	// PortNbr
+    FillNodeInfoL( nPortNbrDDF, *aclTypes, MSmlDmDDFObject::EZeroOrOne, 
+                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::EInt, 
+                    KNSmlDdfPortNbrDescription, KNullDesC8, KMimeType );
+
+	MSmlDmDDFObject& nAuthSchemeDDF = nProDDF.AddChildObjectL( KNSmlDdfAuthScheme );	// AuthPref
+    FillNodeInfoL( nAuthSchemeDDF, *aclTypes, MSmlDmDDFObject::EOne, 
+                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::EChr, 
+                    KNSmlDdfAuthSchemeDescription, KNullDesC8, KMimeType );
+
+	MSmlDmDDFObject& nServerIdDDF = nProDDF.AddChildObjectL( KNSmlDdfServerId );	// ServerId
+    FillNodeInfoL( nServerIdDDF, aclTypesAG, MSmlDmDDFObject::EOne, 
+                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::EChr, 
+                    KNSmlDdfServerIdDescription, KNullDesC8, KMimeType );
+
+	MSmlDmDDFObject& nServerPWDDF = nProDDF.AddChildObjectL( KNSmlDdfServerPW );	// ServerPW
+    FillNodeInfoL( nServerPWDDF, aclTypesNoGet, MSmlDmDDFObject::EOne, 
+                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::EChr, 
+                    KNSmlDdfServerPWDescription, KNullDesC8, KMimeType );
+
+	MSmlDmDDFObject& nServerNonceDDF = nProDDF.AddChildObjectL( KNSmlDdfServerNonce );// ServerNonce
+    FillNodeInfoL( nServerNonceDDF, aclTypesNoGet, MSmlDmDDFObject::EOne, 
+                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::EChr, 
+                    KNSmlDdfServerNonceDescription, KNullDesC8, KMimeType );
+
+	MSmlDmDDFObject& nClientUserNameDDF = nProDDF.AddChildObjectL( KNSmlDdfClientUserName ); // ClientUserName
+    FillNodeInfoL( nClientUserNameDDF, *aclTypes, MSmlDmDDFObject::EOne, 
+                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::EChr, 
+                    KNSmlDdfClientUserNameDescription, KNullDesC8, KMimeType );
+
+	MSmlDmDDFObject& nClientPWDDF = nProDDF.AddChildObjectL( KNSmlDdfClientPW );	// ClientPW
+    FillNodeInfoL( nClientPWDDF, aclTypesNoGet, MSmlDmDDFObject::EOne, 
+                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::EChr, 
+                    KNSmlDdfClientPWDescription, KNullDesC8, KMimeType );
+
+	MSmlDmDDFObject& nClientNonceDDF = nProDDF.AddChildObjectL( KNSmlDdfClientNonce );	// ClientNonce
+    FillNodeInfoL( nClientNonceDDF, aclTypesNoGet, MSmlDmDDFObject::EOne, 
+                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::EChr, 
+                    KNSmlDdfClientNonceDescription, KNullDesC8, KMimeType );
+
+	MSmlDmDDFObject& nNameDDF = nProDDF.AddChildObjectL( KNSmlDdfName );	// Name
+    FillNodeInfoL( nNameDDF, *aclTypes, MSmlDmDDFObject::EZeroOrOne, 
+                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::EChr, 
+                    KNSmlDdfNameDescription, KNullDesC8, KMimeType );
+
+	MSmlDmDDFObject& nConRefDDF = nProDDF.AddChildObjectL( KNSmlDdfConRef );	// ConRef
+    FillNodeInfoL( nConRefDDF, aclTypesARG, MSmlDmDDFObject::EOne, 
+                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::EChr, 
+                    KNSmlDdfConRefDescription, KNullDesC8, KMimeType );
+
+	CleanupStack::PopAndDestroy(); //aclTypes
+	
+	_DBG_FILE("CNSmlDMSettingsAdapter::DDFStructureL(): end");
+	}
+
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter::UpdateLeafObjectL
+//  Updates profile leaf object data based on URI.
+// -----------------------------------------------------------------------------
+void CNSmlDMSettingsAdapter::UpdateLeafObjectL( const TDesC8& aURI,
+                                                const TDesC8& aLUID, 
+                                                const TDesC8& aObject, 
+                                                const TDesC8& /*aType*/, 
+                                                const TInt aStatusRef )
+	{
+	_DBG_FILE("CNSmlDMSettingsAdapter::UpdateLeafObjectL(): begin");
+	TInt index = -1;
+	if ( !iBufOn)
+		{
+		for (TInt val = 0; val<iBuffer->Count (); val++)
+			{
+			TPtrC8 firstUri = ParentURI (aURI);
+			if ( iBuffer->At(val).iMappingName->Compare (firstUri)== 0)
+				{
+				index = iExecutionIndex = val;
+				break;
+				}
+			}
+		}
+	if ( index >= 0)
+		AddLeafBufferL (aURI, aObject, aStatusRef);
+	else
+		{
+	if( aLUID.Length() == 0 )
+		{
+		_DBG_FILE( "CNSmlDMSettingsAdapter::UpdateLeafObjectL( ): ENotFound end" );
+		iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
+		return;
+		}
+	TInt parentLUID = GetIntObject( aLUID ); 
+	if( parentLUID != iParentLUID )
+		{
+		if( FindProfileIdL( parentLUID ) != EFalse )
+			{
+			iParentLUID = parentLUID;
+			}
+		else
+			{
+			iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
+			return;
+			}
+		}
+	SetField( aURI );
+	if( !AcceptDMField() )
+		{
+		_DBG_FILE( "CNSmlDMSettingsAdapter::AddLeafObjectL(): KErr field end" );
+		iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EInvalidObject );
+		return;
+		}
+
+    //	Get Database field type 
+	TNSmlDMFieldType fType = GetDMFieldType();
+	if ( fType == EWrong )
+		{
+		_DBG_FILE( "CNSmlDMSettingsAdapter::AddLeafObjectL(): EError end" );
+		iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
+		return;
+		}
+    TNSmlDMProfileData fData = GetDMField();
+    if( fData == ESyncAccepted )
+        {
+        _DBG_FILE( "CNSmlDMSettingsAdapter::AddLeafObjectL(): EError end" );
+		iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
+		return;
+        }
+    if( NotValidStrLenght( fData, aObject ) )
+	    {
+		_DBG_FILE( "CNSmlDMSettingsAdapter::AddLeafObjectL(): KErr length end" );
+		iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ETooLargeObject );
+		return;
+		}
+    //Authentication data leafs to be handled
+    if ( fData == EAuthenticationRequired || fData == EClientNonce 
+        || fData == EServerNonce )
+        {
+        //Check if replace command and replace data as defined
+        
+        TInt replaceStatus = KErrGeneral; 
+        SetAuthInfoL( iParentLUID + KMaxDataSyncID, fData, aObject, replaceStatus );
+        if ( replaceStatus == KErrNone )
+            {
+            iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
+            }
+        else if ( replaceStatus == KErrNotFound )
+            {
+            iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
+            }
+        else
+            {
+            iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
+            }
+       
+        _DBG_FILE( "CNSmlDMSettingsAdapter::UpdateLeafObjectL():end" );
+        return;
+        }
+        
+    TInt rValue = SetDMFieldDataL( iParentLUID, aObject, fData );
+    if ( fData == EProfilePort )
+        {
+        // in case port is updated, save status ref to be used in 
+        // CompleteOutstandingCmdsL
+        if(rValue==KErrNone)
+            {
+            iPortBuffer[iPortBuffer.Count()-1].iPortBufStatusRef = aStatusRef; 
+            }
+        else if( rValue == KErrOverflow)
+        {
+        	iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ETooLargeObject );
+        }
+        else
+        {
+        	iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
+            }
+        }
+    else
+        {
+        if( rValue != KErrNone )
+            {
+            if( rValue == KErrNotFound )
+                {
+                iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
+                }
+            else if( rValue == KErrInUse )
+                {
+                iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EObjectInUse );
+                }
+            else if( rValue == KErrNoMemory )
+                {
+                iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENoMemory );
+                }
+            else
+                {
+                iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
+                }
+            }
+        else
+            {
+            iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
+            }
+        }
+		}
+        
+	_DBG_FILE( "CNSmlDMSettingsAdapter::UpdateLeafObjectL():end" );
+        return;
+	}
+
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter::DeleteObjectL
+//  Deletes whole profile or leaf object data acording to aURI.
+// -----------------------------------------------------------------------------
+void CNSmlDMSettingsAdapter::DeleteObjectL( const TDesC8& aURI, 
+                                            const TDesC8& aLUID, 
+                                            const TInt aStatusRef )
+	{
+	_DBG_FILE( "CNSmlDMSettingsAdapter::DeleteObjectL( ): begin" );
+
+	if( aURI.Find( KNSmlDdfConRef ) != KErrNotFound )
+		{	
+		_DBG_FILE( "CNSmlDMSettingsAdapter::DeleteObjectL(): NOT ALLOWED end" );
+		iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
+		return;
+		}
+
+    //	Check which field going to be handled
+	SetField( aURI );
+
+    //	Check if valid field
+	if( !AcceptDMField() )
+		{
+
+        // Delete whole profile if aURI called for node
+		TInt last = aURI.LocateReverse( '/' );
+		TInt pos  = aURI.Find( KNSmlDefDMAcc );
+		if( last - 5 == pos )
+			{
+
+            //	If called for node means that profile will deleted from database
+			iLUID = IntLUID( aLUID );
+			DBG_ARGS8( _S8("DeleteObjectL: URI %S LUID = %d"), &aURI, iLUID );
+
+			if( FindProfileIdL( iLUID ) == EFalse )
+				{
+				_DBG_FILE(
+                    "CNSmlDMSettingsAdapter::DeleteObjectL( ): notfound end");
+				
+                iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
+				return;
+				}
+			else
+				{
+				TInt sRet = DeleteProfileL( iLUID + KMaxDataSyncID );
+				if ( sRet != KErrNone )
+					{
+                    if( sRet == KErrNotFound )
+                        {
+                        iCallBack->SetStatusL( aStatusRef,
+                                                CSmlDmAdapter::ENotFound );
+                        }
+                    else if( sRet == KErrInUse )
+                        {
+                        iCallBack->SetStatusL( aStatusRef,
+                                                CSmlDmAdapter::EObjectInUse );
+                        }
+                    else
+                        {
+                        iCallBack->SetStatusL( aStatusRef, 
+                                                CSmlDmAdapter::EError );
+					    }
+					return;
+					}
+				else
+					{
+					_DBG_FILE( "CNSmlDMSettingsAdapter::DeleteObjectL( ): EOk end" );
+					iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
+					return;
+					}
+				}
+			}
+		else
+			{
+			_DBG_FILE(
+                "CNSmlDMSettingsAdapter::DeleteObjectL( ): EInvalidObject end" );
+			iCallBack->SetStatusL( aStatusRef,CSmlDmAdapter::EInvalidObject );
+			return;
+			}
+		}//Delete whole Profile
+
+	iLUID = IntLUID( aLUID );
+	if ( iLUID != iParentLUID )
+		{
+		if( FindProfileIdL( iLUID ) == EFalse )
+			{
+			_DBG_FILE( "CNSmlDMSettingsAdapter::DeleteObjectL( ): end" );
+			iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
+			return;
+			}
+		iParentLUID = iLUID;
+		}
+	
+	if ( iField->Compare( KNSmlDdfAuthScheme ) == 0 )
+    	{
+		DeleteDMAuthInfoL( iLUID, EAuthenticationRequired );
+        iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
+        return;
+		}
+    else if( iField->Compare( KNSmlDdfClientNonce ) == 0 )
+    	{
+		DeleteDMAuthInfoL( iLUID, EClientNonce );
+        iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
+        return;
+		}
+    else if( iField->Compare(KNSmlDdfServerNonce) == 0 )
+		{
+		DeleteDMAuthInfoL( iLUID, EServerNonce );
+        iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
+        return;
+		}
+
+    // Sets default value if not null field
+	HBufC8* dataObject = HBufC8::NewLC( 15 );
+	dataObject->Des().Format( KNullDesC8 );
+
+	_LIT8(aType,		"text/plain");
+	iLeafType = EDMDelete;
+	UpdateLeafObjectL( aURI, aLUID, *dataObject, aType, aStatusRef );
+    CleanupStack::PopAndDestroy(); //dataObject
+	iLeafType = EDMUnset;
+
+	_DBG_FILE( "CNSmlDMSettingsAdapter::DeleteObjectL( ): end" );
+	return;
+	}
+
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter::FetchLeafObjectL
+//  Fetches profile leaf object data acordint to aURI.
+// -----------------------------------------------------------------------------
+void CNSmlDMSettingsAdapter::FetchLeafObjectL( const TDesC8& aURI, 
+                                                const TDesC8& aLUID, 
+                                                const TDesC8& aType, 
+                                                const TInt aResultsRef, 
+                                                const TInt aStatusRef )
+	{
+
+	_DBG_FILE( "CNSmlDMSettingsAdapter::FetchLeafObjectL(): begin" );
+	DBG_ARGS(_S16( "DM:Fetch aURI    - %S - %S"), &aURI, &aLUID );
+		
+	iLUID = IntLUID( aLUID );
+	if ( iLUID >= 0 )
+		{
+		if( FindProfileIdL( iLUID ) == EFalse )
+			{
+			_DBG_FILE( "CNSmlDMSettingsAdapter::FetchLeafObjectL(): ENotFound end" );
+			iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
+			return;
+			}
+		}
+	else
+		{
+		_DBG_FILE( "CNSmlDMSettingsAdapter::FetchLeafObjectL(): ENotFound end" );
+		iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
+		return;
+		}
+
+    //	Check which field going to be handled
+	SetField(aURI);
+
+    //	Check if valid field
+	if( !AcceptDMField() )
+		{
+		_DBG_FILE( "CNSmlDMSettingsAdapter::FetchLeafObjectL(): EInvalidObject end" );
+		iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EInvalidObject );
+		return;
+		}
+
+    //	Get Database field type 
+	TInt fType = GetDMFieldType();
+	if ( fType == EWrong )
+		{
+		_DBG_FILE( "CNSmlDMSettingsAdapter::FetchLeafObjectL(): EError end" );
+		iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
+		return;
+		}
+
+    TNSmlDMProfileData fieldId = GetDMField();
+    if( fieldId == ESyncAccepted )
+        {
+        _DBG_FILE( "CNSmlDMSettingsAdapter::AddLeafObjectL(): EError end" );
+		iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
+		return;
+        }
+    CBufBase *lObject = CBufFlat::NewL( 128 );
+    CleanupStack::PushL( lObject );
+    lObject->Reset();
+    
+    CSmlDmAdapter::TError status;
+
+    if ( fType == EStr || fType == EInt || fType == EBin )
+		{ 
+        TInt rValue = GetObjectL( iLUID, fieldId, *lObject );
+		if( rValue != KErrNone )
+		    {
+            if( rValue == KErrNotFound )
+                {
+                status = CSmlDmAdapter::ENotFound;
+                }
+            else if( rValue == KErrInUse )
+                {
+                status = CSmlDmAdapter::EObjectInUse;
+                }
+            else if( rValue == KErrNoMemory )
+                {
+                status = CSmlDmAdapter::ENoMemory;
+                }
+            else
+                {
+                status = CSmlDmAdapter::EError;
+                }
+		    }
+        else
+            {
+            status = CSmlDmAdapter::EOk;
+            }
+		}
+	else 
+		{
+		CleanupStack::PopAndDestroy(); //lObject 
+        _DBG_FILE( "CNSmlDMSettingsAdapter::FetchLeafObjectL(): ENotFound end" );
+		iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
+		iProfile.Close();
+        iSyncSession.Close();
+        iSyncSessionOpen = EFalse;
+		return;
+		}
+    iCallBack->SetStatusL( aStatusRef, status );
+    
+    if(status==CSmlDmAdapter::EOk)
+    	{
+		iCallBack->SetResultsL( aResultsRef, *lObject, aType );
+    	}
+  	
+    CleanupStack::PopAndDestroy(); //lObject 
+	iProfile.Close();
+    iSyncSession.Close();
+    iSyncSessionOpen = EFalse;
+	_DBG_FILE( "CNSmlDMSettingsAdapter::FetchLeafObjectL(): end" );
+	return;
+	}
+
+// -----------------------------------------------------------------------------
+//  CSmlDmSettingsAdapter::ChildURIListL
+//  Function returns the list of profiles or leafs of the profile 
+//  acording to aURI.
+// -----------------------------------------------------------------------------
+void CNSmlDMSettingsAdapter::ChildURIListL( const TDesC8& aURI, 
+                                            const TDesC8& aLUID, 
+                                            const CArrayFix<TSmlDmMappingInfo>& aPreviousURISegmentList, 
+                                            const TInt aResultsRef, 
+                                            const TInt aStatusRef  )
+	{
+	_DBG_FILE( "CNSmlDMSettingsAdapter::ChildURIListL(): begin" );
+	CBufBase *currentURISegmentList = CBufFlat::NewL( 128 );
+	CleanupStack::PushL( currentURISegmentList );
+ 
+	if( aURI.Match( KDmAccMatch ) != KErrNotFound )
+		{
+		//	Check if Profile exists
+        TInt checkLUID = GetIntObject( aLUID );
+        if( FindProfileIdL( checkLUID ) )
+        	{
+            currentURISegmentList->InsertL( currentURISegmentList->Size(), KSegmDMAcc );
+			iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
+		    iCallBack->SetResultsL( aResultsRef, *currentURISegmentList, KNullDesC8 );
+        	}
+        else
+        	{
+			iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
+        	}
+
+        CleanupStack::PopAndDestroy(  ); // currentURISegmentList
+        _DBG_FILE( "CNSmlDMSettingsAdapter::ChildURIListL(): end" );
+		return;
+		}
+    else if( aURI.Match( KDmAccMatch2 ) != KErrNotFound )
+        {
+        if( iSyncSessionOpen == EFalse )
+            {
+            iSyncSession.OpenL();
+            iSyncSessionOpen = ETrue;
+            }
+        RArray<TSmlProfileId> profileIdArray;
+        CleanupClosePushL( profileIdArray );
+        TSmlUsageType usageType = ESmlDevMan;
+        iSyncSession.ListProfilesL( profileIdArray, usageType );
+	    
+        for( TInt p = 0; p < profileIdArray.Count(); p++ )
+		    {
+		    TBool notInList = ETrue;
+		    TInt newline = 0;
+            TInt ddId = profileIdArray[p] - KMaxDataSyncID;
+            
+		    while( notInList && newline < aPreviousURISegmentList.Count() )
+			    {
+				TInt ppId = GetIntObject( aPreviousURISegmentList.At(newline).iURISegLUID );
+				if( ppId == ddId ) 
+				    {
+					notInList = EFalse;
+					break;
+					}
+				newline++;
+			    }
+		    if( notInList )
+			    {
+			    _LIT8( Kprev, "DMId" );
+			    TBuf8<7> addNAME(Kprev); // DMIdnnn , nnn = profileid
+                TInt fixedProfId = profileIdArray[p] - KMaxDataSyncID; //fit to 3 decimal
+			    addNAME.AppendNumFixedWidth( fixedProfId, EDecimal, 3 ); 
+
+    			currentURISegmentList->InsertL( currentURISegmentList->Size(), addNAME );
+	    		currentURISegmentList->InsertL( currentURISegmentList->Size(), KSmlDmSlash );
+		    	DBG_ARGS8( _S8("notInList: Id = %d Name %S"), p, &addNAME );
+
+			    // KNSmlDMStart includes start text for URISeg
+			    TBuf8<20> addURI; // SyncML/DMAcc/DMIdnnn , nnn = profileid
+			    addURI.Append( KNSmlDMStart );
+			    addURI.AppendNumFixedWidth( fixedProfId, EDecimal, 3 ); 
+
+    			TBuf8<3> addLUID;
+	    		addLUID.Num( fixedProfId );
+
+		    	// Also added to mapping
+			    iCallBack->SetMappingL( addURI, addLUID );
+    			}
+	    	else
+		    	{ // Add those in PreviousList which are on database
+			    currentURISegmentList->InsertL( currentURISegmentList->Size(),
+                                                aPreviousURISegmentList.At(newline).iURISeg );
+    			currentURISegmentList->InsertL( currentURISegmentList->Size(), KSmlDmSlash );
+//	    		DBG_ARGS8( _S8("InList: Id = %d Name %S"), newline, 
+//                          aPreviousURISegmentList.At(newline).iURISeg );
+		    	}
+		    }
+        CleanupStack::PopAndDestroy( 1 );//profileIdArray
+        }
+    else
+        {
+        iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EInvalidObject );
+        CleanupStack::PopAndDestroy( 1 ); // currentURISegmentList
+        return;
+        }
+
+	iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
+	iCallBack->SetResultsL( aResultsRef, *currentURISegmentList, KNullDesC8 );
+	CleanupStack::PopAndDestroy(); // currentURISegmentList
+	_DBG_FILE( "CNSmlDMSettingsAdapter::ChildURIListL(): end" );
+	return;
+	}
+
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter::AddNodeObjectL
+//  Adds new DM-settings profile to database
+// -----------------------------------------------------------------------------
+void CNSmlDMSettingsAdapter::AddNodeObjectL( const TDesC8& aURI, 
+                                            const TDesC8& aParentLUID, 
+                                            const TInt aStatusRef )
+	{
+	_DBG_FILE( "CNSmlDMSettingsAdapter::AddNodeObjectL(): begin" );
+
+	if( aParentLUID.Length() > 0 )
+		{
+		iParentLUID = GetIntObject( aParentLUID );
+        if( FindProfileIdL( iParentLUID ) != EFalse )// iProfile != NULL)
+		    {
+		    _DBG_FILE( "CNSmlDMSettingsAdapter::AddNodeObjectL(): EAlreadyExists end" );
+		    iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EAlreadyExists );
+		    return;
+		    }
+		}
+	AddNodeBufferL (aURI, aStatusRef);
+	_DBG_FILE( "CNSmlDMSettingsAdapter::AddNodeObjectL(): end" );
+	return;
+	}
+
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter::UpdateLeafObjectL()
+// -----------------------------------------------------------------------------
+void CNSmlDMSettingsAdapter::UpdateLeafObjectL( const TDesC8&, const TDesC8&, 
+                                                RWriteStream*&, const TDesC8&, 
+                                                const TInt )
+	{
+	//Not supported because data streaming is not supported by this adapter.
+	}
+	
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter::FetchLeafObjectSizeL
+//  This function fetches leaf object and returns its size.
+// -----------------------------------------------------------------------------
+void CNSmlDMSettingsAdapter::FetchLeafObjectSizeL( const TDesC8& aURI, 
+                                                    const TDesC8& aLUID, 
+                                                    const TDesC8& aType, 
+                                                    const TInt aResultsRef, 
+                                                    const TInt aStatusRef )
+	{
+	_DBG_FILE( "CNSmlDMSettingsAdapter::FetchLeafObjectSizeL() : begin" );
+    DBG_ARGS( _S16("DM:Fetch aURI    - %S - %S"), &aURI, &aLUID );
+	
+	iLUID = IntLUID( aLUID );
+	if ( iLUID >= 0 )
+		{
+		if( FindProfileIdL( iLUID ) == EFalse )
+			{
+			_DBG_FILE( "CNSmlDMSettingsAdapter::FetchLeafObjectL(): ENotFound end" );
+			iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
+			return;
+			}
+		}
+	else
+		{
+		_DBG_FILE( "CNSmlDMSettingsAdapter::FetchLeafObjectL(): ENotFound end" );
+		iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
+		return;
+		}
+
+    //	Check which field going to be handled
+	SetField( aURI );
+
+    //	Check if valid field
+	if( !AcceptDMField() )
+		{
+		_DBG_FILE( "CNSmlDMSettingsAdapter::FetchLeafObjectL(): EInvalidObject end" );
+		iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EInvalidObject );
+		return;
+		}
+
+    //	Get Database field type 
+	TInt fType = GetDMFieldType();
+	if ( fType == EWrong )
+		{
+		_DBG_FILE( "CNSmlDMSettingsAdapter::FetchLeafObjectL(): EError end" );
+		iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
+		return;
+		}
+
+    CBufBase *lObject = CBufFlat::NewL( 128 );
+	CleanupStack::PushL( lObject );
+    lObject->Reset();
+
+	if ( fType == EStr || fType == EInt || fType == EBin )
+		{ 
+        TInt rValue = GetObjectL( iLUID, GetDMField(), *lObject );
+		if( lObject->Size() == 0 || rValue != KErrNone )
+		    {
+            if( rValue == KErrNotFound )
+                {
+                iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
+                }
+            else if( rValue == KErrInUse )
+                {
+                iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EObjectInUse );
+                }
+            else if( rValue == KErrNoMemory )
+                {
+                iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENoMemory );
+                }
+            else
+                {
+                iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
+                }
+		    }
+		}
+	else 
+		{
+		CleanupStack::PopAndDestroy();//lObject 
+		_DBG_FILE( "CNSmlDMSettingsAdapter::FetchLeafObjectL(): ENotFound end" );
+		iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
+		return;
+		}
+    TInt objSizeInBytes = lObject->Size();
+	TBuf8<16> stringObjSizeInBytes;
+	stringObjSizeInBytes.Num( objSizeInBytes );
+
+	lObject->Reset();
+	lObject->InsertL( 0, stringObjSizeInBytes );
+    iCallBack->SetResultsL( aResultsRef, *lObject, aType );
+	iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EOk);
+
+	CleanupStack::PopAndDestroy( 1 ); //lObject
+	_DBG_FILE( "CNSmlDMSettingsAdapter::FetchLeafObjectSizeL(): end" );
+	return;
+    }
+
+// -----------------------------------------------------------------------------
+// CNSmlDMSettingsAdapter::ExecuteCommandL()
+// -----------------------------------------------------------------------------
+void CNSmlDMSettingsAdapter::ExecuteCommandL( const TDesC8&, const TDesC8&,
+                                                const TDesC8&, const TDesC8&, 
+                                                const TInt )
+	{
+	//Not supported. Command execution via DM settings adapter not possible.	
+	}
+
+// -----------------------------------------------------------------------------
+// CNSmlDMSettingsAdapter::ExecuteCommandL()
+// -----------------------------------------------------------------------------
+void CNSmlDMSettingsAdapter::ExecuteCommandL( const TDesC8&, const TDesC8&, 
+                                                RWriteStream*&, const TDesC8&, 
+                                                const TInt )
+	{
+	//Not supported. Command execution via DM settings adapter not possible.
+	}
+
+// -----------------------------------------------------------------------------
+// CNSmlDMSettingsAdapter::CopyCommandL()
+// -----------------------------------------------------------------------------
+void CNSmlDMSettingsAdapter::CopyCommandL( const TDesC8&, const TDesC8&, 
+                                            const TDesC8&, const TDesC8&, 
+                                            const TDesC8&, TInt )
+	{
+	//Not supported.
+	}
+
+// -----------------------------------------------------------------------------
+// CNSmlDMSettingsAdapter::StartAtomicL()
+// -----------------------------------------------------------------------------
+void CNSmlDMSettingsAdapter::StartAtomicL()
+	{
+	//Not supported. Handling Atomic command cycles not supported by the adapter.
+	}
+
+// -----------------------------------------------------------------------------
+// CNSmlDMSettingsAdapter::CommitAtomicL()
+// -----------------------------------------------------------------------------
+void CNSmlDMSettingsAdapter::CommitAtomicL()
+	{
+	//Not supported. Handling Atomic command cycles not supported by the adapter.
+	}
+
+// -----------------------------------------------------------------------------
+// CNSmlDMSettingsAdapter::RollbackAtomicL()
+// -----------------------------------------------------------------------------
+void CNSmlDMSettingsAdapter::RollbackAtomicL()
+	{
+	//Not supported. Handling Atomic command cycles not supported by the adapter.
+	}
+
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter::StreamingSupport()
+//  Indicates if streaming is supported.
+// -----------------------------------------------------------------------------
+TBool CNSmlDMSettingsAdapter::StreamingSupport( TInt& /*aItemSize*/ )
+	{
+	return EFalse;
+	}
+
+// -----------------------------------------------------------------------------
+// CNSmlDMSettingsAdapter::StreamCommittedL()
+// -----------------------------------------------------------------------------
+void CNSmlDMSettingsAdapter::StreamCommittedL()
+	{
+	//Not supported. Streaming not supported by the DM settings adapter.
+	}
+// -----------------------------------------------------------------------------
+// CNSmlDMSettingsAdapter::CompleteOutstandingCmdsL()
+// If buffering used, commands must be executed before returning this function.
+// -----------------------------------------------------------------------------
+void CNSmlDMSettingsAdapter::CompleteOutstandingCmdsL()
+	{
+	// Check if Buffered
+	for (int val=0; val<iBuffer->Count ();val++)
+		{
+		if ( !iBuffer->At(val).iExecuted)
+			{
+			TInt count = iBuffer->At(val).iLeafBuf->Count ()-1;
+			iExecutionIndex = val;
+			iComplete = ETrue;
+			ExecuteBufferL ();
+			}
+		}
+	// if port was updated, set it
+	for (TInt i = 0;i<iPortBuffer.Count(); i++)
+	    {
+        TInt err = SetProfileConnectionPortNrL( iPortBuffer[i].iPortBufLUID, iPortBuffer[i].iPortBuf );
+        
+        // set status
+        if ( err != KErrNone )
+            {
+            iCallBack->SetStatusL( iPortBuffer[i].iPortBufStatusRef, CSmlDmAdapter::EError );
+            }
+        else
+            {
+            iCallBack->SetStatusL( iPortBuffer[i].iPortBufStatusRef, CSmlDmAdapter::EOk );
+            }
+	    
+	    }
+    iPortBuffer.Reset();	
+	iComplete = EFalse;
+	}
+
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter::AcceptDMField
+//  This function checks if field to be handled is valid.
+// -----------------------------------------------------------------------------
+TBool CNSmlDMSettingsAdapter::AcceptDMField()
+	{
+	_DBG_FILE("CNSmlDMSettingsAdapter::AcceptDMField(): begin");
+
+	if ( iField->Compare( KNSmlDdfAddrType ) == 0 )
+		{
+		return ETrue;
+		}
+	else if ( iField->Compare( KNSmlDdfAddr ) == 0 )
+		{
+		return ETrue;
+		}
+	else if ( iField->Compare( KNSmlDdfPortNbr ) == 0 )
+		{
+		return ETrue;
+		}
+	else if ( iField->Compare( KNSmlDdfAuthScheme ) == 0 )
+		{
+		return ETrue;
+		}
+	else if ( iField->Compare( KNSmlDdfServerId ) == 0 )
+		{
+		return ETrue;
+		}
+	else if ( iField->Compare( KNSmlDdfServerPW ) == 0 )
+		{
+		return ETrue;
+		}
+	else if ( iField->Compare( KNSmlDdfServerNonce ) == 0 )
+		{
+		return ETrue;
+		}
+	else if ( iField->Compare( KNSmlDdfClientUserName ) == 0 )
+		{
+		return ETrue;
+		}
+	else if ( iField->Compare( KNSmlDdfClientPW ) == 0 )
+		{
+		return ETrue;
+		}
+	else if ( iField->Compare( KNSmlDdfClientNonce ) == 0 )
+		{
+		return ETrue;
+		}
+	else if ( iField->Compare( KNSmlDdfName ) == 0 )
+		{
+		return ETrue;
+		}
+	else if ( iField->Compare( KNSmlDdfConRef ) == 0 )
+		{
+		return ETrue;
+		}
+	else if ( iField->Compare( KNSmlDdfId ) == 0 )
+		{
+		return ETrue;
+		}
+
+	_DBG_FILE( "CNSmlDMSettingsAdapter::AcceptDMField(): end" );
+	return EFalse; // Not a valid Type
+	}
+
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter::GetDMField
+//	Matches URI fieldname to DM-database. 
+// -----------------------------------------------------------------------------
+TNSmlDMProfileData CNSmlDMSettingsAdapter::GetDMField() const
+	{
+
+	if ( iField->Compare( KNSmlDdfAddrType ) == 0 )
+		{
+		return EProfileMediumType;
+		}
+	else if ( iField->Compare( KNSmlDdfAddr ) == 0 )
+		{
+		return EProfileURL;
+		}
+	else if ( iField->Compare( KNSmlDdfPortNbr ) == 0 )
+		{
+		return EProfilePort;
+		}
+	else if ( iField->Compare( KNSmlDdfAuthScheme ) == 0 )
+		{
+		return EAuthenticationRequired;
+		}
+	else if ( iField->Compare( KNSmlDdfServerId ) == 0 )
+		{
+		return EServerId;
+		}
+	else if ( iField->Compare( KNSmlDdfServerPW ) == 0 )
+		{
+		return ESharedSecret;
+		}
+	else if ( iField->Compare( KNSmlDdfServerNonce ) == 0 )
+		{
+		return EServerNonce;
+		}
+	else if ( iField->Compare( KNSmlDdfClientUserName ) == 0 )
+		{
+		return EProfileDMServerUsername;
+		}
+	else if ( iField->Compare( KNSmlDdfClientPW ) == 0 )
+		{
+		return EProfileDMServerPassword;
+		}
+	else if ( iField->Compare( KNSmlDdfClientNonce ) == 0 )
+		{
+		return EClientNonce;
+		}
+	else if ( iField->Compare( KNSmlDdfName ) == 0 )
+		{
+		return EProfileName;
+		}
+	else if ( iField->Compare( KNSmlDdfId ) == 0 )
+		{
+		return EProfileId;
+		}
+	else if ( iField->Compare( KNSmlDdfConRef ) == 0 )
+		{
+		return EProfileIAPId;
+		}
+	
+	_DBG_FILE( "CNSmlDMSettingsAdapter::GetDMField(): Error" );
+	return ESyncAccepted;
+	}
+
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter::GetDMFieldType
+//	Gets field data type. 
+// -----------------------------------------------------------------------------
+TNSmlDMFieldType CNSmlDMSettingsAdapter::GetDMFieldType() const
+	{
+	if ( iField->Compare( KNSmlDdfAddrType ) == 0 )
+		{
+		return EInt;
+		}
+	else if ( iField->Compare( KNSmlDdfAddr ) == 0 )
+		{
+		return EStr;
+		}
+	else if ( iField->Compare( KNSmlDdfPortNbr ) == 0 )
+		{
+		return EInt;
+		}
+	else if ( iField->Compare( KNSmlDdfAuthScheme ) == 0 )
+		{
+		return EInt;
+		}
+	else if ( iField->Compare( KNSmlDdfServerId ) == 0 )
+		{
+		return EStr;
+		}
+	else if ( iField->Compare( KNSmlDdfServerPW ) == 0 )
+		{
+		return EStr;
+		}
+	else if ( iField->Compare( KNSmlDdfServerNonce ) == 0 )
+		{
+		return EBin;
+		}
+	else if ( iField->Compare( KNSmlDdfClientUserName ) == 0 )
+		{
+		return EStr;
+		}
+	else if ( iField->Compare( KNSmlDdfClientPW ) == 0 )
+		{
+		return EStr;
+		}
+	else if (iField->Compare(KNSmlDdfClientNonce) == 0)
+		{
+		return EBin;
+		}
+	else if ( iField->Compare( KNSmlDdfName ) == 0 )
+		{
+		return EStr;
+		}
+	else if ( iField->Compare( KNSmlDdfConRef ) == 0 )
+		{
+		return EInt;
+		}
+	else if ( iField->Compare( KNSmlDdfId ) == 0 )
+		{
+		return EInt;
+		}
+
+	_DBG_FILE( "CNSmlDMSettingsAdapter::GetDMFieldType(): Error" );
+	return EWrong;
+	}
+
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter::IntLUID
+//	Returns integer value for a profile LUID.
+// -----------------------------------------------------------------------------
+TInt CNSmlDMSettingsAdapter::IntLUID( const TDesC8& aLUID )
+	{
+	TLex8 lLex( aLUID );
+
+	if( lLex.Val( iLUID ) == KErrNone )
+	    {
+	    return iLUID;
+	    }
+	else
+        {
+        return -1;
+        }
+	}
+
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter::GetIntObject
+//	Returns integer value for a aObject.
+// -----------------------------------------------------------------------------
+TInt CNSmlDMSettingsAdapter::GetIntObject( const TDesC8& aObject )
+	{
+	TLex8 lLex( aObject );
+
+	TInt value = 0;
+
+	if( lLex.Val( value ) != KErrNone )
+	    {
+	    return KErrNotFound;
+	    }
+	else
+        {
+        return value;
+        }
+	}
+
+// -----------------------------------------------------------------------------
+//	CNSmlDMSettingsAdapter::GetIntObject16()
+//	Returns Integer Value for a 16 bit data object.
+// -----------------------------------------------------------------------------
+TInt CNSmlDMSettingsAdapter::GetIntObject16( const TDesC& aObject )
+	{
+	TLex16 lLex( aObject );
+
+	TInt value = 0;
+
+	if( lLex.Val( value ) == KErrNone )
+	    {
+	    return value;
+	    }
+	else
+        {
+        return value;
+        }
+	}
+
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter::SetIntObjectLC
+//	Converts integer to HBufC8 type buffer and returns reference to it.
+// -----------------------------------------------------------------------------
+TDesC8& CNSmlDMSettingsAdapter::SetIntObjectLC( const TInt& aObject )
+	{
+	HBufC8* buf = HBufC8::NewLC( 8 );
+	TPtr8 ptrBuf = buf->Des();
+
+	ptrBuf.Num( aObject );
+    return *buf;
+	}
+
+// -----------------------------------------------------------------------------
+//	CNSmlDMSettingsAdapter::NotValidStrLenght
+//	Checks if data length is valid.
+// -----------------------------------------------------------------------------
+TBool CNSmlDMSettingsAdapter::NotValidStrLenght( const TNSmlDMProfileData& aProfileItem, 
+                                                const TDesC8& aSource )
+	{
+	TInt lLen = aSource.Length();
+	TBool lBool = EFalse;
+
+	switch ( aProfileItem )
+		{
+		case ( EProfileName ) :
+			{
+			if( lLen > KNSmlMaxProfileNameLength )
+			    {
+			    lBool = ETrue;	
+			    }
+			}
+		break;
+		
+		case ( EProfileDMServerUsername ) :
+			{
+			if( lLen > KNSmlMaxUsernameLength )
+			    {
+			    lBool = ETrue;
+			    }
+			}
+		break;
+
+		case ( EProfileDMServerPassword ) :
+			{
+			if( lLen > KNSmlMaxPasswordLength )
+			    {
+			    lBool = ETrue;	
+			    }
+			}
+		break;
+
+		case ( ESharedSecret ) :
+			{
+			if( lLen > KNSmlDmSharedSecretMaxLength )
+			    {
+			    lBool = ETrue;	
+			    }
+			}
+		break;
+
+		case ( EProfileURL ) :
+			{
+			if( lLen > KNSmlMaxURLLength )
+			    {
+			    lBool = ETrue;	
+			    }
+			}
+		break;
+
+		case ( EServerId ) :
+			{
+			if( lLen > KNSmlDmServerIdMaxLength )
+			    {
+			    lBool = ETrue;	
+			    }
+			}
+		break;
+
+		case ( EProfileIAPId ) :
+			{
+			if( lLen > KNSmlMaxURLLength )
+			    {
+			    lBool = ETrue;	
+			    }
+			}
+		break;
+
+		case ( EAuthenticationRequired ) :
+			{
+			if( lLen > 20 ) 
+			    {
+			    lBool = ETrue;	
+			    }
+			}
+		break;
+
+		case ( EProfileId ) :
+		case ( EProfilePort ) :
+		case ( EProfileMediumType ) :
+			{
+			if( lLen > 8 )
+			    {
+			    lBool = ETrue;	
+			    }
+			}
+		break;
+		
+        case ( EServerNonce ) :
+	    case ( EClientNonce ) :
+	        {
+            lBool = EFalse;
+	        }
+        break;
+
+		default:
+			{
+			lBool = ETrue;
+			}
+		}
+
+	return lBool;
+	}
+
+// -----------------------------------------------------------------------------
+//	CNSmlDMSettingsAdapter::SetField
+//	Last element of the URI (after last '/') is returned.
+// -----------------------------------------------------------------------------
+TInt CNSmlDMSettingsAdapter::SetField( const TDesC8& aSource )
+	{
+	if ( aSource.LocateReverse( KNSmlDMUriSeparator ) == KErrNotFound )
+	    {
+	    iField->Des().Format( aSource );
+	    }
+	else
+        {
+        iField->Des().Format( aSource.Mid( aSource.LocateReverse( KNSmlDMUriSeparator ) + 1 ) );
+        }
+
+    return KErrNone;
+	}
+
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter::ConvertTo8LC
+//	Converts string value to 8-bit and returns reference.
+// -----------------------------------------------------------------------------
+TDesC8& CNSmlDMSettingsAdapter::ConvertTo8LC( const TDesC& aSource )
+	{
+	HBufC8* buf = HBufC8::NewLC( aSource.Length() * 2 );
+	TPtr8 bufPtr = buf->Des();
+	CnvUtfConverter::ConvertFromUnicodeToUtf8( bufPtr, aSource );
+
+    return *buf;
+	}
+
+// -----------------------------------------------------------------------------
+//	CNSmlDMSettingsAdapter::ConvertTo16LC
+//	Converts string value to 16-bit and returns reference.
+// -----------------------------------------------------------------------------
+TDesC16& CNSmlDMSettingsAdapter::ConvertTo16LC( const TDesC8& aSource)
+	{
+	HBufC16* buf16 = HBufC16::NewLC( aSource.Length() );
+	TPtr16 bufPtr16 = buf16->Des();
+
+	CnvUtfConverter::ConvertToUnicodeFromUtf8( bufPtr16, aSource );
+
+    return *buf16; 
+	}
+
+// -------------------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter::GetConRefL
+//	Gets the URI for given aObject (IAP ID).
+// -------------------------------------------------------------------------------------
+TInt CNSmlDMSettingsAdapter::GetConRefL( CBufBase& aObject )
+	{
+	_DBG_FILE( "CNSmlDMSettingsAdapter::GetConRefL() : begin" );
+	TInt profIAPid = -1;
+    TInt apIdResponse = GetProfileIAPIdL( profIAPid );
+    if( profIAPid < 0 )
+    {
+    	return KErrNone;
+    }
+    if( apIdResponse != KErrNone )
+    {
+    	return KErrNotFound;
+    }
+    CNSmlDMIAPMatcher* apmatch = CNSmlDMIAPMatcher::NewL( iCallBack );
+    CleanupStack::PushL( apmatch );
+    HBufC8* uri8 = apmatch->URIFromIAPIdL( profIAPid );
+    if( uri8 )
+        {
+        CleanupStack::PushL( uri8 );
+        aObject.InsertL( aObject.Size(), uri8->Des() );
+        CleanupStack::PopAndDestroy(); // uri8
+        }
+    else
+        {
+        CleanupStack::PopAndDestroy(); // apMatch
+        return KErrGeneral;    
+        }
+    CleanupStack::PopAndDestroy(); // iapMatch
+	_DBG_FILE( "CNSmlDSSettingsAdapter::GetToNAPIDL() : end" );
+	return KErrNone;
+	}
+
+// -------------------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter::SetConRefL()
+//	Set the profile IAP Id value according to given URI.
+// -------------------------------------------------------------------------------------
+TInt CNSmlDMSettingsAdapter::SetConRefL( const TInt aLUID, const TDesC8& aObject )
+	{
+    _DBG_FILE( "CNSmlDMSettingsAdapter::SetConRefL() : begin" );
+    CNSmlDMIAPMatcher* apmatch = CNSmlDMIAPMatcher::NewL( iCallBack );
+    CleanupStack::PushL( apmatch );
+    TInt lIAPid = apmatch->IAPIdFromURIL( aObject ); 
+    CleanupStack::PopAndDestroy(); // iapmatch
+    if(aObject.Length() >0 && lIAPid == KErrNotFound) 
+    {
+    	return KErrGeneral;
+    }
+    TInt apIdResponse = SetProfileConnectionPropertyL( aLUID, lIAPid );    
+    _DBG_FILE( "CNSmlDMSettingsAdapter::SetConRefL() : end" );
+	return apIdResponse;
+	}
+
+// ------------------------------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter::ParseUri
+//  Resolves portnbr (separated with ':') as integer from Uri. 
+// ------------------------------------------------------------------------------------------------
+TInt CNSmlDMSettingsAdapter::ParseUri( const TDesC8& aRealURI, TInt& aPort )
+	{
+	TInt offset=0;
+    //http:
+	if( aRealURI.Find( KNSmlDMSettingsHTTP )==0 )//http:
+		{
+		offset = KNSmlDMSettingsHTTP().Length();
+		}
+	else if( aRealURI.Find( KNSmlDMSettingsHTTPS )==0 )//https:
+		{
+		offset = KNSmlDMSettingsHTTPS().Length();
+		}
+
+	TBool portFound=EFalse;
+    ////123.234.345.456:80/syncml
+	for( TInt i = offset; i < aRealURI.Length(); i++ )
+		{
+		if( aRealURI[i] == KNSmlDMColon )// ':'
+			{
+			portFound = ETrue;
+			offset=i;
+			}
+		if( portFound && aRealURI[i] == KNSmlDMUriSeparator ) // '/'
+			{
+			aPort = GetIntObject( aRealURI.Mid( (offset + 1), (i - offset-1) ) );
+			}
+		else if ( portFound && i == aRealURI.Length() - 1 ) // last char
+		    {
+		    // port is from offset to the end
+		    aPort = GetIntObject( aRealURI.Right( aRealURI.Length() - offset - 1 ) );
+		    }
+		}
+	
+	if( aPort != 0 )
+		{
+		return KErrNone;
+		}
+	else
+		{
+		return KErrNotFound;
+		}
+	}
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter::OpenSyncSessionAndDSProfileL
+//  The function opens the server session and DM profile.
+// -----------------------------------------------------------------------------
+TInt CNSmlDMSettingsAdapter::OpenSyncSessionAndProfileL( const TInt aIntLUID, 
+                                                        TSmlOpenMode aMode )
+    {
+    _DBG_FILE( "CNSmlDMSettingsAdapter::OpenSyncSessionAndProfileL(): begin" );
+    if( iSyncSessionOpen == EFalse )
+        {
+        iSyncSession.OpenL();
+        iSyncSessionOpen = ETrue;
+        }
+    TInt trueLuid = aIntLUID + KMaxDataSyncID;
+    TInt rValue(KErrNone);
+    
+    if(trueLuid!=iCurrentProfile)
+	    {
+	    RArray<TSmlProfileId> profileIdArray;
+	    CleanupClosePushL( profileIdArray );
+	    TSmlUsageType usageType = ESmlDevMan;
+	    iSyncSession.ListProfilesL( profileIdArray, usageType );
+	    TInt index = profileIdArray.Find( trueLuid );
+	    CleanupStack::PopAndDestroy(); //profileIdArray
+	    if( index == KErrNotFound )
+	        {
+	        return KErrNotFound;
+	        }
+	    TRAP( rValue, iProfile.OpenL( iSyncSession, trueLuid, aMode ) );
+	    iCurrentProfile = trueLuid;
+	    if( rValue != KErrNone )
+	        {
+	        iCurrentProfile = 0;
+	        iProfile.Close();
+			iSyncSession.Close();
+	        iSyncSessionOpen = EFalse;
+	        }
+    	}
+    _DBG_FILE( "CNSmlDMSettingsAdapter::OpenSyncSessionAndProfileL(): end" );
+    return rValue;
+    }
+
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter::FindProfileId
+//  Function checks if profile can be found.
+// -----------------------------------------------------------------------------
+TBool CNSmlDMSettingsAdapter::FindProfileIdL( const TInt aIntLUID )
+	{
+    _DBG_FILE( "CNSmlDMSettingsAdapter::FindProfileIdL(): begin" );
+	if( iSyncSessionOpen == EFalse )
+	    {
+        iSyncSession.OpenL();
+        iSyncSessionOpen = ETrue;
+	    }
+    
+	RArray <TSmlProfileId> profileList;
+    CleanupClosePushL( profileList );
+	TSmlUsageType usageType = ESmlDevMan;		
+	iSyncSession.ListProfilesL( profileList, usageType );
+	if( profileList.Count() == 0 ) 
+	    {
+        CleanupStack::PopAndDestroy(); //profileList
+        return EFalse;
+	    }		
+    TInt item = profileList.Find( aIntLUID + KMaxDataSyncID );
+    CleanupStack::PopAndDestroy(); //profileList
+    if( item != KErrNotFound )
+		{
+		_DBG_FILE( "CNSmlDMSettingsAdapter::FindProfileIdL(): end" );
+        return ETrue;
+		}
+    _DBG_FILE( "CNSmlDMSettingsAdapter::FindProfileIdL(): end" );
+	return EFalse;
+	}
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter::CreateNewProfileL
+//  The function creates new DM profile via client API.
+// -----------------------------------------------------------------------------
+TInt CNSmlDMSettingsAdapter::CreateNewProfileL( TInt& aPID )
+	{
+    _DBG_FILE("CNSmlDMSettingsAdapter::CreateNewProfileL(): begin");
+	if( iSyncSessionOpen == EFalse )
+	    {
+        iSyncSession.OpenL();
+        iSyncSessionOpen = ETrue;
+	    }
+    TRAPD( value1, iProfile.CreateL( iSyncSession ) );
+    if( value1 != KErrNone )
+        {
+   	    iCurrentProfile = 0;
+        iProfile.Close();
+        iSyncSession.Close();
+        iSyncSessionOpen = EFalse;
+        return value1;
+        }
+    
+    TRAPD( value2, iProfile.UpdateL() );
+    if( value2 != KErrNone )
+        {
+   	    iCurrentProfile = 0;
+        iProfile.Close();
+        iSyncSession.Close();
+        iSyncSessionOpen = EFalse;
+        return value2;
+        }
+    
+    aPID = iProfile.Identifier();
+    iCurrentProfile = 0;
+    iProfile.Close();
+    _DBG_FILE( "CNSmlDMSettingsAdapter::CreateNewProfileL(): end" );
+    return KErrNone;
+	}
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter::SetProfileServerURIL()
+//  The function sets the server URL for a profile.
+// -----------------------------------------------------------------------------
+TInt CNSmlDMSettingsAdapter::SetProfileServerURIL( const TInt aPID, 
+                                                    const TDesC8& aObj )
+	{
+    _DBG_FILE( "CNSmlDMSettingsAdapter::SetProfileServerURIL(): begin" );
+	TInt retVal = KErrNone;
+    retVal = OpenSyncSessionAndProfileL( aPID, ESmlOpenReadWrite );
+    if( retVal != KErrNone )
+		{
+	    iCurrentProfile = 0;
+	    iProfile.Close();
+        return retVal;	
+		}
+	RArray<TSmlTransportId> transportIdArray;
+    CleanupClosePushL( transportIdArray );
+	iProfile.ListConnectionsL( transportIdArray );
+    if( transportIdArray.Count() == 0 )
+	    {
+        CleanupStack::PopAndDestroy();//transportIdArray
+	    iCurrentProfile = 0;
+        iProfile.Close();
+        return KErrGeneral;
+	    }
+	    
+	TInt newPort(0);
+    
+    RSyncMLConnection conn;
+    CleanupClosePushL( conn );
+    conn.OpenL( iProfile, transportIdArray[0] );
+
+    if(ParseUri(aObj,newPort)==KErrNotFound)
+        {
+        TInt port = 0;
+        ParseUri(conn.ServerURI(),port);
+        if(port==0)
+        	{
+        	port = 80;
+        	}
+           	
+       	TBuf8<5> buf;
+    	buf.Num( port );
+        	
+        TInt totalSize = aObj.Length() + buf.Length() + 1;
+        HBufC8* newServerURI = HBufC8::NewLC( totalSize );
+        SetPortNrToAddrStr( aObj, newServerURI, buf );
+        conn.SetServerURIL( *newServerURI );
+        conn.UpdateL();
+    	CleanupStack::PopAndDestroy( newServerURI ); 
+        }
+    else
+        {
+        conn.SetServerURIL( aObj );
+        conn.UpdateL();
+        }
+	
+
+	iProfile.UpdateL();
+	
+	CleanupStack::PopAndDestroy( 2 ); //transportIdArray, conn
+    iCurrentProfile = 0;
+	iProfile.Close();
+    _DBG_FILE( "CNSmlDMSettingsAdapter::SetProfileServerURIL(): end" );
+	return KErrNone;
+	}
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter::SetProfileDisplayNameL()
+//  The function sets the display name for a profile.
+// -----------------------------------------------------------------------------
+TInt CNSmlDMSettingsAdapter::SetProfileDisplayNameL( const TInt aPID, 
+                                                        const TDesC8& aObj )
+	{
+    _DBG_FILE( "CNSmlDMSettingsAdapter::SetProfileDisplayNameL(): begin" );
+	TInt retVal = KErrNone;
+    retVal = OpenSyncSessionAndProfileL( aPID, ESmlOpenReadWrite );
+    if( retVal != KErrNone )
+		{
+	    iCurrentProfile = 0;
+		iProfile.Close();
+        return retVal;	
+		}
+    iProfile.SetDisplayNameL( ConvertTo16LC( aObj ) );
+    iProfile.UpdateL();
+	CleanupStack::PopAndDestroy(); //ConvertTo16LC
+    iCurrentProfile = 0;
+    iProfile.Close();
+    _DBG_FILE( "CNSmlDMSettingsAdapter::SetProfileDisplayNameL(): end" );
+	return KErrNone;
+	}
+
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter::SetProfileUserNameL
+//  The function sets the profile user name.
+// -----------------------------------------------------------------------------
+TInt CNSmlDMSettingsAdapter::SetProfileUserNameL( const TInt aPID, 
+                                                    const TDesC8& aObj )
+	{
+    _DBG_FILE( "CNSmlDMSettingsAdapter::SetProfileUserNameL(): begin" );
+	TInt retVal = OpenSyncSessionAndProfileL( aPID, ESmlOpenReadWrite );
+    if( retVal != KErrNone )
+		{
+	    iCurrentProfile = 0;
+		iProfile.Close();
+        return KErrGeneral;	
+		}
+    iProfile.SetUserNameL( aObj );
+    iProfile.UpdateL();
+    iCurrentProfile = 0;
+    iProfile.Close();
+    _DBG_FILE( "CNSmlDMSettingsAdapter::SetProfileUserNameL(): end" );
+	return KErrNone;
+	}
+
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter::SetProfileProtocolVersionL
+//  The function sets the protocol version to be supported.
+// -----------------------------------------------------------------------------
+TInt CNSmlDMSettingsAdapter::SetProfileProtocolVersionL( const TInt aPID, 
+                                                            const TDesC8& )
+	{
+    _DBG_FILE( "CNSmlDMSettingsAdapter::SetProfileProtocolVersionL(): begin" );
+	TInt retVal = KErrNone;
+    retVal = OpenSyncSessionAndProfileL( aPID, ESmlOpenReadWrite );
+    if( retVal != KErrNone )
+		{
+	    iCurrentProfile = 0;
+		iProfile.Close();
+        return retVal;	
+		}
+	//The syncSession to Sync server is open.
+    TSmlProtocolVersion protocol = ESmlVersion1_2;
+    iProfile.SetProtocolVersionL( protocol );
+	TRAPD( iError, iProfile.UpdateL() );
+    iCurrentProfile = 0;
+    iProfile.Close();
+    _DBG_FILE( "CNSmlDMSettingsAdapter::SetProfileProtocolVersionL(): begin" );
+	return iError;
+	}
+
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter::SetProfileServerIdL
+//  The function sets the profile ServerId value.
+// -----------------------------------------------------------------------------
+TInt CNSmlDMSettingsAdapter::SetProfileServerIdL( const TInt aPID, 
+                                                    const TDesC8& aObj )
+	{
+    _DBG_FILE("CNSmlDMSettingsAdapter::SetProfileServerIdL(): begin");
+	TInt retVal = OpenSyncSessionAndProfileL( aPID, ESmlOpenReadWrite );
+    if( retVal != KErrNone )
+		{
+	    iCurrentProfile = 0;
+		iProfile.Close();
+        return KErrGeneral;	
+		}
+	iProfile.SetServerIdL( aObj );
+    TRAP(retVal,iProfile.UpdateL() );
+    iCurrentProfile = 0;
+    iProfile.Close();
+    _DBG_FILE( "CNSmlDMSettingsAdapter::SetProfileServerIdL(): end" );
+	return retVal;
+	}
+
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter::SetProfileServerPasswordL
+//  The function sets the profile server password.
+// -----------------------------------------------------------------------------
+TInt CNSmlDMSettingsAdapter::SetProfileServerPasswordL( const TInt aPID, 
+                                                        const TDesC8& aObj )
+	{
+    _DBG_FILE( "CNSmlDMSettingsAdapter::SetProfileServerPasswordL(): begin" );
+	TInt retVal = OpenSyncSessionAndProfileL( aPID, ESmlOpenReadWrite );
+    if( retVal != KErrNone )
+		{
+	    iCurrentProfile = 0;
+		iProfile.Close();
+        return KErrGeneral;
+		}
+	iProfile.SetServerPasswordL( aObj );
+    iProfile.UpdateL();
+    iCurrentProfile = 0;
+    iProfile.Close();
+    _DBG_FILE( "CNSmlDMSettingsAdapter::SetProfileServerPasswordL(): end" );
+	return KErrNone;
+	}
+
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter::SetProfilePasswordL
+//  The function sets the profile password.
+// -----------------------------------------------------------------------------
+TInt CNSmlDMSettingsAdapter::SetProfilePasswordL( const TInt aPID, 
+                                                    const TDesC8& aObj )
+	{
+    _DBG_FILE( "CNSmlDMSettingsAdapter::SetProfilePasswordL(): begin" );
+	TInt retVal = KErrNone;
+    retVal = OpenSyncSessionAndProfileL( aPID, ESmlOpenReadWrite );
+    if( retVal != KErrNone )
+		{
+	    iCurrentProfile = 0;
+		iProfile.Close();
+        return retVal;	
+		}
+	iProfile.SetPasswordL( aObj );
+    iProfile.UpdateL();
+    iCurrentProfile = 0;
+    iProfile.Close();
+    _DBG_FILE( "CNSmlDMSettingsAdapter::SetProfilePasswordL(): begin" );
+	return KErrNone;
+	}
+
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter::SetProfileConnectionPropertyL
+//  This function sets the profile IAP id.
+// -----------------------------------------------------------------------------
+TInt CNSmlDMSettingsAdapter::SetProfileConnectionPropertyL( const TInt aLUID, 
+                                                            const TInt aIAPid )
+	{
+    TInt retVal = OpenSyncSessionAndProfileL( aLUID, ESmlOpenReadWrite );
+    if( retVal != KErrNone )
+		{
+	    iCurrentProfile = 0;
+		iProfile.Close();
+        return retVal;	
+		}
+    RArray<TSmlTransportId> connIdArray;
+    CleanupClosePushL( connIdArray );
+    iProfile.ListConnectionsL( connIdArray );
+    if( connIdArray.Count() == 1 )
+        {
+        RSyncMLTransport transport;
+        CleanupClosePushL( transport );
+	    transport.OpenL( iSyncSession, connIdArray[0] );
+	    const CSyncMLTransportPropertiesArray& props = transport.Properties();
+	    TInt index = props.Find( KNSmlIAPId );
+        if( index > 0 )
+            {
+            RSyncMLConnection conn;
+            CleanupClosePushL( conn );
+	        conn.OpenL( iProfile, connIdArray[0] );
+            HBufC8* apIdBuffer = HBufC8::NewLC( 4 );
+	        TPtr8 ptrIapIdBuf = apIdBuffer->Des();
+        	ptrIapIdBuf.Num( aIAPid );
+            conn.SetPropertyL( KNSmlIAPId, ptrIapIdBuf );
+            conn.UpdateL();
+            CleanupStack::PopAndDestroy( 2 ); //conn, apIdBuffer
+            retVal = KErrNone;
+            }
+        else
+            {
+            retVal = KErrNotFound;
+            }
+        CleanupStack::PopAndDestroy( 1 ); //transport
+        }
+    else
+        {
+        retVal = KErrNotFound;
+        }
+    iCurrentProfile = 0;
+    iProfile.Close();
+    CleanupStack::PopAndDestroy(); //connIdArray
+    return retVal;
+	}
+
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter::DeleteProfileL
+//  The function deleted the profile from DM database.
+// -----------------------------------------------------------------------------
+TInt CNSmlDMSettingsAdapter::DeleteProfileL( const TInt aPID )
+	{
+    _DBG_FILE( "CNSmlDMSettingsAdapter::DeleteProfileL(): begin" );
+	if( iSyncSessionOpen == EFalse )
+	    {
+        iSyncSession.OpenL();
+        iSyncSessionOpen = ETrue;
+	    }
+    
+	RArray<TSmlProfileId> profileIdArray;
+    CleanupClosePushL( profileIdArray );
+	TSmlUsageType usageType = ESmlDevMan;
+	iSyncSession.ListProfilesL( profileIdArray, usageType );
+	TInt index = profileIdArray.Find( aPID );
+	if ( index == KErrNotFound )
+		{
+        //No match
+        CleanupStack::PopAndDestroy();//profileIdArray
+		return KErrNotFound;		
+		}
+    iSyncSession.DeleteProfileL( aPID );
+    iSyncSession.Close();
+    iSyncSessionOpen = EFalse;
+    CleanupStack::PopAndDestroy();//profileIdArray
+    _DBG_FILE( "CNSmlDMSettingsAdapter::DeleteProfileL(): end" );
+	return KErrNone;
+	}
+
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter::GetObjectL
+//  The function checks which leaf data to be fetched.
+// -----------------------------------------------------------------------------
+TInt CNSmlDMSettingsAdapter::GetObjectL( TInt aLUID, TNSmlDMProfileData aDMField, 
+                                            CBufBase& aObject )
+    {
+    TInt retVal = OpenSyncSessionAndProfileL( aLUID, ESmlOpenRead );
+    if( retVal != KErrNone )
+		{
+	    iCurrentProfile = 0;
+		iProfile.Close();
+        return retVal;	
+		}
+    switch ( aDMField )
+		{
+		case ( EProfileName ) :
+			{
+            GetProfileNameL( aObject );
+            }
+		break;
+		
+		case ( EProfileDMServerUsername ) :
+			{
+			GetProfileUserNameL( aObject );
+            }
+		break;
+
+		case ( EProfileURL ) :
+			{
+			GetProfileServerURLL( aObject );
+			TInt port(0);
+			if(ParseUri(aObject.Ptr(0),port)==KErrNone)
+			    {
+			    HBufC8* addr = aObject.Ptr(0).AllocLC();
+			    aObject.Reset();
+			    TInt portStart = addr->LocateReverse(KNSmlDMColon);
+			    aObject.InsertL(aObject.Size(),addr->Left(portStart));
+			    
+			    TInt portLen=addr->Mid(portStart).Locate(KNSmlDMUriSeparator);
+			    if(portLen!=KErrNotFound)
+			        {
+			        aObject.InsertL(aObject.Size(),addr->Mid(portStart+portLen));
+			        }
+			    	    			    
+			    CleanupStack::PopAndDestroy(); //addr
+			    }
+            }
+		break;
+
+		case ( EServerId ) :
+			{
+            GetServerIdL( aObject );
+            }
+		break;
+
+		case ( EProfileIAPId ) :
+			{
+		    retVal = GetConRefL( aObject );
+            }
+		break;
+
+		case ( EProfilePort ) :
+            {
+            GetProfileServerURLL( aObject );
+            if ( aObject.Size() == 0 )
+                {
+                retVal = KErrNone;
+                break;
+                }
+            GetProfilePortNumberL ( aObject );
+            }
+        break;
+        
+   		case ( EProfileDMServerPassword ) :
+			{
+			retVal = EInvalidObject;
+            }
+		break;
+
+		case ( ESharedSecret ) :
+            {//ServerPW
+            retVal = EInvalidObject;
+            }
+        break;
+        case ( EProfileId ) :
+        break;
+		case ( EProfileMediumType ) :
+            {
+            retVal = GetProfileConnectiontypeL( aObject );
+            }
+        break;
+
+        case ( EAuthenticationRequired ) :
+        case ( EServerNonce ) :
+        case ( EClientNonce ) :
+            {
+            retVal = GetDMAuthInfoL( aLUID, aDMField, aObject );
+            }
+        break;
+		
+		default:
+			{
+			User::Panic( KNSmlIndexOutOfBoundStr, KNSmlPanicIndexOutOfBound );
+			}
+		}
+    iCurrentProfile = 0;
+    iProfile.Close();
+    return retVal;
+    }
+
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter::SetProfileConnectionPortNrL()
+//  The function sets the profile port number.
+// -----------------------------------------------------------------------------
+TInt CNSmlDMSettingsAdapter::SetProfileConnectionPortNrL( const TInt aLUID, 
+                                                            const TDesC8& aPort )
+    {
+    _DBG_FILE( "CNSmlDMSettingsAdapter::SetProfileConnectionPortNrL(): begin" );
+    TInt retVal = KErrNone;
+    
+    if( iPortNbr )
+        {
+        delete iPortNbr;
+        iPortNbr = NULL;
+        }
+    iPortNbr = HBufC8::NewL( aPort.Length() );
+    TPtr8 newPortNbr = iPortNbr->Des();
+    newPortNbr.Append( aPort );
+        
+    retVal = OpenSyncSessionAndProfileL( aLUID, ESmlOpenReadWrite );
+    if( retVal != KErrNone )
+		{
+	    iCurrentProfile = 0;
+		iProfile.Close();
+        _DBG_FILE( "CNSmlDMSettingsAdapter::SetProfileConnectionPortNrL(): end" );
+        return retVal;	
+		}
+    
+    RArray<TSmlTransportId> transportIdArray;
+    CleanupClosePushL( transportIdArray );
+    iProfile.ListConnectionsL( transportIdArray );
+    
+    RSyncMLConnection conn;
+    CleanupClosePushL( conn );
+    conn.OpenL( iProfile, transportIdArray[0] );
+        
+    HBufC8* serverURI = conn.ServerURI().AllocLC();
+    if( serverURI->Length() == 0 )
+        {
+	    iCurrentProfile = 0;
+        iProfile.Close();
+        CleanupStack::PopAndDestroy( 3 ); //transportIdArray, conn, serverURI
+        _DBG_FILE( "CNSmlDMSettingsAdapter::SetProfileConnectionPortNrL(): end" );
+        return retVal;
+	    }
+    TInt totalSize = serverURI->Size() + newPortNbr.Size() + 1;
+    HBufC8* newServerURI = HBufC8::NewL( totalSize );
+    CleanupStack::PushL( newServerURI );
+    SetPortNrToAddrStr( *serverURI, newServerURI, newPortNbr );
+    
+    conn.SetServerURIL( *newServerURI );
+    conn.UpdateL();
+    
+    CleanupStack::PopAndDestroy( 4 ); //transportIdArray, conn, serverURI, newServerURI
+    iCurrentProfile = 0;
+	iProfile.Close();
+    _DBG_FILE( "CNSmlDMSettingsAdapter::SetProfileConnectionPortNrL(): end" );
+    return retVal;	
+    }
+
+// ------------------------------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter::SetPortNrToAddrStr
+//  Sets a portnbr (separated with ':') to profile server URI. 
+// ------------------------------------------------------------------------------------------------
+void CNSmlDMSettingsAdapter::SetPortNrToAddrStr( const TDesC8& aSrvURI, HBufC8* aNewURI, 
+                                                    const TDesC8& aPort )
+	{
+	TInt offset=0;
+    if( aSrvURI.Find( KNSmlDMSettingsHTTP ) == 0 )//http://
+		{
+		offset = KNSmlDMSettingsHTTP().Length();
+		}
+	else if( aSrvURI.Find( KNSmlDMSettingsHTTPS ) == 0 )//https://
+		{
+		offset = KNSmlDMSettingsHTTPS().Length();
+		}
+	TInt portStart = -1;
+    TInt separatorPos = aSrvURI.Length();
+    TInt i = 0;
+    for( i = offset; i < aSrvURI.Length(); i++ )
+		{
+		if( aSrvURI[i] == KNSmlDMColon )// ':'
+			{
+			portStart = i;
+			}
+		if( aSrvURI[i] == KNSmlDMUriSeparator )// '/'
+			{
+            separatorPos = i;
+			break;
+			}
+		}
+	
+    TPtr8 ptrNewSrvURI = aNewURI->Des();
+    if( portStart < 0 && separatorPos > 0 && iLeafType != EDMDelete )
+        {
+        ptrNewSrvURI.Append( aSrvURI.Left( separatorPos ) );//http://123.234.345.456
+        ptrNewSrvURI.Append( KNSmlDMColon );
+        ptrNewSrvURI.Append( aPort );
+        ptrNewSrvURI.Append( aSrvURI.Right( aSrvURI.Length() - separatorPos ) );
+        }
+    else if ( portStart > 0 && separatorPos > 0 && iLeafType != EDMDelete )
+        {
+        ptrNewSrvURI.Append( aSrvURI.Left( portStart + 1 ) );//123.234.345.456:
+        ptrNewSrvURI.Append( aPort );//123.234.345.456:xx(x)
+        ptrNewSrvURI.Append( aSrvURI.Right( aSrvURI.Length() - separatorPos ) );
+        }
+    else if ( portStart > 0 &&  iLeafType == EDMDelete ) //delete port number from uri
+        {
+        ptrNewSrvURI.Append( aSrvURI.Left( portStart ) );//123.234.345.456
+        ptrNewSrvURI.Append( aSrvURI.Right( aSrvURI.Length() - separatorPos ) );
+        }
+    else
+        {
+        ptrNewSrvURI.Append( aSrvURI );
+        }
+    return;
+	}
+
+// ------------------------------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter::SetDMFieldDataL
+//  Selects and Sets value to a field based on field id got from URI.
+// ------------------------------------------------------------------------------------------------
+TInt CNSmlDMSettingsAdapter::SetDMFieldDataL( const TInt aLUID, const TDesC8& aObject, 
+                                                const TNSmlDMProfileData aField )
+    {
+    TInt rValue = KErrGeneral;
+    switch ( aField )
+		{
+		case ( EProfileURL ) :
+			{
+		    rValue = SetProfileServerURIL( aLUID, aObject );    
+			}
+		break;
+		case ( EServerId ) :
+			{
+		    rValue = SetProfileServerIdL( aLUID, aObject );
+			}
+		break;
+        case ( ESharedSecret ) :
+			{
+		    rValue = SetProfileServerPasswordL( aLUID, aObject );
+			}
+		break;
+        case ( EProfileDMServerUsername ) :
+			{
+		    rValue = SetProfileUserNameL( aLUID, aObject );
+			}
+		break;
+        case ( EProfileDMServerPassword ) :
+			{
+		    rValue = SetProfilePasswordL( aLUID, aObject );
+			}
+		break;
+        case ( EProfileName ) :
+			{
+		    rValue = SetProfileDisplayNameL( aLUID, aObject );
+			}
+		break;
+        case ( EProfileIAPId ) :
+			{
+            rValue = SetConRefL( aLUID, aObject );
+		    }
+		break;
+        case ( EProfileId ) :
+			{
+		    }
+		break;
+        case ( EProfilePort ) :
+			{
+            if(aObject.Size()<=5)
+                {
+			TInt port = GetIntObject(aObject);
+	        if( port > KPortMinSize && port < KPortMaxSize )
+		         {
+	    			TPortBuffer element;
+	    			element.iPortBuf=aObject;
+	    			element.iPortBufLUID = aLUID;
+	    			iPortBuffer.Append(element);
+	    			rValue=KErrNone;
+                 }
+                else
+                {
+				if (port <= KPortMinSize )
+				   rValue = KErrUnderflow;
+                	else
+                   rValue=KErrOverflow;
+                }
+			}
+			else
+			{
+					rValue=KErrOverflow;
+			}
+			// save information of the port
+		    }
+		break;
+        case ( EProfileMediumType ) :
+			{
+            if ( iLeafType == EDMDelete )
+			    {
+                return KErrNone;
+			    }
+            iObject = GetIntObject( aObject );
+            if(iObject<0)
+                {
+                iObject = EHttp;
+                }
+            rValue = SetProfileAddrTypeL( aLUID, iObject );
+		    }
+		break;
+        case ( EAuthenticationRequired ) :
+        case ( EClientNonce ) :
+        case ( EServerNonce ) :
+		break;
+        
+        default:
+            rValue = KErrNotSupported;
+        }
+    return rValue;
+    }
+
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter::FillNodeInfoL
+//  The function fills the node or leaf information.
+// -----------------------------------------------------------------------------
+void CNSmlDMSettingsAdapter::FillNodeInfoL( MSmlDmDDFObject& aNode, 
+                                            TSmlDmAccessTypes aAccTypes, 
+                                            MSmlDmDDFObject::TOccurence aOccurrence, 
+                                            MSmlDmDDFObject::TScope aScope, 
+                                            MSmlDmDDFObject::TDFFormat aFormat, 
+                                            const TDesC8& aDescription, 
+                                            const TDesC8& aDefaultValue, 
+                                            const TDesC8& aMimeType )
+    {
+    aNode.AddDFTypeMimeTypeL( aMimeType );
+    aNode.SetAccessTypesL( aAccTypes );
+	aNode.SetDescriptionL( aDescription );
+	aNode.SetOccurenceL( aOccurrence );
+	aNode.SetDefaultValueL( aDefaultValue );
+	aNode.SetScopeL( aScope );
+	aNode.SetDFFormatL( aFormat );
+    return;
+    }
+
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter::GetDMAuthInfoL
+//  This function gets authentication data from private API.
+// -----------------------------------------------------------------------------
+TInt CNSmlDMSettingsAdapter::GetDMAuthInfoL( const TInt aLUID, 
+                                                const TNSmlDMProfileData aField, 
+                                                CBufBase& aObject )
+    {
+    _DBG_FILE( "CNSmlDMSettingsAdapter::GetDMAuthInfoL(): begin" );
+   
+    CNSmlDMAuthInfo* authInfo = new (ELeave) CNSmlDMAuthInfo;
+    CleanupStack::PushL( authInfo );
+    
+    authInfo->iProfileId = aLUID + KMaxDataSyncID;
+    iPrivateApi.OpenL();
+    TInt ret = KErrNone;
+    
+    TRAPD(err,iPrivateApi.GetDMAuthInfoL( *authInfo ));
+
+    if(err==KErrNone)
+    	{
+	    if ( aField == EServerNonce )
+	        {
+	        aObject.InsertL( aObject.Size(), *authInfo->iServerNonce );
+	        }
+	    else if ( aField == EClientNonce )
+	        {
+	        aObject.InsertL( aObject.Size(), *authInfo->iClientNonce );
+	        }
+	    else if ( aField == EAuthenticationRequired )
+	        {
+	        TUint authPref = authInfo->iAuthPref;
+	        if( authPref == ENoAuth )
+	            {
+	            aObject.InsertL( aObject.Size(), KNSmlDMAuthPrefNoAuth ); 
+	            }
+	        else if( authPref == EBasic )
+	            {
+	            aObject.InsertL( aObject.Size(), KNSmlDMAuthPrefBasic );
+	            }
+	        else if( authPref == EMD5 )
+	            {
+	            aObject.InsertL( aObject.Size(), KNSmlDMAuthPrefMD5 );
+	            }
+	        else
+	            {
+	            aObject.InsertL( aObject.Size(), KNullDesC8 );
+	            ret = KErrGeneral;
+	            }
+	        }
+    	}
+    iPrivateApi.Close();
+    CleanupStack::PopAndDestroy(authInfo);
+    _DBG_FILE( "CNSmlDMSettingsAdapter::GetDMAuthInfoL(): end" );
+    return ret;
+    }
+
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter::DeleteDMAuthInfoL
+//  This function resets the authentication data.
+// -----------------------------------------------------------------------------
+TInt CNSmlDMSettingsAdapter::DeleteDMAuthInfoL( const TInt aLUID, 
+                                                const TNSmlDMProfileData aField )
+    {
+    _DBG_FILE( "CNSmlDMSettingsAdapter::DeleteDMAuthInfoL(): begin" );
+    CNSmlDMAuthInfo* authInfo = new (ELeave) CNSmlDMAuthInfo;;
+    CleanupStack::PushL( authInfo );
+    authInfo->iProfileId = aLUID;
+    iPrivateApi.OpenL();
+    iPrivateApi.GetDMAuthInfoL( *authInfo );
+    if( aField == EServerNonce )
+        {
+        authInfo->iServerNonce->Des().Delete( 0, authInfo->iServerNonce->Des().Size() );
+        authInfo->iServerNonce->Des().Insert( 0, KNullDesC8 );
+        }
+    else if( aField == EClientNonce )
+        {
+        authInfo->iClientNonce->Des().Delete( 0, authInfo->iClientNonce->Des().Size() );
+        authInfo->iClientNonce->Des().Insert( 0, KNullDesC8 );
+        }
+    else if( aField == EAuthenticationRequired )
+        {
+        authInfo->iAuthPref = 0;
+        }
+    iPrivateApi.SetDMAuthInfoL( *authInfo );
+    iPrivateApi.Close();
+    CleanupStack::PopAndDestroy(authInfo);
+	_DBG_FILE( "CNSmlDMSettingsAdapter::DeleteDMAuthInfoL(): end" );
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CNSmlDMSettingsAdapter::SetProfileAddrTypeL
+// This function sets the AddrType value.    
+// -----------------------------------------------------------------------------
+TInt CNSmlDMSettingsAdapter::SetProfileAddrTypeL( const TInt aLUID, 
+                                                    const TInt aIntObj )
+    {
+    _DBG_FILE( "CNSmlDMSettingsAdapter::SetProfileAddrTypeL(): begin" );
+    TInt retVal = OpenSyncSessionAndProfileL( aLUID, ESmlOpenReadWrite );
+    if( retVal != KErrNone )
+		{
+	    iCurrentProfile = 0;
+		iProfile.Close();
+        _DBG_FILE( "CNSmlDMSettingsAdapter::SetProfileAddrTypeL(): end" );
+        return retVal;	
+		}
+    TInt mediumType = ENone;
+    GetMediumTypeL( aIntObj, mediumType );
+    if( mediumType == ENone )
+        {
+	    iCurrentProfile = 0;
+        iProfile.Close();    
+        return KErrGeneral;
+        }
+    RArray<TSmlTransportId> transportIdArray;
+    CleanupClosePushL( transportIdArray );
+    iProfile.ListConnectionsL( transportIdArray );
+    RSyncMLConnection conn;
+    CleanupClosePushL( conn );
+    conn.OpenL( iProfile, transportIdArray[0] );
+    if(mediumType!=transportIdArray[0])
+        {
+        if ( !FeatureManager::FeatureSupported( KFeatureIdSyncMlDmObex  ) )
+            {
+            CleanupStack::PopAndDestroy( 2 );//transportIdArray, conn
+            return EInvalidObject;
+            }
+        else
+            {
+            conn.CreateL(iProfile,mediumType);
+            }
+        }
+    HBufC8* sURI = conn.ServerURI().AllocLC();
+    conn.SetServerURIL( *sURI );
+    conn.UpdateL(); 	                    
+    CleanupStack::PopAndDestroy( 3 );//transportIdArray, conn, sURI
+    iCurrentProfile = 0;
+    iProfile.Close();
+    _DBG_FILE( "CNSmlDMSettingsAdapter::SetProfileAddrTypeL(): end" );
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter::GetProfileConnectiontypeL
+//  The function gets the profile medium type.
+// -----------------------------------------------------------------------------
+TInt CNSmlDMSettingsAdapter::GetProfileConnectiontypeL( CBufBase& aObject )
+	{
+    _DBG_FILE( "CNSmlDMSettingsAdapter::GetProfileConnectiontypeL(): begin" );
+	RArray<TSmlTransportId> transportIdArray;
+    CleanupClosePushL( transportIdArray );
+	iProfile.ListConnectionsL( transportIdArray );
+	TInt transportItems = transportIdArray.Count();
+    if( transportItems == 0 )
+		{
+		//No matching items
+        CleanupStack::PopAndDestroy(); //transportIdArray	
+		return KErrGeneral;
+		}
+	else if( transportItems > 1 )
+		{
+		//Error case : against specification
+        CleanupStack::PopAndDestroy(); //transportIdArray	
+		return KErrGeneral;
+		}
+	TInt mediumType = ENone;
+    if ( transportIdArray[0] == KUidNSmlMediumTypeInternet.iUid )
+        {
+        mediumType = EHttp;
+        }
+    else if ( transportIdArray[0] == KUidNSmlMediumTypeBluetooth.iUid ||
+              transportIdArray[0] == KUidNSmlMediumTypeUSB.iUid ||   
+              transportIdArray[0] == KUidNSmlMediumTypeIrDA.iUid  )
+        {
+        mediumType = EObex;
+        }
+    aObject.InsertL( aObject.Size(), SetIntObjectLC( mediumType ) );
+    CleanupStack::PopAndDestroy( 2 ); //transportIdArray, SetIntObjectLC
+	return KErrNone;
+	}
+
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter::GetProfileIAPIdL
+//  The function gets the profile IAP Id.
+// -----------------------------------------------------------------------------
+TInt CNSmlDMSettingsAdapter::GetProfileIAPIdL( TInt& aIAPid )
+	{
+    _DBG_FILE( "CNSmlDMSettingsAdapter::GetProfileIAPIdL(): begin" );
+    TInt retVal = KErrGeneral;
+    aIAPid = -1;
+    RArray<TSmlTransportId> connIdArray;
+    CleanupClosePushL( connIdArray );
+    iProfile.ListConnectionsL( connIdArray );
+    if( connIdArray.Count() == 1 )
+        {
+        RSyncMLTransport transport;
+        CleanupClosePushL( transport );
+	    transport.OpenL( iSyncSession, connIdArray[0] );
+	    const CSyncMLTransportPropertiesArray& props = transport.Properties();
+	    TInt index = props.Find( KNSmlIAPId );
+        if( index > 0 )
+            {
+            RSyncMLConnection conn;
+            CleanupClosePushL( conn );
+	        conn.OpenL( iProfile, connIdArray[0] );
+            HBufC8* apId = conn.GetPropertyL( KNSmlIAPId ).AllocLC();
+            aIAPid = GetIntObject( *apId );
+            CleanupStack::PopAndDestroy( 2 ); //conn, apId
+            retVal = KErrNone;
+            }
+        else
+            {
+            retVal = KErrNotFound;
+            }
+        CleanupStack::PopAndDestroy( 1 ); //transport
+	    iCurrentProfile = 0;
+        iProfile.Close();
+        }
+    else
+        {
+        retVal = KErrNotFound;
+        }
+    CleanupStack::PopAndDestroy(); //connIdArray
+    _DBG_FILE( "CNSmlDMSettingsAdapter::GetProfileIAPIdL(): end" );
+    return retVal;
+    }
+
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter::GetProfileServerURLL
+//  The function gets the profile Server URI.
+// -----------------------------------------------------------------------------
+void CNSmlDMSettingsAdapter::GetProfileServerURLL( CBufBase& aURL )
+	{
+    _DBG_FILE( "CNSmlDMSettingsAdapter::GetProfileServerURLL(): begin" );
+    RArray<TSmlTransportId> transportIdArray;
+    CleanupClosePushL( transportIdArray );
+	iProfile.ListConnectionsL( transportIdArray );
+    if( transportIdArray.Count() > 0 )
+        {
+        RSyncMLConnection profConn;
+        CleanupClosePushL( profConn );
+	    profConn.OpenL( iProfile, transportIdArray[0] );
+	    HBufC8* sURI = profConn.ServerURI().AllocL();
+        CleanupStack::PushL( sURI );
+        TPtr8 uriPtr = sURI->Des();
+        if( uriPtr.Length() > 0 )
+            {
+            aURL.InsertL( aURL.Size(),uriPtr );
+            }
+        else
+            {
+            aURL.InsertL( aURL.Size(), KNullDesC8 );
+            }
+        CleanupStack::PopAndDestroy( 2 );//profConn, sURI
+        }
+    CleanupStack::PopAndDestroy(); //transportIdArray
+    _DBG_FILE( "CNSmlDMSettingsAdapter::GetProfileServerURLL(): end" );
+    return;
+	}
+
+// -----------------------------------------------------------------------------
+//	CNSmlDMSettingsAdapter::GetMediumTypeL
+//	Checks the requested medium type.
+// -----------------------------------------------------------------------------
+void CNSmlDMSettingsAdapter::GetMediumTypeL( const TInt aIntObj, 
+                                            TInt& aMediumType )
+    {
+    _DBG_FILE( "CNSmlDMSettingsAdapter::GetMediumTypeL(): begin" );
+    if( aIntObj == EHttp || aIntObj == EWsp )
+        {
+        aMediumType = KUidNSmlMediumTypeInternet.iUid;
+        return;
+        }
+    RArray<TSmlTransportId> transportIdArray;
+    CleanupClosePushL( transportIdArray );
+    iSyncSession.ListTransportsL( transportIdArray );
+    
+    if ( transportIdArray.Find( KUidNSmlMediumTypeBluetooth.iUid ) != KErrNotFound )
+        {
+        aMediumType = KUidNSmlMediumTypeBluetooth.iUid;
+        }
+    else if ( transportIdArray.Find( KUidNSmlMediumTypeUSB.iUid ) != KErrNotFound )
+        {
+        aMediumType = KUidNSmlMediumTypeUSB.iUid;
+        }
+    else if ( transportIdArray.Find( KUidNSmlMediumTypeIrDA.iUid ) != KErrNotFound )
+        {
+        aMediumType = KUidNSmlMediumTypeIrDA.iUid;
+        }
+    CleanupStack::PopAndDestroy(); //transportIdArray
+    _DBG_FILE( "CNSmlDMSettingsAdapter::GetMediumTypeL(): end" );
+    return;    
+    }
+
+// -----------------------------------------------------------------------------
+//	CNSmlDMSettingsAdapter::GetServerIdL
+//	Gets the server id value.
+// -----------------------------------------------------------------------------
+void CNSmlDMSettingsAdapter::GetServerIdL( CBufBase& aObject )
+    {
+    _DBG_FILE( "CNSmlDMSettingsAdapter::GetServerIdL(): begin" );
+    HBufC8* serverId = iProfile.ServerId().AllocL();
+    CleanupStack::PushL( serverId );
+    aObject.InsertL( aObject.Size(), *serverId );
+    CleanupStack::PopAndDestroy( 1 ); //serverId
+    _DBG_FILE( "CNSmlDMSettingsAdapter::GetServerIdL(): end" );
+    return;
+    }
+
+// -----------------------------------------------------------------------------
+//	CNSmlDMSettingsAdapter::GetProfileNameL
+//	Gets the display name value.
+// -----------------------------------------------------------------------------
+void CNSmlDMSettingsAdapter::GetProfileNameL( CBufBase& aObject )
+    {
+    _DBG_FILE( "CNSmlDMSettingsAdapter::GetProfileNameL(): begin" );
+    HBufC16* dataBuf = iProfile.DisplayName().AllocL();
+    CleanupStack::PushL( dataBuf );
+    TPtr16 ptrDisplayName = dataBuf->Des();
+    HBufC8* dataBuf8 = HBufC8::NewL( ptrDisplayName.Length() * 2 );
+    CleanupStack::PushL( dataBuf8 );
+
+    TPtr8 ptrDisplayName8 = dataBuf8->Des();
+    ptrDisplayName8 = ConvertTo8LC( ptrDisplayName );
+    aObject.InsertL( aObject.Size(), ptrDisplayName8 );
+    CleanupStack::PopAndDestroy( 3 );//dataBuf, ConvertTo8LC
+    _DBG_FILE("CNSmlDMSettingsAdapter::GetProfileNameL(): end");
+    return;
+    }
+
+// -----------------------------------------------------------------------------
+//	CNSmlDMSettingsAdapter::GetProfileUserNameL
+//	Gets the profile user name value.
+// -----------------------------------------------------------------------------
+void CNSmlDMSettingsAdapter::GetProfileUserNameL( CBufBase& aObject )
+    {
+    _DBG_FILE( "CNSmlDMSettingsAdapter::GetProfileUserNameL(): begin" );
+    HBufC8* dataBuf = iProfile.UserName().AllocL();
+    CleanupStack::PushL( dataBuf );
+    TPtr8 ptrUserName = dataBuf->Des();
+    aObject.InsertL( aObject.Size(), ptrUserName );
+    CleanupStack::PopAndDestroy();//dataBuf
+    _DBG_FILE( "CNSmlDMSettingsAdapter::GetProfileUserNameL(): end" );
+    return;
+    }
+
+// -----------------------------------------------------------------------------
+//	CNSmlDMSettingsAdapter::GetProfilePortNumberL
+//	Gets the port number value.
+// -----------------------------------------------------------------------------
+void CNSmlDMSettingsAdapter::GetProfilePortNumberL( CBufBase& aObject )
+    {
+    _DBG_FILE( "CNSmlDMSettingsAdapter::GetProfilePortNumberL(): begin" );
+    TInt bSize = aObject.Size();
+    TInt portNum = 0;
+    HBufC8* bufStorage = HBufC8::NewLC( bSize );
+	TPtr8 bufStoragePtr = bufStorage->Des();
+	aObject.Read( 0, bufStoragePtr, aObject.Size() );
+	aObject.Reset();
+	
+    //find out the port number
+    ParseUri( *bufStorage, portNum );
+	aObject.InsertL( aObject.Size(), SetIntObjectLC( portNum ) );
+
+    CleanupStack::PopAndDestroy( 2 ); //bufStorage, SetIntObjectLC()
+    _DBG_FILE( "CNSmlDMSettingsAdapter::GetProfilePortNumberL(): end" );
+    return;
+    }
+
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter::SetAuthInfoL
+//  The function checks if authinfo already exits. If exits command is replace.
+// -----------------------------------------------------------------------------
+void CNSmlDMSettingsAdapter::SetAuthInfoL( const TInt aLUID, 
+                                            const TNSmlDMProfileData aField, 
+                                            const TDesC8& aObject, TInt& aStatus )
+    {
+    _DBG_FILE( "CNSmlDMSettingsAdapter::SetAuthInfoL(): begin" );
+    
+    CNSmlDMAuthInfo* authInfo = new (ELeave) CNSmlDMAuthInfo();
+    CleanupStack::PushL( authInfo );
+    authInfo->iProfileId = aLUID;
+    
+    iPrivateApi.OpenL();
+    TRAPD( err, iPrivateApi.GetDMAuthInfoL( *authInfo ) );
+    
+    if ( err )
+        {
+        CleanupStack::PopAndDestroy( authInfo );
+        iPrivateApi.Close();
+        aStatus = err;
+        return;
+        }
+    
+    CNSmlDMAuthInfo* newAuthInfo = new (ELeave) CNSmlDMAuthInfo();
+    CleanupStack::PushL( newAuthInfo );
+    newAuthInfo->iProfileId = aLUID;
+
+    if ( aField == EServerNonce )
+        {
+        newAuthInfo->iServerNonce = aObject.Alloc();
+        newAuthInfo->iClientNonce = authInfo->iClientNonce->Des().Alloc();
+        newAuthInfo->iAuthPref = authInfo->iAuthPref;
+        
+        iPrivateApi.SetDMAuthInfoL( *newAuthInfo );
+        }
+    else if ( aField == EClientNonce )
+        {
+        newAuthInfo->iServerNonce = authInfo->iServerNonce->Des().Alloc();
+        newAuthInfo->iClientNonce = aObject.Alloc();
+        newAuthInfo->iAuthPref = authInfo->iAuthPref;
+        
+        iPrivateApi.SetDMAuthInfoL( *newAuthInfo );
+        }
+    else if ( aField == EAuthenticationRequired )
+        {
+        if ( aObject.Match( KNSmlDMAuthPrefNoAuth ) !=  KErrNotFound )
+            {
+            newAuthInfo->iAuthPref = ENoAuth;
+            }
+        else if ( aObject.Match( KNSmlDMAuthPrefBasic ) !=  KErrNotFound )
+            {
+            newAuthInfo->iAuthPref = EBasic;
+            }
+        else if ( aObject.Match( KNSmlDMAuthPrefMD5 ) !=  KErrNotFound )
+            {
+            newAuthInfo->iAuthPref = EMD5;
+            }
+        newAuthInfo->iServerNonce = authInfo->iServerNonce->Des().Alloc();
+        newAuthInfo->iClientNonce = authInfo->iClientNonce->Des().Alloc();
+        
+        iPrivateApi.SetDMAuthInfoL( *newAuthInfo );
+        }
+    
+    CleanupStack::PopAndDestroy( newAuthInfo );
+    CleanupStack::PopAndDestroy( authInfo );
+    
+    iPrivateApi.Close();
+    aStatus = KErrNone;
+    _DBG_FILE( "CNSmlDMSettingsAdapter::SetAuthInfoL(): end" );
+    return;
+    }
+//------------------------------------------------------------------------------
+// CNSmlDMSettingsAdapter::AddNodeBufferL()
+// Buffers Node Object
+//------------------------------------------------------------------------------
+void CNSmlDMSettingsAdapter::AddNodeBufferL( const TDesC8& aURI,
+		const TInt aStatusRef)
+	{
+	_DBG_FILE( "CNSmlDMSettingsAdapter::AddNodeBufferL(): begin" );
+	TInt index = -1;
+
+	for (TInt i = 0; i<iBuffer->Count (); i++)
+		{
+		if ( iBuffer->At(i).iMappingName->Compare (aURI)== 0)
+			{
+			index = i;
+			//CallBack for duplicate
+			_DBG_FILE( "CNSmlDMSettingsAdapter::AddNodeBufferL(): EAlreadyExists end" );
+			iCallBack->SetStatusL ( aStatusRef, CSmlDmAdapter::EAlreadyExists);
+			break;
+			}
+		}
+
+	if ( index<0)
+		{
+		TNSmlDMBufferElement newNode;
+		newNode.iMappingName = aURI.AllocLC ();
+		newNode.iLeafBuf = new (ELeave) CArrayFixFlat <TNSmlDMLeafElement> (4);
+		newNode.iExecuted = EFalse;
+		newNode.iDMBuffStatusref = aStatusRef;
+		newNode.iAddr = EFalse;
+		newNode.iServerId = EFalse;
+		newNode.iUName = EFalse;
+		newNode.iServerName = EFalse;
+
+		iBuffer->AppendL (newNode);
+		//newNode.iMappingName
+		CleanupStack::Pop ();
+		}
+	_DBG_FILE( "CNSmlDMSettingsAdapter::AddNodeBufferL(): end" );
+	}
+//------------------------------------------------------------------------------
+// CNSmlDMSettingsAdapter::AddLeafBufferL()
+// Buffers Leaf Obj & checks for Mandatory fields
+//------------------------------------------------------------------------------
+void CNSmlDMSettingsAdapter::AddLeafBufferL( const TDesC8& aURI,
+		const TDesC8& aObject, const TInt aStatusRef)
+	{
+	_DBG_FILE( "CNSmlDMSettingsAdapter::AddLeafBufferL(): begin" );
+	TNSmlDMLeafElement newCommand;
+
+	newCommand.iUri = aURI.AllocLC ();
+	newCommand.iData = aObject.AllocLC ();
+	newCommand.iLuid = HBufC8::NewLC (8); //Allocate Mem. for iLUID
+	newCommand.iStatusRef = aStatusRef;
+	//Add Leaf to the index updated by UpdateLeafObj
+	iBuffer->At(iExecutionIndex).iLeafBuf->AppendL (newCommand);
+	// iUri, iData, ILuid
+	CleanupStack::Pop (3);
+	SetField ( aURI);
+
+	if ( iField->Compare (KNSmlDdfAddr)== 0)
+		{
+		iBuffer->At(iExecutionIndex).iAddr = ETrue;
+		}
+	else
+		if ( iField->Compare (KNSmlDdfServerId)== 0)
+			{
+			iBuffer->At(iExecutionIndex).iServerId = ETrue;
+			}
+		else
+			if ( iField->Compare (KNSmlDdfClientUserName)== 0)
+				{
+				iBuffer->At(iExecutionIndex).iUName = ETrue;
+				}
+			else
+				if ( iField->Compare (KNSmlDdfName)== 0)
+					{
+					iBuffer->At(iExecutionIndex).iServerName = ETrue;
+					}
+
+	//  If Address,ServerId,ServerName,UserName then Add
+
+	if ( iBuffer->At(iExecutionIndex).iAddr && iBuffer->At(iExecutionIndex).iServerId &&iBuffer->At(iExecutionIndex).iUName && iBuffer->At(iExecutionIndex).iServerName)
+		{
+		ExecuteBufferL ();
+		iExecutionIndex = -1;
+		}
+	_DBG_FILE( "CNSmlDMSettingsAdapter::AddLeafBufferL(): end" );
+	return;
+	}
+
+//------------------------------------------------------------------------------
+// CNSmlDMSettingsAdapter::ExecuteBufferL()
+// Adds the Node/Leaf obj to the db
+//------------------------------------------------------------------------------
+void CNSmlDMSettingsAdapter::ExecuteBufferL()
+	{
+	_DBG_FILE( "CNSmlDMSettingsAdapter::ExecuteBufferL(): begin" );
+	TBuf8<8> newLUID;
+	TInt rValue;
+	//Buffer is being Executed
+	iBufOn = ETrue;
+
+	// Robustness check
+	if ( iExecutionIndex<0)
+		{
+		return;
+		}
+
+	//Execute BufferL is called from CompleteOutstandingCmdsL only when
+	//Mandatory fields are not set. Dont update Node/Leaf to the db, return a failure
+
+	if ( !iComplete)
+		rValue = CreateNewProfileL (iLUID);
+	else
+		rValue = CSmlDmAdapter::EError;
+
+	iBuffer->At(iExecutionIndex).iExecuted = ETrue;
+
+	if ( rValue != KErrNone)
+		{
+		if ( rValue == KErrNoMemory)
+			{
+			iCallBack->SetStatusL ( iBuffer->At(iExecutionIndex).iDMBuffStatusref, CSmlDmAdapter::ENoMemory);
+			}
+		else
+			if ( rValue == KErrNotSupported)
+				{
+				iCallBack->SetStatusL ( iBuffer->At(iExecutionIndex).iDMBuffStatusref,
+						CSmlDmAdapter::EInvalidObject);
+				}
+			else
+				if ( rValue == KErrInUse)
+					{
+					iCallBack->SetStatusL ( iBuffer->At(iExecutionIndex).iDMBuffStatusref,
+							CSmlDmAdapter::EObjectInUse);
+					}
+				else
+					if ( rValue == KErrDiskFull)
+						{
+						iCallBack->SetStatusL ( iBuffer->At(iExecutionIndex).iDMBuffStatusref,
+								CSmlDmAdapter::EDiskFull);
+						}
+					else
+						{
+						iCallBack->SetStatusL ( iBuffer->At(iExecutionIndex).iDMBuffStatusref,
+								CSmlDmAdapter::EError);
+						}
+		// dont return, UpdateLeafObjectL will update the callback status for leaf Nodes 
+		}
+	else
+		{
+		if ( iLUID >= KMaxDataSyncID)
+			{
+			newLUID.Num ( iLUID - KMaxDataSyncID);
+			}
+		else
+			{
+			newLUID.Num ( iLUID);
+			}
+
+		iCallBack->SetMappingL ( *iBuffer->At(iExecutionIndex).iMappingName, newLUID);
+
+		iCallBack->SetStatusL (iBuffer->At(iExecutionIndex).iDMBuffStatusref, CSmlDmAdapter::EOk);
+		}
+
+	for (TInt val= 0; val < iBuffer->At(iExecutionIndex).iLeafBuf->Count ();val++)
+		{
+		//Update the LUID data in the Leaf structure with the Profile LUID before calling UpdateLeafObj
+		TPtr8 tempLUID(iBuffer->At(iExecutionIndex).iLeafBuf->At(val).iLuid->Des ());
+		tempLUID.Append (newLUID);
+		UpdateLeafObjectL (*iBuffer->At(iExecutionIndex).iLeafBuf->At(val).iUri, *iBuffer->At(iExecutionIndex).iLeafBuf->At(val).iLuid, *iBuffer->At(iExecutionIndex).iLeafBuf->At(val).iData, *iBuffer->At(iExecutionIndex).iMappingName, iBuffer->At(iExecutionIndex).iLeafBuf->At(val).iStatusRef);
+		}
+
+	// Delete the dynamically allocated buffers (Node/Leaf obj)
+
+	ClearBuffer ( iBuffer->At(iExecutionIndex).iLeafBuf);
+
+	delete iBuffer->At(iExecutionIndex).iLeafBuf;
+
+	if ( iBuffer->At(iExecutionIndex).iMappingName)
+		{
+		delete iBuffer->At(iExecutionIndex).iMappingName;
+		iBuffer->At(iExecutionIndex).iMappingName = NULL;
+		}
+
+	iBuffer->Delete (iExecutionIndex);
+	iBuffer->Compress ();
+
+	iBufOn = EFalse;
+	_DBG_FILE( "CNSmlDMSettingsAdapter::ExecuteBufferL(): end" );
+	}
+
+//------------------------------------------------------------------------------
+// TPtrC8 CNSmlDMSettingsAdapter::ParentURI(const TDesC8& aURI)
+// returns parent uri, i.e. removes last uri segment
+// Searches till the third "/" is reached
+//------------------------------------------------------------------------------
+TPtrC8 CNSmlDMSettingsAdapter::ParentURI(const TDesC8& aURI)
+	{
+	_DBG_FILE( "CNSmlDMSettingsAdapter::ParentURI(): begin" );
+	TInt count;
+	TInt flag = 0;
+	for (count=0; count<=aURI.Length ()-1;count++)
+		{
+
+		if ( aURI[count]=='/')
+			{
+			flag++;
+			if ( flag == KDynNodePosn) //KDynNodePosn =3 --> SyncML/DMAcc/DMIDxx
+				break;
+			}
+		}
+
+	_DBG_FILE( "CNSmlDMSettingsAdapter::ParentURI(): end" );
+	return aURI.Left (count);
+	}
+
+//-----------------------------------------------------------------------------------------    
+// Clears the elements of the passed in LeafElement Structure
+//----------------------------------------------------------------------------------------
+void CNSmlDMSettingsAdapter::ClearBuffer(
+		CArrayFixFlat<TNSmlDMLeafElement>* aBuffer)
+	{
+	_DBG_FILE( "CNSmlDMSettingsAdapter::ClearBuffer(): begin" );
+	for (TInt i = 0; i < aBuffer->Count (); i++)
+		{
+		delete aBuffer->At(i).iUri;
+		aBuffer->At(i).iUri = NULL;
+
+		delete aBuffer->At(i).iData;
+		aBuffer->At(i).iData = NULL;
+
+		delete aBuffer->At(i).iLuid;
+		aBuffer->At(i).iLuid = NULL;
+		}
+
+	aBuffer->Reset ();
+	_DBG_FILE( "CNSmlDMSettingsAdapter::ClearBuffer(): end" );
+	}
+// ========================== OTHER EXPORTED FUNCTIONS =========================
+
+#ifndef IMPLEMENTATION_PROXY_ENTRY
+#define IMPLEMENTATION_PROXY_ENTRY(aUid, aFuncPtr)	{{aUid},(aFuncPtr)}
+#endif
+
+const TImplementationProxy ImplementationTable[] = 
+    {
+		IMPLEMENTATION_PROXY_ENTRY( KNSmlDMSettingsAdapterImplUid, CNSmlDMSettingsAdapter::NewL )
+    };
+
+
+// -----------------------------------------------------------------------------
+// TImplementationProxy* ImplementationGroupProxy()
+// -----------------------------------------------------------------------------
+EXPORT_C const TImplementationProxy* ImplementationGroupProxy( TInt& aTableCount )
+    {
+	_DBG_FILE( "ImplementationGroupProxy() for CNSmlDMSettingsAdapter: begin" );
+
+    aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
+
+	_DBG_FILE( "ImplementationGroupProxy() for CNSmlDMSettingsAdapter: end" );
+    return ImplementationTable;
+	}
+
+// End of File
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/syncmldm/src/nsmldmsettingsadapter.rss	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,48 @@
+CHARACTER_SET UTF8/*
+* Copyright (c) 2005 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:    Resource data for Device Management Settings Adapter
+*
+*/
+
+
+
+
+
+#include <registryinfo.rh>
+#include "nsmldmconstants.h"
+
+RESOURCE REGISTRY_INFO theRegistryInfo
+  {
+  dll_uid = 0x101F6DE6; //The DLL's 3rd UID.
+  interfaces = 
+      {
+      INTERFACE_INFO
+          {
+          interface_uid = KNSmlDMInterfaceUid; // DM interface UID
+          implementations = 
+            {
+            IMPLEMENTATION_INFO
+                {
+                implementation_uid = 0x101F6DEC; // DM interface implementation UID
+                version_no = 1; 
+                display_name = "";
+                default_data = "";
+                opaque_data = "";
+                }
+            };
+          }
+      };
+    }
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/syncmldm/tsrc/bwins/syncmldmtestu.def	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,3 @@
+EXPORTS
+	?LibEntryL@@YAPAVCScriptBase@@AAVCTestModuleIf@@@Z @ 1 NONAME ; class CScriptBase * LibEntryL(class CTestModuleIf &)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/syncmldm/tsrc/conf/syncmldmtest.cfg	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,81 @@
+[Test]
+title DDF
+create syncmldmtest foobar jee
+foobar DDFStructure
+delete foobar
+[Endtest] 
+
+[Test]
+title StartAtomic
+create syncmldmtest foobar
+foobar StartAtomic
+delete foobar
+[Endtest]
+
+[Test]
+title CommitAtomic
+create syncmldmtest foobar
+foobar CommitAtomic
+delete foobar
+[Endtest]
+
+[Test]
+title RollbackAtomic
+create syncmldmtest foobar
+foobar RollbackAtomic
+delete foobar
+[Endtest]
+
+[Test]
+title AddDmAcc
+create syncmldmtest foobar
+foobar AddNode SyncML/DMAcc/DMId099
+foobar UpdateLeaf SyncML/DMAcc/DMId099/Name name99
+foobar UpdateLeaf SyncML/DMAcc/DMId099/ServerId server99
+foobar UpdateLeaf SyncML/DMAcc/DMId099/Addr http://a.com
+foobar UpdateLeaf SyncML/DMAcc/DMId099/UserName user99
+foobar CompleteCommands
+delete foobar
+[Endtest]
+
+[Test]
+title UpdateName
+create syncmldmtest foobar
+foobar UpdateLeaf SyncML/DMAcc/DMId099/Name newname99
+delete foobar
+[Endtest]
+
+[Test]
+title UpdateAddr
+create syncmldmtest foobar
+foobar UpdateLeaf SyncML/DMAcc/DMId099/Addr http://b.com
+delete foobar
+[Endtest]
+
+[Test]
+title UpdateUserName
+create syncmldmtest foobar
+foobar UpdateLeaf SyncML/DMAcc/DMId099/UserName user
+delete foobar
+[Endtest]
+
+[Test]
+title FetchNodeDmAcc
+create syncmldmtest foobar
+foobar FetchNode SyncML/DMAcc
+delete foobar
+[Endtest]
+
+[Test]
+title FetchLeafDmAcc
+create syncmldmtest foobar
+foobar FetchLeaf SyncML/DMAcc/DMId099/Name
+delete foobar
+[Endtest]
+
+[Test]
+title DeleteDmAcc
+create syncmldmtest foobar
+foobar DeleteNode SyncML/DMAcc/DMId005
+delete foobar
+[Endtest]
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/syncmldm/tsrc/eabi/syncmldmtestu.def	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,9 @@
+EXPORTS
+	_Z9LibEntryLR13CTestModuleIf @ 1 NONAME
+	_ZTI13Csyncmldmtest @ 2 NONAME ; #<TI>#
+	_ZTI16CTestDmDDFObject @ 3 NONAME ; #<TI>#
+	_ZTI8Cdmatest @ 4 NONAME ; #<TI>#
+	_ZTV13Csyncmldmtest @ 5 NONAME ; #<VT>#
+	_ZTV16CTestDmDDFObject @ 6 NONAME ; #<VT>#
+	_ZTV8Cdmatest @ 7 NONAME ; #<VT>#
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/syncmldm/tsrc/group/bld.inf	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,55 @@
+/*
+* 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.
+*
+*/
+
+
+
+
+
+
+PRJ_PLATFORMS
+// specify the platforms your component needs to be built for here
+// defaults to WINS MARM so you can ignore this if you just build these
+DEFAULT
+
+PRJ_TESTEXPORTS
+// NOTE: If using ARS requirements all export operations should be done under this.
+// 'abld test export'
+
+PRJ_EXPORTS
+// Specify the source file followed by its destination here
+// copy will be used to copy the source file to its destination
+// If there's no destination then the source file will be copied
+// to the same name in /epoc32/include
+// Example: 
+
+
+PRJ_TESTMMPFILES
+// NOTE: If using ARS requirements .mmp file operation should be done under this.
+// 'abld test build'
+syncmldmtest.mmp
+
+PRJ_MMPFILES
+// Specify the .mmp files required for building the important component
+// releasables.
+//
+// Specify "tidy" if the component you need to build doesn't need to be
+// released. Specify "ignore" if the MMP file exists but should be
+// ignored.
+// Example:
+
+//  End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/syncmldm/tsrc/group/syncmldmtest.mmp	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,64 @@
+/*
+* 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 <platform_paths.hrh>
+
+TARGET          syncmldmtest.dll
+TARGETTYPE      dll
+UID             0x1000008D 0x101FB3E3
+
+CAPABILITY	ALL -TCB
+/* Remove comments and replace 0x00000000 with correct vendor id */
+// VENDORID 	0x00000000
+
+//TARGETPATH      ?target_path
+DEFFILE         syncmldmtest.def
+
+SOURCEPATH      ../src
+SOURCE          dmatest.cpp
+SOURCE          TestDmDDFObject.cpp
+SOURCE          syncmldmtest.cpp
+SOURCE          syncmldmtestBlocks.cpp
+
+
+USERINCLUDE     ../inc 
+USERINCLUDE		  ../../inc
+
+SYSTEMINCLUDE   /epoc32/include/ecom
+APP_LAYER_SYSTEMINCLUDE
+
+ 
+
+LIBRARY         apgrfx.lib apmime.lib
+LIBRARY         euser.lib ecom.lib
+LIBRARY         stiftestinterface.lib
+LIBRARY         stiftestengine.lib
+LIBRARY         efsrv.lib
+LIBRARY         estor.lib 
+LIBRARY         SWInstCli.lib
+
+LANG			SC
+
+
+
+SMPSAFE
+// End of File
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/syncmldm/tsrc/group/syncmldmtest.pkg	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,38 @@
+;
+; 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.
+;
+
+;*Languages
+&EN
+;
+;*Standard SIS file header. This section specifies the package name,
+;application UID, and version/build numbers. Add the package TYPE here if needed.
+#{"syncmldmtest"},(0x101FB3E8),1,0,1;
+;
+
+;*Unique (Non-Localised) Vendor name
+;This is used in combination with signing to prevent the unauthroized
+;upgrade ofa a package by someone other than the rightful vendor.
+:"Nokia"
+
+;*Localized Vendor Name
+;This specifies the localised vendor name(s) correspodning to language(s).
+%{"Nokia Test EN"}
+
+;*Files To Copy...<src> <destination>
+"\epoc32\release\armv5\urel\syncmldmtest.dll" -"C:\sys\bin\syncmldmtest.dll"
+"..\conf\syncmldmtest.cfg"-"C:\TestFramework\syncmldmtest.cfg"
+"..\init\syncmldmtest.ini"-"C:\TestFramework\syncmldmtest.ini"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/syncmldm/tsrc/inc/TestDmDDFObject.h	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,203 @@
+/*
+* 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.
+*
+*/
+
+
+
+
+
+
+#ifndef __TESTDMDDFOBJECT_H
+#define __TESTDMDDFOBJECT_H
+
+//  INCLUDES
+//#include <?include_file>
+#include <smldmadapter.h>
+
+// CONSTANTS
+//const ?type ?constant_var = ?constant;
+
+// MACROS
+//#define ?macro ?macro_def
+
+// DATA TYPES
+//enum ?declaration
+//typedef ?declaration
+//extern ?data_type;
+
+// FUNCTION PROTOTYPES
+//?type ?function_name(?arg_list);
+
+// FORWARD DECLARATIONS
+class CStifLogger;
+
+// CLASS DECLARATION
+
+/**
+*  ?one_line_short_description.
+*  ?other_description_lines
+*
+*  @lib ?library
+*  @since Series ?XX ?SeriesXX_version
+*/
+class CTestDmDDFObject : public CBase, public MSmlDmDDFObject
+    {
+    public:  // Constructors and destructor
+        
+        /**
+        * Two-phased constructor.
+        */
+        static CTestDmDDFObject* NewL( CStifLogger *aLog );
+        static CTestDmDDFObject* NewLC( CStifLogger *aLog );
+        
+        /**
+        * Destructor.
+        */
+        virtual ~CTestDmDDFObject();
+
+    public: // New functions
+        
+        /**
+        * ?member_description.
+        * @since Series ?XX ?SeriesXX_version
+        * @param ?arg1 ?description
+        * @return ?description
+        */
+        //?type ?member_function( ?type ?arg1 );
+
+		virtual void SetNameL( const TDesC8& aName );
+		
+		void DumpL( const TDesC8& aParentName, TBool aFullDump = ETrue );
+		void ExternalizeL(RWriteStream& aStream) const;
+		
+		
+
+    public: // Functions from base classes
+    
+//sf-    *********************************
+    
+		void SetAccessTypesL( TSmlDmAccessTypes aAccessTypes );
+		void SetDefaultValueL( const TDesC8& aDefaultValue );
+		void SetDescriptionL( const TDesC8& aDescription );
+		void SetDFFormatL( TDFFormat aFormat );
+		void SetOccurenceL( TOccurence aOccurence );
+		void SetScopeL( TScope aScope );
+		void SetDFTitleL( const TDesC8& aTitle );
+		void AddDFTypeMimeTypeL( const TDesC8& aMimeType );
+		void SetAsObjectGroup();
+		MSmlDmDDFObject& AddChildObjectL(const TDesC8& aNodeName);
+		MSmlDmDDFObject& AddChildObjectGroupL();
+
+//sf-    #############################
+
+		const TDesC8& Name();
+		TSmlDmAccessTypes  AccessTypes();
+		const TDesC8& DefaultValue();
+		const TDesC8& Description();
+		TDFFormat DFFormat();
+		TOccurence Occurence();
+		TScope Scope();
+		const TDesC8& DFTitle();
+		const TDesC8& DFTypeMimeType();
+		TBool ObjectGroup();
+		
+		TInt ChildObjectCount();
+		CTestDmDDFObject& ChildObject( TInt aIndex );
+
+		CTestDmDDFObject* FindChildObject( const TDesC8& aName );
+		TInt SubObjectsCount();
+
+
+    protected:  // New functions
+        
+        /**
+        * ?member_description.
+        * @since Series ?XX ?SeriesXX_version
+        * @param ?arg1 ?description
+        * @return ?description
+        */
+        //?type ?member_function( ?type ?arg1 );
+
+    protected:  // Functions from base classes
+        
+        /**
+        * From ?base_class ?member_description
+        */
+        //?type ?member_function();
+
+    private:
+
+        /**
+        * C++ default constructor.
+        */
+        CTestDmDDFObject( CStifLogger *aLog );
+
+        /**
+        * By default Symbian 2nd phase constructor is private.
+        */
+        void ConstructL();
+
+        // Prohibit copy constructor if not deriving from CBase.
+        // CTestDmDDFObject( const CTestDmDDFObject& );
+        // Prohibit assigment operator if not deriving from CBase.
+        // CTestDmDDFObject& operator=( const CTestDmDDFObject& );
+
+    public:     // Data
+        // ?one_line_short_description_of_data
+        //?data_declaration;
+    
+    protected:  // Data
+        // ?one_line_short_description_of_data
+        //?data_declaration;
+
+    private:    // Data
+        // ?one_line_short_description_of_data
+        //?data_declaration;
+		HBufC8* iName;
+
+		TSmlDmAccessTypes iAccessTypes;
+		HBufC8* iDefaultValue;
+		HBufC8* iDescription;
+		TDFFormat iFormat;
+		TOccurence iOccurence;
+		TScope iScope;
+		HBufC8* iTitle;
+		HBufC8* iMimeType;
+		TBool iObjectGroup;
+		
+		RPointerArray<CTestDmDDFObject> iChildren;
+
+         
+        // Reserved pointer for future extension
+        //TAny* iReserved;
+
+    public:     // Friend classes
+        //?friend_class_declaration;
+    protected:  // Friend classes
+        //?friend_class_declaration;
+    private:    // Friend classes
+        //?friend_class_declaration;
+        /**
+        * Logger.
+        */
+        CStifLogger*    iLog;
+
+    };
+
+#endif      // __TESTDMDDFOBJECT_H
+            
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/syncmldm/tsrc/inc/dmatest.h	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,277 @@
+/*
+* 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.
+*
+*/
+
+
+
+
+
+
+#ifndef __DMA_TEST_H__
+#define __DMA_TEST_H__
+
+//  INCLUDES
+#include <StifLogger.h>
+#include <TestScripterInternal.h>
+#include <StifTestModule.h>
+#include <apmstd.h>
+#include <smldmadapter.h>
+#include "NSmlDMSettingsAdapter.h"
+
+class Cdmatest;
+
+
+struct TMapping
+	{
+	TBuf8<256> iURI;
+	TBuf8<64> iLuid;
+	TMapping( const TDesC8 &aURI, const TDesC8 &aLuid )  : iURI( aURI ), iLuid( aLuid )
+	{
+		
+		}
+	};
+	
+typedef RArray<TMapping> RMappingArray;
+
+typedef void (Cdmatest::* ResultsFunction)( TInt , CBufBase& , const TDesC8&  ) ; 
+
+
+// CLASS DECLARATION
+
+/**
+*  ?one_line_short_description.
+*  ?other_description_lines
+*
+*  @lib ?library
+*  @since Series ?XX ?SeriesXX_version
+*/
+class Cdmatest : public CScriptBase, public MSmlDmCallback
+    {
+    
+    public:  // Constructors and destructor
+        
+        /**
+        * Destructor.
+        */
+        virtual ~Cdmatest();
+
+    public: // Functions from base classes
+
+        /**
+        * From CScriptBase Runs a script line.
+        * @since ?Series60_version
+        * @param aItem Script line containing method name and parameters
+        * @return Symbian OS error code
+        */
+        virtual TInt RunMethodL( CStifItemParser& aItem ) = 0;
+    
+
+	public:
+		/**
+		The function is used to return the data in case of FetchLeafObjectL(),
+		FetchLeafObjectSizeL() and ChildURIListL() functions. It should not be
+		called where the DM command has failed, i.e. the error code returned in
+		SetStatusL is something other than EOk.
+		@param aResultsRef	Reference to correct command
+		@param aObject		The data which should be returned
+		@param aType			MIME type of the object
+		@publishedPartner
+		@prototype
+		*/
+		void SetResultsL( TInt aResultsRef, CBufBase& aObject,
+								  const TDesC8& aType );
+		
+		/**
+		The function is used to return the data in case of FetchLeafObjectL() and
+		ChildURIListL() functions, where the size of the data being returned is
+		large enough for the Adapter to stream it. This function should not be
+		called when command was failed, i.e. the error code returned in SetStatusL
+		is something other than EOk.
+		@param aResultsRef	Reference to correct command
+		@param aStream		Large data which should be returned, DM engine
+								closes stream when it has read all the data
+		@param aType			MIME type of the object
+		@publishedPartner
+		@prototype
+		*/
+		void SetResultsL( TInt /*aResultsRef*/, RReadStream*& /*aStream*/,
+								  const TDesC8& /*aType*/ ) 
+		{
+			
+		}
+
+		/**
+		The function returns information about the Add,Update,Delete and Fetch
+		commands success to DM engine. The reference to correct command must be
+		used when calling the SetStatusL function, the reference is got from the
+		argument of the command functions. The SetStatusL function must be called
+		separately for every single command.
+		@param aStatusRef	Reference to correct command
+		@param aErrorCode	Information about the command success
+		@publishedPartner
+		@prototype
+		*/
+		void SetStatusL( TInt aStatusRef,
+								 MSmlDmAdapter::TError aErrorCode ) ;
+
+		/**
+		The function passes map information to DM Module. This function is called
+		for a new management object, both for node objects and for leaf objects.
+		In addition if ChildURIListL() function has returned new objects a mapping
+		information of the new objects must be passed. A mapping is treated as
+		inheritable. If the mapping is not set with this function, the mapping
+		LUID of the parent object is passed in following commands to the object.
+		@param aURI	URI of the object. 
+		@param aLUID	LUID of the object. LUID must contain the all information,
+						which is needed for retrieve the invidual object from the
+						database. Typically it is ID for the database table. In
+						more complicated structures it can be combination of IDs,
+						which represent path to the object.
+		@publishedPartner
+		@prototype
+		*/
+		void SetMappingL( const TDesC8& aURI, const TDesC8& aLUID );
+
+		/**
+		The function is used to make a fetch to other adapters. The most common
+		use is to make a fetch to the AP adapter, because when managing the access
+		points, the data comes as URI. For example, there are ToNAPId field in
+		some adapters, and data to it can be something like AP/IAPidx, and then
+		the link to AP adapter is needed.
+		Using FetchLinkL causes the DM Framework to make a Get request to the
+		appropriate DM adapter.  The receiving adapter MUST complete the Get
+		request synchronously.
+		@param aURI		URI of the object. 
+		@param aData		Reference to data, i.e. data is returned here
+		@param aStatus	The status of fetch command is returned here
+		@publishedPartner
+		@prototype
+		*/
+		void FetchLinkL( const TDesC8& /*aURI*/, CBufBase& /*aData*/,
+								 MSmlDmAdapter::TError& /*aStatus*/ ) 
+			{
+				
+			}
+
+		/**
+		The function returns the LUID which is mapped to aURI. If LUID is not
+		found, the function allocates a null length string, i.e. the function
+		allocates memory in every case.
+		@param aURI	URI of the object. 
+		@publishedPartner
+		@prototype
+		*/
+		HBufC8* GetLuidAllocL( const TDesC8& aURI ) ;
+
+#ifdef __TARM_SYMBIAN_CONVERGENCY
+    
+    void GetMappingInfoListL( const TDesC8& aURI,
+								CArrayFix<TSmlDmMappingInfo>& aSegmentList );
+
+#else
+// nothing
+#endif
+		        
+    protected:  // New functions
+
+        
+		void FetchNodeResultsL( TInt aResultsRef, CBufBase& aObject,
+							  const TDesC8& aType );
+		void SaveDataL( TInt aResultsRef, CBufBase& aObject,
+							  const TDesC8& aType ) ;
+							  
+		TPtrC8 LastURISeg( const TDesC8& aURI );
+		TPtrC8 RemoveLastURISeg( const TDesC8& aURI );
+		TPtrC RemoveLastURISeg( const TDesC& aURI );
+		void SetURIL( const TDesC& aURI );
+		void SetURIL( const TDesC8& aURI );
+		void SetURIL( HBufC8* aURI );		
+		HBufC8 *LoadFileLC( const TDesC &aFileName, TDataType &aType );
+		HBufC8 *LoadFileLC( const TDesC8 &aFileName, TDataType &aType );
+		HBufC8 *GetNextStringLC ( CStifItemParser& aItem, const TDesC &aName );
+		HBufC8* GetLuidAllocLC( const TDesC8& aURI ) ;
+		TPtrC8 RemoveLastSeg(const TDesC8& aURI);
+		
+		TInt FetchNodeL( CStifItemParser& aItem ) ;
+		TInt FetchLeafL( CStifItemParser& aItem ) ;
+		TInt AddNodeL( CStifItemParser& aItem );
+		TInt DeleteObjectL( CStifItemParser& aItem );	
+		TInt UpdateLeafL( CStifItemParser& aItem )	;
+		TInt UpdateLeafDataL( CStifItemParser& aItem ) ;
+		TInt UpdateLeafDataURLL( CStifItemParser& aItem ) ;
+		
+		TInt ExecuteLeafL ( CStifItemParser& aItem ) ;
+		TInt ExecuteLeafDataL ( CStifItemParser& aItem ) ;
+		TInt StartAtomicL( CStifItemParser& aItem )	;
+		TInt CommitAtomicL( CStifItemParser& aItem )	;
+		TInt RollbackAtomicL( CStifItemParser& aItem )	;
+		TInt CompleteCommandsL( CStifItemParser& aItem );
+		TInt DDFStructureL( CStifItemParser& aItem )	;
+//        TInt DeliverL( CStifItemParser& aItem ) ;
+//        TInt DetailsL( CStifItemParser& aItem ) ;
+//		TInt InstallL( CStifItemParser& aItem ) ;
+//		TInt BareInstallL( CStifItemParser& aItem ) ;		
+
+    protected:
+
+        /**
+        * C++ default constructor.
+        */
+        Cdmatest( CTestModuleIf& aTestModuleIf, TUid aUid );
+
+        /**
+        * By default Symbian 2nd phase constructor is private.
+        */
+        void ConstructL();
+
+        // Prohibit copy constructor if not deriving from CBase.
+        // Cdmatest( const Cdmatest& );
+        // Prohibit assigment operator if not deriving from CBase.
+        // Cdmatest& operator=( const Cdmatest& );
+
+		/**
+        * Frees all resources allocated from test methods.
+        * @since ?Series60_version
+        */
+        virtual void Delete();
+        void LoadMappingsL();
+        void SaveMappingsL();
+    public:     // Data
+        // ?one_line_short_description_of_data
+        //?data_declaration;
+    
+    protected:  // Data
+        // ?one_line_short_description_of_data
+        //?data_declaration;
+		MSmlDmAdapter::TError iStatus ;
+        ResultsFunction iResultsFunction;
+        //CSmlDmAdapter *iAdapter ;
+        CNSmlDMSettingsAdapter *iAdapter ;
+        HBufC8 *iURI; 
+        CArrayFix<TSmlDmMappingInfo> *iEmptyMappingInfoArray;
+		TFileName iSaveFileName;
+		RMappingArray iMappingTable;
+		TUid iUid;
+		TInt iCounter;
+		//class CNSmlDmMgmtTree* iMgmtTree;
+		class CNSmlDmMgmtTree* iMgmtTree;
+		CNSmlDMSettingsAdapter *Adapter() ;
+    };
+
+#endif      // __DMA_TEST_H__
+            
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/syncmldm/tsrc/inc/syncmldmtest.h	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,133 @@
+/*
+* 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.
+*
+*/
+
+
+
+
+
+
+#ifndef TCTEST_H
+#define TCTEST_H
+
+//  INCLUDES
+#include <StifLogger.h>
+#include <TestScripterInternal.h>
+#include <StifTestModule.h>
+#include <smldmadapter.h>
+#include "dmatest.h"
+
+const TUint KNSmlDMSettingsAdapterImplUid = 0x101F6DEC;
+	
+
+const TUid KAdapterUid = 
+		{
+		KNSmlDMSettingsAdapterImplUid
+		};
+// Logging path
+_LIT( KamtestLogPath, "\\logs\\testframework\\tctest\\" ); 
+// Log file
+_LIT( KamtestLogFile, "tctest.txt" ); 
+
+
+// FORWARD DECLARATIONS
+class Csyncmldmtest;
+
+
+// CLASS DECLARATION
+
+/**
+*  Csyncmldmtest test class for STIF Test Framework TestScripter.
+*  ?other_description_lines
+*
+*  @lib ?library
+*  @since ?Series60_version
+*/
+class Csyncmldmtest : public Cdmatest
+    {
+    public:  // Constructors and destructor
+        
+        /**
+        * Two-phased constructor.
+        */
+        static Csyncmldmtest* NewL( CTestModuleIf& aTestModuleIf );
+        
+        /**
+        * Destructor.
+        */
+        virtual ~Csyncmldmtest();
+
+    public: // Functions from base classes
+
+        /**
+        * From CScriptBase Runs a script line.
+        * @since ?Series60_version
+        * @param aItem Script line containing method name and parameters
+        * @return Symbian OS error code
+        */
+        virtual TInt RunMethodL( CStifItemParser& aItem );
+                
+
+    private:
+
+        /**
+        * C++ default constructor.
+        */
+        Csyncmldmtest( CTestModuleIf& aTestModuleIf );
+
+        /**
+        * By default Symbian 2nd phase constructor is private.
+        */
+        void ConstructL();
+
+        // Prohibit copy constructor if not deriving from CBase.
+        // ?classname( const ?classname& );
+        // Prohibit assigment operator if not deriving from CBase.
+        // ?classname& operator=( const ?classname& );
+    
+        /**
+        * Frees all resources allocated from test methods.
+        * @since ?Series60_version
+        */
+        virtual void Delete();
+        
+        /**
+        * Test methods are listed below. 
+        */
+        
+        /**
+        * Example test method.
+        * @since ?Series60_version
+        * @param aItem Script line containing parameters.
+        * @return Symbian OS error code.
+        */
+/*        virtual TInt ExampleL( CStifItemParser& aItem ) ;
+        virtual TInt DeliverL( CStifItemParser& aItem ) ;
+        virtual TInt DetailsL( CStifItemParser& aItem ) ;
+		    virtual TInt InstallL( CStifItemParser& aItem ) ;
+		    virtual TInt BareInstallL( CStifItemParser& aItem ) ;*/
+		
+
+    private:    // Data
+        HBufC8 *GetNextStringLC ( CStifItemParser& aItem, const TDesC &aName );
+
+
+    };
+
+#endif      // TCTEST_H
+            
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/syncmldm/tsrc/init/syncmldmtest.ini	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,204 @@
+#
+# This is STIF initialization file
+# Comment lines start with '#'-character.
+# See STIF TestFramework users guide.doc for instructions
+
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+# Set following test engine settings:
+#	- Set Test Reporting mode. TestReportMode's possible values are:
+#		+ 'Summary': Summary of the tested test cases.
+#		+ 'Environment': Hardware and software info.
+#		+ 'TestCases': Test case report.
+#		+ 'FullReport': Set of all above ones.
+#		+ Example 'TestReportMode= Summary TestCases'
+#
+# 	- CreateTestReport setting controls report creation mode
+#		+ YES, Test report will created.
+#		+ NO, No Test report.
+#
+# 	- File path indicates the base path of the test report.
+# 	- File name indicates the name of the test report.
+#
+# 	- File format indicates the type of the test report.
+#		+ TXT, Test report file will be txt type, for example 'TestReport.txt'.
+#		+ HTML, Test report will be html type, for example 'TestReport.html'.
+#
+# 	- File output indicates output source of the test report.
+#		+ FILE, Test report logging to file.
+#		+ RDEBUG, Test report logging to using rdebug.
+#
+# 	- File Creation Mode indicates test report overwriting if file exist.
+#		+ OVERWRITE, Overwrites if the Test report file exist.
+#		+ APPEND, Continue logging after the old Test report information if
+#                 report exist.
+# 	- Sets a device reset module's dll name(Reboot).
+#		+ If Nokia specific reset module is not available or it is not correct one
+#		  StifHWResetStub module may use as a template for user specific reset
+#		  module.
+# 	- Sets STIF test measurement disable options. e.g. pluging1 and pluging2 disablation
+#		DisableMeasurement= stifmeasurementplugin01 stifmeasurementplugin02
+#
+
+[Engine_Defaults]
+
+TestReportMode= FullReport    # Possible values are: 'Empty', 'Summary', 'Environment',
+                                                     'TestCases' or 'FullReport'
+
+CreateTestReport= YES         # Possible values: YES or NO
+
+TestReportFilePath= C:\LOGS\TestFramework\
+TestReportFileName= TestReport
+
+TestReportFormat= TXT         # Possible values: TXT or HTML
+TestReportOutput= FILE        # Possible values: FILE or RDEBUG
+TestReportFileCreationMode= OVERWRITE # Possible values: OVERWRITE or APPEND
+
+DeviceResetDllName= StifResetForNokia.dll # e.g. 'StifHWResetStub.dll' for user specific reseting
+
+DisableMeasurement= stifmeasurementdisablenone  # Possible values are:
+              # 'stifmeasurementdisablenone', 'stifmeasurementdisableall'
+              # 'stifmeasurementplugin01', 'stifmeasurementplugin02',
+              # 'stifmeasurementplugin03', 'stifmeasurementplugin04',
+              # 'stifmeasurementplugin05' or 'stifbappeaprofiler'
+
+Timeout= 0                    # Default timeout value for each test case. In milliseconds
+#UITestingSupport= YES        # Possible values: YES or NO
+#SeparateProcesses= YES       # Possible values: YES or NO (default: NO)
+[End_Defaults]
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+
+
+
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+# Module configurations start
+# Modules are added between module tags
+# tags. Module name is specified after ModuleName= tag, like
+# ModuleName= XXXXXXXXX
+# Modules might have initialisation file, specified as
+# IniFile= c:\testframework\YYYYYY
+# Modules might have several configuration files, like
+# TestCaseFile= c:\testframework\NormalCases.txt
+# TestCaseFile= c:\testframework\SmokeCases.txt
+# TestCaseFile= c:\testframework\ManualCases.txt
+
+# (TestCaseFile is synonym for old term ConfigFile)
+
+# Following case specifies demo module settings. Demo module
+# does not read any settings from file, so tags 
+# IniFile and TestCaseFile are not used.
+# In the simplest case it is enough to specify only the
+# name of the test module when adding new test module
+
+#[New_Module]
+#ModuleName= demomodule
+#[End_Module]
+
+
+[New_Module]
+ModuleName= testscripter
+#DM
+TestCaseFile= c:\testframework\syncmldmtest.cfg
+[End_Module]
+
+
+# Load testmoduleXXX, optionally with initialization file and/or test case files
+#[New_Module]
+#ModuleName= testmodulexxx
+
+#TestModuleXXX used initialization file
+#IniFile= c:\testframework\init.txt
+
+#TestModuleXXX used configuration file(s)
+#TestCaseFile= c:\testframework\testcases1.cfg
+#TestCaseFile= c:\testframework\testcases2.cfg
+#TestCaseFile= c:\testframework\manualtestcases.cfg
+
+#[End_Module]
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+
+
+
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+# Set STIF logging overwrite parameters for Logger.
+# 	Hardware and emulator environment logging path and styles can
+# 	be configured from here to overwrite the Logger's implemented values.
+#	
+#	Settings description:
+#	- Indicates option for creation log directory/directories. If log directory/directories
+#         is/are not created by user they will make by software.
+#		+ YES, Create log directory/directories if not allready exist.
+#		+ NO, Log directory/directories not created. Only created one is used.
+#
+#	- Overwrite emulator path setting.
+#		+ Example: If 'EmulatorBasePath= C:\LOGS\TestFramework\' and in code is defined 
+#		           Logger's path 'D:\\LOGS\\Module\\' with those definition the path
+#		           will be 'C:\LOGS\TestFramework\LOGS\Module\'
+#
+#	- Overwrite emulator's logging format.
+#		+ TXT, Log file(s) will be txt type(s), for example 'Module.txt'.
+#		+ HTML, Log file(s) will be html type(s), for example 'Module.html'.
+#
+#	- Overwrited emulator logging output source.
+#		+ FILE, Logging to file(s).
+#		+ RDEBUG, Logging to using rdebug(s).
+#
+#	- Overwrite hardware path setting (Same description as above in emulator path).
+#	- Overwrite hardware's logging format(Same description as above in emulator format).
+#	- Overwrite hardware's logging output source(Same description as above in emulator output).
+#
+#	- File Creation Mode indicates file overwriting if file exist.
+#		+ OVERWRITE, Overwrites if file(s) exist.
+#		+ APPEND, Continue logging after the old logging information if file(s) exist.
+#
+#	- Will thread id include to the log filename.
+#		+ YES, Thread id to log file(s) name, Example filename 'Module_b9.txt'.
+#		+ NO, No thread id to log file(s), Example filename 'Module.txt'.
+#
+#	- Will time stamps include the to log file.
+#		+ YES, Time stamp added to each line in log file(s). Time stamp is 
+#                 for example'12.Nov.2003 115958    LOGGING INFO'
+#		+ NO, No time stamp(s).
+#
+#	- Will line breaks include to the log file.
+#		+ YES, Each logging event includes line break and next log event is in own line.
+#		+ NO, No line break(s).
+#
+#	- Will event ranking include to the log file.
+#		+ YES, Event ranking number added to each line in log file(s). Ranking number
+#                 depends on environment's tics, for example(includes time stamp also)
+#                 '012   12.Nov.2003 115958    LOGGING INFO'
+#		+ NO, No event ranking.
+#
+#	- Will write log file in unicode format.
+#		+ YES, Log file will be written in unicode format
+#		+ NO, Log will be written as normal, not unicode, file.
+#
+
+[Logger_Defaults]
+
+#NOTE: If you want to set Logger using next setting(s) remove comment(s)'#'
+#NOTE: TestEngine and TestServer logging settings cannot change here
+
+#CreateLogDirectories= YES    # Possible values: YES or NO
+
+#EmulatorBasePath= C:\LOGS\TestFramework\
+#EmulatorFormat= HTML         # Possible values: TXT or HTML
+#EmulatorOutput= FILE         # Possible values: FILE or RDEBUG
+
+#HardwareBasePath= D:\LOGS\TestFramework\
+#HardwareFormat= HTML         # Possible values: TXT or HTML
+#HardwareOutput= FILE         # Possible values: FILE or RDEBUG
+
+#FileCreationMode= OVERWRITE  # Possible values: OVERWRITE or APPEND
+
+#ThreadIdToLogFile= YES       # Possible values: YES or NO
+#WithTimeStamp= YES           # Possible values: YES or NO
+#WithLineBreak= YES           # Possible values: YES or NO
+#WithEventRanking= YES        # Possible values: YES or NO
+
+#FileUnicode= YES             # Possible values: YES or NO
+#AddTestCaseTitle= YES        # Possible values: YES or NO
+[End_Logger_Defaults]
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+
+# End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/syncmldm/tsrc/src/TestDmDDFObject.cpp	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,516 @@
+/*
+* 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 "TestDmDDFObject.h"
+#include "StifLogger.h"
+
+// EXTERNAL DATA STRUCTURES
+//extern  ?external_data;
+
+// EXTERNAL FUNCTION PROTOTYPES  
+//extern ?external_function( ?arg_type,?arg_type );
+
+// CONSTANTS
+//const ?type ?constant_var = ?constant;
+
+// MACROS
+//#define ?macro ?macro_def
+
+// LOCAL CONSTANTS AND MACROS
+//const ?type ?constant_var = ?constant;
+//#define ?macro_name ?macro_def
+
+// MODULE DATA STRUCTURES
+//enum ?declaration
+//typedef ?declaration
+
+// LOCAL FUNCTION PROTOTYPES
+//?type ?function_name( ?arg_type, ?arg_type );
+
+// FORWARD DECLARATIONS
+//class ?FORWARD_CLASSNAME;
+
+// ============================= LOCAL FUNCTIONS ===============================
+
+
+
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CTestDmDDFObject::CTestDmDDFObject
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// -----------------------------------------------------------------------------
+//
+CTestDmDDFObject::CTestDmDDFObject( CStifLogger *aLog )
+	: iName( 0 )
+	, iAccessTypes()
+	, iDefaultValue( 0 )
+	, iDescription( 0 )
+	, iFormat( (TDFFormat)0 )
+	, iOccurence( (TOccurence)0 )
+	, iScope( (TScope)0 )
+	, iTitle ( 0 )
+	, iMimeType( 0 )
+	, iObjectGroup( EFalse )
+	, iLog( aLog )
+//	RPointerArray<CTestDmDDFObject> iChildren;
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CTestDmDDFObject::ConstructL
+// Symbian 2nd phase constructor can leave.
+// -----------------------------------------------------------------------------
+//
+void CTestDmDDFObject::ConstructL()
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CTestDmDDFObject::NewL
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CTestDmDDFObject* CTestDmDDFObject::NewL( CStifLogger *aLog )
+    {
+    CTestDmDDFObject* self = CTestDmDDFObject::NewLC( aLog );
+    CleanupStack::Pop( self );
+
+    return self;
+    }
+
+CTestDmDDFObject* CTestDmDDFObject::NewLC( CStifLogger *aLog )
+    {
+    CTestDmDDFObject* self = new( ELeave ) CTestDmDDFObject( aLog );
+    
+    CleanupStack::PushL( self );
+    self->ConstructL();
+
+    return self;
+    }
+
+    
+// Destructor
+CTestDmDDFObject::~CTestDmDDFObject()
+    {
+	delete iName;
+	delete iDefaultValue;
+	delete iDescription;
+	delete iTitle;
+	delete iMimeType;
+	iChildren.ResetAndDestroy();
+    }
+
+
+// -----------------------------------------------------------------------------
+// CTestDmDDFObject::?member_function
+// ?implementation_description
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+/*?type CTestDmDDFObject::?member_function(
+    ?arg_type arg,
+    ?arg_type arg )
+    {
+    
+    ?code
+    
+    }
+*/
+
+void CTestDmDDFObject::SetAccessTypesL( TSmlDmAccessTypes aAccessTypes )
+	{
+	iLog->Log( _L8( "SetAccessTypesL, aAccessTypes=%d" ), aAccessTypes.GetACL() );
+	iAccessTypes = aAccessTypes;
+	}
+
+void CTestDmDDFObject::SetDefaultValueL( const TDesC8& aDefaultValue )
+	{
+	iLog->Log( _L8( "SetDefaultValueL, aDefaultValue='%S'" ), &aDefaultValue );
+	delete iDefaultValue;
+	iDefaultValue = 0;
+	iDefaultValue = aDefaultValue.AllocL();
+	}
+
+void CTestDmDDFObject::SetDescriptionL( const TDesC8& aDescription )
+	{
+	iLog->Log( _L8( "SetDescriptionL, aDescription='%S'" ), &aDescription );
+	delete iDescription;
+	iDescription = 0;
+	iDescription = aDescription.AllocL();
+	}
+	
+void CTestDmDDFObject::SetDFFormatL( TDFFormat aFormat )
+	{
+	iLog->Log( _L8( "SetDFFormatL, aFormat=%d" ), aFormat );
+	iFormat = aFormat;
+	}
+	
+void CTestDmDDFObject::SetOccurenceL( TOccurence aOccurence )
+	{
+	iLog->Log( _L8( "SetOccurenceL, aOccurence=%d" ), aOccurence );
+	iOccurence = aOccurence;
+	}
+	
+void CTestDmDDFObject::SetScopeL( TScope aScope )
+	{
+	iLog->Log( _L8( "SetScopeL, aScope=%d" ), aScope );
+	iScope = aScope;
+	}
+	
+void CTestDmDDFObject::SetDFTitleL( const TDesC8& aTitle )
+	{
+	iLog->Log( _L8( "SetDFTitleL, aTitle='%S'" ), &aTitle );
+	delete iTitle;
+	iTitle = 0;
+	iTitle = aTitle.AllocL();
+	}
+	
+void CTestDmDDFObject::AddDFTypeMimeTypeL( const TDesC8& aMimeType )
+	{
+	iLog->Log( _L8( "AddDFTypeMimeTypeL, aMimeType='%S'" ), &aMimeType );
+	delete iMimeType;
+	iMimeType = 0;
+	iMimeType = aMimeType.AllocL();
+	}
+	
+void CTestDmDDFObject::SetAsObjectGroup()
+	{
+	iLog->Log( _L8( "SetAsObjectGroup, true" ) );
+	iObjectGroup = ETrue;
+	}
+	
+MSmlDmDDFObject& CTestDmDDFObject::AddChildObjectL(const TDesC8& aNodeName)
+	{
+	iLog->Log( _L8( "AddChildObjectL, aNodeName='%S'" ), &aNodeName );
+	CTestDmDDFObject* child = CTestDmDDFObject::NewLC( iLog ); //, aNodeName );
+	child->SetNameL( aNodeName );
+	iChildren.AppendL( child );
+	CleanupStack::Pop( child ); // Don't destroy
+	return *child;
+	}
+
+MSmlDmDDFObject& CTestDmDDFObject::AddChildObjectGroupL()
+	{
+	iLog->Log( _L8( "AddChildObjectGroupL, ''" ) );
+	CTestDmDDFObject* child = CTestDmDDFObject::NewLC( iLog ); //, KNullDesC );
+	child->SetAsObjectGroup();
+	iChildren.AppendL( child );
+	CleanupStack::Pop( child ); // Don't destroy
+	return *child;
+	}
+
+// Own functions
+
+void CTestDmDDFObject::SetNameL( const TDesC8& aName )
+	{
+	delete iName;
+	iName = 0;
+	iName = aName.AllocL();
+	}
+
+void CTestDmDDFObject::DumpL( const TDesC8& aParentName, TBool aFullDump )
+	{
+	TPtrC8 name( _L8("<X>") );
+	if (iName && iName->Length() > 0)
+		{
+		name.Set( *iName );
+		}
+
+	HBufC8* fullName = HBufC8::NewLC( aParentName.Length() + name.Length() + 1 );
+	*fullName = aParentName;
+	if (aParentName.Length() > 0 && aParentName[ aParentName.Length() - 1 ] != '/')
+		{
+		fullName->Des().Append( _L8("/"));
+		}
+	fullName->Des().Append( name );
+
+	/* Translate some members to text for dumping */
+	TBuf8<20> strAccessTypes;
+	TUint8 accessTypes = iAccessTypes.GetACL();
+	if ((accessTypes & iAccessTypes.EAccessType_Add) != 0)
+		{
+		strAccessTypes.Append( _L8("A") );
+		}
+	if ((accessTypes & iAccessTypes.EAccessType_Copy) != 0)
+		{
+		strAccessTypes.Append( _L8("C") );
+		}
+	if ((accessTypes & iAccessTypes.EAccessType_Delete) != 0)
+		{
+		strAccessTypes.Append( _L8("D") );
+		}
+	if ((accessTypes & iAccessTypes.EAccessType_Exec) != 0)
+		{
+		strAccessTypes.Append( _L8("E") );
+		}
+	if ((accessTypes & iAccessTypes.EAccessType_Get) != 0)
+		{
+		strAccessTypes.Append( _L8("G") );
+		}
+	if ((accessTypes & iAccessTypes.EAccessType_Replace) != 0)
+		{
+		strAccessTypes.Append( _L8("R") );
+		}
+	
+	TBuf8<20> strFormat;
+	switch( iFormat )
+		{
+	case EB64:
+		strFormat = _L8("Base64");
+		break;
+	case EBool:
+		strFormat = _L8("Bool");
+		break;
+	case EChr:
+		strFormat = _L8("Chr");
+		break;
+	case EInt:
+		strFormat = _L8("Int");
+		break;
+	case ENode:
+		strFormat = _L8("Node");
+		break;
+	case ENull:
+		strFormat = _L8("Null");
+		break;
+	case EXml:
+		strFormat = _L8("Xml");
+		break;
+	case EBin:
+		strFormat = _L8("Bin");
+		break;
+	default:
+		break;
+		}
+
+
+	TBuf8<20> strOccurence;
+	switch( iOccurence )
+		{
+	case EOne:
+		/** The node appears exactly once */
+		strOccurence = _L8("M:1");
+		break;
+	case EZeroOrOne:
+		/** The node is optional and may appear zero or once */
+		strOccurence = _L8("O:0-1");
+		break;
+	case EZeroOrMore:
+		/** The node is optional and may appear zero or more times */
+		strOccurence = _L8("O:0-*");
+		break;
+	case EOneOrMore:
+		/** The node is mandatory and may appear once or more times */
+		strOccurence = _L8("M:1-*");
+		break;
+	case EZeroOrN:
+		/** The node is optional and may appear between once and 'N' times */
+		strOccurence = _L8("O:1-N");
+		break;
+	case EOneOrN:
+		/** The node is mandatory and may appear between once and 'N' times */
+		strOccurence = _L8("M:1-N");
+		break;
+	default:
+		break;
+		}
+	
+	
+	TBuf8<20> strScope;
+	switch( iScope)
+		{
+	case EPermanent:
+		/** The node appears exactly once */
+		strScope = _L8("Permanent");
+		break;
+	case EDynamic:
+		/** The node is optional and may appear zero or once */
+		strScope = _L8("O:Dynamic");
+		break;
+	default:
+		break;
+		}
+
+	
+	/* Dump main data */
+	if (aFullDump)
+		{
+		iLog->Log( _L8( "DDFObject: '%S'" ), fullName );
+		}
+		else
+		{
+		iLog->Log( _L8( "DDFObject: '%S'   (%S), %S, %S, %S" ),
+					fullName, &strAccessTypes, &strFormat, &strOccurence, &strScope );
+		}
+	
+	/* Dump members */
+	if (aFullDump)
+		{
+		TPtrC8 empty( _L8( "<null>" ) );
+		#define CHK_NULL(a) ((a)==0?(TDesC8*)(&empty):(TDesC8*)(a))
+
+		iLog->Log( _L8( "    iName=='%S'" ), iName );
+		iLog->Log( _L8( "    iAccessTypes=%d (%S)" ), iAccessTypes.GetACL(), &strAccessTypes );
+		iLog->Log( _L8( "    iDefaultValue='%S'" ), CHK_NULL(iDefaultValue));
+		iLog->Log( _L8( "    iDescription='%S'" ), CHK_NULL(iDescription ));
+		iLog->Log( _L8( "    iFormat=%d (%S)" ), iFormat, &strFormat );
+		iLog->Log( _L8( "    iOccurence=%d (%S)" ), iOccurence, &strOccurence );
+		iLog->Log( _L8( "    iScope=%d (%S)" ), iScope, &strScope );
+		iLog->Log( _L8( "    iTitle='%S'" ), CHK_NULL(iTitle ));
+		iLog->Log( _L8( "    iMimeType='%S'" ), CHK_NULL(iMimeType ));
+		iLog->Log( _L8( "----------------------------------" ) );
+		}
+	
+	/* Dump children */
+	for (TInt i = 0 ; i < iChildren.Count() ; i++)
+		{
+		iChildren[i]->DumpL( *fullName, aFullDump );
+		}
+
+	CleanupStack::PopAndDestroy( fullName );
+	}
+
+/*
+void CTestDmDDFObject::ExternalizeL(RWriteStream& aStream) const
+	{
+	X;
+	aStream << *iName << eol;
+	}
+*/
+
+const TDesC8& CTestDmDDFObject::Name()
+	{
+	return (iName != 0) ? *iName : KNullDesC8();
+	}
+
+TSmlDmAccessTypes  CTestDmDDFObject::AccessTypes()
+	{
+	return iAccessTypes;
+	}
+
+const TDesC8& CTestDmDDFObject::DefaultValue()
+	{
+	return (iDefaultValue != 0) ? *iDefaultValue : KNullDesC8();
+	}
+
+const TDesC8& CTestDmDDFObject::Description()
+	{
+	return (iDescription != 0) ? *iDescription : KNullDesC8();
+	}
+
+CTestDmDDFObject::TDFFormat CTestDmDDFObject::DFFormat()
+	{
+	return iFormat;
+	}
+
+CTestDmDDFObject::TOccurence CTestDmDDFObject::Occurence()
+	{
+	return iOccurence;
+	}
+
+CTestDmDDFObject::TScope CTestDmDDFObject::Scope()
+	{
+	return iScope;
+	}
+
+const TDesC8& CTestDmDDFObject::DFTitle()
+	{
+	return (iTitle != 0) ? *iTitle : KNullDesC8();
+	}
+
+const TDesC8& CTestDmDDFObject::DFTypeMimeType()
+	{
+	return (iMimeType != 0) ? *iMimeType : KNullDesC8();
+	}
+
+TBool CTestDmDDFObject::ObjectGroup()
+	{
+	return iObjectGroup;
+	}
+
+TInt CTestDmDDFObject::ChildObjectCount()
+	{
+	return iChildren.Count();
+	}
+
+CTestDmDDFObject& CTestDmDDFObject::ChildObject( TInt aIndex )
+	{
+	return *iChildren[aIndex];
+	}
+
+CTestDmDDFObject* CTestDmDDFObject::FindChildObject( const TDesC8& aName )
+	{
+	CTestDmDDFObject* foundObject = 0;
+
+	for (TInt i = 0 ; i < iChildren.Count() ; i++)
+		{
+		if ( aName.CompareC( iChildren[i]->Name() ) == 0 )
+			{
+			foundObject = iChildren[i];
+			break;
+			}
+		}
+
+	return foundObject;
+	}
+
+TInt CTestDmDDFObject::SubObjectsCount()
+	{
+	TInt count = 0;
+
+	TInt i;
+	for (i = 0 ; i < iChildren.Count() ; i++)
+		{
+		count += iChildren[i]->SubObjectsCount();
+		}
+	count += i;
+
+	return count;
+	}
+
+/*
+// ========================== OTHER EXPORTED FUNCTIONS =========================
+
+// -----------------------------------------------------------------------------
+// ?function_name implements...
+// ?implementation_description.
+// Returns: ?value_1: ?description
+//          ?value_n: ?description
+//                    ?description
+// -----------------------------------------------------------------------------
+//
+?type  ?function_name(
+    ?arg_type arg,  // ?description
+    ?arg_type arg )  // ?description
+    {
+
+    ?code
+
+    }
+*/
+//  End of File  
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/syncmldm/tsrc/src/dmatest.cpp	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,954 @@
+/*
+* 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 );
+		}
+    }
+    
+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<TSmlDmMappingInfo>& /*aSegmentList*/ )
+	{
+	// do nothing
+	}								
+
+#else
+// nothing
+#endif
+//***************************************************************************
+//  End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/syncmldm/tsrc/src/syncmldmtest.cpp	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,117 @@
+/*
+* 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 <Stiftestinterface.h>
+#include "syncmldmtest.h"
+#include <stiflogger.h>
+
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// Csyncmldmtest::Csyncmldmtest
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// -----------------------------------------------------------------------------
+//
+/*Csyncmldmtest::Csyncmldmtest( 
+    CTestModuleIf& aTestModuleIf ):
+        CScriptBase( aTestModuleIf )
+    {
+    }*/
+Csyncmldmtest::Csyncmldmtest( CTestModuleIf& aTestModuleIf )
+		: Cdmatest( aTestModuleIf, KAdapterUid )
+    {
+    }
+// -----------------------------------------------------------------------------
+// Csyncmldmtest::ConstructL
+// Symbian 2nd phase constructor can leave.
+// -----------------------------------------------------------------------------
+//
+void Csyncmldmtest::ConstructL()
+    {
+/*    iLog = CStifLogger::NewL( KamtestLogPath, 
+                          KamtestLogFile,
+                          CStifLogger::ETxt,
+                          CStifLogger::EFile,
+                          EFalse );*///Commented the Part for syncmldmtest Dipak
+    iLog = CStifLogger::NewL( KamtestLogPath, 
+                          KamtestLogFile,
+                          CStifLogger::ETxt,
+                          CStifLogger::EFile );
+                          
+    iLog->Log( _L( "Loading Adapter" ) );
+    
+	Cdmatest::ConstructL();                         	
+
+    }
+
+// -----------------------------------------------------------------------------
+// Csyncmldmtest::NewL
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+Csyncmldmtest* Csyncmldmtest::NewL( 
+    CTestModuleIf& aTestModuleIf )
+    {
+    Csyncmldmtest* self = new (ELeave) Csyncmldmtest( aTestModuleIf );
+    
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop();
+
+    return self;
+    
+    }
+    
+// Destructor
+Csyncmldmtest::~Csyncmldmtest()
+    { 
+    
+    // Delete resources allocated from test methods
+//    Delete();
+    
+    // Delete logger
+//    delete iLog;  
+    
+    }
+
+// ========================== OTHER EXPORTED FUNCTIONS =========================
+
+// -----------------------------------------------------------------------------
+// LibEntryL is a polymorphic Dll entry point.
+// Returns: CScriptBase: New CScriptBase derived object
+// -----------------------------------------------------------------------------
+//
+EXPORT_C CScriptBase* LibEntryL( 
+    CTestModuleIf& aTestModuleIf ) // Backpointer to STIF Test Framework
+    {
+    
+    return ( CScriptBase* ) Csyncmldmtest::NewL( aTestModuleIf );
+        
+    }
+
+
+    
+//  End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/syncmldm/tsrc/src/syncmldmtestBlocks.cpp	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,110 @@
+/*
+* 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 <e32svr.h>
+#include <StifParser.h>
+#include <Stiftestinterface.h>
+#include "syncmldmtest.h"
+#include <e32math.h>
+#include <f32file.h>
+#include <swinstapi.h>
+
+
+//using namespace NApplicationManagement;//Dipak
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// Csyncmldmtest::Delete
+// Delete here all resources allocated and opened from test methods. 
+// Called from destructor. 
+// -----------------------------------------------------------------------------
+//
+void Csyncmldmtest::Delete() 
+    {
+    
+    }
+    
+// -----------------------------------------------------------------------------
+// Csyncmldmtest::RunMethodL
+// Run specified method. Contains also table of test mothods and their names.
+// -----------------------------------------------------------------------------
+//
+TInt Csyncmldmtest::RunMethodL( 
+    CStifItemParser& aItem ) 
+    {
+   
+    TStifFunctionInfo const KFunctions[] =
+        {  
+        // Copy this line for every implemented function.
+        // First string is the function name used in TestScripter script file.
+        // Second is the actual implementation member function. 
+        ENTRY( "DDFStructure", Csyncmldmtest::DDFStructureL),
+        ENTRY( "FetchNode", Csyncmldmtest::FetchNodeL ),
+        ENTRY( "FetchLeaf", Csyncmldmtest::FetchLeafL ),
+        ENTRY( "AddNode", Csyncmldmtest::AddNodeL ),
+        ENTRY( "UpdateLeaf", Csyncmldmtest::UpdateLeafL ),
+        ENTRY( "UpdateLeafData", Csyncmldmtest::UpdateLeafDataL ),
+        ENTRY( "Execute", Csyncmldmtest::ExecuteLeafL ),
+        ENTRY( "ExecuteData", Csyncmldmtest::ExecuteLeafDataL ),
+        ENTRY( "DeleteNode", Csyncmldmtest::DeleteObjectL ),
+        ENTRY( "StartAtomic", Csyncmldmtest::StartAtomicL),
+	    ENTRY( "CommitAtomic", Csyncmldmtest::CommitAtomicL),
+	    ENTRY( "RollbackAtomic", Csyncmldmtest::RollbackAtomicL),
+	    ENTRY( "CompleteCommands", Csyncmldmtest::CompleteCommandsL),
+        };
+
+    const TInt count = sizeof( KFunctions ) / 
+                        sizeof( TStifFunctionInfo );
+
+    return RunInternalL( KFunctions, count, aItem );
+
+    }    
+
+        
+        
+HBufC8 *Csyncmldmtest::GetNextStringLC ( CStifItemParser& aItem, const TDesC &aName )
+	{
+	TPtrC nodename;
+	nodename.Set( 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;
+	}
+	
+ 
+
+//  End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/syncmldm12/bld/bld.inf	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,26 @@
+/*
+* Copyright (c) 2002 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:    build info file for SyncML DM settings adapter
+*
+*/
+
+
+
+
+PRJ_MMPFILES
+./nsmldmsettingsadapter12.mmp
+
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/syncmldm12/bld/nsmldmsettingsadapter12.mmp	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,51 @@
+/*
+* Copyright (c) 2005 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:    DM-settings adapter
+*
+*/
+
+
+
+
+#include "defaultcaps.hrh"
+#include  <platform_paths.hrh>
+
+TARGET          nsmldmsettingsadapter12.dll
+TARGETTYPE      PLUGIN
+UID             0x10009D8D 0x10282CE7
+VENDORID        VID_DEFAULT
+CAPABILITY      CAP_ECOM_PLUGIN
+
+APP_LAYER_SYSTEMINCLUDE
+SYSTEMINCLUDE 	/epoc32/include/ecom
+
+SOURCEPATH      ../src
+USERINCLUDE     ../inc ../../inc
+
+SOURCE          NSmlDmSettingsAdapter12.cpp
+
+
+START RESOURCE 	nsmldmsettingsadapter12.rss
+END
+
+LIBRARY         euser.lib ecom.lib charconv.lib nsmldebug.lib
+LIBRARY         nsmldmiapmatcher.lib
+LIBRARY         syncmlclientapi.lib
+LIBRARY         nsmltransporthandler.lib
+LIBRARY         nsmlprivateapi.lib
+LIBRARY			featmgr.lib
+
+
+SMPSAFE
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/syncmldm12/inc/NSmlDMSettingsAdapter12.h	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,1021 @@
+/*
+* Copyright (c) 2005 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:    DM Settings adapter header file
+*
+*/
+
+
+
+
+#ifndef __NSMLDMSETTINGSADAPTER12_H__
+#define __NSMLDMSETTINGSADAPTER12_H__
+
+
+// INCLUDES
+#include <utf.h>
+#include <smldmadapter.h>
+#include <SyncMLClientDM.h>
+#include "NSmlPrivateAPI.h"
+
+// CONSTANTS
+const TInt KNSmlDMGranularity = 4;
+const TUint8 KNSmlDMColon = ':';
+const TUint8 KNSmlDMUriSeparator = '/';
+const TInt KPortMaxSize = 65535;
+const TInt KPortMinSize = 0;
+//Dynamic Node Posn Const --> DMAcc/DMIDxxx
+const TInt KDynNodePosn = 2;
+
+_LIT8( KNSmlTrueVal, "1" );
+_LIT8( KNSmlFalseVal, "0" );
+_LIT8( KNSmlHTTPAuth, 		"NSmlHTTPAuth" );
+_LIT8( KNSmlHTTPUsername,	"NSmlHTTPUsername" );
+_LIT8( KNSmlHTTPPassword, 	"NSmlHTTPPassword" );
+
+
+//DDF accepted DM-fieldnames
+_LIT8( KNSmlDdfId,				"Id" );
+_LIT8( KNSmlDdfAppId,				"AppID" );
+_LIT8( KNSmlDdfServerId,		"ServerID" );
+_LIT8( KNSmlDdfName,			"Name" );
+_LIT8( KNSmlDdfPrefConRef,			"PrefConRef" );
+_LIT8( KNSmlDdfToConRef,			"ToConRef" );
+_LIT8( KNSmlDdfConRef,			"ConRef" );
+_LIT8( KNSmlDdfAppAddr,			"AppAddr" );
+_LIT8( KNSmlDdfAddr,			"Addr" );
+_LIT8( KNSmlDdfAddrType,		"AddrType" );
+_LIT8( KNSmlDdfPort,			"Port" );
+_LIT8( KNSmlDdfPortNbr,			"PortNbr" );
+_LIT8( KNSmlDdfAuthScheme,		"AAuthPref" ); 
+_LIT8( KNSmlDdfAppAuth,		"AppAuth" );
+_LIT8( KNSmlDdfAAuthLevel,		"AAuthLevel" );
+_LIT8( KNSmlDdfAAuthType,		"AAuthType" );
+_LIT8( KNSmlDdfAAuthName,		"AAuthName" );
+_LIT8( KNSmlDdfAAuthSecret,		"AAuthSecret" );
+_LIT8( KNSmlDdfAAuthData,		"AAuthData" );
+_LIT8( KNSmlDdfExt,		"Ext" );
+_LIT8( KNSmlDdfServerPW,		"ServerPW" );
+_LIT8( KNSmlDdfServerNonce,		"ServerNonce" );
+_LIT8( KNSmlDdfClientUserName,	"UserName" );
+_LIT8( KNSmlDdfClientPW,		"ClientPW" );
+_LIT8( KNSmlDdfClientNonce,		"ClientNonce" );
+_LIT8( KNSmlDdfLocked,		"ProfileLock" );
+
+
+
+_LIT( KNSmlDdfMConRef,			"MConRef" );
+
+//Constant strings 
+
+
+_LIT8( KNSmlDdfAppIdValue,				"w7" );
+
+
+//DDF DM-field descriptions
+_LIT8( KNSmlDdfAppIdDescription,				"AppID of DMSettings " );
+_LIT8( KNSmlDdfAddrDescription,				"Host address of the SyncML server, IP or URL" );
+_LIT8( KNSmlDdfAddrTypeDescription,			"The type of address specified in the Addr node" );
+_LIT8( KNSmlDdfPortNbrDescription,			"SyncML Server port" );
+_LIT8( KNSmlDdfAuthSchemeDescription,		"Scheme of authentication" );
+_LIT8( KNSmlDdfServerIdDescription,			"The ServerId value for this server" );
+_LIT8( KNSmlDdfNameDescription,				"Displayable name for the SyncML setings" );
+_LIT8( KNSmlDdfConRefDescription,			"Logical reference to a connectivity node" );
+_LIT8( KNSmlDdfAuthLevelDescription ,       "AuthLevel of the AppAuth node " );
+_LIT8( KNSmlDdfAuthNameDescription ,       "AuthName of the AppAuth node " );
+_LIT8( KNSmlDdfAuthSecretDescription ,       "AuthSecret of the AppAuth node " );
+_LIT8( KNSmlDdfAuthDataDescription ,       "AuthData of the AppAuth node " );
+_LIT( KNSmlDdfMConRefDescription,			"Parent to Multiple Connection Reference objects" );
+
+
+//Default data values
+_LIT( KNSmlDefName,				"DMAdapterIns" );
+_LIT8( KNSmlDefDMAcc,			"DMAcc" );
+_LIT8( KNSmlDMStart,			"DMAcc/DMId" );
+_LIT( KNSmlDefDMIAP,			"AP" );
+_LIT8( KNSmlDMUriDotSlash,      "./");
+_LIT8( KNSmlDMNullDesc8,        "");
+_LIT8(KNSmlIAPId,               "NSmlIapId");
+
+_LIT8(KNSmlAddrtype,               "URI");
+
+
+// AuthPref text values
+_LIT8( KNSmlDMAuthPrefNoAuth,"syncml:auth-none");
+_LIT8( KNSmlDMAuthPrefBasic, "syncml:auth-basic");
+_LIT8( KNSmlDMAuthPrefMD5,	 "syncml:auth-md5");
+_LIT8( KNSmlDMAuthPrefTransport,	 "transport");
+
+_LIT8( KNSmlDMAuthTypeBasic, "BASIC");
+_LIT8( KNSmlDMAuthTypeMD5,	 "DIGEST");
+_LIT8( KNSmlDMAuthTypeTransport,	 "TRANSPORT");
+_LIT8( KNSmlDMSettingsHTTP,  "http://" );
+_LIT8( KNSmlDMSettingsHTTPS, "https://" );
+
+_LIT8( KIAPid, "IAPid" );
+_LIT8( KSegmDMAcc,"AppID/ServerID/Name/PrefConRef/AppAddr/AAuthPref/AppAuth/Ext");
+_LIT8( KSegmDMAccAppAddr,"Addr/AddrType/Port");
+_LIT8( KSegmDMAccPortRT,"Port001");
+_LIT8( KSegmDMAccport,"PortNbr");
+_LIT8( KSegmDMAccAppAuth,"AAuthLevel/AAuthType/AAuthName/AAuthSecret/AAuthData");
+_LIT8( KSegmDMAccLocked,"ProfileLock");
+_LIT8( KSmlDmSlash, "/");
+_LIT8( KVersion,"1.1" );
+_LIT8( KMimeType, "text/plain" );
+_LIT8( KSyncMLText, "SyncML" );
+_LIT8( KNSmlDMadapterDesc, "DM-Settings DDF description" );
+_LIT8( KNSmlDMadapterTitle,"DM-Settings title" );
+
+_LIT8( KDmAccMatch, "DMAcc/*" );
+_LIT8( KDmAccMatch3, "DMAcc/*/*" );
+
+_LIT8( KDmAccMatch2, "DMAcc" );
+_LIT8 (KDmAccToConRefMatch, "DMAcc/*/ToConRef");
+_LIT8 (KDmAccToConRefId, "ConRef001");
+_LIT8 (KDmAccToConRefFullMatch, "DMAcc/*/ToConRef/ConRef001");
+_LIT8 (KDmAccAppAddrMatch, "DMAcc/*/AppAddr");
+_LIT8 (KDmAccAppAddrFullMatch, "DMAcc/*/AppAddr/*");
+_LIT8 (KDmAccPortMatch, "DMAcc/*/AppAddr/*/Port");
+_LIT8 (KDmAccExtMatch, "DMAcc/*/Ext");
+//_LIT8 (KDmAccExtFullMatch, "DMAcc/*/Ext/*");
+_LIT8 (KDmAccPortFullMatch, "DMAcc/*/AppAddr/*/Port/Port001");
+_LIT8 (KDmAccAppAuthMatch, "DMAcc/*/AppAuth");
+_LIT8 (KDmAccAppAuthFullMatch, "DMAcc/*/AppAuth/*");
+_LIT8 (KDmAccAppAuthSrvMatch, "DMAcc/*/AppAuth/AppAuthSrv");
+_LIT8 (KDmAccAppAuthCliMatch, "DMAcc/*/AppAuth/AppAuthCli");
+_LIT8 (KDmAccAppAuthObexMatch, "DMAcc/*/AppAuth/AppAuthObex");
+_LIT8 (KDmAccAppAuthHttpMatch, "DMAcc/*/AppAuth/AppAuthHttp");
+_LIT8 (KDmAccAppAuthTransMatch, "DMAcc/*/AppAuth/AppAuthTransport");
+
+
+
+//_LIT8 (KDmAccAppAuthNodes, "AppAuthSrv/AppAuthCli/AppAuthObex/AppAuthHttp");
+_LIT8 (KDmAccAppAuthNodes, "AppAuthSrv/AppAuthCli/AppAuthTransport");
+_LIT8 (KDmAccAppAuthDyn1, "AppAuthSrv"); // serv
+_LIT8 (KDmAccAppAuthDyn2, "AppAuthCli"); //client
+_LIT8 (KDmAccAppAuthDyn3, "AppAuthObex"); //obex
+_LIT8 (KDmAccAppAuthDyn4, "AppAuthHttp");
+
+_LIT8 (KDmAccAppAuthTransport, "AppAuthTransport");
+
+_LIT8 (KDmAccAppAuthDyn1LUid, "SRVCRED");
+_LIT8 (KDmAccAppAuthDyn2LUid, "CLCRED");
+_LIT8 (KDmAccAppAuthDyn3LUid, "OBEX");
+_LIT8 (KDmAccAppAuthDyn4LUid, "HTTP");
+
+_LIT8 (KDmAccAppAuthLevelSrv, "SRVCRED");
+_LIT8 (KDmAccAppAuthLevelCli, "CLCRED");
+_LIT8 (KDmAccAppAuthLevelObx, "OBEX");
+_LIT8 (KDmAccAppAuthLevelHttp, "HTTP");
+_LIT8(KDmProfileLocked, "Locked");
+_LIT8(KDmProfileUnLocked, "Unlocked");
+const TInt KHttpUsed  = 1;
+const TInt KHttpNotUsed  = 0;
+
+
+// temporary
+
+_LIT8 (KDmAccAppAddrId, "Addr001");
+
+// NOTE: this enum must match with property array described in 
+// SyncML_Sync_Agent_Client_API_Specification.doc.
+enum TNSmlSyncTransportProperties
+	{
+	EPropertyIntenetAccessPoint = 0,
+	EPropertyHttpUsed = 5,
+	EPropertyHttpUserName = 6,
+	EPropertyHttpPassword = 7
+	};
+
+
+// DATA TYPES
+enum TNSmlDMFieldType
+	{
+	EStr,
+	EInt,
+	EBin,
+	EWrong
+	};
+
+enum TNSmlDMLeafType
+	{
+	EDMUpdate,
+	EDMDelete,
+	EDMUnset
+	};
+
+enum TNSmlDMProfileData
+	{
+	EProfileId,
+	EProfileName,
+	EProfileIAPId,
+	EProfileMediumType,
+	EProfileDMServerUsername,
+	EProfileDMServerPassword,
+	EServerNonce,
+	ESharedSecret,
+	EClientNonce,
+	EProfileURL,
+	EProfilePort,
+	EServerId,
+	EAuthenticationRequired,
+	ESyncAccepted,
+	EProfileAddrType,
+	EPRofileServerCred,
+	EPRofileClientCred,
+	EProfileHttpUsername,
+	EProfileHttpPassword,
+	EProfileAAuthType,
+	EProfileTransport,
+	EProfileObexUsername,
+	EProfileObexPassword,
+	ETransportAuthName,
+	EProfileTransportPassword,
+	EProfileTransportAuthData,
+	EProfileLock
+	};
+
+enum TAuthenticationType
+	{
+	ENoAuth,    //"syncml:auth-none"
+	EBasic,     //"syncml:auth-basic"
+	EMD5        //"syncml:auth-md5"
+	};
+
+enum TNSmlDMMediumType
+	{
+	ENone,
+    EHttp,
+	EWsp,
+    EObex
+	};
+
+struct TNSmlDMLeafElement
+	{
+	HBufC8 *iUri;
+	HBufC8 *iData;
+	TInt iStatusRef;
+	HBufC8* iLuid;
+	};
+
+struct TNSmlDMBufferElement
+	{
+	CArrayFixFlat<TNSmlDMLeafElement> *iLeafBuf;
+	HBufC8* iMappingName; //Holds the Dyn.Node URI       
+	TBool iExecuted; //Node updated to dB or not       
+	TInt iDMBuffStatusref; //Statusref for callback       
+	TBool iAddr;
+	TBool iServerId; //Bools for Mandatory fields       
+	TBool iUName;
+	TBool iServerName;
+	};
+
+// CLASS DECLARATION
+/**
+*  CNSmlDMSettingsAdapter12 class 
+*  Contains the whole implementation of the DM settings adapter.
+*
+*  @lib nsmldmsettingsadapter.dll
+*  @since Series 60 Series60_3.0
+*/
+class CNSmlDMSettingsAdapter12 : public CSmlDmAdapter
+	{
+    public: // Constructors and destructor
+        
+        /**
+        * Two-phased constructor.
+        */
+	    static CNSmlDMSettingsAdapter12* NewL(MSmlDmCallback* aDmCallback );
+	    static CNSmlDMSettingsAdapter12* NewLC(MSmlDmCallback* aDmCallback );
+
+	    void ConstructL();
+
+        /**
+        * Destructor.
+        */
+	    virtual ~CNSmlDMSettingsAdapter12();
+
+    public: // Functions from base classes
+
+	    /**
+        * From      CSmlDmAdapter   DDFVersionL returns current version of the DDF.
+        * @since    Series60_3.0
+        * @param    aVersion        DDF version of the adapter.
+        * @return   none
+        */
+	    void DDFVersionL( CBufBase& aVersion );
+
+        /**
+        * From      CSmlDmAdapter   DDFStructureL for filling the DDF structure of the adapter.
+        * @since    Series60_3.0
+        * @param    aDDF            Reference to root object.
+        * @return   none
+        */
+	    void DDFStructureL( MSmlDmDDFObject& aDDF );
+
+        /**
+        * From      CSmlDmAdapter   UpdateLeafObjectL creates new leaf objects, or replaces 
+        *                           data in existing leaf objects.
+        * @since    Series60_3.0
+        * @param    aURI            URI of the object
+        * @param    aLUID           LUID of the object
+        * @param    aObject         Data of the object
+        * @param    aType           MIME type of the object
+        * @param    aStatusRef      Reference to correct command
+        * @return   none
+        */
+	    void UpdateLeafObjectL( const TDesC8& aURI, const TDesC8& aLUID, 
+                            const TDesC8& aObject, const TDesC8& aType, 
+                            TInt aStatusRef );
+        
+        /**
+        * From      CSmlDmAdapter   DeleteObjectL deletes an object and its child objects.
+        * @since    Series60_3.0
+        * @param    aURI            URI of the object
+        * @param    aLUID           LUID of the object
+        * @param    aStatusRef      Reference to correct command
+        * @return   none
+        */
+	    void DeleteObjectL( const TDesC8& aURI, const TDesC8& aLUID, 
+                        const TInt aStatusRef );
+        
+        /**
+        * From      CSmlDmAdapter   FetchLeafObjectL fetches data of a leaf object.
+        * @since    Series60_3.0
+        * @param    aURI            URI of the object
+        * @param    aLUID           LUID of the object
+        * @param    aType           MIME type of the object
+        * @param    aResultsRef    	Reference to correct results
+        * @param    aStatusRef      Reference to correct command
+        * @return   none
+        */
+	    void FetchLeafObjectL(  const TDesC8& aURI, 
+                            const TDesC8& aLUID, 
+                            const TDesC8& aType, 
+                            const TInt aResultsRef, 
+                            const TInt aStatusRef ); 
+        /**
+        * From      CSmlDmAdapter   ChildURIListL fetches URI list.
+        * @since    Series60_3.0
+        * @param    aURI                    URI of the object
+        * @param    aLUID                   LUID of the object
+        * @param    aPreviousURISegmentList URI list with mapping LUID information
+        * @param    aResultsRef    	        Reference to correct results
+        * @param    aStatusRef              Reference to correct command
+        * @return   none
+        */
+	    void ChildURIListL( const TDesC8& aURI, const TDesC8& aLUID, 
+                        const CArrayFix<TSmlDmMappingInfo>& aPreviousURISegmentList, 
+                        const TInt aResultsRef, const TInt aStatusRef );
+        
+        /**
+        * From      CSmlDmAdapter   AddNodeObjectL adds node object.
+        * @since    Series60_3.0
+        * @param    aURI            URI of the object
+        * @param    aParentLUID     LUID of the parent object
+        * @param    aStatusRef      Reference to correct command
+        * @return   none
+        */
+	    void AddNodeObjectL( const TDesC8& aURI, const TDesC8& aParentLUID, 
+                            const TInt aStatusRef );
+
+        /**
+        * From      CSmlDmAdapter   UpdateLeafObjectL creates new leaf objects, or replaces 
+        *                           data in existing leaf objects.
+        * @since    Series60_3.0
+        * @param    aURI            URI of the object
+        * @param    aLUID           LUID of the object
+        * @param    aStream         Data of the object
+        * @param    aType           MIME type of the object
+        * @param    aStatusRef      Reference to correct command
+        * @return   none
+        */
+        void UpdateLeafObjectL( const TDesC8& aURI, const TDesC8& aLUID, 
+                            RWriteStream*& aStream, const TDesC8& aType, 
+                            const TInt aStatusRef );
+        
+        /**
+        * From      CSmlDmAdapter   FetchLeafObjectSizeL fetches the size of a leaf object.
+        * @since    Series60_3.0
+        * @param    aURI            URI of the object
+        * @param    aLUID           LUID of the object
+        * @param    aType           MIME type of the object
+        * @param    aResultsRef    	Reference to correct results
+        * @param    aStatusRef      Reference to correct command
+        * @return   none
+        */
+	    void FetchLeafObjectSizeL( const TDesC8& aURI, const TDesC8& aLUID, 
+                                const TDesC8& aType, const TInt aResultsRef, 
+                                const TInt aStatusRef );
+
+        /**
+        * From      CSmlDmAdapter   The function implements execute command.
+        * @since    Series60_3.0
+        * @param    aURI            URI of the object
+        * @param    aLUID           LUID of the object
+        * @param    aArgument       Argument for the command
+        * @param    aType       	MIME type of the object
+        * @param    aStatusRef      Reference to correct command
+        * @return   none
+        */
+	    void ExecuteCommandL( const TDesC8& aURI, const TDesC8& aLUID, 
+                            const TDesC8& aArgument, const TDesC8& aType, 
+                            const TInt aStatusRef );
+
+        /**
+        * From      CSmlDmAdapter   The function implements execute command.
+        * @since    Series60_3.0
+        * @param    aURI            URI of the object
+        * @param    aLUID           LUID of the object
+        * @param    aStream         Argument for the command
+        * @param    aType       	MIME type of the object
+        * @param    aStatusRef      Reference to correct command
+        * @return   none
+        */
+	    void ExecuteCommandL( const TDesC8& aURI, const TDesC8& aLUID, 
+                            RWriteStream*& aStream, const TDesC8& aType, 
+                            const TInt aStatusRef );
+        
+        /**
+        * From      CSmlDmAdapter   The function implements execute command.
+        * @since    Series60_3.0
+        * @param    aTargetURI      Target URI for the command
+        * @param    aTargetLUID     LUID of the target object
+        * @param    aSourceURI      Source URI for the command
+        * @param    aSourceLUID    	LUID of the source object
+        * @param    aType           MIME type of the object
+        * @param    aStatusRef      Reference to correct command
+        * @return   none
+        */
+	    void CopyCommandL( const TDesC8& aTargetURI, const TDesC8& aTargetLUID, 
+                        const TDesC8& aSourceURI, const TDesC8& aSourceLUID, 
+                        const TDesC8& aType, TInt aStatusRef );
+	
+        /**
+        * From      CSmlDmAdapter   The function indicates start of Atomic command.
+        * @since    Series60_3.0
+        * @param    none
+        * @return   none
+        */
+        void StartAtomicL();
+
+        /**
+        * From      CSmlDmAdapter   The function indicates successful end of Atomic command.
+        * @since    Series60_3.0
+        * @param    none
+        * @return   none
+        */
+	    void CommitAtomicL();
+    
+        /**
+        * From      CSmlDmAdapter   The function indicates unsuccessful end of Atomic command.
+        * @since    Series60_3.0
+        * @param    none
+        * @return   none
+        */
+	    void RollbackAtomicL();
+
+        /**
+        * From      CSmlDmAdapter   Returns ETrue if adapter supports streaming otherwise EFalse.
+        * @since    Series60_3.0
+        * @param    aItemSize       Size limit for stream usage.
+        * @return   ETrue or EFalse
+        */
+	    TBool StreamingSupport( TInt& aItemSize );
+        
+        /**
+        * From      CSmlDmAdapter   Called when stream returned from UpdateLeafObjectL or 
+        *                           ExecuteCommandL has been written to and committed.
+        * @since    Series60_3.0
+        * @param    none
+        * @return   none
+        */
+	    void StreamCommittedL();
+
+        /**
+        * From      CSmlDmAdapter   The function tells the adapter that all the commands of the message that
+	    *                           can be passed to the adapter have now been passed.
+        * @since    Series60_3.0
+        * @param    none
+        * @return   none
+        */
+	    void CompleteOutstandingCmdsL();
+	    
+	     /**
+        * From      CSmlDmAdapter   The function to set profile lock
+        * @since    Series60_3.0
+        * @param    profileId  lockvalue
+        * @return   TInt
+        */
+	    TInt SetProfileLockL(const TInt aPID, TInt aLockValue);
+	
+    private:
+	    
+        /**
+        * C++ default constructor.
+        */
+        CNSmlDMSettingsAdapter12();
+        CNSmlDMSettingsAdapter12( TAny* aEcomArguments );
+	    
+        /**
+        * The function stores integer value to buffer and returns reference to it.
+        * @param    aObject     data to be stored to buffer.
+        * @return   reference to data buffer.
+        */
+        TDesC8& SetIntObjectLC( const TInt& aObject );
+        
+        /**
+        * The function finds out the last element of the uri.
+        * @param    aSource     Uri object that contains all elements.
+        * @return   KErrNone if successful.
+        */
+	    TInt SetField( const TDesC8& aSource );
+	    
+	    /**
+        * The function sets the uri being set ot get
+        * @param    aSource     Uri object that contains all elements.
+        * @return   KErrNone if successful.
+        */
+	    TInt SetURIInProcessL( const TDesC8& aSource );
+	    
+
+        /**
+        * The function converts data to integer and returns it.
+        * @param    aObject     Data object to be converted.
+        * @return   Integer value for an object.
+        */
+	    TInt GetIntObject( const TDesC8& aObject );
+
+        /**
+        * The function converts data to integer and returns it.
+        * @param    aObject     Data object to be converted.
+        * @return   16-bit integer value for an object.
+        */
+	    TInt GetIntObject16( const TDesC& aObject );
+
+        /**
+        * The function converts LUID to integer.
+        * @param    aLUID     LUID data to be converted.
+        * @return   Integer value for a LUID.
+        */    
+	    TInt IntLUID( const TDesC8& aLUID );
+
+        /**
+        * The function sets the IAP value acording the given URI.
+        * @param    aLUID     LUID for a profile.
+        * @param    aObject   Data object containing the URI.
+        * @return   KErrNone if successfull.
+        */    
+	    TInt  SetConRefL( const TInt aLUID, const TDesC8& aObject );
+    
+        /**
+        * The function gets the URI for profile IAP.
+        * @param    aObject   Object where the result will be stored.
+        * @return   KErrNone if successfull.
+        */    
+	    TInt GetConRefL( CBufBase& aObject );
+	
+        /**
+        * The function checks if field to be handled is valid.
+        * @param    none
+        * @return   ETrue if valid field otherwise EFalse.
+        */    
+    	TBool AcceptDMField();
+
+        /**
+        * The function checks if field type to be handled is valid.
+        * @param    none
+        * @return   enum value for a field type.
+        */ 
+	    TNSmlDMFieldType   GetDMFieldType() const;
+
+        /**
+        * The function returns enum value for a field to be handled.
+        * @param    none
+        * @return   enum value for a field to be handled.
+        */ 
+	    TNSmlDMProfileData GetDMField() ;
+
+        /**
+        * The function checks if data length is valid.
+        * @param    aProfileItem    Field / Leaf ID to be handled.
+        * @param    aSource         Data to be handled.
+        * @return   ETrue if data length is valid otherwise EFalse.
+        */ 
+	    TBool NotValidStrLenght( const TNSmlDMProfileData& aProfileItem, 
+                            const TDesC8& aSource );
+        
+        /**
+        * The function converts 16-bit data to 8-bit and returns reference to it.
+        * @param    aSource    Reference data to be converted.
+        * @return   Reference to 8-bit data buffer.
+        */ 
+	    TDesC8&  ConvertTo8LC( const TDesC& aSource );
+
+        /**
+        * The function converts 8-bit data to 16-bit and returns reference to it.
+        * @param    aSource    Reference data to be converted.
+        * @return   Reference to 16-bit data buffer.
+        */ 
+	    TDesC16& ConvertTo16LC( const TDesC8& aSource );
+
+        /**
+        * The function find out the port number from URL and stores it to aPort.
+        * @param    aRealURI    Reference data to be containing the whole URI.
+        * @param    aPort       Reference variable where port number will be stored.
+        * @return   KErrNone if successful otherwise KErrNotFound.
+        */ 
+	    TInt ParseUri( const TDesC8& aRealURI, TInt& aPort );
+
+        /**
+        * The function opens the server session and profile via client API.
+        * @param    aIntLUID    Integer value for a LUID of the profile.
+        * @param    aMode       Read or Read and Write mode for a profile data.
+        * @return   KErrNone if successful otherwise KErrNotFound.
+        */ 
+        TInt OpenSyncSessionAndProfileL( const TInt aIntLUID, TSmlOpenMode aMode );
+
+        /**
+        * The function checks if requested profile ID exits.
+        * @param    aIntLUID    Integer value for a LUID of the profile.
+        * @return   ETrue if profile exits otherwise EFalse.
+        */ 
+	    TBool FindProfileIdL( const TInt aIntLUID );
+
+        /**
+        * The function creates new DM profile.
+        * @param    aPID    Reference to variable where new profile will be stored.
+        * @return   KErrNone if successful otherwise error code.
+        */ 
+        TInt CreateNewProfileL( TInt& aPID );
+
+        /**
+        * The function stores the server URL for a profile.
+        * @param    aPID    Profile ID.
+        * @param    aObj    Reference to server URL data.
+        * @return   KErrNone if successful otherwise error code.
+        */ 
+        TInt SetProfileServerURIL( const TInt aPID, const TDesC8& aObj );
+
+        /**
+        * The function stores the display name for a profile.
+        * @param    aPID    Profile ID.
+        * @param    aObj    Reference to data.
+        * @return   KErrNone if successful otherwise error code.
+        */ 
+        TInt SetProfileDisplayNameL( const TInt aPID, const TDesC8& aObj );
+
+        /**
+        * The function stores the user name for a profile.
+        * @param    aPID    Profile ID.
+        * @param    aObj    Reference to data.
+        * @return   KErrNone if successful otherwise error code.
+        */ 
+        TInt SetProfileUserNameL( const TInt aPID, const TDesC8& aObj );
+        
+        /**
+        * The function stores the profile http user name for a profile.
+        * @param    aPID    Profile ID.
+        * @param    aObj    Reference to data.
+        * @return   KErrNone if successful otherwise error code.
+        */ 
+        TInt SetProfileHttpUserNameL( const TInt aPID, const TDesC8& aObj );
+        
+
+        /**
+        * The function stores the protocol version for a profile.
+        * @param    aPID    Profile ID.
+        * @param    aObj    Reference to data.
+        * @return   KErrNone if successful otherwise error code.
+        */ 
+        TInt SetProfileProtocolVersionL( const TInt aPID, const TDesC8& aObj );
+
+        /**
+        * The function stores the ServerId value for a profile.
+        * @param    aPID    Profile ID.
+        * @param    aObj    Reference to data.
+        * @return   KErrNone if successful otherwise error code.
+        */ 
+        TInt SetProfileServerIdL( const TInt aPID, const TDesC8& aObj );
+
+        /**
+        * The function stores the Server password for a profile.
+        * @param    aPID    Profile ID.
+        * @param    aObj    Reference to data.
+        * @return   KErrNone if successful otherwise error code.
+        */ 
+        TInt SetProfileServerPasswordL( const TInt aPID, const TDesC8& aObj );
+        
+        /**
+        * The function stores the network/http password for a profile.
+        * @param    aPID    Profile ID.
+        * @param    aObj    Reference to data.
+        * @return   KErrNone if successful otherwise error code.
+        */ 
+        TInt SetProfileHttpPasswordL( const TInt aPID, const TDesC8& aObj );
+        
+
+        /**
+        * The function stores the password value for a profile.
+        * @param    aPID    Profile ID.
+        * @param    aObj    Reference to data.
+        * @return   KErrNone if successful otherwise error code.
+        */ 
+        TInt SetProfilePasswordL( const TInt aPID, const TDesC8& aObj );
+
+        /**
+        * The function stores the IAP id value for a profile.
+        * @param    aLUID   Profile ID.
+        * @param    aIAPid  Reference to data.
+        * @return   KErrNone if successful otherwise error code.
+        */ 
+        TInt SetProfileConnectionPropertyL( const TInt aLUID, const TInt aIAPid );
+
+        /**
+        * The function deleted the profile data.
+        * @param    aPID    Profile ID.
+        * @return   KErrNone if successful otherwise error code.
+        */ 
+        TInt DeleteProfileL( const TInt aPID );
+        
+        /**
+        * The function to tell whether the profile is locked.
+        * @param    aPID   
+        * @return   1 if locked otherwise 0
+        */ 
+        TBool IsProfileLockedL(const TInt aPID);
+        
+        /**
+        * The function gets the profile data acoeding to aDMField.
+        * @param    aLUID       Profile ID.
+        * @param    aDMField    Data field ID to be handled.
+        * @param    aObject     Reference where fetched data to be stored.
+        * @return   KErrNone if successful otherwise error code.
+        */ 
+        TInt GetObjectL( TInt aLUID, TNSmlDMProfileData aDMField, 
+                        CBufBase& aObject );
+
+        /**
+        * The function adds port number to address URL.
+        * @param    aLUID       Profile ID.
+        * @param    aPort       Reference to port number data.
+        * @return   KErrNone if successful otherwise error code.
+        */ 
+        TInt SetProfileConnectionPortNrL( const TInt aLUID, const TDesC8& aPort );
+        
+        /**
+        * The function adds port number to address URL.
+        * @param    aSrvURI     Original address URI.
+        * @param    aNewURI     New URI when port number has been added or deleted.
+        * @param    aPort       Reference to port number data.
+        * @return   KErrNone if successful otherwise error code.
+        */ 
+        void SetPortNrToAddrStr( const TDesC8& aSrvURI, HBufC8* aNewURI, 
+                                const TDesC8& aPort );
+
+        /**
+        * General function which selects which leaf to be handled.
+        * @param    aLUID       Profile LUID.
+        * @param    aObject     Data to be stored.
+        * @param    aField      Leaf of field ID to be handled.
+        * @return   KErrNone if successful otherwise error code.
+        */ 
+        TInt SetDMFieldDataL( const TInt aLUID, const TDesC8& aObject, 
+                            const TNSmlDMProfileData aField );
+        /**
+        * The function fills the node info.
+        * @param    aNode           Reference to node or leaf which info to be filled.
+        * @param    aAccTypes       Access rights for a leaf / node.
+        * @param    aOccurrence     Occurance of the node / leaf.
+        * @param    aScope          Scope (dynamic / permanent) of the leaf / node.
+        * @param    aFormat         Data format of the leaf / node.
+        * @param    aDescription    Description of the node / leaf.
+        * @param    aDefaultValue   Default value for a leaf or node.
+        * @param    aMimeType       MIME type for a leaf / node.
+        * @return   none
+        */ 
+        void FillNodeInfoL( MSmlDmDDFObject& aNode, TSmlDmAccessTypes aAccTypes, 
+                        MSmlDmDDFObject::TOccurence aOccurrence, 
+                        MSmlDmDDFObject::TScope aScope, 
+                        MSmlDmDDFObject::TDFFormat aFormat, 
+                        const TDesC8& aDescription, 
+                        const TDesC8& aDefaultValue, const TDesC8& aMimeType );
+        
+        /**
+        * The function reads the authentication data via private API.
+        * @param    aLUID       LUID for a profile.
+        * @param    aField      Leaf id to be handled.
+        * @param    aObject     Reference where to store the data.
+        * @return   KErrNone if successful otherwise error code.
+        */ 
+        TInt GetDMAuthInfoL( const TInt aLUID, const TNSmlDMProfileData aField, 
+                            CBufBase& aObject );
+
+        /**
+        * The function delete's the authentication data via private API.
+        * @param    aLUID       LUID for a profile.
+        * @param    aField      Leaf id to be handled.
+        * @return   KErrNone if successful otherwise error code.
+        */ 
+        TInt DeleteDMAuthInfoL( const TInt aLUID, const TNSmlDMProfileData aField );
+        
+        /**
+        * The function set's the address type / medium type value for a profile.
+        * @param    aLUID       LUID for a profile.
+        * @param    aIntObj     Address type value.
+        * @return   KErrNone if successful otherwise error code.
+        */ 
+        TInt SetProfileAddrTypeL( const TInt aLUID, const TInt aIntObj );
+
+        /**
+        * The function gets the profile medium type value.
+        * @param    aObject     Reference where data to be stored.
+        * @return   KErrNone if successful otherwise error code.
+        */ 
+        TInt GetProfileConnectiontypeL( TInt& aMediumTYpe );
+        
+        /**
+        * The function gets the profile http user name of value.
+        * @param    aObject     Reference where data to be stored.
+        * @return   KErrNone if successful otherwise error code.
+        */ 
+        TInt GetHttpUsernameL( CBufBase& aObject );
+        
+       
+        /**
+        * The function gets the profile IAP value.
+        * @param    aIAPid     Reference where data to be stored.
+        * @return   KErrNone if successful otherwise error code.
+        */ 
+        TInt GetProfileIAPIdL( TInt& aIAPid );
+
+        /**
+        * The function gets the profile Server URL value.
+        * @param    aURL     Reference where data to be stored.
+        * @return   KErrNone if successful otherwise error code.
+        */ 
+        void GetProfileServerURLL( CBufBase& aURL );
+
+        /**
+        * The function checks the requested medium type if supported.
+        * @param    aIntObj         Medium type.
+        * @param    aMediumType     UID for medium type.
+        * @return   none
+        */         
+        void GetMediumTypeL( const TInt aIntObj, TInt& aMediumType );
+
+        /**
+        * The function gets the server id value.
+        * @param    aObject     Reference where data to be stored.
+        * @return   none
+        */       
+        void GetServerIdL( CBufBase& aObject );
+
+        /**
+        * The function gets the profile name value.
+        * @param    aObject     Reference where data to be stored.
+        * @return   none
+        */       
+        void GetProfileNameL( CBufBase& aObject );
+
+        /**
+        * The function gets the user name value.
+        * @param    aObject     Reference where data to be stored.
+        * @return   none
+        */ 
+        void GetProfileUserNameL( CBufBase& aObject );
+
+        /**
+        * The function gets the profile port number value.
+        * @param    aObject     Reference where data to be stored.
+        * @return   none
+        */ 
+        void GetProfilePortNumberL( CBufBase& aObject );
+
+        /**
+        * The function sets the profile authentication info via private API.
+        * @param    aLUID       Profile LUID.
+        * @param    aField      Leaf ID to be handled.
+        * @param    aObject     Data to be stored.
+        * @param    aStatus     Status of the function, KErrNone if successful.
+        * @return   none
+        */         
+        void SetAuthInfoL( const TInt aLUID, const TNSmlDMProfileData aField, 
+                        const TDesC8& aObject, TInt& aStatus );
+	//Buffers Node Object <>     
+	void AddNodeBufferL( const TDesC8& aURI, const TInt aStatusRef);
+
+	//Buffers Leaf Object       
+	void AddLeafBufferL( const TDesC8& aURI, const TDesC8& aObject,
+			const TInt aStatusRef);
+	// Executes Buffer       
+	void ExecuteBufferL();
+	//Extracts the ParentURI       
+	TPtrC8 ParentURI(const TDesC8& aURI);
+	// Clears the elements of the passed in LeafElement Structure
+	void ClearBuffer( CArrayFixFlat<TNSmlDMLeafElement>* aBuffer);
+	/**
+        * The function checks if requested ServerID ID exits.
+        * @param    aServerid    ServerID.
+        * @return   ETrue if ServerID exits otherwise EFalse.
+  */ 
+	TBool IsServerIDExistL( const TDesC8& aServerid );
+	
+	/**
+        * The function checks if the URI is of format ./DMAcc/DMId<num>
+        * Example ./DMAcc/DMId000 
+        * @param    aURI       aURI.
+        * @return   true/false
+  */                          
+  TBool IsDMAccUriFormatMatchPredefined(const TDesC8 & aURI);
+        
+  /**
+        * The function constructs ./DMAcc/x nodes and
+        * returns the profile ID matching the aURI.
+        * @param    aURI       aURI.
+        * @return   KErrNotFound/ProfileID
+  */  
+        
+  TInt ConstructTreeL(const TDesC8& aURI);
+  
+    /**
+        * The function extracts DMAcc/x node from aURI		        
+        * @param    aURI     DMAcc aURI.
+        * @return   DMAcc/x node.
+    */ 
+  TPtrC8 GetDynamicDMNodeUri(const TDesC8& aURI);
+
+    private:    // Data
+	
+        // Client API session class 
+        RSyncMLSession iSyncSession;
+        // Client API Device Management profile handling
+        RSyncMLDevManProfile iProfile;
+        // Callback interface for returning result or status
+	    MSmlDmCallback* iCallBack;
+	    
+	    TInt iCurrentProfile;
+	    
+        // Profile LUID
+        TInt iLUID;
+        // Parent LUID
+	    TInt iParentLUID;
+        // For handling profile medium type 
+	    TInt iObject;
+                  
+        // Buffer for URI leaf element
+	    HBufC8* iField;
+	    
+        HBufC8* iURIField;
+        TBool iNewProfile;
+        // Information about data type
+	    TNSmlDMFieldType  iFieldType;
+        // Information about leaf command
+	    TNSmlDMLeafType	  iLeafType;
+        // Status information if session allready opened
+        TBool iSyncSessionOpen;
+
+        // Buffer for storing port number
+        HBufC8* iPortNbr;
+    
+        // Private API interface for handling authebtication data
+        RNSmlPrivateAPI iPrivateApi;
+        
+        struct TPortBuffer
+            {
+            // buffered data for updating port number
+            TBufC8<5> iPortBuf;
+            TInt iPortBufLUID;
+            TInt iPortBufStatusRef;
+            };
+        RArray<TPortBuffer> iPortBuffer;
+        
+        struct TLockBuffer
+            {
+            // buffered data for profile lock
+            TInt iProfileLock;
+            TInt iProfileLockLUID;
+            TInt iProfileLockStatusRef;
+            };   
+        RArray<TLockBuffer> iProfileLockBuffer; 
+            
+	TBool iBufOn;
+	TBool iComplete;
+	TInt iExecutionIndex;
+	CArrayFixFlat<TNSmlDMBufferElement> *iBuffer;
+    };
+
+#endif // __NSMLDMSETTINGSADAPTER12_H__
+
+// End of File
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/syncmldm12/src/NSmlDmSettingsAdapter12.cpp	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,4002 @@
+/*
+* Copyright (c) 2007 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:    DM-settings adapter
+*
+*/
+
+
+
+
+// INCLUDE FILES
+#include "NSmlDMSettingsAdapter12.h"
+#include "nsmldebug.h"
+#include "nsmlconstants.h"
+#include "nsmldmconstants.h"
+#include "nsmldmiapmatcher.h"
+#include "nsmldmauthinfo.h"
+#include <featmgr.h>
+#include <implementationproxy.h>
+#include <SyncMLClientDM.h>
+#include <SyncMLTransportProperties.h>
+#include <e32base.h>
+#include <DevManInternalCRKeys.h>
+#include <centralrepository.h>
+#ifndef __WINS__
+// This lowers the unnecessary compiler warning (armv5) to remark.
+// "Warning:  #174-D: expression has no effect..." is caused by 
+// DBG_ARGS8 macro in no-debug builds.
+#pragma diag_remark 174
+#endif
+
+const TUint KNSmlDMSettingsAdapterImplUid = 0x10282CE8;
+
+const TInt KBufSize32   = 32;
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter12::NewL
+//  Two-phased constructor.
+// -----------------------------------------------------------------------------
+CNSmlDMSettingsAdapter12* CNSmlDMSettingsAdapter12::NewL( MSmlDmCallback* aDmCallback )
+	{
+	_DBG_FILE("CNSmlDMSettingsAdapter12::NewL(): begin");
+
+	CNSmlDMSettingsAdapter12* self = NewLC( aDmCallback );
+	CleanupStack::Pop();
+
+	_DBG_FILE("CNSmlDMSettingsAdapter12::NewL(): end");
+	return self;
+	}
+
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter12::NewLC( )
+//  Loads the CNSmlDMSettingsAdapter12 class and pushes it to clenupstack.
+// -----------------------------------------------------------------------------
+CNSmlDMSettingsAdapter12* CNSmlDMSettingsAdapter12::NewLC( MSmlDmCallback* aDmCallback )
+	{
+	_DBG_FILE( "CNSmlDMSettingsAdapter12::NewLC(): begin" );
+	CNSmlDMSettingsAdapter12* self = new ( ELeave ) CNSmlDMSettingsAdapter12( aDmCallback );
+	CleanupStack::PushL( self );
+    self->iCallBack = aDmCallback;
+	self->ConstructL();
+	self->iLeafType = EDMUnset;
+
+	_DBG_FILE( "CNSmlDMSettingsAdapter12::NewLC(): end" );
+	return self;
+	}
+
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter12::CNSmlDMSettingsAdapter()
+//  Default constructor.
+// -----------------------------------------------------------------------------
+CNSmlDMSettingsAdapter12::CNSmlDMSettingsAdapter12( TAny* aEcomArguments) : 
+                                                CSmlDmAdapter(aEcomArguments )
+	{
+	_DBG_FILE( "CNSmlDMSettingsAdapter12::CNSmlDMSettingsAdapter(): begin" );
+	_DBG_FILE( "CNSmlDMSettingsAdapter12::CNSmlDMSettingsAdapter(): end" );
+	}
+
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter12::~CNSmlDMSettingsAdapter()
+//  Destructor.
+// -----------------------------------------------------------------------------
+CNSmlDMSettingsAdapter12::~CNSmlDMSettingsAdapter12()
+	{
+	_DBG_FILE( "CNSmlDMSettingsAdapter12::~CNSmlDMSettingsAdapter(): begin" );
+
+    delete iField;
+	delete iURIField;
+    // Client API Session & Profile
+    iProfile.Close();
+	iSyncSession.Close();
+    iSyncSessionOpen = EFalse;
+	// In Case the Buffer isnt cleared
+	if ( iBuffer)
+		{
+		for (TInt val =0; val<iBuffer->Count ();val++)
+			{
+			delete iBuffer->At(val).iMappingName;
+
+			ClearBuffer ( iBuffer->At(val).iLeafBuf);
+			delete iBuffer->At(val).iLeafBuf;
+			}
+
+		iBuffer->Reset ();
+		delete iBuffer;
+		}
+    delete iPortNbr;
+    iPortBuffer.Reset();
+    iPortBuffer.Close();
+    iProfileLockBuffer.Reset();
+    iProfileLockBuffer.Close();
+        
+    iPrivateApi.Close();
+    
+    iCallBack = 0; 
+    FeatureManager::UnInitializeLib();            
+	_DBG_FILE( "CNSmlDMSettingsAdapter12::~CNSmlDMSettingsAdapter(): end" );
+	}
+
+// -----------------------------------------------------------------------------
+//		CNSmlDMSettingsAdapter12::ConstructL()
+//		Second phase constructor.
+// -----------------------------------------------------------------------------
+void CNSmlDMSettingsAdapter12::ConstructL()
+	{
+	iField = HBufC8::NewL( KNSmlMaxURLLength );
+	iURIField = NULL;	
+    iSyncSessionOpen = EFalse;
+	FeatureManager::InitializeLibL();
+	// variables used for Buffering
+	iBufOn = EFalse;
+	iComplete = EFalse;
+	iExecutionIndex = -1;
+	iNewProfile = EFalse;
+	// initialising iBuffer
+	iBuffer = new (ELeave) CArrayFixFlat <TNSmlDMBufferElement> (KNSmlDMGranularity);
+    }
+
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter12::DDFVersionL()
+//  Returns the DDF version number.
+// -----------------------------------------------------------------------------
+void CNSmlDMSettingsAdapter12::DDFVersionL( CBufBase& aVersion )
+	{
+	_DBG_FILE(
+            "CNSmlDMSettingsAdapter12::DDFVersionL(CBufBase& aDDFVersion): begin" );
+	aVersion.InsertL( 0, KVersion );
+	_DBG_FILE(
+            "CNSmlDMSettingsAdapter12::DDFVersionL(CBufBase& aDDFVersion): end" );
+	}
+
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter12::DDFStructureL()
+//  Fills the DDF structure of the adapter.
+// -----------------------------------------------------------------------------
+void CNSmlDMSettingsAdapter12::DDFStructureL( MSmlDmDDFObject& aDDF )
+	{
+	_DBG_FILE( "CNSmlDMSettingsAdapter12::DDFStructureL(): begin" );
+      
+    //Making DMAcc as root 
+    
+	MSmlDmDDFObject* ddfRoot = &aDDF;
+	MSmlDmDDFObject& nDmDDF = ddfRoot->AddChildObjectL( KNSmlDefDMAcc );
+
+	TSmlDmAccessTypes *aclTypes = new ( ELeave ) TSmlDmAccessTypes();
+	CleanupStack::PushL( aclTypes );
+    
+    // Set Get as acceptable operations
+    aclTypes->SetGet();
+	
+	nDmDDF.SetDFTitleL( KNSmlDMadapterTitle );
+	
+    FillNodeInfoL( nDmDDF, *aclTypes, MSmlDmDDFObject::EOne, 
+                    MSmlDmDDFObject::EPermanent, MSmlDmDDFObject::ENode, 
+                    KNullDesC8, KNullDesC8, KNullDesC8 );
+    
+	aclTypes->SetAdd();
+	// Set rest acceptable operations for data itself
+	aclTypes->SetReplace();
+	aclTypes->SetDelete();
+
+	TSmlDmAccessTypes aclTypesNoGet;
+	aclTypesNoGet.SetReplace();
+	aclTypesNoGet.SetAdd();
+	aclTypesNoGet.SetDelete();
+
+	TSmlDmAccessTypes aclTypesAR;
+	aclTypesAR.SetReplace();
+	aclTypesAR.SetAdd();
+
+    TSmlDmAccessTypes aclTypesARG;
+	aclTypesARG.SetReplace();
+	aclTypesARG.SetAdd();
+    aclTypesARG.SetGet();
+
+    TSmlDmAccessTypes aclTypesG;
+    aclTypesG.SetGet();
+    
+    TSmlDmAccessTypes aclTypesAG;
+    aclTypesAG.SetGet();
+    aclTypesAG.SetAdd();
+    
+    TSmlDmAccessTypes aclTypesAGD;
+    aclTypesAGD.SetGet();
+    aclTypesAGD.SetAdd();
+    aclTypesAGD.SetDelete();
+    
+        
+	MSmlDmDDFObject& nProDDF = nDmDDF.AddChildObjectGroupL();
+    FillNodeInfoL( nProDDF, *aclTypes, MSmlDmDDFObject::EZeroOrMore, 
+                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::ENode, 
+                    KNullDesC8, KNullDesC8, KMimeType );
+
+    MSmlDmDDFObject& nAppIdDDF = nProDDF.AddChildObjectL( KNSmlDdfAppId );			// Addr
+    FillNodeInfoL( nAppIdDDF, aclTypesG, MSmlDmDDFObject::EOne, 
+                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::EChr, 
+                    KNSmlDdfAppIdDescription, KNullDesC8, KMimeType );
+
+      //PrefConRef 
+    MSmlDmDDFObject& nPrefConRefDDF = nProDDF.AddChildObjectL( KNSmlDdfPrefConRef );	// PrefConRef
+    FillNodeInfoL( nPrefConRefDDF, aclTypesARG, MSmlDmDDFObject::EOne, 
+                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::EChr, 
+                    KNSmlDdfConRefDescription, KNullDesC8, KMimeType );
+
+           
+                    
+   // App Address nodes 
+    MSmlDmDDFObject& nAppAddrDDF = nProDDF.AddChildObjectL( KNSmlDdfAppAddr );	// AppAddr
+    FillNodeInfoL( nAppAddrDDF, aclTypesG, MSmlDmDDFObject::EOne, 
+                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::ENode, 
+                    KNSmlDdfAddrDescription, KNullDesC8, KMimeType );
+   
+    MSmlDmDDFObject& rtToAppAddrRef = nAppAddrDDF.AddChildObjectGroupL();  //AppAddr/<X>
+    FillNodeInfoL(rtToAppAddrRef,aclTypesG,MSmlDmDDFObject::EOneOrMore,
+                  MSmlDmDDFObject::EDynamic,MSmlDmDDFObject::ENode,
+                  KNSmlDdfAddrDescription,KNullDesC8, KMimeType );
+
+
+    MSmlDmDDFObject& nAddrForAppAddrDDF = rtToAppAddrRef.AddChildObjectL( KNSmlDdfAddr );			// Addr
+    FillNodeInfoL( nAddrForAppAddrDDF, aclTypesARG, MSmlDmDDFObject::EOne, 
+                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::EChr, 
+                    KNSmlDdfAddrDescription, KNullDesC8, KMimeType );
+
+	MSmlDmDDFObject& nAddrTypeForAppAddrDDF = rtToAppAddrRef.AddChildObjectL( KNSmlDdfAddrType );	// AddrType
+    FillNodeInfoL( nAddrTypeForAppAddrDDF, aclTypesG, MSmlDmDDFObject::EOne, 
+                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::EChr, 
+                    KNSmlDdfAddrTypeDescription, KNullDesC8, KMimeType );
+
+	MSmlDmDDFObject& nPortForAppAddrDDF = rtToAppAddrRef.AddChildObjectL( KNSmlDdfPort );	// PortNbr
+    FillNodeInfoL( nPortForAppAddrDDF, aclTypesG, MSmlDmDDFObject::EOne, 
+                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::ENode, 
+                    KNSmlDdfPortNbrDescription, KNullDesC8, KMimeType );
+
+    //Runtime port address
+    MSmlDmDDFObject& nrtToPortDDF = nPortForAppAddrDDF.AddChildObjectGroupL();	// PortNbr
+    FillNodeInfoL( nrtToPortDDF, aclTypesG, MSmlDmDDFObject::EOneOrMore, 
+                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::ENode, 
+                    KNSmlDdfPortNbrDescription, KNullDesC8, KMimeType );
+    
+    MSmlDmDDFObject& nPortNbrToPortDDF = nrtToPortDDF.AddChildObjectL( KNSmlDdfPortNbr );	// PortNbr
+    FillNodeInfoL( nPortNbrToPortDDF, aclTypesARG, MSmlDmDDFObject::EZeroOrOne, 
+                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::EInt, 
+                    KNSmlDdfPortNbrDescription, KNullDesC8, KMimeType );
+                    
+
+    MSmlDmDDFObject& nAuthSchemeDDF = nProDDF.AddChildObjectL( KNSmlDdfAuthScheme );	// AuthPref
+    FillNodeInfoL( nAuthSchemeDDF, aclTypesARG, MSmlDmDDFObject::EOne, 
+                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::EChr, 
+                    KNSmlDdfAuthSchemeDescription, KNullDesC8, KMimeType );                     
+   //APPAUthNodes 
+   
+   MSmlDmDDFObject& nAppAuthDDF = nProDDF.AddChildObjectL( KNSmlDdfAppAuth );	// AppAuth
+    FillNodeInfoL( nAppAuthDDF, aclTypesG, MSmlDmDDFObject::EOne, 
+                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::ENode, 
+                    KNSmlDdfAuthSchemeDescription, KNullDesC8, KMimeType ); 
+                    
+   
+   MSmlDmDDFObject& nrtToAppAuthDDF = nAppAuthDDF.AddChildObjectGroupL();	// appauth/<x>
+    FillNodeInfoL( nrtToAppAuthDDF, aclTypesG, MSmlDmDDFObject::EOne, 
+                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::ENode, 
+                    KNSmlDdfAuthSchemeDescription, KNullDesC8, KMimeType ); 
+
+
+   MSmlDmDDFObject& nAauthLevelDDF = nrtToAppAuthDDF.AddChildObjectL( KNSmlDdfAAuthLevel );	// AAuthLevel
+    FillNodeInfoL( nAauthLevelDDF, aclTypesARG, MSmlDmDDFObject::EOne, 
+                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::EChr, 
+                    KNSmlDdfAuthLevelDescription, KNullDesC8, KMimeType );
+                    
+    
+   MSmlDmDDFObject& nAauthtypeDDF = nrtToAppAuthDDF.AddChildObjectL( KNSmlDdfAAuthType );	// AAuthType
+    FillNodeInfoL( nAauthtypeDDF, aclTypesG, MSmlDmDDFObject::EOne, 
+                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::EChr, 
+                    KNSmlDdfAddrTypeDescription, KNullDesC8, KMimeType );
+                    
+
+   MSmlDmDDFObject& nAauthNameDDF = nrtToAppAuthDDF.AddChildObjectL( KNSmlDdfAAuthName );	// AddrType
+    FillNodeInfoL( nAauthNameDDF, aclTypesARG, MSmlDmDDFObject::EOne, 
+                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::EChr, 
+                    KNSmlDdfAuthNameDescription, KNullDesC8, KMimeType );
+                    
+
+   MSmlDmDDFObject& nAauthSecretDDF = nrtToAppAuthDDF.AddChildObjectL( KNSmlDdfAAuthSecret );	// AddrType
+    FillNodeInfoL( nAauthSecretDDF, aclTypesAR, MSmlDmDDFObject::EOne, 
+                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::EChr, 
+                    KNSmlDdfAuthSecretDescription, KNullDesC8, KMimeType );                     
+
+    MSmlDmDDFObject& nAauthDataDDF = nrtToAppAuthDDF.AddChildObjectL( KNSmlDdfAAuthData );	// AddrType
+    FillNodeInfoL( nAauthDataDDF, aclTypesAR, MSmlDmDDFObject::EOne, 
+                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::EChr, 
+                    KNSmlDdfAuthDataDescription, KNullDesC8, KMimeType ); 
+                    
+
+	MSmlDmDDFObject& nNameDDF = nProDDF.AddChildObjectL( KNSmlDdfName );	// Name
+    FillNodeInfoL( nNameDDF, aclTypesARG, MSmlDmDDFObject::EZeroOrOne, 
+                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::EChr, 
+                    KNSmlDdfNameDescription, KNullDesC8, KMimeType );
+                    
+	
+
+	MSmlDmDDFObject& nServerIdDDF = nProDDF.AddChildObjectL( KNSmlDdfServerId );	// ServerId
+    FillNodeInfoL( nServerIdDDF, aclTypesAG, MSmlDmDDFObject::EOne, 
+                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::EChr, 
+                    KNSmlDdfServerIdDescription, KNullDesC8, KMimeType );
+
+   	MSmlDmDDFObject& nextDDF = nProDDF.AddChildObjectL( KNSmlDdfExt );	// Ext
+    FillNodeInfoL( nextDDF, aclTypesG, MSmlDmDDFObject::EOne, 
+                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::ENode, 
+                    KNSmlDdfServerIdDescription, KNullDesC8, KMimeType );
+                    
+   MSmlDmDDFObject& nlockedDDF = nextDDF.AddChildObjectL( KNSmlDdfLocked );	// locked
+    FillNodeInfoL( nlockedDDF, aclTypesARG, MSmlDmDDFObject::EOne, 
+                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::EChr, 
+                    KNSmlDdfServerIdDescription, KNullDesC8, KMimeType );                 
+
+	CleanupStack::PopAndDestroy(); //aclTypes
+	
+	_DBG_FILE("CNSmlDMSettingsAdapter12::DDFStructureL(): end");
+	}
+
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter12::UpdateLeafObjectL
+//  Updates profile leaf object data based on URI.
+// -----------------------------------------------------------------------------
+void CNSmlDMSettingsAdapter12::UpdateLeafObjectL( const TDesC8& aURI,
+                                                const TDesC8& aLUID, 
+                                                const TDesC8& aObject, 
+                                                const TDesC8& /*aType*/, 
+                                                const TInt aStatusRef )
+	{
+	_DBG_FILE("CNSmlDMSettingsAdapter12::UpdateLeafObjectL(): begin");
+	TInt index = -1;
+	if ( !iBufOn)
+		{
+		for (TInt val = 0; val<iBuffer->Count (); val++)
+			{
+			TPtrC8 firstUri = ParentURI (aURI);
+			if ( iBuffer->At(val).iMappingName->Compare (firstUri)== 0)
+				{
+				index = iExecutionIndex = val;
+				break;
+				}
+			}
+		}
+	if ( index >= 0)
+		AddLeafBufferL (aURI, aObject, aStatusRef);
+	else
+		{
+			TInt parentLUID = GetIntObject( aLUID ); 
+			if( parentLUID < 0 )
+			{
+				if( IsDMAccUriFormatMatchPredefined(aURI) )
+    		{
+    			parentLUID = ConstructTreeL(aURI);
+    		}
+    		}
+		if( parentLUID < 0 )
+		{
+		_DBG_FILE( "CNSmlDMSettingsAdapter12::UpdateLeafObjectL( ): ENotFound end" );
+		iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
+		return;
+		}
+
+	if( parentLUID != iParentLUID )
+		{
+		if( FindProfileIdL( parentLUID ) != EFalse )
+			{
+			iParentLUID = parentLUID;
+			}
+		else
+			{
+			iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
+			return;
+			}
+		}
+	SetField( aURI );
+	SetURIInProcessL( aURI);
+	if( !AcceptDMField() )
+		{
+		_DBG_FILE( "CNSmlDMSettingsAdapter12::AddLeafObjectL(): KErr field end" );
+		iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EInvalidObject );
+		return;
+		}
+
+    //	Get Database field type 
+	TNSmlDMFieldType fType = GetDMFieldType();
+	if ( fType == EWrong )
+		{
+		_DBG_FILE( "CNSmlDMSettingsAdapter12::AddLeafObjectL(): EError end" );
+		iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
+		return;
+		}
+ 	
+    TNSmlDMProfileData fData = GetDMField();
+    if( fData == ESyncAccepted )
+        {
+        _DBG_FILE( "CNSmlDMSettingsAdapter12::AddLeafObjectL(): EError end" );
+		iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
+		return;
+        }
+    if( NotValidStrLenght( fData, aObject ) )
+	    {
+		_DBG_FILE( "CNSmlDMSettingsAdapter12::AddLeafObjectL(): KErr length end" );
+		iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ETooLargeObject );
+		return;
+		}
+    //Authentication data leafs to be handled
+    if ( fData == EAuthenticationRequired || fData == EClientNonce 
+        || fData == EServerNonce )
+        {
+        //Check if replace command and replace data as defined
+        
+        TInt replaceStatus = KErrGeneral; 
+        SetAuthInfoL( iParentLUID + KMaxDataSyncID, fData, aObject, replaceStatus );
+        if ( replaceStatus == KErrNone )
+            {
+            iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
+            }
+        else if ( replaceStatus == KErrNotFound )
+            {
+            iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
+            }
+        else
+            {
+            iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
+            }
+       
+        _DBG_FILE( "CNSmlDMSettingsAdapter12::UpdateLeafObjectL():end" );
+        return;
+        }
+        
+    TInt rValue = SetDMFieldDataL( iParentLUID, aObject, fData );
+    if ( fData == EProfilePort )
+        {
+        // in case port is updated, save status ref to be used in 
+        // CompleteOutstandingCmdsL
+        if(rValue==KErrNone)
+            {
+            iPortBuffer[iPortBuffer.Count()-1].iPortBufStatusRef = aStatusRef; 
+            }
+        else if( rValue == KErrOverflow)
+        {
+        	iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ETooLargeObject );
+        }
+        else
+        {
+        	iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
+        }
+        }
+    else if ( fData == EProfileLock && iNewProfile )
+    {
+        if(rValue == KErrNone)
+         iProfileLockBuffer[iProfileLockBuffer.Count()-1].iProfileLockStatusRef = aStatusRef; 	
+        else
+         iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotAllowed);
+    }
+    else
+        {
+        if( rValue != KErrNone )
+            {
+            if( rValue == KErrNotFound )
+                {
+                iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
+                }
+            else if( rValue == KErrInUse )
+                {
+                iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EObjectInUse );
+                }
+            else if( rValue == KErrNoMemory )
+                {
+                iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENoMemory );
+                }
+            else if(rValue == KErrAccessDenied) 
+               {
+                iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotAllowed);
+
+               }
+            else if (  rValue == KErrArgument)
+             {
+             	iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EInvalidObject);
+             	
+             } 
+            else
+                {
+                iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
+                }
+            }
+        else
+            {
+            iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
+            }
+        }
+      }        
+	_DBG_FILE( "CNSmlDMSettingsAdapter12::UpdateLeafObjectL():end" );
+    return;
+	}
+
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter12::DeleteObjectL
+//  Deletes whole profile or leaf object data acording to aURI.
+// -----------------------------------------------------------------------------
+void CNSmlDMSettingsAdapter12::DeleteObjectL( const TDesC8& aURI, 
+                                            const TDesC8& aLUID, 
+                                            const TInt aStatusRef )
+	{
+	_DBG_FILE( "CNSmlDMSettingsAdapter12::DeleteObjectL( ): begin" );
+
+	if( aURI.Find( KNSmlDdfConRef ) != KErrNotFound )
+		{	
+		_DBG_FILE( "CNSmlDMSettingsAdapter12::DeleteObjectL(): NOT ALLOWED end" );
+		iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
+		return;
+		}
+	iLUID = IntLUID( aLUID );
+	if(IsProfileLockedL(iLUID))
+	{
+	  _DBG_FILE( "CNSmlDMSettingsAdapter12::DeleteObjectL(): NOT ALLOWED end" );
+	  
+		iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotAllowed );
+		return;	
+	}
+		
+
+    //	Check which field going to be handled
+	SetField( aURI );
+	SetURIInProcessL(aURI);
+
+    //	Check if valid field
+	if( !AcceptDMField() )
+		{
+
+        // Delete whole profile if aURI called for node
+		TInt last = aURI.LocateReverse( '/' );
+		TInt pos  = aURI.Find( KNSmlDefDMAcc );
+		if( last - 5 == pos )
+			{
+
+            //	If called for node means that profile will deleted from database
+			iLUID = IntLUID( aLUID );
+			DBG_ARGS8( _S8("DeleteObjectL: URI %S LUID = %d"), &aURI, iLUID );
+
+			if( FindProfileIdL( iLUID ) == EFalse )
+				{
+				_DBG_FILE(
+                    "CNSmlDMSettingsAdapter12::DeleteObjectL( ): notfound end");
+				
+                iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
+				return;
+				}
+			else
+				{
+				TInt sRet = DeleteProfileL( iLUID + KMaxDataSyncID );
+				if ( sRet != KErrNone )
+					{
+                    if( sRet == KErrNotFound )
+                        {
+                        iCallBack->SetStatusL( aStatusRef,
+                                                CSmlDmAdapter::ENotFound );
+                        }
+                    else if( sRet == KErrInUse )
+                        {
+                        iCallBack->SetStatusL( aStatusRef,
+                                                CSmlDmAdapter::EObjectInUse );
+                        }
+                    else
+                        {
+                        iCallBack->SetStatusL( aStatusRef, 
+                                                CSmlDmAdapter::EError );
+					    }
+					return;
+					}
+				else
+					{
+					_DBG_FILE( "CNSmlDMSettingsAdapter12::DeleteObjectL( ): EOk end" );
+					iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
+					return;
+					}
+				}
+			}
+		else
+			{
+			_DBG_FILE(
+                "CNSmlDMSettingsAdapter12::DeleteObjectL( ): EInvalidObject end" );
+			iCallBack->SetStatusL( aStatusRef,CSmlDmAdapter::EInvalidObject );
+			return;
+			}
+		}//Delete whole Profile
+
+	iLUID = IntLUID( aLUID );
+	if ( iLUID != iParentLUID )
+		{
+		if( FindProfileIdL( iLUID ) == EFalse )
+			{
+			_DBG_FILE( "CNSmlDMSettingsAdapter12::DeleteObjectL( ): end" );
+			iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
+			return;
+			}
+		iParentLUID = iLUID;
+		}
+	
+	if ( iField->Compare( KNSmlDdfAuthScheme ) == 0 )
+    	{
+		DeleteDMAuthInfoL( iLUID, EAuthenticationRequired );
+        iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
+        return;
+		}
+    else if( iField->Compare( KNSmlDdfClientNonce ) == 0 )
+    	{
+		DeleteDMAuthInfoL( iLUID, EClientNonce );
+        iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
+        return;
+		}
+    else if( iField->Compare(KNSmlDdfServerNonce) == 0 )
+		{
+		DeleteDMAuthInfoL( iLUID, EServerNonce );
+        iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
+        return;
+		}
+
+    // Sets default value if not null field
+	HBufC8* dataObject = HBufC8::NewLC( 15 );
+	dataObject->Des().Format( KNullDesC8 );
+
+	_LIT8(aType,		"text/plain");
+	iLeafType = EDMDelete;
+	UpdateLeafObjectL( aURI, aLUID, *dataObject, aType, aStatusRef );
+    CleanupStack::PopAndDestroy(); //dataObject
+	iLeafType = EDMUnset;
+
+	_DBG_FILE( "CNSmlDMSettingsAdapter12::DeleteObjectL( ): end" );
+	return;
+	}
+
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter12::FetchLeafObjectL
+//  Fetches profile leaf object data acordint to aURI.
+// -----------------------------------------------------------------------------
+void CNSmlDMSettingsAdapter12::FetchLeafObjectL( const TDesC8& aURI, 
+                                                const TDesC8& aLUID, 
+                                                const TDesC8& aType, 
+                                                const TInt aResultsRef, 
+                                                const TInt aStatusRef )
+	{
+
+	_DBG_FILE( "CNSmlDMSettingsAdapter12::FetchLeafObjectL(): begin" );
+	DBG_ARGS(_S16( "DM:Fetch aURI    - %S - %S"), &aURI, &aLUID );
+		
+	iLUID = IntLUID( aLUID );
+	if ( iLUID >= 0 )
+		{
+		if( FindProfileIdL( iLUID ) == EFalse )
+			{
+			_DBG_FILE( "CNSmlDMSettingsAdapter12::FetchLeafObjectL(): ENotFound end" );
+			iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
+			return;
+			}
+		}
+	else
+		{
+		
+		// Static node feature start
+		iLUID = -1;
+		if( IsDMAccUriFormatMatchPredefined(aURI) )
+    	{
+    		iLUID = ConstructTreeL(aURI);
+    	}
+    	
+    	if (iLUID == -1) 
+    	{
+    			_DBG_FILE( "CNSmlDMSettingsAdapter::FetchLeafObjectL(): ENotFound end" );
+				iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
+				return;
+    	}
+		// Static node feature end
+		}
+
+    //	Check which field going to be handled
+	SetField(aURI);
+	SetURIInProcessL(aURI);
+
+    //	Check if valid field
+	if( !AcceptDMField() )
+		{
+		_DBG_FILE( "CNSmlDMSettingsAdapter12::FetchLeafObjectL(): EInvalidObject end" );
+		iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EInvalidObject );
+		return;
+		}
+    /*if(iField->Compare(KNSmlDdfExt) == 0)
+        {
+        iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
+        CBufBase* extNode = CBufFlat::NewL(128);
+        CleanupStack::PushL(extNode);
+        iCallBack->SetResultsL( aResultsRef, *extNode, KNullDesC8 );
+        CleanupStack::PopAndDestroy(extNode);
+        return;
+        }*/
+         
+    //	Get Database field type 
+	TInt fType = GetDMFieldType();
+	if ( fType == EWrong )
+		{
+		_DBG_FILE( "CNSmlDMSettingsAdapter12::FetchLeafObjectL(): EError end" );
+		iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
+		return;
+		}
+
+    TNSmlDMProfileData fieldId = GetDMField();
+    if( fieldId == ESyncAccepted )
+        {
+        _DBG_FILE( "CNSmlDMSettingsAdapter12::AddLeafObjectL(): EError end" );
+		iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
+		return;
+        }
+    CBufBase *lObject = CBufFlat::NewL( 128 );
+    CleanupStack::PushL( lObject );
+    lObject->Reset();
+    
+    CSmlDmAdapter::TError status;
+
+    if ( fType == EStr || fType == EInt || fType == EBin )
+		{ 
+		//  Check for APPId and return w7 
+		TInt rValue = KErrNone;
+       /* if( iField->Compare(KNSmlDdfAppId ) ==0 )
+        {
+        	status = CSmlDmAdapter::EOk;
+        	lObject->InsertL(lObject->Size(),KNSmlDdfAppIdValue);
+        	
+        }*/
+        
+        rValue = GetObjectL( iLUID, fieldId, *lObject );
+		if( rValue != KErrNone )
+		    {
+            if( rValue == KErrNotFound )
+                {
+                status = CSmlDmAdapter::ENotFound;
+                }
+            else if( rValue == KErrInUse )
+                {
+                status = CSmlDmAdapter::EObjectInUse;
+                }
+            else if( rValue == KErrNoMemory )
+                {
+                status = CSmlDmAdapter::ENoMemory;
+                }
+            else
+                {
+                status = CSmlDmAdapter::EError;
+                }
+		    }
+        else
+            {
+            status = CSmlDmAdapter::EOk;
+            }
+		}
+	else 
+		{
+		CleanupStack::PopAndDestroy(); //lObject 
+        _DBG_FILE( "CNSmlDMSettingsAdapter12::FetchLeafObjectL(): ENotFound end" );
+		iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
+		iProfile.Close();
+        iSyncSession.Close();
+        iSyncSessionOpen = EFalse;
+		return;
+		}
+    iCallBack->SetStatusL( aStatusRef, status );
+    
+    if(status==CSmlDmAdapter::EOk)
+    	{
+		iCallBack->SetResultsL( aResultsRef, *lObject, aType );
+    	}
+  	
+    CleanupStack::PopAndDestroy(); //lObject 
+	iProfile.Close();
+    iSyncSession.Close();
+    iSyncSessionOpen = EFalse;
+	_DBG_FILE( "CNSmlDMSettingsAdapter12::FetchLeafObjectL(): end" );
+	return;
+	}
+
+// -----------------------------------------------------------------------------
+//  CSmlDmSettingsAdapter::ChildURIListL
+//  Function returns the list of profiles or leafs of the profile 
+//  acording to aURI.
+// -----------------------------------------------------------------------------
+void CNSmlDMSettingsAdapter12::ChildURIListL( const TDesC8& aURI, 
+                                            const TDesC8& aLUID, 
+                                            const CArrayFix<TSmlDmMappingInfo>& aPreviousURISegmentList, 
+                                            const TInt aResultsRef, 
+                                            const TInt aStatusRef  )
+	{
+	_DBG_FILE( "CNSmlDMSettingsAdapter12::ChildURIListL(): begin" );
+	CBufBase *currentURISegmentList = CBufFlat::NewL( 128 );
+	CleanupStack::PushL( currentURISegmentList );
+ 
+	if(( aURI.Match( KDmAccMatch ) != KErrNotFound ) &&
+	 (aURI.Match( KDmAccMatch3 ) == KErrNotFound ))
+		{
+		//	Check if Profile exists
+        TInt checkLUID = GetIntObject( aLUID );
+        if( FindProfileIdL( checkLUID ) )
+        	{
+            currentURISegmentList->InsertL( currentURISegmentList->Size(), KSegmDMAcc );
+			iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
+		    iCallBack->SetResultsL( aResultsRef, *currentURISegmentList, KNullDesC8 );
+        	}
+        else
+        	{
+        		// Static node feature start
+				checkLUID = -1;
+				if( IsDMAccUriFormatMatchPredefined(aURI) )
+		    	{
+		    		checkLUID = ConstructTreeL(aURI);
+		    	}
+		    	
+		    	if (checkLUID == -1) 
+		    	{
+		    			_DBG_FILE( "CNSmlDMSettingsAdapter::childURI(): ENotFound end" );
+						iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
+						 CleanupStack::PopAndDestroy(  ); // currentURISegmentList
+        			_DBG_FILE( "CNSmlDMSettingsAdapter::ChildURIListL(): end" );
+						return;
+		    	}
+		    	else
+		    	{
+		    		currentURISegmentList->InsertL( currentURISegmentList->Size(), KSegmDMAcc );
+				iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
+			    iCallBack->SetResultsL( aResultsRef, *currentURISegmentList, KNullDesC8 );
+		    
+		    	}
+    	
+    	
+		//	iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
+		// Static node feature start end
+        	}
+
+        CleanupStack::PopAndDestroy(  ); // currentURISegmentList
+        _DBG_FILE( "CNSmlDMSettingsAdapter12::ChildURIListL(): end" );
+		return;
+		}
+    else if(( aURI.Match( KDmAccMatch2 ) != KErrNotFound ) &&
+              (aURI.Match( KDmAccMatch ) == KErrNotFound ))
+        {   
+        if( iSyncSessionOpen == EFalse )
+            {
+            iSyncSession.OpenL();
+            iSyncSessionOpen = ETrue;
+            }
+        RArray<TSmlProfileId> profileIdArray;
+        CleanupClosePushL( profileIdArray );
+        TSmlUsageType usageType = ESmlDevMan;
+        iSyncSession.ListProfilesL( profileIdArray, usageType );
+	    
+        for( TInt p = 0; p < profileIdArray.Count(); p++ )
+		    {
+		    TBool notInList = ETrue;
+		    TInt newline = 0;
+            TInt ddId = profileIdArray[p] - KMaxDataSyncID;
+            
+		    while( notInList && newline < aPreviousURISegmentList.Count() )
+			    {
+				TInt ppId = GetIntObject( aPreviousURISegmentList.At(newline).iURISegLUID );
+				if( ppId == ddId ) 
+				    {
+					notInList = EFalse;
+					break;
+					}
+				newline++;
+			    }
+		    if( notInList )
+			    {
+			    _LIT8( Kprev, "DMId" );
+			    TBuf8<7> addNAME(Kprev); // DMIdnnn , nnn = profileid
+                TInt fixedProfId = profileIdArray[p] - KMaxDataSyncID; //fit to 3 decimal
+			    addNAME.AppendNumFixedWidth( fixedProfId, EDecimal, 3 ); 
+
+    			currentURISegmentList->InsertL( currentURISegmentList->Size(), addNAME );
+	    		currentURISegmentList->InsertL( currentURISegmentList->Size(), KSmlDmSlash );
+		    	DBG_ARGS8( _S8("notInList: Id = %d Name %S"), p, &addNAME );
+
+			    // KNSmlDMStart includes start text for URISeg
+			    TBuf8<20> addURI; // SyncML/DMAcc/DMIdnnn , nnn = profileid
+			    addURI.Append( KNSmlDMStart );
+			    addURI.AppendNumFixedWidth( fixedProfId, EDecimal, 3 ); 
+
+    			TBuf8<3> addLUID;
+	    		addLUID.Num( fixedProfId );
+
+		    	// Also added to mapping
+			    iCallBack->SetMappingL( addURI, addLUID );
+    			}
+	    	else
+		    	{ // Add those in PreviousList which are on database
+			    currentURISegmentList->InsertL( currentURISegmentList->Size(),
+                                                aPreviousURISegmentList.At(newline).iURISeg );
+    			currentURISegmentList->InsertL( currentURISegmentList->Size(), KSmlDmSlash );
+//	    		DBG_ARGS8( _S8("InList: Id = %d Name %S"), newline, 
+//                          aPreviousURISegmentList.At(newline).iURISeg );
+		    	}
+		    }
+        CleanupStack::PopAndDestroy( 1 );//profileIdArray
+        }
+        
+    // AppAddr subtree
+    else if( ( aURI.Match( KDmAccAppAddrMatch ) != KErrNotFound ) && (aURI.Match( KDmAccPortMatch ) == KErrNotFound ) && (aURI.Match( KDmAccPortFullMatch ) == KErrNotFound ))
+        {
+          currentURISegmentList->InsertL( currentURISegmentList->Size(), KDmAccAppAddrId );
+        }
+    else if(( aURI.Match( KDmAccAppAddrFullMatch ) != KErrNotFound ) && (aURI.Match( KDmAccPortMatch ) == KErrNotFound ) && (aURI.Match( KDmAccPortFullMatch ) == KErrNotFound ))
+        {
+          currentURISegmentList->InsertL( currentURISegmentList->Size(), KSegmDMAccAppAddr );
+        }   
+    else if(( aURI.Match( KDmAccPortMatch ) != KErrNotFound ) && (aURI.Match( KDmAccPortFullMatch ) == KErrNotFound ))
+        {
+          currentURISegmentList->InsertL( currentURISegmentList->Size(), KSegmDMAccPortRT );
+        } 
+   else if( aURI.Match( KDmAccPortFullMatch ) != KErrNotFound )
+        {
+          currentURISegmentList->InsertL( currentURISegmentList->Size(), KSegmDMAccport );
+        } 
+          
+   else if(( aURI.Match( KDmAccAppAuthMatch ) != KErrNotFound ) && (aURI.Match( KDmAccAppAuthFullMatch ) == KErrNotFound ))
+        {
+          currentURISegmentList->InsertL( currentURISegmentList->Size(), KDmAccAppAuthNodes );
+        } 
+    else if((aURI.Match(KDmAccAppAuthSrvMatch) != KErrNotFound) || (aURI.Match(KDmAccAppAuthCliMatch) != KErrNotFound) || (aURI.Match(KDmAccAppAuthTransMatch) != KErrNotFound)) //|| (aURI.Match(KDmAccAppAuthObexMatch) != KErrNotFound) || (aURI.Match(KDmAccAppAuthHttpMatch) != KErrNotFound))
+        {
+           currentURISegmentList->InsertL( currentURISegmentList->Size(), KSegmDMAccAppAuth );
+        }
+    else if(( aURI.Match( KDmAccAppAuthFullMatch ) != KErrNotFound ) && (aURI.Find( KDmAccAppAuthNodes ) != KErrNotFound))
+        {
+          currentURISegmentList->InsertL( currentURISegmentList->Size(), KSegmDMAccAppAuth );
+        } 
+                         
+    else if( aURI.Match( KDmAccExtMatch ) != KErrNotFound )
+        {
+          currentURISegmentList->InsertL( currentURISegmentList->Size(), KSegmDMAccLocked );
+        }                      
+    else
+        {
+        iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EInvalidObject );
+        CleanupStack::PopAndDestroy( 1 ); // currentURISegmentList
+        return;
+        }
+
+	iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
+	iCallBack->SetResultsL( aResultsRef, *currentURISegmentList, KNullDesC8 );
+	CleanupStack::PopAndDestroy(); // currentURISegmentList
+	_DBG_FILE( "CNSmlDMSettingsAdapter12::ChildURIListL(): end" );
+	return;
+	}
+
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter12::AddNodeObjectL
+//  Adds new DM-settings profile to database
+// -----------------------------------------------------------------------------
+void CNSmlDMSettingsAdapter12::AddNodeObjectL( const TDesC8& aURI, 
+                                            const TDesC8& aParentLUID, 
+                                            const TInt aStatusRef )
+	{
+	_DBG_FILE( "CNSmlDMSettingsAdapter12::AddNodeObjectL(): begin" );
+
+	if( aParentLUID.Length() > 0 )
+		{
+		iParentLUID = GetIntObject( aParentLUID );
+        if( FindProfileIdL( iParentLUID ) != EFalse )// iProfile != NULL)
+		    {
+		    _DBG_FILE( "CNSmlDMSettingsAdapter12::AddNodeObjectL(): EAlreadyExists end" );
+		    iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EAlreadyExists );
+		    return;
+		    }
+		else
+			{						
+			TInt ret = iCallBack->RemoveMappingL(KNSmlDMSettingsAdapterImplUid,
+							GetDynamicDMNodeUri( aURI ), ETrue );
+			if(ret != KErrNone)
+				{
+			    iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
+		    	return;
+				}			
+			}		
+		}
+	iNewProfile = ETrue; 
+	AddNodeBufferL (aURI, aStatusRef);
+	_DBG_FILE( "CNSmlDMSettingsAdapter12::AddNodeObjectL(): end" );
+	return;
+	}
+
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter12::UpdateLeafObjectL()
+// -----------------------------------------------------------------------------
+void CNSmlDMSettingsAdapter12::UpdateLeafObjectL( const TDesC8&, const TDesC8&, 
+                                                RWriteStream*&, const TDesC8&, 
+                                                const TInt )
+	{
+	//Not supported because data streaming is not supported by this adapter.
+	}
+	
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter12::FetchLeafObjectSizeL
+//  This function fetches leaf object and returns its size.
+// -----------------------------------------------------------------------------
+void CNSmlDMSettingsAdapter12::FetchLeafObjectSizeL( const TDesC8& aURI, 
+                                                    const TDesC8& aLUID, 
+                                                    const TDesC8& aType, 
+                                                    const TInt aResultsRef, 
+                                                    const TInt aStatusRef )
+	{
+	_DBG_FILE( "CNSmlDMSettingsAdapter12::FetchLeafObjectSizeL() : begin" );
+    DBG_ARGS( _S16("DM:Fetch aURI    - %S - %S"), &aURI, &aLUID );
+	
+	iLUID = IntLUID( aLUID );
+	if ( iLUID >= 0 )
+		{
+		if( FindProfileIdL( iLUID ) == EFalse )
+			{
+			_DBG_FILE( "CNSmlDMSettingsAdapter12::FetchLeafObjectL(): ENotFound end" );
+			iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
+			return;
+			}
+		}
+	else
+		{
+		_DBG_FILE( "CNSmlDMSettingsAdapter12::FetchLeafObjectL(): ENotFound end" );
+		iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
+		return;
+		}
+
+    //	Check which field going to be handled
+	SetField( aURI );
+	SetURIInProcessL (aURI);
+     
+    //	Check if valid field
+	if( !AcceptDMField() )
+		{
+		_DBG_FILE( "CNSmlDMSettingsAdapter12::FetchLeafObjectL(): EInvalidObject end" );
+		iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EInvalidObject );
+		return;
+		}
+    /*if(aURI.Find( KNSmlDdfExt ) != KErrNotFound)
+        {
+        return;
+        }*/
+    
+    //	Get Database field type 
+	TInt fType = GetDMFieldType();
+	if ( fType == EWrong )
+		{
+		_DBG_FILE( "CNSmlDMSettingsAdapter12::FetchLeafObjectL(): EError end" );
+		iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
+		return;
+		}
+
+    CBufBase *lObject = CBufFlat::NewL( 128 );
+	CleanupStack::PushL( lObject );
+    lObject->Reset();
+
+	if ( fType == EStr || fType == EInt || fType == EBin )
+		{ 
+        TInt rValue = GetObjectL( iLUID, GetDMField(), *lObject );
+		if( lObject->Size() == 0 || rValue != KErrNone )
+		    {
+            if( rValue == KErrNotFound )
+                {
+                iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
+                }
+            else if( rValue == KErrInUse )
+                {
+                iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EObjectInUse );
+                }
+            else if( rValue == KErrNoMemory )
+                {
+                iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENoMemory );
+                }
+            else
+                {
+                iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
+                }
+		    }
+		}
+	else 
+		{
+		CleanupStack::PopAndDestroy();//lObject 
+		_DBG_FILE( "CNSmlDMSettingsAdapter12::FetchLeafObjectL(): ENotFound end" );
+		iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
+		return;
+		}
+    TInt objSizeInBytes = lObject->Size();
+	TBuf8<16> stringObjSizeInBytes;
+	stringObjSizeInBytes.Num( objSizeInBytes );
+
+	lObject->Reset();
+	lObject->InsertL( 0, stringObjSizeInBytes );
+    iCallBack->SetResultsL( aResultsRef, *lObject, aType );
+	iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EOk);
+
+	CleanupStack::PopAndDestroy( 1 ); //lObject
+	_DBG_FILE( "CNSmlDMSettingsAdapter12::FetchLeafObjectSizeL(): end" );
+	return;
+    }
+
+// -----------------------------------------------------------------------------
+// CNSmlDMSettingsAdapter12::ExecuteCommandL()
+// -----------------------------------------------------------------------------
+void CNSmlDMSettingsAdapter12::ExecuteCommandL( const TDesC8&, const TDesC8&,
+                                                const TDesC8&, const TDesC8&, 
+                                                const TInt )
+	{
+	//Not supported. Command execution via DM settings adapter not possible.	
+	}
+
+// -----------------------------------------------------------------------------
+// CNSmlDMSettingsAdapter12::ExecuteCommandL()
+// -----------------------------------------------------------------------------
+void CNSmlDMSettingsAdapter12::ExecuteCommandL( const TDesC8&, const TDesC8&, 
+                                                RWriteStream*&, const TDesC8&, 
+                                                const TInt )
+	{
+	//Not supported. Command execution via DM settings adapter not possible.
+	}
+
+// -----------------------------------------------------------------------------
+// CNSmlDMSettingsAdapter12::CopyCommandL()
+// -----------------------------------------------------------------------------
+void CNSmlDMSettingsAdapter12::CopyCommandL( const TDesC8&, const TDesC8&, 
+                                            const TDesC8&, const TDesC8&, 
+                                            const TDesC8&, TInt )
+	{
+	//Not supported.
+	}
+
+// -----------------------------------------------------------------------------
+// CNSmlDMSettingsAdapter12::StartAtomicL()
+// -----------------------------------------------------------------------------
+void CNSmlDMSettingsAdapter12::StartAtomicL()
+	{
+	//Not supported. Handling Atomic command cycles not supported by the adapter.
+	}
+
+// -----------------------------------------------------------------------------
+// CNSmlDMSettingsAdapter12::CommitAtomicL()
+// -----------------------------------------------------------------------------
+void CNSmlDMSettingsAdapter12::CommitAtomicL()
+	{
+	//Not supported. Handling Atomic command cycles not supported by the adapter.
+	}
+
+// -----------------------------------------------------------------------------
+// CNSmlDMSettingsAdapter12::RollbackAtomicL()
+// -----------------------------------------------------------------------------
+void CNSmlDMSettingsAdapter12::RollbackAtomicL()
+	{
+	//Not supported. Handling Atomic command cycles not supported by the adapter.
+	}
+
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter12::StreamingSupport()
+//  Indicates if streaming is supported.
+// -----------------------------------------------------------------------------
+TBool CNSmlDMSettingsAdapter12::StreamingSupport( TInt& /*aItemSize*/ )
+	{
+	return EFalse;
+	}
+
+// -----------------------------------------------------------------------------
+// CNSmlDMSettingsAdapter12::StreamCommittedL()
+// -----------------------------------------------------------------------------
+void CNSmlDMSettingsAdapter12::StreamCommittedL()
+	{
+	//Not supported. Streaming not supported by the DM settings adapter.
+	}
+// -----------------------------------------------------------------------------
+// CNSmlDMSettingsAdapter12::CompleteOutstandingCmdsL()
+// If buffering used, commands must be executed before returning this function.
+// -----------------------------------------------------------------------------
+void CNSmlDMSettingsAdapter12::CompleteOutstandingCmdsL()
+	{
+	// Check if Buffered
+	for (int val=0; val<iBuffer->Count ();val++)
+		{
+		if ( !iBuffer->At(val).iExecuted)
+			{
+			TInt count = iBuffer->At(val).iLeafBuf->Count ()-1;
+			iExecutionIndex = val;
+			iComplete = ETrue;
+			ExecuteBufferL ();
+			}
+		}
+ for (TInt i = 0;i<iProfileLockBuffer.Count(); i++)
+	    {
+	       TInt err = SetProfileLockL(iProfileLockBuffer[i].iProfileLockLUID, iProfileLockBuffer[i].iProfileLock) ;
+   
+	    }
+
+	// if port was updated, set it
+	for (TInt i = 0;i<iPortBuffer.Count(); i++)
+	    {
+        TInt err = SetProfileConnectionPortNrL( iPortBuffer[i].iPortBufLUID, iPortBuffer[i].iPortBuf );
+        
+        // set status
+        if ( err != KErrNone )
+            {
+            iCallBack->SetStatusL( iPortBuffer[i].iPortBufStatusRef, CSmlDmAdapter::EError );
+            }
+        else
+            {
+            iCallBack->SetStatusL( iPortBuffer[i].iPortBufStatusRef, CSmlDmAdapter::EOk );
+            }
+	    
+	    }
+    iPortBuffer.Reset();	
+	}
+
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter12::AcceptDMField
+//  This function checks if field to be handled is valid.
+// -----------------------------------------------------------------------------
+TBool CNSmlDMSettingsAdapter12::AcceptDMField()
+	{
+	_DBG_FILE("CNSmlDMSettingsAdapter12::AcceptDMField(): begin");
+
+	if ( iField->Compare( KNSmlDdfAddrType ) == 0 )
+		{
+		return ETrue;
+		}
+	else if ( iField->Compare( KNSmlDdfAddr ) == 0 )
+		{
+		return ETrue;
+		}
+	else if ( iField->Compare( KNSmlDdfPortNbr ) == 0 )
+		{
+		return ETrue;
+		}
+	else if ( iField->Compare( KNSmlDdfAuthScheme ) == 0 )
+		{
+		return ETrue;
+		}
+	else if ( iField->Compare( KNSmlDdfServerId ) == 0 )
+		{
+		return ETrue;
+		}
+	else if ( iField->Compare( KNSmlDdfServerPW ) == 0 )
+		{
+		return ETrue;
+		}
+	else if ( iField->Compare( KNSmlDdfServerNonce ) == 0 )
+		{
+		return ETrue;
+		}
+	else if ( iField->Compare( KNSmlDdfClientUserName ) == 0 )
+		{
+		return ETrue;
+		}
+	else if ( iField->Compare( KNSmlDdfClientPW ) == 0 )
+		{
+		return ETrue;
+		}
+	else if ( iField->Compare( KNSmlDdfClientNonce ) == 0 )
+		{
+		return ETrue;
+		}
+	else if ( iField->Compare( KNSmlDdfName ) == 0 )
+		{
+		return ETrue;
+		}
+		
+	else if ( iField->Compare( KNSmlDdfId ) == 0 )
+		{
+		return ETrue;
+		}
+	else if ( iField->Compare(KNSmlDdfAppId) == 0 )
+	    {
+	    return ETrue;
+	    }
+	else if ( iField->Compare(KNSmlDdfPrefConRef) == 0 )
+	    {
+	    return ETrue;
+	    }
+	else if (iField->Compare(KNSmlDdfAAuthLevel) == 0 )
+	    {
+	    return ETrue;
+	    }
+  	    
+    else if (iField->Compare(KNSmlDdfAAuthType) == 0 )
+        {
+        return ETrue;
+        }
+    else if (iField->Compare(KNSmlDdfAAuthName) == 0 )
+        {
+        return ETrue;
+        }
+        
+    else if (iField->Compare(KNSmlDdfAAuthSecret) == 0 )
+        {
+        return ETrue;
+        }
+    else if (iField->Compare(KNSmlDdfAAuthData) == 0 )
+        {
+        return ETrue;
+        }
+    else if (iField->Compare(KNSmlDdfLocked) == 0 )
+        {
+        return ETrue;
+        }    
+
+	_DBG_FILE( "CNSmlDMSettingsAdapter12::AcceptDMField(): end" );
+	return EFalse; // Not a valid Type
+	}
+
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter12::GetDMField
+//	Matches URI fieldname to DM-database. 
+// -----------------------------------------------------------------------------
+TNSmlDMProfileData CNSmlDMSettingsAdapter12::GetDMField() 
+	{
+
+	if ( iField->Compare( KNSmlDdfAddrType ) == 0 )
+		{
+	
+	     return EProfileAddrType;
+	      
+		}
+	else if ( iField->Compare( KNSmlDdfAddr ) == 0 )
+		{
+		return EProfileURL;
+		}
+	else if ( iField->Compare( KNSmlDdfPortNbr ) == 0 )
+		{
+		return EProfilePort;
+		}
+	else if ( iField->Compare( KNSmlDdfAuthScheme ) == 0 )
+		{
+		return EAuthenticationRequired;
+		}
+	else if ( iField->Compare( KNSmlDdfServerId ) == 0 )
+		{
+		return EServerId;
+		}
+	else if ( iField->Compare( KNSmlDdfServerPW ) == 0 )
+		{
+		return ESharedSecret;
+		}
+	else if ( iField->Compare( KNSmlDdfServerNonce ) == 0 )
+		{
+		return EServerNonce;
+		}
+	else if ( iField->Compare( KNSmlDdfClientUserName ) == 0 )
+		{
+		return EProfileDMServerUsername;
+		}
+	else if ( iField->Compare( KNSmlDdfClientPW ) == 0 )
+		{
+		return EProfileDMServerPassword;
+		}
+	else if ( iField->Compare( KNSmlDdfClientNonce ) == 0 )
+		{
+		return EClientNonce;
+		}
+	else if ( iField->Compare( KNSmlDdfName ) == 0 )
+		{
+		return EProfileName;
+		}
+	else if ( iField->Compare( KNSmlDdfId ) == 0 )
+		{
+		return EProfileId;
+		}
+	
+	else if ( iField->Compare( KNSmlDdfPrefConRef ) == 0 )
+		{
+		return EProfileIAPId;
+		}
+	
+    else if ( iField->Compare( KNSmlDdfAppId ) == 0 )
+		{
+		return EProfileIAPId;
+		}
+    else if ( iField->Compare( KNSmlDdfLocked) == 0 )
+		{
+		return EProfileLock;
+		}
+
+    else if (iField->Compare(KNSmlDdfAAuthLevel) == 0 )
+	    {
+	     if(iURIField->Find(KDmAccAppAuthDyn1) != KErrNotFound)
+	    return EPRofileServerCred;
+	     else if (iURIField->Find(KDmAccAppAuthDyn2)!= KErrNotFound)
+	    return EPRofileClientCred;
+		else if (iURIField->Find(KDmAccAppAuthTransport)!= KErrNotFound)
+	    return EProfileTransport;		     
+	    }
+  	    
+    else if (iField->Compare(KNSmlDdfAAuthType) == 0 )
+        {
+        return EProfileAAuthType;
+        }
+    else if (iField->Compare(KNSmlDdfAAuthName) == 0 )
+        {
+        if(iURIField->Find(KDmAccAppAuthDyn1) != KErrNotFound)
+	    return EProfileName;
+	    else if (iURIField->Find(KDmAccAppAuthDyn2)!= KErrNotFound)
+	    return EProfileDMServerUsername;
+	    else if (iURIField->Find(KDmAccAppAuthTransport)!= KErrNotFound)
+	    {
+	       return ETransportAuthName;
+	    }
+	    
+        // return ETrue;
+        }
+        
+    else if (iField->Compare(KNSmlDdfAAuthSecret) == 0 )
+        {
+         if(iURIField->Find(KDmAccAppAuthDyn1) != KErrNotFound)
+	    return ESharedSecret;
+	        else if (iURIField->Find(KDmAccAppAuthDyn2)!= KErrNotFound)
+	    return EProfileDMServerPassword;
+		else if (iURIField->Find(KDmAccAppAuthTransport)!= KErrNotFound)
+	    {
+	       return EProfileTransportPassword;
+	    }
+        }
+    else if (iField->Compare(KNSmlDdfAAuthData) == 0 )
+        {
+          if(iURIField->Find(KDmAccAppAuthDyn1) != KErrNotFound)
+	    return EServerNonce;
+	     else if (iURIField->Find(KDmAccAppAuthDyn2)!= KErrNotFound)
+	    return EClientNonce;
+	    else if (iURIField->Find(KDmAccAppAuthTransport)!= KErrNotFound)
+	     return EProfileTransportAuthData;
+        }
+        		
+	
+	_DBG_FILE( "CNSmlDMSettingsAdapter12::GetDMField(): Error" );
+	return ESyncAccepted;
+	}
+
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter12::GetDMFieldType
+//	Gets field data type. 
+// -----------------------------------------------------------------------------
+TNSmlDMFieldType CNSmlDMSettingsAdapter12::GetDMFieldType() const
+	{
+	if ( iField->Compare( KNSmlDdfAddrType ) == 0 )
+		{
+		return EInt;
+		}
+	else if ( iField->Compare( KNSmlDdfAddr ) == 0 )
+		{
+		return EStr;
+		}
+	else if ( iField->Compare( KNSmlDdfPortNbr ) == 0 )
+		{
+		return EInt;
+		}
+	else if ( iField->Compare( KNSmlDdfAuthScheme ) == 0 )
+		{
+		return EInt;
+		}
+	else if ( iField->Compare( KNSmlDdfServerId ) == 0 )
+		{
+		return EStr;
+		}
+	else if ( iField->Compare( KNSmlDdfServerPW ) == 0 )
+		{
+		return EStr;
+		}
+	else if ( iField->Compare( KNSmlDdfServerNonce ) == 0 )
+		{
+		return EBin;
+		}
+	else if ( iField->Compare( KNSmlDdfClientUserName ) == 0 )
+		{
+		return EStr;
+		}
+	else if ( iField->Compare( KNSmlDdfClientPW ) == 0 )
+		{
+		return EStr;
+		}
+	else if (iField->Compare(KNSmlDdfClientNonce) == 0)
+		{
+		return EBin;
+		}
+	else if ( iField->Compare( KNSmlDdfName ) == 0 )
+		{
+		return EStr;
+		}
+		
+	else if ( iField->Compare( KNSmlDdfId ) == 0 )
+		{
+		return EInt;
+		}
+    else if( iField->Compare(KNSmlDdfAppId ) ==0 ) 
+        {
+        	return EStr;
+        }
+	else if ( iField->Compare( KNSmlDdfPrefConRef ) == 0 )
+		{
+		return EInt;
+		}
+	else if (iField->Compare(KNSmlDdfAAuthLevel) == 0 )
+	    {
+	    return EStr;
+	    }
+  	    
+    else if (iField->Compare(KNSmlDdfAAuthType) == 0 )
+        {
+        return EStr;
+        }
+    else if (iField->Compare(KNSmlDdfAAuthName) == 0 )
+        {
+        return EStr;
+        }
+        
+    else if (iField->Compare(KNSmlDdfAAuthSecret) == 0 )
+        {
+        return EStr;
+        }
+    else if (iField->Compare(KNSmlDdfAAuthData) == 0 )
+        {
+        return EBin;
+        }
+        
+	else if(iField->Compare(KNSmlDdfLocked)==0)
+	    {
+	    return EStr;
+	    }
+		        
+
+	_DBG_FILE( "CNSmlDMSettingsAdapter12::GetDMFieldType(): Error" );
+	return EWrong;
+	}
+
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter12::IntLUID
+//	Returns integer value for a profile LUID.
+// -----------------------------------------------------------------------------
+TInt CNSmlDMSettingsAdapter12::IntLUID( const TDesC8& aLUID )
+	{
+	TLex8 lLex( aLUID );
+
+	if( lLex.Val( iLUID ) == KErrNone )
+	    {
+	    return iLUID;
+	    }
+	else
+        {
+        return -1;
+        }
+	}
+
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter12::GetIntObject
+//	Returns integer value for a aObject.
+// -----------------------------------------------------------------------------
+TInt CNSmlDMSettingsAdapter12::GetIntObject( const TDesC8& aObject )
+	{
+	TLex8 lLex( aObject );
+
+	TInt value = 0;
+
+	if( lLex.Val( value ) != KErrNone )
+	    {
+	    return KErrNotFound;
+	    }
+	else
+        {
+        return value;
+        }
+	}
+
+// -----------------------------------------------------------------------------
+//	CNSmlDMSettingsAdapter12::GetIntObject16()
+//	Returns Integer Value for a 16 bit data object.
+// -----------------------------------------------------------------------------
+TInt CNSmlDMSettingsAdapter12::GetIntObject16( const TDesC& aObject )
+	{
+	TLex16 lLex( aObject );
+
+	TInt value = 0;
+
+	if( lLex.Val( value ) == KErrNone )
+	    {
+	    return value;
+	    }
+	else
+        {
+        return value;
+        }
+	}
+
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter12::SetIntObjectLC
+//	Converts integer to HBufC8 type buffer and returns reference to it.
+// -----------------------------------------------------------------------------
+TDesC8& CNSmlDMSettingsAdapter12::SetIntObjectLC( const TInt& aObject )
+	{
+	HBufC8* buf = HBufC8::NewLC( 8 );
+	TPtr8 ptrBuf = buf->Des();
+
+	ptrBuf.Num( aObject );
+    return *buf;
+	}
+
+// -----------------------------------------------------------------------------
+//	CNSmlDMSettingsAdapter12::NotValidStrLenght
+//	Checks if data length is valid.
+// -----------------------------------------------------------------------------
+TBool CNSmlDMSettingsAdapter12::NotValidStrLenght( const TNSmlDMProfileData& aProfileItem, 
+                                                const TDesC8& aSource )
+	{
+	TInt lLen = aSource.Length();
+	TBool lBool = EFalse;
+
+	switch ( aProfileItem )
+		{
+		case ( EProfileName ) :
+			{
+			if( lLen > KNSmlMaxProfileNameLength )
+			    {
+			    lBool = ETrue;	
+			    }
+			}
+		break;
+		
+		case ( EProfileDMServerUsername ) :
+			{
+			if( lLen > KNSmlMaxUsernameLength )
+			    {
+			    lBool = ETrue;
+			    }
+			}
+		break;
+        
+		case ( EProfileHttpUsername ) :
+		case (ETransportAuthName):
+			{
+				if( lLen > KNSmlDmMaxHttpAuthUsernameLength )
+			    {
+			    lBool = ETrue;
+			    }
+			}
+		break;
+		case ( EProfileHttpPassword ) :
+		case (EProfileTransportPassword):
+			{
+				if( lLen > KNSmlDmMaxHttpAuthPasswordLength )
+			    {
+			    lBool = ETrue;
+			    }
+			}
+		break;
+		case ( EProfileDMServerPassword ) :
+			{
+			if( lLen > KNSmlMaxPasswordLength )
+			    {
+			    lBool = ETrue;	
+			    }
+			}
+		break;
+
+		case ( ESharedSecret ) :
+			{
+			if( lLen > KNSmlDmSharedSecretMaxLength )
+			    {
+			    lBool = ETrue;	
+			    }
+			}
+		break;
+
+		case ( EProfileURL ) :
+			{
+			if( lLen > KNSmlMaxURLLength )
+			    {
+			    lBool = ETrue;	
+			    }
+			}
+		break;
+
+		case ( EServerId ) :
+			{
+			if( lLen > KNSmlDmServerIdMaxLength )
+			    {
+			    lBool = ETrue;	
+			    }
+			}
+		break;
+
+		case ( EProfileIAPId ) :
+			{
+			if( lLen > KNSmlMaxURLLength )
+			    {
+			    lBool = ETrue;	
+			    }
+			}
+		break;
+
+		case ( EAuthenticationRequired ) :
+		case ( EProfileAAuthType ) :
+			{
+			if( lLen > 20 ) 
+			    {
+			    lBool = ETrue;	
+			    }
+			}
+		break;
+
+		case ( EProfileId ) :
+		case ( EProfilePort ) :
+		case ( EProfileMediumType ) :
+		case ( EProfileAddrType ) :
+	
+			{
+			if( lLen > 8 )
+			    {
+			    lBool = ETrue;	
+			    }
+			}
+		break;
+		
+        case ( EServerNonce ) :
+	    case ( EClientNonce ) :
+		case (EProfileTransportAuthData):
+	        {
+            lBool = EFalse;
+	        }
+        break;
+		case ( EProfileTransport ):
+		{
+			lBool = EFalse;
+		}
+		break;
+		case EProfileLock :
+		 {
+		 	if(lLen > 6 )
+		 	{
+			    lBool = ETrue;	
+			}
+		 	
+		 }
+		  break;
+		default:
+			{
+			lBool = ETrue;
+			}
+		}
+
+	return lBool;
+	}
+
+// -----------------------------------------------------------------------------
+//	CNSmlDMSettingsAdapter12::SetField
+//	Last element of the URI (after last '/') is returned.
+// -----------------------------------------------------------------------------
+TInt CNSmlDMSettingsAdapter12::SetField( const TDesC8& aSource )
+	{
+	if ( aSource.LocateReverse( KNSmlDMUriSeparator ) == KErrNotFound )
+	    {
+	    iField->Des().Format( aSource );
+	    }
+	else
+        {
+        iField->Des().Format( aSource.Mid( aSource.LocateReverse( KNSmlDMUriSeparator ) + 1 ) );
+        }
+
+    return KErrNone;
+	}
+
+// -----------------------------------------------------------------------------
+//	CNSmlDMSettingsAdapter12::SetField
+//	Last element of the URI (after last '/') is returned.
+// -----------------------------------------------------------------------------
+TInt CNSmlDMSettingsAdapter12::SetURIInProcessL( const TDesC8& aSource )
+	{
+    
+    if( iURIField )
+    {
+    	delete iURIField;
+    	iURIField = NULL;
+    }
+    iURIField = HBufC8::NewL( aSource.Length() );
+    TPtr8 newPortNbr = iURIField->Des();
+    newPortNbr.Append( aSource );          
+
+    return KErrNone;
+	}
+	
+
+
+
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter12::ConvertTo8LC
+//	Converts string value to 8-bit and returns reference.
+// -----------------------------------------------------------------------------
+TDesC8& CNSmlDMSettingsAdapter12::ConvertTo8LC( const TDesC& aSource )
+	{
+	HBufC8* buf = HBufC8::NewLC( aSource.Length() * 2 );
+	TPtr8 bufPtr = buf->Des();
+	CnvUtfConverter::ConvertFromUnicodeToUtf8( bufPtr, aSource );
+
+    return *buf;
+	}
+
+// -----------------------------------------------------------------------------
+//	CNSmlDMSettingsAdapter12::ConvertTo16LC
+//	Converts string value to 16-bit and returns reference.
+// -----------------------------------------------------------------------------
+TDesC16& CNSmlDMSettingsAdapter12::ConvertTo16LC( const TDesC8& aSource)
+	{
+	HBufC16* buf16 = HBufC16::NewLC( aSource.Length() );
+	TPtr16 bufPtr16 = buf16->Des();
+
+	CnvUtfConverter::ConvertToUnicodeFromUtf8( bufPtr16, aSource );
+
+    return *buf16; 
+	}
+
+// -------------------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter12::GetConRefL
+//	Gets the URI for given aObject (IAP ID).
+// -------------------------------------------------------------------------------------
+TInt CNSmlDMSettingsAdapter12::GetConRefL( CBufBase& aObject )
+	{
+	_DBG_FILE( "CNSmlDMSettingsAdapter12::GetConRefL() : begin" );
+	TInt profIAPid = -1;
+    TInt apIdResponse = GetProfileIAPIdL( profIAPid );
+    if( profIAPid < 0 )
+    {
+    	return KErrNone;
+    }    
+    if( apIdResponse != KErrNone )
+    {
+    	return KErrNotFound;
+    }
+    CNSmlDMIAPMatcher* apmatch = CNSmlDMIAPMatcher::NewL( iCallBack );
+    CleanupStack::PushL( apmatch );
+    HBufC8* uri8 = apmatch->URIFromIAPIdL( profIAPid );
+    if( uri8 )
+        {
+        CleanupStack::PushL( uri8 );
+        aObject.InsertL( aObject.Size(), uri8->Des() );
+        CleanupStack::PopAndDestroy(); // uri8
+        }
+    else
+        {
+        CleanupStack::PopAndDestroy(); // apMatch
+        return KErrGeneral;    
+        }
+    CleanupStack::PopAndDestroy(); // iapMatch
+	_DBG_FILE( "CNSmlDSSettingsAdapter::GetToNAPIDL() : end" );
+	return KErrNone;
+	}
+
+// -------------------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter12::SetConRefL()
+//	Set the profile IAP Id value according to given URI.
+// -------------------------------------------------------------------------------------
+TInt CNSmlDMSettingsAdapter12::SetConRefL( const TInt aLUID, const TDesC8& aObject )
+	{
+    _DBG_FILE( "CNSmlDMSettingsAdapter12::SetConRefL() : begin" );
+    CNSmlDMIAPMatcher* apmatch = CNSmlDMIAPMatcher::NewL( iCallBack );
+    CleanupStack::PushL( apmatch );
+    TInt lIAPid = apmatch->IAPIdFromURIL( aObject );
+    CleanupStack::PopAndDestroy(); // iapmatch
+    if(aObject.Length() >0 && lIAPid == KErrNotFound) 
+    {
+    	return KErrGeneral;
+    }
+    TInt apIdResponse = SetProfileConnectionPropertyL( aLUID, lIAPid );    
+    _DBG_FILE( "CNSmlDMSettingsAdapter12::SetConRefL() : end" );
+	return apIdResponse;
+	}
+
+// ------------------------------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter12::ParseUri
+//  Resolves portnbr (separated with ':') as integer from Uri. 
+// ------------------------------------------------------------------------------------------------
+TInt CNSmlDMSettingsAdapter12::ParseUri( const TDesC8& aRealURI, TInt& aPort )
+	{
+	TInt offset=0;
+    //http:
+	if( aRealURI.Find( KNSmlDMSettingsHTTP )==0 )//http:
+		{
+		offset = KNSmlDMSettingsHTTP().Length();
+		}
+	else if( aRealURI.Find( KNSmlDMSettingsHTTPS )==0 )//https:
+		{
+		offset = KNSmlDMSettingsHTTPS().Length();
+		}
+
+	TBool portFound=EFalse;
+    ////123.234.345.456:80/syncml
+	for( TInt i = offset; i < aRealURI.Length(); i++ )
+		{
+		if( aRealURI[i] == KNSmlDMColon )// ':'
+			{
+			portFound = ETrue;
+			offset=i;
+			}
+		if( portFound && aRealURI[i] == KNSmlDMUriSeparator ) // '/'
+			{
+			aPort = GetIntObject( aRealURI.Mid( (offset + 1), (i - offset-1) ) );
+			}
+		else if ( portFound && i == aRealURI.Length() - 1 ) // last char
+		    {
+		    // port is from offset to the end
+		    aPort = GetIntObject( aRealURI.Right( aRealURI.Length() - offset - 1 ) );
+		    }
+		}
+	
+	if( aPort != 0 )
+		{
+		return KErrNone;
+		}
+	else
+		{
+		return KErrNotFound;
+		}
+	}
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter12::OpenSyncSessionAndDSProfileL
+//  The function opens the server session and DM profile.
+// -----------------------------------------------------------------------------
+TInt CNSmlDMSettingsAdapter12::OpenSyncSessionAndProfileL( const TInt aIntLUID, 
+                                                        TSmlOpenMode aMode )
+    {
+    _DBG_FILE( "CNSmlDMSettingsAdapter12::OpenSyncSessionAndProfileL(): begin" );
+    if( iSyncSessionOpen == EFalse )
+        {
+        iSyncSession.OpenL();
+        iSyncSessionOpen = ETrue;
+        }
+    TInt trueLuid = aIntLUID + KMaxDataSyncID;
+    TInt rValue(KErrNone);
+    
+    if(trueLuid!=iCurrentProfile)
+	    {
+	    RArray<TSmlProfileId> profileIdArray;
+	    CleanupClosePushL( profileIdArray );
+	    TSmlUsageType usageType = ESmlDevMan;
+	    iSyncSession.ListProfilesL( profileIdArray, usageType );
+	    TInt index = profileIdArray.Find( trueLuid );
+	    CleanupStack::PopAndDestroy(); //profileIdArray
+	    if( index == KErrNotFound )
+	        {
+	        return KErrNotFound;
+	        }
+	    TRAP( rValue, iProfile.OpenL( iSyncSession, trueLuid, aMode ) );
+	    iCurrentProfile = trueLuid;
+	    if( rValue != KErrNone )
+	        {
+	        iCurrentProfile = 0;
+	        iProfile.Close();
+			iSyncSession.Close();
+	        iSyncSessionOpen = EFalse;
+	        }
+    	}
+    _DBG_FILE( "CNSmlDMSettingsAdapter12::OpenSyncSessionAndProfileL(): end" );
+    return rValue;
+    }
+
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter12::FindProfileId
+//  Function checks if profile can be found.
+// -----------------------------------------------------------------------------
+TBool CNSmlDMSettingsAdapter12::FindProfileIdL( const TInt aIntLUID )
+	{
+    _DBG_FILE( "CNSmlDMSettingsAdapter12::FindProfileIdL(): begin" );
+	if( iSyncSessionOpen == EFalse )
+	    {
+        iSyncSession.OpenL();
+        iSyncSessionOpen = ETrue;
+	    }
+    
+	RArray <TSmlProfileId> profileList;
+    CleanupClosePushL( profileList );
+	TSmlUsageType usageType = ESmlDevMan;		
+	iSyncSession.ListProfilesL( profileList, usageType );
+	if( profileList.Count() == 0 ) 
+	    {
+        CleanupStack::PopAndDestroy(); //profileList
+        return EFalse;
+	    }		
+    TInt item = profileList.Find( aIntLUID + KMaxDataSyncID );
+    CleanupStack::PopAndDestroy(); //profileList
+    if( item != KErrNotFound )
+		{
+		_DBG_FILE( "CNSmlDMSettingsAdapter12::FindProfileIdL(): end" );
+        return ETrue;
+		}
+    _DBG_FILE( "CNSmlDMSettingsAdapter12::FindProfileIdL(): end" );
+	return EFalse;
+	}
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter12::IsServerIDExistL
+//  Function checks if serverid exist.
+// -----------------------------------------------------------------------------
+TBool CNSmlDMSettingsAdapter12::IsServerIDExistL( const TDesC8& aServerid )
+{
+	_DBG_FILE( "CNSmlDMSettingsAdapter12::IsServerIDExistL(): begin" );
+	if( iSyncSessionOpen == EFalse )
+	{
+       	iSyncSession.OpenL();
+       	iSyncSessionOpen = ETrue;
+	}
+    TBool ret(EFalse);
+	RArray <TSmlProfileId> profileList;
+    CleanupClosePushL( profileList );
+	TSmlUsageType usageType = ESmlDevMan;		
+	iSyncSession.ListProfilesL( profileList, usageType );
+	TInt count = profileList.Count();
+	if( count > 0 ) 
+	{
+		for(TInt i =0; i< count; i++)
+		{
+			TInt pid = i + KMaxDataSyncID;
+			TInt index = profileList.Find(pid );
+			if( index >= i  )
+			{	    		
+	        	TInt rValue(KErrNone);
+	        	RSyncMLDevManProfile profile;
+	    		TRAP( rValue, profile.OpenL( iSyncSession, pid, ESmlOpenRead ) );
+	    		if( rValue == KErrNone )
+	        	{
+			        CleanupClosePushL(profile);
+	        		if(((aServerid.Compare(profile.ServerId())) == 0) &&
+						((profile.ServerId()).Length() == aServerid.Length()))
+	        		{
+	        			ret = ETrue;
+			            CleanupStack::PopAndDestroy(&profile);//profile
+						break;	        			
+	        		}						
+			        CleanupStack::PopAndDestroy(&profile);//profile
+				}				
+			}	
+		}        
+	}		
+    CleanupStack::PopAndDestroy(); //profileList
+    _DBG_FILE( "CNSmlDMSettingsAdapter12::IsServerIDExistL(): end" );
+	return ret;
+	}
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter12::CreateNewProfileL
+//  The function creates new DM profile via client API.
+// -----------------------------------------------------------------------------
+TInt CNSmlDMSettingsAdapter12::CreateNewProfileL( TInt& aPID )
+	{
+    _DBG_FILE("CNSmlDMSettingsAdapter12::CreateNewProfileL(): begin");
+	if( iSyncSessionOpen == EFalse )
+	    {
+        iSyncSession.OpenL();
+        iSyncSessionOpen = ETrue;
+	    }
+    TRAPD( value1, iProfile.CreateL( iSyncSession ) );
+    if( value1 != KErrNone )
+        {
+   	    iCurrentProfile = 0;
+        iProfile.Close();
+        iSyncSession.Close();
+        iSyncSessionOpen = EFalse;
+        return value1;
+        }
+    
+    TRAPD( value2, iProfile.UpdateL() );
+    if( value2 != KErrNone )
+        {
+   	    iCurrentProfile = 0;
+        iProfile.Close();
+        iSyncSession.Close();
+        iSyncSessionOpen = EFalse;
+        return value2;
+        }
+    
+    aPID = iProfile.Identifier();
+    iCurrentProfile = 0;
+    iProfile.Close();
+    _DBG_FILE( "CNSmlDMSettingsAdapter12::CreateNewProfileL(): end" );
+    return KErrNone;
+	}
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter12::SetProfileServerURIL()
+//  The function sets the server URL for a profile.
+// -----------------------------------------------------------------------------
+TInt CNSmlDMSettingsAdapter12::SetProfileServerURIL( const TInt aPID, 
+                                                    const TDesC8& aObj )
+	{
+    _DBG_FILE( "CNSmlDMSettingsAdapter12::SetProfileServerURIL(): begin" );
+	TInt retVal = KErrNone;
+    retVal = OpenSyncSessionAndProfileL( aPID, ESmlOpenReadWrite );
+    if( retVal != KErrNone )
+		{
+	    iCurrentProfile = 0;
+	    iProfile.Close();
+        return retVal;	
+		}
+	RArray<TSmlTransportId> transportIdArray;
+    CleanupClosePushL( transportIdArray );
+	iProfile.ListConnectionsL( transportIdArray );
+    if( transportIdArray.Count() == 0 )
+	    {
+        CleanupStack::PopAndDestroy();//transportIdArray
+	    iCurrentProfile = 0;
+        iProfile.Close();
+        return KErrGeneral;
+	    }
+	    
+	TInt newPort(0);
+    
+    RSyncMLConnection conn;
+    CleanupClosePushL( conn );
+    conn.OpenL( iProfile, transportIdArray[0] );
+
+    if(ParseUri(aObj,newPort)==KErrNotFound)
+        {
+        TInt port = 0;
+        ParseUri(conn.ServerURI(),port);
+        if(port==0)
+        	{
+        	port = 80;
+        	}
+           	
+       	TBuf8<5> buf;
+    	buf.Num( port );
+        	
+        TInt totalSize = aObj.Length() + buf.Length() + 1;
+        HBufC8* newServerURI = HBufC8::NewLC( totalSize );
+        SetPortNrToAddrStr( aObj, newServerURI, buf );
+        conn.SetServerURIL( *newServerURI );
+        conn.UpdateL();
+    	CleanupStack::PopAndDestroy( newServerURI ); 
+        }
+    else
+        {
+        conn.SetServerURIL( aObj );
+        conn.UpdateL();
+        }
+	
+
+	iProfile.UpdateL();
+	
+	CleanupStack::PopAndDestroy( 2 ); //transportIdArray, conn
+    iCurrentProfile = 0;
+	iProfile.Close();
+    _DBG_FILE( "CNSmlDMSettingsAdapter12::SetProfileServerURIL(): end" );
+	return KErrNone;
+	}
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter12::SetProfileDisplayNameL()
+//  The function sets the display name for a profile.
+// -----------------------------------------------------------------------------
+TInt CNSmlDMSettingsAdapter12::SetProfileDisplayNameL( const TInt aPID, 
+                                                        const TDesC8& aObj )
+	{
+    _DBG_FILE( "CNSmlDMSettingsAdapter12::SetProfileDisplayNameL(): begin" );
+	TInt retVal = KErrNone;
+    retVal = OpenSyncSessionAndProfileL( aPID, ESmlOpenReadWrite );
+    if( retVal != KErrNone )
+		{
+	    iCurrentProfile = 0;
+		iProfile.Close();
+        return retVal;	
+		}
+    iProfile.SetDisplayNameL( ConvertTo16LC( aObj ) );
+    iProfile.UpdateL();
+	CleanupStack::PopAndDestroy(); //ConvertTo16LC
+    iCurrentProfile = 0;
+    iProfile.Close();
+    _DBG_FILE( "CNSmlDMSettingsAdapter12::SetProfileDisplayNameL(): end" );
+	return KErrNone;
+	}
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter12::IsProfileLockedL()
+//  The function to tell whether the profile is locked
+// -----------------------------------------------------------------------------
+TInt CNSmlDMSettingsAdapter12::IsProfileLockedL(const TInt aPID)
+{
+   _DBG_FILE( "CNSmlDMSettingsAdapter12::SetProfileDisplayNameL(): begin" );
+	TInt retVal = KErrNone;
+    retVal = OpenSyncSessionAndProfileL( aPID, ESmlOpenRead );
+     if( retVal != KErrNone )
+		{
+	    iCurrentProfile = 0;
+		iProfile.Close();
+        return retVal;	
+		}
+		
+	retVal=iProfile.ProfileLocked(EFalse, EFalse);
+	iCurrentProfile = 0;
+    iProfile.Close();
+    if(retVal)
+      {
+      /* CRepository* centrep = NULL;
+       TRAPD( err, centrep = CRepository::NewL( KCRUidDeviceManagementInternalKeys) );    
+       TInt IsPrfoileEditable = 0;
+       if(!err)
+         centrep->Get( KDevOverrideProfileLock, IsPrfoileEditable );
+       delete centrep;
+       if (!IsPrfoileEditable)
+          retVal=  KErrAccessDenied;
+       else
+         retVal= KErrNone;*/
+       retVal=  KErrAccessDenied;
+      }
+      
+      
+       
+    return retVal;
+    
+}
+
+
+
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter12::SetProfileLockL()
+//  The function to setor reset the profile lock.
+// -----------------------------------------------------------------------------
+
+TInt CNSmlDMSettingsAdapter12::SetProfileLockL( const TInt aPID, TInt aLockValue)
+	{
+    _DBG_FILE( "CNSmlDMSettingsAdapter12::SetProfileLockL(): begin" );
+	TInt retVal = KErrNone;
+    retVal = OpenSyncSessionAndProfileL( aPID, ESmlOpenReadWrite );
+    if( retVal != KErrNone )
+		{
+	    iCurrentProfile = 0;
+		iProfile.Close();
+        return retVal;	
+		}
+		 
+		iProfile.ProfileLocked(ETrue, aLockValue );
+    iProfile.UpdateL();
+	  iCurrentProfile = 0;
+    iProfile.Close();
+    _DBG_FILE( "CNSmlDMSettingsAdapter12::SetProfileLockL(): end" );
+	return KErrNone;
+	}
+
+
+
+
+
+
+
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter12::SetProfileHttpUserNameL
+//  The function sets the profile http/network name.
+// -----------------------------------------------------------------------------
+
+TInt CNSmlDMSettingsAdapter12::SetProfileHttpUserNameL( const TInt aPID, const TDesC8& aObj )
+{
+	TInt retVal = KErrNone;
+	 retVal = OpenSyncSessionAndProfileL( aPID, ESmlOpenReadWrite );
+    if( retVal != KErrNone )
+		{
+	    iCurrentProfile = 0;
+		iProfile.Close();
+        return KErrGeneral;	
+		}
+        
+	  RSyncMLConnection connection;
+	  TBuf8<KBufSize32> key; 
+      RArray<TSmlTransportId> connIdArray;
+      CleanupClosePushL( connIdArray );
+	  iProfile.ListConnectionsL( connIdArray );
+      if( connIdArray.Count() == 1 )
+        {
+        
+		connection.OpenL( iProfile, KUidNSmlMediumTypeInternet.iUid );
+		CleanupClosePushL( connection );
+		
+		connection.SetPropertyL( KNSmlHTTPAuth, KNSmlTrueVal );
+		connection.SetPropertyL( KNSmlHTTPUsername, aObj );
+		connection.UpdateL();
+		CleanupStack::PopAndDestroy(  );
+		}
+	  else
+		{
+		connection.SetPropertyL( KNSmlHTTPAuth, KNSmlFalseVal );
+		connection.UpdateL();
+		}
+		
+		       
+        CleanupStack::PopAndDestroy(   );
+    
+	return retVal;
+	
+}
+    
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter12::SetProfileUserNameL
+//  The function sets the profile user name.
+// -----------------------------------------------------------------------------
+TInt CNSmlDMSettingsAdapter12::SetProfileUserNameL( const TInt aPID, 
+                                                    const TDesC8& aObj )
+	{
+    _DBG_FILE( "CNSmlDMSettingsAdapter12::SetProfileUserNameL(): begin" );
+	TInt retVal = OpenSyncSessionAndProfileL( aPID, ESmlOpenReadWrite );
+    if( retVal != KErrNone )
+		{
+	    iCurrentProfile = 0;
+		iProfile.Close();
+        return KErrGeneral;	
+		}
+    iProfile.SetUserNameL( aObj );
+    iProfile.UpdateL();
+    iCurrentProfile = 0;
+    iProfile.Close();
+    _DBG_FILE( "CNSmlDMSettingsAdapter12::SetProfileUserNameL(): end" );
+	return KErrNone;
+	}
+
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter12::SetProfileProtocolVersionL
+//  The function sets the protocol version to be supported.
+// -----------------------------------------------------------------------------
+TInt CNSmlDMSettingsAdapter12::SetProfileProtocolVersionL( const TInt aPID, 
+                                                            const TDesC8& )
+	{
+    _DBG_FILE( "CNSmlDMSettingsAdapter12::SetProfileProtocolVersionL(): begin" );
+	TInt retVal = KErrNone;
+    retVal = OpenSyncSessionAndProfileL( aPID, ESmlOpenReadWrite );
+    if( retVal != KErrNone )
+		{
+	    iCurrentProfile = 0;
+		iProfile.Close();
+        return retVal;	
+		}
+	//The syncSession to Sync server is open.
+    TSmlProtocolVersion protocol = ESmlVersion1_2;
+    iProfile.SetProtocolVersionL( protocol );
+	TRAPD( iError, iProfile.UpdateL() );
+    iCurrentProfile = 0;
+    iProfile.Close();
+    _DBG_FILE( "CNSmlDMSettingsAdapter12::SetProfileProtocolVersionL(): begin" );
+	return iError;
+	}
+
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter12::SetProfileServerIdL
+//  The function sets the profile ServerId value.
+// -----------------------------------------------------------------------------
+TInt CNSmlDMSettingsAdapter12::SetProfileServerIdL( const TInt aPID, 
+                                                    const TDesC8& aObj )
+	{
+    _DBG_FILE("CNSmlDMSettingsAdapter12::SetProfileServerIdL(): begin");
+	TInt retVal = OpenSyncSessionAndProfileL( aPID, ESmlOpenReadWrite );
+    if( retVal != KErrNone )
+		{
+	    iCurrentProfile = 0;
+		iProfile.Close();
+        return KErrGeneral;	
+		}
+	iProfile.SetServerIdL( aObj );
+    TRAP(retVal,iProfile.UpdateL() );
+    iCurrentProfile = 0;
+    iProfile.Close();
+    _DBG_FILE( "CNSmlDMSettingsAdapter12::SetProfileServerIdL(): end" );
+	return retVal;
+	}
+
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter12::SetProfileServerPasswordL
+//  The function sets the profile server password.
+// -----------------------------------------------------------------------------
+TInt CNSmlDMSettingsAdapter12::SetProfileServerPasswordL( const TInt aPID, 
+                                                        const TDesC8& aObj )
+	{
+    _DBG_FILE( "CNSmlDMSettingsAdapter12::SetProfileServerPasswordL(): begin" );
+	TInt retVal = OpenSyncSessionAndProfileL( aPID, ESmlOpenReadWrite );
+    if( retVal != KErrNone )
+		{
+	    iCurrentProfile = 0;
+		iProfile.Close();
+        return KErrGeneral;
+		}
+	iProfile.SetServerPasswordL( aObj );
+    iProfile.UpdateL();
+    iCurrentProfile = 0;
+    iProfile.Close();
+    _DBG_FILE( "CNSmlDMSettingsAdapter12::SetProfileServerPasswordL(): end" );
+	return KErrNone;
+	}
+
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter12::SetProfileHttpPasswordL
+//  The function sets the profile network/http password.
+// -----------------------------------------------------------------------------
+
+
+  TInt CNSmlDMSettingsAdapter12::SetProfileHttpPasswordL( const TInt aPID, const TDesC8& aObj )
+  {
+ TInt retVal = KErrNone;
+	 retVal = OpenSyncSessionAndProfileL( aPID, ESmlOpenReadWrite );
+    if( retVal != KErrNone )
+		{
+	    iCurrentProfile = 0;
+		iProfile.Close();
+        return KErrGeneral;	
+		}
+        
+	  RSyncMLConnection connection;
+	  TBuf8<KBufSize32> key; 
+      RArray<TSmlTransportId> connIdArray;
+      CleanupClosePushL( connIdArray );
+	  iProfile.ListConnectionsL( connIdArray );
+      if( connIdArray.Count() == 1 )
+        {
+        
+		connection.OpenL( iProfile, KUidNSmlMediumTypeInternet.iUid );
+		CleanupClosePushL( connection );
+		
+		connection.SetPropertyL( KNSmlHTTPAuth, KNSmlTrueVal );
+		connection.SetPropertyL( KNSmlHTTPPassword, aObj );
+		connection.UpdateL();
+		CleanupStack::PopAndDestroy(  );
+		}
+	  else
+		{
+	//	connection.SetPropertyL( KNSmlHTTPAuth, KNSmlFalseVal );
+		connection.UpdateL();
+		}
+		
+		       
+        CleanupStack::PopAndDestroy(   );
+    
+	return retVal;
+	
+	
+  	
+  }
+  
+  
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter12::SetProfilePasswordL
+//  The function sets the profile password.
+// -----------------------------------------------------------------------------
+TInt CNSmlDMSettingsAdapter12::SetProfilePasswordL( const TInt aPID, 
+                                                    const TDesC8& aObj )
+	{
+    _DBG_FILE( "CNSmlDMSettingsAdapter12::SetProfilePasswordL(): begin" );
+	TInt retVal = KErrNone;
+    retVal = OpenSyncSessionAndProfileL( aPID, ESmlOpenReadWrite );
+    if( retVal != KErrNone )
+		{
+	    iCurrentProfile = 0;
+		iProfile.Close();
+        return retVal;	
+		}
+	iProfile.SetPasswordL( aObj );
+    iProfile.UpdateL();
+    iCurrentProfile = 0;
+    iProfile.Close();
+    _DBG_FILE( "CNSmlDMSettingsAdapter12::SetProfilePasswordL(): begin" );
+	return KErrNone;
+	}
+
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter12::SetProfileConnectionPropertyL
+//  This function sets the profile IAP id.
+// -----------------------------------------------------------------------------
+TInt CNSmlDMSettingsAdapter12::SetProfileConnectionPropertyL( const TInt aLUID, 
+                                                            const TInt aIAPid )
+	{
+    TInt retVal = OpenSyncSessionAndProfileL( aLUID, ESmlOpenReadWrite );
+    if( retVal != KErrNone )
+		{
+	    iCurrentProfile = 0;
+		iProfile.Close();
+        return retVal;	
+		}
+    RArray<TSmlTransportId> connIdArray;
+    CleanupClosePushL( connIdArray );
+    iProfile.ListConnectionsL( connIdArray );
+    if( connIdArray.Count() == 1 )
+        {
+        RSyncMLTransport transport;
+        CleanupClosePushL( transport );
+	    transport.OpenL( iSyncSession, connIdArray[0] );
+	    const CSyncMLTransportPropertiesArray& props = transport.Properties();
+	    TInt index = props.Find( KNSmlIAPId );
+        if( index > 0 )
+            {
+            RSyncMLConnection conn;
+            CleanupClosePushL( conn );
+	        conn.OpenL( iProfile, connIdArray[0] );
+            HBufC8* apIdBuffer = HBufC8::NewLC( 4 );
+	        TPtr8 ptrIapIdBuf = apIdBuffer->Des();
+        	ptrIapIdBuf.Num( aIAPid );
+            conn.SetPropertyL( KNSmlIAPId, ptrIapIdBuf );
+            conn.UpdateL();
+            CleanupStack::PopAndDestroy( 2 ); //conn, apIdBuffer
+            retVal = KErrNone;
+            }
+        else
+            {
+            retVal = KErrNotFound;
+            }
+        CleanupStack::PopAndDestroy( 1 ); //transport
+        }
+    else
+        {
+        retVal = KErrNotFound;
+        }
+    iCurrentProfile = 0;
+    iProfile.Close();
+    CleanupStack::PopAndDestroy(); //connIdArray
+    return retVal;
+	}
+
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter12::DeleteProfileL
+//  The function deleted the profile from DM database.
+// -----------------------------------------------------------------------------
+TInt CNSmlDMSettingsAdapter12::DeleteProfileL( const TInt aPID )
+	{
+    _DBG_FILE( "CNSmlDMSettingsAdapter12::DeleteProfileL(): begin" );
+	if( iSyncSessionOpen == EFalse )
+	    {
+        iSyncSession.OpenL();
+        iSyncSessionOpen = ETrue;
+	    }
+    
+	RArray<TSmlProfileId> profileIdArray;
+    CleanupClosePushL( profileIdArray );
+	TSmlUsageType usageType = ESmlDevMan;
+	iSyncSession.ListProfilesL( profileIdArray, usageType );
+	TInt index = profileIdArray.Find( aPID );
+	if ( index == KErrNotFound )
+		{
+        //No match
+        CleanupStack::PopAndDestroy();//profileIdArray
+		return KErrNotFound;		
+		}
+    iSyncSession.DeleteProfileL( aPID );
+    iSyncSession.Close();
+    iSyncSessionOpen = EFalse;
+    CleanupStack::PopAndDestroy();//profileIdArray
+    _DBG_FILE( "CNSmlDMSettingsAdapter12::DeleteProfileL(): end" );
+	return KErrNone;
+	}
+
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter12::GetObjectL
+//  The function checks which leaf data to be fetched.
+// -----------------------------------------------------------------------------
+TInt CNSmlDMSettingsAdapter12::GetObjectL( TInt aLUID, TNSmlDMProfileData aDMField, 
+                                            CBufBase& aObject )
+    {
+    TInt retVal = KErrNone;
+    if( iField->Compare(KNSmlDdfAppId ) ==0 )
+        {
+         	aObject.InsertL(aObject.Size(),KNSmlDdfAppIdValue);
+         	return retVal;
+        	
+        }
+        
+    retVal = OpenSyncSessionAndProfileL( aLUID, ESmlOpenRead );
+    if( retVal != KErrNone )
+		{
+	    iCurrentProfile = 0;
+		iProfile.Close();
+        return retVal;	
+		}
+    switch ( aDMField )
+		{
+		case ( EProfileName ) :
+			{
+            GetProfileNameL( aObject );
+            }
+		break;
+		
+		case ( EProfileDMServerUsername ) :
+			{
+			GetProfileUserNameL( aObject );
+            }
+		break;
+
+		case ( EProfileURL ) :
+			{
+			GetProfileServerURLL( aObject );
+			TInt port(0);
+			if(ParseUri(aObject.Ptr(0),port)==KErrNone)
+			    {
+			    HBufC8* addr = aObject.Ptr(0).AllocLC();
+			    aObject.Reset();
+			    TInt portStart = addr->LocateReverse(KNSmlDMColon);
+			    aObject.InsertL(aObject.Size(),addr->Left(portStart));
+			    
+			    TInt portLen=addr->Mid(portStart).Locate(KNSmlDMUriSeparator);
+			    if(portLen!=KErrNotFound)
+			        {
+			        aObject.InsertL(aObject.Size(),addr->Mid(portStart+portLen));
+			        }
+			    	    			    
+			    CleanupStack::PopAndDestroy(); //addr
+			    }
+            }
+		break;
+
+		case ( EServerId ) :
+			{
+            GetServerIdL( aObject );
+            }
+		break;
+
+		case ( EProfileIAPId ) :
+			{
+		    retVal = GetConRefL( aObject );
+            }
+		break;
+
+		case ( EProfilePort ) :
+            {
+            GetProfileServerURLL( aObject );
+            if ( aObject.Size() == 0 )
+                {
+                retVal = KErrNone;
+                break;
+                }
+            GetProfilePortNumberL ( aObject );
+            }
+        break;
+        
+   		case ( EProfileDMServerPassword ) :
+			{
+			retVal = EInvalidObject;
+            }
+		break;
+
+		case ( ESharedSecret ) :
+            {//ServerPW
+            retVal = EInvalidObject;
+            }
+        break;
+        case ( EProfileId ) :
+        break;
+		case ( EProfileAddrType ) :
+		    {
+		    aObject.InsertL(aObject.Size(),KNSmlAddrtype);
+		    }
+		   break;
+		case (EProfileHttpUsername ):
+		    {
+		       retVal = GetHttpUsernameL(aObject);
+		    }
+		break;
+		case (EPRofileServerCred) :
+		    {
+		    aObject.InsertL(aObject.Size(),KDmAccAppAuthLevelSrv);
+		    
+		    }
+		  break;
+        case (EPRofileClientCred) :
+		    {
+		    aObject.InsertL(aObject.Size(),KDmAccAppAuthLevelCli);
+		    }
+		  break;
+		  
+		case (ETransportAuthName) :
+		    {
+    			TInt mediumType= ENone;
+    			GetProfileConnectiontypeL( mediumType );
+    			if( mediumType == EHttp)
+    			{
+    		    retVal = GetHttpUsernameL(aObject);
+    		    }
+    		    else if(mediumType == EObex)
+    		    {
+    		      aObject.InsertL(aObject.Size(),KNSmlDMNullDesc8);
+    		    }
+		    
+		    }
+		break;
+		
+		
+		case (EProfileTransport) :
+		{
+			TInt mediumType= ENone;
+			GetProfileConnectiontypeL( mediumType );
+			if( mediumType == EHttp)
+			{
+		    aObject.InsertL(aObject.Size(),KDmAccAppAuthLevelHttp);
+		    }
+		    else if(mediumType == EObex)
+		    {
+		      aObject.InsertL(aObject.Size(),KDmAccAppAuthLevelObx);
+		    }
+            
+		}
+
+       break;
+        case ( EAuthenticationRequired ) :
+		case ( EProfileAAuthType ):
+        case ( EServerNonce ) :
+        case ( EClientNonce ) :
+            {
+            retVal = GetDMAuthInfoL( aLUID, aDMField, aObject );
+            }
+        break;
+        
+     case EProfileLock :
+      {
+        	
+       TBool isProfileLocked = iProfile.ProfileLocked(EFalse, EFalse);
+       if(isProfileLocked)
+       {
+       	aObject.InsertL(aObject.Size(),KDmProfileLocked);
+       }
+       else
+       {
+       	aObject.InsertL(aObject.Size(),KDmProfileUnLocked);
+       }
+       
+      }   
+     break;		
+		default:
+			{
+			User::Panic( KNSmlIndexOutOfBoundStr, KNSmlPanicIndexOutOfBound );
+			}
+		}
+    iCurrentProfile = 0;
+    iProfile.Close();
+    return retVal;
+    }
+
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter12::SetProfileConnectionPortNrL()
+//  The function sets the profile port number.
+// -----------------------------------------------------------------------------
+TInt CNSmlDMSettingsAdapter12::SetProfileConnectionPortNrL( const TInt aLUID, 
+                                                            const TDesC8& aPort )
+    {
+    _DBG_FILE( "CNSmlDMSettingsAdapter12::SetProfileConnectionPortNrL(): begin" );
+    TInt retVal = KErrNone;
+    
+    if( iPortNbr )
+        {
+        delete iPortNbr;
+        iPortNbr = NULL;
+        }
+    iPortNbr = HBufC8::NewL( aPort.Length() );
+    TPtr8 newPortNbr = iPortNbr->Des();
+    newPortNbr.Append( aPort );
+        
+    retVal = OpenSyncSessionAndProfileL( aLUID, ESmlOpenReadWrite );
+    if( retVal != KErrNone )
+		{
+	    iCurrentProfile = 0;
+		iProfile.Close();
+        _DBG_FILE( "CNSmlDMSettingsAdapter12::SetProfileConnectionPortNrL(): end" );
+        return retVal;	
+		}
+    
+    RArray<TSmlTransportId> transportIdArray;
+    CleanupClosePushL( transportIdArray );
+    iProfile.ListConnectionsL( transportIdArray );
+    
+    RSyncMLConnection conn;
+    CleanupClosePushL( conn );
+    conn.OpenL( iProfile, transportIdArray[0] );
+        
+    HBufC8* serverURI = conn.ServerURI().AllocLC();
+    if( serverURI->Length() == 0 )
+        {
+	    iCurrentProfile = 0;
+        iProfile.Close();
+        CleanupStack::PopAndDestroy( 3 ); //transportIdArray, conn, serverURI
+        _DBG_FILE( "CNSmlDMSettingsAdapter12::SetProfileConnectionPortNrL(): end" );
+        return retVal;
+	    }
+    TInt totalSize = serverURI->Size() + newPortNbr.Size() + 1;
+    HBufC8* newServerURI = HBufC8::NewL( totalSize );
+    CleanupStack::PushL( newServerURI );
+    SetPortNrToAddrStr( *serverURI, newServerURI, newPortNbr );
+    
+    conn.SetServerURIL( *newServerURI );
+    conn.UpdateL();
+    
+    CleanupStack::PopAndDestroy( 4 ); //transportIdArray, conn, serverURI, newServerURI
+    iCurrentProfile = 0;
+	iProfile.Close();
+    _DBG_FILE( "CNSmlDMSettingsAdapter12::SetProfileConnectionPortNrL(): end" );
+    return retVal;	
+    }
+
+// ------------------------------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter12::SetPortNrToAddrStr
+//  Sets a portnbr (separated with ':') to profile server URI. 
+// ------------------------------------------------------------------------------------------------
+void CNSmlDMSettingsAdapter12::SetPortNrToAddrStr( const TDesC8& aSrvURI, HBufC8* aNewURI, 
+                                                    const TDesC8& aPort )
+	{
+	TInt offset=0;
+    if( aSrvURI.Find( KNSmlDMSettingsHTTP ) == 0 )//http://
+		{
+		offset = KNSmlDMSettingsHTTP().Length();
+		}
+	else if( aSrvURI.Find( KNSmlDMSettingsHTTPS ) == 0 )//https://
+		{
+		offset = KNSmlDMSettingsHTTPS().Length();
+		}
+	TInt portStart = -1;
+    TInt separatorPos = aSrvURI.Length();
+    TInt i = 0;
+    for( i = offset; i < aSrvURI.Length(); i++ )
+		{
+		if( aSrvURI[i] == KNSmlDMColon )// ':'
+			{
+			portStart = i;
+			}
+		if( aSrvURI[i] == KNSmlDMUriSeparator )// '/'
+			{
+            separatorPos = i;
+			break;
+			}
+		}
+	
+    TPtr8 ptrNewSrvURI = aNewURI->Des();
+    if( portStart < 0 && separatorPos > 0 && iLeafType != EDMDelete )
+        {
+        ptrNewSrvURI.Append( aSrvURI.Left( separatorPos ) );//http://123.234.345.456
+        ptrNewSrvURI.Append( KNSmlDMColon );
+        ptrNewSrvURI.Append( aPort );
+        ptrNewSrvURI.Append( aSrvURI.Right( aSrvURI.Length() - separatorPos ) );
+        }
+    else if ( portStart > 0 && separatorPos > 0 && iLeafType != EDMDelete )
+        {
+        ptrNewSrvURI.Append( aSrvURI.Left( portStart + 1 ) );//123.234.345.456:
+        ptrNewSrvURI.Append( aPort );//123.234.345.456:xx(x)
+        ptrNewSrvURI.Append( aSrvURI.Right( aSrvURI.Length() - separatorPos ) );
+        }
+    else if ( portStart > 0 &&  iLeafType == EDMDelete ) //delete port number from uri
+        {
+        ptrNewSrvURI.Append( aSrvURI.Left( portStart ) );//123.234.345.456
+        ptrNewSrvURI.Append( aSrvURI.Right( aSrvURI.Length() - separatorPos ) );
+        }
+    else
+        {
+        ptrNewSrvURI.Append( aSrvURI );
+        }
+    return;
+	}
+
+// ------------------------------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter12::SetDMFieldDataL
+//  Selects and Sets value to a field based on field id got from URI.
+// ------------------------------------------------------------------------------------------------
+TInt CNSmlDMSettingsAdapter12::SetDMFieldDataL( const TInt aLUID, const TDesC8& aObject, 
+                                                const TNSmlDMProfileData aField )
+    {
+    TInt rValue = KErrGeneral;
+    TInt lockvalue =0;
+     if(aField != EProfileLock)
+    {
+      rValue=IsProfileLockedL(aLUID);	
+      if (rValue!= KErrNone)
+      {
+       return rValue;
+      }
+         
+     }
+     else if (aField == EProfileLock)
+     {
+     	 if (! iNewProfile)
+     	  {
+     	  	 lockvalue =0;
+     	  	  if(aObject.Length()> 1)
+     	  	  {
+     	  	    rValue = KErrArgument;
+              	 return rValue;
+     	  	  }
+           lockvalue = GetIntObject(aObject);
+           if(lockvalue != 0 && lockvalue != 1)
+               {
+               	  //lockvalue = 0; 
+               	  rValue = KErrArgument;
+               	 return rValue;
+               }  
+     	  	 rValue  = SetProfileLockL(aLUID , lockvalue);
+     	  	 return rValue;
+     	  }
+      
+     }
+      
+    switch ( aField )
+		{
+		case ( EProfileURL ) :
+			{
+		    rValue = SetProfileServerURIL( aLUID, aObject );    
+			}
+		break;
+		case ( EServerId ) :
+			{
+		    rValue = SetProfileServerIdL( aLUID, aObject );
+			}
+		break;
+        case ( ESharedSecret ) :
+			{
+		    rValue = SetProfileServerPasswordL( aLUID, aObject );
+			}
+		break;
+        case ( EProfileDMServerUsername ) :
+			{
+		    rValue = SetProfileUserNameL( aLUID, aObject );
+			}
+		break;
+        case ( EProfileDMServerPassword ) :
+			{
+		    rValue = SetProfilePasswordL( aLUID, aObject );
+			}
+		break;
+        case ( EProfileName ) :
+			{
+		    rValue = SetProfileDisplayNameL( aLUID, aObject );
+			}
+		break;
+        case ( EProfileIAPId ) :
+			{
+            rValue = SetConRefL( aLUID, aObject );
+		    }
+		break;
+		case ( ETransportAuthName ):
+		{
+		    OpenSyncSessionAndProfileL( aLUID, ESmlOpenReadWrite );
+		  	TInt mediumType = ENone;
+	    	GetProfileConnectiontypeL( mediumType );
+			if( mediumType == EHttp)
+			{
+		    rValue = SetProfileHttpUserNameL ( aLUID, aObject );
+		    }
+		    else if(mediumType == EObex)
+		    {
+		      rValue = KErrNone;
+		      
+		    }
+			
+	
+		//break;
+		}
+		break;
+		case ( EProfileTransportPassword ):
+		{
+		 TInt mediumType = ENone;
+		  OpenSyncSessionAndProfileL( aLUID, ESmlOpenReadWrite );
+	    	GetProfileConnectiontypeL( mediumType );
+			if( mediumType == EHttp)
+			{
+		    rValue = SetProfileHttpPasswordL ( aLUID, aObject );
+		    }
+		    else if(mediumType == EObex)
+		    {
+		      rValue = KErrNone;
+		      
+		    }		
+		}
+		break;
+		case (EProfileTransportAuthData) :
+			{
+				rValue = KErrNone;
+			}
+		break;
+		
+		case ( EProfileHttpUsername ) :
+		{
+			rValue = SetProfileHttpUserNameL ( aLUID, aObject );
+		}
+		break;
+		case ( EProfileHttpPassword ) :
+		{
+			rValue = SetProfileHttpPasswordL ( aLUID, aObject );
+		}
+		break;
+        case ( EProfileId ) :
+			{
+		    }
+		break;
+        case ( EProfilePort ) :
+			{
+			if(aObject.Size()<=5)
+			{
+			TInt port = GetIntObject(aObject);
+	        if( port > KPortMinSize && port < KPortMaxSize )
+		         {
+	    			TPortBuffer element;
+	    			element.iPortBuf=aObject;
+	    			element.iPortBufLUID = aLUID;
+	    			iPortBuffer.Append(element);
+	    			rValue=KErrNone;
+                 }
+                else
+                {
+				if (port <= KPortMinSize )
+				   rValue = KErrUnderflow;
+                	else
+                   rValue=KErrOverflow;
+                }
+			}
+			else
+			{
+					rValue=KErrOverflow;
+			}
+			// save information of the port
+		    }
+		break;
+		
+		case ( EProfileAddrType ) :
+			{
+			  if (aObject.Match(KNSmlAddrtype)!=KErrNotFound)
+			  rValue=KErrNone;
+			  
+			}
+		break;
+		
+		
+        case ( EProfileMediumType ) :
+			{
+            if ( iLeafType == EDMDelete )
+			    {
+                return KErrNone;
+			    }
+            iObject = GetIntObject( aObject );
+            if(iObject<0)
+                {
+                iObject = EHttp;
+                }
+            rValue = SetProfileAddrTypeL( aLUID, iObject );
+		    }
+		break;
+		case ( EProfileTransport) :
+		{
+			if (aObject.Match(KDmAccAppAuthLevelHttp)!=KErrNotFound)
+			{
+				iObject = EHttp;
+			}
+			else if (aObject.Match(KDmAccAppAuthLevelObx)!=KErrNotFound)
+			{
+				iObject = EObex;
+			}
+		 rValue = SetProfileAddrTypeL( aLUID, iObject );	
+		}
+		break;
+        case ( EAuthenticationRequired ) :
+        case ( EClientNonce ) :
+        case ( EServerNonce ) :
+		break;
+     case ( EProfileLock ) :
+              lockvalue =0;
+              lockvalue = GetIntObject(aObject);
+             if(lockvalue != 0 && lockvalue != 1)
+                   lockvalue = 0; 
+            
+            TLockBuffer element;
+	    	element.iProfileLock=lockvalue;
+	    	element.iProfileLockLUID = aLUID;
+	    	iProfileLockBuffer.Append(element);
+	    	rValue=KErrNone;
+           
+             
+          // rValue  = SetProfileLock(aLUID , lockvalue);
+     break;               
+        default:
+            rValue = KErrNotSupported;
+        }
+    return rValue;
+    }
+
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter12::FillNodeInfoL
+//  The function fills the node or leaf information.
+// -----------------------------------------------------------------------------
+void CNSmlDMSettingsAdapter12::FillNodeInfoL( MSmlDmDDFObject& aNode, 
+                                            TSmlDmAccessTypes aAccTypes, 
+                                            MSmlDmDDFObject::TOccurence aOccurrence, 
+                                            MSmlDmDDFObject::TScope aScope, 
+                                            MSmlDmDDFObject::TDFFormat aFormat, 
+                                            const TDesC8& aDescription, 
+                                            const TDesC8& aDefaultValue, 
+                                            const TDesC8& aMimeType )
+    {
+    aNode.AddDFTypeMimeTypeL( aMimeType );
+    aNode.SetAccessTypesL( aAccTypes );
+	aNode.SetDescriptionL( aDescription );
+	aNode.SetOccurenceL( aOccurrence );
+	aNode.SetDefaultValueL( aDefaultValue );
+	aNode.SetScopeL( aScope );
+	aNode.SetDFFormatL( aFormat );
+    return;
+    }
+
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter12::GetDMAuthInfoL
+//  This function gets authentication data from private API.
+// -----------------------------------------------------------------------------
+TInt CNSmlDMSettingsAdapter12::GetDMAuthInfoL( const TInt aLUID, 
+                                                const TNSmlDMProfileData aField, 
+                                                CBufBase& aObject )
+    {
+    _DBG_FILE( "CNSmlDMSettingsAdapter12::GetDMAuthInfoL(): begin" );
+   
+    CNSmlDMAuthInfo* authInfo = new (ELeave) CNSmlDMAuthInfo;
+    CleanupStack::PushL( authInfo );
+    
+    authInfo->iProfileId = aLUID + KMaxDataSyncID;
+    iPrivateApi.OpenL();
+    TInt ret = KErrNone;
+    
+    TRAPD(err,iPrivateApi.GetDMAuthInfoL( *authInfo ));
+
+    if(err==KErrNone)
+    	{
+	    if ( aField == EServerNonce )
+	        {
+	        aObject.InsertL( aObject.Size(), *authInfo->iServerNonce );
+	        }
+	    else if ( aField == EClientNonce )
+	        {
+	        aObject.InsertL( aObject.Size(), *authInfo->iClientNonce );
+	        }
+	    else if (( aField == EAuthenticationRequired ) || (aField == EProfileAAuthType))
+	        {
+	        TUint authPref = authInfo->iAuthPref;
+	        /*if( authPref == ENoAuth )
+	            {
+	            aObject.InsertL( aObject.Size(), KNSmlDMAuthPrefNoAuth ); 
+	            }*/
+	         if( authPref == EBasic )
+	            {
+	            if(aField == EAuthenticationRequired)
+	            {
+	            aObject.InsertL( aObject.Size(), KNSmlDMAuthPrefBasic );	
+	            }
+	            else
+	            {
+	            aObject.InsertL( aObject.Size(), KNSmlDMAuthTypeBasic );	
+	            }
+	            
+	            }
+	        else if( authPref == EMD5 )
+	            {
+	            if(aField == EAuthenticationRequired)
+	            {
+	            aObject.InsertL( aObject.Size(), KNSmlDMAuthPrefMD5 );	
+	            }
+	            else
+	            {
+				aObject.InsertL( aObject.Size(), KNSmlDMAuthTypeMD5 );
+	            }
+	            
+	            }
+	        else
+	            {
+	            aObject.InsertL( aObject.Size(), KNullDesC8 );
+	            }
+	        }
+    	}
+    iPrivateApi.Close();
+    CleanupStack::PopAndDestroy(authInfo);
+    _DBG_FILE( "CNSmlDMSettingsAdapter12::GetDMAuthInfoL(): end" );
+    return ret;
+    }
+
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter12::DeleteDMAuthInfoL
+//  This function resets the authentication data.
+// -----------------------------------------------------------------------------
+TInt CNSmlDMSettingsAdapter12::DeleteDMAuthInfoL( const TInt aLUID, 
+                                                const TNSmlDMProfileData aField )
+    {
+    _DBG_FILE( "CNSmlDMSettingsAdapter12::DeleteDMAuthInfoL(): begin" );
+    CNSmlDMAuthInfo* authInfo = new (ELeave) CNSmlDMAuthInfo;;
+    CleanupStack::PushL( authInfo );
+    authInfo->iProfileId = aLUID;
+    iPrivateApi.OpenL();
+    iPrivateApi.GetDMAuthInfoL( *authInfo );
+    if( aField == EServerNonce )
+        {
+        authInfo->iServerNonce->Des().Delete( 0, authInfo->iServerNonce->Des().Size() );
+        authInfo->iServerNonce->Des().Insert( 0, KNullDesC8 );
+        }
+    else if( aField == EClientNonce )
+        {
+        authInfo->iClientNonce->Des().Delete( 0, authInfo->iClientNonce->Des().Size() );
+        authInfo->iClientNonce->Des().Insert( 0, KNullDesC8 );
+        }
+    else if( aField == EAuthenticationRequired )
+        {
+        authInfo->iAuthPref = 0;
+        }
+    iPrivateApi.SetDMAuthInfoL( *authInfo );
+    iPrivateApi.Close();
+    CleanupStack::PopAndDestroy(authInfo);
+	_DBG_FILE( "CNSmlDMSettingsAdapter12::DeleteDMAuthInfoL(): end" );
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CNSmlDMSettingsAdapter12::SetProfileAddrTypeL
+// This function sets the AddrType value.    
+// -----------------------------------------------------------------------------
+TInt CNSmlDMSettingsAdapter12::SetProfileAddrTypeL( const TInt aLUID, 
+                                                    const TInt aIntObj )
+    {
+    _DBG_FILE( "CNSmlDMSettingsAdapter12::SetProfileAddrTypeL(): begin" );
+    TInt retVal = OpenSyncSessionAndProfileL( aLUID, ESmlOpenReadWrite );
+    if( retVal != KErrNone )
+		{
+	    iCurrentProfile = 0;
+		iProfile.Close();
+        _DBG_FILE( "CNSmlDMSettingsAdapter12::SetProfileAddrTypeL(): end" );
+        return retVal;	
+		}
+    TInt mediumType = ENone;
+    GetMediumTypeL( aIntObj, mediumType );
+    if( mediumType == ENone )
+        {
+	    iCurrentProfile = 0;
+        iProfile.Close();    
+        return KErrGeneral;
+        }
+    RArray<TSmlTransportId> transportIdArray;
+    CleanupClosePushL( transportIdArray );
+    iProfile.ListConnectionsL( transportIdArray );
+    RSyncMLConnection conn;
+    CleanupClosePushL( conn );
+    conn.OpenL( iProfile, transportIdArray[0] );
+    HBufC8* sURI = conn.ServerURI().AllocLC();
+    if(mediumType!=transportIdArray[0])
+        {
+        if ( !FeatureManager::FeatureSupported( KFeatureIdSyncMlDmObex  ) )
+            {
+            CleanupStack::PopAndDestroy( 3 );//transportIdArray, conn, sURI
+            return EInvalidObject;
+            }
+        else
+            {
+            conn.CreateL(iProfile,mediumType);
+            }
+        }
+    conn.SetServerURIL( *sURI );
+    conn.UpdateL(); 	                    
+    CleanupStack::PopAndDestroy( 3 );//transportIdArray, conn, sURI
+    iCurrentProfile = 0;
+    iProfile.Close();
+    _DBG_FILE( "CNSmlDMSettingsAdapter12::SetProfileAddrTypeL(): end" );
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CNSmlDMSettingsAdapter12::GetHttpUsernameL
+// This function gets the httpuser value.    
+// -----------------------------------------------------------------------------
+	
+
+TInt CNSmlDMSettingsAdapter12::GetHttpUsernameL( CBufBase& aObject )
+	{
+	
+	  TInt retVal = KErrNone;
+      TBuf8<KBufSize32> key; 
+      TInt intValue;
+      
+      RArray<TSmlTransportId> connIdArray;
+      CleanupClosePushL( connIdArray );
+	  iProfile.ListConnectionsL( connIdArray );
+      if( connIdArray.Count() == 1 )
+        {
+        RSyncMLTransport transport;
+        CleanupClosePushL( transport );
+	    transport.OpenL( iSyncSession, connIdArray[0] );
+    	const CSyncMLTransportPropertiesArray&  arr = transport.Properties();
+		const TSyncMLTransportPropertyInfo& info = arr.At( EPropertyHttpUsed );
+		key = info.iName;
+		RSyncMLConnection conn;
+        CleanupClosePushL( conn );
+	    conn.OpenL( iProfile, connIdArray[0] );
+       	HBufC8* value = conn.GetPropertyL( key ).AllocLC();
+        intValue = GetIntObject( *value );
+        CleanupStack::PopAndDestroy(  ); //value
+        if ( intValue == 1 )
+        	{
+                retVal = KErrNone;
+                const TSyncMLTransportPropertyInfo& info2 = arr.At( EPropertyHttpUserName );
+                key= info2.iName;
+                HBufC8* value = conn.GetPropertyL( key ).AllocLC();
+                aObject.InsertL(aObject.Size(),value->Des());
+                CleanupStack::PopAndDestroy(  ); //value
+                }
+                else
+                    {
+                    retVal = KErrNotFound;
+                    }
+               CleanupStack::PopAndDestroy( 2 ); //  conn, transport
+        }
+        CleanupStack::PopAndDestroy(  ); //connIdArray
+    
+	return retVal;
+	}
+
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter12::GetProfileConnectiontypeL
+//  The function gets the profile medium type.
+// -----------------------------------------------------------------------------
+TInt CNSmlDMSettingsAdapter12::GetProfileConnectiontypeL( TInt& aMediumTYpe )
+	{
+    _DBG_FILE( "CNSmlDMSettingsAdapter12::GetProfileConnectiontypeL(): begin" );
+	RArray<TSmlTransportId> transportIdArray;
+    CleanupClosePushL( transportIdArray );
+	iProfile.ListConnectionsL( transportIdArray );
+	TInt transportItems = transportIdArray.Count();
+    if( transportItems == 0 )
+		{
+		//No matching items
+        CleanupStack::PopAndDestroy(); //transportIdArray	
+		return KErrGeneral;
+		}
+	else if( transportItems > 1 )
+		{
+		//Error case : against specification
+        CleanupStack::PopAndDestroy(); //transportIdArray	
+		return KErrGeneral;
+		}
+	aMediumTYpe = 0;
+    if ( transportIdArray[0] == KUidNSmlMediumTypeInternet.iUid )
+        {
+        aMediumTYpe = 1; //EHttp;
+        }
+    else if ( transportIdArray[0] == KUidNSmlMediumTypeBluetooth.iUid ||
+              transportIdArray[0] == KUidNSmlMediumTypeUSB.iUid ||   
+              transportIdArray[0] == KUidNSmlMediumTypeIrDA.iUid  )
+        {
+        aMediumTYpe = 3; //EObex;
+        }
+    CleanupStack::PopAndDestroy( 1 ); //transportIdArray, SetIntObjectLC
+	return KErrNone;
+	}
+
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter12::GetProfileIAPIdL
+//  The function gets the profile IAP Id.
+// -----------------------------------------------------------------------------
+TInt CNSmlDMSettingsAdapter12::GetProfileIAPIdL( TInt& aIAPid )
+	{
+    _DBG_FILE( "CNSmlDMSettingsAdapter12::GetProfileIAPIdL(): begin" );
+    TInt retVal = KErrGeneral;
+    aIAPid = -1;
+    RArray<TSmlTransportId> connIdArray;
+    CleanupClosePushL( connIdArray );
+    iProfile.ListConnectionsL( connIdArray );
+    if( connIdArray.Count() == 1 )
+        {
+        RSyncMLTransport transport;
+        CleanupClosePushL( transport );
+	    transport.OpenL( iSyncSession, connIdArray[0] );
+	    const CSyncMLTransportPropertiesArray& props = transport.Properties();
+	    TInt index = props.Find( KNSmlIAPId );
+        if( index > 0 )
+            {
+            RSyncMLConnection conn;
+            CleanupClosePushL( conn );
+	        conn.OpenL( iProfile, connIdArray[0] );
+            HBufC8* apId = conn.GetPropertyL( KNSmlIAPId ).AllocLC();
+            aIAPid = GetIntObject( *apId );
+            CleanupStack::PopAndDestroy( 2 ); //conn, apId
+            retVal = KErrNone;
+            }
+        else
+            {
+            retVal = KErrNotFound;
+            }
+        CleanupStack::PopAndDestroy( 1 ); //transport
+	    iCurrentProfile = 0;
+        iProfile.Close();
+        }
+    else
+        {
+        retVal = KErrNotFound;
+        }
+    CleanupStack::PopAndDestroy(); //connIdArray
+    _DBG_FILE( "CNSmlDMSettingsAdapter12::GetProfileIAPIdL(): end" );
+    return retVal;
+    }
+
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter12::GetProfileServerURLL
+//  The function gets the profile Server URI.
+// -----------------------------------------------------------------------------
+void CNSmlDMSettingsAdapter12::GetProfileServerURLL( CBufBase& aURL )
+	{
+    _DBG_FILE( "CNSmlDMSettingsAdapter12::GetProfileServerURLL(): begin" );
+    RArray<TSmlTransportId> transportIdArray;
+    CleanupClosePushL( transportIdArray );
+	iProfile.ListConnectionsL( transportIdArray );
+    if( transportIdArray.Count() > 0 )
+        {
+        RSyncMLConnection profConn;
+        CleanupClosePushL( profConn );
+	    profConn.OpenL( iProfile, transportIdArray[0] );
+	    HBufC8* sURI = profConn.ServerURI().AllocL();
+        CleanupStack::PushL( sURI );
+        TPtr8 uriPtr = sURI->Des();
+        if( uriPtr.Length() > 0 )
+            {
+            aURL.InsertL( aURL.Size(),uriPtr );
+            }
+        else
+            {
+            aURL.InsertL( aURL.Size(), KNullDesC8 );
+            }
+        CleanupStack::PopAndDestroy( 2 );//profConn, sURI
+        }
+    CleanupStack::PopAndDestroy(); //transportIdArray
+    _DBG_FILE( "CNSmlDMSettingsAdapter12::GetProfileServerURLL(): end" );
+    return;
+	}
+
+// -----------------------------------------------------------------------------
+//	CNSmlDMSettingsAdapter12::GetMediumTypeL
+//	Checks the requested medium type.
+// -----------------------------------------------------------------------------
+void CNSmlDMSettingsAdapter12::GetMediumTypeL( const TInt aIntObj, 
+                                            TInt& aMediumType )
+    {
+    _DBG_FILE( "CNSmlDMSettingsAdapter12::GetMediumTypeL(): begin" );
+    if( aIntObj == EHttp || aIntObj == EWsp )
+        {
+        aMediumType = KUidNSmlMediumTypeInternet.iUid;
+        return;
+        }
+    RArray<TSmlTransportId> transportIdArray;
+    CleanupClosePushL( transportIdArray );
+    iSyncSession.ListTransportsL( transportIdArray );
+    
+    if ( transportIdArray.Find( KUidNSmlMediumTypeBluetooth.iUid ) != KErrNotFound )
+        {
+        aMediumType = KUidNSmlMediumTypeBluetooth.iUid;
+        }
+    else if ( transportIdArray.Find( KUidNSmlMediumTypeUSB.iUid ) != KErrNotFound )
+        {
+        aMediumType = KUidNSmlMediumTypeUSB.iUid;
+        }
+    else if ( transportIdArray.Find( KUidNSmlMediumTypeIrDA.iUid ) != KErrNotFound )
+        {
+        aMediumType = KUidNSmlMediumTypeIrDA.iUid;
+        }
+    CleanupStack::PopAndDestroy(); //transportIdArray
+    _DBG_FILE( "CNSmlDMSettingsAdapter12::GetMediumTypeL(): end" );
+    return;    
+    }
+
+// -----------------------------------------------------------------------------
+//	CNSmlDMSettingsAdapter12::GetServerIdL
+//	Gets the server id value.
+// -----------------------------------------------------------------------------
+void CNSmlDMSettingsAdapter12::GetServerIdL( CBufBase& aObject )
+    {
+    _DBG_FILE( "CNSmlDMSettingsAdapter12::GetServerIdL(): begin" );
+    HBufC8* serverId = iProfile.ServerId().AllocL();
+    CleanupStack::PushL( serverId );
+    aObject.InsertL( aObject.Size(), *serverId );
+    CleanupStack::PopAndDestroy( 1 ); //serverId
+    _DBG_FILE( "CNSmlDMSettingsAdapter12::GetServerIdL(): end" );
+    return;
+    }
+
+// -----------------------------------------------------------------------------
+//	CNSmlDMSettingsAdapter12::GetProfileNameL
+//	Gets the display name value.
+// -----------------------------------------------------------------------------
+void CNSmlDMSettingsAdapter12::GetProfileNameL( CBufBase& aObject )
+    {
+    _DBG_FILE( "CNSmlDMSettingsAdapter12::GetProfileNameL(): begin" );
+    HBufC16* dataBuf = iProfile.DisplayName().AllocL();
+    CleanupStack::PushL( dataBuf );
+    TPtr16 ptrDisplayName = dataBuf->Des();
+    HBufC8* dataBuf8 = HBufC8::NewL( ptrDisplayName.Length() * 2 );
+    CleanupStack::PushL( dataBuf8 );
+
+    TPtr8 ptrDisplayName8 = dataBuf8->Des();
+    ptrDisplayName8 = ConvertTo8LC( ptrDisplayName );
+    aObject.InsertL( aObject.Size(), ptrDisplayName8 );
+    CleanupStack::PopAndDestroy( 3 );//dataBuf, ConvertTo8LC
+    _DBG_FILE("CNSmlDMSettingsAdapter12::GetProfileNameL(): end");
+    return;
+    }
+
+// -----------------------------------------------------------------------------
+//	CNSmlDMSettingsAdapter12::GetProfileUserNameL
+//	Gets the profile user name value.
+// -----------------------------------------------------------------------------
+void CNSmlDMSettingsAdapter12::GetProfileUserNameL( CBufBase& aObject )
+    {
+    _DBG_FILE( "CNSmlDMSettingsAdapter12::GetProfileUserNameL(): begin" );
+    HBufC8* dataBuf = iProfile.UserName().AllocL();
+    CleanupStack::PushL( dataBuf );
+    TPtr8 ptrUserName = dataBuf->Des();
+    aObject.InsertL( aObject.Size(), ptrUserName );
+    CleanupStack::PopAndDestroy();//dataBuf
+    _DBG_FILE( "CNSmlDMSettingsAdapter12::GetProfileUserNameL(): end" );
+    return;
+    }
+
+// -----------------------------------------------------------------------------
+//	CNSmlDMSettingsAdapter12::GetProfilePortNumberL
+//	Gets the port number value.
+// -----------------------------------------------------------------------------
+void CNSmlDMSettingsAdapter12::GetProfilePortNumberL( CBufBase& aObject )
+    {
+    _DBG_FILE( "CNSmlDMSettingsAdapter12::GetProfilePortNumberL(): begin" );
+    TInt bSize = aObject.Size();
+    TInt portNum = 0;
+    HBufC8* bufStorage = HBufC8::NewLC( bSize );
+	TPtr8 bufStoragePtr = bufStorage->Des();
+	aObject.Read( 0, bufStoragePtr, aObject.Size() );
+	aObject.Reset();
+	
+    //find out the port number
+    ParseUri( *bufStorage, portNum );
+	aObject.InsertL( aObject.Size(), SetIntObjectLC( portNum ) );
+
+    CleanupStack::PopAndDestroy( 2 ); //bufStorage, SetIntObjectLC()
+    _DBG_FILE( "CNSmlDMSettingsAdapter12::GetProfilePortNumberL(): end" );
+    return;
+    }
+
+// -----------------------------------------------------------------------------
+//  CNSmlDMSettingsAdapter12::SetAuthInfoL
+//  The function checks if authinfo already exits. If exits command is replace.
+// -----------------------------------------------------------------------------
+void CNSmlDMSettingsAdapter12::SetAuthInfoL( const TInt aLUID, 
+                                            const TNSmlDMProfileData aField, 
+                                            const TDesC8& aObject, TInt& aStatus )
+    {
+    _DBG_FILE( "CNSmlDMSettingsAdapter12::SetAuthInfoL(): begin" );
+    
+    CNSmlDMAuthInfo* authInfo = new (ELeave) CNSmlDMAuthInfo();
+    CleanupStack::PushL( authInfo );
+    authInfo->iProfileId = aLUID;
+    
+    iPrivateApi.OpenL();
+    TRAPD( err, iPrivateApi.GetDMAuthInfoL( *authInfo ) );
+    
+    if ( err )
+        {
+        CleanupStack::PopAndDestroy( authInfo );
+        iPrivateApi.Close();
+        aStatus = err;
+        return;
+        }
+    
+    CNSmlDMAuthInfo* newAuthInfo = new (ELeave) CNSmlDMAuthInfo();
+    CleanupStack::PushL( newAuthInfo );
+    newAuthInfo->iProfileId = aLUID;
+
+    if ( aField == EServerNonce )
+        {
+        newAuthInfo->iServerNonce = aObject.Alloc();
+        newAuthInfo->iClientNonce = authInfo->iClientNonce->Des().Alloc();
+        newAuthInfo->iAuthPref = authInfo->iAuthPref;
+        
+        iPrivateApi.SetDMAuthInfoL( *newAuthInfo );
+        }
+    else if ( aField == EClientNonce )
+        {
+        newAuthInfo->iServerNonce = authInfo->iServerNonce->Des().Alloc();
+        newAuthInfo->iClientNonce = aObject.Alloc();
+        newAuthInfo->iAuthPref = authInfo->iAuthPref;
+        
+        iPrivateApi.SetDMAuthInfoL( *newAuthInfo );
+        }
+    else if ( aField == EAuthenticationRequired )
+        {
+        if ( aObject.Match( KNSmlDMAuthPrefNoAuth ) !=  KErrNotFound )
+            {
+            newAuthInfo->iAuthPref = ENoAuth;
+            }
+        else if ( aObject.Match( KNSmlDMAuthPrefBasic ) !=  KErrNotFound )
+            {
+            newAuthInfo->iAuthPref = EBasic;
+            }
+        else if ( aObject.Match( KNSmlDMAuthPrefMD5 ) !=  KErrNotFound )
+            {
+            newAuthInfo->iAuthPref = EMD5;
+            }
+        newAuthInfo->iServerNonce = authInfo->iServerNonce->Des().Alloc();
+        newAuthInfo->iClientNonce = authInfo->iClientNonce->Des().Alloc();
+        
+        iPrivateApi.SetDMAuthInfoL( *newAuthInfo );
+        }
+    
+    CleanupStack::PopAndDestroy( newAuthInfo );
+    CleanupStack::PopAndDestroy( authInfo );
+    
+    iPrivateApi.Close();
+    aStatus = KErrNone;
+    _DBG_FILE( "CNSmlDMSettingsAdapter12::SetAuthInfoL(): end" );
+    return;
+	}
+
+//------------------------------------------------------------------------------
+// CNSmlDMSettingsAdapter12::AddNodeBufferL()
+// Buffers Node Object
+//------------------------------------------------------------------------------
+void CNSmlDMSettingsAdapter12::AddNodeBufferL( const TDesC8& aURI,
+		const TInt aStatusRef)
+	{
+	_DBG_FILE( "CNSmlDMSettingsAdapter12::AddNodeBufferL(): begin" );
+	TInt index = -1;
+
+	for (TInt i = 0; i<iBuffer->Count (); i++)
+		{
+		if ( iBuffer->At(i).iMappingName->Compare (aURI)== 0)
+			{
+			index = i;
+			//CallBack for duplicate
+			_DBG_FILE( "CNSmlDMSettingsAdapter12::AddNodeBufferL(): EAlreadyExists end" );
+			iCallBack->SetStatusL ( aStatusRef, CSmlDmAdapter::EAlreadyExists);
+			break;
+			}
+		}
+
+	if ( index<0)
+		{
+		TNSmlDMBufferElement newNode;
+		newNode.iMappingName = aURI.AllocLC ();
+		newNode.iLeafBuf = new (ELeave) CArrayFixFlat <TNSmlDMLeafElement> (4);
+		newNode.iExecuted = EFalse;
+		newNode.iDMBuffStatusref = aStatusRef;
+		newNode.iAddr = EFalse;
+		newNode.iServerId = EFalse;
+		newNode.iUName = EFalse;
+		newNode.iServerName = EFalse;
+
+		iBuffer->AppendL (newNode);
+		//newNode.iMappingName
+		CleanupStack::Pop ();
+		}
+	_DBG_FILE( "CNSmlDMSettingsAdapter12::AddNodeBufferL(): end" );
+	}
+
+//------------------------------------------------------------------------------
+// CNSmlDMSettingsAdapter12::AddLeafBufferL()
+// Buffers Leaf Obj & checks for Mandatory fields
+//------------------------------------------------------------------------------
+void CNSmlDMSettingsAdapter12::AddLeafBufferL( const TDesC8& aURI,
+		const TDesC8& aObject, const TInt aStatusRef)
+	{
+	_DBG_FILE( "CNSmlDMSettingsAdapter12::AddLeafBufferL(): begin" );
+	TNSmlDMLeafElement newCommand;
+
+	newCommand.iUri = aURI.AllocLC ();
+	newCommand.iData = aObject.AllocLC ();
+	newCommand.iLuid = HBufC8::NewLC (8); //Allocate Mem. for iLUID
+	newCommand.iStatusRef = aStatusRef;
+	//Add Leaf to the index updated by UpdateLeafObj
+	iBuffer->At(iExecutionIndex).iLeafBuf->AppendL (newCommand);
+	// iUri, iData, ILuid
+	CleanupStack::Pop (3);
+	SetField ( aURI);
+	SetURIInProcessL ( aURI);
+	if ( iField->Compare (KNSmlDdfAddr)== 0)
+		{
+		iBuffer->At(iExecutionIndex).iAddr = ETrue;
+		}
+	else
+		if ( iField->Compare (KNSmlDdfServerId)== 0)
+			{
+			if(!IsServerIDExistL(aObject))
+				iBuffer->At(iExecutionIndex).iServerId = ETrue;
+			}
+		else
+			if ( iField->Compare (KNSmlDdfAAuthName)== 0)
+				{
+				//AAuthName under AppAuthCli
+				if ( iURIField->Find (KDmAccAppAuthDyn2)!= KErrNotFound)
+					iBuffer->At(iExecutionIndex).iUName = ETrue;
+				}
+			else
+				if ( iField->Compare (KNSmlDdfName)== 0)
+					{
+					iBuffer->At(iExecutionIndex).iServerName = ETrue;
+					}
+
+	//  If Address,ServerId,ServerName,UserName then Add
+
+	if ( iBuffer->At(iExecutionIndex).iAddr && iBuffer->At(iExecutionIndex).iServerId &&iBuffer->At(iExecutionIndex).iUName && iBuffer->At(iExecutionIndex).iServerName)
+		{
+		ExecuteBufferL ();
+		iExecutionIndex = -1;
+		}
+	_DBG_FILE( "CNSmlDMSettingsAdapter12::AddLeafBufferL(): end" );
+	return;
+	}
+
+//------------------------------------------------------------------------------
+// CNSmlDMSettingsAdapter12::ExecuteBufferL()
+// Adds the Node/Leaf obj to the db
+//------------------------------------------------------------------------------
+void CNSmlDMSettingsAdapter12::ExecuteBufferL()
+	{
+	_DBG_FILE( "CNSmlDMSettingsAdapter12::ExecuteBufferL(): begin" );
+	TBuf8<8> newLUID;
+	TInt rValue;
+	//Buffer is being Executed
+	iBufOn = ETrue;
+
+	// Robustness check for Execution Index
+	if ( iExecutionIndex<0)
+		{
+		return;
+		}
+
+	//Execute BufferL is called from CompleteOutstandingCmdsL only when -
+	//mandatory fields are not set. Dont update Node/Leaf to the db, return a failure
+
+	if ( !iComplete)
+		rValue = CreateNewProfileL (iLUID);
+	else
+		rValue = CSmlDmAdapter::EError;
+
+	iBuffer->At(iExecutionIndex).iExecuted = ETrue;
+
+	if ( rValue != KErrNone)
+		{
+		if ( rValue == KErrNoMemory)
+			{
+			iCallBack->SetStatusL ( iBuffer->At(iExecutionIndex).iDMBuffStatusref, CSmlDmAdapter::ENoMemory);
+			}
+		else
+			if ( rValue == KErrNotSupported)
+				{
+				iCallBack->SetStatusL ( iBuffer->At(iExecutionIndex).iDMBuffStatusref,
+						CSmlDmAdapter::EInvalidObject);
+				}
+			else
+				if ( rValue == KErrInUse)
+					{
+					iCallBack->SetStatusL ( iBuffer->At(iExecutionIndex).iDMBuffStatusref,
+							CSmlDmAdapter::EObjectInUse);
+					}
+				else
+					if ( rValue == KErrDiskFull)
+						{
+						iCallBack->SetStatusL ( iBuffer->At(iExecutionIndex).iDMBuffStatusref,
+								CSmlDmAdapter::EDiskFull);
+						}
+					else
+						{
+						iCallBack->SetStatusL ( iBuffer->At(iExecutionIndex).iDMBuffStatusref,
+								CSmlDmAdapter::EError);
+						}
+		// dont return, UpdateLeafObjectL will update the callback status for leaf Nodes 
+		}
+	else
+		{
+		if ( iLUID >= KMaxDataSyncID)
+			{
+			newLUID.Num ( iLUID - KMaxDataSyncID);
+			}
+		else
+			{
+			newLUID.Num ( iLUID);
+			}
+
+		iCallBack->SetMappingL ( *iBuffer->At(iExecutionIndex).iMappingName, newLUID);
+
+		iCallBack->SetStatusL (iBuffer->At(iExecutionIndex).iDMBuffStatusref, CSmlDmAdapter::EOk);
+		}
+
+	for (TInt val= 0; val < iBuffer->At(iExecutionIndex).iLeafBuf->Count ();val++)
+		{
+		//Update the LUID data in the Leaf structure with the Profile LUID before calling UpdateLeafObj
+		TPtr8 tempLUID(iBuffer->At(iExecutionIndex).iLeafBuf->At(val).iLuid->Des ());
+		tempLUID.Append (newLUID);
+		UpdateLeafObjectL (*iBuffer->At(iExecutionIndex).iLeafBuf->At(val).iUri, *iBuffer->At(iExecutionIndex).iLeafBuf->At(val).iLuid, *iBuffer->At(iExecutionIndex).iLeafBuf->At(val).iData, *iBuffer->At(iExecutionIndex).iMappingName, iBuffer->At(iExecutionIndex).iLeafBuf->At(val).iStatusRef);
+
+		}
+
+	// Delete the dynamically allocated buffers (Node/Leaf obj)
+
+	ClearBuffer ( iBuffer->At(iExecutionIndex).iLeafBuf);
+
+	delete iBuffer->At(iExecutionIndex).iLeafBuf;
+
+	if ( iBuffer->At(iExecutionIndex).iMappingName)
+		{
+		delete iBuffer->At(iExecutionIndex).iMappingName;
+		iBuffer->At(iExecutionIndex).iMappingName = NULL;
+		}
+
+	iBuffer->Delete (iExecutionIndex);
+	iBuffer->Compress ();
+	//Buffer Execution Complete
+	iBufOn = EFalse;
+    _DBG_FILE( "CNSmlDMSettingsAdapter12::ExecuteBufferL(): end" );
+	}
+
+//------------------------------------------------------------------------------
+// TPtrC8 CNSmlDMSettingsAdapter12::ParentURI(const TDesC8& aURI)
+// returns parent uri 
+// Searches till the 2nd "/" is reached
+//------------------------------------------------------------------------------
+TPtrC8 CNSmlDMSettingsAdapter12::ParentURI(const TDesC8& aURI)
+	{
+	_DBG_FILE( "CNSmlDMSettingsAdapter12::ParentURI(): begin" );
+	TInt count;
+	TInt flag = 0;
+	for (count=0; count<=aURI.Length ()-1;count++)
+		{
+
+		if ( aURI[count]=='/')
+			{
+			flag++;
+			if ( flag == KDynNodePosn)   // KDynNodePosn =2 --> DMAcc/DMIDxxx
+				break;
+			}
+		}
+        _DBG_FILE( "CNSmlDMSettingsAdapter12::ParentURI(): end" ); 
+	return aURI.Left (count);
+	}
+
+//-----------------------------------------------------------------------------------------    
+// Clears the elements of the passed in LeafElement Structure
+//-----------------------------------------------------------------------------------------
+void CNSmlDMSettingsAdapter12::ClearBuffer(
+		CArrayFixFlat<TNSmlDMLeafElement>* aBuffer)
+	{
+	_DBG_FILE( "CNSmlDMSettingsAdapter12::ClearBuffer(): begin" );
+	for (TInt i = 0; i < aBuffer->Count (); i++)
+		{
+		delete aBuffer->At(i).iUri;
+		aBuffer->At(i).iUri = NULL;
+
+		delete aBuffer->At(i).iData;
+		aBuffer->At(i).iData = NULL;
+
+		delete aBuffer->At(i).iLuid;
+		aBuffer->At(i).iLuid = NULL;
+		}
+
+	aBuffer->Reset ();
+	_DBG_FILE( "CNSmlDMSettingsAdapter12::ClearBuffer(): end" );
+	}
+
+//--------------------------------------------------------------------
+//TInt CNSmlDMSettingsAdapter::IsDMAccUriFormatMatchPredefined(const TDesC8 & aURI)
+//
+//-------------------------------------------------------------------
+
+
+TBool CNSmlDMSettingsAdapter12::IsDMAccUriFormatMatchPredefined(const TDesC8 & aURI)
+{
+	
+	// include strings for  tree for Bearer , DNS related Dynamic nodes . 
+	
+	if(aURI.Match(_L8("DMAcc/DMId*"))   != KErrNotFound )
+	{
+		return ETrue;
+	}
+	else
+	{
+		return EFalse;
+	}
+	
+	
+}
+
+//--------------------------------------------------------------------
+//TInt CNSmlDMSettingsAdapter::ConstructTreeL(const TDesC8& aURI)
+//
+//-------------------------------------------------------------------
+
+TInt CNSmlDMSettingsAdapter12::ConstructTreeL(const TDesC8& aURI)
+{
+		TInt profileID = KErrNotFound;
+		_LIT8( KNSmlDMIdZero,			"DMAcc/DMId000" );
+		TBuf8<20> zeroURI; // DMAcc/DMIdnnn , nnn = profileid
+		zeroURI.Append( KNSmlDMIdZero );
+		HBufC8* ismapInfo = iCallBack->GetLuidAllocL(zeroURI);
+		if (ismapInfo->Length() != 0) // Tree is already constructrd, no need to proceed.
+		{
+			delete ismapInfo;
+			return profileID;
+		}
+	  if( iSyncSessionOpen == EFalse )
+    {
+    	iSyncSession.OpenL();
+      iSyncSessionOpen = ETrue;
+    }
+    RArray<TSmlProfileId> profileIdArray;
+    CleanupClosePushL( profileIdArray );
+    TSmlUsageType usageType = ESmlDevMan;
+    iSyncSession.ListProfilesL( profileIdArray, usageType );
+	   
+    for( TInt p = 0; p < profileIdArray.Count(); p++ )
+		{
+      TInt ddId = profileIdArray[p] - KMaxDataSyncID;
+           
+		  _LIT8( Kprev, "DMId" );
+		  TBuf8<7> addNAME(Kprev); // DMIdnnn , nnn = profileid
+      TInt fixedProfId = profileIdArray[p] - KMaxDataSyncID; //fit to 3 decimal
+		  addNAME.AppendNumFixedWidth( fixedProfId, EDecimal, 3 ); 
+   		DBG_ARGS8( _S8("notInList: Id = %d Name %S"), p, &addNAME );
+		  // KNSmlDMStart includes start text for URISeg
+			TBuf8<20> addURI; // DMAcc/DMIdnnn , nnn = profileid
+			addURI.Append( KNSmlDMStart );
+			addURI.AppendNumFixedWidth( fixedProfId, EDecimal, 3 ); 
+			TBuf8<3> addLUID;
+	    addLUID.Num( fixedProfId );
+
+			HBufC8* mapInfo = iCallBack->GetLuidAllocL(addURI);
+					
+			if (mapInfo->Length() == 0)
+			{
+				iCallBack->SetMappingL(addURI,addLUID);
+				if( aURI.Find(addURI) >= 0 )
+        { 
+         	profileID = fixedProfId;
+        }
+			}
+			else
+			{
+				delete mapInfo;
+			}
+ 		}
+	    	
+    CleanupStack::PopAndDestroy( 1 );//profileIdArray
+    return profileID;
+}
+
+// ========================== OTHER EXPORTED FUNCTIONS =========================
+
+#ifndef IMPLEMENTATION_PROXY_ENTRY
+#define IMPLEMENTATION_PROXY_ENTRY(aUid, aFuncPtr)	{{aUid},(aFuncPtr)}
+#endif
+
+const TImplementationProxy ImplementationTable[] = 
+    {
+		IMPLEMENTATION_PROXY_ENTRY( KNSmlDMSettingsAdapterImplUid, CNSmlDMSettingsAdapter12::NewL )
+    };
+
+
+// -----------------------------------------------------------------------------
+// TImplementationProxy* ImplementationGroupProxy()
+// -----------------------------------------------------------------------------
+EXPORT_C const TImplementationProxy* ImplementationGroupProxy( TInt& aTableCount )
+    {
+	_DBG_FILE( "ImplementationGroupProxy() for CNSmlDMSettingsAdapter: begin" );
+
+    aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
+
+	_DBG_FILE( "ImplementationGroupProxy() for CNSmlDMSettingsAdapter: end" );
+    return ImplementationTable;
+	}
+
+//------------------------------------------------------------------------------
+// TPtrC8 CNSmlDMSettingsAdapter12::GetDynamicDMNodeUri( const TDesC8& aURI )
+// returns DM/xxx URI
+//------------------------------------------------------------------------------
+TPtrC8 CNSmlDMSettingsAdapter12::GetDynamicDMNodeUri(const TDesC8& aURI)
+    {    
+    TInt i= 0;
+	TBuf8<50> DmAccRoot(KNSmlDefDMAcc);
+    for ( i = aURI.Find( KNSmlDefDMAcc ) + DmAccRoot.Length() + 1; i < aURI.Length(); i++ )
+        {
+        if( aURI[i] == '/' )
+            {
+            break;
+            }
+        }
+    
+    return aURI.Left( i );
+    }
+// End of File
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/syncmldm12/src/nsmldmsettingsadapter12.rss	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,48 @@
+CHARACTER_SET UTF8/*
+* Copyright (c) 2005 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:    Resource data for Device Management Settings Adapter
+*
+*/
+
+
+
+
+
+#include <registryinfo.rh>
+#include "nsmldmconstants.h"
+
+RESOURCE REGISTRY_INFO theRegistryInfo
+  {
+  dll_uid = 0x10282CE7; //The DLL's 3rd UID.
+  interfaces = 
+      {
+      INTERFACE_INFO
+          {
+          interface_uid = KNSmlDMInterfaceUid; // DM interface UID
+          implementations = 
+            {
+            IMPLEMENTATION_INFO
+                {
+                implementation_uid = 0x10282CE8; // DM interface implementation UID
+                version_no = 1; 
+                display_name = "";
+                default_data = "";
+                opaque_data = "";
+                }
+            };
+          }
+      };
+    }
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/syncmldm12/tsrc/bwins/syncmldm12testu.def	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,3 @@
+EXPORTS
+	?LibEntryL@@YAPAVCScriptBase@@AAVCTestModuleIf@@@Z @ 1 NONAME ; class CScriptBase * LibEntryL(class CTestModuleIf &)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/syncmldm12/tsrc/conf/syncmldm12test.cfg	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,125 @@
+[Test]
+title DDF
+create syncmldm12test foobar jee
+foobar DDFStructure
+delete foobar
+[Endtest] 
+
+[Test]
+title StartAtomic
+create syncmldm12test foobar
+foobar StartAtomic
+delete foobar
+[Endtest]
+
+[Test]
+title CommitAtomic
+create syncmldm12test foobar
+foobar CommitAtomic
+delete foobar
+[Endtest]
+
+[Test]
+title RollbackAtomic
+create syncmldm12test foobar
+foobar RollbackAtomic
+delete foobar
+[Endtest]
+
+[Test]
+title AddDmAcc
+create syncmldm12test foobar
+foobar AddNode DMAcc/DMId099
+foobar UpdateLeaf DMAcc/DMId099/Name name99
+foobar UpdateLeaf DMAcc/DMId099/ServerID server99
+foobar UpdateLeaf DMAcc/DMId099/AppAddr/Addr001/Addr http://a.com
+foobar UpdateLeaf DMAcc/DMId099/AppAuth/AppAuthCli/AAuthName user99
+foobar CompleteCommands
+delete foobar
+[Endtest]
+
+[Test]
+title UpdateLeafDmAcc
+create syncmldm12test foobar
+foobar UpdateLeaf DMAcc/DMId099/Name newname99
+delete foobar
+[Endtest]
+
+[Test]
+title FetchNodeDmAcc
+create syncmldm12test foobar
+foobar FetchNode DMAcc/DMId099
+delete foobar
+[Endtest]
+
+[Test]
+title FetchLeafDmAcc
+create syncmldm12test foobar
+foobar FetchLeaf DMAcc/DMId099/Name
+delete foobar
+[Endtest]
+
+[Test]
+title DeleteDmAcc
+create syncmldm12test foobar
+foobar DeleteNode DMAcc/DMId099
+delete foobar
+[Endtest]
+
+[Test]
+title AddDmAccAllInfo
+create syncmldm12test foobar
+foobar AddNode DMAcc/DMId090  	 
+foobar AddNode DMAcc/DMId090/AAuthPref 	 
+foobar AddNode DMAcc/DMId090/AppAddr 	 
+foobar AddNode DMAcc/DMId090/AppAddr/Addr001 	 
+foobar UpdateLeaf DMAcc/DMId090/AppAddr/Addr001/Addr 	https://b.com/abc
+foobar UpdateLeaf DMAcc/DMId090/AppAddr/Addr001/AddrType 	URI
+foobar AddNode DMAcc/DMId090/AppAddr/Addr001/Port 	 
+foobar AddNode DMAcc/DMId090/AppAddr/Addr001/Port/Port001 	 
+foobar UpdateLeaf DMAcc/DMId090/AppAddr/Addr001/Port/Port001/PortNbr 	443
+foobar AddNode DMAcc/DMId090/AppAuth 	 
+foobar AddNode DMAcc/DMId090/AppAuth/AppAuthCli 	 
+foobar AddNode DMAcc/DMId090/AppAuth/AppAuthCli/AAuthData 	 
+foobar UpdateLeaf DMAcc/DMId090/AppAuth/AppAuthCli/AAuthLevel 	CLCRED
+foobar UpdateLeaf DMAcc/DMId090/AppAuth/AppAuthCli/AAuthName 	userx
+foobar AddNode DMAcc/DMId090/AppAuth/AppAuthSrv 	 
+foobar AddNode DMAcc/DMId090/AppAuth/AppAuthSrv/AAuthData 	 
+foobar UpdateLeaf DMAcc/DMId090/AppAuth/AppAuthSrv/AAuthLevel 	SRVCRED
+foobar UpdateLeaf DMAcc/DMId090/AppAuth/AppAuthSrv/AAuthName 	userx
+foobar AddNode DMAcc/DMId090/AppAuth/AppAuthTransport 	 
+foobar AddNode DMAcc/DMId090/AppAuth/AppAuthTransport/AAuthData 	 
+foobar UpdateLeaf DMAcc/DMId090/AppAuth/AppAuthTransport/AAuthLevel 	HTTP
+foobar UpdateLeaf DMAcc/DMId090/AppAuth/AppAuthTransport/AAuthName 		user
+foobar UpdateLeaf DMAcc/DMId090/AppID 	w7
+foobar UpdateLeaf DMAcc/DMId090/Name 	InteliSync
+foobar UpdateLeaf DMAcc/DMId090/PrefConRef 	AP/APId000 
+foobar UpdateLeaf DMAcc/DMId090/ServerID 	userx
+foobar CompleteCommands
+delete foobar
+[Endtest]
+
+[Test]
+title FetchAllLeafDmAcc
+create syncmldm12test foobarfoobar FetchLeaf DMAcc/DMId090/AppAddr/Addr001/Addr
+foobar FetchLeaf DMAcc/DMId090/AppAddr/Addr001/AddrType
+foobar FetchLeaf DMAcc/DMId090/AppAddr/Addr001/Port/Port001/PortNbr
+foobar FetchLeaf DMAcc/DMId090/AppAuth/AppAuthCli/AAuthLevel
+foobar FetchLeaf DMAcc/DMId090/AppAuth/AppAuthCli/AAuthName 
+foobar FetchLeaf DMAcc/DMId090/AppAuth/AppAuthSrv/AAuthLevel
+foobar FetchLeaf DMAcc/DMId090/AppAuth/AppAuthSrv/AAuthName 
+foobar FetchLeaf DMAcc/DMId090/AppAuth/AppAuthTransport/AAuthLevel 
+foobar FetchLeaf DMAcc/DMId090/AppAuth/AppAuthTransport/AAuthName 
+foobar FetchLeaf DMAcc/DMId090/AppID 
+foobar FetchLeaf DMAcc/DMId090/Name 
+foobar FetchLeaf DMAcc/DMId090/PrefConRef 
+foobar FetchLeaf DMAcc/DMId090/ServerID 
+delete foobar
+[Endtest]
+
+[Test]
+title DeleteDmAcc
+create syncmldm12test foobar
+foobar DeleteNode DMAcc/DMId090
+delete foobar
+[Endtest]
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/syncmldm12/tsrc/eabi/syncmldm12testu.def	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,9 @@
+EXPORTS
+	_Z9LibEntryLR13CTestModuleIf @ 1 NONAME
+	_ZTI15Csyncmldm12Test @ 2 NONAME ; #<TI>#
+	_ZTI16CTestDmDDFObject @ 3 NONAME ; #<TI>#
+	_ZTI8Cdmatest @ 4 NONAME ; #<TI>#
+	_ZTV15Csyncmldm12Test @ 5 NONAME ; #<VT>#
+	_ZTV16CTestDmDDFObject @ 6 NONAME ; #<VT>#
+	_ZTV8Cdmatest @ 7 NONAME ; #<VT>#
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/syncmldm12/tsrc/group/bld.inf	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,55 @@
+/*
+* 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.
+*
+*/
+
+
+
+
+
+
+PRJ_PLATFORMS
+// specify the platforms your component needs to be built for here
+// defaults to WINS MARM so you can ignore this if you just build these
+DEFAULT
+
+PRJ_TESTEXPORTS
+// NOTE: If using ARS requirements all export operations should be done under this.
+// 'abld test export'
+
+PRJ_EXPORTS
+// Specify the source file followed by its destination here
+// copy will be used to copy the source file to its destination
+// If there's no destination then the source file will be copied
+// to the same name in /epoc32/include
+// Example: 
+
+
+PRJ_TESTMMPFILES
+// NOTE: If using ARS requirements .mmp file operation should be done under this.
+// 'abld test build'
+syncmldm12test.mmp
+
+PRJ_MMPFILES
+// Specify the .mmp files required for building the important component
+// releasables.
+//
+// Specify "tidy" if the component you need to build doesn't need to be
+// released. Specify "ignore" if the MMP file exists but should be
+// ignored.
+// Example:
+
+//  End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/syncmldm12/tsrc/group/syncmldm12test.mmp	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,65 @@
+/*
+* 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 <platform_paths.hrh>
+
+TARGET          syncmldm12test.dll
+TARGETTYPE      dll
+UID             0x1000008D 0x101FB3E3
+
+CAPABILITY	ALL -TCB
+/* Remove comments and replace 0x00000000 with correct vendor id */
+// VENDORID 	0x00000000
+
+//TARGETPATH      ?target_path
+DEFFILE         syncmldm12test.def
+
+SOURCEPATH      ../src
+SOURCE          dmatest.cpp
+SOURCE          TestDmDDFObject.cpp
+SOURCE          syncmldm12test.cpp
+SOURCE          syncmldm12testBlocks.cpp
+
+
+USERINCLUDE     ../inc 
+USERINCLUDE		  ../../inc
+
+APP_LAYER_SYSTEMINCLUDE
+SYSTEMINCLUDE   /epoc32/include/ecom
+
+
+ 
+
+LIBRARY         apgrfx.lib apmime.lib
+LIBRARY         euser.lib ecom.lib
+LIBRARY         stiftestinterface.lib
+LIBRARY         stiftestengine.lib
+LIBRARY         efsrv.lib
+LIBRARY         estor.lib 
+LIBRARY         SWInstCli.lib
+
+LANG			SC
+
+
+
+SMPSAFE
+// End of File
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/syncmldm12/tsrc/group/syncmldm12test.pkg	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,38 @@
+;
+; 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.
+;
+
+;*Languages
+&EN
+;
+;*Standard SIS file header. This section specifies the package name,
+;application UID, and version/build numbers. Add the package TYPE here if needed.
+#{"syncmldm12test"},(0x101FB3E8),1,0,1;
+;
+
+;*Unique (Non-Localised) Vendor name
+;This is used in combination with signing to prevent the unauthroized
+;upgrade ofa a package by someone other than the rightful vendor.
+:"Nokia"
+
+;*Localized Vendor Name
+;This specifies the localised vendor name(s) correspodning to language(s).
+%{"Nokia Test EN"}
+
+;*Files To Copy...<src> <destination>
+"\epoc32\release\armv5\urel\syncmldm12test.dll" -"C:\sys\bin\syncmldm12test.dll"
+"..\conf\syncmldm12test.cfg"-"C:\TestFramework\syncmldm12test.cfg"
+"..\init\syncmldm12test.ini"-"C:\TestFramework\syncmldm12test.ini"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/syncmldm12/tsrc/inc/TestDmDDFObject.h	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,203 @@
+/*
+* 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.
+*
+*/
+
+
+
+
+
+
+#ifndef __TESTDMDDFOBJECT_H
+#define __TESTDMDDFOBJECT_H
+
+//  INCLUDES
+//#include <?include_file>
+#include <smldmadapter.h>
+
+// CONSTANTS
+//const ?type ?constant_var = ?constant;
+
+// MACROS
+//#define ?macro ?macro_def
+
+// DATA TYPES
+//enum ?declaration
+//typedef ?declaration
+//extern ?data_type;
+
+// FUNCTION PROTOTYPES
+//?type ?function_name(?arg_list);
+
+// FORWARD DECLARATIONS
+class CStifLogger;
+
+// CLASS DECLARATION
+
+/**
+*  ?one_line_short_description.
+*  ?other_description_lines
+*
+*  @lib ?library
+*  @since Series ?XX ?SeriesXX_version
+*/
+class CTestDmDDFObject : public CBase, public MSmlDmDDFObject
+    {
+    public:  // Constructors and destructor
+        
+        /**
+        * Two-phased constructor.
+        */
+        static CTestDmDDFObject* NewL( CStifLogger *aLog );
+        static CTestDmDDFObject* NewLC( CStifLogger *aLog );
+        
+        /**
+        * Destructor.
+        */
+        virtual ~CTestDmDDFObject();
+
+    public: // New functions
+        
+        /**
+        * ?member_description.
+        * @since Series ?XX ?SeriesXX_version
+        * @param ?arg1 ?description
+        * @return ?description
+        */
+        //?type ?member_function( ?type ?arg1 );
+
+		virtual void SetNameL( const TDesC8& aName );
+		
+		void DumpL( const TDesC8& aParentName, TBool aFullDump = ETrue );
+		void ExternalizeL(RWriteStream& aStream) const;
+		
+		
+
+    public: // Functions from base classes
+    
+//sf-    *********************************
+    
+		void SetAccessTypesL( TSmlDmAccessTypes aAccessTypes );
+		void SetDefaultValueL( const TDesC8& aDefaultValue );
+		void SetDescriptionL( const TDesC8& aDescription );
+		void SetDFFormatL( TDFFormat aFormat );
+		void SetOccurenceL( TOccurence aOccurence );
+		void SetScopeL( TScope aScope );
+		void SetDFTitleL( const TDesC8& aTitle );
+		void AddDFTypeMimeTypeL( const TDesC8& aMimeType );
+		void SetAsObjectGroup();
+		MSmlDmDDFObject& AddChildObjectL(const TDesC8& aNodeName);
+		MSmlDmDDFObject& AddChildObjectGroupL();
+
+//sf-    #############################
+
+		const TDesC8& Name();
+		TSmlDmAccessTypes  AccessTypes();
+		const TDesC8& DefaultValue();
+		const TDesC8& Description();
+		TDFFormat DFFormat();
+		TOccurence Occurence();
+		TScope Scope();
+		const TDesC8& DFTitle();
+		const TDesC8& DFTypeMimeType();
+		TBool ObjectGroup();
+		
+		TInt ChildObjectCount();
+		CTestDmDDFObject& ChildObject( TInt aIndex );
+
+		CTestDmDDFObject* FindChildObject( const TDesC8& aName );
+		TInt SubObjectsCount();
+
+
+    protected:  // New functions
+        
+        /**
+        * ?member_description.
+        * @since Series ?XX ?SeriesXX_version
+        * @param ?arg1 ?description
+        * @return ?description
+        */
+        //?type ?member_function( ?type ?arg1 );
+
+    protected:  // Functions from base classes
+        
+        /**
+        * From ?base_class ?member_description
+        */
+        //?type ?member_function();
+
+    private:
+
+        /**
+        * C++ default constructor.
+        */
+        CTestDmDDFObject( CStifLogger *aLog );
+
+        /**
+        * By default Symbian 2nd phase constructor is private.
+        */
+        void ConstructL();
+
+        // Prohibit copy constructor if not deriving from CBase.
+        // CTestDmDDFObject( const CTestDmDDFObject& );
+        // Prohibit assigment operator if not deriving from CBase.
+        // CTestDmDDFObject& operator=( const CTestDmDDFObject& );
+
+    public:     // Data
+        // ?one_line_short_description_of_data
+        //?data_declaration;
+    
+    protected:  // Data
+        // ?one_line_short_description_of_data
+        //?data_declaration;
+
+    private:    // Data
+        // ?one_line_short_description_of_data
+        //?data_declaration;
+		HBufC8* iName;
+
+		TSmlDmAccessTypes iAccessTypes;
+		HBufC8* iDefaultValue;
+		HBufC8* iDescription;
+		TDFFormat iFormat;
+		TOccurence iOccurence;
+		TScope iScope;
+		HBufC8* iTitle;
+		HBufC8* iMimeType;
+		TBool iObjectGroup;
+		
+		RPointerArray<CTestDmDDFObject> iChildren;
+
+         
+        // Reserved pointer for future extension
+        //TAny* iReserved;
+
+    public:     // Friend classes
+        //?friend_class_declaration;
+    protected:  // Friend classes
+        //?friend_class_declaration;
+    private:    // Friend classes
+        //?friend_class_declaration;
+        /**
+        * Logger.
+        */
+        CStifLogger*    iLog;
+
+    };
+
+#endif      // __TESTDMDDFOBJECT_H
+            
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/syncmldm12/tsrc/inc/dmatest.h	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,277 @@
+/*
+* 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.
+*
+*/
+
+
+
+
+
+
+#ifndef __DMA_TEST_H__
+#define __DMA_TEST_H__
+
+//  INCLUDES
+#include <StifLogger.h>
+#include <TestScripterInternal.h>
+#include <StifTestModule.h>
+#include <apmstd.h>
+#include <smldmadapter.h>
+#include "NSmlDMSettingsAdapter12.h"
+
+class Cdmatest;
+
+
+struct TMapping
+	{
+	TBuf8<256> iURI;
+	TBuf8<64> iLuid;
+	TMapping( const TDesC8 &aURI, const TDesC8 &aLuid )  : iURI( aURI ), iLuid( aLuid )
+	{
+		
+		}
+	};
+	
+typedef RArray<TMapping> RMappingArray;
+
+typedef void (Cdmatest::* ResultsFunction)( TInt , CBufBase& , const TDesC8&  ) ; 
+
+
+// CLASS DECLARATION
+
+/**
+*  ?one_line_short_description.
+*  ?other_description_lines
+*
+*  @lib ?library
+*  @since Series ?XX ?SeriesXX_version
+*/
+class Cdmatest : public CScriptBase, public MSmlDmCallback
+    {
+    
+    public:  // Constructors and destructor
+        
+        /**
+        * Destructor.
+        */
+        virtual ~Cdmatest();
+
+    public: // Functions from base classes
+
+        /**
+        * From CScriptBase Runs a script line.
+        * @since ?Series60_version
+        * @param aItem Script line containing method name and parameters
+        * @return Symbian OS error code
+        */
+        virtual TInt RunMethodL( CStifItemParser& aItem ) = 0;
+    
+
+	public:
+		/**
+		The function is used to return the data in case of FetchLeafObjectL(),
+		FetchLeafObjectSizeL() and ChildURIListL() functions. It should not be
+		called where the DM command has failed, i.e. the error code returned in
+		SetStatusL is something other than EOk.
+		@param aResultsRef	Reference to correct command
+		@param aObject		The data which should be returned
+		@param aType			MIME type of the object
+		@publishedPartner
+		@prototype
+		*/
+		void SetResultsL( TInt aResultsRef, CBufBase& aObject,
+								  const TDesC8& aType );
+		
+		/**
+		The function is used to return the data in case of FetchLeafObjectL() and
+		ChildURIListL() functions, where the size of the data being returned is
+		large enough for the Adapter to stream it. This function should not be
+		called when command was failed, i.e. the error code returned in SetStatusL
+		is something other than EOk.
+		@param aResultsRef	Reference to correct command
+		@param aStream		Large data which should be returned, DM engine
+								closes stream when it has read all the data
+		@param aType			MIME type of the object
+		@publishedPartner
+		@prototype
+		*/
+		void SetResultsL( TInt /*aResultsRef*/, RReadStream*& /*aStream*/,
+								  const TDesC8& /*aType*/ ) 
+		{
+			
+		}
+
+		/**
+		The function returns information about the Add,Update,Delete and Fetch
+		commands success to DM engine. The reference to correct command must be
+		used when calling the SetStatusL function, the reference is got from the
+		argument of the command functions. The SetStatusL function must be called
+		separately for every single command.
+		@param aStatusRef	Reference to correct command
+		@param aErrorCode	Information about the command success
+		@publishedPartner
+		@prototype
+		*/
+		void SetStatusL( TInt aStatusRef,
+								 MSmlDmAdapter::TError aErrorCode ) ;
+
+		/**
+		The function passes map information to DM Module. This function is called
+		for a new management object, both for node objects and for leaf objects.
+		In addition if ChildURIListL() function has returned new objects a mapping
+		information of the new objects must be passed. A mapping is treated as
+		inheritable. If the mapping is not set with this function, the mapping
+		LUID of the parent object is passed in following commands to the object.
+		@param aURI	URI of the object. 
+		@param aLUID	LUID of the object. LUID must contain the all information,
+						which is needed for retrieve the invidual object from the
+						database. Typically it is ID for the database table. In
+						more complicated structures it can be combination of IDs,
+						which represent path to the object.
+		@publishedPartner
+		@prototype
+		*/
+		void SetMappingL( const TDesC8& aURI, const TDesC8& aLUID );
+
+		/**
+		The function is used to make a fetch to other adapters. The most common
+		use is to make a fetch to the AP adapter, because when managing the access
+		points, the data comes as URI. For example, there are ToNAPId field in
+		some adapters, and data to it can be something like AP/IAPidx, and then
+		the link to AP adapter is needed.
+		Using FetchLinkL causes the DM Framework to make a Get request to the
+		appropriate DM adapter.  The receiving adapter MUST complete the Get
+		request synchronously.
+		@param aURI		URI of the object. 
+		@param aData		Reference to data, i.e. data is returned here
+		@param aStatus	The status of fetch command is returned here
+		@publishedPartner
+		@prototype
+		*/
+		void FetchLinkL( const TDesC8& /*aURI*/, CBufBase& /*aData*/,
+								 MSmlDmAdapter::TError& /*aStatus*/ ) 
+			{
+				
+			}
+
+		/**
+		The function returns the LUID which is mapped to aURI. If LUID is not
+		found, the function allocates a null length string, i.e. the function
+		allocates memory in every case.
+		@param aURI	URI of the object. 
+		@publishedPartner
+		@prototype
+		*/
+		HBufC8* GetLuidAllocL( const TDesC8& aURI ) ;
+
+#ifdef __TARM_SYMBIAN_CONVERGENCY
+    
+    void GetMappingInfoListL( const TDesC8& aURI,
+								CArrayFix<TSmlDmMappingInfo>& aSegmentList );
+
+#else
+// nothing
+#endif
+		        
+    protected:  // New functions
+
+        
+		void FetchNodeResultsL( TInt aResultsRef, CBufBase& aObject,
+							  const TDesC8& aType );
+		void SaveDataL( TInt aResultsRef, CBufBase& aObject,
+							  const TDesC8& aType ) ;
+							  
+		TPtrC8 LastURISeg( const TDesC8& aURI );
+		TPtrC8 RemoveLastURISeg( const TDesC8& aURI );
+		TPtrC RemoveLastURISeg( const TDesC& aURI );
+		void SetURIL( const TDesC& aURI );
+		void SetURIL( const TDesC8& aURI );
+		void SetURIL( HBufC8* aURI );		
+		HBufC8 *LoadFileLC( const TDesC &aFileName, TDataType &aType );
+		HBufC8 *LoadFileLC( const TDesC8 &aFileName, TDataType &aType );
+		HBufC8 *GetNextStringLC ( CStifItemParser& aItem, const TDesC &aName );
+		HBufC8* GetLuidAllocLC( const TDesC8& aURI ) ;
+		TPtrC8 RemoveLastSeg(const TDesC8& aURI);
+		
+		TInt FetchNodeL( CStifItemParser& aItem ) ;
+		TInt FetchLeafL( CStifItemParser& aItem ) ;
+		TInt AddNodeL( CStifItemParser& aItem );
+		TInt DeleteObjectL( CStifItemParser& aItem );	
+		TInt UpdateLeafL( CStifItemParser& aItem )	;
+		TInt UpdateLeafDataL( CStifItemParser& aItem ) ;
+		TInt UpdateLeafDataURLL( CStifItemParser& aItem ) ;
+		
+		TInt ExecuteLeafL ( CStifItemParser& aItem ) ;
+		TInt ExecuteLeafDataL ( CStifItemParser& aItem ) ;
+		TInt StartAtomicL( CStifItemParser& aItem )	;
+		TInt CommitAtomicL( CStifItemParser& aItem )	;
+		TInt RollbackAtomicL( CStifItemParser& aItem )	;
+		TInt CompleteCommandsL( CStifItemParser& aItem );
+		TInt DDFStructureL( CStifItemParser& aItem )	;
+//        TInt DeliverL( CStifItemParser& aItem ) ;
+//        TInt DetailsL( CStifItemParser& aItem ) ;
+//		TInt InstallL( CStifItemParser& aItem ) ;
+//		TInt BareInstallL( CStifItemParser& aItem ) ;		
+
+    protected:
+
+        /**
+        * C++ default constructor.
+        */
+        Cdmatest( CTestModuleIf& aTestModuleIf, TUid aUid );
+
+        /**
+        * By default Symbian 2nd phase constructor is private.
+        */
+        void ConstructL();
+
+        // Prohibit copy constructor if not deriving from CBase.
+        // Cdmatest( const Cdmatest& );
+        // Prohibit assigment operator if not deriving from CBase.
+        // Cdmatest& operator=( const Cdmatest& );
+
+		/**
+        * Frees all resources allocated from test methods.
+        * @since ?Series60_version
+        */
+        virtual void Delete();
+        void LoadMappingsL();
+        void SaveMappingsL();
+    public:     // Data
+        // ?one_line_short_description_of_data
+        //?data_declaration;
+    
+    protected:  // Data
+        // ?one_line_short_description_of_data
+        //?data_declaration;
+		MSmlDmAdapter::TError iStatus ;
+        ResultsFunction iResultsFunction;
+        //CSmlDmAdapter *iAdapter ;
+        CNSmlDMSettingsAdapter12 *iAdapter ;
+        HBufC8 *iURI; 
+        CArrayFix<TSmlDmMappingInfo> *iEmptyMappingInfoArray;
+		TFileName iSaveFileName;
+		RMappingArray iMappingTable;
+		TUid iUid;
+		TInt iCounter;
+		//class CNSmlDmMgmtTree* iMgmtTree;
+		class CNSmlDmMgmtTree* iMgmtTree;
+		CNSmlDMSettingsAdapter12 *Adapter() ;
+    };
+
+#endif      // __DMA_TEST_H__
+            
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/syncmldm12/tsrc/inc/syncmldm12test.h	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,133 @@
+/*
+* 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.
+*
+*/
+
+
+
+
+
+
+#ifndef TCTEST_H
+#define TCTEST_H
+
+//  INCLUDES
+#include <StifLogger.h>
+#include <TestScripterInternal.h>
+#include <StifTestModule.h>
+#include <smldmadapter.h>
+#include "dmatest.h"
+
+const TUint KNSmlDMSettings12AdapterImplUid = 0x10282CE8;
+	
+
+const TUid KAdapterUid = 
+		{
+		KNSmlDMSettings12AdapterImplUid
+		};
+// Logging path
+_LIT( KamtestLogPath, "\\logs\\testframework\\tctest\\" ); 
+// Log file
+_LIT( KamtestLogFile, "tctest.txt" ); 
+
+
+// FORWARD DECLARATIONS
+class Csyncmldm12Test;
+
+
+// CLASS DECLARATION
+
+/**
+*  Csyncmldm12Test test class for STIF Test Framework TestScripter.
+*  ?other_description_lines
+*
+*  @lib ?library
+*  @since ?Series60_version
+*/
+class Csyncmldm12Test : public Cdmatest
+    {
+    public:  // Constructors and destructor
+        
+        /**
+        * Two-phased constructor.
+        */
+        static Csyncmldm12Test* NewL( CTestModuleIf& aTestModuleIf );
+        
+        /**
+        * Destructor.
+        */
+        virtual ~Csyncmldm12Test();
+
+    public: // Functions from base classes
+
+        /**
+        * From CScriptBase Runs a script line.
+        * @since ?Series60_version
+        * @param aItem Script line containing method name and parameters
+        * @return Symbian OS error code
+        */
+        virtual TInt RunMethodL( CStifItemParser& aItem );
+                
+
+    private:
+
+        /**
+        * C++ default constructor.
+        */
+        Csyncmldm12Test( CTestModuleIf& aTestModuleIf );
+
+        /**
+        * By default Symbian 2nd phase constructor is private.
+        */
+        void ConstructL();
+
+        // Prohibit copy constructor if not deriving from CBase.
+        // ?classname( const ?classname& );
+        // Prohibit assigment operator if not deriving from CBase.
+        // ?classname& operator=( const ?classname& );
+    
+        /**
+        * Frees all resources allocated from test methods.
+        * @since ?Series60_version
+        */
+        virtual void Delete();
+        
+        /**
+        * Test methods are listed below. 
+        */
+        
+        /**
+        * Example test method.
+        * @since ?Series60_version
+        * @param aItem Script line containing parameters.
+        * @return Symbian OS error code.
+        */
+/*        virtual TInt ExampleL( CStifItemParser& aItem ) ;
+        virtual TInt DeliverL( CStifItemParser& aItem ) ;
+        virtual TInt DetailsL( CStifItemParser& aItem ) ;
+		    virtual TInt InstallL( CStifItemParser& aItem ) ;
+		    virtual TInt BareInstallL( CStifItemParser& aItem ) ;*/
+		
+
+    private:    // Data
+        HBufC8 *GetNextStringLC ( CStifItemParser& aItem, const TDesC &aName );
+
+
+    };
+
+#endif      // TCTEST_H
+            
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/syncmldm12/tsrc/init/syncmldm12test.ini	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,204 @@
+#
+# This is STIF initialization file
+# Comment lines start with '#'-character.
+# See STIF TestFramework users guide.doc for instructions
+
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+# Set following test engine settings:
+#	- Set Test Reporting mode. TestReportMode's possible values are:
+#		+ 'Summary': Summary of the tested test cases.
+#		+ 'Environment': Hardware and software info.
+#		+ 'TestCases': Test case report.
+#		+ 'FullReport': Set of all above ones.
+#		+ Example 'TestReportMode= Summary TestCases'
+#
+# 	- CreateTestReport setting controls report creation mode
+#		+ YES, Test report will created.
+#		+ NO, No Test report.
+#
+# 	- File path indicates the base path of the test report.
+# 	- File name indicates the name of the test report.
+#
+# 	- File format indicates the type of the test report.
+#		+ TXT, Test report file will be txt type, for example 'TestReport.txt'.
+#		+ HTML, Test report will be html type, for example 'TestReport.html'.
+#
+# 	- File output indicates output source of the test report.
+#		+ FILE, Test report logging to file.
+#		+ RDEBUG, Test report logging to using rdebug.
+#
+# 	- File Creation Mode indicates test report overwriting if file exist.
+#		+ OVERWRITE, Overwrites if the Test report file exist.
+#		+ APPEND, Continue logging after the old Test report information if
+#                 report exist.
+# 	- Sets a device reset module's dll name(Reboot).
+#		+ If Nokia specific reset module is not available or it is not correct one
+#		  StifHWResetStub module may use as a template for user specific reset
+#		  module.
+# 	- Sets STIF test measurement disable options. e.g. pluging1 and pluging2 disablation
+#		DisableMeasurement= stifmeasurementplugin01 stifmeasurementplugin02
+#
+
+[Engine_Defaults]
+
+TestReportMode= FullReport    # Possible values are: 'Empty', 'Summary', 'Environment',
+                                                     'TestCases' or 'FullReport'
+
+CreateTestReport= YES         # Possible values: YES or NO
+
+TestReportFilePath= C:\LOGS\TestFramework\
+TestReportFileName= TestReport
+
+TestReportFormat= TXT         # Possible values: TXT or HTML
+TestReportOutput= FILE        # Possible values: FILE or RDEBUG
+TestReportFileCreationMode= OVERWRITE # Possible values: OVERWRITE or APPEND
+
+DeviceResetDllName= StifResetForNokia.dll # e.g. 'StifHWResetStub.dll' for user specific reseting
+
+DisableMeasurement= stifmeasurementdisablenone  # Possible values are:
+              # 'stifmeasurementdisablenone', 'stifmeasurementdisableall'
+              # 'stifmeasurementplugin01', 'stifmeasurementplugin02',
+              # 'stifmeasurementplugin03', 'stifmeasurementplugin04',
+              # 'stifmeasurementplugin05' or 'stifbappeaprofiler'
+
+Timeout= 0                    # Default timeout value for each test case. In milliseconds
+#UITestingSupport= YES        # Possible values: YES or NO
+#SeparateProcesses= YES       # Possible values: YES or NO (default: NO)
+[End_Defaults]
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+
+
+
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+# Module configurations start
+# Modules are added between module tags
+# tags. Module name is specified after ModuleName= tag, like
+# ModuleName= XXXXXXXXX
+# Modules might have initialisation file, specified as
+# IniFile= c:\testframework\YYYYYY
+# Modules might have several configuration files, like
+# TestCaseFile= c:\testframework\NormalCases.txt
+# TestCaseFile= c:\testframework\SmokeCases.txt
+# TestCaseFile= c:\testframework\ManualCases.txt
+
+# (TestCaseFile is synonym for old term ConfigFile)
+
+# Following case specifies demo module settings. Demo module
+# does not read any settings from file, so tags 
+# IniFile and TestCaseFile are not used.
+# In the simplest case it is enough to specify only the
+# name of the test module when adding new test module
+
+#[New_Module]
+#ModuleName= demomodule
+#[End_Module]
+
+
+[New_Module]
+ModuleName= testscripter
+#DM
+TestCaseFile= c:\testframework\syncmldm12test.cfg
+[End_Module]
+
+
+# Load testmoduleXXX, optionally with initialization file and/or test case files
+#[New_Module]
+#ModuleName= testmodulexxx
+
+#TestModuleXXX used initialization file
+#IniFile= c:\testframework\init.txt
+
+#TestModuleXXX used configuration file(s)
+#TestCaseFile= c:\testframework\testcases1.cfg
+#TestCaseFile= c:\testframework\testcases2.cfg
+#TestCaseFile= c:\testframework\manualtestcases.cfg
+
+#[End_Module]
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+
+
+
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+# Set STIF logging overwrite parameters for Logger.
+# 	Hardware and emulator environment logging path and styles can
+# 	be configured from here to overwrite the Logger's implemented values.
+#	
+#	Settings description:
+#	- Indicates option for creation log directory/directories. If log directory/directories
+#         is/are not created by user they will make by software.
+#		+ YES, Create log directory/directories if not allready exist.
+#		+ NO, Log directory/directories not created. Only created one is used.
+#
+#	- Overwrite emulator path setting.
+#		+ Example: If 'EmulatorBasePath= C:\LOGS\TestFramework\' and in code is defined 
+#		           Logger's path 'D:\\LOGS\\Module\\' with those definition the path
+#		           will be 'C:\LOGS\TestFramework\LOGS\Module\'
+#
+#	- Overwrite emulator's logging format.
+#		+ TXT, Log file(s) will be txt type(s), for example 'Module.txt'.
+#		+ HTML, Log file(s) will be html type(s), for example 'Module.html'.
+#
+#	- Overwrited emulator logging output source.
+#		+ FILE, Logging to file(s).
+#		+ RDEBUG, Logging to using rdebug(s).
+#
+#	- Overwrite hardware path setting (Same description as above in emulator path).
+#	- Overwrite hardware's logging format(Same description as above in emulator format).
+#	- Overwrite hardware's logging output source(Same description as above in emulator output).
+#
+#	- File Creation Mode indicates file overwriting if file exist.
+#		+ OVERWRITE, Overwrites if file(s) exist.
+#		+ APPEND, Continue logging after the old logging information if file(s) exist.
+#
+#	- Will thread id include to the log filename.
+#		+ YES, Thread id to log file(s) name, Example filename 'Module_b9.txt'.
+#		+ NO, No thread id to log file(s), Example filename 'Module.txt'.
+#
+#	- Will time stamps include the to log file.
+#		+ YES, Time stamp added to each line in log file(s). Time stamp is 
+#                 for example'12.Nov.2003 115958    LOGGING INFO'
+#		+ NO, No time stamp(s).
+#
+#	- Will line breaks include to the log file.
+#		+ YES, Each logging event includes line break and next log event is in own line.
+#		+ NO, No line break(s).
+#
+#	- Will event ranking include to the log file.
+#		+ YES, Event ranking number added to each line in log file(s). Ranking number
+#                 depends on environment's tics, for example(includes time stamp also)
+#                 '012   12.Nov.2003 115958    LOGGING INFO'
+#		+ NO, No event ranking.
+#
+#	- Will write log file in unicode format.
+#		+ YES, Log file will be written in unicode format
+#		+ NO, Log will be written as normal, not unicode, file.
+#
+
+[Logger_Defaults]
+
+#NOTE: If you want to set Logger using next setting(s) remove comment(s)'#'
+#NOTE: TestEngine and TestServer logging settings cannot change here
+
+#CreateLogDirectories= YES    # Possible values: YES or NO
+
+#EmulatorBasePath= C:\LOGS\TestFramework\
+#EmulatorFormat= HTML         # Possible values: TXT or HTML
+#EmulatorOutput= FILE         # Possible values: FILE or RDEBUG
+
+#HardwareBasePath= D:\LOGS\TestFramework\
+#HardwareFormat= HTML         # Possible values: TXT or HTML
+#HardwareOutput= FILE         # Possible values: FILE or RDEBUG
+
+#FileCreationMode= OVERWRITE  # Possible values: OVERWRITE or APPEND
+
+#ThreadIdToLogFile= YES       # Possible values: YES or NO
+#WithTimeStamp= YES           # Possible values: YES or NO
+#WithLineBreak= YES           # Possible values: YES or NO
+#WithEventRanking= YES        # Possible values: YES or NO
+
+#FileUnicode= YES             # Possible values: YES or NO
+#AddTestCaseTitle= YES        # Possible values: YES or NO
+[End_Logger_Defaults]
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+
+# End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/syncmldm12/tsrc/src/TestDmDDFObject.cpp	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,516 @@
+/*
+* 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 "TestDmDDFObject.h"
+#include "StifLogger.h"
+
+// EXTERNAL DATA STRUCTURES
+//extern  ?external_data;
+
+// EXTERNAL FUNCTION PROTOTYPES  
+//extern ?external_function( ?arg_type,?arg_type );
+
+// CONSTANTS
+//const ?type ?constant_var = ?constant;
+
+// MACROS
+//#define ?macro ?macro_def
+
+// LOCAL CONSTANTS AND MACROS
+//const ?type ?constant_var = ?constant;
+//#define ?macro_name ?macro_def
+
+// MODULE DATA STRUCTURES
+//enum ?declaration
+//typedef ?declaration
+
+// LOCAL FUNCTION PROTOTYPES
+//?type ?function_name( ?arg_type, ?arg_type );
+
+// FORWARD DECLARATIONS
+//class ?FORWARD_CLASSNAME;
+
+// ============================= LOCAL FUNCTIONS ===============================
+
+
+
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CTestDmDDFObject::CTestDmDDFObject
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// -----------------------------------------------------------------------------
+//
+CTestDmDDFObject::CTestDmDDFObject( CStifLogger *aLog )
+	: iName( 0 )
+	, iAccessTypes()
+	, iDefaultValue( 0 )
+	, iDescription( 0 )
+	, iFormat( (TDFFormat)0 )
+	, iOccurence( (TOccurence)0 )
+	, iScope( (TScope)0 )
+	, iTitle ( 0 )
+	, iMimeType( 0 )
+	, iObjectGroup( EFalse )
+	, iLog( aLog )
+//	RPointerArray<CTestDmDDFObject> iChildren;
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CTestDmDDFObject::ConstructL
+// Symbian 2nd phase constructor can leave.
+// -----------------------------------------------------------------------------
+//
+void CTestDmDDFObject::ConstructL()
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CTestDmDDFObject::NewL
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CTestDmDDFObject* CTestDmDDFObject::NewL( CStifLogger *aLog )
+    {
+    CTestDmDDFObject* self = CTestDmDDFObject::NewLC( aLog );
+    CleanupStack::Pop( self );
+
+    return self;
+    }
+
+CTestDmDDFObject* CTestDmDDFObject::NewLC( CStifLogger *aLog )
+    {
+    CTestDmDDFObject* self = new( ELeave ) CTestDmDDFObject( aLog );
+    
+    CleanupStack::PushL( self );
+    self->ConstructL();
+
+    return self;
+    }
+
+    
+// Destructor
+CTestDmDDFObject::~CTestDmDDFObject()
+    {
+	delete iName;
+	delete iDefaultValue;
+	delete iDescription;
+	delete iTitle;
+	delete iMimeType;
+	iChildren.ResetAndDestroy();
+    }
+
+
+// -----------------------------------------------------------------------------
+// CTestDmDDFObject::?member_function
+// ?implementation_description
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+/*?type CTestDmDDFObject::?member_function(
+    ?arg_type arg,
+    ?arg_type arg )
+    {
+    
+    ?code
+    
+    }
+*/
+
+void CTestDmDDFObject::SetAccessTypesL( TSmlDmAccessTypes aAccessTypes )
+	{
+	iLog->Log( _L8( "SetAccessTypesL, aAccessTypes=%d" ), aAccessTypes.GetACL() );
+	iAccessTypes = aAccessTypes;
+	}
+
+void CTestDmDDFObject::SetDefaultValueL( const TDesC8& aDefaultValue )
+	{
+	iLog->Log( _L8( "SetDefaultValueL, aDefaultValue='%S'" ), &aDefaultValue );
+	delete iDefaultValue;
+	iDefaultValue = 0;
+	iDefaultValue = aDefaultValue.AllocL();
+	}
+
+void CTestDmDDFObject::SetDescriptionL( const TDesC8& aDescription )
+	{
+	iLog->Log( _L8( "SetDescriptionL, aDescription='%S'" ), &aDescription );
+	delete iDescription;
+	iDescription = 0;
+	iDescription = aDescription.AllocL();
+	}
+	
+void CTestDmDDFObject::SetDFFormatL( TDFFormat aFormat )
+	{
+	iLog->Log( _L8( "SetDFFormatL, aFormat=%d" ), aFormat );
+	iFormat = aFormat;
+	}
+	
+void CTestDmDDFObject::SetOccurenceL( TOccurence aOccurence )
+	{
+	iLog->Log( _L8( "SetOccurenceL, aOccurence=%d" ), aOccurence );
+	iOccurence = aOccurence;
+	}
+	
+void CTestDmDDFObject::SetScopeL( TScope aScope )
+	{
+	iLog->Log( _L8( "SetScopeL, aScope=%d" ), aScope );
+	iScope = aScope;
+	}
+	
+void CTestDmDDFObject::SetDFTitleL( const TDesC8& aTitle )
+	{
+	iLog->Log( _L8( "SetDFTitleL, aTitle='%S'" ), &aTitle );
+	delete iTitle;
+	iTitle = 0;
+	iTitle = aTitle.AllocL();
+	}
+	
+void CTestDmDDFObject::AddDFTypeMimeTypeL( const TDesC8& aMimeType )
+	{
+	iLog->Log( _L8( "AddDFTypeMimeTypeL, aMimeType='%S'" ), &aMimeType );
+	delete iMimeType;
+	iMimeType = 0;
+	iMimeType = aMimeType.AllocL();
+	}
+	
+void CTestDmDDFObject::SetAsObjectGroup()
+	{
+	iLog->Log( _L8( "SetAsObjectGroup, true" ) );
+	iObjectGroup = ETrue;
+	}
+	
+MSmlDmDDFObject& CTestDmDDFObject::AddChildObjectL(const TDesC8& aNodeName)
+	{
+	iLog->Log( _L8( "AddChildObjectL, aNodeName='%S'" ), &aNodeName );
+	CTestDmDDFObject* child = CTestDmDDFObject::NewLC( iLog ); //, aNodeName );
+	child->SetNameL( aNodeName );
+	iChildren.AppendL( child );
+	CleanupStack::Pop( child ); // Don't destroy
+	return *child;
+	}
+
+MSmlDmDDFObject& CTestDmDDFObject::AddChildObjectGroupL()
+	{
+	iLog->Log( _L8( "AddChildObjectGroupL, ''" ) );
+	CTestDmDDFObject* child = CTestDmDDFObject::NewLC( iLog ); //, KNullDesC );
+	child->SetAsObjectGroup();
+	iChildren.AppendL( child );
+	CleanupStack::Pop( child ); // Don't destroy
+	return *child;
+	}
+
+// Own functions
+
+void CTestDmDDFObject::SetNameL( const TDesC8& aName )
+	{
+	delete iName;
+	iName = 0;
+	iName = aName.AllocL();
+	}
+
+void CTestDmDDFObject::DumpL( const TDesC8& aParentName, TBool aFullDump )
+	{
+	TPtrC8 name( _L8("<X>") );
+	if (iName && iName->Length() > 0)
+		{
+		name.Set( *iName );
+		}
+
+	HBufC8* fullName = HBufC8::NewLC( aParentName.Length() + name.Length() + 1 );
+	*fullName = aParentName;
+	if (aParentName.Length() > 0 && aParentName[ aParentName.Length() - 1 ] != '/')
+		{
+		fullName->Des().Append( _L8("/"));
+		}
+	fullName->Des().Append( name );
+
+	/* Translate some members to text for dumping */
+	TBuf8<20> strAccessTypes;
+	TUint8 accessTypes = iAccessTypes.GetACL();
+	if ((accessTypes & iAccessTypes.EAccessType_Add) != 0)
+		{
+		strAccessTypes.Append( _L8("A") );
+		}
+	if ((accessTypes & iAccessTypes.EAccessType_Copy) != 0)
+		{
+		strAccessTypes.Append( _L8("C") );
+		}
+	if ((accessTypes & iAccessTypes.EAccessType_Delete) != 0)
+		{
+		strAccessTypes.Append( _L8("D") );
+		}
+	if ((accessTypes & iAccessTypes.EAccessType_Exec) != 0)
+		{
+		strAccessTypes.Append( _L8("E") );
+		}
+	if ((accessTypes & iAccessTypes.EAccessType_Get) != 0)
+		{
+		strAccessTypes.Append( _L8("G") );
+		}
+	if ((accessTypes & iAccessTypes.EAccessType_Replace) != 0)
+		{
+		strAccessTypes.Append( _L8("R") );
+		}
+	
+	TBuf8<20> strFormat;
+	switch( iFormat )
+		{
+	case EB64:
+		strFormat = _L8("Base64");
+		break;
+	case EBool:
+		strFormat = _L8("Bool");
+		break;
+	case EChr:
+		strFormat = _L8("Chr");
+		break;
+	case EInt:
+		strFormat = _L8("Int");
+		break;
+	case ENode:
+		strFormat = _L8("Node");
+		break;
+	case ENull:
+		strFormat = _L8("Null");
+		break;
+	case EXml:
+		strFormat = _L8("Xml");
+		break;
+	case EBin:
+		strFormat = _L8("Bin");
+		break;
+	default:
+		break;
+		}
+
+
+	TBuf8<20> strOccurence;
+	switch( iOccurence )
+		{
+	case EOne:
+		/** The node appears exactly once */
+		strOccurence = _L8("M:1");
+		break;
+	case EZeroOrOne:
+		/** The node is optional and may appear zero or once */
+		strOccurence = _L8("O:0-1");
+		break;
+	case EZeroOrMore:
+		/** The node is optional and may appear zero or more times */
+		strOccurence = _L8("O:0-*");
+		break;
+	case EOneOrMore:
+		/** The node is mandatory and may appear once or more times */
+		strOccurence = _L8("M:1-*");
+		break;
+	case EZeroOrN:
+		/** The node is optional and may appear between once and 'N' times */
+		strOccurence = _L8("O:1-N");
+		break;
+	case EOneOrN:
+		/** The node is mandatory and may appear between once and 'N' times */
+		strOccurence = _L8("M:1-N");
+		break;
+	default:
+		break;
+		}
+	
+	
+	TBuf8<20> strScope;
+	switch( iScope)
+		{
+	case EPermanent:
+		/** The node appears exactly once */
+		strScope = _L8("Permanent");
+		break;
+	case EDynamic:
+		/** The node is optional and may appear zero or once */
+		strScope = _L8("O:Dynamic");
+		break;
+	default:
+		break;
+		}
+
+	
+	/* Dump main data */
+	if (aFullDump)
+		{
+		iLog->Log( _L8( "DDFObject: '%S'" ), fullName );
+		}
+		else
+		{
+		iLog->Log( _L8( "DDFObject: '%S'   (%S), %S, %S, %S" ),
+					fullName, &strAccessTypes, &strFormat, &strOccurence, &strScope );
+		}
+	
+	/* Dump members */
+	if (aFullDump)
+		{
+		TPtrC8 empty( _L8( "<null>" ) );
+		#define CHK_NULL(a) ((a)==0?(TDesC8*)(&empty):(TDesC8*)(a))
+
+		iLog->Log( _L8( "    iName=='%S'" ), iName );
+		iLog->Log( _L8( "    iAccessTypes=%d (%S)" ), iAccessTypes.GetACL(), &strAccessTypes );
+		iLog->Log( _L8( "    iDefaultValue='%S'" ), CHK_NULL(iDefaultValue));
+		iLog->Log( _L8( "    iDescription='%S'" ), CHK_NULL(iDescription ));
+		iLog->Log( _L8( "    iFormat=%d (%S)" ), iFormat, &strFormat );
+		iLog->Log( _L8( "    iOccurence=%d (%S)" ), iOccurence, &strOccurence );
+		iLog->Log( _L8( "    iScope=%d (%S)" ), iScope, &strScope );
+		iLog->Log( _L8( "    iTitle='%S'" ), CHK_NULL(iTitle ));
+		iLog->Log( _L8( "    iMimeType='%S'" ), CHK_NULL(iMimeType ));
+		iLog->Log( _L8( "----------------------------------" ) );
+		}
+	
+	/* Dump children */
+	for (TInt i = 0 ; i < iChildren.Count() ; i++)
+		{
+		iChildren[i]->DumpL( *fullName, aFullDump );
+		}
+
+	CleanupStack::PopAndDestroy( fullName );
+	}
+
+/*
+void CTestDmDDFObject::ExternalizeL(RWriteStream& aStream) const
+	{
+	X;
+	aStream << *iName << eol;
+	}
+*/
+
+const TDesC8& CTestDmDDFObject::Name()
+	{
+	return (iName != 0) ? *iName : KNullDesC8();
+	}
+
+TSmlDmAccessTypes  CTestDmDDFObject::AccessTypes()
+	{
+	return iAccessTypes;
+	}
+
+const TDesC8& CTestDmDDFObject::DefaultValue()
+	{
+	return (iDefaultValue != 0) ? *iDefaultValue : KNullDesC8();
+	}
+
+const TDesC8& CTestDmDDFObject::Description()
+	{
+	return (iDescription != 0) ? *iDescription : KNullDesC8();
+	}
+
+CTestDmDDFObject::TDFFormat CTestDmDDFObject::DFFormat()
+	{
+	return iFormat;
+	}
+
+CTestDmDDFObject::TOccurence CTestDmDDFObject::Occurence()
+	{
+	return iOccurence;
+	}
+
+CTestDmDDFObject::TScope CTestDmDDFObject::Scope()
+	{
+	return iScope;
+	}
+
+const TDesC8& CTestDmDDFObject::DFTitle()
+	{
+	return (iTitle != 0) ? *iTitle : KNullDesC8();
+	}
+
+const TDesC8& CTestDmDDFObject::DFTypeMimeType()
+	{
+	return (iMimeType != 0) ? *iMimeType : KNullDesC8();
+	}
+
+TBool CTestDmDDFObject::ObjectGroup()
+	{
+	return iObjectGroup;
+	}
+
+TInt CTestDmDDFObject::ChildObjectCount()
+	{
+	return iChildren.Count();
+	}
+
+CTestDmDDFObject& CTestDmDDFObject::ChildObject( TInt aIndex )
+	{
+	return *iChildren[aIndex];
+	}
+
+CTestDmDDFObject* CTestDmDDFObject::FindChildObject( const TDesC8& aName )
+	{
+	CTestDmDDFObject* foundObject = 0;
+
+	for (TInt i = 0 ; i < iChildren.Count() ; i++)
+		{
+		if ( aName.CompareC( iChildren[i]->Name() ) == 0 )
+			{
+			foundObject = iChildren[i];
+			break;
+			}
+		}
+
+	return foundObject;
+	}
+
+TInt CTestDmDDFObject::SubObjectsCount()
+	{
+	TInt count = 0;
+
+	TInt i;
+	for (i = 0 ; i < iChildren.Count() ; i++)
+		{
+		count += iChildren[i]->SubObjectsCount();
+		}
+	count += i;
+
+	return count;
+	}
+
+/*
+// ========================== OTHER EXPORTED FUNCTIONS =========================
+
+// -----------------------------------------------------------------------------
+// ?function_name implements...
+// ?implementation_description.
+// Returns: ?value_1: ?description
+//          ?value_n: ?description
+//                    ?description
+// -----------------------------------------------------------------------------
+//
+?type  ?function_name(
+    ?arg_type arg,  // ?description
+    ?arg_type arg )  // ?description
+    {
+
+    ?code
+
+    }
+*/
+//  End of File  
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/syncmldm12/tsrc/src/dmatest.cpp	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,954 @@
+/*
+* 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
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/syncmldm12/tsrc/src/syncmldm12test.cpp	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,117 @@
+/*
+* 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 <Stiftestinterface.h>
+#include "syncmldm12Test.h"
+#include <stiflogger.h>
+
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// Csyncmldm12Test::Csyncmldm12Test
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// -----------------------------------------------------------------------------
+//
+/*Csyncmldm12Test::Csyncmldm12Test( 
+    CTestModuleIf& aTestModuleIf ):
+        CScriptBase( aTestModuleIf )
+    {
+    }*/
+Csyncmldm12Test::Csyncmldm12Test( CTestModuleIf& aTestModuleIf )
+		: Cdmatest( aTestModuleIf, KAdapterUid )
+    {
+    }
+// -----------------------------------------------------------------------------
+// Csyncmldm12Test::ConstructL
+// Symbian 2nd phase constructor can leave.
+// -----------------------------------------------------------------------------
+//
+void Csyncmldm12Test::ConstructL()
+    {
+/*    iLog = CStifLogger::NewL( KamtestLogPath, 
+                          KamtestLogFile,
+                          CStifLogger::ETxt,
+                          CStifLogger::EFile,
+                          EFalse );*///Commented the Part for syncmldm12Test Dipak
+    iLog = CStifLogger::NewL( KamtestLogPath, 
+                          KamtestLogFile,
+                          CStifLogger::ETxt,
+                          CStifLogger::EFile );
+                          
+    iLog->Log( _L( "Loading Adapter" ) );
+    
+	Cdmatest::ConstructL();                         	
+
+    }
+
+// -----------------------------------------------------------------------------
+// Csyncmldm12Test::NewL
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+Csyncmldm12Test* Csyncmldm12Test::NewL( 
+    CTestModuleIf& aTestModuleIf )
+    {
+    Csyncmldm12Test* self = new (ELeave) Csyncmldm12Test( aTestModuleIf );
+    
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop();
+
+    return self;
+    
+    }
+    
+// Destructor
+Csyncmldm12Test::~Csyncmldm12Test()
+    { 
+    
+    // Delete resources allocated from test methods
+//    Delete();
+    
+    // Delete logger
+//    delete iLog;  
+    
+    }
+
+// ========================== OTHER EXPORTED FUNCTIONS =========================
+
+// -----------------------------------------------------------------------------
+// LibEntryL is a polymorphic Dll entry point.
+// Returns: CScriptBase: New CScriptBase derived object
+// -----------------------------------------------------------------------------
+//
+EXPORT_C CScriptBase* LibEntryL( 
+    CTestModuleIf& aTestModuleIf ) // Backpointer to STIF Test Framework
+    {
+    
+    return ( CScriptBase* ) Csyncmldm12Test::NewL( aTestModuleIf );
+        
+    }
+
+
+    
+//  End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/syncmldm12/tsrc/src/syncmldm12testBlocks.cpp	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,108 @@
+/*
+* 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 <e32svr.h>
+#include <StifParser.h>
+#include <Stiftestinterface.h>
+#include "syncmldm12Test.h"
+#include <e32math.h>
+#include <f32file.h>
+#include <swinstapi.h>
+
+
+//using namespace NApplicationManagement;//Dipak
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// Csyncmldm12Test::Delete
+// Delete here all resources allocated and opened from test methods. 
+// Called from destructor. 
+// -----------------------------------------------------------------------------
+//
+void Csyncmldm12Test::Delete() 
+    {
+    
+    }
+    
+// -----------------------------------------------------------------------------
+// Csyncmldm12Test::RunMethodL
+// Run specified method. Contains also table of test mothods and their names.
+// -----------------------------------------------------------------------------
+//
+TInt Csyncmldm12Test::RunMethodL( 
+    CStifItemParser& aItem ) 
+    {
+   
+    TStifFunctionInfo const KFunctions[] =
+        {  
+        // Copy this line for every implemented function.
+        // First string is the function name used in TestScripter script file.
+        // Second is the actual implementation member function. 
+        ENTRY( "DDFStructure", Csyncmldm12Test::DDFStructureL),
+        ENTRY( "FetchNode", Csyncmldm12Test::FetchNodeL ),
+        ENTRY( "FetchLeaf", Csyncmldm12Test::FetchLeafL ),
+        ENTRY( "AddNode", Csyncmldm12Test::AddNodeL ),
+        ENTRY( "UpdateLeaf", Csyncmldm12Test::UpdateLeafL ),
+        ENTRY( "UpdateLeafData", Csyncmldm12Test::UpdateLeafDataL ),
+        ENTRY( "Execute", Csyncmldm12Test::ExecuteLeafL ),
+        ENTRY( "ExecuteData", Csyncmldm12Test::ExecuteLeafDataL ),
+        ENTRY( "DeleteNode", Csyncmldm12Test::DeleteObjectL ),
+        ENTRY( "StartAtomic", Csyncmldm12Test::StartAtomicL),
+	    ENTRY( "CommitAtomic", Csyncmldm12Test::CommitAtomicL),
+	    ENTRY( "RollbackAtomic", Csyncmldm12Test::RollbackAtomicL),
+	    ENTRY( "CompleteCommands", Csyncmldm12Test::CompleteCommandsL),
+        };
+
+    const TInt count = sizeof( KFunctions ) / 
+                        sizeof( TStifFunctionInfo );
+
+    return RunInternalL( KFunctions, count, aItem );
+
+    }    
+
+        
+        
+HBufC8 *Csyncmldm12Test::GetNextStringLC ( CStifItemParser& aItem, const TDesC &aName )
+	{
+	TPtrC nodename;
+	nodename.Set( 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;
+	}
+	
+//  End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/syncmlds/bld/bld.inf	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,26 @@
+/*
+* Copyright (c) 2002 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:    build info file for SyncML DS settings adapter
+*
+*/
+
+
+
+
+PRJ_MMPFILES
+./nsmldssettingsadapter.mmp
+
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/syncmlds/bld/nsmldssettingsadapter.mmp	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,54 @@
+/*
+* Copyright (c) 2005 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:    DS-settings 
+*
+*/
+
+
+
+
+#include "defaultcaps.hrh"
+#include  <platform_paths.hrh>
+
+
+TARGET          nsmldssettingsadapter.dll
+TARGETTYPE      PLUGIN
+UID             0x10009D8D 0x101F6DE7
+VENDORID        VID_DEFAULT
+CAPABILITY      CAP_ECOM_PLUGIN
+
+
+APP_LAYER_SYSTEMINCLUDE
+SYSTEMINCLUDE 	/epoc32/include/ecom
+
+SOURCEPATH      ../src
+USERINCLUDE     ../inc ../../inc
+
+SOURCE          NSmlDsSettingsAdapter.cpp
+
+
+START RESOURCE  nsmldssettingsadapter.rss
+LANGUAGE_IDS
+END
+
+
+LIBRARY         euser.lib ecom.lib charconv.lib commdb.lib nsmldebug.lib 
+LIBRARY         nsmldmiapmatcher.lib
+LIBRARY			bafl.lib
+LIBRARY         syncmlclientapi.lib
+LIBRARY         nsmltransporthandler.lib
+
+
+SMPSAFE
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/syncmlds/inc/NSmlDSSettingsAdapter.h	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,974 @@
+/*
+* Copyright (c) 2005 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:    Device Management DS Settings adapter header file
+*
+*/
+
+
+
+
+#ifndef __NSMLDSSETTINGSADAPTER_H__
+#define __NSMLDSSETTINGSADAPTER_H__
+
+// INCLUDES
+#include <smldmadapter.h>   //adapter interface
+#include <SyncMLClientDS.h> //DS Client API
+
+// CONSTANTS
+const TInt KNSmlDSGranularity = 4;
+const TUint8 KNSmlDMColon = ':';
+const TUint8 KNSmlDMUriSeparator = '/';
+
+//DDF accepted DS-fieldnames for DS-profile
+_LIT8( KNSmlDdfRoot,            "SyncML");
+_LIT8( KNSmlDdfAddr,				"Addr" );
+_LIT8( KNSmlDdfAddrType,			"AddrType" );
+_LIT8( KNSmlDdfPortNbr,			"PortNbr" );
+_LIT8( KNSmlDdfName,				"Name" );
+
+_LIT8( KNSmlDdfDB,				"DB" );
+_LIT8( KNSmlDdfCTType,			"CTType" );
+_LIT( KNSmlDdfCTVer,			"CTVer" );
+_LIT8( KNSmlDdfCTVerL,			"CTVerL" );
+
+_LIT8( KNSmlDdfRDBURI,			"RDBURI" );
+_LIT8( KNSmlDdfLDBURI,			"LDBURI" );
+
+_LIT8( KNSmlDdfClientUserName,	"ClientUserName" );
+_LIT8( KNSmlDdfClientPW,			"ClientPW" );
+_LIT( KNSmlDdfClientNonce,		"ClientNonce" );
+_LIT8( KNSmlDdfServerId,			"ServerId" );
+_LIT8( KNSmlDdfHidden,			"Hidden" );
+
+
+_LIT( KNSmlADdfAdapterId,		"AdapterId" );
+
+_LIT8( KNSmlDdfToNAPID,			"ToNapID" );
+_LIT( KNSmlDdfAdapterType,		"/DB/" );
+
+//DDF DS-field descriptions
+_LIT8( KNSmlDdfRootDescription,     "DS-Settings DDF description");
+_LIT8( KNSmlDdfAddrDescription,	    "DS server address" );
+_LIT8( KNSmlDdfAddrTypeDescription,	"Type of used DS server address" );
+_LIT8( KNSmlDdfPortNbrDescription,	"DS Server port number" );
+_LIT8( KNSmlDdfNameDescription,		"Displayable name for the management account" );
+
+_LIT8( KNSmlDdfDBDescription,		"DB node is parent to all Database objects" );
+_LIT( KNSmlDdfCTDescription,		"CT node is parent to all Content objects" );
+_LIT8( KNSmlDdfCTTypeDescription,	"CTType define supported media content of database" );
+_LIT( KNSmlDdfCTVerDescription,		"CTVer node is a parent to all Content Version objects" );
+_LIT( KNSmlDdfCTVerLDescription,	"CTVerL define version of supported contenttype" );
+
+_LIT8( KNSmlDdfRDBURIDescription,	"The relative or absolute URI of remote database" );
+_LIT8( KNSmlDdfLDBURIDescription,	"The relative or absolute URI of local database" );
+
+_LIT8( KNSmlDdfClientUserNameDescription,	"DS username" );
+_LIT8( KNSmlDdfServerIdDescription,     	"Server identifier" );
+_LIT8( KNSmlDdfClientPWDescription,			"A password or secret to authenticate to the server" );
+_LIT8( KNSmlDdfToNAPIDDescription,			"Logical reference to connectivity information" );
+_LIT8( KNSmlDdfHiddenDescription,			"Hidden profile (not shown on UI)" );
+
+_LIT8( KNSmlBufExe,				"BufExe" );
+
+//Default data values
+_LIT( KNSmlDefName,				"DSAdapterIns" );
+_LIT8( KNSmlDefDSAcc,			"DSAcc" );
+_LIT8( KNSmlDSStart,			"SyncML/DSAcc/DSId" );
+_LIT( KNSmlDSStartDB,			"/DB/" );
+_LIT( KNSmlDefDSIAP,			"AP" );
+_LIT8( KNSmlIAPId,			    "NSmlIapId" );
+_LIT8( KSegmDSAcc2,              "CTType/RDBURI/LDBURI" );
+
+_LIT8( KNSmlDSSettingsHTTP,  "http://" );
+_LIT8( KNSmlDSSettingsHTTPS, "https://" );
+const TInt KNSmlDSSettingsHTTPPort = 80;
+const TInt KNSmlDSSettingsHTTPSPort = 443;
+_LIT8( KNSmlDSUriDotSlash, "./");
+_LIT8( KNSmlDSSlash, "/");
+_LIT8(KVersion, "1.1");
+_LIT8( KMimeType, "text/plain" );
+_LIT8( KDSSettingsTitle, "DS-settings title" );
+
+_LIT8( KDBUri1, "SyncML/DSAcc/*/DB/*" );
+_LIT8( KDSAccMatch, "SyncML/DSAcc/*" );
+_LIT8( KDSAccMatch2, "SyncML/DSAcc/*/*" );
+_LIT8( KDSDBMatch, "SyncML/DSAcc/*/DB/*" );
+_LIT8( KDSDBMatch2, "SyncML/DSAcc/*/DB" );
+_LIT8( KSegmDSAcc,"Addr/AddrType/PortNbr/Name/DB/ClientUserName/ClientPW/ToNapID/ServerId" );
+_LIT8( KDSDBAddMatch, "*DSAcc/*/DB/*" );
+_LIT8( KDSDBAddMatch2, "*DSAcc/*/DB/*/*" );
+_LIT8( KDSDBAddMatch3, "*DSAcc/*/DB" );
+
+_LIT8( KCTTypeMatch, "*/CTType*" );
+_LIT8( KRDBUriMatch, "*/RDBURI*" );
+_LIT8( KLDBUriMatch, "*/LDBURI*" );
+
+_LIT8( KDummyTxt, "/Dummy" );
+_LIT8( KFormat, "%d" );
+_LIT8( KDSAcc1, "SyncML/DSAcc" );
+_LIT8( Kprev,"CTId" );
+_LIT8( Kprev2, "/CTId" );
+_LIT8( KDSprev,"DSId" );
+
+
+// DATA TYPES
+enum TNSmlDSFieldType
+	{
+	EStr,
+	EInt,
+	EParam,
+	EWrong
+	};
+
+enum TNSmlDSLeafType
+	{
+	EDSDelete,
+	EDSUnset
+	};
+
+enum TNSmlDSProfileDataID
+	{
+	EProfileName,
+	EProfileIAPId,
+	EProfileMediumType,
+	EProfileSyncServerUsername,
+	EProfileSyncServerPassword,
+	EProfileURL,
+	EProfilePort,
+	EProfileServerId,
+	EHiddenProfile,
+	ESyncAccepted
+	};
+
+enum TNSmlDSMediumType
+	{
+	ENone,
+    EHttp,
+	EWsp,
+    EObex
+	};
+	
+struct TNSmlDSAddElement
+	{
+	HBufC8  *iUri;
+	HBufC8 *iData;
+	TInt iStatusRef;
+	TBool iLeaf;
+	TBool iDone;
+	};
+
+struct TNSmlDSBufferElement
+	{
+	CArrayFixFlat<TNSmlDSAddElement> *iNodeBuf;
+	HBufC8* iMappingName;
+	HBufC8* iName;
+	TBool iExecuted;
+	TInt  iLuid;
+	};
+
+// FORWARD DECLARATIONS
+class CNSmlDSSettingsAdapter;
+
+/**
+*  CNSmlDSSettingsAdapter class 
+*  Contains the whole implementation of the Device Management DS settings adapter.
+*
+*  @lib nsmldssettingsadapter.dll
+*/
+class CNSmlDSSettingsAdapter : public CSmlDmAdapter
+	{
+    public: // Constructors and destructor
+	    /**
+        * Two-phased constructor.
+        */
+        static CNSmlDSSettingsAdapter* NewL(MSmlDmCallback* aDmCallback );
+	    static CNSmlDSSettingsAdapter* NewLC(MSmlDmCallback* aDmCallback );
+
+	    void ConstructL();
+    
+        /**
+        * Destructor.
+        */
+	    virtual ~CNSmlDSSettingsAdapter();
+
+    public: // Functions from base classes
+        
+        /**
+        * From      CSmlDmAdapter   DDFVersionL returns current version of the DDF.
+        * @since    Series60_3.0
+        * @param    aVersion        DDF version of the adapter.
+        * @return   none
+        */
+	    void DDFVersionL( CBufBase& aVersion );
+
+        /**
+        * From      CSmlDmAdapter   DDFStructureL for filling the DDF structure of the adapter.
+        * @since    Series60_3.0
+        * @param    aDDF            Reference to root object.
+        * @return   none
+        */
+	    void DDFStructureL( MSmlDmDDFObject& aDDF );
+
+        /**
+        * From      CSmlDmAdapter   UpdateLeafObjectL creates new leaf objects, or replaces 
+        *                           data in existing leaf objects.
+        * @since    Series60_3.0
+        * @param    aURI            URI of the object
+        * @param    aLUID           LUID of the object
+        * @param    aObject         Data of the object
+        * @param    aType           MIME type of the object
+        * @param    aStatusRef      Reference to correct command
+        * @return   none
+        */
+	    void UpdateLeafObjectL( const TDesC8& aURI, const TDesC8& aLUID, 
+                                const TDesC8& aObject, const TDesC8& aType, 
+                                const TInt aStatusRef );
+        
+        /**
+        * From      CSmlDmAdapter   DeleteObjectL deletes an object and its child objects.
+        * @since    Series60_3.0
+        * @param    aURI            URI of the object
+        * @param    aLUID           LUID of the object
+        * @param    aStatusRef      Reference to correct command
+        * @return   none
+        */
+	    void DeleteObjectL( const TDesC8& aURI, const TDesC8& aLUID, 
+                            const TInt aStatusRef ); 
+
+        /**
+        * From      CSmlDmAdapter   FetchLeafObjectL fetches data of a leaf object.
+        * @since    Series60_3.0
+        * @param    aURI            URI of the object
+        * @param    aLUID           LUID of the object
+        * @param    aType           MIME type of the object
+        * @param    aResultsRef    	Reference to correct results
+        * @param    aStatusRef      Reference to correct command
+        * @return   none
+        */
+	    void FetchLeafObjectL( const TDesC8& aURI, const TDesC8& aLUID, 
+                                const TDesC8& aType, const TInt aResultsRef, 
+                                const TInt aStatusRef ); 
+        
+        /**
+        * From      CSmlDmAdapter   ChildURIListL fetches URI list.
+        * @since    Series60_3.0
+        * @param    aURI                    URI of the object
+        * @param    aLUID                   LUID of the object
+        * @param    aPreviousURISegmentList URI list with mapping LUID information
+        * @param    aResultsRef    	        Reference to correct results
+        * @param    aStatusRef              Reference to correct command
+        * @return   none
+        */
+	    void ChildURIListL( const TDesC8& aURI, const TDesC8& aLUID, 
+                            const CArrayFix<TSmlDmMappingInfo>& aPreviousURISegmentList, 
+                            const TInt aResultsRef, const TInt aStatusRef );  
+
+        /**
+        * From      CSmlDmAdapter   AddNodeObjectL adds node object.
+        * @since    Series60_3.0
+        * @param    aURI            URI of the object
+        * @param    aParentLUID     LUID of the parent object
+        * @param    aStatusRef      Reference to correct command
+        * @return   none
+        */
+	    void AddNodeObjectL( const TDesC8& aURI, const TDesC8& aParentLUID, 
+                                const TInt aStatusRef );
+
+        /**
+        * From      CSmlDmAdapter   UpdateLeafObjectL creates new leaf objects, or replaces 
+        *                           data in existing leaf objects.
+        * @since    Series60_3.0
+        * @param    aURI            URI of the object
+        * @param    aLUID           LUID of the object
+        * @param    aStream         Data of the object
+        * @param    aType           MIME type of the object
+        * @param    aStatusRef      Reference to correct command
+        * @return   none
+        */
+	    void UpdateLeafObjectL( const TDesC8& aURI, const TDesC8& aLUID, 
+                                RWriteStream*& aStream, const TDesC8& aType, 
+                                const TInt aStatusRef );
+
+        /**
+        * From      CSmlDmAdapter   FetchLeafObjectSizeL fetches the size of a leaf object.
+        * @since    Series60_3.0
+        * @param    aURI            URI of the object
+        * @param    aLUID           LUID of the object
+        * @param    aType           MIME type of the object
+        * @param    aResultsRef    	Reference to correct results
+        * @param    aStatusRef      Reference to correct command
+        * @return   none
+        */
+	    void FetchLeafObjectSizeL( const TDesC8& aURI, const TDesC8& aLUID, 
+                                    const TDesC8& aType, const TInt aResultsRef, 
+                                    const TInt aStatusRef );
+        
+        /**
+        * From      CSmlDmAdapter   The function implements execute command.
+        * @since    Series60_3.0
+        * @param    aURI            URI of the object
+        * @param    aLUID           LUID of the object
+        * @param    aArgument       Argument for the command
+        * @param    aType       	MIME type of the object
+        * @param    aStatusRef      Reference to correct command
+        * @return   none
+        */
+	    void ExecuteCommandL( const TDesC8& aURI, const TDesC8& aLUID, 
+                                const TDesC8& aArgument, const TDesC8& aType, 
+                                const TInt aStatusRef );
+
+        /**
+        * From      CSmlDmAdapter   The function implements execute command.
+        * @since    Series60_3.0
+        * @param    aURI            URI of the object
+        * @param    aLUID           LUID of the object
+        * @param    aStream         Argument for the command
+        * @param    aType       	MIME type of the object
+        * @param    aStatusRef      Reference to correct command
+        * @return   none
+        */
+	    void ExecuteCommandL( const TDesC8& aURI, const TDesC8& aLUID, 
+                                RWriteStream*& aStream, const TDesC8& aType, 
+                                const TInt aStatusRef );
+
+         /**
+        * From      CSmlDmAdapter   The function implements execute command.
+        * @since    Series60_3.0
+        * @param    aTargetURI      Target URI for the command
+        * @param    aTargetLUID     LUID of the target object
+        * @param    aSourceURI      Source URI for the command
+        * @param    aSourceLUID    	LUID of the source object
+        * @param    aType           MIME type of the object
+        * @param    aStatusRef      Reference to correct command
+        * @return   none
+        */
+	    void CopyCommandL( const TDesC8& aTargetURI, const TDesC8& aTargetLUID, 
+                                const TDesC8& aSourceURI, const TDesC8& aSourceLUID, 
+                                const TDesC8& aType, TInt aStatusRef );
+        
+        /**
+        * From      CSmlDmAdapter   The function indicates start of Atomic command.
+        * @since    Series60_3.0
+        * @param    none
+        * @return   none
+        */
+	    void StartAtomicL();
+
+        /**
+        * From      CSmlDmAdapter   The function indicates successful end of Atomic command.
+        * @since    Series60_3.0
+        * @param    none
+        * @return   none
+        */
+	    void CommitAtomicL();
+
+        /**
+        * From      CSmlDmAdapter   The function indicates unsuccessful end of Atomic command.
+        * @since    Series60_3.0
+        * @param    none
+        * @return   none
+        */
+	    void RollbackAtomicL();
+
+        /**
+        * From      CSmlDmAdapter   Returns ETrue if adapter supports streaming otherwise EFalse.
+        * @since    Series60_3.0
+        * @param    aItemSize       Size limit for stream usage.
+        * @return   ETrue or EFalse
+        */
+	    TBool StreamingSupport( TInt& aItemSize );
+
+        /**
+        * From      CSmlDmAdapter   Called when stream returned from UpdateLeafObjectL or 
+        *                           ExecuteCommandL has been written to and committed.
+        * @since    Series60_3.0
+        * @param    none
+        * @return   none
+        */
+	    void StreamCommittedL();
+
+        /**
+        * From      CSmlDmAdapter   The function tells the adapter that all the commands of the message that
+	    *                           can be passed to the adapter have now been passed.
+        * @since    Series60_3.0
+        * @param    none
+        * @return   none
+        */
+	    void CompleteOutstandingCmdsL();
+
+    private:
+
+        /**
+        * C++ default constructor.
+        */
+        CNSmlDSSettingsAdapter();
+	    CNSmlDSSettingsAdapter( TAny* aEcomArguments );
+        
+        /**
+        * The function checks if field to be handled is valid.
+        * @param    none
+        * @return   ETrue if valid field otherwise EFalse.
+        */   
+	    TBool AcceptDSField();
+
+        /**
+        * The function returns enum value for a field to be handled.
+        * @param    none
+        * @return   enum value for a field to be handled.
+        */ 
+        TInt GetDSField() const;
+
+        /**
+        * The function checks if field type to be handled is valid.
+        * @param    none
+        * @return   enum value for a field type.
+        */ 
+        TInt GetDSFieldTypeL() const;
+
+        /**
+        * The function converts LUID to integer.
+        * @param    aLUID     LUID data to be converted.
+        * @return   Integer value for a LUID.
+        */    
+        TInt IntLUID(const TDesC8& aLUID);
+
+         /**
+        * The function converts data to integer and returns it.
+        * @param    aObject     Data object to be converted.
+        * @return   Integer value for an object.
+        */
+        TInt GetIntObject( const TDesC8& aObject );
+
+        /**
+        * The function converts data to integer and returns it.
+        * @param    aObject     Data object to be converted.
+        * @return   16-bit integer value for an object.
+        */
+	    TInt GetIntObject16( const TDesC& aObject );
+
+        /**
+        * The function stores integer value to buffer and returns reference to it.
+        * @param    aObject     data to be stored to buffer.
+        * @return   reference to data buffer.
+        */
+        TDesC8& SetIntObjectLC( const TInt& aObject );
+
+        /**
+        * The function checks if data length is valid.
+        * @param    aProfileItem    Field / Leaf ID to be handled.
+        * @param    aSource         Data to be handled.
+        * @return   ETrue if data length is not valid otherwise EFalse.
+        */ 
+        TBool NotValidStrLenght( const TInt& aProfileItem, const TDesC8& aSource );
+
+        /**
+        * The function finds out the last element of the uri.
+        * @param    aSource     Uri object that contains all elements.
+        * @return   KErrNone if successful.
+        */
+        TInt    SetField( const TDesC8& aSource );
+
+        /**
+        * The function converts 16-bit data to 8-bit and returns reference to it.
+        * @param    aSource    Reference data to be converted.
+        * @return   Reference to 8-bit data buffer.
+        */ 
+        TDesC8&  ConvertTo8LC( const TDesC& aSource );
+
+        /**
+        * The function converts 8-bit data to 16-bit and returns reference to it.
+        * @param    aSource    Reference data to be converted.
+        * @return   Reference to 16-bit data buffer.
+        */ 
+	    TDesC16& ConvertTo16LC( const TDesC8& aSource );
+
+        /**
+        * The function adds new dataprovider for a profile.
+        * @param    aIntLUID        Profile integer LUID.
+        * @param    aMIMEType       Requested MIME type of the data provider.
+        * @param    aDataProviderId Reference to object where new data provider id to be saved.
+        * @return   KErrNone if successful otherwise error code.
+        */ 
+        TInt AddNewDataProviderL( TInt aIntLUID, const TDesC8& aMIMEType, TInt& aDataProviderId );
+
+        /**
+        * The function gets the uri for profile IAP ID.
+        * @param    aLUID       Profile integer LUID.
+        * @param    aObject     Reference to object where URI to be stored.
+        * @return   KErrNone if successful otherwise error code.
+        */ 
+        TInt GetToNAPIDL( const TInt aLUID, CBufBase& aObject );
+
+        /**
+        * The function sets the profile IAP id based on URI.
+        * @param    aLUID       Profile integer LUID.
+        * @param    aObject     Access point URI.
+        * @return   KErrNone if successful otherwise error code.
+        */ 
+        TInt SetToNAPIDL( const TInt aLUID, const TDesC8& aObject );
+
+        /**
+        * The function sets the new node to buffer (in case of content type).
+        * @param    aURI            URI of the node.
+        * @param    aParentLUID     LUID for the parent object.
+        * @param    aStatusRef      Command status reply reference.
+        * @return   none
+        */ 
+        void AddNodeBufferL( const TDesC8& aURI, const TDesC8& aParentLUID, 
+                                const TInt aStatusRef );
+
+        /**
+        * The function sets new leaf object to buffer (in case DB level object).
+        * @param    aURI            URI of the node.
+        * @param    aParentLUID     LUID for the parent object.
+        * @param    aStatusRef      Command status reply reference.
+        * @return   none
+        */ 
+        void AddLeafBufferL( const TDesC8& aURI,const TDesC8& aParentLUID, 
+                                const TDesC8& aObject, const TInt aStatusRef );
+
+        /**
+        * The function finds out the last segment of the URI.
+        * @param    aURI        URI to be handled.
+        * @return   Pointer to last URI segment.
+        */ 
+        TPtrC8 LastURISeg( const TDesC8& aURI );
+
+        /**
+        * The function removes the last segment of the URI.
+        * @param    aURI        URI to be handled.
+        * @return   Pointer to recontructed URI.
+        */ 
+        TPtrC8 RemoveLastURISeg( const TDesC8& aURI );
+
+        /**
+        * The function executes command from the buffer based on URI.
+        * @param    aURI        URI to be handled first.
+        * @return   none
+        */ 
+        void ExecuteBufferL( const TDesC8& aURI );
+
+        /**
+        * The function gets the profile Id (LUID) for given URI.
+        * @param    aURI        URI which LUID to be fetched.
+        * @return   LUID for the URI.
+        */ 
+        TInt GetProfileIdFromURIL( const TDesC8& aURI );
+
+        /**
+        * The function gets the MIME type for given data provider.
+        * @param    aDataProviderId Data provider ID.
+        * @param    aProfileLUID    Profile LUID.
+        * @param    aObject         Reference where fetched MIME type to be stored.
+        * @return   KErrNone if successful otherwise error cose.
+        */ 
+        TInt GetContentTypeL( const TInt aDataProviderId, const TInt aProfileLUID, 
+                                CBufBase*& aObject );
+
+	    /**
+        * The function find out the buffer index for given URI.
+        * @param    aURI        URI which position in the buffer to be solved.
+        * @return   Buffer position for given URI. If not found value is -1.
+        */ 
+        TInt GetBufferIndex( const TDesC8& aURI );
+
+        /**
+        * The function sets the LUID to buffer for given URI.
+        * @param    aURI        URI which position in the buffer to be solved.
+        * @param    aLUID       LUID for an URI.
+        * @return   Value > 0 if URI found, otherwise value is 0.
+        */ 
+	    TInt SetBufferLUID( const TDesC8& aURI, const TInt aLUID );
+
+        /**
+        * The function find out the port number from URL and stores it to aPort.
+        * @param    aRealURI    Reference data to be containing the whole URI.
+        * @param    aPort       Reference variable where port number will be stored.
+        * @return   KErrNone if successful otherwise KErrNotFound.
+        */ 
+	    TInt  ParseUri( const TDesC8& aRealURI, TInt& aPort );
+        
+        /**
+        * The function checks if requested profile ID exits.
+        * @param    aIntLUID    Integer value for a LUID of the profile.
+        * @return   ETrue if profile exits otherwise EFalse.
+        */ 
+	    TBool FindProfileIdL( const TInt aIntLUID );
+
+        /**
+        * The function gets the profile ID from Client API.
+        * @param    aIntLUID    Integer value for a LUID of the profile.
+        * @param    aProfileID  Reference to object where profile ID to be stored.
+        * @return   KErrNone if successful otherwise KErrNotFound.
+        */ 
+        TInt GetProfileIdentifierL( const TInt aIntLUID, TInt& aProfileID );
+
+        /**
+        * The function gets the profile data acording to URI leaf.
+        * @param    aIntLUID    Profile ID.
+        * @param    aObject     Reference where fetched data to be stored.
+        * @return   KErrNone if successful otherwise error code.
+        */ 
+        TInt GetDSFieldDataL( const TInt aIntLUID, CBufBase*& aObject );
+
+        /**
+        * The function gets the profile medium type value.
+        * @param    aIntLUID     Reference where data to be stored.
+        * @return   Medium type for profile connection.
+        */ 
+        TInt GetProfileConnectiontypeL( const TInt aIntLUID );
+
+        /**
+        * The function gets the profile Addr leaf value.
+        * @param    aIntLUID    Profile ID.
+        * @param    aURL        Reference where fetched data to be stored.
+        * @return   KErrNone if successful otherwise error code.
+        */ 
+        TInt GetProfileServerURLL( const TInt aIntLUID, CBufBase*& aURL );
+
+        /**
+        * The function gets the profile user name value.
+        * @param    aIntLUID    Profile ID.
+        * @param    aUserName   Reference where fetched data to be stored.
+        * @return   KErrNone if successful otherwise error code.
+        */ 
+	    TInt GetProfileUserNameL( const TInt aIntLUID, CBufBase*& aUserName );
+
+        /**
+        * The function gets the profile user name value.
+        * @param    aIntLUID    Profile ID.
+        * @param    aServerId   Reference where fetched data to be stored.
+        * @return   KErrNone if successful otherwise error code.
+        */ 
+	    TInt GetProfileServerIdL( const TInt aIntLUID, CBufBase*& aServerId );
+
+        /**
+        * The function gets the profile IAP Id (ToNAPID) value.
+        * @param    aIntLUID    Profile ID.
+        * @param    aIAPid      Reference where fetched data to be stored.
+        * @return   KErrNone if successful otherwise error code.
+        */ 
+	    TInt GetProfileIAPIdL( const TInt aIntLUID, TInt& aIAPid );		
+
+        /**
+        * The function gets the profile Name value.
+        * @param    aIntLUID        Profile ID.
+        * @param    aDisplayName    Reference where fetched data to be stored.
+        * @return   KErrNone if successful otherwise error code.
+        */ 
+	    TInt GetProfileDisplayNameL( const TInt aIntLUID, CBufBase*& aDisplayName );
+
+        /**
+        * The function creates new DM profile.
+        * @param    aPID    Reference to variable where new profile Id will be stored.
+        * @return   KErrNone if successful otherwise error code.
+        */ 
+	    TInt CreateNewProfileL( TInt& aPID );
+
+        /**
+        * The function sets the profile Addr leaf value.
+        * @param    aPID        Profile ID.
+        * @param    aObj        Data to be stored for a profile.
+        * @return   KErrNone if successful otherwise error code.
+        */ 
+        TInt SetProfileServerURIL( const TInt aPID, const TDesC8& aObj );
+
+        /**
+        * The function sets the profile Name leaf value.
+        * @param    aPID        Profile ID.
+        * @param    aObj        Data to be stored for a profile.
+        * @return   KErrNone if successful otherwise error code.
+        */     
+        TInt SetProfileDisplayNameL( const TInt aPID, const TDesC8& aObj );
+
+        /**
+        * The function sets the profile UserName leaf value.
+        * @param    aPID        Profile ID.
+        * @param    aObj        Data to be stored for a profile.
+        * @return   KErrNone if successful otherwise error code.
+        */ 
+	    TInt SetProfileUserNameL( const TInt aPID, const TDesC8& aObj );
+
+        /**
+        * The function sets the profile UserName leaf value.
+        * @param    aPID        Profile ID.
+        * @param    aObj        Data to be stored for a profile.
+        * @return   KErrNone if successful otherwise error code.
+        */ 
+	    TInt SetProfileServerIdL( const TInt aPID, const TDesC8& aObj );
+
+        /**
+        * The function sets the profile password leaf value.
+        * @param    aPID        Profile ID.
+        * @param    aObj        Data to be stored for a profile.
+        * @return   KErrNone if successful otherwise error code.
+        */ 
+        TInt SetProfilePasswordL( const TInt aPID, const TDesC8& aObj );
+
+        /**
+        * General function that checks which leaf to be handled based on field id.
+        * @param    aPID        Profile ID.
+        * @param    aObj        Data to be stored for a profile.
+        * @param    aFieldID    Internal value for a leaf to be handled.
+        * @return   KErrNone if successful otherwise error code.
+        */ 
+        TInt SetProfileStrValueL( const TInt aPID, const TDesC8& aObj, 
+                                    const TInt aFieldID );
+
+        /**
+        * The function deletes the profile data.
+        * @param    aPID    Profile ID.
+        * @return   KErrNone if successful otherwise error code.
+        */ 
+        TInt DeleteProfileL( const TInt aPID );
+
+        /**
+        * The function creates list of the content types that profile supports.
+        * @param    aURI                    URI that contains content types.
+        * @param    aPID                    Profile ID.
+        * @param    aCurrentURISegmentList  Reference to list to be filled.
+        * @param    aPreviousURISegmentList Previous, existing list for content types.
+        * @return   KErrNone if successful otherwise error code.
+        */ 
+        TInt CreateURITaskSegmentListL( const TDesC8& aURI, const TInt aPID, 
+                                    CBufBase*& aCurrentURISegmentList, 
+                                    const CArrayFix<TSmlDmMappingInfo>& aPreviousURISegmentList );
+
+        /**
+        * The function creates list of the existing profiles.
+        * @param    aCurrentURISegmentList  Reference to list to be filled.
+        * @param    aPreviousURISegmentList Previous, existing list for profiles.
+        * @return   KErrNone if successful otherwise error code.
+        */ 
+        TInt CreateURIProfileSegmentListL( CBufBase*& aCurrentURISegmentList, 
+                                    const CArrayFix<TSmlDmMappingInfo>& aPreviousURISegmentList );
+        
+        /**
+        * The function opens the server session and profile via client API.
+        * @param    aIntLUID    Integer value for a LUID of the profile.
+        * @param    aMode       Read or Read and Write mode for a profile data.
+        * @return   KErrNone if successful otherwise KErrNotFound.
+        */ 
+        TInt OpenSyncSessionAndDSProfileL( const TInt aIntLUID, TSmlOpenMode aMode );
+
+        /**
+        * The function closes the DS profile session.
+        * @param    none.
+        * @return   none.
+        */ 
+	    void CloseDSProfile();
+
+        /**
+        * The function checks if profile has the requested task id.
+        * @param    aProfLUID       Integer value for a LUID of the profile.
+        * @param    aDataProviderId DataProvider id to be searched.
+        * @return   ETrue if task found otherwise EFalse.
+        */ 
+        TBool FindTaskIDL( const TInt aProfLUID, const TInt aDataProviderId );
+
+        /**
+        * The function deletes task for given profile.
+        * @param    aLUID           Integer value for a LUID of the profile.
+        * @param    aDataProviderId DataProvider id to be searched.
+        * @return   KErrNone if successful otherwise error code.
+        */ 
+	    TInt DeleteTaskByIDL( const TInt aLUID, const TInt aDataProviderId );
+
+        /**
+        * The function gets the LDBURI (local datastore) for given profile.
+        * @param    aDataProviderId DataProvider id to be searched.
+        * @param    aProfileLUID    Profile Id.
+        * @param    aObject         Reference to object where fetched value to be saved.
+        * @return   KErrNone if successful otherwise error code.
+        */ 
+        TInt GetClientDataSourceL( const TInt aDataProviderId, const TInt aProfileLUID, 
+                                    CBufBase*& aObject );
+        /**
+        * The function gets the RDBURI (remote datastore) for given profile.
+        * @param    aDataProviderId DataProvider id to be searched.
+        * @param    aProfileLUID    Profile Id.
+        * @param    aObject         Reference to object where fetched value to be saved.
+        * @return   KErrNone if successful otherwise error code.
+        */ 
+        TInt GetServerDataSourceL( const TInt aDataProviderId, const TInt aProfileLUID, 
+                                    CBufBase*& aObject );
+
+        /**
+        * The function replaces the LDBURI or RDBURI values for given profile.
+        * @param    aProfileLUID    Profile Id.
+        * @param    aDataProviderId DataProvider id to be searched.
+        * @param    aObject         Data to be stored.
+        * @param    aField          Field Id to be handled.
+        * @return   KErrNone if successful otherwise error code.
+        */ 
+        TInt UpdateDataSourceL( const TInt aProfileLUID, const TInt aDataProviderId, 
+                                    const TDesC8& aObject, const HBufC8& aField );
+
+        /**
+        * The function fetches the object (leaf) data based on given URI.
+        * @param    aURI            URI of the object
+        * @param    aLUID           LUID of the object
+        * @param    aObj            Reference to object where fetched data to be saved.
+        * @param    aStatusRef      Reference to correct command
+        * @return   none
+        */
+        TInt FetchObjectL( const TDesC8& aURI, const TDesC8& aLUID, CBufBase*& aObj, 
+                                    const TInt aStatusRef );
+        
+        /**
+        * The function fills the node info.
+        * @param    aNode           Reference to node or leaf which info to be filled.
+        * @param    aAccTypes       Access rights for a leaf / node.
+        * @param    aOccurrence     Occurance of the node / leaf.
+        * @param    aScope          Scope (dynamic / permanent) of the leaf / node.
+        * @param    aFormat         Data format of the leaf / node.
+        * @param    aDescription    Description of the node / leaf.
+        * @param    aDefaultValue   Default value for a leaf or node.
+        * @param    aMimeType       MIME type for a leaf / node.
+        * @return   none
+        */ 
+        void FillNodeInfoL( MSmlDmDDFObject& aNode, TSmlDmAccessTypes aAccTypes, 
+                                MSmlDmDDFObject::TOccurence aOccurrence, 
+                                MSmlDmDDFObject::TScope aScope, 
+                                MSmlDmDDFObject::TDFFormat aFormat, 
+                                const TDesC8& aDescription, 
+                                const TDesC8& aDefaultValue, const TDesC8& aMimeType );
+        
+        /**
+        * The function set's the address type / medium type value for a profile.
+        * @param    aLUID       LUID for a profile.
+        * @param    aIntObj     Address type value.
+        * @return   KErrNone if successful otherwise error code.
+        */ 
+        TInt SetProfileAddrTypeL( const TInt aLUID, const TInt aIntObj );
+
+        /**
+        * The function adds port number to address URL.
+        * @param    aLUID       Profile ID.
+        * @param    aPort       Reference to port number data.
+        * @return   KErrNone if successful otherwise error code.
+        */ 
+        TInt SetProfileConnectionPortNrL( const TInt aLUID, const TDesC8& aPort );
+
+        /**
+        * The function adds port number to address URL.
+        * @param    aSrvURI     Original address URI.
+        * @param    aNewURI     New URI when port number has been added or deleted.
+        * @param    aPort       Reference to port number data.
+        * @return   KErrNone if successful otherwise error code.
+        */ 
+        void SetPortNrToAddrStr( const TDesC8& aSrvURI, HBufC8* aNewURI, 
+                                    const TDesC8& aPort );
+        
+        /**
+        * The function checks if MIME type allready exits.
+        * @param    aLuid       Profile LUID.
+        * @param    aMimeType   MIME type to be searched.
+        * @return   ETrue if MIME type found else EFalse.
+        */ 
+        TBool MimeTypeAllreadyExitsL( const TInt aLuid, const TDesC8& aMimeType );
+
+        /**
+        * The function sets the RDBURI (remote datastore) to memeber variable.
+        * @param    aStore       Value for a RDBURI.
+        * @return   none.
+        */ 
+        void SetRDBDataStore( const TDesC8& aStore );
+
+        /**
+        * The function sets the IAP Id value to profile connection data.
+        * @param    aLuid       Profile LUID.
+        * @param    aIAPid      Id for an IAP.
+        * @return   KErrNone if successful otherwise error code.
+        */ 
+        TInt SetProfileIAPIdL( const TInt aLUID, const TInt aIAPid );
+
+        /**
+        * The function gets UID for the profile medium type.
+        * @param    aIntObj         Profile LUID.
+        * @param    aMediumType     Requested medium type.
+        * @return   none.
+        */ 
+        void GetMediumTypeL(const TInt aIntObj, TSmlTransportId& aMediumType);
+        
+        /**
+        * The function checks if the URI is of format ./SyncML/DMAcc/DMId<num>
+        * Example ./SyncML/DMAcc/DMId000 
+        * @param    aURI       aURI.
+        * @return   true/false
+        */                          
+        TBool IsDSAccUriFormatMatchPredefined(const TDesC8 & aURI);
+        
+         /**
+        * The function constructs ./SyncML/DMAcc/x nodes and
+        * returns the profile ID matching the aURI.
+        * @param    aURI       aURI.
+        * @return   KErrNotFound/ProfileID
+        */  
+        
+        TInt ConstructTreeL(const TDesC8& aURI);
+
+   /**
+        * The function extracts Syncml/DSAcc/x node from aURI		        
+        * @param    aURI     Syncml/DSAcc aURI.
+        * @return   Syncml/DSAcc/x node.
+    */ 
+		TPtrC8 GetDynamicDSNodeUri(const TDesC8& aURI);
+
+    private:    // Data
+	    
+        // Callback interface for returning result or status
+	    MSmlDmCallback*	iCallBack;
+        // Client API session class 
+        RSyncMLSession iSyncSession;
+        // Client API DS profile handling
+        RSyncMLDataSyncProfile iDSProfile;
+  
+        // Buffer for URI leaf element
+        HBufC8* iField;
+        // Pointer to buffer structure
+        CArrayFixFlat<TNSmlDSBufferElement> *iBuffer;
+        
+        // Buffer for URI leaf element
+        HBufC8* iPrevURI;
+        // Buffer for profile port number handling
+        HBufC8* iPortNbr;
+        // Buffer for profile remote data store handling
+        HBufC16* iRdbDataStore;
+        // Information about leaf command
+        TNSmlDSLeafType	  iLeafType;
+
+        // LUID to be handled
+	    TInt iLUID;
+        // Parent LUID
+	    TInt iParentLUID;
+        // For handling profile medium type 
+	    TInt iObject;
+        // Previously handled LUID
+        TInt iPrevLUID;
+        
+        // Status information if session allready opened
+        TBool iSyncSessionOpen;
+        // Status of command was inside the module from buffer execution
+        TBool iBufferExecution;
+        
+        // buffered data for updating port number
+        HBufC8* iPortBuf;
+        TInt iPortBufLUID;
+        TInt iPortBufStatusRef;
+   };
+
+#endif // __NSmlDSSETTINGSADAPTER_H__
+
+// End of File
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/syncmlds/src/NSmlDsSettingsAdapter.cpp	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,3850 @@
+/*
+* Copyright (c) 2005 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:    DS-settings adapter
+*
+*/
+
+
+
+
+// INCLUDE FILES
+#include "NSmlDSSettingsAdapter.h"
+#include "nsmldebug.h"
+#include "nsmlconstants.h"
+#include "nsmldmconstants.h"
+#include "nsmldmimpluids.h"
+#include "nsmldmiapmatcher.h"
+
+#include <implementationproxy.h>
+#include <badesca.h>
+#include <utf.h>
+#include <SyncMLTransportProperties.h>
+
+#ifndef __WINS__
+// This lowers the unnecessary compiler warning (armv5) to remark.
+// "Warning:  #174-D: expression has no effect..." is caused by 
+// DBG_ARGS8 macro in no-debug builds.
+#pragma diag_remark 174
+#endif
+
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+//  CNSmlDSSettingsAdapter::NewL
+//  Two-phased constructor.
+// -----------------------------------------------------------------------------
+CNSmlDSSettingsAdapter* CNSmlDSSettingsAdapter::NewL( MSmlDmCallback* aDmCallback )
+	{
+	_DBG_FILE("CNSmlDSSettingsAdapter::NewL(): begin");
+
+	CNSmlDSSettingsAdapter* self = NewLC( aDmCallback );
+	CleanupStack::Pop();
+
+	_DBG_FILE("CNSmlDSSettingsAdapter::NewL(): end");
+	return self;
+	}
+
+// -----------------------------------------------------------------------------
+//  CNSmlDSSettingsAdapter::NewLC
+// -----------------------------------------------------------------------------
+CNSmlDSSettingsAdapter* CNSmlDSSettingsAdapter::NewLC(MSmlDmCallback* aDmCallback )
+	{
+	_DBG_FILE("CNSmlDSSettingsAdapter::NewLC(): begin");
+	CNSmlDSSettingsAdapter* self = new ( ELeave ) CNSmlDSSettingsAdapter( aDmCallback );
+	CleanupStack::PushL( self );
+	self->iCallBack = aDmCallback;
+
+	self->ConstructL();
+	self->iLeafType = EDSUnset;
+    
+	_DBG_FILE("CNSmlDSSettingsAdapter::NewLC(): end");
+	return self;
+	}
+
+//------------------------------------------------------------------------------
+// CNSmlDSSettingsAdapter::CNSmlDSSettingsAdapter
+//------------------------------------------------------------------------------
+CNSmlDSSettingsAdapter::CNSmlDSSettingsAdapter(TAny* aEcomArguments) : CSmlDmAdapter(aEcomArguments)
+	{
+	_DBG_FILE("CNSmlDSSettingsAdapter::CNSmlDSSettingsAdapter(): begin");
+	_DBG_FILE("CNSmlDSSettingsAdapter::CNSmlDSSettingsAdapter(): end");
+	}
+
+//------------------------------------------------------------------------------
+//  CNSmlDSSettingsAdapter::~CNSmlDSSettingsAdapter()
+//  Class destructor.
+//------------------------------------------------------------------------------
+CNSmlDSSettingsAdapter::~CNSmlDSSettingsAdapter()
+	{
+	_DBG_FILE("CNSmlDSSettingsAdapter::~CNSmlDSSettingsAdapter(): begin");
+    delete iPrevURI;
+    delete iField;
+    
+	// Command buffer cleaning
+	if ( iBuffer )
+		{
+		
+		for( TInt i=0; i<iBuffer->Count(); i++ )
+			{
+			delete iBuffer->At(i).iMappingName;
+			delete iBuffer->At(i).iName;
+
+			for( TInt j=0; j<iBuffer->At(i).iNodeBuf->Count(); j++ )
+				{
+				delete iBuffer->At(i).iNodeBuf->At(j).iUri;
+				if( iBuffer->At(i).iNodeBuf->At(j).iData )
+					{
+					delete iBuffer->At(i).iNodeBuf->At(j).iData;
+					}
+				}
+			iBuffer->At(i).iNodeBuf->Reset();
+			delete iBuffer->At(i).iNodeBuf;
+			}
+
+		iBuffer->Reset();
+		delete iBuffer;
+		}
+    
+    iDSProfile.Close();
+    iSyncSession.Close();
+    iSyncSessionOpen = EFalse;
+        
+    delete iPortNbr;
+    delete iPortBuf;
+    delete iRdbDataStore;
+    
+    iBufferExecution = EFalse;
+    
+    iCallBack = 0;
+
+	_DBG_FILE("CNSmlDSSettingsAdapter::~CNSmlDSSettingsAdapter(): end");
+	}
+
+//------------------------------------------------------------------------------
+//		CNSmlDSSettingsAdapter::ConstructL
+//		Second phase constructor.
+//------------------------------------------------------------------------------
+void CNSmlDSSettingsAdapter::ConstructL()
+	{
+	iField = HBufC8::NewL( KNSmlMaxURLLength );
+	iPrevURI = HBufC8::NewL( KNSmlMaxURLLength );
+    iRdbDataStore = HBufC16::NewL( KNSmlMaxRemoteNameLength );
+//
+//	Command buffering used for AddNode + AddLeaf
+//
+	iBuffer = new ( ELeave ) CArrayFixFlat <TNSmlDSBufferElement> ( KNSmlDSGranularity );
+
+    iSyncSessionOpen = EFalse;
+
+    iPortNbr = 0;
+    iBufferExecution = EFalse;
+	}
+	
+//------------------------------------------------------------------------------
+//  CNSmlDSSettingsAdapter::DDFVersionL
+//------------------------------------------------------------------------------
+void CNSmlDSSettingsAdapter::DDFVersionL(CBufBase& aVersion)
+	{
+	aVersion.InsertL( 0, KVersion );
+    }
+
+//------------------------------------------------------------------------------
+//  CNSmlDSSettingsAdapter::DDFStructureL
+//  Fills the DDF structure of the adapter.
+//------------------------------------------------------------------------------
+void CNSmlDSSettingsAdapter::DDFStructureL( MSmlDmDDFObject& aDDF )
+	{
+	_DBG_FILE("CNSmlDSSettingsAdapter::DDFStructureL(): begin");
+
+	TSmlDmAccessTypes *aclTypes = new ( ELeave ) TSmlDmAccessTypes();
+	CleanupStack::PushL( aclTypes );
+
+    //  Set Get as acceptable operations
+	aclTypes->SetGet();
+
+    MSmlDmDDFObject* ddfRoot = &aDDF;
+    MSmlDmDDFObject& ddf = ddfRoot->AddChildObjectL( KNSmlDdfRoot );
+    FillNodeInfoL( ddf, *aclTypes, MSmlDmDDFObject::EOne, 
+                    MSmlDmDDFObject::EPermanent, MSmlDmDDFObject::ENode, 
+                    KNSmlDdfRootDescription, KNullDesC8, KMimeType );
+    
+    ddf.SetDFTitleL( KDSSettingsTitle );
+
+
+	MSmlDmDDFObject& nDSAcc = ddf.AddChildObjectL( KNSmlDefDSAcc );
+	nDSAcc.SetOccurenceL( MSmlDmDDFObject::EOne );
+	nDSAcc.SetDefaultValueL( KNullDesC8 );
+	nDSAcc.SetScopeL( MSmlDmDDFObject::EPermanent );
+	nDSAcc.SetAccessTypesL( *aclTypes );
+	nDSAcc.SetDFFormatL( MSmlDmDDFObject::ENode );
+//
+//  Set rest acceptable operations for data itself
+//
+    aclTypes->SetAdd();
+	aclTypes->SetReplace();
+	aclTypes->SetDelete();
+
+	TSmlDmAccessTypes aclTypesLimit;
+	aclTypesLimit.SetGet();
+	aclTypesLimit.SetAdd();
+
+	TSmlDmAccessTypes aclTypesGet;
+	aclTypesGet.SetGet();
+
+	TSmlDmAccessTypes aclTypesNoGet;
+	aclTypesNoGet.SetReplace();
+	aclTypesNoGet.SetAdd();
+	aclTypesNoGet.SetDelete();
+
+	TSmlDmAccessTypes aclTypesNoDelete;
+	aclTypesNoDelete.SetGet();
+	aclTypesNoDelete.SetAdd();
+	aclTypesNoDelete.SetReplace();
+
+	MSmlDmDDFObject& nProDDF = nDSAcc.AddChildObjectGroupL();
+    FillNodeInfoL( nProDDF, *aclTypes, MSmlDmDDFObject::EZeroOrMore, 
+                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::ENode, 
+                    KNullDesC8, KNullDesC8, KMimeType );
+
+	MSmlDmDDFObject& nAddrDDF = nProDDF.AddChildObjectL(KNSmlDdfAddr);	// Addr
+	FillNodeInfoL( nAddrDDF, *aclTypes, MSmlDmDDFObject::EOne, 
+                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::EChr, 
+                    KNSmlDdfAddrDescription, KNullDesC8, KMimeType );
+
+	MSmlDmDDFObject& nAddrTypeDDF = nProDDF.AddChildObjectL(KNSmlDdfAddrType);	// AddrType
+    FillNodeInfoL( nAddrTypeDDF, *aclTypes, MSmlDmDDFObject::EZeroOrOne, 
+                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::EChr, 
+                    KNSmlDdfAddrTypeDescription, KNullDesC8, KMimeType );
+
+	MSmlDmDDFObject& nPortNbrDDF = nProDDF.AddChildObjectL(KNSmlDdfPortNbr);// PortNbr
+	FillNodeInfoL( nPortNbrDDF, *aclTypes, MSmlDmDDFObject::EZeroOrOne, 
+                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::EInt, 
+                    KNSmlDdfPortNbrDescription, KNullDesC8, KMimeType );
+
+	MSmlDmDDFObject& nNameDDF = nProDDF.AddChildObjectL(KNSmlDdfName);	// Name
+	FillNodeInfoL( nNameDDF, *aclTypes, MSmlDmDDFObject::EZeroOrOne, 
+                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::EChr, 
+                    KNSmlDdfNameDescription, KNullDesC8, KMimeType );
+
+	MSmlDmDDFObject& nDBrootDDF = nProDDF.AddChildObjectL(KNSmlDdfDB);	// DB
+    FillNodeInfoL( nDBrootDDF, *aclTypes, MSmlDmDDFObject::EZeroOrOne, 
+                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::ENode, 
+                    KNSmlDdfDBDescription, KNullDesC8, KMimeType );
+
+	MSmlDmDDFObject& nDBDDF = nDBrootDDF.AddChildObjectGroupL(); // DB/<X>
+    FillNodeInfoL( nDBDDF, *aclTypes, MSmlDmDDFObject::EZeroOrMore, 
+                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::ENode, 
+                    KNullDesC8, KNullDesC8, KMimeType );
+
+	MSmlDmDDFObject& nCTTypeDDF = nDBDDF.AddChildObjectL(KNSmlDdfCTType);	// CTType
+	FillNodeInfoL( nCTTypeDDF, aclTypesLimit, MSmlDmDDFObject::EOne, 
+                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::EChr, 
+                    KNSmlDdfCTTypeDescription, KNullDesC8, KMimeType );
+
+	MSmlDmDDFObject& nRDBURIDDF = nDBDDF.AddChildObjectL(KNSmlDdfRDBURI);	// RDBURI
+	FillNodeInfoL( nRDBURIDDF, aclTypesNoDelete, MSmlDmDDFObject::EOne, 
+                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::EChr, 
+                    KNSmlDdfRDBURIDescription, KNullDesC8, KMimeType );
+
+	MSmlDmDDFObject& nLDBURIDDF = nDBDDF.AddChildObjectL(KNSmlDdfLDBURI);	// LDBURI
+    FillNodeInfoL( nLDBURIDDF, aclTypesNoDelete, MSmlDmDDFObject::EOne, 
+                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::EChr, 
+                    KNSmlDdfLDBURIDescription, KNullDesC8, KMimeType );
+
+	MSmlDmDDFObject& nClientUserNameDDF = nProDDF.AddChildObjectL(KNSmlDdfClientUserName);
+    FillNodeInfoL( nClientUserNameDDF, *aclTypes, MSmlDmDDFObject::EZeroOrOne, 
+                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::EChr, 
+                    KNSmlDdfClientUserNameDescription, KNullDesC8, KMimeType );
+
+	MSmlDmDDFObject& nServerIdDDF = nProDDF.AddChildObjectL(KNSmlDdfServerId);
+    FillNodeInfoL( nServerIdDDF, *aclTypes, MSmlDmDDFObject::EZeroOrOne, 
+                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::EChr, 
+                    KNSmlDdfServerIdDescription, KNullDesC8, KMimeType );
+
+	MSmlDmDDFObject& nClientPWDDF = nProDDF.AddChildObjectL(KNSmlDdfClientPW);// ClientPW
+	FillNodeInfoL( nClientPWDDF, aclTypesNoGet, MSmlDmDDFObject::EOne, 
+                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::EChr, 
+                    KNSmlDdfClientPWDescription, KNullDesC8, KMimeType );
+
+	MSmlDmDDFObject& nToNAPIDDDF = nProDDF.AddChildObjectL(KNSmlDdfToNAPID);// ToNAPID
+    FillNodeInfoL( nToNAPIDDDF, aclTypesNoDelete, MSmlDmDDFObject::EOne, 
+                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::EChr, 
+                    KNSmlDdfToNAPIDDescription, KNullDesC8, KMimeType );
+
+	CleanupStack::PopAndDestroy(); //aclTypes
+	_DBG_FILE("CNSmlDSSettingsAdapter::DDFStructureL(): end");
+	}
+
+//------------------------------------------------------------------------------
+//  CNSmlDSSettingsAdapter::UpdateLeafObjectL
+//  The function updates the leaf object data.
+//------------------------------------------------------------------------------
+void CNSmlDSSettingsAdapter::UpdateLeafObjectL( const TDesC8& aURI, 
+                                                const TDesC8& aParentLUID, 
+                                                const TDesC8& aObject, 
+                                                const TDesC8& /*aType*/, 
+                                                const TInt aStatusRef )
+	{
+	_DBG_FILE("CNSmlDSSettingsAdapter::UpdateLeafObjectL(): begin");
+//
+//	Check which field going to be handled
+//
+	// Static node feature start
+		TInt profileLUID = -1;
+		if(aParentLUID.Length() == 0 )
+		{
+			iLUID = -1;
+			if( IsDSAccUriFormatMatchPredefined(aURI) )
+    	{
+    		iLUID = ConstructTreeL(aURI);
+    		profileLUID = GetProfileIdFromURIL( aURI ); 
+    	}    	
+    	if ((iLUID == 0 ) && (aURI.Match(_L8("SyncML/DSAcc/DSId*/DB/CTId*"))  == KErrNone))
+			{
+				_DBG_FILE("CNSmlDSSettingsAdapter::FetchObjectL(): ENotFound end");
+				iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
+				return;
+    	}
+    }
+		// Static node feature end
+	SetField( aURI );
+    TInt fieldID = GetDSField();
+	TInt fieldType = GetDSFieldTypeL();
+	if ( fieldType == EWrong || fieldID < 0 )
+		{
+		_DBG_FILE("CNSmlDSSettingsAdapter::UpdateLeafObjectL(): EError end");
+		iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
+		return;
+		}
+	if(profileLUID == -1)
+    	profileLUID = GetIntObject( aParentLUID );
+	
+	if( profileLUID == -1 && fieldType != EParam )
+		{
+		_DBG_FILE("CNSmlDSSettingsAdapter::UpdateLeafObjectL( ): ENotFound end");
+		iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
+		return;
+		}	
+    
+    if ( fieldType == EParam )
+		{
+		if( GetBufferIndex( aURI ) >= 0 && iBufferExecution == EFalse )
+			{
+			AddLeafBufferL( aURI, aParentLUID, aObject, aStatusRef );
+            return;
+			}
+		profileLUID = GetProfileIdFromURIL( aURI );
+        if( FindProfileIdL( profileLUID ) == EFalse )
+            {
+            iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
+			return;
+            }
+        if( iField->Compare( KNSmlDdfCTType ) == 0 )
+            {
+            if( MimeTypeAllreadyExitsL( profileLUID, aObject ) )
+                {
+                iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EAlreadyExists );
+                return;
+                }
+            if( aObject.Length() == 0 )
+                {
+                iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EInvalidObject );
+                return;
+                }
+            }
+        }
+
+	if( profileLUID != iParentLUID && fieldType != EParam )
+		{											    
+		if( FindProfileIdL( profileLUID ) )
+			{
+			iParentLUID = profileLUID;
+			}
+		else
+			{
+			iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
+			return;
+			}
+		}
+	if ( fieldType == EStr || fieldType == EInt )
+		{
+//
+//		Check if Object length id valid
+//
+		if( NotValidStrLenght( fieldID, aObject ) )
+			{
+			_DBG_FILE("CNSmlDSSettingsAdapter::AddLeafObjectL(): KErr length end");
+			iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ETooLargeObject );
+			return;
+			}
+		}
+
+    TInt ret = 0;
+	if ( fieldType == EStr || fieldType == EInt )
+		{
+		if( fieldID == EProfileURL )
+			{
+			TInt num=0;
+            ret = ParseUri( aObject, num );
+            if( ret == KErrNone )
+				{
+			    ret = SetProfileServerURIL( iParentLUID, aObject );
+                if( ret != 0 )
+					{
+					_DBG_FILE("CNSmlDSSettingsAdapter::AddLeafObjectL(): URI set failed");
+					iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
+					return;
+					}
+				}
+			else //if port number not included in URL
+				{
+                ret = SetProfileServerURIL( iParentLUID, aObject );
+                if( ret != 0 )
+					{
+					_DBG_FILE("CNSmlDSSettingsAdapter::AddLeafObjectL(): URI set failed");
+					iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
+					return;
+					}
+				}
+		    		    
+			}
+		else if( fieldID == EProfileURL )
+			{
+			ret = SetProfileServerURIL( iParentLUID, aObject );
+            }
+        else if( fieldID == EProfileMediumType )//AddrType
+			{
+			if ( iLeafType == EDSDelete )
+			    {
+                iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
+	            return;            
+			    }
+            iObject = GetIntObject( aObject );
+            ret = SetProfileAddrTypeL( iParentLUID, iObject );
+			}
+        else
+			{
+			ret = SetProfileStrValueL( iParentLUID, aObject, fieldID );
+			}
+		}
+	else if ( fieldType == EParam )
+		{
+        TInt sRet = KErrGeneral;
+        if( iField->Compare( KNSmlDdfCTType ) == 0 ) //Task Mime Type
+			{
+//			DBG_ARGS8(_S8("NEW: Object <%S>"), &aObject);
+			TInt dataProviderId(-1);
+			if(aParentLUID.Length() == 0 )
+			{
+				dataProviderId = iLUID ;
+			}
+			else
+			{
+				dataProviderId = GetIntObject( aParentLUID );
+			}
+            if( FindTaskIDL( profileLUID, dataProviderId ) == EFalse )
+                {
+                sRet = AddNewDataProviderL( profileLUID, aObject, dataProviderId );
+                }
+            else
+                {
+                sRet = KErrAlreadyExists;
+                }
+            if( sRet == KErrDiskFull )
+			    {
+				iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EDiskFull );
+				}
+			else if( sRet == KErrNotFound )
+                {
+                iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
+                }
+            else if( sRet == KErrAlreadyExists )
+                {
+                iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EAlreadyExists );
+                }
+            else if( sRet != KErrNone )
+			    {
+				iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
+				}
+            else
+                {
+                TPtrC8 addDBURI = RemoveLastURISeg( aURI ); 
+				TBuf8<16> dataProvider;
+				dataProvider.Num( dataProviderId );
+		    	iCallBack->SetMappingL( addDBURI, dataProvider );
+				SetBufferLUID( aURI,dataProviderId );
+				iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EOk ); 
+				
+				
+                }                        
+            return;
+            }
+        //
+        // Only database values handled
+        //
+/*		if( iField->Compare( KNSmlDdfLDBURI ) == 0 )
+		    {
+			iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
+			return;
+		    }
+*/
+		if( !(iField->Compare( KNSmlDdfLDBURI ) == 0) &&
+		    !(iField->Compare( KNSmlDdfRDBURI ) == 0) )	
+		    {
+			_DBG_FILE("CNSmlDSSettingsAdapter::AddLeafObjectL(): Param header end");
+			iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
+			return;
+			}
+
+
+        TInt dataProviderId(-1);
+		if(aParentLUID.Length() == 0 )
+		{
+			dataProviderId = iLUID ;
+		}
+		else
+		{
+        	dataProviderId = GetIntObject( aParentLUID );
+		}
+        if( FindTaskIDL( profileLUID, dataProviderId ) )
+            {
+            ret = UpdateDataSourceL( profileLUID, dataProviderId, aObject, *iField);
+            if( ret != KErrNone )
+                {
+                ret = KErrGeneral;
+                }
+            TPtrC8 dbURI = RemoveLastURISeg( aURI ); 
+		    TBuf8<16> dataProvider;
+		    dataProvider.Num( dataProviderId );
+		    iCallBack->SetMappingL( dbURI, dataProvider );
+			}
+		else
+		    {
+		    ret = KErrNone;
+		    //ret = KErrNotFound;
+			}
+        }
+	
+    if ( ret != KErrNone )
+		{
+		if( ret == KErrDiskFull)
+			{
+			iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EDiskFull );
+			}
+        else if( ret == KErrNotFound )
+            {
+            iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
+            }
+        else if( ret == KErrArgument )
+            {
+            iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EInvalidObject );
+            }
+        else if( ret == KErrOverflow)
+            {
+            iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ETooLargeObject  );
+            }
+		else
+			{
+			iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
+			}
+		}
+	else if ( fieldID == EProfilePort )
+	    {
+        // in case port is updated, save status ref to be used in 
+        // CompleteOutstandingCmdsL (i.e. status not set yet)
+        iPortBufStatusRef = aStatusRef;
+	    }
+	else
+	    {
+    	iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
+	    }
+	
+	_DBG_FILE("CNSmlDSSettingsAdapter::AddLeafObjectL(): end");
+	return;
+	}
+
+//------------------------------------------------------------------------------
+//  CNSmlDSSettingsAdapter::DeleteObjectL
+//  The function Deletes leaf object data or node data content.
+//------------------------------------------------------------------------------
+void CNSmlDSSettingsAdapter::DeleteObjectL( const TDesC8& aURI, 
+                                            const TDesC8& aLUID, 
+                                            const TInt aStatusRef )
+	{
+    _DBG_FILE("CNSmlDSSettingsAdapter::DeleteObjectL( ): begin");
+	iLUID = IntLUID( aLUID );
+	if( aLUID.Length() == 0 )
+		{
+		_DBG_FILE("CNSmlDSSettingsAdapter DELETE::DeleteObjectL( ): ENotFound end");
+		iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
+		return;
+		}
+
+//
+//	Check which field going to be handled
+//
+	SetField( aURI );
+    if ( iField->Compare( KNSmlDdfCTType ) == 0 
+        || iField->Compare( KNSmlDdfRDBURI ) == 0 
+        || iField->Compare( KNSmlDdfLDBURI ) == 0 
+        || iField->Compare( KNSmlDdfToNAPID ) == 0 )
+		{
+		_DBG_FILE("CNSmlDSSettingsAdapter DELETE::DeleteObjectL( ): EError end");
+		iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
+		return;
+		}
+	
+	TInt last = aURI.LocateReverse( KNSmlDMUriSeparator );
+	TInt pos  = aURI.Find( KNSmlDefDSAcc );
+
+	if(last - 5 == pos )
+		{
+		iLUID = IntLUID( aLUID );
+		if( !FindProfileIdL( iLUID ) )
+			{
+			_DBG_FILE("CNSmlDSSettingsAdapter::DeleteObjectL( ): notfound end");
+			iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
+			return;
+			}
+		else
+			{
+			TInt sRet = DeleteProfileL( iLUID );
+			if( sRet!=KErrNone )
+				{
+				_DBG_FILE("CNSmlDSSettingsAdapter::DeleteObjectL( ): ENotCommitted end");
+				if( sRet == KErrNotFound )
+				    {
+                    iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
+				    }
+				else if( sRet == KErrInUse )
+				    {
+                    iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EObjectInUse );
+				    }
+				else
+                    {
+                    iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
+                    }
+				return;
+				}
+			else
+				{
+				iPrevURI->Des().Format( KNullDesC8 );
+				iPrevLUID = 0;
+				_DBG_FILE("CNSmlDSSettingsAdapter::DeleteObjectL( ): EOk end");
+				iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
+				return;
+				}
+			}
+		}
+	else if( aURI.Match( KDBUri1 ) != KErrNotFound )
+		{
+		iLUID = GetProfileIdFromURIL( aURI ); // Get profile Id for DB-level
+		if (iLUID < 0)
+			{
+			_DBG_FILE("CNSmlDSSettingsAdapter::DeleteObjectL( ): EError end");
+			iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
+			return;
+			}
+
+		if( !FindProfileIdL( iLUID ) )
+			{
+			_DBG_FILE("CNSmlDSSettingsAdapter::DeleteObjectL( ): ENotFound end");
+			iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
+			return;
+			}
+		TInt adapterId = GetIntObject( aLUID );//Get task ID
+        TInt retval =  DeleteTaskByIDL( iLUID, adapterId );
+        if( retval != KErrNone )
+            {
+            if( retval == KErrNotFound )
+                {
+                _DBG_FILE("CNSmlDSSettingsAdapter::DeleteObjectL( ): ENotFound end");
+                iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
+                }
+            else
+				{
+				_DBG_FILE("CNSmlDSSettingsAdapter::DeleteObjectL( ): EError end");
+                iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
+               	}
+            }
+		else
+            {
+            _DBG_FILE("CNSmlDSSettingsAdapter::DeleteObjectL( ): EOk end");
+		    iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
+            }
+        return;
+		}
+
+	iLUID = IntLUID( aLUID );
+
+	if ( iLUID != iParentLUID )
+		{
+		if( !FindProfileIdL( iLUID ) )
+			{
+			_DBG_FILE("CNSmlDSSettingsAdapter::DeleteObjectL( ): end");
+			iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
+			return;
+			}
+		iParentLUID = iLUID;
+		}
+
+	HBufC8* lObject = HBufC8::NewLC( 15 );
+    lObject->Des().Format( KNullDesC8 );
+	
+	iLeafType = EDSDelete;
+	UpdateLeafObjectL( aURI, aLUID, *lObject, KMimeType, aStatusRef );
+	iLeafType = EDSUnset;
+
+	_DBG_FILE("CNSmlDSSettingsAdapter::DeleteObjectL( ): end");
+	CleanupStack::PopAndDestroy(); //lObject 
+	return;
+	}
+
+//------------------------------------------------------------------------------
+//  CNSmlDSSettingsAdapter::FetchLeafObjectL
+//  The function fetches the leaf object data.
+//------------------------------------------------------------------------------
+void CNSmlDSSettingsAdapter::FetchLeafObjectL( const TDesC8& aURI, 
+                                                const TDesC8& aLUID, 
+                                                const TDesC8& aType, 
+                                                const TInt aResultsRef, 
+                                                const TInt aStatusRef )
+	{
+	_DBG_FILE("CNSmlDSSettingsAdapter::FetchLeafObjectL(): begin");
+	DBG_ARGS(_S16("DS:Fetch aURI    - %S - %S"), &aURI, &aLUID);
+
+    CBufBase *lObject = CBufFlat::NewL( 128 );
+	CleanupStack::PushL( lObject );
+	lObject->Reset();
+    if( FetchObjectL( aURI, aLUID, lObject, aStatusRef ) != KErrNone )
+        {
+        CleanupStack::PopAndDestroy(); //lObject
+        _DBG_FILE("CNSmlDSSettingsAdapter::FetchLeafObjectL() : Error end");
+        return;
+        };
+    iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
+    iCallBack->SetResultsL( aResultsRef, *lObject, aType );
+	CleanupStack::PopAndDestroy(); //object    
+    _DBG_FILE("CNSmlDSSettingsAdapter::FetchLeafObjectL() : end");
+    return;
+	}
+
+//------------------------------------------------------------------------------
+//  CSmlDSSettingsAdapter::ChildURIListL
+//  Function returns the list of profiles or leafs of the profile 
+//  acording to aURI.
+//------------------------------------------------------------------------------
+void CNSmlDSSettingsAdapter::ChildURIListL( const TDesC8& aURI, 
+                                            const TDesC8& aLUID, 
+                                            const CArrayFix<TSmlDmMappingInfo>& aPreviousURISegmentList, 
+                                            const TInt aResultsRef, const TInt aStatusRef )
+	{
+    _DBG_FILE("CNSmlDSSettingsAdapter::ChildURIListL(): begin");
+//	DBG_ARGS(_S16("ChildURIListL URI - <%S>"), &aURI);
+
+	CBufBase *currentURISegmentList = CBufFlat::NewL( 128 );
+	CleanupStack::PushL( currentURISegmentList );
+
+	if( aURI.Match( KDSAccMatch ) != KErrNotFound &&
+	   aURI.Match( KDSAccMatch2 ) == KErrNotFound )
+		{
+		//
+		//	Check if Profile exists
+		//
+		TInt checkLUID = GetIntObject( aLUID ); 
+		if( FindProfileIdL( checkLUID ) )
+		{
+			currentURISegmentList->InsertL( currentURISegmentList->Size(), KSegmDSAcc );
+			iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
+		   	iCallBack->SetResultsL( aResultsRef, *currentURISegmentList, KNullDesC8 );
+        }
+        else
+        {
+			checkLUID = -1;
+			if( IsDSAccUriFormatMatchPredefined(aURI) )
+		    {
+		    	checkLUID = ConstructTreeL(aURI); 
+    		}    	
+    		if (checkLUID == -1 ) 
+		    {
+		    	_DBG_FILE( "CNSmlDMSettingsAdapter::childURI(): ENotFound end" );
+				iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
+				CleanupStack::PopAndDestroy(  ); // currentURISegmentList
+        		_DBG_FILE( "CNSmlDMSettingsAdapter::ChildURIListL(): end" );
+			    return;
+		   	}
+		    else
+		    {
+       		    currentURISegmentList->InsertL( currentURISegmentList->Size(), KSegmDSAcc );
+ 				iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
+			    iCallBack->SetResultsL( aResultsRef, *currentURISegmentList, KNullDesC8 );
+		    	}
+    	
+			// Static node feature start end
+
+			_DBG_FILE("CNSmlDSSettingsAdapter::ChildURIListL(): end");
+			CleanupStack::PopAndDestroy(); //currentURISegmentList 
+			return;
+		}
+		}		
+	else if( aURI.Match( KDSDBMatch ) != KErrNotFound )
+		{
+		//
+		//	Check if ContenType exists (profileId from adapters)
+		// 
+		TInt profileLUID = GetProfileIdFromURIL( aURI ); // ProfileId for DB-level
+        if( OpenSyncSessionAndDSProfileL( profileLUID, ESmlOpenRead ) == KErrNone )
+            {
+            RArray<TSmlTaskId> taskIdArray;
+            CleanupClosePushL( taskIdArray );
+            iDSProfile.ListTasksL( taskIdArray );
+            if( taskIdArray.Count() == 0 )
+                {
+                currentURISegmentList->InsertL( currentURISegmentList->Size(), KNullDesC8 );
+                }
+            else
+                {
+                currentURISegmentList->InsertL( currentURISegmentList->Size(), KSegmDSAcc2 );
+                }
+            CloseDSProfile();
+            CleanupStack::PopAndDestroy();//taskIdArray
+            }
+        else
+            { 
+            iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
+		    _DBG_FILE("CNSmlDSSettingsAdapter::ChildURIListL(): CT-NOTFOUND end");
+			CleanupStack::PopAndDestroy();//currentURISegmentList 
+			return;
+            }
+            
+        iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
+		iCallBack->SetResultsL( aResultsRef, *currentURISegmentList, KNullDesC8 );
+		_DBG_FILE("CNSmlDSSettingsAdapter::ChildURIListL(): end");
+		CleanupStack::PopAndDestroy(); //currentURISegmentList
+		return;
+		}
+//
+//	Handle ContentType (DB) request -> TASKS of the profile
+//
+	if( aURI.Match( KDSDBMatch2 ) != KErrNotFound )
+		{
+		TInt lProfileId = GetIntObject( aLUID ); 
+		
+		if( ! FindProfileIdL( lProfileId ) )
+			{
+			_DBG_FILE("CNSmlDSSettingsAdapter::ChildURIListL(): NOTFOUND CTTYPE end");
+			CleanupStack::PopAndDestroy();// currentURISegmentList
+			iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
+			return;
+			}
+		
+        TInt ret = CreateURITaskSegmentListL( aURI, lProfileId, currentURISegmentList, 
+                                                aPreviousURISegmentList );
+		if( ret != KErrNone && ret != KErrNotFound )
+			{
+			_DBG_FILE("CNSmlDSSettingsAdapter::ChildURIListL(): ContentType error end");
+			CleanupStack::PopAndDestroy();// currentURISegmentList
+			iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
+			return;
+			}
+		_DBG_FILE("CNSmlDSSettingsAdapter::ChildURIListL(): CTTYPE-OK end");
+		iCallBack->SetResultsL( aResultsRef, *currentURISegmentList, KNullDesC8);
+		iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );	
+		CleanupStack::PopAndDestroy();// currentURISegmentList
+		return;
+		}
+
+	
+    TInt ret = CreateURIProfileSegmentListL( currentURISegmentList, aPreviousURISegmentList );
+
+    if( ret != KErrNone )
+	    {
+		_DBG_FILE("CNSmlDSSettingsAdapter::ChildURIListL(): Profile not found end");
+		CleanupStack::PopAndDestroy();// currentURISegmentList
+		iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
+		return;
+		}
+   
+	iCallBack->SetResultsL( aResultsRef, *currentURISegmentList, KNullDesC8 );
+	CleanupStack::PopAndDestroy(); // currentURISegmentList
+	iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
+	_DBG_FILE("CNSmlDSSettingsAdapter::ChildURIListL(): end");
+	return;
+    }
+
+//------------------------------------------------------------------------------
+//  CNSmlDSSettingsAdapter::AddNodeObjectL
+//  The function adds the new node object.
+//------------------------------------------------------------------------------
+void CNSmlDSSettingsAdapter::AddNodeObjectL( const TDesC8& aURI, 
+                                                const TDesC8& aParentLUID, 
+                                                const TInt aStatusRef )
+	{
+	_DBG_FILE("CNSmlDSSettingsAdapter::AddNodeObjectL(): begin");
+//
+//	Check if ContentType-add and insert to Buffer
+//
+    iParentLUID = GetIntObject( aParentLUID );
+    
+	if( aURI.Match( KDSDBAddMatch )!= KErrNotFound &&
+		aURI.Match( KDSDBAddMatch2 )== KErrNotFound )
+		{
+		if( aParentLUID.Length() > 0 && iParentLUID >= 0 && iBufferExecution == EFalse )
+			{
+            AddNodeBufferL( aURI, aParentLUID, aStatusRef );
+            }
+		else if( iParentLUID < 0 )
+			{
+			iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
+			_DBG_FILE("CNSmlDSSettingsAdapter::AddNodeObjectL(): end");
+			}
+		else
+			{
+			iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
+			_DBG_FILE("CNSmlDSSettingsAdapter::AddNodeObjectL(): end");
+			}
+		return;
+		}
+    
+	if( aURI.Match(KDSDBAddMatch3) != KErrNotFound )
+		{
+		if( FindProfileIdL( iParentLUID ) ) // Profile on database
+			{
+			iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
+			_DBG_FILE("CNSmlDSSettingsAdapter::AddNodeObjectL(): end");
+			}
+		else
+			{
+			iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
+			_DBG_FILE("CNSmlDSSettingsAdapter::AddNodeObjectL(): end");
+			}
+		return;
+		}
+   
+	if( FindProfileIdL( iParentLUID ) )
+		{
+		iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EAlreadyExists);
+		_DBG_FILE("CNSmlDSSettingsAdapter::AddNodeObjectL(): EAlreadyExists end");
+		return;
+		}
+	else
+		{
+		if( aParentLUID.Length() > 0 )
+		{		
+			TInt ret = iCallBack->RemoveMappingL(KNSmlDSSettingsAdapterImplUid,
+						GetDynamicDSNodeUri( aURI ), ETrue );
+			if(ret)
+				{
+				iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
+				return;
+				}
+		}		
+        //
+        //	Create new profile
+        //
+   	    TInt newPID = -1;
+        TInt sRet = CreateNewProfileL( newPID );
+        if( sRet != KErrNone || newPID < 0 )
+		    {	
+		    if( sRet == KErrDiskFull )
+			    {
+			    iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EDiskFull );
+			    }
+		    else if( sRet == KErrInUse )
+			    {
+			    iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EObjectInUse );
+			    }
+		    else
+			    {
+			    iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
+			    }
+		    return;
+		    }
+		//
+        //	Get new ProfileId from database
+        //
+	    iLUID = newPID;
+        //
+   	    TBuf8<8> newLUID;
+	    newLUID.Num( iLUID );
+	    iCallBack->SetMappingL( aURI, newLUID );
+        newLUID.Delete( 0, newLUID.Size() );
+        }
+	iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
+	_DBG_FILE("CNSmlDSSettingsAdapter::AddNodeObjectL(): end");
+    return;
+	}
+
+//------------------------------------------------------------------------------
+//  CNSmlDSSettingsAdapter::UpdateLeafObjectL
+//------------------------------------------------------------------------------
+void CNSmlDSSettingsAdapter::UpdateLeafObjectL( const TDesC8& /*aURI*/, 
+                                                const TDesC8& /*aLUID*/, 
+                                                RWriteStream*& /*aStream*/, 
+                                                const TDesC8& /*aType*/, 
+                                                const TInt /*aStatusRef*/ )
+	{
+	//Not supported since streaming is not supported by the adapter.
+	}
+	
+//------------------------------------------------------------------------------
+//  CNSmlDSSettingsAdapter::FetchLeafObjectSizeL
+//  The function fetches the size of the leaf object data.
+//------------------------------------------------------------------------------
+void CNSmlDSSettingsAdapter::FetchLeafObjectSizeL( const TDesC8& aURI, 
+                                                    const TDesC8& aLUID, 
+                                                    const TDesC8& aType, 
+                                                    const TInt aResultsRef, 
+                                                    const TInt aStatusRef )
+	{
+	_DBG_FILE("CNSmlDSSettingsAdapter::FetchLeafObjectSizeL() : begin");
+    CBufBase *lObject = CBufFlat::NewL( 128 );
+	CleanupStack::PushL( lObject );
+	lObject->Reset();
+    if( FetchObjectL( aURI, aLUID, lObject, aStatusRef ) != KErrNone )
+        {
+        CleanupStack::PopAndDestroy(); //lObject
+        _DBG_FILE("CNSmlDSSettingsAdapter::FetchLeafObjectSizeL() : Error end");
+        return;
+        };
+    TInt objSizeInBytes = lObject->Size();
+	TBuf8<16> stringObjSizeInBytes;
+	stringObjSizeInBytes.Num( objSizeInBytes );
+	lObject->Reset();
+    lObject->InsertL( 0, stringObjSizeInBytes );
+	
+	iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
+	iCallBack->SetResultsL( aResultsRef, *lObject, aType );
+	CleanupStack::PopAndDestroy(); //object
+    _DBG_FILE("CNSmlDSSettingsAdapter::FetchLeafObjectSizeL() : end");
+    return;
+    }
+
+//------------------------------------------------------------------------------
+//  CNSmlDSSettingsAdapter::ExecuteCommandL
+//------------------------------------------------------------------------------
+void CNSmlDSSettingsAdapter::ExecuteCommandL( const TDesC8& /*aURI*/, 
+                                                const TDesC8& /*aLUID*/, 
+                                                const TDesC8& /*aArgument*/, 
+                                                const TDesC8& /*aType*/, 
+                                                const TInt /*aStatusRef*/ )
+	{
+	// Not supported	
+	}
+
+//------------------------------------------------------------------------------
+//  CNSmlDSSettingsAdapter::ExecuteCommandL
+//------------------------------------------------------------------------------
+void CNSmlDSSettingsAdapter::ExecuteCommandL( const TDesC8& /*aURI*/, 
+                                                const TDesC8& /*aLUID*/, 
+                                                RWriteStream*& /*aStream*/, 
+                                                const TDesC8& /*aType*/, 
+                                                const TInt /*aStatusRef*/ )
+	{
+	// Not supported by the adapter.
+	}
+
+//------------------------------------------------------------------------------
+//  CNSmlDSSettingsAdapter::CopyCommandL
+//------------------------------------------------------------------------------
+void CNSmlDSSettingsAdapter::CopyCommandL( const TDesC8& /*aTargetURI*/, 
+                                            const TDesC8& /*aTargetLUID*/, 
+                                            const TDesC8& /*aSourceURI*/, 
+                                            const TDesC8& /*aSourceLUID*/, 
+                                            const TDesC8& /*aType*/, 
+                                            TInt /*aStatusRef*/ )
+	{
+	// Not supported by the adapter.
+	}
+
+//------------------------------------------------------------------------------
+//  CNSmlDSSettingsAdapter::StartAtomicL
+//------------------------------------------------------------------------------
+void CNSmlDSSettingsAdapter::StartAtomicL()
+	{
+	// Atomic commands not supported by the adapter.
+	}
+
+//------------------------------------------------------------------------------
+//  CNSmlDSSettingsAdapter::CommitAtomicL
+//------------------------------------------------------------------------------
+void CNSmlDSSettingsAdapter::CommitAtomicL()
+	{
+	// Atomic commands not supported by the adapter.
+	}
+
+//------------------------------------------------------------------------------
+//  CNSmlDSSettingsAdapter::RollbackAtomicL
+//------------------------------------------------------------------------------
+void CNSmlDSSettingsAdapter::RollbackAtomicL()
+	{
+	// Atomic commands not supported by the adapter.
+	}
+
+//------------------------------------------------------------------------------
+//  CNSmlDSSettingsAdapter::StreamingSupport()
+//  Indicates if streaming is supported.
+//------------------------------------------------------------------------------
+TBool CNSmlDSSettingsAdapter::StreamingSupport( TInt& /*aItemSize*/ )
+	{
+	return EFalse;
+	}
+
+//------------------------------------------------------------------------------
+//  CNSmlDSSettingsAdapter::StreamCommittedL
+//------------------------------------------------------------------------------
+void CNSmlDSSettingsAdapter::StreamCommittedL()
+	{
+	//  Not supported since streaming not supported by the adapter.
+	}
+//------------------------------------------------------------------------------
+//  CNSmlDSSettingsAdapter::CompleteOutstandingCmdsL
+//  The function completes all buffered command from the buffer.
+//------------------------------------------------------------------------------
+void CNSmlDSSettingsAdapter::CompleteOutstandingCmdsL()
+	{
+    
+//
+//	Handle unhandled nodes if any
+//
+    TInt count = iBuffer->Count();
+	for( TInt h = 0; h < count ; h++ )
+		{
+		TBuf8<150> commandURI;
+		commandURI.Append( iBuffer->At(0).iMappingName->Des() );
+		commandURI.Append( KDummyTxt );
+		TRAP_IGNORE( ExecuteBufferL( commandURI ) );
+		}
+	iBuffer->Reset();
+	CloseDSProfile();
+	
+	// if port was updated, set it
+    if ( iPortBuf )
+        {
+        TInt err = SetProfileConnectionPortNrL( iPortBufLUID, *iPortBuf );
+        
+        // set status
+        if ( err != KErrNone )
+            {
+            iCallBack->SetStatusL( iPortBufStatusRef, CSmlDmAdapter::EError );
+            }
+        else
+            {
+            iCallBack->SetStatusL( iPortBufStatusRef, CSmlDmAdapter::EOk );
+            }
+
+        delete iPortBuf;
+        iPortBuf = NULL;
+        }
+	}
+
+//------------------------------------------------------------------------------
+//  TBool CNSmlDSSettingsAdapter::AcceptDSField
+//  The function checks if leaf to be handled is valid for the adapter.
+//------------------------------------------------------------------------------
+TBool CNSmlDSSettingsAdapter::AcceptDSField()
+	{
+	_DBG_FILE("CNSmlDSSettingsAdapter::AcceptDSField(): begin");
+
+	if ( iField->Compare( KNSmlDdfAddrType ) == 0 )
+		{
+		return ETrue;
+		}
+	else if ( iField->Compare( KNSmlDdfAddr ) == 0 )
+		{
+		return ETrue;
+		}
+	else if ( iField->Compare( KNSmlDdfPortNbr ) == 0 )
+		{
+		return ETrue;
+		}
+	else if ( iField->Compare( KNSmlDdfClientUserName ) == 0 )
+		{
+		return ETrue;
+		}
+	else if ( iField->Compare( KNSmlDdfName ) == 0 )
+		{
+		return ETrue;
+		}
+	else if ( iField->Compare( KNSmlDdfCTType ) == 0 )
+		{
+		return ETrue;
+		}
+	else if ( iField->Compare( KNSmlDdfRDBURI ) == 0 )
+		{
+		return ETrue;
+		}
+	else if ( iField->Compare( KNSmlDdfLDBURI ) == 0 )
+		{
+		return ETrue;
+		}
+	else if ( iField->Compare( KNSmlDdfClientPW ) == 0 )
+		{
+		return ETrue;
+		}
+	else if ( iField->Compare( KNSmlDdfToNAPID ) == 0 )
+		{
+		return ETrue;
+		}
+	else if ( iField->Compare( KNSmlDdfHidden ) == 0 )
+		{
+		return EFalse;
+		}
+
+	_DBG_FILE("CNSmlDSSettingsAdapter::AcceptDSField(): end");
+	return EFalse;
+	}
+
+//------------------------------------------------------------------------------
+//  CNSmlDSSettingsAdapter::GetDSField
+//  The function checks what leaf to handled and returns enum value for the leaf.
+//------------------------------------------------------------------------------
+TInt CNSmlDSSettingsAdapter::GetDSField() const
+	{
+	_DBG_FILE("CNSmlDSSettingsAdapter::GetDSField(): begin");
+
+	if ( iField->Compare( KNSmlDdfAddrType ) == 0 )
+		{
+		return EProfileMediumType;
+		}
+	else if ( iField->Compare( KNSmlDdfAddr ) == 0 )
+		{
+		return EProfileURL;
+		}
+	else if ( iField->Compare( KNSmlDdfPortNbr ) == 0 )
+		{
+		return EProfilePort;
+		}
+	else if ( iField->Compare( KNSmlDdfClientUserName ) == 0 )
+		{
+		return EProfileSyncServerUsername;
+		}
+	else if ( iField->Compare( KNSmlDdfServerId ) == 0 )
+		{
+		return EProfileServerId;
+		}
+	else if ( iField->Compare( KNSmlDdfClientPW ) == 0 )
+		{
+		return EProfileSyncServerPassword;
+		}
+	else if ( iField->Compare( KNSmlDdfName ) == 0 )
+		{
+		return EProfileName;
+		}
+	else if ( iField->Compare( KNSmlDdfToNAPID ) == 0 )
+		{
+		return EProfileIAPId;
+		}
+	else if ( iField->Compare( KNSmlDdfHidden ) == 0 )
+		{
+		return EHiddenProfile;
+		}
+    else if ( iField->Compare( KNSmlDdfDB ) == 0 ||
+            iField->Compare( KNSmlDdfCTType ) == 0 ||
+            iField->Compare( KNSmlDdfCTVerL ) == 0 ||
+            iField->Compare( KNSmlDdfRDBURI ) == 0 ||
+            iField->Compare( KNSmlDdfLDBURI ) == 0 )
+		{
+		return ESyncAccepted;
+		}
+	
+	_DBG_FILE("CNSmlDSSettingsAdapter::GetDSField(): end");
+	return KErrNotFound;
+	}
+
+//------------------------------------------------------------------------------
+//  CNSmlDSSettingsAdapter::GetDSFieldTypeL
+//  The function return the data type for the leaf.
+//------------------------------------------------------------------------------
+TInt CNSmlDSSettingsAdapter::GetDSFieldTypeL() const
+	{
+	_DBG_FILE("CNSmlDSSettingsAdapter::GetDSFieldTypeL(): begin");
+
+	if ( iField->Compare( KNSmlDdfAddrType ) == 0 ||
+        iField->Compare( KNSmlDdfPortNbr ) == 0 ||
+        iField->Compare( KNSmlDdfToNAPID ) == 0 ||
+        iField->Compare( KNSmlDdfHidden ) == 0 )
+		{
+		return EInt;
+		}
+	else if ( iField->Compare( KNSmlDdfAddr ) == 0 ||
+            iField->Compare( KNSmlDdfClientUserName ) == 0 ||
+            iField->Compare( KNSmlDdfServerId ) == 0 ||
+            iField->Compare( KNSmlDdfClientPW ) == 0 ||
+            iField->Compare( KNSmlDdfName ) == 0 )
+		{
+		return EStr;
+		}
+	else if ( iField->Compare( KNSmlDdfDB ) == 0 ||
+            iField->Compare( KNSmlDdfCTType ) == 0 ||
+            iField->Compare( KNSmlDdfCTVerL ) == 0 ||
+            iField->Compare( KNSmlDdfRDBURI ) == 0 ||
+            iField->Compare( KNSmlDdfLDBURI ) == 0 )
+		{
+		return EParam;
+		}
+
+	_DBG_FILE("CNSmlDSSettingsAdapter::GetDSFieldTypeL(): end");
+	return EWrong;
+	}
+
+//------------------------------------------------------------------------------
+//  CNSmlDSSettingsAdapter::IntLUID
+//	Returns IntValue for aLUID.
+//------------------------------------------------------------------------------
+TInt CNSmlDSSettingsAdapter::IntLUID( const TDesC8& aLUID )
+	{
+
+	TLex8 lLex( aLUID );
+
+	if ( lLex.Val( iLUID ) == KErrNone )
+	    {
+	    return iLUID;
+	    }
+	else
+        {
+        return 0;
+        }
+	}
+
+//------------------------------------------------------------------------------
+//	CNSmlDSSettingsAdapter::GetIntObject
+//	Returns IntValue for a aObject
+//------------------------------------------------------------------------------
+TInt CNSmlDSSettingsAdapter::GetIntObject( const TDesC8& aObject )
+	{
+	TLex8 lLex( aObject );
+
+	TInt value = 0;
+
+	if ( lLex.Val( value ) == KErrNone )
+	    {
+	    return value;
+	    }
+	else
+        {
+        return KErrGeneral;
+        }
+	}
+
+//------------------------------------------------------------------------------
+//	CNSmlDSSettingsAdapter::GetIntObject16()
+//	Returns IntValue for a 16-bit aObject
+//------------------------------------------------------------------------------
+TInt CNSmlDSSettingsAdapter::GetIntObject16( const TDesC& aObject )
+	{
+	TLex lLex( aObject );
+
+	TInt value = 0;
+
+	if ( lLex.Val( value ) == KErrNone )
+	    {
+	    return value;
+	    }
+	else
+        {
+        return KErrGeneral;
+        }
+	}
+//------------------------------------------------------------------------------
+//	CNSmlDSSettingsAdapter::SetIntObjectLC
+//	Converts integer to HBufC8 type buffer and returns reference to it.
+//------------------------------------------------------------------------------
+TDesC8& CNSmlDSSettingsAdapter::SetIntObjectLC( const TInt& aObject )
+	{
+	HBufC8* buf = HBufC8::NewLC( 8 );
+	TPtr8 ptrBuf = buf->Des();
+
+	ptrBuf.Num( aObject );
+
+	return *buf;
+	}
+
+//------------------------------------------------------------------------------
+//	CNSmlDSSettingsAdapter::NotValidStrLenght
+//	The function checks if data length for a leaf is valid.
+//------------------------------------------------------------------------------
+
+TBool CNSmlDSSettingsAdapter::NotValidStrLenght( const TInt& aProfileItem, 
+                                                const TDesC8& aSource )
+	{
+	TInt lLen = aSource.Length();
+	TBool lBool = EFalse;
+	
+	switch ( aProfileItem )
+		{
+		case ( EProfileName ) :
+			{
+			if( lLen > KNSmlMaxProfileNameLength )
+				lBool = ETrue;	
+			}
+		break;
+		
+		case ( EProfileSyncServerUsername ) :
+			{
+			if( lLen > KNSmlMaxUsernameLength )
+				lBool = ETrue;	
+			}
+		break;
+
+		case ( EProfileSyncServerPassword ) :
+			{
+			if( lLen > KNSmlMaxPasswordLength )
+				lBool = ETrue;	
+			}
+		break;
+
+		case ( EProfileURL ) :
+			{
+			if( lLen > KNSmlMaxURLLength )
+				lBool = ETrue;	
+			}
+		break;
+
+		case ( EProfileIAPId ) :
+			{
+			if( lLen > KNSmlMaxURLLength )// Value from InternetAdapter for
+				lBool = ETrue;			// given URI ./AP/xxx
+			}
+		break;
+
+		case ( EProfilePort ) :
+		case ( EHiddenProfile ) :
+		case ( EProfileMediumType ) :
+			{
+			if( lLen > 8 )
+				lBool = ETrue;	
+			}
+		break;
+
+		case ( EProfileServerId ) :
+			{
+			if( lLen > KNSmlMaxUsernameLength )
+				lBool = ETrue;			
+			}
+		break;
+
+		default:
+			{
+			return ETrue;
+			}
+		}
+
+	return lBool;
+	}
+
+//------------------------------------------------------------------------------
+//	CNSmlDSSettingsAdapter::SetField
+//	The function finds out the last element of the URI.
+//------------------------------------------------------------------------------
+TInt CNSmlDSSettingsAdapter::SetField( const TDesC8& aSource )
+	{
+	if ( aSource.LocateReverse( KNSmlDMUriSeparator ) == KErrNotFound )
+	    {
+	    iField->Des().Format( aSource );
+	    }
+	else
+        {
+        iField->Des().Format( aSource.Mid( aSource.LocateReverse( KNSmlDMUriSeparator ) + 1 ) );
+        }
+
+    return KErrNone;
+	}
+
+//------------------------------------------------------------------------------
+//	CNSmlDSSettingsAdapter::ConvertTo8LC
+//	Converts 16-bit string value to 8-bit.
+//------------------------------------------------------------------------------
+TDesC8& CNSmlDSSettingsAdapter::ConvertTo8LC( const TDesC& aSource )
+	{
+	HBufC8* buf = HBufC8::NewLC( aSource.Length() * 2 );
+	TPtr8 bufPtr = buf->Des();
+	CnvUtfConverter::ConvertFromUnicodeToUtf8( bufPtr, aSource );
+    return *buf;
+	}
+
+//------------------------------------------------------------------------------
+//	CNSmlDSSettingsAdapter::ConvertTo16LC
+//	Converts 8-bit string value to 16-bit.
+//------------------------------------------------------------------------------
+TDesC16& CNSmlDSSettingsAdapter::ConvertTo16LC( const TDesC8& aSource )
+	{
+	HBufC16* buf16 = HBufC16::NewLC( aSource.Length() );
+	TPtr16 bufPtr16 = buf16->Des();
+	CnvUtfConverter::ConvertToUnicodeFromUtf8( bufPtr16, aSource );
+    return *buf16;
+	}
+
+//------------------------------------------------------------------------------
+//	CNSmlDSSettingsAdapter::AddNewDataProviderL
+//	Check if data provider exits and required MIME type is supported by the 
+//  data provider. If supported new task will be created.
+//------------------------------------------------------------------------------
+TInt CNSmlDSSettingsAdapter::AddNewDataProviderL( TInt aIntLUID, 
+                                                    const TDesC8& aMIMEType, 
+                                                    TInt& aDataProviderId )
+	{
+	_DBG_FILE("CNSmlDSSettingsAdapter::AddNewDataProviderL(): begin");
+    
+    TInt retVal = OpenSyncSessionAndDSProfileL( aIntLUID, ESmlOpenReadWrite );
+    if( retVal != KErrNone )
+		{
+        CloseDSProfile();
+        return KErrGeneral;	
+		}
+    if( iRdbDataStore->Size() <= 0 )
+        {
+        CloseDSProfile();
+        return KErrGeneral;
+        }
+    RArray<TSmlDataProviderId> dataProviderArray;
+    CleanupClosePushL( dataProviderArray );
+    iSyncSession.ListDataProvidersL( dataProviderArray );
+    TInt dataProviderCount = dataProviderArray.Count();
+    if( dataProviderCount == 0 )
+        {
+        CloseDSProfile();
+        CleanupStack::PopAndDestroy(); // dataProviderIdArray
+    	_DBG_FILE("CNSmlDSSettingsAdapter::AddNewDataProviderL(): dataprovirdercount == 0 End");
+        return KErrNotFound;   
+        }
+    HBufC8* object = aMIMEType.AllocLC();
+    TPtr8 objectPtr = object->Des();
+	objectPtr.LowerCase();
+    RSyncMLDataProvider dataProvider;
+        
+    for ( TInt i= 0; i < dataProviderCount; i++ )
+        {
+        dataProvider.OpenL( iSyncSession, dataProviderArray[i] );
+        CleanupClosePushL( dataProvider );   
+        for ( TInt n = 0; n < dataProvider.MimeTypeCount(); n++ )
+            {
+            HBufC* mimeType = dataProvider.MimeType(n).AllocLC();
+            if( objectPtr.CompareF( ConvertTo8LC( *mimeType ) ) == 0 ) //if MIME match
+                {
+               	_DBG_FILE("CNSmlDSSettingsAdapter::AddNewDataProviderL(): Mimetype found");
+
+                aDataProviderId = dataProvider.Identifier();
+                RSyncMLTask task;
+                CleanupClosePushL( task ); 
+                if( dataProvider.AllowsMultipleDataStores() )
+                    {
+                   	_DBG_FILE("CNSmlDSSettingsAdapter::AddNewDataProviderL(): AllowsMultipleDataStores");
+                    CDesCArray* dataStoreName = new ( ELeave ) CDesCArrayFlat( 1 );
+                    CleanupStack::PushL( dataStoreName );
+                    dataProvider.GetDataStoreNamesL( *dataStoreName );
+                    if ( dataStoreName->Count() == 0 )
+                        {
+                        // Get default if there are no databases
+                        _DBG_FILE("CNSmlDSSettingsAdapter::AddNewDataProviderL():  no databases -> get default");
+                        HBufC* localDataStoreName = dataProvider.DefaultDataStoreName().AllocLC();
+                        task.CreateL( iDSProfile, aDataProviderId, *iRdbDataStore, 
+                                    *localDataStoreName );
+					    task.UpdateL();
+						CleanupStack::PopAndDestroy();  //localDataStoreName
+                        }
+                    else
+                        {
+                        TPtrC16 ptrDataStoreName = dataStoreName->MdcaPoint(0);
+                        task.CreateL( iDSProfile, aDataProviderId, *iRdbDataStore, 
+		                            ptrDataStoreName );
+		                task.UpdateL();
+                        }
+                    CleanupStack::PopAndDestroy();//dataStoreName
+                    }
+                else
+                    {
+                   	_DBG_FILE("CNSmlDSSettingsAdapter::AddNewDataProviderL():  MultipleDataStores not allowed");
+                    HBufC* localDataStoreName = dataProvider.DefaultDataStoreName().AllocLC();
+                    task.CreateL( iDSProfile, aDataProviderId, *iRdbDataStore, 
+                                    *localDataStoreName );
+                    task.UpdateL();
+                    CleanupStack::PopAndDestroy();  //localDataStoreName
+                    }
+                iDSProfile.UpdateL();
+                CleanupStack::PopAndDestroy( 6 ); //dataProviderArray, dataProvider, 
+                                                //object, mimeType, ConvertTo8LC, 
+                                                //task
+                CloseDSProfile();
+                _DBG_FILE("CNSmlDSSettingsAdapter::AddNewDataProviderL(): end KErrNone");
+                return KErrNone;
+                }
+            CleanupStack::PopAndDestroy( 2 ); //mimeType, ConvertTo8LC    
+            }
+        CleanupStack::PopAndDestroy(  ); //dataProvider
+        }
+    
+    CleanupStack::PopAndDestroy( 2 ); //dataProviderArray, object
+    CloseDSProfile();
+    _DBG_FILE("CNSmlDSSettingsAdapter::AddNewDataProviderL(): end KErrNotFound");
+    return KErrNotFound;
+	}
+
+//------------------------------------------------------------------------------
+//  CNSmlDSSettingsAdapter::GetToNAPIDL
+//	The function gets URI for given aObject.
+//------------------------------------------------------------------------------
+TInt CNSmlDSSettingsAdapter::GetToNAPIDL( const TInt aLUID, CBufBase& aObject )
+	{
+	_DBG_FILE("CNSmlDSSettingsAdapter::GetToNAPIDL() : begin");
+		
+    TInt profIAPid = -1;
+    TInt apIdResponse = GetProfileIAPIdL(aLUID, profIAPid);
+    if( profIAPid < 0 || apIdResponse != KErrNone )
+        {
+        return KErrNotFound;
+        }
+    CNSmlDMIAPMatcher* apmatch = CNSmlDMIAPMatcher::NewL( iCallBack );
+    CleanupStack::PushL( apmatch );
+    HBufC8* uri8 = apmatch->URIFromIAPIdL( profIAPid );
+    if( uri8 )
+        {
+        CleanupStack::PushL( uri8 );
+        aObject.InsertL(aObject.Size(),uri8->Des());
+        CleanupStack::PopAndDestroy(); // uri8
+        }
+    else
+        {
+        CleanupStack::PopAndDestroy(); // apMatch
+        return KErrGeneral;    
+        }
+    CleanupStack::PopAndDestroy(); // apMatch
+	_DBG_FILE("CNSmlDSSettingsAdapter::GetToNAPIDL() : end");
+	return KErrNone;
+	}
+
+//------------------------------------------------------------------------------
+//  CNSmlDSSettingsAdapter::SetToNAPIDL
+//	The function sets NAPId value according given URI.
+//------------------------------------------------------------------------------
+TInt CNSmlDSSettingsAdapter::SetToNAPIDL( const TInt aLUID, const TDesC8& aObject )
+	{
+	_DBG_FILE("CNSmlDSSettingsAdapter::SetToNAPIDL() : begin");
+    CNSmlDMIAPMatcher* apmatch = CNSmlDMIAPMatcher::NewL( iCallBack );
+    CleanupStack::PushL( apmatch );
+    TInt lIAPid = apmatch->IAPIdFromURIL( aObject );
+    TInt apIdResponse = SetProfileIAPIdL( aLUID, lIAPid );
+	CleanupStack::PopAndDestroy(); // apmatch
+    _DBG_FILE("CNSmlDSSettingsAdapter::SetToNAPIDL() : end");
+	return apIdResponse;
+	}
+
+//------------------------------------------------------------------------------
+//  CNSmlDSSettingsAdapter::AddNodeBufferL
+//	The function sets the new node to buffer.	
+//------------------------------------------------------------------------------
+void CNSmlDSSettingsAdapter::AddNodeBufferL( const TDesC8& aURI, 
+                                                const TDesC8& aParentLUID,
+                                                const TInt aStatusRef )
+	{
+	TNSmlDSBufferElement newNode;
+	newNode.iMappingName = aURI.AllocLC();
+	newNode.iName = LastURISeg(aURI).AllocLC(); 
+	newNode.iNodeBuf = new (ELeave) CArrayFixFlat <TNSmlDSAddElement> ( KNSmlDSGranularity );
+	newNode.iExecuted = EFalse;
+	newNode.iLuid = GetIntObject( aParentLUID );
+	iBuffer->AppendL( newNode );
+	CleanupStack::Pop( 2 ); //newNode.iMappingName,newNode.iName
+
+	TNSmlDSAddElement newCommand;
+
+	newCommand.iUri = aURI.AllocLC();
+	newCommand.iData = 0;
+	newCommand.iStatusRef = aStatusRef;
+	newCommand.iLeaf = EFalse;
+	newCommand.iDone = EFalse;
+
+	TInt index = iBuffer->Count() - 1;
+	iBuffer->At(index).iNodeBuf->AppendL( newCommand );
+	CleanupStack::Pop(); //newCommand.iUri
+	}
+
+//------------------------------------------------------------------------------
+//  CNSmlDSSettingsAdapter::AddLeafBufferL
+//  The function sets the new leaf to buffer.
+//------------------------------------------------------------------------------
+void CNSmlDSSettingsAdapter::AddLeafBufferL( const TDesC8& aURI, 
+                                                const TDesC8& aParentLUID, 
+                                                const TDesC8& aObject, 
+                                                const TInt aStatusRef )
+	{
+    TInt index = GetBufferIndex( aURI );
+    if(index<0)
+		{
+		DBG_ARGS(_S16("DS-adapter:AddLeafBufferL URI - <%S> <%S> NOTFOUND"), &aURI, &aParentLUID );
+		iCallBack->SetStatusL(aStatusRef,  CSmlDmAdapter::ENotFound);
+		return;
+        }
+
+	TNSmlDSAddElement newCommand;
+	newCommand.iUri = aURI.AllocLC();
+	newCommand.iData = aObject.AllocLC();
+	newCommand.iStatusRef = aStatusRef;
+	newCommand.iLeaf = ETrue;
+	newCommand.iDone = EFalse;
+    iBuffer->At(index).iNodeBuf->AppendL( newCommand );
+	CleanupStack::Pop( 2 ); //newCommand.iUri, newCommand.iData
+    }
+
+//------------------------------------------------------------------------------
+//  CNSmlDSSettingsAdapter::LastURISeg
+//  The function returns only the last uri segment.
+//------------------------------------------------------------------------------
+TPtrC8 CNSmlDSSettingsAdapter::LastURISeg(const TDesC8& aURI)
+	{
+	TInt i;
+	for( i=aURI.Length() - 1; i >= 0; i-- )
+		{
+		if( aURI[i] == KNSmlDMUriSeparator )
+			{
+			break;
+			}
+		}
+	if( i == 0 )
+		{
+		return aURI;
+		}
+	else
+		{
+		return aURI.Mid( i + 1 );
+		}
+	}
+
+//------------------------------------------------------------------------------
+//  CNSmlDSSettingsAdapter::RemoveLastURISeg
+//  The function removes the last URI segment.
+//------------------------------------------------------------------------------
+TPtrC8 CNSmlDSSettingsAdapter::RemoveLastURISeg( const TDesC8& aURI )
+	{
+	TInt i;
+	for( i = aURI.Length() - 1; i >= 0; i-- )
+		{
+		if( aURI[i] == KNSmlDMUriSeparator )
+			{
+			break;
+			}
+		}
+	if( i == 0 )
+		{
+		return aURI;
+		}
+	else
+		{
+		return aURI.Left( i );
+		}
+	}
+
+//------------------------------------------------------------------------------
+//  CNSmlDSSettingsAdapter::ExecuteBufferL
+//  Executes commands which have not been executed.
+//------------------------------------------------------------------------------
+void CNSmlDSSettingsAdapter::ExecuteBufferL( const TDesC8& aURI )
+	{
+	TInt index = GetBufferIndex( aURI );
+	if( index < 0 )
+		{
+		return;
+		}
+	//
+	// Execute all commands for Profiles new ContentType
+	//
+    TBool rdburinotfound = ETrue;
+    TInt newcmd = 1;
+    
+    TNSmlDSBufferElement& bufElem = iBuffer->At(index); 
+    
+	for( TInt cmd = bufElem.iNodeBuf->Count() - 1; cmd >= 0; cmd-- )
+		{
+		TBuf8<16> addLUID;
+		
+		TNSmlDSAddElement& addElem = bufElem.iNodeBuf->At(cmd); 
+			
+		if( cmd == 0 )
+			{
+			if( bufElem.iLuid > 0 )
+			    {
+			    addLUID.Format( KFormat, -1 ); // Set status for addnode command
+			    }
+			else
+                {
+                addLUID.Format( KFormat, 0 );
+                }
+            iBufferExecution = ETrue;
+            AddNodeObjectL( addElem.iUri->Des(), 
+                            addLUID, addElem.iStatusRef );
+
+			bufElem.iExecuted = ETrue;
+            iBufferExecution = EFalse;
+            }
+		else 
+			{
+            //First RDBURI leaf must be stored
+            while( rdburinotfound && newcmd < iBuffer->At(index).iNodeBuf->Count() )
+    			{
+	    		if( bufElem.iNodeBuf->At(newcmd).iUri->Des().Find( KNSmlDdfRDBURI ) >= 0 )
+				    {
+                    SetRDBDataStore( bufElem.iNodeBuf->At(newcmd).iData->Des() );
+				    rdburinotfound = EFalse;
+				    break;
+				    }
+			    newcmd++;
+			    }//while
+			addLUID.Format( KFormat, bufElem.iLuid );
+			iBufferExecution = ETrue;
+            UpdateLeafObjectL( addElem.iUri->Des(),
+				addLUID,
+				addElem.iData->Des(),
+				KNullDesC8,
+				addElem.iStatusRef );
+            iBufferExecution = EFalse;
+			}
+
+		addElem.iDone = ETrue;
+
+		delete addElem.iUri;
+		addElem.iUri=NULL;
+		if( addElem.iData )
+			{
+			delete addElem.iData;
+			addElem.iData=NULL;
+			}
+		bufElem.iNodeBuf->Delete(cmd);
+		}
+//
+//	Remove data from handled ContentType-commands
+//
+	bufElem.iNodeBuf->Reset();
+	delete bufElem.iNodeBuf;
+
+	if( bufElem.iMappingName )
+		{
+		delete bufElem.iMappingName;
+		bufElem.iMappingName=NULL;
+		}
+
+	if( bufElem.iName )
+		{
+		delete bufElem.iName;
+		bufElem.iName=NULL;
+		}
+
+	iBuffer->Delete( index ); 
+	iBuffer->Compress();
+	}
+
+
+//------------------------------------------------------------------------------
+//  CNSmlDSSettingsAdapter::GetProfileIdFromURIL
+//	The function gets the Profile Id for given aURI.
+//------------------------------------------------------------------------------
+TInt CNSmlDSSettingsAdapter::GetProfileIdFromURIL( const TDesC8& aURI )
+	{
+	HBufC8* apURI = HBufC8::NewLC( aURI.Size() );
+//
+//  Second slash after SyncML/DSAcc/XXXX/
+//
+	TInt i = 0;
+	
+	for( i = aURI.Find( KDSAcc1 ) + 13; i < aURI.Length(); i++ )
+		{
+		if( aURI[i] == KNSmlDMUriSeparator )
+			{
+			break;
+			}
+		}
+	if( i > 0 )
+		{
+		apURI->Des().Format( aURI.Left(i) );
+		}
+//
+//	Same profile as previous
+//
+	if( iPrevURI->Match( *apURI ) != KErrNotFound )
+		{
+		CleanupStack::PopAndDestroy(); // apURI
+		return iPrevLUID;
+		}
+//
+//	Fetch Profile-id for URI
+//
+
+    HBufC8* apLUID = iCallBack->GetLuidAllocL( *apURI );
+	CleanupStack::PushL( apLUID );
+    if( apLUID->Length() == 0 )
+        {
+        CleanupStack::PopAndDestroy( 2 );//apURI, apLUID
+        return KErrGeneral;
+        }
+	TInt resLUID = GetIntObject( *apLUID );
+	iPrevURI->Des().Format( *apURI );
+	iPrevLUID = resLUID;
+	CleanupStack::PopAndDestroy(2); //apURI,apLUID
+
+	return resLUID;
+	}
+
+//------------------------------------------------------------------------------
+//  CNSmlDSSettingsAdapter::GetContentTypeL
+//  Get CTType (MimeType) for given adapter.
+//------------------------------------------------------------------------------
+TInt CNSmlDSSettingsAdapter::GetContentTypeL( const TInt aDataProviderId, 
+                                              const TInt aProfileLUID, 
+                                              CBufBase*& aObject )
+	{
+    _DBG_FILE("CNSmlDSSettingsAdapter::GetContentTypeL(): begin");
+    TInt retVal = OpenSyncSessionAndDSProfileL( aProfileLUID, ESmlOpenRead );
+    if( retVal != KErrNone )
+		{
+        CloseDSProfile();
+		return retVal;
+		}
+
+    RArray<TSmlDataProviderId> dataProviderIdArray;
+    CleanupClosePushL( dataProviderIdArray );
+    iSyncSession.ListDataProvidersL( dataProviderIdArray );
+    
+    TInt dpIndex = dataProviderIdArray.Find( aDataProviderId );
+    if( dpIndex == KErrNotFound )
+        {
+        CloseDSProfile();
+        CleanupStack::PopAndDestroy( 1 ); // dataProviderIdArray
+        return KErrNotFound;
+        }
+    RSyncMLDataProvider dataProvider;
+    CleanupClosePushL( dataProvider );
+    dataProvider.OpenL( iSyncSession, dataProviderIdArray[dpIndex] );
+    for( TInt i = 0; i < dataProvider.MimeTypeCount(); i++ )
+        {
+        //first mime type will be returned now
+        HBufC* mimeType = dataProvider.MimeType(i).AllocLC();
+        aObject->InsertL( aObject->Size(), ConvertTo8LC( *mimeType ) );  
+        CleanupStack::PopAndDestroy( 2 ); //mimeType, ConvertTo8LC
+        break;
+        }
+    CleanupStack::PopAndDestroy( 2 ); // dataProviderIdArray, dataProvider
+    CloseDSProfile();
+    _DBG_FILE("CNSmlDSSettingsAdapter::GetContentTypeL(): end");
+    return KErrNone;
+	}
+
+//------------------------------------------------------------------------------
+//  CNSmlDSSettingsAdapter::GetBufferIndex
+//  The function resolves buffer index for given URI.
+//------------------------------------------------------------------------------
+TInt CNSmlDSSettingsAdapter::GetBufferIndex( const TDesC8& aURI )
+	{
+	TInt index = -1;
+	for( TInt i = 0; i<iBuffer->Count(); i++ )
+		{
+		TPtrC8 parentUri = RemoveLastURISeg( aURI );
+		if( iBuffer->At(i).iMappingName->Compare( parentUri ) == 0 )
+			{
+			index = i;
+			break;
+			}
+		}
+	return index;
+	}
+
+//------------------------------------------------------------------------------
+//  CNSmlDSSettingsAdapter::SetBufferLUID
+//  The function sets the LUID to buffer for given URI.
+//------------------------------------------------------------------------------
+TInt CNSmlDSSettingsAdapter::SetBufferLUID( const TDesC8& aURI, const TInt aLUID )
+	{
+	TInt index = GetBufferIndex( aURI );
+	if( index < 0 )
+		{
+		return 0;
+		}
+	iBuffer->At(index).iLuid = aLUID;
+	return 1;
+	}
+
+//------------------------------------------------------------------------------
+//  CNSmlDSSettingsAdapter::ParseUri
+//  Resolves portnbr (separated with ':') as integer from URI.
+//------------------------------------------------------------------------------
+TInt CNSmlDSSettingsAdapter::ParseUri( const TDesC8& aRealURI, TInt& aPort )
+	{
+    TInt offset=0;
+    //http:
+	if( aRealURI.Find( KNSmlDSSettingsHTTP )==0 )//http:
+		{
+		offset = KNSmlDSSettingsHTTP().Length();
+		}
+	else if( aRealURI.Find( KNSmlDSSettingsHTTPS )==0 )//https:
+		{
+		offset = KNSmlDSSettingsHTTPS().Length();
+		}
+
+	TBool portFound=EFalse;
+	TBool portExtracted = EFalse;
+    ////123.234.345.456:80/syncml
+	for( TInt i = offset; i < aRealURI.Length() && !portExtracted; i++ )
+		{
+		if( aRealURI[i] == KNSmlDMColon )// ':'
+			{
+			portFound = ETrue;
+			offset=i;
+			}
+		if( portFound && aRealURI[i] == KNSmlDMUriSeparator )// '/'
+			{
+			aPort = GetIntObject( aRealURI.Mid( (offset + 1), (i - offset-1) ) );
+			portExtracted = ETrue;
+			}
+		else if ( portFound && i == aRealURI.Length() - 1 ) // last char
+		    {
+		    // port is from offset to the end
+		    aPort = GetIntObject( aRealURI.Right( aRealURI.Length() - offset - 1 ) );
+			portExtracted = ETrue;
+		    }
+		}
+	
+	if( aPort != 0 )
+		{
+		return KErrNone;
+		}
+	else
+		{
+		return KErrNotFound;
+		}
+	}
+
+//------------------------------------------------------------------------------
+//  CNSmlDSSettingsAdapter::FindProfileIdL
+//  The function checkd if profile can be found.
+//------------------------------------------------------------------------------
+TBool CNSmlDSSettingsAdapter::FindProfileIdL( const TInt aIntLUID )
+	{
+	if( iSyncSessionOpen == EFalse )
+	    {
+        iSyncSession.OpenL();
+        iSyncSessionOpen = ETrue;
+	    }
+    RArray <TSmlProfileId> profileList;
+    CleanupClosePushL( profileList );
+	TSmlUsageType usageType = ESmlDataSync;		
+	iSyncSession.ListProfilesL( profileList, usageType );
+	if( profileList.Count() == 0 )
+	    {
+        CleanupStack::PopAndDestroy(); //profileList
+        return EFalse;
+	    }
+    TInt item = profileList.Find( aIntLUID );
+    CleanupStack::PopAndDestroy(); //profileList
+    if( item != KErrNotFound )
+		{
+		return ETrue;
+		}
+	return EFalse;
+	}
+
+//------------------------------------------------------------------------------
+//  CNSmlDSSettingsAdapter::GetProfileIdentifierL
+//  The function gets profile Id from Client API.
+//------------------------------------------------------------------------------
+TInt CNSmlDSSettingsAdapter::GetProfileIdentifierL( const TInt aIntLUID, 
+                                                    TInt& aProfileID )
+	{
+	TInt retVal = OpenSyncSessionAndDSProfileL( aIntLUID, ESmlOpenRead );
+    if( retVal != KErrNone )
+		{
+        CloseDSProfile();
+		return retVal;	
+		}
+	aProfileID = iDSProfile.Identifier();
+	CloseDSProfile();
+    return retVal;
+	}
+//------------------------------------------------------------------------------
+//  CNSmlDSSettingsAdapter::GetDSFieldDataL
+//  The function checks what leaf to be handled and fetches the data for a leaf.
+//------------------------------------------------------------------------------
+TInt CNSmlDSSettingsAdapter::GetDSFieldDataL( const TInt aIntLUID, 
+                                                CBufBase*& aObject )
+	{
+	_DBG_FILE("CNSmlDSSettingsAdapter::GetDSFieldData(): begin");
+    
+	if ( iField->Compare( KNSmlDdfAddrType ) == 0 )
+		{
+        TSmlTransportId connType = -1;
+		connType = GetProfileConnectiontypeL( aIntLUID );
+        if ( connType <= 0 )
+			{
+            return KErrNotFound;
+			}
+		aObject->InsertL( aObject->Size(), SetIntObjectLC( connType ) );
+		CleanupStack::PopAndDestroy();//SetIntObjectLC
+        return KErrNone;
+		}
+	else if ( iField->Compare( KNSmlDdfAddr ) == 0 ) //Server URL
+		{
+		TInt retValue1 = GetProfileServerURLL( aIntLUID, aObject );
+		TInt port(0);
+		if(ParseUri(aObject->Ptr(0),port)==KErrNone)
+		    {
+		    HBufC8* addr = aObject->Ptr(0).AllocLC();
+		    aObject->Reset();
+		    TInt portStart = addr->LocateReverse(KNSmlDMColon);		    
+		    aObject->InsertL(aObject->Size(),addr->Left(portStart));
+		    
+		    TInt portLen=addr->Mid(portStart).Locate(KNSmlDMUriSeparator);
+		    if(portLen!=KErrNotFound)
+		        {
+		        aObject->InsertL(aObject->Size(),addr->Mid(portStart+portLen));
+		        }
+		    	    			    
+		    CleanupStack::PopAndDestroy(); //addr
+		    }
+
+        if( retValue1 != KErrNone )
+		    {
+		    return KErrNotFound;
+		    }
+		return KErrNone;
+		}
+	else if ( iField->Compare( KNSmlDdfPortNbr ) == 0 )
+		{
+		TInt retValue2 = GetProfileServerURLL( aIntLUID, aObject );
+        if( retValue2 != KErrNone )
+		    {
+		    return KErrNotFound;
+            }
+        if ( aObject->Size() == 0 )
+            {
+            return KErrNone;
+            }
+        TInt bSize = aObject->Size();
+        HBufC8* buf = HBufC8::NewLC( bSize );
+		TPtr8 bufPtr = buf->Des();
+		aObject->Read( 0, bufPtr, aObject->Size() );
+		aObject->Reset();
+		
+        TInt pnum = 0;
+		//find out the port number
+        ParseUri( *buf, pnum );
+        if(pnum)
+            {
+    		aObject->InsertL( aObject->Size(), SetIntObjectLC( pnum ) );
+            CleanupStack::PopAndDestroy(  ); //SetIntObjectLC( pnum )
+            }
+        CleanupStack::PopAndDestroy(  ); //buf
+        return KErrNone;
+		}
+	else if ( iField->Compare( KNSmlDdfClientUserName ) == 0 )
+		{
+		if( GetProfileUserNameL( aIntLUID, aObject ) != KErrNone )
+            {
+            return KErrGeneral;
+            }
+		return KErrNone;
+		}
+	else if ( iField->Compare( KNSmlDdfServerId ) == 0 )
+		{
+		if( GetProfileServerIdL( aIntLUID, aObject ) != KErrNone )
+            {
+            return KErrGeneral;
+            }
+		return KErrNone;
+		}
+	else if ( iField->Compare( KNSmlDdfClientPW ) == 0 ) //Not allowed
+		{
+		return KErrGeneral;
+        }
+	else if ( iField->Compare( KNSmlDdfName ) == 0 )
+		{
+		TInt retValue = GetProfileDisplayNameL( aIntLUID, aObject );
+		if( retValue != KErrNone )
+		    {
+            return KErrGeneral;
+		    }
+		return KErrNone;
+		}
+	else if ( iField->Compare( KNSmlDdfToNAPID ) == 0 )
+		{
+		TInt retToNaPID = GetToNAPIDL( aIntLUID, *aObject );
+		if ( retToNaPID == KErrNone || retToNaPID == KErrNotFound )
+			{
+			return retToNaPID;
+			}
+		return KErrGeneral;			
+		}
+	else if ( iField->Compare( KNSmlDdfHidden ) == 0 )
+		{
+		//Hidden profile not supported
+		return KErrGeneral;
+		}
+    _DBG_FILE("CNSmlDSSettingsAdapter::GetDSFieldData(): end");
+    return KErrGeneral;
+	}
+
+//------------------------------------------------------------------------------
+//  CNSmlDSSettingsAdapter::GetProfileConnectiontypeL()
+//  The function what medium type is supported and returns it.
+//------------------------------------------------------------------------------
+TInt CNSmlDSSettingsAdapter::GetProfileConnectiontypeL( const TInt aIntLUID )
+	{
+	TInt retVal = OpenSyncSessionAndDSProfileL( aIntLUID, ESmlOpenRead );
+    if( retVal != KErrNone )
+		{
+        CloseDSProfile();
+		return retVal;	
+		}
+	RArray<TSmlTransportId> transportIdArray;
+    CleanupClosePushL( transportIdArray );
+	iDSProfile.ListConnectionsL( transportIdArray );
+	TInt transportItems = transportIdArray.Count();
+    if( transportItems == 0 )
+		{
+		//No matching items
+        CleanupStack::PopAndDestroy(); //transportIdArray	
+		CloseDSProfile();
+		return KErrGeneral;
+		}
+	else if( transportItems > 1 )
+		{
+		//Error case : against specification
+        CleanupStack::PopAndDestroy(); //transportIdArray	
+		CloseDSProfile();
+		return KErrGeneral;
+		}
+	
+    TInt mediumType = ENone;	
+    if ( transportIdArray[0] == KUidNSmlMediumTypeInternet.iUid )
+        {
+        mediumType = EHttp;
+        }
+    else if ( transportIdArray[0] == KUidNSmlMediumTypeBluetooth.iUid ||
+              transportIdArray[0] == KUidNSmlMediumTypeUSB.iUid ||   
+              transportIdArray[0] == KUidNSmlMediumTypeIrDA.iUid  )
+        {
+        mediumType = EObex;
+        }
+    
+    CleanupStack::PopAndDestroy(); //transportIdArray
+	CloseDSProfile();
+	return mediumType;
+	}
+
+//------------------------------------------------------------------------------
+//  CNSmlDSSettingsAdapter::GetProfileServerURLL
+//  The function gets the profile Addr leaf value.
+//------------------------------------------------------------------------------
+TInt CNSmlDSSettingsAdapter::GetProfileServerURLL( const TInt aIntLUID, 
+                                                    CBufBase*& aURL )
+	{
+	TInt retVal = OpenSyncSessionAndDSProfileL( aIntLUID, ESmlOpenRead );
+    if( retVal != KErrNone )
+		{
+        CloseDSProfile();
+		return retVal;	
+		}
+	RArray<TSmlTransportId> transportIdArray;
+    CleanupClosePushL( transportIdArray );
+	iDSProfile.ListConnectionsL( transportIdArray );
+    if( transportIdArray.Count() > 0 )
+        {
+        RSyncMLConnection profConn;
+        CleanupClosePushL( profConn );
+	    profConn.OpenL( iDSProfile, transportIdArray[0] );
+
+	    HBufC8* sURI = profConn.ServerURI().AllocL();
+        CleanupStack::PushL( sURI );
+        TPtr8 uriPtr = sURI->Des();
+        if( uriPtr.Length() > 0 )
+            {
+            aURL->InsertL( aURL->Size(),uriPtr );
+            }
+        else
+            {
+            aURL->InsertL( aURL->Size(), KNullDesC8 );
+            }
+        CleanupStack::PopAndDestroy( 2 );//profConn, sURI
+        retVal = KErrNone;
+        }
+    else
+        {
+        retVal = KErrNotFound;
+        }
+    CleanupStack::PopAndDestroy(); //transportIdArray
+    CloseDSProfile();
+    return retVal;
+	}
+//------------------------------------------------------------------------------
+//  CNSmlDSSettingsAdapter::GetProfileUserNameL
+//  The function gets the ClientUserName leaf value.
+//------------------------------------------------------------------------------
+TInt CNSmlDSSettingsAdapter::GetProfileUserNameL( const TInt aIntLUID, 
+                                                    CBufBase*& aUserName )
+	{
+	TInt retVal = OpenSyncSessionAndDSProfileL( aIntLUID, ESmlOpenRead );
+    if( retVal != KErrNone )
+		{
+        CloseDSProfile();
+		return retVal;	
+		}
+	HBufC8* userName = iDSProfile.UserName().AllocL();
+    CleanupStack::PushL( userName );
+    TPtr8 ptrUserName = userName->Des();
+    CloseDSProfile();
+    aUserName->InsertL( aUserName->Size(), ptrUserName );
+    CleanupStack::PopAndDestroy(); //userName
+    return KErrNone;
+	}
+	
+//------------------------------------------------------------------------------
+//  CNSmlDSSettingsAdapter::GetProfileServerIdL
+//  The function gets the ClientUserName leaf value.
+//------------------------------------------------------------------------------
+TInt CNSmlDSSettingsAdapter::GetProfileServerIdL( const TInt aIntLUID, 
+                                                    CBufBase*& aUserName )
+	{
+	TInt retVal = OpenSyncSessionAndDSProfileL( aIntLUID, ESmlOpenRead );
+    if( retVal != KErrNone )
+		{
+        CloseDSProfile();
+		return retVal;	
+		}
+    aUserName->InsertL( aUserName->Size(), iDSProfile.ServerId() );
+    CloseDSProfile();
+    return KErrNone;
+	}
+	
+//------------------------------------------------------------------------------
+//  CNSmlDSSettingsAdapter::GetProfileIAPIdL
+//  The function gets the IAP id value from Client API.
+//------------------------------------------------------------------------------
+TInt CNSmlDSSettingsAdapter::GetProfileIAPIdL( const TInt aIntLUID, TInt& aIAPid )
+	{
+    aIAPid = -1;
+    TInt retVal = OpenSyncSessionAndDSProfileL( aIntLUID, ESmlOpenRead );
+    if( retVal != KErrNone )
+		{
+		CloseDSProfile();
+        return retVal;	
+		}
+    RArray<TSmlTransportId> connIdArray;
+    CleanupClosePushL( connIdArray );
+    iDSProfile.ListConnectionsL( connIdArray );
+    if( connIdArray.Count() == 1 )
+        {
+        RSyncMLTransport transport;
+        CleanupClosePushL( transport );
+	    transport.OpenL( iSyncSession, connIdArray[0] );
+	    const CSyncMLTransportPropertiesArray& props = transport.Properties();
+	    TInt index = props.Find( KNSmlIAPId );
+        if( index > 0 )
+            {
+            RSyncMLConnection conn;
+            CleanupClosePushL( conn );
+	        conn.OpenL( iDSProfile, connIdArray[0] );
+            HBufC8* iapId = conn.GetPropertyL( KNSmlIAPId ).AllocLC();
+            aIAPid = GetIntObject( *iapId );
+            CleanupStack::PopAndDestroy( 2 ); //conn, iapId
+            retVal = KErrNone;
+            }
+        else
+            {
+            retVal = KErrNotFound;
+            }
+        CleanupStack::PopAndDestroy(); //transport
+        CloseDSProfile();
+        }
+    else
+        {
+        retVal = KErrNotFound;
+        }
+    CleanupStack::PopAndDestroy(); //connIdArray
+    return retVal;
+    }
+
+//------------------------------------------------------------------------------
+//  CNSmlDSSettingsAdapter::GetProfileDisplayNameL
+//  The function gets the Name leaf value for a profile.
+//------------------------------------------------------------------------------
+TInt CNSmlDSSettingsAdapter::GetProfileDisplayNameL( const TInt aIntLUID, 
+                                                        CBufBase*& aDisplayName )
+	{
+	TInt retVal = OpenSyncSessionAndDSProfileL( aIntLUID, ESmlOpenRead );
+    if(retVal != KErrNone)
+		{
+		CloseDSProfile();
+        return retVal;	
+		}
+	HBufC* dataBuf = iDSProfile.DisplayName().AllocL();
+    CleanupStack::PushL( dataBuf );
+    TPtr16 ptrDisplayName = dataBuf->Des();
+    aDisplayName->InsertL( aDisplayName->Size(), ConvertTo8LC( ptrDisplayName ) );
+    CleanupStack::PopAndDestroy( 2 );//dataBuf, ConvertTo8LC
+    CloseDSProfile();
+    return KErrNone;
+	}
+
+//------------------------------------------------------------------------------
+//  CNSmlDSSettingsAdapter::CreateNewProfileL
+//  The function creates new profile through Client API.
+//------------------------------------------------------------------------------
+TInt CNSmlDSSettingsAdapter::CreateNewProfileL( TInt& aPID )
+	{
+    if( iSyncSessionOpen == EFalse )
+	    {
+        iSyncSession.OpenL();
+        iSyncSessionOpen = ETrue;
+	    }
+    TRAPD( trapValue1, iDSProfile.CreateL( iSyncSession ) );
+    if( trapValue1 != KErrNone )
+        {
+        return trapValue1;
+        }
+    //iDSProfile.SetProtocolVersionL(ESmlVersion1_1_2);
+    TRAPD( trapValue2, iDSProfile.UpdateL() );
+    if( trapValue2 != KErrNone )
+        {
+        return trapValue2;
+        }
+    aPID = iDSProfile.Identifier();
+   	
+
+    CloseDSProfile();
+    return KErrNone;
+    }
+
+//------------------------------------------------------------------------------
+//  CNSmlDSSettingsAdapter::SetProfileServerURIL
+//  The function sets the Addr leaf value.
+//------------------------------------------------------------------------------
+TInt CNSmlDSSettingsAdapter::SetProfileServerURIL( const TInt aPID, 
+                                                    const TDesC8& aObj )
+	{
+	TInt retVal = OpenSyncSessionAndDSProfileL( aPID, ESmlOpenReadWrite );
+    if(retVal != KErrNone)
+		{
+		CloseDSProfile();
+        return retVal;	
+		}
+	RArray<TSmlTransportId> transportIdArray;
+    CleanupClosePushL( transportIdArray );
+	iDSProfile.ListConnectionsL( transportIdArray );
+	if( transportIdArray.Count() == 0 )
+	    {
+        CleanupStack::PopAndDestroy();//transportIdArray
+        CloseDSProfile();
+        return KErrGeneral;
+	    }
+	    
+	TInt newPort(0);
+	
+	RSyncMLConnection conn;
+    CleanupClosePushL( conn );
+    conn.OpenL( iDSProfile, transportIdArray[0] );
+    
+    if( transportIdArray[0] == KUidNSmlMediumTypeInternet.iUid )
+        {
+        if(ParseUri(aObj,newPort)==KErrNotFound)
+            {
+            TInt port(0);
+            ParseUri(conn.ServerURI(),port);
+            if(port==0)
+            	{
+            	// set default port
+            	if( aObj.Find( KNSmlDSSettingsHTTPS ) == 0 ) //https://
+            		{
+            		port = KNSmlDSSettingsHTTPSPort;
+            		}
+            	else //http://
+        	        {
+        	        port = KNSmlDSSettingsHTTPPort;
+        	        }
+            	}
+
+           	TBuf8<5> buf;
+        	buf.Num( port );
+            	
+            TInt totalSize = aObj.Length() + buf.Length() + 1;
+            HBufC8* newServerURI = HBufC8::NewLC( totalSize );
+            SetPortNrToAddrStr( aObj, newServerURI, buf );
+
+            conn.SetServerURIL( *newServerURI );
+        	conn.UpdateL();
+            CleanupStack::PopAndDestroy( newServerURI ); 
+            
+            }
+        else
+            {
+            conn.SetServerURIL( aObj );
+    	    conn.UpdateL();
+            }
+        }
+    else // medium type not internet, no port allowed
+        {
+        if(ParseUri(aObj,newPort)==KErrNotFound)
+            {
+            conn.SetServerURIL( aObj );
+    	    conn.UpdateL();
+            }
+        else
+            {
+            // remove port from uri
+            HBufC8* newServerURI = HBufC8::NewL( aObj.Length() );
+            CleanupStack::PushL( newServerURI );
+            TBuf8<5> buf;
+        	buf.Num( 0 );
+            // change iLeafType to EDSDelete -> deleting port
+            TNSmlDSLeafType	tmpType(iLeafType); // store current value
+            iLeafType = EDSDelete;
+            SetPortNrToAddrStr( aObj, newServerURI, buf );
+            iLeafType = tmpType; // restore original value
+            
+            conn.SetServerURIL( *newServerURI );
+            conn.UpdateL();
+            CleanupStack::PopAndDestroy( newServerURI );
+            }
+        }
+
+     
+    iDSProfile.UpdateL();
+    CleanupStack::PopAndDestroy( 2 ); //transportIdArray, conn
+	CloseDSProfile();
+	return retVal;
+	}
+
+//------------------------------------------------------------------------------
+//  CNSmlDSSettingsAdapter::SetProfileDisplayNameL
+//  The function sets the Name leaf value for a profile.
+//------------------------------------------------------------------------------
+TInt CNSmlDSSettingsAdapter::SetProfileDisplayNameL( const TInt aPID, 
+                                                        const TDesC8& aObj )
+	{
+	TInt retVal = OpenSyncSessionAndDSProfileL( aPID, ESmlOpenReadWrite );
+    if( retVal != KErrNone )
+		{
+		CloseDSProfile();
+        return retVal;
+		}
+	iDSProfile.SetDisplayNameL( ConvertTo16LC( aObj ) );
+	iDSProfile.UpdateL();
+    CleanupStack::PopAndDestroy();//ConvertTo16LC
+	CloseDSProfile();
+	return retVal;
+	}
+//------------------------------------------------------------------------------
+//  CNSmlDSSettingsAdapter::SetProfileUserNameL
+//  The function sets the ClientUserName leaf value for a profile.
+//------------------------------------------------------------------------------
+TInt CNSmlDSSettingsAdapter::SetProfileUserNameL( const TInt aPID,  
+                                                    const TDesC8& aObj )
+	{
+	TInt retVal = OpenSyncSessionAndDSProfileL( aPID, ESmlOpenReadWrite );
+    if( retVal != KErrNone )
+		{
+		CloseDSProfile();
+        return retVal;	
+		}
+	iDSProfile.SetUserNameL( aObj );
+	iDSProfile.UpdateL();
+	CloseDSProfile();
+	return retVal;
+	}
+//------------------------------------------------------------------------------
+//  CNSmlDSSettingsAdapter::SetProfileServerIdL
+//  The function sets the ClientUserName leaf value for a profile.
+//------------------------------------------------------------------------------
+TInt CNSmlDSSettingsAdapter::SetProfileServerIdL( const TInt aPID,  
+                                                    const TDesC8& aObj )
+	{
+	TInt retVal = OpenSyncSessionAndDSProfileL( aPID, ESmlOpenReadWrite );
+    if( retVal != KErrNone )
+		{
+		CloseDSProfile();
+        return retVal;	
+		}
+	iDSProfile.SetServerIdL( aObj );
+	if(aObj.Length())
+	    {
+    	iDSProfile.SetProtocolVersionL(ESmlVersion1_2);
+	    }
+	else
+	    {
+    	iDSProfile.SetProtocolVersionL(ESmlVersion1_1_2);	    
+	    }
+	iDSProfile.UpdateL();
+	CloseDSProfile();
+	return retVal;
+	}
+//------------------------------------------------------------------------------
+//  CNSmlDSSettingsAdapter::SetProfilePasswordL
+//  The function sets the ClientPW leaf value for a profile.
+//------------------------------------------------------------------------------
+TInt CNSmlDSSettingsAdapter::SetProfilePasswordL( const TInt aPID, 
+                                                    const TDesC8& aObj )
+	{
+	TInt retVal = OpenSyncSessionAndDSProfileL( aPID, ESmlOpenReadWrite );
+    if( retVal != KErrNone )
+		{
+		CloseDSProfile();
+        return retVal;	
+		}
+	iDSProfile.SetPasswordL( aObj );
+	iDSProfile.UpdateL();
+	CloseDSProfile();
+	return retVal;
+	}
+//------------------------------------------------------------------------------
+//  CNSmlDSSettingsAdapter::SetProfileStrValueL
+//  The function checks what leaf to be handles and calls the proper function to
+//  set leaf data.
+//------------------------------------------------------------------------------
+TInt CNSmlDSSettingsAdapter::SetProfileStrValueL( const TInt aPID, 
+                                                    const TDesC8& aObj, 
+                                                    const TInt aFieldID )
+	{
+	TInt ret = 0;
+	switch ( aFieldID )
+		{
+		case ( EProfileName ) :
+			{
+			ret = SetProfileDisplayNameL( aPID, aObj );
+			}
+		break;
+		
+		case ( EProfileSyncServerUsername ) :
+			{
+			ret = SetProfileUserNameL( aPID, aObj );
+			}
+		break;
+
+		case ( EProfileServerId ) :
+			{
+			ret = SetProfileServerIdL( aPID, aObj );
+			}
+		break;
+
+
+		case ( EProfileSyncServerPassword ) :
+			{
+			ret = SetProfilePasswordL( aPID, aObj );
+			}
+		break;
+        case ( EProfileIAPId ) :
+			{
+			ret = SetToNAPIDL( aPID, aObj );
+			}
+		break;
+		case ( EProfilePort ) :
+            {
+			delete iPortBuf;
+			iPortBuf = NULL;
+			
+            // check that port is a valid integer
+            TLex8 lex( aObj );
+            TInt port = KErrNotFound;
+            TInt err = lex.Val( port );
+            
+            if ( err != KErrNone || !lex.Eos() )
+                {
+                ret = KErrArgument;
+                }
+            else
+                {
+    			TInt portval = GetIntObject(aObj);
+			if(portval<0)
+			{
+				ret=KErrArgument;
+			}
+			else if(portval>65535)
+			{
+			    	ret=KErrOverflow;	
+			}
+			
+			else
+			{
+			// save information of the port
+    			iPortBuf = aObj.AllocL();
+    			iPortBufLUID = aPID;
+    			SetProfileConnectionPortNrL( iPortBufLUID, *iPortBuf );
+			}
+                }
+            }
+        break;
+        case ( EProfileURL ) :
+		case ( EHiddenProfile ) :
+		case ( EProfileMediumType ) :
+		default:
+			{
+			User::Panic( KNSmlIndexOutOfBoundStr, KNSmlPanicIndexOutOfBound );
+			}
+		}
+	return ret;
+	}
+//------------------------------------------------------------------------------
+//  CNSmlDSSettingsAdapter::DeleteProfileL
+//  The function deletes profile data content.
+//------------------------------------------------------------------------------
+TInt CNSmlDSSettingsAdapter::DeleteProfileL( const TInt aPID )
+	{
+	TInt retVal = OpenSyncSessionAndDSProfileL( aPID, ESmlOpenReadWrite );
+    if( retVal != KErrNone )
+		{
+		CloseDSProfile();
+        return KErrGeneral;	
+		}
+    RArray<TSmlTaskId> taskIdArray;
+    CleanupClosePushL( taskIdArray );
+    iDSProfile.ListTasksL( taskIdArray );
+    if( taskIdArray.Count() > 0 )
+        {
+        for ( TInt i = 0; i < taskIdArray.Count(); i++ )
+            {
+            iDSProfile.DeleteTaskL( taskIdArray[i] );
+            iDSProfile.UpdateL();
+            }
+        }
+    CloseDSProfile();
+    RArray<TSmlProfileId> profileIdArray;
+    CleanupClosePushL( profileIdArray );
+    TSmlUsageType usageType = ESmlDataSync;
+    iSyncSession.ListProfilesL( profileIdArray, usageType );
+    TInt index = profileIdArray.Find( aPID );
+    iSyncSession.DeleteProfileL( profileIdArray[index] );
+    CleanupStack::PopAndDestroy( 2 ); //profileIdArray, taskIdArray
+    iSyncSession.Close();
+    iSyncSessionOpen = EFalse;
+    return KErrNone;
+	}
+
+//------------------------------------------------------------------------------
+//  CNSmlDSSettingsAdapter::CreateURITaskSegmentListL
+//  The function creates list of the content types that profile supports.
+//------------------------------------------------------------------------------
+TInt CNSmlDSSettingsAdapter::CreateURITaskSegmentListL( const TDesC8& aURI, 
+                                                        const TInt aPID, 
+                                                        CBufBase*& aCurrentURISegmentList, 
+                                                        const CArrayFix<TSmlDmMappingInfo>& aPreviousURISegmentList )
+	{
+	TInt retVal = OpenSyncSessionAndDSProfileL( aPID, ESmlOpenRead );
+    if( retVal != KErrNone )
+		{
+		CloseDSProfile();
+        return KErrGeneral;	
+		}
+    RArray<TSmlTaskId> taskIdArray;
+    CleanupClosePushL( taskIdArray );
+    iDSProfile.ListTasksL( taskIdArray );
+	if( taskIdArray.Count() == 0 )
+		{
+		CloseDSProfile();
+		CleanupStack::PopAndDestroy();//taskIdArray
+    	return KErrNotFound;
+		}
+	
+	RSyncMLTask task;
+    CleanupClosePushL( task );
+            
+    for ( TInt i = 0; i < taskIdArray.Count(); i++ )
+		{			
+		//	
+		//	Check if ContentType -> Task ID on list
+		//
+		TBool notInList( ETrue );
+		TInt newline( 0 );
+		TInt ddId( 0 );
+		task.OpenL( iDSProfile, taskIdArray[i] );
+        ddId = task.DataProvider();
+        task.Close();
+		while( notInList && newline <aPreviousURISegmentList.Count() )
+			{
+			TInt ppId = GetIntObject( aPreviousURISegmentList.At(newline).iURISegLUID );
+			if( ppId == ddId )
+				{
+				notInList = EFalse;
+				break;
+				}
+			newline++;
+			}//while
+
+		if( notInList )
+			{
+			TBuf8<9> addNAME( Kprev );
+			//Get Task ID
+			addNAME.AppendNumFixedWidth( taskIdArray[i], EDecimal,3 ); 
+			aCurrentURISegmentList->InsertL( aCurrentURISegmentList->Size(), addNAME );
+			aCurrentURISegmentList->InsertL( aCurrentURISegmentList->Size(), KNSmlDSSlash );
+	
+			TBuf8<80> addURI;
+			
+			addURI.Append( aURI );
+			addURI.Append( Kprev2 );
+			addURI.AppendNumFixedWidth( taskIdArray[i], EDecimal, 3 ); 
+
+			TBuf8<16> addLUID;
+			addLUID.Num( ddId );
+				
+			iCallBack->SetMappingL( addURI, addLUID );
+			}
+		else //not a new object
+			{
+			aCurrentURISegmentList->InsertL( aCurrentURISegmentList->Size(), 
+                                            aPreviousURISegmentList.At(newline).iURISeg );
+
+			aCurrentURISegmentList->InsertL( aCurrentURISegmentList->Size(), KNSmlDSSlash );
+
+//			DBG_ARGS8(_S8("InList: Id = %d Name %S"), newline, 
+//                            aPreviousURISegmentList.At(newline).iURISeg);
+			}
+		} //For
+	CloseDSProfile();
+	CleanupStack::PopAndDestroy(2);// task, taskIdArray
+	return KErrNone;
+	}
+//------------------------------------------------------------------------------
+//  CNSmlDSSettingsAdapter::CreateURIProfileSegmentListL
+//  The function creates list of the profiles.
+//------------------------------------------------------------------------------
+TInt CNSmlDSSettingsAdapter::CreateURIProfileSegmentListL( CBufBase*& aCurrentURISegmentList, 
+                                                            const CArrayFix<TSmlDmMappingInfo>& aPreviousURISegmentList )
+	{
+	if( iSyncSessionOpen == EFalse )
+	    {
+        iSyncSession.OpenL();
+        iSyncSessionOpen = ETrue;
+	    }
+    RArray<TSmlProfileId> profileIdArray;
+    CleanupClosePushL( profileIdArray );
+	TSmlUsageType usageType = ESmlDataSync;
+	iSyncSession.ListProfilesL( profileIdArray, usageType );
+		
+    if(profileIdArray.Count() == 0)
+		{
+        CleanupStack::PopAndDestroy();//profileIdArray
+		return KErrNotFound;
+		}
+		
+	for(TInt p = 0; p < profileIdArray.Count(); p++ )
+		{
+		TBool notInList = ETrue;
+		TInt newline = 0;
+		while( notInList && newline < aPreviousURISegmentList.Count() )
+			{
+				TInt ddId = profileIdArray[p];
+				TInt ppId = GetIntObject( aPreviousURISegmentList.At(newline).iURISegLUID );
+				if( ppId == ddId ) 
+					{
+					notInList = EFalse;
+					break;
+					}
+				newline++;
+			}
+
+		if( notInList )
+			{ // Those which not have mapping data
+			
+			TBuf8<9> addNAME( KDSprev );
+			addNAME.AppendNumFixedWidth( profileIdArray[p], EDecimal, 3 ); 
+
+			aCurrentURISegmentList->InsertL( aCurrentURISegmentList->Size(), addNAME );
+			aCurrentURISegmentList->InsertL( aCurrentURISegmentList->Size(), KNSmlDSSlash );
+            
+			// KNSmlDSStart includes start text for URISeg
+			TBuf8<20> addURI; // SyncML/DSAcc/DSIdnnn , nnn = profileid
+			addURI.Append( KNSmlDSStart );
+			addURI.AppendNumFixedWidth( profileIdArray[p], EDecimal, 3 ); 
+			
+			TBuf8<16> addLUID;
+			addLUID.Num( profileIdArray[p] );
+			
+			iCallBack->SetMappingL( addURI,addLUID );
+            }
+		else
+			{ // Add those in PreviousList which are on database
+			aCurrentURISegmentList->InsertL( aCurrentURISegmentList->Size(), 
+                                            aPreviousURISegmentList.At(newline).iURISeg );
+
+			aCurrentURISegmentList->InsertL( aCurrentURISegmentList->Size(), KNSmlDSSlash );
+//			DBG_ARGS8(_S8("InList: Id = %d Name %S"), newline, 
+//                           aPreviousURISegmentList.At(newline).iURISeg);
+			}
+		}
+    CleanupStack::PopAndDestroy();//profileIdArray
+	return KErrNone;
+	}
+
+//------------------------------------------------------------------------------
+//  CNSmlDSSettingsAdapter::OpenSyncSessionAndDSProfileL
+//  The function opens the server session and DS profile.
+//------------------------------------------------------------------------------
+TInt CNSmlDSSettingsAdapter::OpenSyncSessionAndDSProfileL( const TInt aIntLUID, 
+                                                            TSmlOpenMode aMode )
+    {
+    if( iSyncSessionOpen == EFalse )
+        {
+        iSyncSession.OpenL();
+        iSyncSessionOpen = ETrue;
+        }
+    RArray<TSmlProfileId> profileIdArray;
+    CleanupClosePushL( profileIdArray );
+    TSmlUsageType usageType = ESmlDataSync;
+    iSyncSession.ListProfilesL( profileIdArray, usageType );
+    TInt index = profileIdArray.Find( aIntLUID );
+    CleanupStack::PopAndDestroy(); //profileIdArray
+    if( index == KErrNotFound )
+        {
+        return KErrNotFound;
+        }
+    TRAPD( rValue, iDSProfile.OpenL( iSyncSession, aIntLUID, aMode ) );
+    if( rValue != KErrNone )
+        {
+        iDSProfile.Close();
+		iSyncSession.Close();
+        iSyncSessionOpen = EFalse;
+        }
+    return rValue;
+    }
+//------------------------------------------------------------------------------
+//  CNSmlDSSettingsAdapter::CloseDSProfile
+//  The function closes the DS profile connection.
+//------------------------------------------------------------------------------
+void CNSmlDSSettingsAdapter::CloseDSProfile()
+    {
+    iDSProfile.Close();
+    }
+
+//------------------------------------------------------------------------------
+//  CNSmlDSSettingsAdapter::FindTaskIDL
+//  The function searches if task can be found from the profile task list.
+//------------------------------------------------------------------------------
+TBool CNSmlDSSettingsAdapter::FindTaskIDL( const TInt aProfLUID, const TInt aDataProviderId )
+    {
+    TInt retVal = OpenSyncSessionAndDSProfileL( aProfLUID, ESmlOpenRead );
+    if( retVal != KErrNone )
+		{
+		CloseDSProfile();
+        return EFalse;	
+		}
+    RArray<TSmlTaskId> taskIdArray;
+    CleanupClosePushL( taskIdArray );//taskIdArray
+    iDSProfile.ListTasksL( taskIdArray );
+    
+    RSyncMLTask task;
+    CleanupClosePushL( task );
+    // find task
+    for (TInt i=0; i<taskIdArray.Count(); i++)
+        {
+        task.OpenL( iDSProfile, taskIdArray[i] );
+        if (task.DataProvider() == aDataProviderId)
+            {
+            CleanupStack::PopAndDestroy(2); //taskIdArray, task
+            CloseDSProfile();
+            return ETrue;
+            }
+        task.Close();
+        }
+    // task not found
+    CleanupStack::PopAndDestroy(2); //taskIdArray, task
+    CloseDSProfile();
+    return EFalse;
+    }
+//------------------------------------------------------------------------------
+//  CNSmlDSSettingsAdapter::DeleteTaskByIDL
+//  The function deletes the task by given id.
+//------------------------------------------------------------------------------
+TInt CNSmlDSSettingsAdapter::DeleteTaskByIDL( const TInt aLUID, const TInt aDataProviderId )
+    {
+    TInt retVal = OpenSyncSessionAndDSProfileL( aLUID, ESmlOpenReadWrite );
+    if( retVal != KErrNone )
+		{
+		CloseDSProfile();
+        return retVal;	
+		}
+    RArray<TSmlTaskId> taskIdArray;
+    CleanupClosePushL( taskIdArray );
+    iDSProfile.ListTasksL( taskIdArray );
+    
+    RSyncMLTask task;
+    CleanupClosePushL( task );
+    // find task
+    for (TInt i=0; i<taskIdArray.Count(); i++)
+        {
+        task.OpenL( iDSProfile, taskIdArray[i] );
+        if (task.DataProvider() == aDataProviderId)
+            {
+            task.Close();
+            CleanupStack::PopAndDestroy(); // task
+            iDSProfile.DeleteTaskL( taskIdArray[i] );
+            iDSProfile.UpdateL();
+            CleanupStack::PopAndDestroy(); //taskIdArray
+            CloseDSProfile();
+            return KErrNone;
+            }
+        task.Close();
+        }
+    // task not found
+    CleanupStack::PopAndDestroy(2); //taskIdArray, task
+    CloseDSProfile();
+    return KErrNotFound;
+    }
+//------------------------------------------------------------------------------
+//  CNSmlDSSettingsAdapter::GetClientDataSourceL
+//  The function gets the local data store (LDBURI).
+//------------------------------------------------------------------------------
+TInt CNSmlDSSettingsAdapter::GetClientDataSourceL( const TInt aDataProviderId, 
+                                                    const TInt aProfileLUID, 
+                                                    CBufBase*& aObject )
+    {
+    TInt retVal = OpenSyncSessionAndDSProfileL( aProfileLUID, ESmlOpenRead );
+    if( retVal != KErrNone )
+		{
+		CloseDSProfile();
+        return retVal;	
+		}
+    RArray<TSmlTaskId> taskArray;
+    CleanupClosePushL( taskArray );
+    iDSProfile.ListTasksL( taskArray );
+    
+    RSyncMLTask task;
+    CleanupClosePushL( task );
+    // find task
+    for (TInt i=0; i<taskArray.Count(); i++)
+        {
+        task.OpenL( iDSProfile, taskArray[i] );
+        if (task.DataProvider() == aDataProviderId)
+            {
+            HBufC* localDataStore = task.ClientDataSource().AllocLC();
+            aObject->InsertL( aObject->Size(), ConvertTo8LC( *localDataStore ) );
+            CloseDSProfile();
+            CleanupStack::PopAndDestroy(4); //taskIdArray, task, localDataStore, ConvertTo8LC
+            
+            return KErrNone;
+            }
+        task.Close();
+        }
+    // task not found
+    CleanupStack::PopAndDestroy(2); //taskArray, task
+    CloseDSProfile();
+    return KErrNotFound;
+    }
+//------------------------------------------------------------------------------
+//  CNSmlDSSettingsAdapter::GetServerDataSourceL
+//  The function gets the remote data store (RDBURI).
+//------------------------------------------------------------------------------
+TInt CNSmlDSSettingsAdapter::GetServerDataSourceL( const TInt aDataProviderId, 
+                                                    const TInt aProfileLUID, 
+                                                    CBufBase*& aObject )
+    {
+    TInt retVal = OpenSyncSessionAndDSProfileL( aProfileLUID, ESmlOpenRead );
+    if( retVal != KErrNone )
+		{
+		CloseDSProfile();
+        return retVal;	
+		}
+    RArray<TSmlTaskId> taskArray;
+    CleanupClosePushL( taskArray );
+    iDSProfile.ListTasksL( taskArray );
+    
+    RSyncMLTask task;
+    CleanupClosePushL( task );
+    // find task
+    for (TInt i=0; i<taskArray.Count(); i++)
+        {
+        task.OpenL( iDSProfile, taskArray[i] );
+        if (task.DataProvider() == aDataProviderId)
+            {
+            HBufC* serverDataStore = task.ServerDataSource().AllocLC();
+            aObject->InsertL( aObject->Size(), ConvertTo8LC( *serverDataStore ) );
+            CloseDSProfile();
+            CleanupStack::PopAndDestroy(4); //taskIdArray, task, serverDataStore, ConvertTo8LC
+            
+            return KErrNone;
+            }
+        task.Close();
+        }
+    // task not found
+    CleanupStack::PopAndDestroy(2); //taskIdArray, task
+    CloseDSProfile();
+    return KErrNotFound;
+    }
+//------------------------------------------------------------------------------
+//  CNSmlDSSettingsAdapter::UpdateDataSourceL
+//  The function updates the LDBURI or RDBURI leaf value.
+//------------------------------------------------------------------------------
+TInt CNSmlDSSettingsAdapter::UpdateDataSourceL( const TInt aProfileLUID, 
+                                                const TInt aDataProviderId, 
+                                                const TDesC8& aObject, 
+                                                const HBufC8& aField)
+    {
+    // check that aField is RemoteDB or LocalDB
+    if( aField.Compare( KNSmlDdfRDBURI ) != 0 && aField.Compare( KNSmlDdfLDBURI ) != 0)
+        {
+        return KErrGeneral;
+        }
+    
+    TInt retVal = OpenSyncSessionAndDSProfileL( aProfileLUID, ESmlOpenReadWrite );
+    if( retVal != KErrNone )
+		{
+		CloseDSProfile();
+        return retVal;	
+		}
+    RArray<TSmlTaskId> taskArray;
+    CleanupClosePushL( taskArray );
+    iDSProfile.ListTasksL( taskArray );
+    
+    RSyncMLTask task;
+    CleanupClosePushL( task );
+    // find correct task
+    for (TInt i=0; i<taskArray.Count(); i++)
+        {
+        task.OpenL( iDSProfile, taskArray[i] );
+        if (task.DataProvider() == aDataProviderId)
+            {
+            // task found, get current localDataStore and remoteDataStore
+            HBufC* localDataStore = task.ClientDataSource().AllocLC();
+            HBufC* remoteDataStore = task.ServerDataSource().AllocLC();
+            task.Close();
+            
+            HBufC16* objectBuffer = HBufC16::NewLC( aObject.Size() );
+            TPtr16 ptrDataObject = objectBuffer->Des();
+            CnvUtfConverter::ConvertToUnicodeFromUtf8( ptrDataObject, aObject );
+            iDSProfile.DeleteTaskL( taskArray[i] );
+            iDSProfile.UpdateL();
+            
+            // create new task with new values
+            RSyncMLTask newTask;
+            CleanupClosePushL( newTask );
+            if( aField.Compare( KNSmlDdfRDBURI ) == 0 ) //Remote DB, Mandatory
+                {
+                newTask.CreateL( iDSProfile, aDataProviderId, ptrDataObject, *localDataStore );
+                }
+            else if( aField.Compare( KNSmlDdfLDBURI ) == 0 )
+                {
+                newTask.CreateL( iDSProfile, aDataProviderId, *remoteDataStore, ptrDataObject );
+                }
+            newTask.UpdateL();
+            
+            CloseDSProfile();
+            CleanupStack::PopAndDestroy( 6 ); //taskArray, task, localDataStore, 
+                                            //remoteDataStore, objectBuffer, newTask
+            return retVal;
+            }
+        task.Close();
+        }
+    // task not found
+    CleanupStack::PopAndDestroy(2);//taskArray, task
+    CloseDSProfile();
+    return KErrNotFound;
+    }
+//------------------------------------------------------------------------------
+//  CNSmlDSSettingsAdapter::FetchObjectL
+//  The function fetches the requested leaf object data.
+//------------------------------------------------------------------------------
+TInt CNSmlDSSettingsAdapter::FetchObjectL( const TDesC8& aURI, const TDesC8& aLUID, 
+                                            CBufBase*& aObj, const TInt aStatusRef )
+	{
+	_DBG_FILE("CNSmlDSSettingsAdapter::FetchObjectL(): begin");
+//
+	DBG_ARGS(_S16("DS:Fetch aURI    - %S - %S"), &aURI, &aLUID);
+
+    TInt retVal = KErrNone;
+    TInt profileLUID = -1;
+
+	iLUID = IntLUID( aLUID );
+
+    if ( aLUID.Length() > 0 && 
+	   ( aURI.Match( KCTTypeMatch ) != KErrNotFound ||
+	    aURI.Match( KRDBUriMatch ) != KErrNotFound ||
+	    aURI.Match( KLDBUriMatch ) != KErrNotFound ) )
+	   {
+		profileLUID = GetProfileIdFromURIL( aURI ); // ProfileId for DB-level
+        if( FindTaskIDL( profileLUID, iLUID ) == EFalse )
+            {
+            _DBG_FILE("CNSmlDSSettingsAdapter::FetchObjectL(): ENotFound end");
+			iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
+			return KErrNotFound;
+			}
+        }
+	else if ( aLUID.Length() > 0 ) //Profile
+		{
+		TInt profileID = -1; 
+        TInt retValue = GetProfileIdentifierL( iLUID, profileID );
+		if( retValue != KErrNone || profileID < 0 )
+			{
+			_DBG_FILE("CNSmlDSSettingsAdapter::FetchObjectL(): ENotFound end");
+			iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
+			return KErrNotFound;
+			}
+		iLUID = profileID;
+		}
+	else
+		{
+		// Static node feature start
+		iLUID = -1;
+		if( IsDSAccUriFormatMatchPredefined(aURI) )
+    	{
+    		iLUID = ConstructTreeL(aURI);
+    		profileLUID = GetProfileIdFromURIL( aURI ); 
+    	}
+    	
+    	if ((iLUID == 0 ) && (aURI.Match(_L8("SyncML/DSAcc/DSId*/DB/CTId*"))  == KErrNone))
+		{
+		_DBG_FILE("CNSmlDSSettingsAdapter::FetchObjectL(): ENotFound end");
+		iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
+		return KErrNotFound;
+    	}
+		// Static node feature end
+		}
+
+	SetField( aURI );
+//
+//	Check if valid field
+//
+/*	if( !AcceptDSField() )
+		{
+		_DBG_FILE("CNSmlDSSettingsAdapter::FetchObjectL(): EInvalidObject end");
+		iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EInvalidObject );
+		return KErrGeneral;
+		}
+*/
+//
+//	Check which field going to be handled
+//
+    TInt fType = GetDSFieldTypeL();
+    if ( fType == EInt || fType == EStr )
+		{
+		retVal = GetDSFieldDataL( iLUID, aObj );
+        }
+	else if ( fType == EParam )
+		{ // DB and CTType (dataprovider info / MIME type)
+		  // RDBURI + LDBURI (dataprovider data paths)
+	    if( iField->Compare( KNSmlDdfCTType ) == 0 )
+		    {
+		    retVal = GetContentTypeL( iLUID, profileLUID, aObj );
+		    }
+        else if( iField->Compare( KNSmlDdfLDBURI ) == 0 ) // Local database (optional)
+			{
+			//ClientDataSource
+            retVal = GetClientDataSourceL( iLUID, profileLUID, aObj );
+            }
+		else if( iField->Compare( KNSmlDdfRDBURI ) == 0 ) // Remote database 
+			{
+            //ServerDataSource
+		    retVal = GetServerDataSourceL( iLUID, profileLUID, aObj );
+            }
+		}
+	else 
+		{
+		_DBG_FILE("CNSmlDSSettingsAdapter::FetchObjectL(): Unknown type end");
+		iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
+		return KErrNotFound;
+		}
+    if( retVal != KErrNone )
+        {
+        if ( retVal == KErrNotFound )
+            {
+			_DBG_FILE("CNSmlDSSettingsAdapter::FetchObjectL(): ENotFound end");
+			iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
+            }
+        else
+            {
+			_DBG_FILE("CNSmlDSSettingsAdapter::FetchObjectL(): retVal != KErrNone");
+            iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EError );        
+            }            
+        }
+    return retVal;
+    
+	}
+//------------------------------------------------------------------------------
+//  CNSmlDSSettingsAdapter::FillNodeInfoL
+//  The function fills the node or leaf information.
+//------------------------------------------------------------------------------
+void CNSmlDSSettingsAdapter::FillNodeInfoL( MSmlDmDDFObject& aNode, 
+                                            TSmlDmAccessTypes aAccTypes, 
+                                            MSmlDmDDFObject::TOccurence aOccurrence, 
+                                            MSmlDmDDFObject::TScope aScope, 
+                                            MSmlDmDDFObject::TDFFormat aFormat, 
+                                            const TDesC8& aDescription, 
+                                            const TDesC8& aDefaultValue, 
+                                            const TDesC8& aMimeType )
+    {
+    aNode.AddDFTypeMimeTypeL( aMimeType );
+    aNode.SetAccessTypesL( aAccTypes );
+	aNode.SetDescriptionL( aDescription );
+	aNode.SetOccurenceL( aOccurrence );
+	aNode.SetDefaultValueL( aDefaultValue );
+	aNode.SetScopeL( aScope );
+	aNode.SetDFFormatL( aFormat );
+    return;
+    }
+//------------------------------------------------------------------------------
+//  CNSmlDSSettingsAdapter::SetProfileAddrTypeL
+//  The function sets the medium type for a profile.
+//------------------------------------------------------------------------------
+TInt CNSmlDSSettingsAdapter::SetProfileAddrTypeL( const TInt aLUID, 
+                                                    const TInt aIntObj )
+    {
+    _DBG_FILE("CNSmlDSSettingsAdapter::SetProfileAddrTypeL(): begin");
+    TInt retVal = OpenSyncSessionAndDSProfileL( aLUID, ESmlOpenReadWrite );
+    if( retVal != KErrNone )
+		{
+		CloseDSProfile();
+        _DBG_FILE("CNSmlDSSettingsAdapter::SetProfileAddrTypeL(): end");
+        return retVal;	
+		}
+    TSmlTransportId mediumType = ENone;
+    GetMediumTypeL( aIntObj, mediumType );
+    if( mediumType == ENone )
+        {
+        return KErrGeneral;
+        }
+    RArray<TSmlTransportId> transportIdArray;
+    CleanupClosePushL( transportIdArray );
+    iDSProfile.ListConnectionsL( transportIdArray );
+
+    RSyncMLConnection conn;
+    conn.OpenL( iDSProfile, transportIdArray[0] );
+    CleanupClosePushL( conn );
+
+    HBufC8* sURI = conn.ServerURI().AllocLC();
+    if(mediumType!=transportIdArray[0])
+        {
+        conn.CreateL( iDSProfile, mediumType ); //changes medium type and clears the buffer
+        }
+        
+    if(mediumType!=KUidNSmlMediumTypeInternet.iUid && sURI->Length() > 0)
+        {
+        // remove port
+        HBufC8* newServerURI = HBufC8::NewL( sURI->Size() );
+        CleanupStack::PushL( newServerURI );
+        TBuf8<5> buf;
+    	buf.Num( 0 );
+        // change iLeafType to EDSDelete -> deleting port
+        TNSmlDSLeafType	tmpType(iLeafType); // store old value
+        iLeafType = EDSDelete;
+        SetPortNrToAddrStr( *sURI, newServerURI, buf );
+        iLeafType = tmpType; // restore original value
+        
+        conn.SetServerURIL( *newServerURI );
+        conn.UpdateL();
+        
+        CleanupStack::PopAndDestroy( newServerURI );
+        }
+    else
+        {
+        conn.SetServerURIL( *sURI );
+        conn.UpdateL();
+        }
+                      
+    CleanupStack::PopAndDestroy( 3 );//transportIdArray, conn, sURI
+    CloseDSProfile();
+    _DBG_FILE("CNSmlDSSettingsAdapter::SetProfileAddrTypeL(): end");
+    return KErrNone;
+    }
+//------------------------------------------------------------------------------
+//  CNSmlDSSettingsAdapter::SetProfileConnectionPortNrL
+//  The function sets the port number (PortNbr) for a profile.
+//------------------------------------------------------------------------------
+TInt CNSmlDSSettingsAdapter::SetProfileConnectionPortNrL( const TInt aLUID, 
+                                                            const TDesC8& aPort )
+    {
+    _DBG_FILE("CNSmlDSSettingsAdapter::SetProfileConnectionPortNrL(): begin");
+    TInt retVal = KErrNone;
+    
+    if( iPortNbr )
+        {
+        delete iPortNbr;
+        iPortNbr = NULL;
+        }
+    iPortNbr = HBufC8::NewL( aPort.Length() );
+    TPtr8 newPortNbr = iPortNbr->Des();
+    newPortNbr.Append( aPort );
+        
+    retVal = OpenSyncSessionAndDSProfileL( aLUID, ESmlOpenReadWrite );
+    if( retVal != KErrNone )
+		{
+		CloseDSProfile();
+        _DBG_FILE("CNSmlDSSettingsAdapter::SetProfileConnectionPortNrL(): end");
+        return retVal;	
+		}
+    
+    RArray<TSmlTransportId> transportIdArray;
+    CleanupClosePushL( transportIdArray );
+    iDSProfile.ListConnectionsL( transportIdArray );
+    
+    RSyncMLConnection conn;
+    CleanupClosePushL( conn );
+    conn.OpenL( iDSProfile, transportIdArray[0] );
+    
+    // if medium type is not internet -> do not add port
+    if( transportIdArray[0] != KUidNSmlMediumTypeInternet.iUid )
+        {
+        CloseDSProfile();
+        CleanupStack::PopAndDestroy( 2 ); //transportIdArray, conn
+        _DBG_FILE("CNSmlDSSettingsAdapter::SetProfileConnectionPortNrL(): end");
+        return retVal;
+        }
+        
+    HBufC8* serverURI = conn.ServerURI().AllocLC();
+    if( serverURI->Length() == 0 )
+        {
+        CloseDSProfile();
+        CleanupStack::PopAndDestroy( 3 ); //transportIdArray, conn, serverURI
+        _DBG_FILE("CNSmlDSSettingsAdapter::SetProfileConnectionPortNrL(): end");
+        return retVal;
+	    }
+    TInt totalSize = serverURI->Size() + newPortNbr.Size() + 1;
+    HBufC8* newServerURI = HBufC8::NewL( totalSize );
+    CleanupStack::PushL( newServerURI );
+    SetPortNrToAddrStr( *serverURI, newServerURI, newPortNbr );
+    
+    conn.SetServerURIL( *newServerURI );
+    conn.UpdateL();
+    
+    CleanupStack::PopAndDestroy( 4 ); //transportIdArray, conn, serverURI, newServerURI
+    CloseDSProfile();
+    _DBG_FILE("CNSmlDSSettingsAdapter::SetProfileConnectionPortNrL(): end");
+    return KErrNone;	
+    }
+//------------------------------------------------------------------------------
+//  CNSmlDSSettingsAdapter::SetPortNrToAddrStr
+//  The function sets or replaces a portnbr (separated with ':') to Addr Uri.
+//------------------------------------------------------------------------------
+void CNSmlDSSettingsAdapter::SetPortNrToAddrStr( const TDesC8& aSrvURI, 
+                                                    HBufC8* aNewURI, 
+                                                    const TDesC8& aPort )
+	{
+	TInt offset=0;
+    if( aSrvURI.Find( KNSmlDSSettingsHTTP ) == 0 )//http://
+		{
+		offset = KNSmlDSSettingsHTTP().Length();
+		}
+	else if( aSrvURI.Find( KNSmlDSSettingsHTTPS ) == 0 )//https://
+		{
+		offset = KNSmlDSSettingsHTTPS().Length();
+		}
+	
+	TInt portStart = -1;
+    TInt separatorPos = aSrvURI.Length();
+    
+    TInt i = 0;
+    for( i = offset; i < aSrvURI.Length(); i++ )
+		{
+		if( aSrvURI[i] == KNSmlDMColon )// ':'
+			{
+			portStart = i;
+			}
+		if( aSrvURI[i] == KNSmlDMUriSeparator )// '/'
+			{
+            separatorPos = i;
+			break;
+			}
+		}
+    
+    TPtr8 ptrNewSrvURI = aNewURI->Des();
+    if( portStart < 0 && separatorPos > 0 && iLeafType != EDSDelete )
+        {
+        ptrNewSrvURI.Append( aSrvURI.Left( separatorPos ) );//http://123.234.345.456
+        ptrNewSrvURI.Append( KNSmlDMColon );
+        ptrNewSrvURI.Append( aPort );
+        ptrNewSrvURI.Append( aSrvURI.Right( aSrvURI.Length() - separatorPos ) );//123.234.345.456:xx(x)/syncml    
+        }
+    else if ( portStart > 0 && separatorPos > 0 && iLeafType != EDSDelete )
+        {
+        ptrNewSrvURI.Append( aSrvURI.Left( portStart + 1 ) );//123.234.345.456:
+        ptrNewSrvURI.Append( aPort );//123.234.345.456:xx(x)
+        ptrNewSrvURI.Append( aSrvURI.Right( aSrvURI.Length() - separatorPos ) );//123.234.345.456:xx(x)/syncml
+        }
+    else if ( portStart > 0 &&  iLeafType == EDSDelete ) //delete port number from uri
+        {
+        ptrNewSrvURI.Append( aSrvURI.Left( portStart ) );//123.234.345.456
+        ptrNewSrvURI.Append( aSrvURI.Right( aSrvURI.Length() - separatorPos ) );//123.234.345.456:xx(x)/syncml
+        }
+    else
+        {
+        ptrNewSrvURI.Append( aSrvURI );
+        }
+    return;
+	}
+//------------------------------------------------------------------------------
+//  CNSmlDSSettingsAdapter::MimeTypeAllreadyExitsL
+//  The function checks if mime type allready exits in this profile.
+//------------------------------------------------------------------------------
+TBool CNSmlDSSettingsAdapter::MimeTypeAllreadyExitsL( const TInt aLuid, 
+                                                        const TDesC8& aMimeType )
+    {
+    TInt retVal = OpenSyncSessionAndDSProfileL( aLuid, ESmlOpenRead );
+    if( retVal != KErrNone )
+		{
+		CloseDSProfile();
+        return EFalse;	
+		}
+    RArray<TSmlDataProviderId> dataProviderArray;
+    CleanupClosePushL( dataProviderArray );
+    iSyncSession.ListDataProvidersL( dataProviderArray );
+    TInt dataProviderCount = dataProviderArray.Count();
+    if( dataProviderCount == 0 )
+        {//error case, data provider not found
+        CloseDSProfile();
+        CleanupStack::PopAndDestroy();//dataProviderIdArray
+        return EFalse;   
+        }
+
+    RSyncMLTask task;
+    RSyncMLDataProvider dataProvider;
+    RArray<TSmlTaskId> taskIdArray;
+    iDSProfile.ListTasksL( taskIdArray );
+    CleanupClosePushL(taskIdArray);
+    
+    HBufC8* object = aMimeType.AllocLC();
+    TPtr8 objectPtr = object->Des();
+	objectPtr.LowerCase();
+    
+    for( TInt i = 0; i<taskIdArray.Count(); i++ )
+        {
+        task.OpenL( iDSProfile, taskIdArray[i] );
+        CleanupClosePushL(task);
+        TInt dataProviderUID = task.DataProvider();
+        TInt dataProviderIndex = dataProviderArray.Find( dataProviderUID );
+        if( dataProviderIndex != KErrNotFound )
+            {
+            dataProvider.OpenL( iSyncSession, dataProviderArray[dataProviderIndex] );
+            CleanupClosePushL(dataProvider);
+            for ( TInt n = 0; n < dataProvider.MimeTypeCount(); n++ )
+                {
+                HBufC* mimeType = dataProvider.MimeType(n).AllocLC();
+                if( objectPtr.Compare( ConvertTo8LC( *mimeType ) ) == 0 ) //if MIME match
+                    {
+                    CleanupStack::PopAndDestroy( 7 ); //dataProviderArray, task, dataProvider,
+                                                    //taskIdArray, object, mimeType, ConvertTo8LC    
+                    CloseDSProfile();            
+                    return ETrue;
+                    }
+                CleanupStack::PopAndDestroy( 2 ); //mimeType, ConvertTo8LC
+                }
+            CleanupStack::PopAndDestroy( ); //dataProvider
+            }
+        CleanupStack::PopAndDestroy( ); //task
+        }
+    CleanupStack::PopAndDestroy( 3 ); //dataProviderArray,taskIdArray, object
+    CloseDSProfile();
+    return EFalse;
+    }
+
+//------------------------------------------------------------------------------
+//  CNSmlDSSettingsAdapter::SetRDBDataStore
+//  The function sets the RDMURI to memeber variable.
+//------------------------------------------------------------------------------
+void CNSmlDSSettingsAdapter::SetRDBDataStore( const TDesC8& aStore )
+    {
+	TPtr16 bufPtr16 = iRdbDataStore->Des();
+    bufPtr16.Delete(0, bufPtr16.Size());
+	CnvUtfConverter::ConvertToUnicodeFromUtf8( bufPtr16, aStore );
+    }
+
+//------------------------------------------------------------------------------
+//	CNSmlDSSettingsAdapter::SetProfileIAPIdL
+//	The function sets the IAPId value to profile connection properties.
+//------------------------------------------------------------------------------
+TInt CNSmlDSSettingsAdapter::SetProfileIAPIdL( const TInt aLUID, const TInt aIAPid )
+    {
+    TInt retVal = OpenSyncSessionAndDSProfileL( aLUID, ESmlOpenReadWrite );
+    if( retVal != KErrNone )
+		{
+		CloseDSProfile();
+        return retVal;	
+		}
+    RArray<TSmlTransportId> connIdArray;
+    CleanupClosePushL( connIdArray );
+    iDSProfile.ListConnectionsL( connIdArray );
+    if( connIdArray.Count() == 1 )
+        {
+        RSyncMLTransport transport;
+        CleanupClosePushL( transport );
+	    transport.OpenL( iSyncSession, connIdArray[0] );
+	    const CSyncMLTransportPropertiesArray& props = transport.Properties();
+	    TInt index = props.Find( KNSmlIAPId );
+        if( index > 0 )
+            {
+            RSyncMLConnection conn;
+            CleanupClosePushL( conn );
+	        conn.OpenL( iDSProfile, connIdArray[0] );
+            HBufC8* apIdBuffer = HBufC8::NewLC( 4 );
+	        TPtr8 ptrIapIdBuf = apIdBuffer->Des();
+        	ptrIapIdBuf.Num( aIAPid );
+            conn.SetPropertyL( KNSmlIAPId, ptrIapIdBuf );
+            conn.UpdateL();
+            CleanupStack::PopAndDestroy( 2 ); //conn, apIdBuffer
+            retVal = KErrNone;
+            }
+        else
+            {
+            retVal = KErrNotFound;
+            }
+        CleanupStack::PopAndDestroy(); //transport
+        }
+    else
+        {
+        retVal = KErrNotFound;
+        }
+    CloseDSProfile();
+    CleanupStack::PopAndDestroy(); //connIdArray
+    return retVal;
+    }
+
+//------------------------------------------------------------------------------
+//	CNSmlDSSettingsAdapter::GetMediumTypeL
+//	The function checks the requested medium type and gets it UID.
+//------------------------------------------------------------------------------
+void CNSmlDSSettingsAdapter::GetMediumTypeL( const TInt aIntObj, 
+                                            TSmlTransportId& aMediumType )
+    {
+    if( aIntObj == EHttp|| aIntObj == ENone || aIntObj == EWsp)
+        {
+        aMediumType = KUidNSmlMediumTypeInternet.iUid;
+        return;
+        }
+    RArray<TSmlTransportId> transportIdArray;
+    CleanupClosePushL( transportIdArray );
+    iSyncSession.ListTransportsL( transportIdArray );
+    if ( transportIdArray.Find( KUidNSmlMediumTypeBluetooth.iUid ) != KErrNotFound )
+        {
+        aMediumType = KUidNSmlMediumTypeBluetooth.iUid;
+        }
+    else if ( transportIdArray.Find( KUidNSmlMediumTypeUSB.iUid ) != KErrNotFound )
+        {
+        aMediumType = KUidNSmlMediumTypeUSB.iUid;
+        }
+    else if ( transportIdArray.Find( KUidNSmlMediumTypeIrDA.iUid ) != KErrNotFound )
+        {
+        aMediumType = KUidNSmlMediumTypeIrDA.iUid;
+        }
+    CleanupStack::PopAndDestroy(); //transportIdArray
+    return;    
+    }
+
+
+// ========================== OTHER EXPORTED FUNCTIONS =========================
+
+//------------------------------------------------------------------------------
+// TImplementationProxy ImplementationTable[]
+//------------------------------------------------------------------------------
+
+#ifndef IMPLEMENTATION_PROXY_ENTRY
+#define IMPLEMENTATION_PROXY_ENTRY(aUid, aFuncPtr)	{{aUid},(aFuncPtr)}
+#endif
+
+const TImplementationProxy ImplementationTable[] = 
+    {
+	IMPLEMENTATION_PROXY_ENTRY( KNSmlDSSettingsAdapterImplUid, CNSmlDSSettingsAdapter::NewL )
+    };
+
+//------------------------------------------------------------------------------
+// TImplementationProxy* ImplementationGroupProxy()
+//------------------------------------------------------------------------------
+EXPORT_C const TImplementationProxy* ImplementationGroupProxy( TInt& aTableCount )
+    {
+	_DBG_FILE("ImplementationGroupProxy() for CNSmlDSSettingsAdapter: begin");
+
+    aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
+
+	_DBG_FILE("ImplementationGroupProxy() for CNSmlDSSettingsAdapter: end");
+    return ImplementationTable;
+	}
+
+
+//--------------------------------------------------------------------
+//TInt CNSmlDMSettingsAdapter::IsDSAccUriFormatMatchPredefined(const TDesC8 & aURI)
+//
+//-------------------------------------------------------------------
+
+TBool CNSmlDSSettingsAdapter::IsDSAccUriFormatMatchPredefined(const TDesC8 & aURI)
+{
+	
+	// include strings for  tree for Bearer , DNS related Dynamic nodes . 
+	
+	if(aURI.Match(_L8("SyncML/DSAcc/DSId*"))  != KErrNotFound ||
+         aURI.Match(_L8("SyncML/DSAcc/DSId*/DB/CTId*"))  != KErrNotFound)
+	{
+		return ETrue;
+	}
+	else
+	{
+		return EFalse;
+	}
+	
+	
+}
+
+//--------------------------------------------------------------------
+//TInt CNSmlDMSettingsAdapter::ConstructTreeL(const TDesC8& aURI)
+//
+//-------------------------------------------------------------------
+
+TInt CNSmlDSSettingsAdapter::ConstructTreeL(const TDesC8& aURI)
+{
+		TInt profileID = KErrNotFound;
+RDebug::Print( _L("jshong FOTA : ConstructTreeL 1 ")) ;
+		TBool notDBSet(EFalse);
+        if( iSyncSessionOpen == EFalse )
+            {
+            iSyncSession.OpenL();
+            iSyncSessionOpen = ETrue;
+            }
+        RArray<TSmlProfileId> profileIdArray;
+        CleanupClosePushL( profileIdArray );
+        TSmlUsageType usageType = ESmlDataSync;
+        iSyncSession.ListProfilesL( profileIdArray, usageType );
+RDebug::Print( _L("jshong FOTA : ConstructTreeL 1-2 ") );
+	    
+        for( TInt p = 0; p < profileIdArray.Count(); p++ )
+		    {
+            TInt ddId = profileIdArray[p] ; // update remove KMAxDatasyncID - KMaxDataSyncID;
+RDebug::Print( _L("jshong FOTA : ConstructTreeL 1-3 ") );
+            
+		    _LIT8( Kprev, "DSId" );//  update changed from DMId to DSId
+		    TBuf8<7> addNAME(Kprev); // DMIdnnn , nnn = profileid
+            TInt fixedProfId = profileIdArray[p] ; // update remove KMAxDatasyncID // - KMaxDataSyncID; //fit to 3 decimal
+		    addNAME.AppendNumFixedWidth( fixedProfId, EDecimal, 3 ); 
+   		   	DBG_ARGS8( _S8("notInList: Id = %d Name %S"), p, &addNAME );
+   		   	RDebug::Print( _L("notInList: Id = %d Name %S"), p, &addNAME );
+		    // KNSmlDMStart includes start text for URISeg
+			    TBuf8<20> addURI; // SyncML/DMAcc/DMIdnnn , nnn = profileid
+			    addURI.Append( KNSmlDSStart );
+			    addURI.AppendNumFixedWidth( fixedProfId, EDecimal, 3 ); 
+				TBuf8<3> addLUID;
+	    		addLUID.Num( fixedProfId );
+
+			HBufC8* mapInfo = iCallBack->GetLuidAllocL(addURI);
+RDebug::Print( _L("jshong FOTA : ConstructTreeL 1-4 addURI = %S"), &addURI );
+					
+						 if (mapInfo->Length() == 0)
+						 {
+						 	 iCallBack->SetMappingL(addURI,addLUID);
+							 
+RDebug::Print( _L("jshong FOTA : ConstructTreeL 1-5 ") );
+						 	 	 
+						 	 if(( aURI.Find(addURI) >= 0 ) && !notDBSet)
+                    			{ 
+                    				profileID = fixedProfId;
+                    			}
+                    			
+						 	 // update , Update ../DB/CTId also 
+						 	 	TInt retVal = OpenSyncSessionAndDSProfileL( fixedProfId, ESmlOpenRead );
+						    if( retVal == KErrNone )
+								{
+							
+RDebug::Print( _L("jshong FOTA : ConstructTreeL 2 ") );
+						        
+						 	 						 	 
+						    RArray<TSmlTaskId> taskIdArray;
+						    CleanupClosePushL( taskIdArray );
+						    iDSProfile.ListTasksL( taskIdArray );
+							if( taskIdArray.Count() == 0 )
+								{
+RDebug::Print( _L("jshong FOTA : ConstructTreeL 3 ")) ;
+								CloseDSProfile();
+								CleanupStack::PopAndDestroy();//taskIdArray
+						    //	return KErrNotFound;
+								}
+							else
+							{
+								RSyncMLTask task;
+RDebug::Print( _L("jshong FOTA : ConstructTreeL 4 ")) ;
+
+						    CleanupClosePushL( task );
+						            
+						    for ( TInt i = 0; i < taskIdArray.Count(); i++ )
+								{			
+								//	
+								//	Check if ContentType -> Task ID on list
+								//
+								TInt ddId( 0 );
+RDebug::Print( _L("jshong FOTA : ConstructTreeL 5 ")) ;
+								
+								task.OpenL( iDSProfile, taskIdArray[i] );
+						        ddId = task.DataProvider();
+						        task.Close();
+								
+									//Get Task ID
+								//	addNAME.AppendNumFixedWidth( taskIdArray[i], EDecimal,3 ); 
+RDebug::Print( _L("jshong FOTA : ConstructTreeL 6 ") );
+							
+									TBuf8<80> addDBURI;
+									
+									addDBURI.Append( addURI );
+									_LIT8( KDB, "/DB" );// addDb also 
+									addDBURI.Append( KDB );
+									addDBURI.Append( Kprev2 );
+									addDBURI.AppendNumFixedWidth( taskIdArray[i], EDecimal, 3 ); 
+RDebug::Print( _L("jshong FOTA : ConstructTreeL 7 ")) ;
+
+									TBuf8<16> addDBLUID;
+									addDBLUID.Num( ddId );
+									HBufC8* mapInfo = iCallBack->GetLuidAllocL(addDBURI);
+								 	if (mapInfo->Length() == 0)
+						 			{
+						 	 			iCallBack->SetMappingL(addDBURI,addDBLUID);
+					 	 	 
+						 	 			if( aURI.Find(addDBURI) >= 0 )
+                    					{ 
+                    						profileID = ddId;
+                    						notDBSet = ETrue;
+                    					}
+						 			}							
+								
+								} //For
+							CloseDSProfile();
+							CleanupStack::PopAndDestroy(2);// task, taskIdArray
+							}
+							
+						 //return KErrGeneral;	
+								}	 
+							else
+							{
+									CloseDSProfile();
+						 }
+						 
+						 }
+						 else
+						 {
+RDebug::Print( _L("jshong FOTA : ConstructTreeL 1-5 ") );
+						 
+						 	delete mapInfo;
+						 }
+						 
+	    			
+    			}
+	    	
+         CleanupStack::PopAndDestroy( 1 );//profileIdArray
+        return profileID;
+}
+
+//------------------------------------------------------------------------------
+// TPtrC8 CUtils::GetDynamicDSNodeUri( const TDesC8& aURI )
+// returns Syncml/DSAcc/xxx URI
+//------------------------------------------------------------------------------
+TPtrC8 CNSmlDSSettingsAdapter::GetDynamicDSNodeUri(const TDesC8& aURI)
+    {    
+    TInt i= 0;
+    TBuf8<50> DsAccRoot(KDSAcc1);
+    for ( i = aURI.Find( KDSAcc1 ) + DsAccRoot.Length() + 1 ; i < aURI.Length(); i++ )
+        {
+        if( aURI[i] == '/'  )            
+			{            break;            
+			}
+        }    
+		
+    return aURI.Left( i );
+    }
+	
+// End of File
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/syncmlds/src/nsmldssettingsadapter.rss	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,48 @@
+CHARACTER_SET UTF8/*
+* Copyright (c) 2005 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:    Resource data for Device Management DS Settings Adapter
+*
+*/
+
+
+
+
+
+#include <registryinfo.rh>
+#include "nsmldmconstants.h"
+
+RESOURCE REGISTRY_INFO theRegistryInfo
+  {
+  dll_uid = 0x101F6DE7; //The DLL's 3rd UID.
+  interfaces = 
+      {
+      INTERFACE_INFO
+          {
+          interface_uid = KNSmlDMInterfaceUid; // DM interface UID
+          implementations = 
+            {
+            IMPLEMENTATION_INFO
+                {
+                implementation_uid = 0x101F6DED; // DM interface implementation UID
+                version_no = 1; 
+                display_name = "";
+                default_data = "";
+                opaque_data = "";
+                }
+            };
+          }
+      };
+    }
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/syncmlds/tsrc/bwins/syncmldstestu.def	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,3 @@
+EXPORTS
+	?LibEntryL@@YAPAVCScriptBase@@AAVCTestModuleIf@@@Z @ 1 NONAME ; class CScriptBase * LibEntryL(class CTestModuleIf &)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/syncmlds/tsrc/conf/syncmldstest.cfg	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,168 @@
+[Test]
+title DDF
+create syncmldstest foobar jee
+foobar DDFStructure
+delete foobar
+[Endtest] 
+
+[Test]
+title StartAtomic
+create syncmldstest foobar
+foobar StartAtomic
+delete foobar
+[Endtest]
+
+[Test]
+title CommitAtomic
+create syncmldstest foobar
+foobar CommitAtomic
+delete foobar
+[Endtest]
+
+[Test]
+title RollbackAtomic
+create syncmldstest foobar
+foobar RollbackAtomic
+delete foobar
+[Endtest]
+
+[Test]
+title AddDSAcc099
+create syncmldstest foobar
+foobar AddNode SyncML/DSAcc/DSId099
+foobar UpdateLeaf SyncML/DSAcc/DSId099/Name name99
+foobar UpdateLeaf SyncML/DSAcc/DSId099/ServerId server99
+foobar UpdateLeaf SyncML/DSAcc/DSId099/Addr Test
+foobar UpdateLeaf SyncML/DSAcc/DSId099/ClientUserName user99
+foobar CompleteCommands
+delete foobar
+[Endtest]
+
+[Test]
+title UpdateName
+create syncmldstest foobar
+foobar UpdateLeaf SyncML/DSAcc/DSId099/Name newname99
+delete foobar
+[Endtest]
+
+[Test]
+title UpdateAddr
+create syncmldstest foobar
+foobar UpdateLeaf SyncML/DSAcc/DSId099/Addr Dummy
+delete foobar
+[Endtest]
+
+[Test]
+title UpdateClientUserName
+create syncmldstest foobar
+foobar UpdateLeaf SyncML/DSAcc/DSId099/ClientUserName dummy99
+delete foobar
+[Endtest]
+
+[Test]
+title FetchNodeDSAcc
+create syncmldstest foobar
+foobar FetchNode SyncML/DSAcc
+delete foobar
+[Endtest]
+
+[Test]
+title FetchLeafDSAccName
+create syncmldstest foobar
+foobar FetchLeaf SyncML/DSAcc/DSId099/Name
+delete foobar
+[Endtest]
+
+[Test]
+title FetchLeafDSAccServerId
+create syncmldstest foobar
+foobar FetchLeaf SyncML/DSAcc/DSId099/ServerId
+delete foobar
+[Endtest]
+
+[Test]
+title FetchLeafDSAccAddr
+create syncmldstest foobar
+foobar FetchLeaf SyncML/DSAcc/DSId099/Addr
+delete foobar
+[Endtest]
+
+[Test]
+title FetchLeafDSAccClientUserName
+create syncmldstest foobar
+foobar FetchLeaf SyncML/DSAcc/DSId099/ClientUserName
+delete foobar
+[Endtest]
+
+[Test]
+title DeleteDSAcc
+create syncmldstest foobar
+foobar DeleteNode SyncML/DSAcc/DSId099
+delete foobar
+[Endtest]
+
+[Test]
+title AddDSAcc090
+create syncmldstest foobar
+foobar AddNode SyncML/DSAcc/DSId090
+foobar UpdateLeaf SyncML/DSAcc/DSId090/Addr NewAcc 
+foobar UpdateLeaf SyncML/DSAcc/DSId090/AddrType 3 
+foobar UpdateLeaf SyncML/DSAcc/DSId090/ClientPW passwd  
+foobar UpdateLeaf SyncML/DSAcc/DSId090/ClientUserName uname  
+foobar AddNode SyncML/DSAcc/DSId090/DB   
+foobar AddNode SyncML/DSAcc/DSId090/DB/CTId090   
+foobar UpdateLeaf SyncML/DSAcc/DSId090/DB/CTId090/CTType text/x-vcalendar 
+foobar AddNode SyncML/DSAcc/DSId090/DB/CTId090/LDBURI 	 C:\calender	
+foobar UpdateLeaf SyncML/DSAcc/DSId090/DB/CTId090/RDBURI Calendar 
+foobar AddNode SyncML/DSAcc/DSId090/DB/CTId091   
+foobar UpdateLeaf SyncML/DSAcc/DSId090/DB/CTId091/CTType text/x-vcard 
+foobar AddNode SyncML/DSAcc/DSId090/DB/CTId091/LDBURI   C:\contacts
+foobar UpdateLeaf SyncML/DSAcc/DSId090/DB/CTId091/RDBURI Contacts 
+foobar AddNode SyncML/DSAcc/DSId090/DB/CTId092   
+foobar UpdateLeaf SyncML/DSAcc/DSId090/DB/CTId092/CTType application/vnd.omads-email+xml 
+foobar AddNode SyncML/DSAcc/DSId090/DB/CTId092/LDBURI   C:\email
+foobar UpdateLeaf SyncML/DSAcc/DSId090/DB/CTId092/RDBURI Email
+foobar AddNode SyncML/DSAcc/DSId090/DB/CTId093   
+foobar UpdateLeaf SyncML/DSAcc/DSId090/DB/CTId093/CTType text/plain 
+foobar AddNode SyncML/DSAcc/DSId090/DB/CTId093/LDBURI   C:\notes
+foobar UpdateLeaf SyncML/DSAcc/DSId090/DB/CTId093/RDBURI Notes 
+foobar AddNode SyncML/DSAcc/DSId090/DB/CTId094   
+foobar UpdateLeaf SyncML/DSAcc/DSId090/DB/CTId094/CTType text/x-vBookmark 
+foobar AddNode SyncML/DSAcc/DSId090/DB/CTId094/LDBURI   C:\bookmarks
+foobar UpdateLeaf SyncML/DSAcc/DSId090/DB/CTId094/RDBURI Bookmarks
+foobar UpdateLeaf SyncML/DSAcc/DSId090/Name TestDummy 
+foobar UpdateLeaf SyncML/DSAcc/DSId090/ServerId TestDummy 
+foobar UpdateLeaf SyncML/DSAcc/DSId090/ToNapID  AP/APId000
+foobar CompleteCommands
+delete foobar
+[Endtest]
+
+[Test]
+title FetchAllLeafDsAcc
+create syncmldstest foobar
+foobar FetchLeaf SyncML/DSAcc/DSId090/Addr
+foobar FetchLeaf SyncML/DSAcc/DSId090/AddrType
+foobar FetchLeaf SyncML/DSAcc/DSId090/ClientPW   
+foobar FetchLeaf SyncML/DSAcc/DSId090/ClientUserName   
+foobar FetchLeaf SyncML/DSAcc/DSId090/DB/CTId090/CTType
+foobar FetchLeaf SyncML/DSAcc/DSId090/DB/CTId090/RDBURI
+foobar FetchLeaf SyncML/DSAcc/DSId090/DB/CTId091/CTType
+foobar FetchLeaf SyncML/DSAcc/DSId090/DB/CTId091/RDBURI
+foobar FetchLeaf SyncML/DSAcc/DSId090/DB/CTId092/CTType
+foobar FetchLeaf SyncML/DSAcc/DSId090/DB/CTId092/RDBURI
+foobar FetchLeaf SyncML/DSAcc/DSId090/DB/CTId093/CTType
+foobar FetchLeaf SyncML/DSAcc/DSId090/DB/CTId093/RDBURI 
+foobar FetchLeaf SyncML/DSAcc/DSId090/DB/CTId094/CTType
+foobar FetchLeaf SyncML/DSAcc/DSId090/DB/CTId094/RDBURI
+foobar FetchLeaf SyncML/DSAcc/DSId090/Name 
+foobar FetchLeaf SyncML/DSAcc/DSId090/ServerId
+foobar FetchLeaf SyncML/DSAcc/DSId090/ToNapID 
+delete foobar
+[Endtest]
+
+[Test]
+title DeleteDSAcc90
+create syncmldstest foobar
+foobar DeleteNode SyncML/DSAcc/DSId090
+delete foobar
+[Endtest]
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/syncmlds/tsrc/eabi/syncmldstestu.def	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,9 @@
+EXPORTS
+	_Z9LibEntryLR13CTestModuleIf @ 1 NONAME
+	_ZTI13CsyncmldsTest @ 2 NONAME ; #<TI>#
+	_ZTI16CTestDmDDFObject @ 3 NONAME ; #<TI>#
+	_ZTI8Cdmatest @ 4 NONAME ; #<TI>#
+	_ZTV13CsyncmldsTest @ 5 NONAME ; #<VT>#
+	_ZTV16CTestDmDDFObject @ 6 NONAME ; #<VT>#
+	_ZTV8Cdmatest @ 7 NONAME ; #<VT>#
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/syncmlds/tsrc/group/bld.inf	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,55 @@
+/*
+* 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.
+*
+*/
+
+
+
+
+
+
+PRJ_PLATFORMS
+// specify the platforms your component needs to be built for here
+// defaults to WINS MARM so you can ignore this if you just build these
+DEFAULT
+
+PRJ_TESTEXPORTS
+// NOTE: If using ARS requirements all export operations should be done under this.
+// 'abld test export'
+
+PRJ_EXPORTS
+// Specify the source file followed by its destination here
+// copy will be used to copy the source file to its destination
+// If there's no destination then the source file will be copied
+// to the same name in /epoc32/include
+// Example: 
+
+
+PRJ_TESTMMPFILES
+// NOTE: If using ARS requirements .mmp file operation should be done under this.
+// 'abld test build'
+syncmldstest.mmp
+
+PRJ_MMPFILES
+// Specify the .mmp files required for building the important component
+// releasables.
+//
+// Specify "tidy" if the component you need to build doesn't need to be
+// released. Specify "ignore" if the MMP file exists but should be
+// ignored.
+// Example:
+
+//  End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/syncmlds/tsrc/group/syncmldstest.mmp	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,63 @@
+/*
+* 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 <platform_paths.hrh>
+
+TARGET          syncmldstest.dll
+TARGETTYPE      dll
+UID             0x1000008D 0x101FB3E3
+
+CAPABILITY	ALL -TCB
+/* Remove comments and replace 0x00000000 with correct vendor id */
+// VENDORID 	0x00000000
+
+//TARGETPATH      ?target_path
+DEFFILE         syncmldstest.def
+
+SOURCEPATH      ../src
+SOURCE          dmatest.cpp
+SOURCE          TestDmDDFObject.cpp
+SOURCE          syncmldstest.cpp
+SOURCE          syncmldstestBlocks.cpp
+
+
+USERINCLUDE     ../inc 
+USERINCLUDE		  ../../inc
+
+SYSTEMINCLUDE   /epoc32/include/ecom
+APP_LAYER_SYSTEMINCLUDE
+
+
+LIBRARY         apgrfx.lib apmime.lib
+LIBRARY         euser.lib ecom.lib
+LIBRARY         stiftestinterface.lib
+LIBRARY         stiftestengine.lib
+LIBRARY         efsrv.lib
+LIBRARY         estor.lib 
+LIBRARY         SWInstCli.lib
+
+LANG			SC
+
+
+
+SMPSAFE
+// End of File
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/syncmlds/tsrc/group/syncmldstest.pkg	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,38 @@
+;
+; 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.
+;
+
+;*Languages
+&EN
+;
+;*Standard SIS file header. This section specifies the package name,
+;application UID, and version/build numbers. Add the package TYPE here if needed.
+#{"syncmldstest"},(0x101FB3E8),1,0,1;
+;
+
+;*Unique (Non-Localised) Vendor name
+;This is used in combination with signing to prevent the unauthroized
+;upgrade ofa a package by someone other than the rightful vendor.
+:"Nokia"
+
+;*Localized Vendor Name
+;This specifies the localised vendor name(s) correspodning to language(s).
+%{"Nokia Test EN"}
+
+;*Files To Copy...<src> <destination>
+"\epoc32\release\armv5\urel\syncmldstest.dll" -"C:\sys\bin\syncmldstest.dll"
+"..\conf\syncmldstest.cfg"-"C:\TestFramework\syncmldstest.cfg"
+"..\init\syncmldstest.ini"-"C:\TestFramework\syncmldstest.ini"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/syncmlds/tsrc/inc/TestDmDDFObject.h	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,203 @@
+/*
+* 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.
+*
+*/
+
+
+
+
+
+
+#ifndef __TESTDMDDFOBJECT_H
+#define __TESTDMDDFOBJECT_H
+
+//  INCLUDES
+//#include <?include_file>
+#include <smldmadapter.h>
+
+// CONSTANTS
+//const ?type ?constant_var = ?constant;
+
+// MACROS
+//#define ?macro ?macro_def
+
+// DATA TYPES
+//enum ?declaration
+//typedef ?declaration
+//extern ?data_type;
+
+// FUNCTION PROTOTYPES
+//?type ?function_name(?arg_list);
+
+// FORWARD DECLARATIONS
+class CStifLogger;
+
+// CLASS DECLARATION
+
+/**
+*  ?one_line_short_description.
+*  ?other_description_lines
+*
+*  @lib ?library
+*  @since Series ?XX ?SeriesXX_version
+*/
+class CTestDmDDFObject : public CBase, public MSmlDmDDFObject
+    {
+    public:  // Constructors and destructor
+        
+        /**
+        * Two-phased constructor.
+        */
+        static CTestDmDDFObject* NewL( CStifLogger *aLog );
+        static CTestDmDDFObject* NewLC( CStifLogger *aLog );
+        
+        /**
+        * Destructor.
+        */
+        virtual ~CTestDmDDFObject();
+
+    public: // New functions
+        
+        /**
+        * ?member_description.
+        * @since Series ?XX ?SeriesXX_version
+        * @param ?arg1 ?description
+        * @return ?description
+        */
+        //?type ?member_function( ?type ?arg1 );
+
+		virtual void SetNameL( const TDesC8& aName );
+		
+		void DumpL( const TDesC8& aParentName, TBool aFullDump = ETrue );
+		void ExternalizeL(RWriteStream& aStream) const;
+		
+		
+
+    public: // Functions from base classes
+    
+//sf-    *********************************
+    
+		void SetAccessTypesL( TSmlDmAccessTypes aAccessTypes );
+		void SetDefaultValueL( const TDesC8& aDefaultValue );
+		void SetDescriptionL( const TDesC8& aDescription );
+		void SetDFFormatL( TDFFormat aFormat );
+		void SetOccurenceL( TOccurence aOccurence );
+		void SetScopeL( TScope aScope );
+		void SetDFTitleL( const TDesC8& aTitle );
+		void AddDFTypeMimeTypeL( const TDesC8& aMimeType );
+		void SetAsObjectGroup();
+		MSmlDmDDFObject& AddChildObjectL(const TDesC8& aNodeName);
+		MSmlDmDDFObject& AddChildObjectGroupL();
+
+//sf-    #############################
+
+		const TDesC8& Name();
+		TSmlDmAccessTypes  AccessTypes();
+		const TDesC8& DefaultValue();
+		const TDesC8& Description();
+		TDFFormat DFFormat();
+		TOccurence Occurence();
+		TScope Scope();
+		const TDesC8& DFTitle();
+		const TDesC8& DFTypeMimeType();
+		TBool ObjectGroup();
+		
+		TInt ChildObjectCount();
+		CTestDmDDFObject& ChildObject( TInt aIndex );
+
+		CTestDmDDFObject* FindChildObject( const TDesC8& aName );
+		TInt SubObjectsCount();
+
+
+    protected:  // New functions
+        
+        /**
+        * ?member_description.
+        * @since Series ?XX ?SeriesXX_version
+        * @param ?arg1 ?description
+        * @return ?description
+        */
+        //?type ?member_function( ?type ?arg1 );
+
+    protected:  // Functions from base classes
+        
+        /**
+        * From ?base_class ?member_description
+        */
+        //?type ?member_function();
+
+    private:
+
+        /**
+        * C++ default constructor.
+        */
+        CTestDmDDFObject( CStifLogger *aLog );
+
+        /**
+        * By default Symbian 2nd phase constructor is private.
+        */
+        void ConstructL();
+
+        // Prohibit copy constructor if not deriving from CBase.
+        // CTestDmDDFObject( const CTestDmDDFObject& );
+        // Prohibit assigment operator if not deriving from CBase.
+        // CTestDmDDFObject& operator=( const CTestDmDDFObject& );
+
+    public:     // Data
+        // ?one_line_short_description_of_data
+        //?data_declaration;
+    
+    protected:  // Data
+        // ?one_line_short_description_of_data
+        //?data_declaration;
+
+    private:    // Data
+        // ?one_line_short_description_of_data
+        //?data_declaration;
+		HBufC8* iName;
+
+		TSmlDmAccessTypes iAccessTypes;
+		HBufC8* iDefaultValue;
+		HBufC8* iDescription;
+		TDFFormat iFormat;
+		TOccurence iOccurence;
+		TScope iScope;
+		HBufC8* iTitle;
+		HBufC8* iMimeType;
+		TBool iObjectGroup;
+		
+		RPointerArray<CTestDmDDFObject> iChildren;
+
+         
+        // Reserved pointer for future extension
+        //TAny* iReserved;
+
+    public:     // Friend classes
+        //?friend_class_declaration;
+    protected:  // Friend classes
+        //?friend_class_declaration;
+    private:    // Friend classes
+        //?friend_class_declaration;
+        /**
+        * Logger.
+        */
+        CStifLogger*    iLog;
+
+    };
+
+#endif      // __TESTDMDDFOBJECT_H
+            
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/syncmlds/tsrc/inc/dmatest.h	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,278 @@
+/*
+* 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.
+*
+*/
+
+
+
+
+
+
+#ifndef __DMA_TEST_H__
+#define __DMA_TEST_H__
+
+//  INCLUDES
+#include <StifLogger.h>
+#include <TestScripterInternal.h>
+#include <StifTestModule.h>
+#include <apmstd.h>
+#include <smldmadapter.h>
+
+#include "NSmlDSSettingsAdapter.h"
+
+class Cdmatest;
+
+
+struct TMapping
+	{
+	TBuf8<256> iURI;
+	TBuf8<64> iLuid;
+	TMapping( const TDesC8 &aURI, const TDesC8 &aLuid )  : iURI( aURI ), iLuid( aLuid )
+	{
+		
+		}
+	};
+	
+typedef RArray<TMapping> RMappingArray;
+
+typedef void (Cdmatest::* ResultsFunction)( TInt , CBufBase& , const TDesC8&  ) ; 
+
+
+// CLASS DECLARATION
+
+/**
+*  ?one_line_short_description.
+*  ?other_description_lines
+*
+*  @lib ?library
+*  @since Series ?XX ?SeriesXX_version
+*/
+class Cdmatest : public CScriptBase, public MSmlDmCallback
+    {
+    
+    public:  // Constructors and destructor
+        
+        /**
+        * Destructor.
+        */
+        virtual ~Cdmatest();
+
+    public: // Functions from base classes
+
+        /**
+        * From CScriptBase Runs a script line.
+        * @since ?Series60_version
+        * @param aItem Script line containing method name and parameters
+        * @return Symbian OS error code
+        */
+        virtual TInt RunMethodL( CStifItemParser& aItem ) = 0;
+    
+
+	public:
+		/**
+		The function is used to return the data in case of FetchLeafObjectL(),
+		FetchLeafObjectSizeL() and ChildURIListL() functions. It should not be
+		called where the DM command has failed, i.e. the error code returned in
+		SetStatusL is something other than EOk.
+		@param aResultsRef	Reference to correct command
+		@param aObject		The data which should be returned
+		@param aType			MIME type of the object
+		@publishedPartner
+		@prototype
+		*/
+		void SetResultsL( TInt aResultsRef, CBufBase& aObject,
+								  const TDesC8& aType );
+		
+		/**
+		The function is used to return the data in case of FetchLeafObjectL() and
+		ChildURIListL() functions, where the size of the data being returned is
+		large enough for the Adapter to stream it. This function should not be
+		called when command was failed, i.e. the error code returned in SetStatusL
+		is something other than EOk.
+		@param aResultsRef	Reference to correct command
+		@param aStream		Large data which should be returned, DM engine
+								closes stream when it has read all the data
+		@param aType			MIME type of the object
+		@publishedPartner
+		@prototype
+		*/
+		void SetResultsL( TInt /*aResultsRef*/, RReadStream*& /*aStream*/,
+								  const TDesC8& /*aType*/ ) 
+		{
+			
+		}
+
+		/**
+		The function returns information about the Add,Update,Delete and Fetch
+		commands success to DM engine. The reference to correct command must be
+		used when calling the SetStatusL function, the reference is got from the
+		argument of the command functions. The SetStatusL function must be called
+		separately for every single command.
+		@param aStatusRef	Reference to correct command
+		@param aErrorCode	Information about the command success
+		@publishedPartner
+		@prototype
+		*/
+		void SetStatusL( TInt aStatusRef,
+								 MSmlDmAdapter::TError aErrorCode ) ;
+
+		/**
+		The function passes map information to DM Module. This function is called
+		for a new management object, both for node objects and for leaf objects.
+		In addition if ChildURIListL() function has returned new objects a mapping
+		information of the new objects must be passed. A mapping is treated as
+		inheritable. If the mapping is not set with this function, the mapping
+		LUID of the parent object is passed in following commands to the object.
+		@param aURI	URI of the object. 
+		@param aLUID	LUID of the object. LUID must contain the all information,
+						which is needed for retrieve the invidual object from the
+						database. Typically it is ID for the database table. In
+						more complicated structures it can be combination of IDs,
+						which represent path to the object.
+		@publishedPartner
+		@prototype
+		*/
+		void SetMappingL( const TDesC8& aURI, const TDesC8& aLUID );
+
+		/**
+		The function is used to make a fetch to other adapters. The most common
+		use is to make a fetch to the AP adapter, because when managing the access
+		points, the data comes as URI. For example, there are ToNAPId field in
+		some adapters, and data to it can be something like AP/IAPidx, and then
+		the link to AP adapter is needed.
+		Using FetchLinkL causes the DM Framework to make a Get request to the
+		appropriate DM adapter.  The receiving adapter MUST complete the Get
+		request synchronously.
+		@param aURI		URI of the object. 
+		@param aData		Reference to data, i.e. data is returned here
+		@param aStatus	The status of fetch command is returned here
+		@publishedPartner
+		@prototype
+		*/
+		void FetchLinkL( const TDesC8& /*aURI*/, CBufBase& /*aData*/,
+								 MSmlDmAdapter::TError& /*aStatus*/ ) 
+			{
+				
+			}
+
+		/**
+		The function returns the LUID which is mapped to aURI. If LUID is not
+		found, the function allocates a null length string, i.e. the function
+		allocates memory in every case.
+		@param aURI	URI of the object. 
+		@publishedPartner
+		@prototype
+		*/
+		HBufC8* GetLuidAllocL( const TDesC8& aURI ) ;
+
+#ifdef __TARM_SYMBIAN_CONVERGENCY
+    
+    void GetMappingInfoListL( const TDesC8& aURI,
+								CArrayFix<TSmlDmMappingInfo>& aSegmentList );
+
+#else
+// nothing
+#endif
+		        
+    protected:  // New functions
+
+        
+		void FetchNodeResultsL( TInt aResultsRef, CBufBase& aObject,
+							  const TDesC8& aType );
+		void SaveDataL( TInt aResultsRef, CBufBase& aObject,
+							  const TDesC8& aType ) ;
+							  
+		TPtrC8 LastURISeg( const TDesC8& aURI );
+		TPtrC8 RemoveLastURISeg( const TDesC8& aURI );
+		TPtrC RemoveLastURISeg( const TDesC& aURI );
+		void SetURIL( const TDesC& aURI );
+		void SetURIL( const TDesC8& aURI );
+		void SetURIL( HBufC8* aURI );		
+		HBufC8 *LoadFileLC( const TDesC &aFileName, TDataType &aType );
+		HBufC8 *LoadFileLC( const TDesC8 &aFileName, TDataType &aType );
+		HBufC8 *GetNextStringLC ( CStifItemParser& aItem, const TDesC &aName );
+		HBufC8* GetLuidAllocLC( const TDesC8& aURI ) ;
+		TPtrC8 RemoveLastSeg(const TDesC8& aURI);
+		
+		TInt FetchNodeL( CStifItemParser& aItem ) ;
+		TInt FetchLeafL( CStifItemParser& aItem ) ;
+		TInt AddNodeL( CStifItemParser& aItem );
+		TInt DeleteObjectL( CStifItemParser& aItem );	
+		TInt UpdateLeafL( CStifItemParser& aItem )	;
+		TInt UpdateLeafDataL( CStifItemParser& aItem ) ;
+		TInt UpdateLeafDataURLL( CStifItemParser& aItem ) ;
+		
+		TInt ExecuteLeafL ( CStifItemParser& aItem ) ;
+		TInt ExecuteLeafDataL ( CStifItemParser& aItem ) ;
+		TInt StartAtomicL( CStifItemParser& aItem )	;
+		TInt CommitAtomicL( CStifItemParser& aItem )	;
+		TInt RollbackAtomicL( CStifItemParser& aItem )	;
+		TInt CompleteCommandsL( CStifItemParser& aItem );
+		TInt DDFStructureL( CStifItemParser& aItem )	;
+//        TInt DeliverL( CStifItemParser& aItem ) ;
+//        TInt DetailsL( CStifItemParser& aItem ) ;
+//		TInt InstallL( CStifItemParser& aItem ) ;
+//		TInt BareInstallL( CStifItemParser& aItem ) ;		
+
+    protected:
+
+        /**
+        * C++ default constructor.
+        */
+        Cdmatest( CTestModuleIf& aTestModuleIf, TUid aUid );
+
+        /**
+        * By default Symbian 2nd phase constructor is private.
+        */
+        void ConstructL();
+
+        // Prohibit copy constructor if not deriving from CBase.
+        // Cdmatest( const Cdmatest& );
+        // Prohibit assigment operator if not deriving from CBase.
+        // Cdmatest& operator=( const Cdmatest& );
+
+		/**
+        * Frees all resources allocated from test methods.
+        * @since ?Series60_version
+        */
+        virtual void Delete();
+        void LoadMappingsL();
+        void SaveMappingsL();
+    public:     // Data
+        // ?one_line_short_description_of_data
+        //?data_declaration;
+    
+    protected:  // Data
+        // ?one_line_short_description_of_data
+        //?data_declaration;
+		MSmlDmAdapter::TError iStatus ;
+        ResultsFunction iResultsFunction;
+        //CSmlDmAdapter *iAdapter ;
+        CNSmlDSSettingsAdapter *iAdapter ;
+        HBufC8 *iURI; 
+        CArrayFix<TSmlDmMappingInfo> *iEmptyMappingInfoArray;
+		TFileName iSaveFileName;
+		RMappingArray iMappingTable;
+		TUid iUid;
+		TInt iCounter;
+		//class CNSmlDmMgmtTree* iMgmtTree;
+		class CNSmlDmMgmtTree* iMgmtTree;
+		CNSmlDSSettingsAdapter *Adapter() ;
+    };
+
+#endif      // __DMA_TEST_H__
+            
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/syncmlds/tsrc/inc/syncmldstest.h	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,133 @@
+/*
+* 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.
+*
+*/
+
+
+
+
+
+
+#ifndef TCTEST_H
+#define TCTEST_H
+
+//  INCLUDES
+#include <StifLogger.h>
+#include <TestScripterInternal.h>
+#include <StifTestModule.h>
+#include <smldmadapter.h>
+#include "dmatest.h"
+
+const TUint KNSmlDSSettingsAdapterImplUid = 0x101F6DED;
+	
+
+const TUid KAdapterUid = 
+		{
+		KNSmlDSSettingsAdapterImplUid
+		};
+// Logging path
+_LIT( KamtestLogPath, "\\logs\\testframework\\tctest\\" ); 
+// Log file
+_LIT( KamtestLogFile, "tctest.txt" ); 
+
+
+// FORWARD DECLARATIONS
+class CsyncmldsTest;
+
+
+// CLASS DECLARATION
+
+/**
+*  CsyncmldsTest test class for STIF Test Framework TestScripter.
+*  ?other_description_lines
+*
+*  @lib ?library
+*  @since ?Series60_version
+*/
+class CsyncmldsTest : public Cdmatest
+    {
+    public:  // Constructors and destructor
+        
+        /**
+        * Two-phased constructor.
+        */
+        static CsyncmldsTest* NewL( CTestModuleIf& aTestModuleIf );
+        
+        /**
+        * Destructor.
+        */
+        virtual ~CsyncmldsTest();
+
+    public: // Functions from base classes
+
+        /**
+        * From CScriptBase Runs a script line.
+        * @since ?Series60_version
+        * @param aItem Script line containing method name and parameters
+        * @return Symbian OS error code
+        */
+        virtual TInt RunMethodL( CStifItemParser& aItem );
+                
+
+    private:
+
+        /**
+        * C++ default constructor.
+        */
+        CsyncmldsTest( CTestModuleIf& aTestModuleIf );
+
+        /**
+        * By default Symbian 2nd phase constructor is private.
+        */
+        void ConstructL();
+
+        // Prohibit copy constructor if not deriving from CBase.
+        // ?classname( const ?classname& );
+        // Prohibit assigment operator if not deriving from CBase.
+        // ?classname& operator=( const ?classname& );
+    
+        /**
+        * Frees all resources allocated from test methods.
+        * @since ?Series60_version
+        */
+        virtual void Delete();
+        
+        /**
+        * Test methods are listed below. 
+        */
+        
+        /**
+        * Example test method.
+        * @since ?Series60_version
+        * @param aItem Script line containing parameters.
+        * @return Symbian OS error code.
+        */
+/*        virtual TInt ExampleL( CStifItemParser& aItem ) ;
+        virtual TInt DeliverL( CStifItemParser& aItem ) ;
+        virtual TInt DetailsL( CStifItemParser& aItem ) ;
+		    virtual TInt InstallL( CStifItemParser& aItem ) ;
+		    virtual TInt BareInstallL( CStifItemParser& aItem ) ;*/
+		
+
+    private:    // Data
+        HBufC8 *GetNextStringLC ( CStifItemParser& aItem, const TDesC &aName );
+
+
+    };
+
+#endif      // TCTEST_H
+            
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/syncmlds/tsrc/init/syncmldstest.ini	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,204 @@
+#
+# This is STIF initialization file
+# Comment lines start with '#'-character.
+# See STIF TestFramework users guide.doc for instructions
+
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+# Set following test engine settings:
+#	- Set Test Reporting mode. TestReportMode's possible values are:
+#		+ 'Summary': Summary of the tested test cases.
+#		+ 'Environment': Hardware and software info.
+#		+ 'TestCases': Test case report.
+#		+ 'FullReport': Set of all above ones.
+#		+ Example 'TestReportMode= Summary TestCases'
+#
+# 	- CreateTestReport setting controls report creation mode
+#		+ YES, Test report will created.
+#		+ NO, No Test report.
+#
+# 	- File path indicates the base path of the test report.
+# 	- File name indicates the name of the test report.
+#
+# 	- File format indicates the type of the test report.
+#		+ TXT, Test report file will be txt type, for example 'TestReport.txt'.
+#		+ HTML, Test report will be html type, for example 'TestReport.html'.
+#
+# 	- File output indicates output source of the test report.
+#		+ FILE, Test report logging to file.
+#		+ RDEBUG, Test report logging to using rdebug.
+#
+# 	- File Creation Mode indicates test report overwriting if file exist.
+#		+ OVERWRITE, Overwrites if the Test report file exist.
+#		+ APPEND, Continue logging after the old Test report information if
+#                 report exist.
+# 	- Sets a device reset module's dll name(Reboot).
+#		+ If Nokia specific reset module is not available or it is not correct one
+#		  StifHWResetStub module may use as a template for user specific reset
+#		  module.
+# 	- Sets STIF test measurement disable options. e.g. pluging1 and pluging2 disablation
+#		DisableMeasurement= stifmeasurementplugin01 stifmeasurementplugin02
+#
+
+[Engine_Defaults]
+
+TestReportMode= FullReport    # Possible values are: 'Empty', 'Summary', 'Environment',
+                                                     'TestCases' or 'FullReport'
+
+CreateTestReport= YES         # Possible values: YES or NO
+
+TestReportFilePath= C:\LOGS\TestFramework\
+TestReportFileName= TestReport
+
+TestReportFormat= TXT         # Possible values: TXT or HTML
+TestReportOutput= FILE        # Possible values: FILE or RDEBUG
+TestReportFileCreationMode= OVERWRITE # Possible values: OVERWRITE or APPEND
+
+DeviceResetDllName= StifResetForNokia.dll # e.g. 'StifHWResetStub.dll' for user specific reseting
+
+DisableMeasurement= stifmeasurementdisablenone  # Possible values are:
+              # 'stifmeasurementdisablenone', 'stifmeasurementdisableall'
+              # 'stifmeasurementplugin01', 'stifmeasurementplugin02',
+              # 'stifmeasurementplugin03', 'stifmeasurementplugin04',
+              # 'stifmeasurementplugin05' or 'stifbappeaprofiler'
+
+Timeout= 0                    # Default timeout value for each test case. In milliseconds
+#UITestingSupport= YES        # Possible values: YES or NO
+#SeparateProcesses= YES       # Possible values: YES or NO (default: NO)
+[End_Defaults]
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+
+
+
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+# Module configurations start
+# Modules are added between module tags
+# tags. Module name is specified after ModuleName= tag, like
+# ModuleName= XXXXXXXXX
+# Modules might have initialisation file, specified as
+# IniFile= c:\testframework\YYYYYY
+# Modules might have several configuration files, like
+# TestCaseFile= c:\testframework\NormalCases.txt
+# TestCaseFile= c:\testframework\SmokeCases.txt
+# TestCaseFile= c:\testframework\ManualCases.txt
+
+# (TestCaseFile is synonym for old term ConfigFile)
+
+# Following case specifies demo module settings. Demo module
+# does not read any settings from file, so tags 
+# IniFile and TestCaseFile are not used.
+# In the simplest case it is enough to specify only the
+# name of the test module when adding new test module
+
+#[New_Module]
+#ModuleName= demomodule
+#[End_Module]
+
+
+[New_Module]
+ModuleName= testscripter
+#DM
+TestCaseFile= c:\testframework\syncmldstest.cfg
+[End_Module]
+
+
+# Load testmoduleXXX, optionally with initialization file and/or test case files
+#[New_Module]
+#ModuleName= testmodulexxx
+
+#TestModuleXXX used initialization file
+#IniFile= c:\testframework\init.txt
+
+#TestModuleXXX used configuration file(s)
+#TestCaseFile= c:\testframework\testcases1.cfg
+#TestCaseFile= c:\testframework\testcases2.cfg
+#TestCaseFile= c:\testframework\manualtestcases.cfg
+
+#[End_Module]
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+
+
+
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+# Set STIF logging overwrite parameters for Logger.
+# 	Hardware and emulator environment logging path and styles can
+# 	be configured from here to overwrite the Logger's implemented values.
+#	
+#	Settings description:
+#	- Indicates option for creation log directory/directories. If log directory/directories
+#         is/are not created by user they will make by software.
+#		+ YES, Create log directory/directories if not allready exist.
+#		+ NO, Log directory/directories not created. Only created one is used.
+#
+#	- Overwrite emulator path setting.
+#		+ Example: If 'EmulatorBasePath= C:\LOGS\TestFramework\' and in code is defined 
+#		           Logger's path 'D:\\LOGS\\Module\\' with those definition the path
+#		           will be 'C:\LOGS\TestFramework\LOGS\Module\'
+#
+#	- Overwrite emulator's logging format.
+#		+ TXT, Log file(s) will be txt type(s), for example 'Module.txt'.
+#		+ HTML, Log file(s) will be html type(s), for example 'Module.html'.
+#
+#	- Overwrited emulator logging output source.
+#		+ FILE, Logging to file(s).
+#		+ RDEBUG, Logging to using rdebug(s).
+#
+#	- Overwrite hardware path setting (Same description as above in emulator path).
+#	- Overwrite hardware's logging format(Same description as above in emulator format).
+#	- Overwrite hardware's logging output source(Same description as above in emulator output).
+#
+#	- File Creation Mode indicates file overwriting if file exist.
+#		+ OVERWRITE, Overwrites if file(s) exist.
+#		+ APPEND, Continue logging after the old logging information if file(s) exist.
+#
+#	- Will thread id include to the log filename.
+#		+ YES, Thread id to log file(s) name, Example filename 'Module_b9.txt'.
+#		+ NO, No thread id to log file(s), Example filename 'Module.txt'.
+#
+#	- Will time stamps include the to log file.
+#		+ YES, Time stamp added to each line in log file(s). Time stamp is 
+#                 for example'12.Nov.2003 115958    LOGGING INFO'
+#		+ NO, No time stamp(s).
+#
+#	- Will line breaks include to the log file.
+#		+ YES, Each logging event includes line break and next log event is in own line.
+#		+ NO, No line break(s).
+#
+#	- Will event ranking include to the log file.
+#		+ YES, Event ranking number added to each line in log file(s). Ranking number
+#                 depends on environment's tics, for example(includes time stamp also)
+#                 '012   12.Nov.2003 115958    LOGGING INFO'
+#		+ NO, No event ranking.
+#
+#	- Will write log file in unicode format.
+#		+ YES, Log file will be written in unicode format
+#		+ NO, Log will be written as normal, not unicode, file.
+#
+
+[Logger_Defaults]
+
+#NOTE: If you want to set Logger using next setting(s) remove comment(s)'#'
+#NOTE: TestEngine and TestServer logging settings cannot change here
+
+#CreateLogDirectories= YES    # Possible values: YES or NO
+
+#EmulatorBasePath= C:\LOGS\TestFramework\
+#EmulatorFormat= HTML         # Possible values: TXT or HTML
+#EmulatorOutput= FILE         # Possible values: FILE or RDEBUG
+
+#HardwareBasePath= D:\LOGS\TestFramework\
+#HardwareFormat= HTML         # Possible values: TXT or HTML
+#HardwareOutput= FILE         # Possible values: FILE or RDEBUG
+
+#FileCreationMode= OVERWRITE  # Possible values: OVERWRITE or APPEND
+
+#ThreadIdToLogFile= YES       # Possible values: YES or NO
+#WithTimeStamp= YES           # Possible values: YES or NO
+#WithLineBreak= YES           # Possible values: YES or NO
+#WithEventRanking= YES        # Possible values: YES or NO
+
+#FileUnicode= YES             # Possible values: YES or NO
+#AddTestCaseTitle= YES        # Possible values: YES or NO
+[End_Logger_Defaults]
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+
+# End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/syncmlds/tsrc/src/TestDmDDFObject.cpp	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,516 @@
+/*
+* 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 "TestDmDDFObject.h"
+#include "StifLogger.h"
+
+// EXTERNAL DATA STRUCTURES
+//extern  ?external_data;
+
+// EXTERNAL FUNCTION PROTOTYPES  
+//extern ?external_function( ?arg_type,?arg_type );
+
+// CONSTANTS
+//const ?type ?constant_var = ?constant;
+
+// MACROS
+//#define ?macro ?macro_def
+
+// LOCAL CONSTANTS AND MACROS
+//const ?type ?constant_var = ?constant;
+//#define ?macro_name ?macro_def
+
+// MODULE DATA STRUCTURES
+//enum ?declaration
+//typedef ?declaration
+
+// LOCAL FUNCTION PROTOTYPES
+//?type ?function_name( ?arg_type, ?arg_type );
+
+// FORWARD DECLARATIONS
+//class ?FORWARD_CLASSNAME;
+
+// ============================= LOCAL FUNCTIONS ===============================
+
+
+
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CTestDmDDFObject::CTestDmDDFObject
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// -----------------------------------------------------------------------------
+//
+CTestDmDDFObject::CTestDmDDFObject( CStifLogger *aLog )
+	: iName( 0 )
+	, iAccessTypes()
+	, iDefaultValue( 0 )
+	, iDescription( 0 )
+	, iFormat( (TDFFormat)0 )
+	, iOccurence( (TOccurence)0 )
+	, iScope( (TScope)0 )
+	, iTitle ( 0 )
+	, iMimeType( 0 )
+	, iObjectGroup( EFalse )
+	, iLog( aLog )
+//	RPointerArray<CTestDmDDFObject> iChildren;
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CTestDmDDFObject::ConstructL
+// Symbian 2nd phase constructor can leave.
+// -----------------------------------------------------------------------------
+//
+void CTestDmDDFObject::ConstructL()
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CTestDmDDFObject::NewL
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CTestDmDDFObject* CTestDmDDFObject::NewL( CStifLogger *aLog )
+    {
+    CTestDmDDFObject* self = CTestDmDDFObject::NewLC( aLog );
+    CleanupStack::Pop( self );
+
+    return self;
+    }
+
+CTestDmDDFObject* CTestDmDDFObject::NewLC( CStifLogger *aLog )
+    {
+    CTestDmDDFObject* self = new( ELeave ) CTestDmDDFObject( aLog );
+    
+    CleanupStack::PushL( self );
+    self->ConstructL();
+
+    return self;
+    }
+
+    
+// Destructor
+CTestDmDDFObject::~CTestDmDDFObject()
+    {
+	delete iName;
+	delete iDefaultValue;
+	delete iDescription;
+	delete iTitle;
+	delete iMimeType;
+	iChildren.ResetAndDestroy();
+    }
+
+
+// -----------------------------------------------------------------------------
+// CTestDmDDFObject::?member_function
+// ?implementation_description
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+/*?type CTestDmDDFObject::?member_function(
+    ?arg_type arg,
+    ?arg_type arg )
+    {
+    
+    ?code
+    
+    }
+*/
+
+void CTestDmDDFObject::SetAccessTypesL( TSmlDmAccessTypes aAccessTypes )
+	{
+	iLog->Log( _L8( "SetAccessTypesL, aAccessTypes=%d" ), aAccessTypes.GetACL() );
+	iAccessTypes = aAccessTypes;
+	}
+
+void CTestDmDDFObject::SetDefaultValueL( const TDesC8& aDefaultValue )
+	{
+	iLog->Log( _L8( "SetDefaultValueL, aDefaultValue='%S'" ), &aDefaultValue );
+	delete iDefaultValue;
+	iDefaultValue = 0;
+	iDefaultValue = aDefaultValue.AllocL();
+	}
+
+void CTestDmDDFObject::SetDescriptionL( const TDesC8& aDescription )
+	{
+	iLog->Log( _L8( "SetDescriptionL, aDescription='%S'" ), &aDescription );
+	delete iDescription;
+	iDescription = 0;
+	iDescription = aDescription.AllocL();
+	}
+	
+void CTestDmDDFObject::SetDFFormatL( TDFFormat aFormat )
+	{
+	iLog->Log( _L8( "SetDFFormatL, aFormat=%d" ), aFormat );
+	iFormat = aFormat;
+	}
+	
+void CTestDmDDFObject::SetOccurenceL( TOccurence aOccurence )
+	{
+	iLog->Log( _L8( "SetOccurenceL, aOccurence=%d" ), aOccurence );
+	iOccurence = aOccurence;
+	}
+	
+void CTestDmDDFObject::SetScopeL( TScope aScope )
+	{
+	iLog->Log( _L8( "SetScopeL, aScope=%d" ), aScope );
+	iScope = aScope;
+	}
+	
+void CTestDmDDFObject::SetDFTitleL( const TDesC8& aTitle )
+	{
+	iLog->Log( _L8( "SetDFTitleL, aTitle='%S'" ), &aTitle );
+	delete iTitle;
+	iTitle = 0;
+	iTitle = aTitle.AllocL();
+	}
+	
+void CTestDmDDFObject::AddDFTypeMimeTypeL( const TDesC8& aMimeType )
+	{
+	iLog->Log( _L8( "AddDFTypeMimeTypeL, aMimeType='%S'" ), &aMimeType );
+	delete iMimeType;
+	iMimeType = 0;
+	iMimeType = aMimeType.AllocL();
+	}
+	
+void CTestDmDDFObject::SetAsObjectGroup()
+	{
+	iLog->Log( _L8( "SetAsObjectGroup, true" ) );
+	iObjectGroup = ETrue;
+	}
+	
+MSmlDmDDFObject& CTestDmDDFObject::AddChildObjectL(const TDesC8& aNodeName)
+	{
+	iLog->Log( _L8( "AddChildObjectL, aNodeName='%S'" ), &aNodeName );
+	CTestDmDDFObject* child = CTestDmDDFObject::NewLC( iLog ); //, aNodeName );
+	child->SetNameL( aNodeName );
+	iChildren.AppendL( child );
+	CleanupStack::Pop( child ); // Don't destroy
+	return *child;
+	}
+
+MSmlDmDDFObject& CTestDmDDFObject::AddChildObjectGroupL()
+	{
+	iLog->Log( _L8( "AddChildObjectGroupL, ''" ) );
+	CTestDmDDFObject* child = CTestDmDDFObject::NewLC( iLog ); //, KNullDesC );
+	child->SetAsObjectGroup();
+	iChildren.AppendL( child );
+	CleanupStack::Pop( child ); // Don't destroy
+	return *child;
+	}
+
+// Own functions
+
+void CTestDmDDFObject::SetNameL( const TDesC8& aName )
+	{
+	delete iName;
+	iName = 0;
+	iName = aName.AllocL();
+	}
+
+void CTestDmDDFObject::DumpL( const TDesC8& aParentName, TBool aFullDump )
+	{
+	TPtrC8 name( _L8("<X>") );
+	if (iName && iName->Length() > 0)
+		{
+		name.Set( *iName );
+		}
+
+	HBufC8* fullName = HBufC8::NewLC( aParentName.Length() + name.Length() + 1 );
+	*fullName = aParentName;
+	if (aParentName.Length() > 0 && aParentName[ aParentName.Length() - 1 ] != '/')
+		{
+		fullName->Des().Append( _L8("/"));
+		}
+	fullName->Des().Append( name );
+
+	/* Translate some members to text for dumping */
+	TBuf8<20> strAccessTypes;
+	TUint8 accessTypes = iAccessTypes.GetACL();
+	if ((accessTypes & iAccessTypes.EAccessType_Add) != 0)
+		{
+		strAccessTypes.Append( _L8("A") );
+		}
+	if ((accessTypes & iAccessTypes.EAccessType_Copy) != 0)
+		{
+		strAccessTypes.Append( _L8("C") );
+		}
+	if ((accessTypes & iAccessTypes.EAccessType_Delete) != 0)
+		{
+		strAccessTypes.Append( _L8("D") );
+		}
+	if ((accessTypes & iAccessTypes.EAccessType_Exec) != 0)
+		{
+		strAccessTypes.Append( _L8("E") );
+		}
+	if ((accessTypes & iAccessTypes.EAccessType_Get) != 0)
+		{
+		strAccessTypes.Append( _L8("G") );
+		}
+	if ((accessTypes & iAccessTypes.EAccessType_Replace) != 0)
+		{
+		strAccessTypes.Append( _L8("R") );
+		}
+	
+	TBuf8<20> strFormat;
+	switch( iFormat )
+		{
+	case EB64:
+		strFormat = _L8("Base64");
+		break;
+	case EBool:
+		strFormat = _L8("Bool");
+		break;
+	case EChr:
+		strFormat = _L8("Chr");
+		break;
+	case EInt:
+		strFormat = _L8("Int");
+		break;
+	case ENode:
+		strFormat = _L8("Node");
+		break;
+	case ENull:
+		strFormat = _L8("Null");
+		break;
+	case EXml:
+		strFormat = _L8("Xml");
+		break;
+	case EBin:
+		strFormat = _L8("Bin");
+		break;
+	default:
+		break;
+		}
+
+
+	TBuf8<20> strOccurence;
+	switch( iOccurence )
+		{
+	case EOne:
+		/** The node appears exactly once */
+		strOccurence = _L8("M:1");
+		break;
+	case EZeroOrOne:
+		/** The node is optional and may appear zero or once */
+		strOccurence = _L8("O:0-1");
+		break;
+	case EZeroOrMore:
+		/** The node is optional and may appear zero or more times */
+		strOccurence = _L8("O:0-*");
+		break;
+	case EOneOrMore:
+		/** The node is mandatory and may appear once or more times */
+		strOccurence = _L8("M:1-*");
+		break;
+	case EZeroOrN:
+		/** The node is optional and may appear between once and 'N' times */
+		strOccurence = _L8("O:1-N");
+		break;
+	case EOneOrN:
+		/** The node is mandatory and may appear between once and 'N' times */
+		strOccurence = _L8("M:1-N");
+		break;
+	default:
+		break;
+		}
+	
+	
+	TBuf8<20> strScope;
+	switch( iScope)
+		{
+	case EPermanent:
+		/** The node appears exactly once */
+		strScope = _L8("Permanent");
+		break;
+	case EDynamic:
+		/** The node is optional and may appear zero or once */
+		strScope = _L8("O:Dynamic");
+		break;
+	default:
+		break;
+		}
+
+	
+	/* Dump main data */
+	if (aFullDump)
+		{
+		iLog->Log( _L8( "DDFObject: '%S'" ), fullName );
+		}
+		else
+		{
+		iLog->Log( _L8( "DDFObject: '%S'   (%S), %S, %S, %S" ),
+					fullName, &strAccessTypes, &strFormat, &strOccurence, &strScope );
+		}
+	
+	/* Dump members */
+	if (aFullDump)
+		{
+		TPtrC8 empty( _L8( "<null>" ) );
+		#define CHK_NULL(a) ((a)==0?(TDesC8*)(&empty):(TDesC8*)(a))
+
+		iLog->Log( _L8( "    iName=='%S'" ), iName );
+		iLog->Log( _L8( "    iAccessTypes=%d (%S)" ), iAccessTypes.GetACL(), &strAccessTypes );
+		iLog->Log( _L8( "    iDefaultValue='%S'" ), CHK_NULL(iDefaultValue));
+		iLog->Log( _L8( "    iDescription='%S'" ), CHK_NULL(iDescription ));
+		iLog->Log( _L8( "    iFormat=%d (%S)" ), iFormat, &strFormat );
+		iLog->Log( _L8( "    iOccurence=%d (%S)" ), iOccurence, &strOccurence );
+		iLog->Log( _L8( "    iScope=%d (%S)" ), iScope, &strScope );
+		iLog->Log( _L8( "    iTitle='%S'" ), CHK_NULL(iTitle ));
+		iLog->Log( _L8( "    iMimeType='%S'" ), CHK_NULL(iMimeType ));
+		iLog->Log( _L8( "----------------------------------" ) );
+		}
+	
+	/* Dump children */
+	for (TInt i = 0 ; i < iChildren.Count() ; i++)
+		{
+		iChildren[i]->DumpL( *fullName, aFullDump );
+		}
+
+	CleanupStack::PopAndDestroy( fullName );
+	}
+
+/*
+void CTestDmDDFObject::ExternalizeL(RWriteStream& aStream) const
+	{
+	X;
+	aStream << *iName << eol;
+	}
+*/
+
+const TDesC8& CTestDmDDFObject::Name()
+	{
+	return (iName != 0) ? *iName : KNullDesC8();
+	}
+
+TSmlDmAccessTypes  CTestDmDDFObject::AccessTypes()
+	{
+	return iAccessTypes;
+	}
+
+const TDesC8& CTestDmDDFObject::DefaultValue()
+	{
+	return (iDefaultValue != 0) ? *iDefaultValue : KNullDesC8();
+	}
+
+const TDesC8& CTestDmDDFObject::Description()
+	{
+	return (iDescription != 0) ? *iDescription : KNullDesC8();
+	}
+
+CTestDmDDFObject::TDFFormat CTestDmDDFObject::DFFormat()
+	{
+	return iFormat;
+	}
+
+CTestDmDDFObject::TOccurence CTestDmDDFObject::Occurence()
+	{
+	return iOccurence;
+	}
+
+CTestDmDDFObject::TScope CTestDmDDFObject::Scope()
+	{
+	return iScope;
+	}
+
+const TDesC8& CTestDmDDFObject::DFTitle()
+	{
+	return (iTitle != 0) ? *iTitle : KNullDesC8();
+	}
+
+const TDesC8& CTestDmDDFObject::DFTypeMimeType()
+	{
+	return (iMimeType != 0) ? *iMimeType : KNullDesC8();
+	}
+
+TBool CTestDmDDFObject::ObjectGroup()
+	{
+	return iObjectGroup;
+	}
+
+TInt CTestDmDDFObject::ChildObjectCount()
+	{
+	return iChildren.Count();
+	}
+
+CTestDmDDFObject& CTestDmDDFObject::ChildObject( TInt aIndex )
+	{
+	return *iChildren[aIndex];
+	}
+
+CTestDmDDFObject* CTestDmDDFObject::FindChildObject( const TDesC8& aName )
+	{
+	CTestDmDDFObject* foundObject = 0;
+
+	for (TInt i = 0 ; i < iChildren.Count() ; i++)
+		{
+		if ( aName.CompareC( iChildren[i]->Name() ) == 0 )
+			{
+			foundObject = iChildren[i];
+			break;
+			}
+		}
+
+	return foundObject;
+	}
+
+TInt CTestDmDDFObject::SubObjectsCount()
+	{
+	TInt count = 0;
+
+	TInt i;
+	for (i = 0 ; i < iChildren.Count() ; i++)
+		{
+		count += iChildren[i]->SubObjectsCount();
+		}
+	count += i;
+
+	return count;
+	}
+
+/*
+// ========================== OTHER EXPORTED FUNCTIONS =========================
+
+// -----------------------------------------------------------------------------
+// ?function_name implements...
+// ?implementation_description.
+// Returns: ?value_1: ?description
+//          ?value_n: ?description
+//                    ?description
+// -----------------------------------------------------------------------------
+//
+?type  ?function_name(
+    ?arg_type arg,  // ?description
+    ?arg_type arg )  // ?description
+    {
+
+    ?code
+
+    }
+*/
+//  End of File  
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/syncmlds/tsrc/src/dmatest.cpp	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,954 @@
+/*
+* 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 );
+		}
+    }
+    
+CNSmlDSSettingsAdapter *Cdmatest::Adapter()  
+	{
+	if ( iAdapter == NULL )
+		{
+		if ( iLog )
+			{
+			iLog->Log( _L( "Loading Adapter" ) );
+			}
+  		
+  		TRAPD( err, iAdapter = (CNSmlDSSettingsAdapter*) 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
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/syncmlds/tsrc/src/syncmldstest.cpp	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,117 @@
+/*
+* 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 <Stiftestinterface.h>
+#include "syncmldsTest.h"
+#include <stiflogger.h>
+
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CsyncmldsTest::CsyncmldsTest
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// -----------------------------------------------------------------------------
+//
+/*CsyncmldsTest::CsyncmldsTest( 
+    CTestModuleIf& aTestModuleIf ):
+        CScriptBase( aTestModuleIf )
+    {
+    }*/
+CsyncmldsTest::CsyncmldsTest( CTestModuleIf& aTestModuleIf )
+		: Cdmatest( aTestModuleIf, KAdapterUid )
+    {
+    }
+// -----------------------------------------------------------------------------
+// CsyncmldsTest::ConstructL
+// Symbian 2nd phase constructor can leave.
+// -----------------------------------------------------------------------------
+//
+void CsyncmldsTest::ConstructL()
+    {
+/*    iLog = CStifLogger::NewL( KamtestLogPath, 
+                          KamtestLogFile,
+                          CStifLogger::ETxt,
+                          CStifLogger::EFile,
+                          EFalse );*///Commented the Part for syncmldsTest Dipak
+    iLog = CStifLogger::NewL( KamtestLogPath, 
+                          KamtestLogFile,
+                          CStifLogger::ETxt,
+                          CStifLogger::EFile );
+                          
+    iLog->Log( _L( "Loading Adapter" ) );
+    
+	Cdmatest::ConstructL();                         	
+
+    }
+
+// -----------------------------------------------------------------------------
+// CsyncmldsTest::NewL
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CsyncmldsTest* CsyncmldsTest::NewL( 
+    CTestModuleIf& aTestModuleIf )
+    {
+    CsyncmldsTest* self = new (ELeave) CsyncmldsTest( aTestModuleIf );
+    
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop();
+
+    return self;
+    
+    }
+    
+// Destructor
+CsyncmldsTest::~CsyncmldsTest()
+    { 
+    
+    // Delete resources allocated from test methods
+//    Delete();
+    
+    // Delete logger
+//    delete iLog;  
+    
+    }
+
+// ========================== OTHER EXPORTED FUNCTIONS =========================
+
+// -----------------------------------------------------------------------------
+// LibEntryL is a polymorphic Dll entry point.
+// Returns: CScriptBase: New CScriptBase derived object
+// -----------------------------------------------------------------------------
+//
+EXPORT_C CScriptBase* LibEntryL( 
+    CTestModuleIf& aTestModuleIf ) // Backpointer to STIF Test Framework
+    {
+    
+    return ( CScriptBase* ) CsyncmldsTest::NewL( aTestModuleIf );
+        
+    }
+
+
+    
+//  End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/omadmadapters/syncmlds/tsrc/src/syncmldstestBlocks.cpp	Tue Jul 13 03:44:34 2010 +0530
@@ -0,0 +1,108 @@
+/*
+* 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 <e32svr.h>
+#include <StifParser.h>
+#include <Stiftestinterface.h>
+#include "syncmldsTest.h"
+#include <e32math.h>
+#include <f32file.h>
+#include <swinstapi.h>
+
+
+//using namespace NApplicationManagement;//Dipak
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CsyncmldsTest::Delete
+// Delete here all resources allocated and opened from test methods. 
+// Called from destructor. 
+// -----------------------------------------------------------------------------
+//
+void CsyncmldsTest::Delete() 
+    {
+    
+    }
+    
+// -----------------------------------------------------------------------------
+// CsyncmldsTest::RunMethodL
+// Run specified method. Contains also table of test mothods and their names.
+// -----------------------------------------------------------------------------
+//
+TInt CsyncmldsTest::RunMethodL( 
+    CStifItemParser& aItem ) 
+    {
+   
+    TStifFunctionInfo const KFunctions[] =
+        {  
+        // Copy this line for every implemented function.
+        // First string is the function name used in TestScripter script file.
+        // Second is the actual implementation member function. 
+        ENTRY( "DDFStructure", CsyncmldsTest::DDFStructureL),
+        ENTRY( "FetchNode", CsyncmldsTest::FetchNodeL ),
+        ENTRY( "FetchLeaf", CsyncmldsTest::FetchLeafL ),
+        ENTRY( "AddNode", CsyncmldsTest::AddNodeL ),
+        ENTRY( "UpdateLeaf", CsyncmldsTest::UpdateLeafL ),
+        ENTRY( "UpdateLeafData", CsyncmldsTest::UpdateLeafDataL ),
+        ENTRY( "Execute", CsyncmldsTest::ExecuteLeafL ),
+        ENTRY( "ExecuteData", CsyncmldsTest::ExecuteLeafDataL ),
+        ENTRY( "DeleteNode", CsyncmldsTest::DeleteObjectL ),
+        ENTRY( "StartAtomic", CsyncmldsTest::StartAtomicL),
+	    ENTRY( "CommitAtomic", CsyncmldsTest::CommitAtomicL),
+	    ENTRY( "RollbackAtomic", CsyncmldsTest::RollbackAtomicL),
+	    ENTRY( "CompleteCommands", CsyncmldsTest::CompleteCommandsL),
+        };
+
+    const TInt count = sizeof( KFunctions ) / 
+                        sizeof( TStifFunctionInfo );
+
+    return RunInternalL( KFunctions, count, aItem );
+
+    }    
+
+        
+        
+HBufC8 *CsyncmldsTest::GetNextStringLC ( CStifItemParser& aItem, const TDesC &aName )
+	{
+	TPtrC nodename;
+	nodename.Set( 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;
+	}
+
+//  End of File