Revision: 201005
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Fri, 19 Mar 2010 09:40:39 +0200
changeset 17 aabe5387f5ce
parent 0 d0791faffa3f
child 18 1b39655331a3
Revision: 201005 Kit: 201011
connectivitymodules/SeCon/apple/S60_RnD_32.phoneplugin/Contents/Info.plist
connectivitymodules/SeCon/apple/S60_RnD_32.phoneplugin/Contents/Resources/MetaClasses.plist
connectivitymodules/SeCon/apple/S60_RnD_32.phoneplugin/Contents/Resources/PhoneConduit.plist
connectivitymodules/SeCon/apple/S60_RnD_32.phoneplugin/Contents/Resources/SyncEngine.plist
connectivitymodules/SeCon/apple/S60_RnD_32.phoneplugin/Contents/Resources/com.nokia.S6032.tiff
connectivitymodules/SeCon/apple/S60_RnD_32.pkg/Contents/Archive.bom
connectivitymodules/SeCon/apple/S60_RnD_32.pkg/Contents/Archive.pax.gz
connectivitymodules/SeCon/apple/S60_RnD_32.pkg/Contents/Info.plist
connectivitymodules/SeCon/apple/S60_RnD_32.pkg/Contents/PkgInfo
connectivitymodules/SeCon/apple/S60_RnD_32.pkg/Contents/Resources/Description.plist
connectivitymodules/SeCon/apple/S60_RnD_32.pkg/Contents/Resources/English.lproj/ReadMe.rtf
connectivitymodules/SeCon/apple/S60_RnD_32.pkg/Contents/Resources/IFRequirement.strings
connectivitymodules/SeCon/apple/S60_RnD_32.pkg/Contents/Resources/PhonePlugin.info
connectivitymodules/SeCon/apple/S60_RnD_32.pkg/Contents/Resources/TokenDefinitions.plist
connectivitymodules/SeCon/apple/S60_RnD_32.pkg/Contents/Resources/Welcome.rtf
connectivitymodules/SeCon/apple/S60_RnD_32.pkg/Contents/Resources/en.lproj/Description.plist
connectivitymodules/SeCon/apple/S60_RnD_32.pkg/Contents/Resources/package_version
connectivitymodules/SeCon/apple/S60_RnD_32.ppdoc/Icon.tiff
connectivitymodules/SeCon/apple/S60_RnD_32.ppdoc/InstallerReadMe-en.rtf
connectivitymodules/SeCon/apple/S60_RnD_32.ppdoc/Properties.plist
connectivitymodules/SeCon/catalogspcconnectivityplugin/bwins/catalogspcconnectivitypluginu.def
connectivitymodules/SeCon/catalogspcconnectivityplugin/eabi/catalogspcconnectivitypluginu.def
connectivitymodules/SeCon/catalogspcconnectivityplugin/group/bld.inf
connectivitymodules/SeCon/catalogspcconnectivityplugin/group/catalogspcconnectivityplugin.mmp
connectivitymodules/SeCon/catalogspcconnectivityplugin/inc/catalogspcconnectivityclient.h
connectivitymodules/SeCon/catalogspcconnectivityplugin/inc/catalogspcconnectivitydefines.h
connectivitymodules/SeCon/catalogspcconnectivityplugin/inc/catalogspcconnectivityplugin.h
connectivitymodules/SeCon/catalogspcconnectivityplugin/src/catalogspcconnectivityclient.cpp
connectivitymodules/SeCon/catalogspcconnectivityplugin/src/catalogspcconnectivityplugin.cpp
connectivitymodules/SeCon/clients/pcconn/bld/bld.inf
connectivitymodules/SeCon/clients/pcconn/bld/def/bwinscwu.def
connectivitymodules/SeCon/clients/pcconn/bld/def/eabiuu.def
connectivitymodules/SeCon/clients/pcconn/bld/sconpcconnclient.mmp
connectivitymodules/SeCon/clients/pcconn/inc/sconpcconnclient.h
connectivitymodules/SeCon/clients/pcconn/src/sconpcconnclient.cpp
connectivitymodules/SeCon/cntparser/bld/bld.inf
connectivitymodules/SeCon/cntparser/bld/cntparsersrv.mmp
connectivitymodules/SeCon/cntparser/bld/cntparsersrvexe.mmp
connectivitymodules/SeCon/cntparser/bld/def/bwinscwu.def
connectivitymodules/SeCon/cntparser/bld/def/eabiuu.def
connectivitymodules/SeCon/cntparser/inc/clientserver.h
connectivitymodules/SeCon/cntparser/inc/cntparserclient.h
connectivitymodules/SeCon/cntparser/inc/cntparsercollector.h
connectivitymodules/SeCon/cntparser/inc/cntparserinfolog.h
connectivitymodules/SeCon/cntparser/inc/cntparserserver.h
connectivitymodules/SeCon/cntparser/inc/cntparserserversession.h
connectivitymodules/SeCon/cntparser/inc/irmcconsts.h
connectivitymodules/SeCon/cntparser/src/cntparserclient.cpp
connectivitymodules/SeCon/cntparser/src/cntparsercollector.cpp
connectivitymodules/SeCon/cntparser/src/cntparserinfolog.cpp
connectivitymodules/SeCon/cntparser/src/cntparserserverexe.cpp
connectivitymodules/SeCon/cntparser/src/cntparserserversession.cpp
connectivitymodules/SeCon/common/conmltask/inc/sconconmltask.h
connectivitymodules/SeCon/common/conmltask/src/sconconmltask.cpp
connectivitymodules/SeCon/group/bld.inf
connectivitymodules/SeCon/group/stubs/createstubs.bat
connectivitymodules/SeCon/group/stubs/sconftpplugin_stub.SIS
connectivitymodules/SeCon/group/stubs/sconftpplugin_stub.pkg
connectivitymodules/SeCon/group/stubs/sconpcconnplugin_stub.SIS
connectivitymodules/SeCon/group/stubs/sconpcconnplugin_stub.pkg
connectivitymodules/SeCon/group/stubs/secon_stub.SIS
connectivitymodules/SeCon/group/stubs/secon_stub.pkg
connectivitymodules/SeCon/inc/debug.h
connectivitymodules/SeCon/plugins/ftp/bld/bld.inf
connectivitymodules/SeCon/plugins/ftp/bld/def/bwinscwU.DEF
connectivitymodules/SeCon/plugins/ftp/bld/def/eabiU.DEF
connectivitymodules/SeCon/plugins/ftp/bld/sconftpplugin.mmp
connectivitymodules/SeCon/plugins/ftp/inc/sconftpplugin.h
connectivitymodules/SeCon/plugins/ftp/inc/sconftppluginutils.h
connectivitymodules/SeCon/plugins/ftp/inc/sconservicetimer.h
connectivitymodules/SeCon/plugins/ftp/inc/sconshutdownwatcher.h
connectivitymodules/SeCon/plugins/ftp/src/101f9686.rss
connectivitymodules/SeCon/plugins/ftp/src/proxy.cpp
connectivitymodules/SeCon/plugins/ftp/src/sconftpplugin.cpp
connectivitymodules/SeCon/plugins/ftp/src/sconftppluginutils.cpp
connectivitymodules/SeCon/plugins/ftp/src/sconservicetimer.cpp
connectivitymodules/SeCon/plugins/ftp/src/sconshutdownwatcher.cpp
connectivitymodules/SeCon/plugins/hapticsconnplugin/data/2001FE54.rss
connectivitymodules/SeCon/plugins/hapticsconnplugin/group/bld.inf
connectivitymodules/SeCon/plugins/hapticsconnplugin/group/hapticsconnplugin.mmp
connectivitymodules/SeCon/plugins/hapticsconnplugin/inc/hapticsbridgeclient.h
connectivitymodules/SeCon/plugins/hapticsconnplugin/inc/hapticsconnplugin.h
connectivitymodules/SeCon/plugins/hapticsconnplugin/inc/hapticsconntimer.h
connectivitymodules/SeCon/plugins/hapticsconnplugin/inc/hapticsconntrace.h
connectivitymodules/SeCon/plugins/hapticsconnplugin/inc/hapticsmsghandler.h
connectivitymodules/SeCon/plugins/hapticsconnplugin/rom/hapticsconnplugin.iby
connectivitymodules/SeCon/plugins/hapticsconnplugin/src/hapticsbridgeclient.cpp
connectivitymodules/SeCon/plugins/hapticsconnplugin/src/hapticsconnplugin.cpp
connectivitymodules/SeCon/plugins/hapticsconnplugin/src/hapticsconntimer.cpp
connectivitymodules/SeCon/plugins/hapticsconnplugin/src/hapticsmsghandler.cpp
connectivitymodules/SeCon/plugins/hapticsconnplugin/src/proxy.cpp
connectivitymodules/SeCon/plugins/pcconn/bld/bld.inf
connectivitymodules/SeCon/plugins/pcconn/bld/def/bwinscwu.def
connectivitymodules/SeCon/plugins/pcconn/bld/def/eabiu.def
connectivitymodules/SeCon/plugins/pcconn/bld/sconpcconnplugin.mmp
connectivitymodules/SeCon/plugins/pcconn/inc/sconpcconnplugin.h
connectivitymodules/SeCon/plugins/pcconn/inc/sconpcconnpluginutils.h
connectivitymodules/SeCon/plugins/pcconn/inc/sconservicetimer.h
connectivitymodules/SeCon/plugins/pcconn/inc/sconshutdownwatcher.h
connectivitymodules/SeCon/plugins/pcconn/src/101f9688.rss
connectivitymodules/SeCon/plugins/pcconn/src/proxy.cpp
connectivitymodules/SeCon/plugins/pcconn/src/sconpcconnplugin.cpp
connectivitymodules/SeCon/plugins/pcconn/src/sconpcconnpluginutils.cpp
connectivitymodules/SeCon/plugins/pcconn/src/sconservicetimer.cpp
connectivitymodules/SeCon/plugins/pcconn/src/sconshutdownwatcher.cpp
connectivitymodules/SeCon/rom/cntparser.iby
connectivitymodules/SeCon/rom/sconcsc.iby
connectivitymodules/SeCon/rom/sconftp.iby
connectivitymodules/SeCon/rom/sconftpplugin.iby
connectivitymodules/SeCon/rom/sconftpresources.iby
connectivitymodules/SeCon/rom/sconpcconnclientserver.iby
connectivitymodules/SeCon/rom/sconpcconnplugin.iby
connectivitymodules/SeCon/rom/sconpcd.iby
connectivitymodules/SeCon/servers/pcconn/bld/bld.inf
connectivitymodules/SeCon/servers/pcconn/bld/sconpcconnserver.mmp
connectivitymodules/SeCon/servers/pcconn/inc/sconpcconnclientserver.h
connectivitymodules/SeCon/servers/pcconn/inc/sconpcconnserver.h
connectivitymodules/SeCon/servers/pcconn/src/sconpcconnserver.cpp
connectivitymodules/SeCon/services/csc/bld/101F9698.xml
connectivitymodules/SeCon/services/csc/bld/101F99F6.xml
connectivitymodules/SeCon/services/csc/bld/bld.inf
connectivitymodules/SeCon/services/csc/bld/def/bwinscwu.def
connectivitymodules/SeCon/services/csc/bld/def/eabiuu.def
connectivitymodules/SeCon/services/csc/bld/fwdcomp.xml
connectivitymodules/SeCon/services/csc/bld/sconcsc.mmp
connectivitymodules/SeCon/services/csc/inc/capability.h
connectivitymodules/SeCon/services/csc/inc/capinfo.h
connectivitymodules/SeCon/services/csc/inc/caplist.h
connectivitymodules/SeCon/services/csc/inc/capparser.h
connectivitymodules/SeCon/services/csc/inc/caputils.h
connectivitymodules/SeCon/services/csc/inc/sconcsc.h
connectivitymodules/SeCon/services/csc/inc/sconsyncservice.h
connectivitymodules/SeCon/services/csc/inc/sconversioninfo.h
connectivitymodules/SeCon/services/csc/inc/stringlist.h
connectivitymodules/SeCon/services/csc/src/capinfo.cpp
connectivitymodules/SeCon/services/csc/src/caplist.cpp
connectivitymodules/SeCon/services/csc/src/capparser.cpp
connectivitymodules/SeCon/services/csc/src/caputils.cpp
connectivitymodules/SeCon/services/csc/src/sconcsc.cpp
connectivitymodules/SeCon/services/csc/src/sconsyncservice.cpp
connectivitymodules/SeCon/services/csc/src/sconversioninfo.cpp
connectivitymodules/SeCon/services/csc/src/stringlist.cpp
connectivitymodules/SeCon/services/ftp/bld/bld.inf
connectivitymodules/SeCon/services/ftp/bld/def/bwinscwu.def
connectivitymodules/SeCon/services/ftp/bld/def/eabiuu.def
connectivitymodules/SeCon/services/ftp/bld/sconftp.mmp
connectivitymodules/SeCon/services/ftp/inc/sconconstants.h
connectivitymodules/SeCon/services/ftp/inc/sconconsts.h
connectivitymodules/SeCon/services/ftp/inc/sconfshandler.h
connectivitymodules/SeCon/services/ftp/inc/sconftp.h
connectivitymodules/SeCon/services/ftp/inc/sconinboxhandler.h
connectivitymodules/SeCon/services/ftp/loc/sconftp.loc
connectivitymodules/SeCon/services/ftp/src/sconfshandler.cpp
connectivitymodules/SeCon/services/ftp/src/sconftp.cpp
connectivitymodules/SeCon/services/ftp/src/sconftp.rss
connectivitymodules/SeCon/services/ftp/src/sconinboxhandler.cpp
connectivitymodules/SeCon/services/pcd/bld/bld.inf
connectivitymodules/SeCon/services/pcd/bld/def/bwinscwu.def
connectivitymodules/SeCon/services/pcd/bld/def/eabiuu.def
connectivitymodules/SeCon/services/pcd/bld/sbeconfig.xml
connectivitymodules/SeCon/services/pcd/bld/sconpcd.mmp
connectivitymodules/SeCon/services/pcd/inc/cscontimeout.h
connectivitymodules/SeCon/services/pcd/inc/sconbackuprestore.h
connectivitymodules/SeCon/services/pcd/inc/sconbrqueue.h
connectivitymodules/SeCon/services/pcd/inc/sconinstaller.h
connectivitymodules/SeCon/services/pcd/inc/sconinstqueue.h
connectivitymodules/SeCon/services/pcd/inc/sconmetadata.h
connectivitymodules/SeCon/services/pcd/inc/sconmetadatafielddefs.h
connectivitymodules/SeCon/services/pcd/inc/sconpcd.h
connectivitymodules/SeCon/services/pcd/inc/sconpcdconsts.h
connectivitymodules/SeCon/services/pcd/inc/sconpcdutility.h
connectivitymodules/SeCon/services/pcd/inc/sconqueue.h
connectivitymodules/SeCon/services/pcd/inc/sconsbeclient.h
connectivitymodules/SeCon/services/pcd/inc/sconvideoparser.h
connectivitymodules/SeCon/services/pcd/src/cscontimeout.cpp
connectivitymodules/SeCon/services/pcd/src/sconbackuprestore.cpp
connectivitymodules/SeCon/services/pcd/src/sconbrqueue.cpp
connectivitymodules/SeCon/services/pcd/src/sconinstaller.cpp
connectivitymodules/SeCon/services/pcd/src/sconinstqueue.cpp
connectivitymodules/SeCon/services/pcd/src/sconmetadata.cpp
connectivitymodules/SeCon/services/pcd/src/sconpcd.cpp
connectivitymodules/SeCon/services/pcd/src/sconpcdutility.cpp
connectivitymodules/SeCon/services/pcd/src/sconqueue.cpp
connectivitymodules/SeCon/services/pcd/src/sconsbeclient.cpp
connectivitymodules/SeCon/services/pcd/src/sconvideoparser.cpp
connectivitymodules/SeCon/wbxml/conmlhandler/bld/bld.inf
connectivitymodules/SeCon/wbxml/conmlhandler/bld/def/bwinscwu.def
connectivitymodules/SeCon/wbxml/conmlhandler/bld/def/eabiu.def
connectivitymodules/SeCon/wbxml/conmlhandler/bld/sconconmlhandler.mmp
connectivitymodules/SeCon/wbxml/conmlhandler/inc/sconconmldtd.h
connectivitymodules/SeCon/wbxml/conmlhandler/inc/sconconmlgenerator.h
connectivitymodules/SeCon/wbxml/conmlhandler/inc/sconconmlhandler.h
connectivitymodules/SeCon/wbxml/conmlhandler/inc/sconconmlhandlererror.h
connectivitymodules/SeCon/wbxml/conmlhandler/inc/sconconmltags.h
connectivitymodules/SeCon/wbxml/conmlhandler/inc/sconwbxmldefs.h
connectivitymodules/SeCon/wbxml/conmlhandler/inc/sconwbxmlparser.inl
connectivitymodules/SeCon/wbxml/conmlhandler/inc/sconxmlelement.h
connectivitymodules/SeCon/wbxml/conmlhandler/inc/sconxmlelement.inl
connectivitymodules/SeCon/wbxml/conmlhandler/inc/sconxmlstack.h
connectivitymodules/SeCon/wbxml/conmlhandler/inc/sconxmlstack.inl
connectivitymodules/SeCon/wbxml/conmlhandler/inc/sconxmlworkspace.h
connectivitymodules/SeCon/wbxml/conmlhandler/src/sconconmldtd.cpp
connectivitymodules/SeCon/wbxml/conmlhandler/src/sconconmlgenerator.cpp
connectivitymodules/SeCon/wbxml/conmlhandler/src/sconconmlhandler.cpp
connectivitymodules/SeCon/wbxml/conmlhandler/src/sconxmlelement.cpp
connectivitymodules/SeCon/wbxml/conmlhandler/src/sconxmlworkspace.cpp
connectivitymodules/group/bld.inf
group/bld.inf
mtpdataproviders/mtpfileandfolderdp/inc/cmtpfiledp.h
mtpdataproviders/mtpfileandfolderdp/src/cmtpfiledp.cpp
mtpdataproviders/mtpimagedp/group/mtpimagedp.mmp
mtpdataproviders/mtpimagedp/inc/cmtpimagedp.h
mtpdataproviders/mtpimagedp/inc/cmtpimagedpcopyobject.h
mtpdataproviders/mtpimagedp/inc/cmtpimagedpgetobject.h
mtpdataproviders/mtpimagedp/inc/cmtpimagedpgetobjectpropdesc.h
mtpdataproviders/mtpimagedp/inc/cmtpimagedpgetobjectpropvalue.h
mtpdataproviders/mtpimagedp/inc/cmtpimagedpgetthumb.h
mtpdataproviders/mtpimagedp/inc/cmtpimagedpmdeobserver.h
mtpdataproviders/mtpimagedp/inc/cmtpimagedpnewpicturesnotifier.h
mtpdataproviders/mtpimagedp/inc/cmtpimagedpobjectpropertymgr.h
mtpdataproviders/mtpimagedp/inc/cmtpimagedpthumbnailcreator.h
mtpdataproviders/mtpimagedp/inc/mtpimagedpconst.h
mtpdataproviders/mtpimagedp/inc/mtpimagedputilits.h
mtpdataproviders/mtpimagedp/src/cmtpimagedp.cpp
mtpdataproviders/mtpimagedp/src/cmtpimagedpcopyobject.cpp
mtpdataproviders/mtpimagedp/src/cmtpimagedpdeleteobject.cpp
mtpdataproviders/mtpimagedp/src/cmtpimagedpgetobject.cpp
mtpdataproviders/mtpimagedp/src/cmtpimagedpgetobjectpropdesc.cpp
mtpdataproviders/mtpimagedp/src/cmtpimagedpgetobjectproplist.cpp
mtpdataproviders/mtpimagedp/src/cmtpimagedpgetobjectpropvalue.cpp
mtpdataproviders/mtpimagedp/src/cmtpimagedpgetpartialobject.cpp
mtpdataproviders/mtpimagedp/src/cmtpimagedpgetthumb.cpp
mtpdataproviders/mtpimagedp/src/cmtpimagedpmdeobserver.cpp
mtpdataproviders/mtpimagedp/src/cmtpimagedpmoveobject.cpp
mtpdataproviders/mtpimagedp/src/cmtpimagedpnewpicturesnotifier.cpp
mtpdataproviders/mtpimagedp/src/cmtpimagedpobjectpropertymgr.cpp
mtpdataproviders/mtpimagedp/src/cmtpimagedpsendobjectinfo.cpp
mtpdataproviders/mtpimagedp/src/cmtpimagedpsetobjectproplist.cpp
mtpdataproviders/mtpimagedp/src/cmtpimagedpsetobjectpropvalue.cpp
mtpdataproviders/mtpimagedp/src/cmtpimagedpthumbnailcreator.cpp
mtpdataproviders/mtpimagedp/src/mtpimagedpgetformatcapabilities.cpp
mtpdataproviders/mtpimagedp/src/mtpimagedputilits.cpp
mtpdataproviders/mtppictbridgedp/src/cmtppictbridgedpgetobjectpropdesc.cpp
mtpdataproviders/mtppictbridgedp/src/cmtppictbridgedpgetobjectproplist.cpp
mtpdataproviders/mtppictbridgedp/src/cmtppictbridgedpsendobjectinfo.cpp
mtpfws/mtpfw/daemon/server/src/cmtpshutdown.cpp
mtpfws/mtpfw/dataproviders/dataproviderapi/interface/mmtpdataproviderframework.h
mtpfws/mtpfw/dataproviders/dataproviderapi/interface/mtpdataproviderapitypes.h
mtpfws/mtpfw/dataproviders/dataproviderapi/src/mmtpdataprovider.cpp
mtpfws/mtpfw/dataproviders/devdp/inc/cmtpdevicedatastore.h
mtpfws/mtpfw/dataproviders/devdp/inc/cmtpdevicedp.h
mtpfws/mtpfw/dataproviders/devdp/inc/cmtpgetnumobjects.h
mtpfws/mtpfw/dataproviders/devdp/inc/cmtpstoragewatcher.h
mtpfws/mtpfw/dataproviders/devdp/inc/mtpdevdppanic.h
mtpfws/mtpfw/dataproviders/devdp/inc/rmtpdevicedpsingletons.h
mtpfws/mtpfw/dataproviders/devdp/src/cmtpdevicedatastore.cpp
mtpfws/mtpfw/dataproviders/devdp/src/cmtpdevicedp.cpp
mtpfws/mtpfw/dataproviders/devdp/src/cmtpdevrequestunknown.cpp
mtpfws/mtpfw/dataproviders/devdp/src/cmtpgetnumobjects.cpp
mtpfws/mtpfw/dataproviders/devdp/src/cmtpgetserviceinfo.cpp
mtpfws/mtpfw/dataproviders/devdp/src/cmtpopensession.cpp
mtpfws/mtpfw/dataproviders/devdp/src/cmtpsetdevicepropvalue.cpp
mtpfws/mtpfw/dataproviders/devdp/src/cmtpstoragewatcher.cpp
mtpfws/mtpfw/dataproviders/devdp/src/rmtpdevicedpsingletons.cpp
mtpfws/mtpfw/dataproviders/dputility/inc/cmtpfsenumerator.h
mtpfws/mtpfw/dataproviders/dputility/inc/cmtpknowledgehandler.h
mtpfws/mtpfw/dataproviders/dputility/inc/cmtprequestprocessor.h
mtpfws/mtpfw/dataproviders/dputility/inc/mtpsvcdpconst.h
mtpfws/mtpfw/dataproviders/dputility/inc/rmtputility.h
mtpfws/mtpfw/dataproviders/dputility/src/cmtpfsenumerator.cpp
mtpfws/mtpfw/dataproviders/dputility/src/cmtpfullenumservicehandler.cpp
mtpfws/mtpfw/dataproviders/dputility/src/cmtpgetobjectpropdesc.cpp
mtpfws/mtpfw/dataproviders/dputility/src/cmtpgetobjectproplist.cpp
mtpfws/mtpfw/dataproviders/dputility/src/cmtpgetobjectpropvalue.cpp
mtpfws/mtpfw/dataproviders/dputility/src/cmtpgetpartialobject.cpp
mtpfws/mtpfw/dataproviders/dputility/src/cmtpknowledgehandler.cpp
mtpfws/mtpfw/dataproviders/dputility/src/cmtpsendobjectinfo.cpp
mtpfws/mtpfw/dataproviders/dputility/src/cmtpsetobjectpropvalue.cpp
mtpfws/mtpfw/dataproviders/dputility/src/rmtputility.cpp
mtpfws/mtpfw/dataproviders/proxydp/inc/cmtpdeleteobject.h
mtpfws/mtpfw/dataproviders/proxydp/inc/cmtpmoveobject.h
mtpfws/mtpfw/dataproviders/proxydp/inc/cmtpobjectbrowser.h
mtpfws/mtpfw/dataproviders/proxydp/src/cmtpcopyobject.cpp
mtpfws/mtpfw/dataproviders/proxydp/src/cmtpdeleteobject.cpp
mtpfws/mtpfw/dataproviders/proxydp/src/cmtpgetobjectproplist.cpp
mtpfws/mtpfw/dataproviders/proxydp/src/cmtpmoveobject.cpp
mtpfws/mtpfw/dataproviders/proxydp/src/cmtpobjectbrowser.cpp
mtpfws/mtpfw/datatypes/interface/cmtptypefile.h
mtpfws/mtpfw/datatypes/src/cmtptypefile.cpp
mtpfws/mtpfw/group/mtpframework.mmp
mtpfws/mtpfw/inc/cmtpconnection.h
mtpfws/mtpfw/inc/cmtpconnectionmgr.h
mtpfws/mtpfw/inc/cmtpdataprovider.h
mtpfws/mtpfw/inc/cmtpdataprovidercontroller.h
mtpfws/mtpfw/src/cmtpconnection.cpp
mtpfws/mtpfw/src/cmtpconnectionmgr.cpp
mtpfws/mtpfw/src/cmtpdataprovider.cpp
mtpfws/mtpfw/src/cmtpdataprovidercontroller.cpp
mtpfws/mtpfw/src/cmtpobjectstore.cpp
mtpfws/mtpfw/src/cmtpparserrouter.cpp
mtpfws/mtpfw/transports/transportapi/inc/mmtpconnectionmgr.h
mtptransports/mtpptpiptransport/ptpipplugin/src/cptpipconnection.cpp
mtptransports/mtpusbtransport/usbsic_imp/inc/cmtpusbconnection.h
mtptransports/mtpusbtransport/usbsic_imp/src/cmtpusbconnection.cpp
obex/obexprotocol/obex/public/obexbase.h
obex/obexprotocol/obexusbtransport/src/usbconn.cpp
--- a/connectivitymodules/SeCon/apple/S60_RnD_32.phoneplugin/Contents/Info.plist	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-	<key>CFBundleDevelopmentRegion</key>
-	<string>English</string>
-	<key>CFBundleGetInfoString</key>
-	<string>Nokia S60-32 v1.0, © Nokia</string>
-	<key>CFBundleIdentifier</key>
-	<string>nokia.com.phoneplugin.com.nokia.S6032</string>
-	<key>CFBundleInfoDictionaryVersion</key>
-	<string>6.0</string>
-	<key>CFBundleName</key>
-	<string>Nokia S60-32</string>
-	<key>CFBundlePackageType</key>
-	<string>BNDL</string>
-	<key>CFBundleShortVersionString</key>
-	<string>1.0</string>
-	<key>CFBundleSignature</key>
-	<string>????</string>
-	<key>CFBundleVersion</key>
-	<string>556</string>
-	<key>IPHPhoneConduitVersion</key>
-	<string>597.0</string>
-	<key>IPHPhonePluginUID</key>
-	<string>367C0F5C-1E53-44A3-AEA5-54D1EEE12F29</string>
-	<key>IPHPluginProviderName</key>
-	<string>Nokia</string>
-	<key>IPHPluginSupportURL</key>
-	<string>http://www.nokia.com/support</string>
-	<key>IPHPublicPluginVersion</key>
-	<string>2.0</string>
-</dict>
-</plist>
--- a/connectivitymodules/SeCon/apple/S60_RnD_32.phoneplugin/Contents/Resources/MetaClasses.plist	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,329 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<dict>
-    <key>family.com.nokia.S6032</key>
-    <dict>
-        <key>InheritsFrom</key>
-        <array>
-            <string>family.com.apple.external.all-phones.usb-bt</string>
-        </array>
-        <key>Services</key>
-        <array>
-            <dict>
-                <key>ServiceName</key>
-                <string>com.apple.synchro</string>
-                <key>ServiceClass</key>
-                <string>IPHSyncMLSyncTransportServiceObexClient</string>
-                <key>ServiceProperties</key>
-                <dict>
-                    <key>IPHEnginePlist</key>
-                    <string>SyncEngine.plist</string>
-                    <key>SyncProperties2</key>
-                    <string>PhoneConduit.plist</string>
-                    <key>SyncMLVersion</key>
-                    <string>SyncML11</string>
-                    <key>SyncMLLargeObjectSupport</key>
-                    <true/>
-                    <key>SyncMLNumberOfChangesSupport</key>
-                    <true/>
-                    <key>SyncMLRefreshFromServerSupport</key>
-                    <true/>
-                    <key>SyncMLRemoteNeedsRelativePaths</key>
-                    <false/>
-                    <key>SyncMLBusySignalingSupport</key>
-                    <true/>
-                    <key>SyncMLOnlyOneBusySignaling</key>
-                    <false/>
-                    <key>SyncMLBusySignalingInterval</key>
-                    <integer>60</integer>
-                    <key>SyncMLSimulateBusySignalingWithEmptySync</key>
-                    <false/>
-                    <key>SyncDataClasses</key>
-                    <plist>
-                        <array>
-                            <string>com.apple.pimsync.contacts</string>
-                            <string>com.apple.pimsync.calendars</string>
-                        </array>
-                    </plist>
-                    <key>DontSyncEventsAfterDateValue.visible</key>
-                    <true/>
-                    <key>DontSyncEventsAfterDateValue.default-value</key>
-                    <string>1month</string>
-                    <key>OnlySyncContactsWithPhoneNumber.visible</key>
-                    <true/>
-                    <key>OnlySyncContactsWithPhoneNumber.default-value</key>
-                    <false/>
-                    <key>SyncAllDayEventsKey.visible</key>
-                    <false/>
-                    <key>SyncAllDayEventsKey.default-value</key>
-                    <true/>
-                    <key>DontSyncEventsPriorToDateValue.visible</key>
-                    <true/>
-                    <key>DontSyncEventsPriorToDateValue.default-value</key>
-                    <string>1week</string>
-                    <key>DontSyncEventsPriorToDateIsEnabled.visible</key>
-                    <false/>
-                    <key>DontSyncEventsPriorToDateIsEnabled.default-value</key>
-                    <true/>
-                    <key>DontSyncEventsAfterDateIsEnabled.visible</key>
-                    <true/>
-                    <key>DontSyncEventsAfterDateIsEnabled.default-value</key>
-                    <true/>
-                    <key>SyncMLLocalSource</key>
-                    <string>iSync</string>
-                    <key>SyncMLCodec</key>
-                    <string>SyncMLCodecLibWBXML</string>
-                    <key>SyncMLMsgTemporization</key>
-                    <integer>500000</integer>
-                    <key>SyncMLMaxObjSize</key>
-                    <integer>786432</integer>
-                    <key>SyncMLMaxMsgSize</key>
-                    <integer>65535</integer>
-                    <key>BTProtocolService</key>
-                    <string>com.nokia.S6032.protocol.bt.obex.syncml</string>
-                    <key>USBProtocolService</key>
-                    <string>com.nokia.S6032.protocol.usb.obex.syncml</string>
-                </dict>
-            </dict>
-            <dict>
-                <key>ServiceName</key>
-                <string>com.nokia.S6032.protocol.usb.obex.syncml</string>
-                <key>ServiceClass</key>
-                <string>IPHObexService</string>
-                <key>ServiceProperties</key>
-                <dict>
-                    <key>ObexTargetUUID</key>
-                    <string>53 59 4e 43 4d 4c 2d 53 59 4e 43</string>
-                    <key>ObexTimeOut</key>
-                    <integer>60</integer>
-                    <key>TransportService</key>
-                    <string>com.nokia.S6032.transport.usb.syncml</string>
-                </dict>
-            </dict>
-            <dict>
-                <key>ServiceName</key>
-                <string>com.nokia.S6032.protocol.bt.obex.syncml</string>
-                <key>ServiceClass</key>
-                <string>IPHObexService</string>
-                <key>ServiceProperties</key>
-                <dict>
-                    <key>ObexTargetUUID</key>
-                    <string>53 59 4e 43 4d 4c 2d 53 59 4e 43</string>
-                    <key>ObexTimeOut</key>
-                    <integer>60</integer>
-                    <key>TransportService</key>
-                    <string>com.nokia.S6032.transport.rfcomm.syncml</string>
-                </dict>
-            </dict>
-            <dict>
-                <key>ServiceName</key>
-                <string>com.apple.protocol.usb.AT</string>
-                <key>ServiceClass</key>
-                <string>IPHSerialATService</string>
-                <key>ServiceProperties</key>
-                <dict/>
-            </dict>
-            <dict>
-                <key>ServiceName</key>
-                <string>com.nokia.S6032.transport.rfcomm.syncml</string>
-                <key>ServiceClass</key>
-                <string>IPHRFCOMMChannelService</string>
-                <key>ServiceProperties</key>
-                <dict>
-                    <key>RFCOMMChannelUUID</key>
-                    <string>000000020000100080000002ee000002</string>
-                </dict>
-            </dict>
-            <dict>
-                <key>ServiceName</key>
-                <string>com.apple.transport.usb.modem</string>
-                <key>ServiceClass</key>
-                <string>IPHUSBCDCChannelService</string>
-                <key>ServiceProperties</key>
-                <dict/>
-            </dict>
-            <dict>
-                <key>ServiceName</key>
-                <string>com.nokia.S6032.transport.usb.syncml</string>
-                <key>ServiceClass</key>
-                <string>IPHUSBObexChannelService</string>
-                <key>ServiceProperties</key>
-                <dict/>
-            </dict>
-            <dict>
-                <key>ServiceName</key>
-                <string>com.apple.pimsync.parser.vCal</string>
-                <key>ServiceClass</key>
-                <string>IPHSyncParserService</string>
-                <key>ServiceProperties</key>
-                <dict>
-                    <key>ParserType</key>
-                    <string>vCal</string>
-                    <key>Encoding</key>
-                    <string>QUOTED-PRINTABLE</string>
-                    <key>FoldingStyle</key>
-                    <string>FoldingNG</string>
-                    <key>Charset</key>
-                    <string>UTF-8</string>
-                    <key>AllDayEventFormat</key>
-                    <string>AllDayEventFromMidnightTo235900</string>
-                    <key>vCalRecDropIfUseless</key>
-                    <true/>
-                    <key>EscapeSemicolonInNotComponedValues</key>
-                    <true/>
-                    <key>EscapeBackslash</key>
-                    <true/>
-                    <key>IgnoreProperties</key>
-                    <array>
-                        <string>X-IRMC-LUID</string>
-                    </array>
-                    <key>UntilDateInLocal</key>
-                    <true/>
-                    <key>SetUntilTimeWithStartTime</key>
-                    <true/>
-                </dict>
-            </dict>
-            <dict>
-                <key>ServiceName</key>
-                <string>com.apple.pimsync.parser.vCard</string>
-                <key>ServiceClass</key>
-                <string>IPHSyncParserService</string>
-                <key>ServiceProperties</key>
-                <dict>
-                    <key>ParserType</key>
-                    <string>vCard</string>
-                    <key>Encoding</key>
-                    <string>QUOTED-PRINTABLE</string>
-                    <key>FoldingStyle</key>
-                    <string>FoldingNG</string>
-                    <key>Charset</key>
-                    <string>UTF-8</string>
-                    <key>EscapeSemicolonInNotComponedValues</key>
-                    <true/>
-                    <key>EscapeBackslash</key>
-                    <true/>
-                    <key>IgnoreProperties</key>
-                    <array>
-                        <string>X-IRMC-LUID</string>
-                    </array>
-                    <key>PropertyNameMapping</key>
-                    <dict>
-                        <key>X-NICKNAME</key>
-                        <string>X-EPOCSECONDNAME</string>
-                    </dict>
-                    <key>AddCRLFAfterBase64Folding</key>
-                    <true/>
-                    <key>IgnoreSubTypesForThisMainTypes</key>
-                    <array>
-                        <string>CELL</string>
-                    </array>
-                </dict>
-            </dict>
-            <dict>
-                <key>ServiceName</key>
-                <string>com.apple.pimsync.contacts</string>
-                <key>ServiceClass</key>
-                <string>IPHSyncDataClassService</string>
-                <key>ServiceProperties</key>
-                <dict>
-                    <key>MimeType</key>
-                    <string>text/x-vcard</string>
-                    <key>ParserService</key>
-                    <string>com.apple.pimsync.parser.vCard</string>
-                    <key>RemoteName</key>
-                    <string></string>
-                    <key>needsCompanyNameInFirstName</key>
-                    <false/>
-                    <key>needsFullAddressInStreetField</key>
-                    <false/>
-                    <key>DataClassName</key>
-                    <string>Contacts</string>
-                    <key>needsDeleteAddOnModify</key>
-                    <true/>
-                    <key>MaxSyncCmd</key>
-                    <integer>1</integer>
-                </dict>
-            </dict>
-            <dict>
-                <key>ServiceName</key>
-                <string>com.apple.pimsync.calendars</string>
-                <key>ServiceClass</key>
-                <string>IPHSyncDataClassService</string>
-                <key>ServiceProperties</key>
-                <dict>
-                    <key>MimeType</key>
-                    <string>text/x-vcalendar</string>
-                    <key>ParserService</key>
-                    <string>com.apple.pimsync.parser.vCal</string>
-                    <key>hasEvent</key>
-                    <true/>
-                    <key>RemoteName</key>
-                    <string></string>
-                    <key>hasAllDayEvents</key>
-                    <false/>
-                    <key>hasAllDayFromMidnightTo235900</key>
-                    <true/>
-                    <key>hasVCalRecurrence</key>
-                    <true/>
-                    <key>needsToFormatCountToUntilDate</key>
-                    <true/>
-                    <key>needsToFormatUntilDateToCount</key>
-                    <false/>
-                    <key>hasOneAlarmType</key>
-                    <true/>
-                    <key>alarmTypeIsDisplay</key>
-                    <false/>
-                    <key>hasTimeZone</key>
-                    <true/>
-                    <key>hasTask</key>
-                    <true/>
-                    <key>handleAllDayRecurrent</key>
-                    <true/>
-                    <key>doNotSyncAlarmIfAfterStartDateTime</key>
-                    <true/>
-                    <key>DataClassName</key>
-                    <string>Calendar</string>
-                    <key>allDayInLocalDateTime</key>
-                    <true/>
-                    <key>untilDateIsDateOnly</key>
-                    <true/>
-                    <key>exDatesAreDateOnly</key>
-                    <false/>
-                    <key>doNotSyncAlarmIfCompleted</key>
-                    <true/>
-                    <key>dueDateIsDateOnly</key>
-                    <false/>
-                </dict>
-            </dict>
-        </array>
-    </dict>
-    <key>com.nokia.S6032</key>
-    <dict>
-        <key>Identification</key>
-        <dict>
-            <key>com.apple.usb.vendorid-modelid</key>
-            <string>0x0421/0x0500</string>
-            <key>com.apple.gmi+gmm</key>
-            <string>Nokia+Nokia 6290</string>
-        </dict>
-        <key>InheritsFrom</key>
-        <array>
-            <string>family.com.nokia.S6032</string>
-        </array>
-        <key>Services</key>
-        <array>
-            <dict>
-                <key>ServiceName</key>
-                <string>com.apple.model</string>
-                <key>ServiceProperties</key>
-                <dict>
-                    <key>ModelName</key>
-                    <string>S60-32</string>
-                    <key>CompanyName</key>
-                    <string>Nokia</string>
-                    <key>ModelIcon</key>
-                    <string>com.nokia.S6032.tiff</string>
-                </dict>
-            </dict>
-        </array>
-    </dict>
-</dict>
\ No newline at end of file
--- a/connectivitymodules/SeCon/apple/S60_RnD_32.phoneplugin/Contents/Resources/PhoneConduit.plist	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,534 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-	<key>Formatting</key>
-	<dict>
-		<key>com.apple.calendars.Event</key>
-		<dict>
-			<key>classification</key>
-			<dict>
-				<key>mappings</key>
-				<array>
-					<dict>
-						<key>mappedValue</key>
-						<string>PUBLIC</string>
-						<key>originalValue</key>
-						<string>public</string>
-					</dict>
-					<dict>
-						<key>mappedValue</key>
-						<string>PRIVATE</string>
-						<key>originalValue</key>
-						<string>private</string>
-					</dict>
-					<dict>
-						<key>mappedValue</key>
-						<string>PRIVATE</string>
-						<key>originalValue</key>
-						<string>confidential</string>
-					</dict>
-				</array>
-			</dict>
-			<key>description</key>
-			<dict>
-				<key>charsToStrip</key>
-				<string>\r,\n</string>
-				<key>maxLength</key>
-				<integer>500</integer>
-			</dict>
-			<key>end date</key>
-			<dict/>
-			<key>location</key>
-			<dict>
-				<key>charsToStrip</key>
-				<string>\r,\n</string>
-				<key>maxLength</key>
-				<integer>255</integer>
-			</dict>
-			<key>start date</key>
-			<dict/>
-			<key>summary</key>
-			<dict>
-				<key>charsToStrip</key>
-				<string>\r,\n</string>
-				<key>maxLength</key>
-				<integer>500</integer>
-			</dict>
-		</dict>
-		<key>com.apple.calendars.Task</key>
-		<dict>
-			<key>classification</key>
-			<dict>
-				<key>mappings</key>
-				<array>
-					<dict>
-						<key>mappedValue</key>
-						<string>PUBLIC</string>
-						<key>originalValue</key>
-						<string>public</string>
-					</dict>
-					<dict>
-						<key>mappedValue</key>
-						<string>PRIVATE</string>
-						<key>originalValue</key>
-						<string>private</string>
-					</dict>
-					<dict>
-						<key>mappedValue</key>
-						<string>PRIVATE</string>
-						<key>originalValue</key>
-						<string>confidential</string>
-					</dict>
-				</array>
-			</dict>
-			<key>completion date</key>
-			<dict/>
-			<key>description</key>
-			<dict>
-				<key>charsToStrip</key>
-				<string>\r,\n</string>
-				<key>maxLength</key>
-				<integer>255</integer>
-			</dict>
-			<key>due date</key>
-			<dict/>
-			<key>priority</key>
-			<dict>
-				<key>mappings</key>
-				<array>
-					<dict>
-						<key>mappedValue</key>
-						<string></string>
-						<key>originalValue</key>
-						<integer>0</integer>
-					</dict>
-					<dict>
-						<key>mappedValue</key>
-						<string>1</string>
-						<key>originalValue</key>
-						<integer>1</integer>
-					</dict>
-					<dict>
-						<key>mappedValue</key>
-						<string>2</string>
-						<key>originalValue</key>
-						<integer>2</integer>
-					</dict>
-					<dict>
-						<key>mappedValue</key>
-						<string>3</string>
-						<key>originalValue</key>
-						<integer>3</integer>
-					</dict>
-					<dict>
-						<key>mappedValue</key>
-						<string>4</string>
-						<key>originalValue</key>
-						<integer>4</integer>
-					</dict>
-					<dict>
-						<key>mappedValue</key>
-						<string>5</string>
-						<key>originalValue</key>
-						<integer>5</integer>
-					</dict>
-					<dict>
-						<key>mappedValue</key>
-						<string>6</string>
-						<key>originalValue</key>
-						<integer>6</integer>
-					</dict>
-					<dict>
-						<key>mappedValue</key>
-						<string>7</string>
-						<key>originalValue</key>
-						<integer>7</integer>
-					</dict>
-					<dict>
-						<key>mappedValue</key>
-						<string>8</string>
-						<key>originalValue</key>
-						<integer>8</integer>
-					</dict>
-					<dict>
-						<key>mappedValue</key>
-						<string>9</string>
-						<key>originalValue</key>
-						<integer>9</integer>
-					</dict>
-				</array>
-			</dict>
-			<key>status</key>
-			<dict>
-				<key>mappings</key>
-				<array>
-					<dict>
-						<key>mappedValue</key>
-						<string>DECLINED</string>
-						<key>originalValue</key>
-						<string>cancelled</string>
-					</dict>
-					<dict>
-						<key>mappedValue</key>
-						<string>NEEDS ACTION</string>
-						<key>originalValue</key>
-						<string>needsaction</string>
-					</dict>
-					<dict>
-						<key>mappedValue</key>
-						<string>COMPLETED</string>
-						<key>originalValue</key>
-						<string>completed</string>
-					</dict>
-					<dict>
-						<key>mappedValue</key>
-						<string>ACCEPTED</string>
-						<key>originalValue</key>
-						<string>inprocess</string>
-					</dict>
-					<dict>
-						<key>mappedValue</key>
-						<string></string>
-						<key>originalValue</key>
-						<string>none</string>
-					</dict>
-				</array>
-			</dict>
-			<key>summary</key>
-			<dict>
-				<key>charsToStrip</key>
-				<string>\r,\n</string>
-				<key>maxLength</key>
-				<integer>255</integer>
-			</dict>
-		</dict>
-		<key>com.apple.contacts.Contact</key>
-		<dict>
-			<key>birthday</key>
-			<dict/>
-			<key>company name</key>
-			<dict>
-				<key>charsToStrip</key>
-				<string>\r,\n</string>
-				<key>maxLength</key>
-				<integer>255</integer>
-			</dict>
-			<key>department</key>
-			<dict>
-				<key>charsToStrip</key>
-				<string>\r,\n</string>
-				<key>maxLength</key>
-				<integer>255</integer>
-			</dict>
-			<key>first name</key>
-			<dict>
-				<key>charsToStrip</key>
-				<string>\r,\n</string>
-				<key>maxLength</key>
-				<integer>255</integer>
-			</dict>
-			<key>image</key>
-			<dict>
-				<key>maxLength</key>
-				<integer>0</integer>
-			</dict>
-			<key>job title</key>
-			<dict>
-				<key>charsToStrip</key>
-				<string>\r,\n</string>
-				<key>maxLength</key>
-				<integer>255</integer>
-			</dict>
-			<key>last name</key>
-			<dict>
-				<key>charsToStrip</key>
-				<string>\r,\n</string>
-				<key>maxLength</key>
-				<integer>255</integer>
-			</dict>
-			<key>middle name</key>
-			<dict>
-				<key>charsToStrip</key>
-				<string>\r,\n</string>
-				<key>maxLength</key>
-				<integer>255</integer>
-			</dict>
-			<key>nickname</key>
-			<dict>
-				<key>charsToStrip</key>
-				<string>\r,\n</string>
-				<key>maxLength</key>
-				<integer>255</integer>
-			</dict>
-			<key>notes</key>
-			<dict>
-				<key>maxLength</key>
-				<integer>1000</integer>
-			</dict>
-			<key>suffix</key>
-			<dict>
-				<key>charsToStrip</key>
-				<string>\r,\n</string>
-				<key>maxLength</key>
-				<integer>255</integer>
-			</dict>
-			<key>title</key>
-			<dict>
-				<key>charsToStrip</key>
-				<string>\r,\n</string>
-				<key>maxLength</key>
-				<integer>255</integer>
-			</dict>
-		</dict>
-		<key>com.apple.contacts.Date</key>
-		<dict>
-			<key>type</key>
-			<dict>
-				<key>mappings</key>
-				<array/>
-			</dict>
-			<key>value</key>
-			<dict/>
-		</dict>
-		<key>com.apple.contacts.Email Address</key>
-		<dict>
-			<key>type</key>
-			<dict>
-				<key>mappings</key>
-				<array>
-					<dict>
-						<key>mappedValue</key>
-						<string>WORK</string>
-						<key>originalValue</key>
-						<string>work</string>
-					</dict>
-					<dict>
-						<key>mappedValue</key>
-						<string>HOME</string>
-						<key>originalValue</key>
-						<string>home</string>
-					</dict>
-					<dict>
-						<key>mappedValue</key>
-						<string>INTERNET</string>
-						<key>originalValue</key>
-						<string>other</string>
-					</dict>
-				</array>
-			</dict>
-			<key>value</key>
-			<dict>
-				<key>charsToStrip</key>
-				<string>\r,\n</string>
-				<key>maxLength</key>
-				<integer>255</integer>
-			</dict>
-		</dict>
-		<key>com.apple.contacts.Phone Number</key>
-		<dict>
-			<key>type</key>
-			<dict>
-				<key>mappings</key>
-				<array>
-					<dict>
-						<key>mappedValue</key>
-						<string>WORK</string>
-						<key>originalValue</key>
-						<string>work</string>
-					</dict>
-					<dict>
-						<key>mappedValue</key>
-						<string>HOME</string>
-						<key>originalValue</key>
-						<string>home</string>
-					</dict>
-					<dict>
-						<key>mappedValue</key>
-						<string>CELL</string>
-						<key>originalValue</key>
-						<string>mobile</string>
-					</dict>
-					<dict>
-						<key>mappedValue</key>
-						<string>FAX</string>
-						<key>originalValue</key>
-						<string>work fax</string>
-					</dict>
-					<dict>
-						<key>mappedValue</key>
-						<string>FAX</string>
-						<key>originalValue</key>
-						<string>home fax</string>
-					</dict>
-					<dict>
-						<key>mappedValue</key>
-						<string></string>
-						<key>originalValue</key>
-						<string>other</string>
-					</dict>
-					<dict>
-						<key>mappedValue</key>
-						<string></string>
-						<key>originalValue</key>
-						<string>main</string>
-					</dict>
-					<dict>
-						<key>mappedValue</key>
-						<string>PAGER</string>
-						<key>originalValue</key>
-						<string>pager</string>
-					</dict>
-				</array>
-			</dict>
-			<key>value</key>
-			<dict>
-				<key>charsToKeep</key>
-				<string>0123456789+#*pw</string>
-				<key>maxLength</key>
-				<integer>255</integer>
-			</dict>
-		</dict>
-		<key>com.apple.contacts.Related Name</key>
-		<dict>
-			<key>type</key>
-			<dict>
-				<key>mappings</key>
-				<array>
-					<dict>
-						<key>mappedValue</key>
-						<string>X-CHILDREN</string>
-						<key>originalValue</key>
-						<string>child</string>
-					</dict>
-					<dict>
-						<key>mappedValue</key>
-						<string>X-SPOUSE</string>
-						<key>originalValue</key>
-						<string>spouse</string>
-					</dict>
-					<dict>
-						<key>mappedValue</key>
-						<string>X-ASSISTANT</string>
-						<key>originalValue</key>
-						<string>assistant</string>
-					</dict>
-				</array>
-			</dict>
-			<key>value</key>
-			<dict>
-				<key>charsToStrip</key>
-				<string>\r,\n</string>
-				<key>maxLength</key>
-				<integer>255</integer>
-			</dict>
-		</dict>
-		<key>com.apple.contacts.Street Address</key>
-		<dict>
-			<key>city</key>
-			<dict>
-				<key>charsToStrip</key>
-				<string>\r,\n</string>
-				<key>maxLength</key>
-				<integer>255</integer>
-			</dict>
-			<key>country</key>
-			<dict>
-				<key>charsToStrip</key>
-				<string>\r,\n</string>
-				<key>maxLength</key>
-				<integer>255</integer>
-			</dict>
-			<key>postal code</key>
-			<dict>
-				<key>charsToStrip</key>
-				<string>\r,\n</string>
-				<key>maxLength</key>
-				<integer>255</integer>
-			</dict>
-			<key>state</key>
-			<dict>
-				<key>charsToStrip</key>
-				<string>\r,\n</string>
-				<key>maxLength</key>
-				<integer>255</integer>
-			</dict>
-			<key>street</key>
-			<dict>
-				<key>charsToStrip</key>
-				<string>\r,\n</string>
-				<key>maxLength</key>
-				<integer>255</integer>
-			</dict>
-			<key>type</key>
-			<dict>
-				<key>mappings</key>
-				<array>
-					<dict>
-						<key>mappedValue</key>
-						<string>WORK</string>
-						<key>originalValue</key>
-						<string>work</string>
-					</dict>
-					<dict>
-						<key>mappedValue</key>
-						<string>HOME</string>
-						<key>originalValue</key>
-						<string>home</string>
-					</dict>
-					<dict>
-						<key>mappedValue</key>
-						<string></string>
-						<key>originalValue</key>
-						<string>other</string>
-					</dict>
-				</array>
-				<key>relationshipConstraint</key>
-				<string>perSubType</string>
-				<key>relationshipSize</key>
-				<integer>1</integer>
-			</dict>
-		</dict>
-		<key>com.apple.contacts.URL</key>
-		<dict>
-			<key>type</key>
-			<dict>
-				<key>mappings</key>
-				<array>
-					<dict>
-						<key>mappedValue</key>
-						<string>WORK</string>
-						<key>originalValue</key>
-						<string>work</string>
-					</dict>
-					<dict>
-						<key>mappedValue</key>
-						<string>HOME</string>
-						<key>originalValue</key>
-						<string>home page</string>
-					</dict>
-					<dict>
-						<key>mappedValue</key>
-						<string>HOME</string>
-						<key>originalValue</key>
-						<string>home</string>
-					</dict>
-					<dict>
-						<key>mappedValue</key>
-						<string></string>
-						<key>originalValue</key>
-						<string>other</string>
-					</dict>
-				</array>
-			</dict>
-			<key>value</key>
-			<dict>
-				<key>charsToStrip</key>
-				<string>\r,\n</string>
-				<key>maxLength</key>
-				<integer>500</integer>
-			</dict>
-		</dict>
-	</dict>
-</dict>
-</plist>
--- a/connectivitymodules/SeCon/apple/S60_RnD_32.phoneplugin/Contents/Resources/SyncEngine.plist	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,151 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-	<key>Entities</key>
-	<dict>
-		<key>com.apple.calendars.AudioAlarm</key>
-		<array>
-			<string>com.apple.syncservices.RecordEntityName</string>
-			<string>triggerdate</string>
-			<string>triggerduration</string>
-			<string>owner</string>
-		</array>
-		<key>com.apple.calendars.Calendar</key>
-		<array>
-			<string>com.apple.syncservices.RecordEntityName</string>
-			<string>title</string>
-			<string>read only</string>
-			<string>com.apple.PhoneConduitExtension.uid</string>
-		</array>
-		<key>com.apple.calendars.DisplayAlarm</key>
-		<array>
-			<string>com.apple.syncservices.RecordEntityName</string>
-			<string>triggerdate</string>
-			<string>triggerduration</string>
-			<string>owner</string>
-		</array>
-		<key>com.apple.calendars.Event</key>
-		<array>
-			<string>com.apple.syncservices.RecordEntityName</string>
-			<string>original date</string>
-			<string>all day</string>
-			<string>exception dates</string>
-			<string>calendar</string>
-			<string>recurrences</string>
-			<string>main event</string>
-			<string>detached events</string>
-			<string>audio alarms</string>
-			<string>display alarms</string>
-			<string>start date</string>
-			<string>location</string>
-			<string>summary</string>
-			<string>end date</string>
-			<string>description</string>
-			<string>classification</string>
-		</array>
-		<key>com.apple.calendars.Recurrence</key>
-		<array>
-			<string>com.apple.syncservices.RecordEntityName</string>
-			<string>frequency</string>
-			<string>count</string>
-			<string>until</string>
-			<string>interval</string>
-			<string>bymonth</string>
-			<string>byweeknumber</string>
-			<string>byyearday</string>
-			<string>bymonthday</string>
-			<string>bydayfreq</string>
-			<string>bydaydays</string>
-			<string>bysetpos</string>
-			<string>weekstartday</string>
-			<string>owner</string>
-		</array>
-		<key>com.apple.calendars.Task</key>
-		<array>
-			<string>com.apple.syncservices.RecordEntityName</string>
-			<string>due date is date only</string>
-			<string>calendar</string>
-			<string>audio alarms</string>
-			<string>display alarms</string>
-			<string>status</string>
-			<string>summary</string>
-			<string>completion date</string>
-			<string>description</string>
-			<string>due date</string>
-			<string>classification</string>
-			<string>priority</string>
-		</array>
-		<key>com.apple.contacts.Contact</key>
-		<array>
-			<string>com.apple.syncservices.RecordEntityName</string>
-			<string>title</string>
-			<string>suffix</string>
-			<string>image</string>
-			<string>last name</string>
-			<string>company name</string>
-			<string>first name</string>
-			<string>middle name</string>
-			<string>job title</string>
-			<string>nickname</string>
-			<string>notes</string>
-			<string>department</string>
-			<string>birthday</string>
-			<string>email addresses</string>
-			<string>phone numbers</string>
-			<string>URLs</string>
-			<string>street addresses</string>
-			<string>related names</string>
-			<string>dates</string>
-		</array>
-		<key>com.apple.contacts.Date</key>
-		<array>
-			<string>com.apple.syncservices.RecordEntityName</string>
-			<string>contact</string>
-			<string>value</string>
-			<string>type</string>
-		</array>
-		<key>com.apple.contacts.Email Address</key>
-		<array>
-			<string>com.apple.syncservices.RecordEntityName</string>
-			<string>contact</string>
-			<string>value</string>
-			<string>type</string>
-		</array>
-		<key>com.apple.contacts.Phone Number</key>
-		<array>
-			<string>com.apple.syncservices.RecordEntityName</string>
-			<string>contact</string>
-			<string>value</string>
-			<string>type</string>
-		</array>
-		<key>com.apple.contacts.Related Name</key>
-		<array>
-			<string>com.apple.syncservices.RecordEntityName</string>
-			<string>contact</string>
-			<string>value</string>
-			<string>type</string>
-		</array>
-		<key>com.apple.contacts.Street Address</key>
-		<array>
-			<string>com.apple.syncservices.RecordEntityName</string>
-			<string>contact</string>
-			<string>city</string>
-			<string>state</string>
-			<string>street</string>
-			<string>country</string>
-			<string>type</string>
-			<string>postal code</string>
-		</array>
-		<key>com.apple.contacts.URL</key>
-		<array>
-			<string>com.apple.syncservices.RecordEntityName</string>
-			<string>contact</string>
-			<string>value</string>
-			<string>type</string>
-		</array>
-	</dict>
-	<key>Type</key>
-	<string>device</string>
-</dict>
-</plist>
Binary file connectivitymodules/SeCon/apple/S60_RnD_32.phoneplugin/Contents/Resources/com.nokia.S6032.tiff has changed
Binary file connectivitymodules/SeCon/apple/S60_RnD_32.pkg/Contents/Archive.bom has changed
Binary file connectivitymodules/SeCon/apple/S60_RnD_32.pkg/Contents/Archive.pax.gz has changed
--- a/connectivitymodules/SeCon/apple/S60_RnD_32.pkg/Contents/Info.plist	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,67 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-	<key>CFBundleGetInfoString</key>
-	<string>0.0, Copyright 2006 Apple Computer, Inc.</string>
-	<key>CFBundleIdentifier</key>
-	<string>com.apple.isyncpluginmaker.phoneplugin</string>
-	<key>CFBundleShortVersionString</key>
-	<string>0.0</string>
-	<key>IFMajorVersion</key>
-	<integer>1</integer>
-	<key>IFMinorVersion</key>
-	<integer>0</integer>
-	<key>IFPkgFlagAllowBackRev</key>
-	<false/>
-	<key>IFPkgFlagAuthorizationAction</key>
-	<string>AdminAuthorization</string>
-	<key>IFPkgFlagBackgroundAlignment</key>
-	<string>topleft</string>
-	<key>IFPkgFlagBackgroundScaling</key>
-	<string>none</string>
-	<key>IFPkgFlagDefaultLocation</key>
-	<string>/</string>
-	<key>IFPkgFlagFollowLinks</key>
-	<true/>
-	<key>IFPkgFlagInstallFat</key>
-	<false/>
-	<key>IFPkgFlagInstalledSize</key>
-	<integer>156</integer>
-	<key>IFPkgFlagIsRequired</key>
-	<false/>
-	<key>IFPkgFlagOverwritePermissions</key>
-	<false/>
-	<key>IFPkgFlagRelocatable</key>
-	<false/>
-	<key>IFPkgFlagRestartAction</key>
-	<string>NoRestart</string>
-	<key>IFPkgFlagRootVolumeOnly</key>
-	<true/>
-	<key>IFPkgFlagUpdateInstalledLanguages</key>
-	<false/>
-	<key>IFPkgFormatVersion</key>
-	<real>0.10000000149011612</real>
-	<key>IFRequirementDicts</key>
-	<array>
-		<dict>
-			<key>LabelKey</key>
-			<string>iSync24Label</string>
-			<key>MessageKey</key>
-			<string>iSync2XMessage</string>
-			<key>SpecArgument</key>
-			<string>/Applications/iSync.app/Contents/Info.plist</string>
-			<key>SpecProperty</key>
-			<string>CFBundleVersion</string>
-			<key>SpecType</key>
-			<string>plist</string>
-			<key>TestObject</key>
-			<string>500.134</string>
-			<key>TestOperator</key>
-			<string>ge</string>
-			<key>TitleKey</key>
-			<string>iSync24Title</string>
-		</dict>
-	</array>
-</dict>
-</plist>
--- a/connectivitymodules/SeCon/apple/S60_RnD_32.pkg/Contents/PkgInfo	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-pkmkrpkg1
\ No newline at end of file
--- a/connectivitymodules/SeCon/apple/S60_RnD_32.pkg/Contents/Resources/Description.plist	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-	<key>IFPkgDescriptionDescription</key>
-	<string>Description of a Phone Plug-in</string>
-	<key>IFPkgDescriptionTitle</key>
-	<string>the phone plug-in</string>
-</dict>
-</plist>
--- a/connectivitymodules/SeCon/apple/S60_RnD_32.pkg/Contents/Resources/English.lproj/ReadMe.rtf	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,6 +0,0 @@
-{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf410
-{\fonttbl\f0\fswiss\fcharset77 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
-
-\f0\fs24 \cf0 This package has been built by Nokia Corporation. It will install a phone plugin to enable iSync support for your phone E60}
\ No newline at end of file
Binary file connectivitymodules/SeCon/apple/S60_RnD_32.pkg/Contents/Resources/IFRequirement.strings has changed
--- a/connectivitymodules/SeCon/apple/S60_RnD_32.pkg/Contents/Resources/PhonePlugin.info	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
-Title Phone Plug-in
-Version 
-Description 
-DefaultLocation /Library/PhonePlugins
-DeleteWarning 
-
-### Package Flags
-
-NeedsAuthorization NO
-Required YES
-Relocatable YES
-RequiresReboot NO
-UseUserMask NO
-OverwritePermissions NO
-InstallFat NO
-RootVolumeOnly YES
-OnlyUpdateInstalledLanguages NO
--- a/connectivitymodules/SeCon/apple/S60_RnD_32.pkg/Contents/Resources/TokenDefinitions.plist	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-    <key>iSyncToken</key>
-    <array>
-        <dict>
-            <key>searchPlugin</key>
-            <string>CommonAppSearch</string>
-            <key>path</key>
-            <string>/Applications/iSync.app</string>
-            <key>identifier</key>
-            <string>com.apple.isync</string>
-        </dict>
-    </array>
-</dict>
-</plist>
--- a/connectivitymodules/SeCon/apple/S60_RnD_32.pkg/Contents/Resources/Welcome.rtf	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
-{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf380
-{\fonttbl\f0\fnil\fcharset77 LucidaGrande-Bold;\f1\fswiss\fcharset77 Helvetica;\f2\fnil\fcharset77 LucidaGrande;
-}
-{\colortbl;\red255\green255\blue255;\red1\green1\blue1;}
-\vieww9000\viewh8400\viewkind0
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
-
-\f0\b\fs24 \cf0 Welcome to the iSync Phone Plug-in for Mac OS X Installer
-\f1\b0 \
-\
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
-
-\f2\fs22 \cf0 iSync for Mac OS X is synchronization software that keeps your Address Book contacts and iCal calendar and to-do information in sync between your Mac OS computers and iSync-compatible mobile phones.\
-\
-This installer guides you through the steps necessary to install an iSync Phone Plug-in for Mac OS X. To get started, click Continue.
-\f1\fs24 \cf2 \
-}
\ No newline at end of file
--- a/connectivitymodules/SeCon/apple/S60_RnD_32.pkg/Contents/Resources/en.lproj/Description.plist	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-	<key>IFPkgDescriptionDescription</key>
-	<string></string>
-	<key>IFPkgDescriptionTitle</key>
-	<string>367C0F5C-1E53-44A3-AEA5-54D1EEE12F29-installerRoot</string>
-</dict>
-</plist>
--- a/connectivitymodules/SeCon/apple/S60_RnD_32.pkg/Contents/Resources/package_version	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-major: 1
-minor: 0
\ No newline at end of file
Binary file connectivitymodules/SeCon/apple/S60_RnD_32.ppdoc/Icon.tiff has changed
--- a/connectivitymodules/SeCon/apple/S60_RnD_32.ppdoc/InstallerReadMe-en.rtf	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,6 +0,0 @@
-{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf410
-{\fonttbl\f0\fswiss\fcharset77 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
-
-\f0\fs24 \cf0 This package has been built by Nokia Corporation. It will install a phone plugin to enable iSync support for your phone E60}
\ No newline at end of file
--- a/connectivitymodules/SeCon/apple/S60_RnD_32.ppdoc/Properties.plist	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1358 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-	<key>TramontaneVersion</key>
-	<string>597.0</string>
-	<key>UUID</key>
-	<string>367C0F5C-1E53-44A3-AEA5-54D1EEE12F29</string>
-	<key>properties</key>
-	<dict>
-		<key>BTOptionsDict</key>
-		<dict>
-			<key>OBEXTimeout</key>
-			<string>60</string>
-			<key>TransportType</key>
-			<integer>0</integer>
-			<key>synchroScriptConnect</key>
-			<false/>
-			<key>synchroScriptDisconnect</key>
-			<false/>
-		</dict>
-		<key>UISettingsOptionsDict</key>
-		<dict>
-			<key>DontSyncEventsAfterDateIsEnabled</key>
-			<dict>
-				<key>default</key>
-				<integer>0</integer>
-				<key>visible</key>
-				<true/>
-			</dict>
-			<key>DontSyncEventsAfterDateValue</key>
-			<dict>
-				<key>default</key>
-				<string>1month</string>
-				<key>visible</key>
-				<true/>
-			</dict>
-			<key>DontSyncEventsPriorToDateIsEnabled</key>
-			<dict>
-				<key>default</key>
-				<integer>0</integer>
-				<key>visible</key>
-				<false/>
-			</dict>
-			<key>DontSyncEventsPriorToDateValue</key>
-			<dict>
-				<key>default</key>
-				<string>1week</string>
-				<key>visible</key>
-				<true/>
-			</dict>
-			<key>OnlySyncContactsWithPhoneNumber</key>
-			<dict>
-				<key>default</key>
-				<integer>1</integer>
-				<key>visible</key>
-				<true/>
-			</dict>
-			<key>SyncAllDayEventsKey</key>
-			<dict>
-				<key>default</key>
-				<integer>0</integer>
-				<key>visible</key>
-				<false/>
-			</dict>
-		</dict>
-		<key>USBOptionsDict</key>
-		<dict>
-			<key>OBEXTimeout</key>
-			<string>60</string>
-			<key>identificationCDCChannel</key>
-			<integer>0</integer>
-			<key>identificationScriptConnect</key>
-			<false/>
-			<key>identificationScriptDisconnect</key>
-			<false/>
-			<key>synchroCDCChannel</key>
-			<integer>1</integer>
-			<key>synchroOBEXChannel</key>
-			<integer>0</integer>
-			<key>synchroScriptConnect</key>
-			<false/>
-			<key>synchroScriptDisconnect</key>
-			<false/>
-			<key>useOBEX</key>
-			<true/>
-			<key>useOtherCDC</key>
-			<false/>
-			<key>useSameCDC</key>
-			<false/>
-		</dict>
-		<key>advancedOptionsSettings</key>
-		<dict>
-			<key>com_apple_pimsync_contacts</key>
-			<dict>
-				<key>DataClassName</key>
-				<string>Contacts</string>
-				<key>MaxAddAndReplaceCmd</key>
-				<integer>0</integer>
-				<key>MaxDeleteCmd</key>
-				<integer>0</integer>
-				<key>MaxSyncCmd</key>
-				<real>1</real>
-				<key>needsDeleteAddOnModify</key>
-				<integer>1</integer>
-			</dict>
-			<key>com_apple_pimsync_events</key>
-			<dict>
-				<key>DataClassName</key>
-				<string>Calendar</string>
-				<key>MaxAddAndReplaceCmd</key>
-				<integer>0</integer>
-				<key>MaxDeleteCmd</key>
-				<integer>0</integer>
-				<key>MaxSyncCmd</key>
-				<integer>0</integer>
-				<key>allDayInLocalDateTime</key>
-				<integer>1</integer>
-				<key>allowedAlarmRelativeValues</key>
-				<string></string>
-				<key>countValueWhenMissing</key>
-				<integer>0</integer>
-				<key>defaultUntilDateWhenMissing</key>
-				<string></string>
-				<key>doNotSyncAlarmForADE</key>
-				<false/>
-				<key>doNotSyncAlarmIfAfterStartDateTime</key>
-				<integer>1</integer>
-				<key>dontSyncEventBeforeDate</key>
-				<string></string>
-				<key>exDatesAreDateOnly</key>
-				<false/>
-				<key>handleMultiDayRecurrent</key>
-				<true/>
-				<key>hasAllDayMultiDay</key>
-				<true/>
-				<key>maxMinutesNbDeltaForAlarm</key>
-				<integer>0</integer>
-				<key>needsDeleteAddOnModify</key>
-				<integer>0</integer>
-				<key>noNewLines</key>
-				<integer>0</integer>
-				<key>onlyAsciiCharacters</key>
-				<false/>
-				<key>syncAlarmOnlyIfSameDayAsADEStartDate</key>
-				<false/>
-				<key>untilDateIsDateOnly</key>
-				<integer>1</integer>
-			</dict>
-			<key>com_apple_pimsync_parser_vCal</key>
-			<dict>
-				<key>AllDayCategories</key>
-				<string>REMINDER</string>
-				<key>EscapeBackslash</key>
-				<integer>1</integer>
-				<key>EscapeSemicolonInNotComponedValues</key>
-				<integer>1</integer>
-				<key>EscapeStrings</key>
-				<string></string>
-				<key>ExDatesInLocal</key>
-				<false/>
-				<key>IgnoreProperties</key>
-				<string>X-IRMC-LUID</string>
-				<key>PropertyNameMapping</key>
-				<array/>
-				<key>SetExDateTimeWithEndTime</key>
-				<false/>
-				<key>SetExDateTimeWithStartTime</key>
-				<false/>
-				<key>SetUntilTimeWithEndTime</key>
-				<integer>0</integer>
-				<key>SetUntilTimeWithStartTime</key>
-				<integer>1</integer>
-				<key>TimedCategories</key>
-				<string>MEETING</string>
-				<key>UntilDateInLocal</key>
-				<integer>1</integer>
-			</dict>
-			<key>com_apple_pimsync_parser_vCard</key>
-			<dict>
-				<key>AddCRLFAfterBase64Folding</key>
-				<integer>1</integer>
-				<key>IgnoreSubTypesForThisMainTypes</key>
-				<string>CELL</string>
-				<key>PropertyNameMapping</key>
-				<array>
-					<dict>
-						<key>key</key>
-						<string>X-NICKNAME</string>
-						<key>value</key>
-						<string>X-EPOCSECONDNAME</string>
-					</dict>
-				</array>
-			</dict>
-			<key>com_apple_pimsync_tasks</key>
-			<dict>
-				<key>DataClassName</key>
-				<string>Tasks</string>
-				<key>MaxAddAndReplaceCmd</key>
-				<integer>0</integer>
-				<key>MaxDeleteCmd</key>
-				<integer>0</integer>
-				<key>MaxSyncCmd</key>
-				<integer>0</integer>
-				<key>completionDateIsDateOnly</key>
-				<false/>
-				<key>defaultDueDateValueWhenMissing</key>
-				<string></string>
-				<key>defaultDueDateWhenMissing</key>
-				<string></string>
-				<key>doNotSyncAlarmForTask</key>
-				<false/>
-				<key>doNotSyncAlarmIfCompleted</key>
-				<integer>1</integer>
-				<key>dueDateIsDateOnly</key>
-				<false/>
-				<key>needsDeleteAddOnModify</key>
-				<false/>
-				<key>setDueDateToCompletionDateIfCompleted</key>
-				<false/>
-			</dict>
-			<key>com_apple_synchro</key>
-			<dict>
-				<key>SyncMLCodec</key>
-				<integer>0</integer>
-				<key>SyncMLDoNotTryToDetectPhoneDBReset</key>
-				<false/>
-				<key>SyncMLLocalSource</key>
-				<string>iSync</string>
-				<key>SyncMLMaxMsgSize</key>
-				<real>65535</real>
-				<key>SyncMLMaxObjSize</key>
-				<real>786432</real>
-				<key>SyncMLMsgTemporization</key>
-				<real>500000</real>
-				<key>SyncMLNoPropertiesCapabilitiesInDevInf</key>
-				<false/>
-				<key>SyncMLSendDevInfIntoPutIfNoGetReceived</key>
-				<integer>0</integer>
-				<key>SyncMLUseBinaryWBXMLPublicID</key>
-				<false/>
-			</dict>
-		</dict>
-		<key>calendarsOptionsDict</key>
-		<dict>
-			<key>Charset</key>
-			<string>UTF-8</string>
-			<key>FoldingStyle</key>
-			<string>FoldingNG</string>
-			<key>RemoteName</key>
-			<string>/</string>
-			<key>allDayFormat</key>
-			<integer>3</integer>
-			<key>eventRecurrenceEndType</key>
-			<integer>1</integer>
-			<key>hasAudioAlarm</key>
-			<true/>
-			<key>hasDisplayAlarm</key>
-			<false/>
-			<key>hasEvent</key>
-			<true/>
-			<key>hasTimeZone</key>
-			<integer>1</integer>
-			<key>hasVCalRecurrence</key>
-			<true/>
-		</dict>
-		<key>contactsOptionsDict</key>
-		<dict>
-			<key>RemoteName</key>
-			<string>/</string>
-			<key>firstAndLastNameInSameField</key>
-			<false/>
-			<key>needsCompanyNameInFirstName</key>
-			<integer>0</integer>
-			<key>needsFullAddressInStreetField</key>
-			<false/>
-		</dict>
-		<key>documentVersion</key>
-		<integer>556</integer>
-		<key>extraOptionsSettings</key>
-		<dict/>
-		<key>familyOptionsDict</key>
-		<dict>
-			<key>BTAvailable</key>
-			<true/>
-			<key>BluetoothAvailable</key>
-			<true/>
-			<key>CGMI</key>
-			<string>Nokia</string>
-			<key>CGMM</key>
-			<string>Nokia 6290</string>
-			<key>GMI</key>
-			<string>Nokia</string>
-			<key>GMM</key>
-			<string>Nokia 6290</string>
-			<key>ModelID</key>
-			<string>com.nokia.S6032</string>
-			<key>Name</key>
-			<string>S60-32</string>
-			<key>PluginProviderName</key>
-			<string>Nokia</string>
-			<key>ProductID</key>
-			<string>0x0500</string>
-			<key>USBAvailable</key>
-			<true/>
-			<key>VendorID</key>
-			<string>0x0421</string>
-			<key>connection</key>
-			<integer>2</integer>
-			<key>constructorName</key>
-			<string>Nokia</string>
-			<key>domainName</key>
-			<string>nokia.com</string>
-			<key>fixedDatabasesNames</key>
-			<integer>0</integer>
-			<key>pluginVersion</key>
-			<string>1.0</string>
-			<key>supportURL</key>
-			<string>http://www.nokia.com/support</string>
-			<key>useCGMICGMM</key>
-			<false/>
-		</dict>
-		<key>javaScriptDict</key>
-		<dict>
-			<key>btObexConnection</key>
-			<dict>
-				<key>Value</key>
-				<string>function prepareChannelForProtocol()
-{
-    // You can customize this function but do NOT change the signature
-}</string>
-			</dict>
-			<key>btObexDisconnection</key>
-			<dict>
-				<key>Value</key>
-				<string>function unprepareChannelForProtocol()
-{
-    // You can customize this function but do NOT change the signature
-}</string>
-			</dict>
-			<key>usbCdcConnection</key>
-			<dict>
-				<key>Value</key>
-				<string>function prepareChannelForProtocol()
-{
-    // You can customize this function but do NOT change the signature
-}</string>
-			</dict>
-			<key>usbCdcDisconnection</key>
-			<dict>
-				<key>Value</key>
-				<string>function unprepareChannelForProtocol()
-{
-    // You can customize this function but do NOT change the signature
-}</string>
-			</dict>
-			<key>usbObexConnection</key>
-			<dict>
-				<key>Value</key>
-				<string>function prepareChannelForProtocol()
-{
-    // You can customize this function but do NOT change the signature
-}</string>
-			</dict>
-			<key>usbObexDisconnection</key>
-			<dict>
-				<key>Value</key>
-				<string>function unprepareChannelForProtocol()
-{
-    // You can customize this function but do NOT change the signature
-}</string>
-			</dict>
-		</dict>
-		<key>notes</key>
-		<data>
-		WW91IGNhbiBzYXZlIGFueSBraW5kIG9mIGluZm9ybWF0aW9uIG9uIHRoZSBw
-		bHVnaW4gaGVyZS4KVGhleSB3b24ndCBiZSBleHBvcnRlZCBpbiB0aGUgcGx1
-		Z2luLg==
-		</data>
-		<key>syncFieldsSettings</key>
-		<dict>
-			<key>com_apple_calendars_Event</key>
-			<dict>
-				<key>classification</key>
-				<dict>
-					<key>Activated</key>
-					<true/>
-					<key>mappings</key>
-					<array>
-						<dict>
-							<key>activated</key>
-							<true/>
-							<key>mappedValue</key>
-							<string>PUBLIC</string>
-							<key>originalValue</key>
-							<string>public</string>
-						</dict>
-						<dict>
-							<key>activated</key>
-							<true/>
-							<key>mappedValue</key>
-							<string>PRIVATE</string>
-							<key>originalValue</key>
-							<string>private</string>
-						</dict>
-						<dict>
-							<key>activated</key>
-							<true/>
-							<key>mappedValue</key>
-							<string>PRIVATE</string>
-							<key>originalValue</key>
-							<string>confidential</string>
-						</dict>
-					</array>
-				</dict>
-				<key>description</key>
-				<dict>
-					<key>Activated</key>
-					<true/>
-					<key>charsFiltering</key>
-					<integer>1</integer>
-					<key>charsToStrip</key>
-					<string>\r,\n</string>
-					<key>maxLength</key>
-					<real>500</real>
-				</dict>
-				<key>end date</key>
-				<dict>
-					<key>Activated</key>
-					<true/>
-				</dict>
-				<key>location</key>
-				<dict>
-					<key>Activated</key>
-					<true/>
-					<key>charsFiltering</key>
-					<integer>1</integer>
-					<key>charsToStrip</key>
-					<string>\r,\n</string>
-					<key>maxLength</key>
-					<real>255</real>
-				</dict>
-				<key>start date</key>
-				<dict>
-					<key>Activated</key>
-					<true/>
-				</dict>
-				<key>summary</key>
-				<dict>
-					<key>Activated</key>
-					<true/>
-					<key>DontNeedCheckBox</key>
-					<true/>
-					<key>charsFiltering</key>
-					<integer>1</integer>
-					<key>charsToStrip</key>
-					<string>\r,\n</string>
-					<key>maxLength</key>
-					<real>500</real>
-				</dict>
-			</dict>
-			<key>com_apple_calendars_Task</key>
-			<dict>
-				<key>classification</key>
-				<dict>
-					<key>Activated</key>
-					<true/>
-					<key>mappings</key>
-					<array>
-						<dict>
-							<key>activated</key>
-							<true/>
-							<key>mappedValue</key>
-							<string>PUBLIC</string>
-							<key>originalValue</key>
-							<string>public</string>
-						</dict>
-						<dict>
-							<key>activated</key>
-							<true/>
-							<key>mappedValue</key>
-							<string>PRIVATE</string>
-							<key>originalValue</key>
-							<string>private</string>
-						</dict>
-						<dict>
-							<key>activated</key>
-							<true/>
-							<key>mappedValue</key>
-							<string>PRIVATE</string>
-							<key>originalValue</key>
-							<string>confidential</string>
-						</dict>
-					</array>
-				</dict>
-				<key>completion date</key>
-				<dict>
-					<key>Activated</key>
-					<true/>
-				</dict>
-				<key>description</key>
-				<dict>
-					<key>Activated</key>
-					<true/>
-					<key>charsFiltering</key>
-					<integer>1</integer>
-					<key>charsToStrip</key>
-					<string>\r,\n</string>
-					<key>maxLength</key>
-					<real>255</real>
-				</dict>
-				<key>due date</key>
-				<dict>
-					<key>Activated</key>
-					<true/>
-				</dict>
-				<key>priority</key>
-				<dict>
-					<key>Activated</key>
-					<true/>
-					<key>mappings</key>
-					<array>
-						<dict>
-							<key>activated</key>
-							<true/>
-							<key>originalValue</key>
-							<integer>0</integer>
-						</dict>
-						<dict>
-							<key>activated</key>
-							<true/>
-							<key>mappedValue</key>
-							<string>1</string>
-							<key>originalValue</key>
-							<integer>1</integer>
-						</dict>
-						<dict>
-							<key>activated</key>
-							<true/>
-							<key>mappedValue</key>
-							<string>2</string>
-							<key>originalValue</key>
-							<integer>2</integer>
-						</dict>
-						<dict>
-							<key>activated</key>
-							<true/>
-							<key>mappedValue</key>
-							<string>3</string>
-							<key>originalValue</key>
-							<integer>3</integer>
-						</dict>
-						<dict>
-							<key>activated</key>
-							<true/>
-							<key>mappedValue</key>
-							<string>4</string>
-							<key>originalValue</key>
-							<integer>4</integer>
-						</dict>
-						<dict>
-							<key>activated</key>
-							<true/>
-							<key>mappedValue</key>
-							<string>5</string>
-							<key>originalValue</key>
-							<integer>5</integer>
-						</dict>
-						<dict>
-							<key>activated</key>
-							<true/>
-							<key>mappedValue</key>
-							<string>6</string>
-							<key>originalValue</key>
-							<integer>6</integer>
-						</dict>
-						<dict>
-							<key>activated</key>
-							<true/>
-							<key>mappedValue</key>
-							<string>7</string>
-							<key>originalValue</key>
-							<integer>7</integer>
-						</dict>
-						<dict>
-							<key>activated</key>
-							<true/>
-							<key>mappedValue</key>
-							<string>8</string>
-							<key>originalValue</key>
-							<integer>8</integer>
-						</dict>
-						<dict>
-							<key>activated</key>
-							<true/>
-							<key>mappedValue</key>
-							<string>9</string>
-							<key>originalValue</key>
-							<integer>9</integer>
-						</dict>
-					</array>
-				</dict>
-				<key>status</key>
-				<dict>
-					<key>Activated</key>
-					<true/>
-					<key>mappings</key>
-					<array>
-						<dict>
-							<key>activated</key>
-							<true/>
-							<key>mappedValue</key>
-							<string>DECLINED</string>
-							<key>originalValue</key>
-							<string>cancelled</string>
-						</dict>
-						<dict>
-							<key>activated</key>
-							<true/>
-							<key>mappedValue</key>
-							<string>NEEDS ACTION</string>
-							<key>originalValue</key>
-							<string>needsaction</string>
-						</dict>
-						<dict>
-							<key>activated</key>
-							<true/>
-							<key>mappedValue</key>
-							<string>COMPLETED</string>
-							<key>originalValue</key>
-							<string>completed</string>
-						</dict>
-						<dict>
-							<key>activated</key>
-							<true/>
-							<key>mappedValue</key>
-							<string>ACCEPTED</string>
-							<key>originalValue</key>
-							<string>inprocess</string>
-						</dict>
-						<dict>
-							<key>activated</key>
-							<true/>
-							<key>mappedValue</key>
-							<string></string>
-							<key>originalValue</key>
-							<string>none</string>
-						</dict>
-					</array>
-				</dict>
-				<key>summary</key>
-				<dict>
-					<key>Activated</key>
-					<true/>
-					<key>DontNeedCheckBox</key>
-					<true/>
-					<key>charsFiltering</key>
-					<integer>1</integer>
-					<key>charsToStrip</key>
-					<string>\r,\n</string>
-					<key>maxLength</key>
-					<real>255</real>
-				</dict>
-			</dict>
-			<key>com_apple_contacts_Contact</key>
-			<dict>
-				<key>birthday</key>
-				<dict>
-					<key>Activated</key>
-					<true/>
-				</dict>
-				<key>company name</key>
-				<dict>
-					<key>Activated</key>
-					<true/>
-					<key>DontNeedCheckBox</key>
-					<true/>
-					<key>charsFiltering</key>
-					<integer>1</integer>
-					<key>charsToStrip</key>
-					<string>\r,\n</string>
-					<key>maxLength</key>
-					<real>255</real>
-				</dict>
-				<key>department</key>
-				<dict>
-					<key>Activated</key>
-					<true/>
-					<key>charsFiltering</key>
-					<integer>1</integer>
-					<key>charsToStrip</key>
-					<string>\r,\n</string>
-					<key>maxLength</key>
-					<real>255</real>
-				</dict>
-				<key>first name</key>
-				<dict>
-					<key>Activated</key>
-					<true/>
-					<key>DontNeedCheckBox</key>
-					<true/>
-					<key>charsFiltering</key>
-					<integer>1</integer>
-					<key>charsToStrip</key>
-					<string>\r,\n</string>
-					<key>maxLength</key>
-					<real>255</real>
-				</dict>
-				<key>image</key>
-				<dict>
-					<key>Activated</key>
-					<true/>
-					<key>maxLength</key>
-					<integer>0</integer>
-				</dict>
-				<key>job title</key>
-				<dict>
-					<key>Activated</key>
-					<true/>
-					<key>charsFiltering</key>
-					<integer>1</integer>
-					<key>charsToStrip</key>
-					<string>\r,\n</string>
-					<key>maxLength</key>
-					<real>255</real>
-				</dict>
-				<key>last name</key>
-				<dict>
-					<key>Activated</key>
-					<true/>
-					<key>DontNeedCheckBox</key>
-					<true/>
-					<key>charsFiltering</key>
-					<integer>1</integer>
-					<key>charsToStrip</key>
-					<string>\r,\n</string>
-					<key>maxLength</key>
-					<real>255</real>
-				</dict>
-				<key>middle name</key>
-				<dict>
-					<key>Activated</key>
-					<true/>
-					<key>charsFiltering</key>
-					<integer>1</integer>
-					<key>charsToStrip</key>
-					<string>\r,\n</string>
-					<key>maxLength</key>
-					<real>255</real>
-				</dict>
-				<key>nickname</key>
-				<dict>
-					<key>Activated</key>
-					<true/>
-					<key>charsFiltering</key>
-					<integer>1</integer>
-					<key>charsToStrip</key>
-					<string>\r,\n</string>
-					<key>maxLength</key>
-					<real>255</real>
-				</dict>
-				<key>notes</key>
-				<dict>
-					<key>Activated</key>
-					<true/>
-					<key>maxLength</key>
-					<real>1000</real>
-				</dict>
-				<key>suffix</key>
-				<dict>
-					<key>Activated</key>
-					<true/>
-					<key>charsFiltering</key>
-					<integer>1</integer>
-					<key>charsToStrip</key>
-					<string>\r,\n</string>
-					<key>maxLength</key>
-					<real>255</real>
-				</dict>
-				<key>title</key>
-				<dict>
-					<key>Activated</key>
-					<true/>
-					<key>charsFiltering</key>
-					<integer>1</integer>
-					<key>charsToStrip</key>
-					<string>\r,\n</string>
-					<key>maxLength</key>
-					<real>255</real>
-				</dict>
-			</dict>
-			<key>com_apple_contacts_Date</key>
-			<dict>
-				<key>IPSGlobalEntity</key>
-				<dict>
-					<key>Activated</key>
-					<true/>
-				</dict>
-				<key>type</key>
-				<dict>
-					<key>Activated</key>
-					<true/>
-					<key>mappings</key>
-					<array>
-						<dict>
-							<key>activated</key>
-							<false/>
-							<key>mappedValue</key>
-							<string>X-ANNIVERSARY</string>
-							<key>originalValue</key>
-							<string>anniversary</string>
-						</dict>
-						<dict>
-							<key>activated</key>
-							<false/>
-							<key>mappedValue</key>
-							<string>X-DATE</string>
-							<key>originalValue</key>
-							<string>other</string>
-						</dict>
-					</array>
-				</dict>
-				<key>value</key>
-				<dict>
-					<key>Activated</key>
-					<true/>
-				</dict>
-			</dict>
-			<key>com_apple_contacts_Email Address</key>
-			<dict>
-				<key>IPSGlobalEntity</key>
-				<dict>
-					<key>Activated</key>
-					<true/>
-				</dict>
-				<key>type</key>
-				<dict>
-					<key>Activated</key>
-					<true/>
-					<key>mappings</key>
-					<array>
-						<dict>
-							<key>activated</key>
-							<true/>
-							<key>mappedValue</key>
-							<string>WORK</string>
-							<key>originalValue</key>
-							<string>work</string>
-						</dict>
-						<dict>
-							<key>activated</key>
-							<true/>
-							<key>mappedValue</key>
-							<string>HOME</string>
-							<key>originalValue</key>
-							<string>home</string>
-						</dict>
-						<dict>
-							<key>activated</key>
-							<true/>
-							<key>mappedValue</key>
-							<string>INTERNET</string>
-							<key>originalValue</key>
-							<string>other</string>
-						</dict>
-					</array>
-				</dict>
-				<key>value</key>
-				<dict>
-					<key>Activated</key>
-					<true/>
-					<key>DontNeedCheckBox</key>
-					<true/>
-					<key>charsFiltering</key>
-					<integer>1</integer>
-					<key>charsToStrip</key>
-					<string>\r,\n</string>
-					<key>maxLength</key>
-					<real>255</real>
-				</dict>
-			</dict>
-			<key>com_apple_contacts_Phone Number</key>
-			<dict>
-				<key>IPSGlobalEntity</key>
-				<dict>
-					<key>Activated</key>
-					<true/>
-				</dict>
-				<key>type</key>
-				<dict>
-					<key>Activated</key>
-					<true/>
-					<key>mappings</key>
-					<array>
-						<dict>
-							<key>activated</key>
-							<true/>
-							<key>mappedValue</key>
-							<string>WORK</string>
-							<key>originalValue</key>
-							<string>work</string>
-						</dict>
-						<dict>
-							<key>activated</key>
-							<true/>
-							<key>mappedValue</key>
-							<string>HOME</string>
-							<key>originalValue</key>
-							<string>home</string>
-						</dict>
-						<dict>
-							<key>activated</key>
-							<true/>
-							<key>mappedValue</key>
-							<string>CELL</string>
-							<key>originalValue</key>
-							<string>mobile</string>
-						</dict>
-						<dict>
-							<key>activated</key>
-							<true/>
-							<key>mappedValue</key>
-							<string>FAX</string>
-							<key>originalValue</key>
-							<string>work fax</string>
-						</dict>
-						<dict>
-							<key>activated</key>
-							<true/>
-							<key>mappedValue</key>
-							<string>FAX</string>
-							<key>originalValue</key>
-							<string>home fax</string>
-						</dict>
-						<dict>
-							<key>activated</key>
-							<true/>
-							<key>mappedValue</key>
-							<string></string>
-							<key>originalValue</key>
-							<string>other</string>
-						</dict>
-						<dict>
-							<key>activated</key>
-							<true/>
-							<key>mappedValue</key>
-							<string></string>
-							<key>originalValue</key>
-							<string>main</string>
-						</dict>
-						<dict>
-							<key>activated</key>
-							<true/>
-							<key>mappedValue</key>
-							<string>PAGER</string>
-							<key>originalValue</key>
-							<string>pager</string>
-						</dict>
-					</array>
-				</dict>
-				<key>value</key>
-				<dict>
-					<key>Activated</key>
-					<true/>
-					<key>DontNeedCheckBox</key>
-					<true/>
-					<key>charsFiltering</key>
-					<integer>2</integer>
-					<key>charsToKeep</key>
-					<string>0123456789+#*pw</string>
-					<key>maxLength</key>
-					<real>255</real>
-				</dict>
-			</dict>
-			<key>com_apple_contacts_Related Name</key>
-			<dict>
-				<key>IPSGlobalEntity</key>
-				<dict>
-					<key>Activated</key>
-					<true/>
-				</dict>
-				<key>type</key>
-				<dict>
-					<key>Activated</key>
-					<true/>
-					<key>mappings</key>
-					<array>
-						<dict>
-							<key>activated</key>
-							<false/>
-							<key>mappedValue</key>
-							<string>X-FATHER</string>
-							<key>originalValue</key>
-							<string>father</string>
-						</dict>
-						<dict>
-							<key>activated</key>
-							<false/>
-							<key>mappedValue</key>
-							<string>X-MOTHER</string>
-							<key>originalValue</key>
-							<string>mother</string>
-						</dict>
-						<dict>
-							<key>activated</key>
-							<false/>
-							<key>mappedValue</key>
-							<string>X-PARENT</string>
-							<key>originalValue</key>
-							<string>parent</string>
-						</dict>
-						<dict>
-							<key>activated</key>
-							<true/>
-							<key>mappedValue</key>
-							<string>X-CHILDREN</string>
-							<key>originalValue</key>
-							<string>child</string>
-						</dict>
-						<dict>
-							<key>activated</key>
-							<false/>
-							<key>mappedValue</key>
-							<string>X-BROTHER</string>
-							<key>originalValue</key>
-							<string>brother</string>
-						</dict>
-						<dict>
-							<key>activated</key>
-							<false/>
-							<key>mappedValue</key>
-							<string>X-SISTER</string>
-							<key>originalValue</key>
-							<string>sister</string>
-						</dict>
-						<dict>
-							<key>activated</key>
-							<false/>
-							<key>mappedValue</key>
-							<string>X-FRIEND</string>
-							<key>originalValue</key>
-							<string>friend</string>
-						</dict>
-						<dict>
-							<key>activated</key>
-							<true/>
-							<key>mappedValue</key>
-							<string>X-SPOUSE</string>
-							<key>originalValue</key>
-							<string>spouse</string>
-						</dict>
-						<dict>
-							<key>activated</key>
-							<false/>
-							<key>mappedValue</key>
-							<string>X-PARTNER</string>
-							<key>originalValue</key>
-							<string>partner</string>
-						</dict>
-						<dict>
-							<key>activated</key>
-							<true/>
-							<key>mappedValue</key>
-							<string>X-ASSISTANT</string>
-							<key>originalValue</key>
-							<string>assistant</string>
-						</dict>
-						<dict>
-							<key>activated</key>
-							<false/>
-							<key>mappedValue</key>
-							<string>X-MANAGER</string>
-							<key>originalValue</key>
-							<string>manager</string>
-						</dict>
-						<dict>
-							<key>activated</key>
-							<false/>
-							<key>mappedValue</key>
-							<string>X-NAME</string>
-							<key>originalValue</key>
-							<string>other</string>
-						</dict>
-					</array>
-				</dict>
-				<key>value</key>
-				<dict>
-					<key>Activated</key>
-					<true/>
-					<key>DontNeedCheckBox</key>
-					<true/>
-					<key>charsFiltering</key>
-					<integer>1</integer>
-					<key>charsToStrip</key>
-					<string>\r,\n</string>
-					<key>maxLength</key>
-					<real>255</real>
-				</dict>
-			</dict>
-			<key>com_apple_contacts_Street Address</key>
-			<dict>
-				<key>IPSGlobalEntity</key>
-				<dict>
-					<key>Activated</key>
-					<true/>
-				</dict>
-				<key>city</key>
-				<dict>
-					<key>Activated</key>
-					<true/>
-					<key>charsFiltering</key>
-					<integer>1</integer>
-					<key>charsToStrip</key>
-					<string>\r,\n</string>
-					<key>maxLength</key>
-					<real>255</real>
-				</dict>
-				<key>country</key>
-				<dict>
-					<key>Activated</key>
-					<true/>
-					<key>charsFiltering</key>
-					<integer>1</integer>
-					<key>charsToStrip</key>
-					<string>\r,\n</string>
-					<key>maxLength</key>
-					<real>255</real>
-				</dict>
-				<key>postal code</key>
-				<dict>
-					<key>Activated</key>
-					<true/>
-					<key>charsFiltering</key>
-					<integer>1</integer>
-					<key>charsToStrip</key>
-					<string>\r,\n</string>
-					<key>maxLength</key>
-					<real>255</real>
-				</dict>
-				<key>state</key>
-				<dict>
-					<key>Activated</key>
-					<true/>
-					<key>charsFiltering</key>
-					<integer>1</integer>
-					<key>charsToStrip</key>
-					<string>\r,\n</string>
-					<key>maxLength</key>
-					<real>255</real>
-				</dict>
-				<key>street</key>
-				<dict>
-					<key>Activated</key>
-					<true/>
-					<key>DontNeedCheckBox</key>
-					<true/>
-					<key>charsFiltering</key>
-					<integer>1</integer>
-					<key>charsToStrip</key>
-					<string>\r,\n</string>
-					<key>maxLength</key>
-					<real>255</real>
-				</dict>
-				<key>type</key>
-				<dict>
-					<key>Activated</key>
-					<true/>
-					<key>mappings</key>
-					<array>
-						<dict>
-							<key>activated</key>
-							<true/>
-							<key>mappedValue</key>
-							<string>WORK</string>
-							<key>originalValue</key>
-							<string>work</string>
-						</dict>
-						<dict>
-							<key>activated</key>
-							<true/>
-							<key>mappedValue</key>
-							<string>HOME</string>
-							<key>originalValue</key>
-							<string>home</string>
-						</dict>
-						<dict>
-							<key>activated</key>
-							<true/>
-							<key>mappedValue</key>
-							<string></string>
-							<key>originalValue</key>
-							<string>other</string>
-						</dict>
-					</array>
-					<key>relationshipLimitKind</key>
-					<integer>2</integer>
-				</dict>
-			</dict>
-			<key>com_apple_contacts_URL</key>
-			<dict>
-				<key>IPSGlobalEntity</key>
-				<dict>
-					<key>Activated</key>
-					<true/>
-				</dict>
-				<key>type</key>
-				<dict>
-					<key>Activated</key>
-					<true/>
-					<key>mappings</key>
-					<array>
-						<dict>
-							<key>activated</key>
-							<true/>
-							<key>mappedValue</key>
-							<string>WORK</string>
-							<key>originalValue</key>
-							<string>work</string>
-						</dict>
-						<dict>
-							<key>activated</key>
-							<true/>
-							<key>mappedValue</key>
-							<string>HOME</string>
-							<key>originalValue</key>
-							<string>home page</string>
-						</dict>
-						<dict>
-							<key>activated</key>
-							<true/>
-							<key>mappedValue</key>
-							<string>HOME</string>
-							<key>originalValue</key>
-							<string>home</string>
-						</dict>
-						<dict>
-							<key>activated</key>
-							<true/>
-							<key>mappedValue</key>
-							<string></string>
-							<key>originalValue</key>
-							<string>other</string>
-						</dict>
-					</array>
-				</dict>
-				<key>value</key>
-				<dict>
-					<key>Activated</key>
-					<true/>
-					<key>DontNeedCheckBox</key>
-					<true/>
-					<key>charsFiltering</key>
-					<integer>1</integer>
-					<key>charsToStrip</key>
-					<string>\r,\n</string>
-					<key>maxLength</key>
-					<real>500</real>
-				</dict>
-			</dict>
-		</dict>
-		<key>syncMLOptionsDict</key>
-		<dict>
-			<key>SyncMLBusySignalingInterval</key>
-			<real>60</real>
-			<key>SyncMLBusySignalingSupport</key>
-			<true/>
-			<key>SyncMLLargeObjectSupport</key>
-			<true/>
-			<key>SyncMLMaxSyncCmdNbInEncodedMsg</key>
-			<real>30</real>
-			<key>SyncMLNumberOfChangesSupport</key>
-			<true/>
-			<key>SyncMLOnlyOneBusySignaling</key>
-			<false/>
-			<key>SyncMLRefreshFromServerSupport</key>
-			<true/>
-			<key>SyncMLRemoteNeedsRelativePaths</key>
-			<false/>
-			<key>SyncMLSimulateBusySignalingWithEmptySync</key>
-			<false/>
-			<key>SyncMLVersion</key>
-			<string>SyncML11</string>
-			<key>limitSyncCmd</key>
-			<false/>
-		</dict>
-		<key>tasksOptionsDict</key>
-		<dict>
-			<key>RemoteName</key>
-			<string>Tasks</string>
-			<key>hasDifferentDataclassesForTasksAndEvents</key>
-			<false/>
-			<key>hasTasks</key>
-			<true/>
-		</dict>
-		<key>vCalRecSettings</key>
-		<dict>
-			<key>com_apple_pimsync_events</key>
-			<dict>
-				<key>handleAllDayRecurrent</key>
-				<true/>
-			</dict>
-			<key>com_apple_pimsync_parser_vCal</key>
-			<dict>
-				<key>vCalExDatesSupport</key>
-				<true/>
-				<key>vCalRecDaily</key>
-				<true/>
-				<key>vCalRecDailyInterval</key>
-				<string></string>
-				<key>vCalRecDropIfUseless</key>
-				<integer>1</integer>
-				<key>vCalRecMaxExDatesNb</key>
-				<integer>0</integer>
-				<key>vCalRecMonthlyByDay</key>
-				<true/>
-				<key>vCalRecMonthlyByDayOnlyOnStartDateMonthDay</key>
-				<false/>
-				<key>vCalRecMonthlyByDayOnlyOneMonthDay</key>
-				<false/>
-				<key>vCalRecMonthlyByDayWithMonthDay</key>
-				<true/>
-				<key>vCalRecMonthlyByPos</key>
-				<true/>
-				<key>vCalRecMonthlyByPosOnlyOnStartDateWeekDay</key>
-				<false/>
-				<key>vCalRecMonthlyByPosOnlyOneWeekDay</key>
-				<false/>
-				<key>vCalRecMonthlyInterval</key>
-				<string></string>
-				<key>vCalRecOnlyForever</key>
-				<false/>
-				<key>vCalRecWeekly</key>
-				<true/>
-				<key>vCalRecWeeklyInterval</key>
-				<string></string>
-				<key>vCalRecWeeklyOnlyOnStartDateWeekDay</key>
-				<false/>
-				<key>vCalRecWeeklyOnlyOneWeekDay</key>
-				<false/>
-				<key>vCalRecWeeklyWithWeekDay</key>
-				<true/>
-				<key>vCalRecYearlyByMonth</key>
-				<true/>
-				<key>vCalRecYearlyByMonthInterval</key>
-				<string></string>
-				<key>vCalRecYearlyByMonthOnlyOnStartDateMonthNumber</key>
-				<false/>
-				<key>vCalRecYearlyByMonthOnlyOneMonthNumber</key>
-				<false/>
-				<key>vCalRecYearlyByMonthWithMonthNumber</key>
-				<true/>
-			</dict>
-		</dict>
-	</dict>
-	<key>version</key>
-	<integer>0</integer>
-</dict>
-</plist>
--- a/connectivitymodules/SeCon/catalogspcconnectivityplugin/bwins/catalogspcconnectivitypluginu.def	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-EXPORTS
-	??1CCatalogsPCConnectivityPlugin@@UAE@XZ @ 1 NONAME ; CCatalogsPCConnectivityPlugin::~CCatalogsPCConnectivityPlugin(void)
-	?Close@CCatalogsPCConnectivityPlugin@@QAEXXZ @ 2 NONAME ; void CCatalogsPCConnectivityPlugin::Close(void)
-	?Connect@CCatalogsPCConnectivityPlugin@@QAEHXZ @ 3 NONAME ; int CCatalogsPCConnectivityPlugin::Connect(void)
-	?GetDataL@CCatalogsPCConnectivityPlugin@@QAEXAAVTDataType@@AAVCBufFlat@@@Z @ 4 NONAME ; void CCatalogsPCConnectivityPlugin::GetDataL(class TDataType &, class CBufFlat &)
-	?NewL@CCatalogsPCConnectivityPlugin@@SAPAV1@XZ @ 5 NONAME ; class CCatalogsPCConnectivityPlugin * CCatalogsPCConnectivityPlugin::NewL(void)
-	?NewLC@CCatalogsPCConnectivityPlugin@@SAPAV1@XZ @ 6 NONAME ; class CCatalogsPCConnectivityPlugin * CCatalogsPCConnectivityPlugin::NewLC(void)
-	?PutDataL@CCatalogsPCConnectivityPlugin@@QAEXABVTDataType@@ABVCBufFlat@@@Z @ 7 NONAME ; void CCatalogsPCConnectivityPlugin::PutDataL(class TDataType const &, class CBufFlat const &)
-	?SupportedMimeTypesL@CCatalogsPCConnectivityPlugin@@QAE?AV?$RPointerArray@VTDataType@@@@XZ @ 8 NONAME ; class RPointerArray<class TDataType> CCatalogsPCConnectivityPlugin::SupportedMimeTypesL(void)
-
--- a/connectivitymodules/SeCon/catalogspcconnectivityplugin/eabi/catalogspcconnectivitypluginu.def	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-EXPORTS
-	_ZN29CCatalogsPCConnectivityPlugin19SupportedMimeTypesLEv @ 1 NONAME
-	_ZN29CCatalogsPCConnectivityPlugin4NewLEv @ 2 NONAME
-	_ZN29CCatalogsPCConnectivityPlugin5CloseEv @ 3 NONAME
-	_ZN29CCatalogsPCConnectivityPlugin5NewLCEv @ 4 NONAME
-	_ZN29CCatalogsPCConnectivityPlugin7ConnectEv @ 5 NONAME
-	_ZN29CCatalogsPCConnectivityPlugin8GetDataLER9TDataTypeR8CBufFlat @ 6 NONAME
-	_ZN29CCatalogsPCConnectivityPlugin8PutDataLERK9TDataTypeRK8CBufFlat @ 7 NONAME
-	_ZN29CCatalogsPCConnectivityPluginD0Ev @ 8 NONAME
-	_ZN29CCatalogsPCConnectivityPluginD1Ev @ 9 NONAME
-	_ZN29CCatalogsPCConnectivityPluginD2Ev @ 10 NONAME
-	_ZTI29CCatalogsPCConnectivityPlugin @ 11 NONAME ; #<TI>#
-	_ZTV29CCatalogsPCConnectivityPlugin @ 12 NONAME ; #<VT>#
-
--- a/connectivitymodules/SeCon/catalogspcconnectivityplugin/group/bld.inf	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-/*
-* Copyright (c) 2006-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 Catalogs PC Connectivity Plugin
-*
-*/
-
-
-PRJ_MMPFILES
-
-catalogspcconnectivityplugin.mmp
-
-
--- a/connectivitymodules/SeCon/catalogspcconnectivityplugin/group/catalogspcconnectivityplugin.mmp	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-/*
-* Copyright (c) 2006-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 Catalogs PC Connectivity
-*                Plugin
-*
-*/
-
-#include <platform_paths.hrh>
-#include <data_caging_paths.hrh>
-
-TARGET                  catalogspcconnectivityplugin.dll
-TARGETTYPE              dll
-UID                     0x1000008D 0x10207E73
-
-CAPABILITY              CAP_ECOM_PLUGIN
-VENDORID                VID_DEFAULT
-
-SOURCEPATH              ../src
-SOURCE                  catalogspcconnectivityplugin.cpp
-SOURCE                  catalogspcconnectivityclient.cpp
-
-USERINCLUDE             ../inc
-
-// Default system include paths for middleware layer modules.
-MW_LAYER_SYSTEMINCLUDE
-
-LIBRARY                 euser.lib
-LIBRARY                 apmime.lib
-
--- a/connectivitymodules/SeCon/catalogspcconnectivityplugin/inc/catalogspcconnectivityclient.h	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,145 +0,0 @@
-/*
-* Copyright (c) 2006 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 is a client which communicate with the server 
-*                CatalogsEnginePCClientFrontEnd 
-*
-*/
-
-
-#ifndef R_CATALOGSPCCONNECTIVITYCLIENT_H
-#define R_CATALOGSPCCONNECTIVITYCLIENT_H
-
-#include <e32base.h>
-#include <apmstd.h>
-
-/**
- *  This client communicate with the server CatalogsEnginePCClientFrontEnd
- *
- *  This class get requests from CatalogsPCConnectivityPlugin. 
- *  Class itself is client in client-server solution. When request 
- *  is received it will start the server (CatalogsEnginePCClientFrontEnd). 
- *  This client class is dummy, the server have all the functionality.
- *
- *  @lib catalogspcconnectivityplugin
- *  @since S60 v3.1
- */
-class RCatalogsPCConnectivityClient : public RSessionBase
-    {
-public:
-
-    /**
-     * Constructor
-     *
-     * @since S60 v3.1
-     */
-    RCatalogsPCConnectivityClient();
-
-    /**
-     * Destructor
-     *
-     * @since S60 v3.1
-     */
-    ~RCatalogsPCConnectivityClient();
-
-    /**
-     * A connection is formed to the Catalogs engine pc client front-end.
-     * This will start up the front-end server and connect to it 
-     *
-     * @since S60 v3.1
-     * @return TInt Standard error code, KErrNone if connection is formed
-     *         or the connection was formed already     
-     */
-    TInt Connect();
-
-    /**
-     * The connection to the Catalogs engine front-end is closed
-     *
-     * @since S60 v3.1
-     */
-    void Close();
-
-    /**
-     * All MIME types supported by this component can be asked using this method
-     *
-     * @since S60 v3.1
-     * @return RPointerArray< TDataType > contain all supported MIME types
-     *         RPointerArray TDataTypes have allocated using new, caller
-     *         have to remember to delete them properly
-     * @exeption Leaves with standard error codes
-     */
-    RPointerArray<TDataType> SupportedMimeTypesL();
-
-    /**
-     * A data packet of max length 65535 (0xFFFF) bytes is synchronously
-     * sent to the Catalogs engine front-end
-     * Usage: After PutDataL have been called, you have to call GetDataL
-     *        before you can call PutDataL again
-     *
-     * @since S60 v3.1
-     * @param aMimeType data packet MIME type
-     * @param aData data buffer to read from
-     * @exeption Leaves with standard error codes
-     */
-    void PutDataL( const TDataType& aMimeType, 
-        const CBufFlat& aData );
-
-    /**
-     * A data packet is synchronously transfered from the Catalogs front-end
-     * and returned to caller 
-     * Usage: Everytime before calling GetDataL, you have to call PutDataL.
-     *        So you can't call GetData in sequentially.
-     *
-     * @since S60 v3.1
-     * @param aMimeType data packet MIME type
-     * @param aData data buffer to write to. Will call ExpandL function
-     *        for aData, but never more than max length 65535 (OxFFFF)
-     * @return nothing, but parameter aData work as return buffer
-     * @exeption Leaves with standard error codes
-     */                                                          
-    void GetDataL( TDataType& aMimeType, CBufFlat& aData );
-
-    
-private:
-
-// private functions
-
-    /**
-     * Returns the earliest version number of the server that we can talk to
-     *
-     * @since S60 v3.1
-     * @return TVersion Earliest version number we can talk to
-     */
-    TVersion Version() const;
-
-    /**
-     * Start server if it isn't running already
-     *
-     * @since S60 v3.1
-     * @return TInt Standard error code, KErrNone if server was running
-     *         already or start was succesfull     
-     */
-    TInt StartServer();
-
-    /**
-     * Create server process
-     *
-     * @since S60 v3.1
-     * @return TInt standard error code, KErrNone when creation was success
-     */
-    TInt CreateServerProcess();
-
-    };
-
-#endif // R_CATALOGSPCCONNECTIVITYCLIENT_H
-
--- a/connectivitymodules/SeCon/catalogspcconnectivityplugin/inc/catalogspcconnectivitydefines.h	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-/*
-* Copyright (c) 2006 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:  Server information that the client needs
-*
-*/
-
-
-#include <e32base.h>
-
-/**  Server name */
-_LIT( KCatalogsPCConnectivityServerName, 
-    "CatalogsPCConnectivityServer" );
-
-/** Semaphore that is used when creating a new server */
-_LIT( KCatalogsPCConnectivityServerSemaphoreName, 
-    "CATALOGSPCCONNECTIVITYSemaphore" );
-
-/** File that is passed to the new server-process for execution */
-_LIT( KCatalogsPCConnectivityServerFilename, 
-    "catalogsenginepcclientfrontend" );
-
-// Default message slot amount in a session
-const TUint KCatalogsPCConnectivityDefaultMessageSlots = 255;
-
-/**  Version numbers */
-const TUint KCatalogsPCConnectivityMajorVersionNumber=1;
-const TUint KCatalogsPCConnectivityMinorVersionNumber=0;
-const TUint KCatalogsPCConnectivityBuildVersionNumber=0;
-
-/**  Function opcodes used in message passing between client and server */
-enum TCatalogsPCConnectivityServRqst
-    {
-    ECatalogsPCConnectivitySupportedMimeTypes = 1,
-    ECatalogsPCConnectivityPutData,
-    ECatalogsPCConnectivityGetData,
-    ECatalogsPCConnectivityGetSize
-    };
-
--- a/connectivitymodules/SeCon/catalogspcconnectivityplugin/inc/catalogspcconnectivityplugin.h	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,147 +0,0 @@
-/*
-* Copyright (c) 2006 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 plugin enables the Catalogs PC client to communicate 
-*                with the Catalogs engine
-*
-*/
-
-
-#ifndef C_CATALOGSPCCONNECTIVITYPLUGIN_H
-#define C_CATALOGSPCCONNECTIVITYPLUGIN_H
-
-#include "catalogspcconnectivityclient.h"
-
-/**
- *  Plugin enables Catalogs PC client to communicate with the Catalogs engine
- *
- *  This class get requests from Catalogs PC client. It passes the requests
- *  to client CatalogsPCConnectivityClient
- *
- *  @lib catalogspcconnectivityplugin
- *  @since S60 v3.1
- */
-class CCatalogsPCConnectivityPlugin : public CBase
-    {
-public:
-
-    /**
-     * Standard symbian object construction first phase
-     *
-     * @since S60 v3.1
-     * @return CCatalogsPCConnectivityPlugin pointer
-     */
-    IMPORT_C static  CCatalogsPCConnectivityPlugin* NewL();
-
-    /**
-     * Standard symbian object constructing first phase
-     *
-     * @since S60 v3.1
-     * @return CCatalogsPCConnectivityPlugin pointer
-     */
-    IMPORT_C static  CCatalogsPCConnectivityPlugin* NewLC();
-
-    /**
-     * Destructor
-     *
-     * @since S60 v3.1
-     */
-    IMPORT_C virtual ~CCatalogsPCConnectivityPlugin();
-
-    /**
-     * A connection is formed to the Catalogs engine pc client front-end.
-     * This will start up the front-end server and connect to it 
-     *
-     * @return TInt Standard error code, KErrNone if connection is formed
-     * @since S60 v3.1
-     */
-    IMPORT_C TInt Connect();
-
-    /**
-     * The connection to the Catalogs engine front-end is closed
-     *
-     * @since S60 v3.1
-     */
-    IMPORT_C void Close();
-
-    /**
-     * All MIME types supported by this component can be asked using this method
-     *
-     * @return RPointerArray<TDataType> contains all supported MIME types. 
-     *         The ownership is transferred to the caller.
-     *         Use ResetAndDestroy method to free all allocated memory
-     * @exeption Leaves with standard error codes
-     * @since S60 v3.1
-     */
-    IMPORT_C RPointerArray<TDataType> SupportedMimeTypesL();
-
-    /**
-     * A Data packet of max length 65535 (0xFFFF) bytes is synchronously
-     * sent to the Catalogs engine front-end.
-     * Usage: After PutDataL has been called, you must call GetDataL
-     *        before you can call PutDataL again
-     *
-     * @param aMimeType Data packet MIME type
-     * @param aData Data buffer to read from
-     * @exeption Leaves with standard error codes
-     *           KErrNotSupported if not supported MIME type
-     * @since S60 v3.1
-     */
-    IMPORT_C void PutDataL( const TDataType& aMimeType, 
-                            const CBufFlat& aData );
-
-    /**
-     * A data packet is synchronously transfered from the Catalogs front-end
-     * and returned to caller
-     * Usage: Everytime before calling GetDataL, you have to call PutDataL.
-     *        You may not call GetData in sequentially.
-     *
-     * @since S60 v3.1
-     * @param aMimeType MIME type of the received data packet
-     * @param aData Data buffer to write to. ExpandL function will be called
-     *        with the correct size for aData, but not more than max length
-     *        65535 (OxFFFF)
-     * @return The reference parameters contain the return data
-     * @exeption Leaves with standard error codes
-     */                                                          
-    IMPORT_C void GetDataL( TDataType& aMimeType, CBufFlat& aData );
-    
-    
-private:
-
-// private functions
-
-
-    /**
-     * Constructor
-     *
-     * @since S60 v3.1
-     */
-    CCatalogsPCConnectivityPlugin();
-
-    /**
-     * Standard symbian object construction second phase
-     */
-    void ConstructL();
-
-
-private: // data
-
-    /**
-     * Client that communicate with the CatalogsEnginePCClientFrontEnd
-     */
-    RCatalogsPCConnectivityClient iClient;
-    
-    };
-
-#endif // C_CATALOGSPCCONNECTIVITYPLUGIN_H
--- a/connectivitymodules/SeCon/catalogspcconnectivityplugin/src/catalogspcconnectivityclient.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,229 +0,0 @@
-/*
-* Copyright (c) 2006 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:  Client that communicate with CatalogsEnginePCClientFrontEnd
-*
-*/
-
-
-#include "catalogspcconnectivityclient.h"
-#include "catalogspcconnectivitydefines.h"
-
-
-// ======== MEMBER FUNCTIONS ========
-
-// ---------------------------------------------------------------------------
-// Constructor
-// ---------------------------------------------------------------------------
-//
-RCatalogsPCConnectivityClient::RCatalogsPCConnectivityClient()
-    {
-    }
-
-// ---------------------------------------------------------------------------
-// Destructor
-// ---------------------------------------------------------------------------
-//
-RCatalogsPCConnectivityClient::~RCatalogsPCConnectivityClient()
-    {
-    }
-
-// ---------------------------------------------------------------------------
-// Start server and create session with server
-// ---------------------------------------------------------------------------
-//
-TInt RCatalogsPCConnectivityClient::Connect()
-    {
-    TInt err = StartServer();
-        
-    if ( err == KErrNone )
-        {
-        err = CreateSession( 
-            KCatalogsPCConnectivityServerName,
-            Version(), 
-            KCatalogsPCConnectivityDefaultMessageSlots );
-        }
-    return err;
-    }
-
-// ---------------------------------------------------------------------------
-// Close session (After session is closed will server be closed too)
-// ---------------------------------------------------------------------------
-//
-void RCatalogsPCConnectivityClient::Close()
-    {
-    RHandleBase::Close();
-    }
-
-// ---------------------------------------------------------------------------
-// Give MIME types supported by this Module
-// ---------------------------------------------------------------------------
-//
-RPointerArray<TDataType> RCatalogsPCConnectivityClient::
-SupportedMimeTypesL()
-    {
-    RPointerArray<TDataType> supportedMIMEs;
-    TBool isThereMore = ETrue;
-    TPckgBuf<TBool> pckgIsThereMore;
-    TDataType* tempMIME = 0;
-    TPckgBuf<TDataType> pckgMIME;
-    
-    while( isThereMore )
-        {
-        User::LeaveIfError( SendReceive( 
-                ECatalogsPCConnectivitySupportedMimeTypes, 
-                TIpcArgs( &pckgMIME, &pckgIsThereMore ) ) );
-        isThereMore = pckgIsThereMore();
-        tempMIME = new( ELeave ) TDataType( pckgMIME() );
-        User::LeaveIfError( supportedMIMEs.Append( tempMIME ) );
-        }
-
-    return supportedMIMEs;
-    }
-
-// ---------------------------------------------------------------------------
-// Data package from CatalogsPCConnectivityPlugin
-// ---------------------------------------------------------------------------
-//
-void RCatalogsPCConnectivityClient::PutDataL( 
-    const TDataType& aMimeType, const CBufFlat& aData )
-    {
-    TInt size = aData.Size();
-    
-    RBuf8 desData;
-    desData.CreateL( size );
-    desData.CleanupClosePushL();
-    aData.Read( 0, desData, size );
-    TPckgBuf<TDataType> pckgMIME( aMimeType );
-
-    User::LeaveIfError( SendReceive( 
-            ECatalogsPCConnectivityPutData, 
-            TIpcArgs( &pckgMIME, &desData, size ) ) );
-
-    CleanupStack::Pop(); //desData
-    desData.Close();
-    }
-
-// ---------------------------------------------------------------------------
-// Data request from CatalogsPCConnectivityPlugin
-// First ask the size from server, then give correct size CBufFlat
-// ---------------------------------------------------------------------------
-//
-void RCatalogsPCConnectivityClient::GetDataL( 
-    TDataType& aMimeType, CBufFlat& aData )
-    {
-    TPckgBuf<TInt> pckgSize;
-    TPckgBuf<TDataType> pckgMIME;
-    
-    User::LeaveIfError( SendReceive( 
-            ECatalogsPCConnectivityGetSize, 
-            TIpcArgs( &pckgMIME, &pckgSize ) ) );
-    
-    TInt size = pckgSize();
-    aMimeType = pckgMIME();
-    
-    RBuf8 desData;
-    desData.CreateL( size );
-    desData.CleanupClosePushL();
-    
-    User::LeaveIfError( SendReceive( 
-            ECatalogsPCConnectivityGetData, 
-            TIpcArgs( &desData ) ) );
-    
-    aData.Reset();
-    aData.ExpandL( 0, size );
-    aData.Write( 0, desData, size );        
-            
-    CleanupStack::Pop(); //desData
-    desData.Close();
-    }
-
-// ---------------------------------------------------------------------------
-// Return version number
-// ---------------------------------------------------------------------------
-//
-TVersion RCatalogsPCConnectivityClient::Version() const
-    {
-    return( TVersion( KCatalogsPCConnectivityMajorVersionNumber,
-            KCatalogsPCConnectivityMinorVersionNumber,
-            KCatalogsPCConnectivityBuildVersionNumber ) );
-    }
-
-// ---------------------------------------------------------------------------
-// Start server if it isn't running already
-// ---------------------------------------------------------------------------
-//
-TInt RCatalogsPCConnectivityClient::StartServer()
-    {
-    // Check if the server is already running
-    TFindServer findServer( KCatalogsPCConnectivityServerName );
-    TFullName name;
-
-    TInt result = findServer.Next( name );
-    if ( result == KErrNone )
-        {
-        // Server is running
-        return KErrNone;
-        }
-
-    // Create a semaphore so we can wait while the server starts
-    RSemaphore semaphore;
-    result = semaphore.CreateGlobal( 
-    	KCatalogsPCConnectivityServerSemaphoreName, 0 );
-    if ( result != KErrNone )
-        {
-        return result;
-        }
-
-    // Create new Engine service process 
-    result = CreateServerProcess();
-    if ( result != KErrNone )
-        {
-        semaphore.Close();
-        return result;
-        }
-
-    // Wait while the server starts
-    semaphore.Wait();
-
-    // Semaphore has been signaled, close and return
-    semaphore.Close();
-
-    return KErrNone;
-    }
-
-// ---------------------------------------------------------------------------
-// Create server process
-// ---------------------------------------------------------------------------
-//
-TInt RCatalogsPCConnectivityClient::CreateServerProcess()
-    {
-
-    RProcess server;
-
-    TInt result = server.Create( 
-        KCatalogsPCConnectivityServerFilename, KNullDesC );
-    if ( result != KErrNone )
-        {
-        return result;
-        }
-    
-    // Resume server thread and close handle
-    server.Resume();
-    server.Close();  
-
-    return KErrNone;
-    }
-
-
-//end
--- a/connectivitymodules/SeCon/catalogspcconnectivityplugin/src/catalogspcconnectivityplugin.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,139 +0,0 @@
-/*
-* Copyright (c) 2006 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 plugin enables the Catalogs PC client to communicate 
-*                with the Catalogs engine
-*
-*/
-
-
-
-#include "catalogspcconnectivityplugin.h"
-
-
-
-// ======== MEMBER FUNCTIONS ========
-
-// ---------------------------------------------------------------------------
-// Constructor
-// ---------------------------------------------------------------------------
-//
-CCatalogsPCConnectivityPlugin::CCatalogsPCConnectivityPlugin()
-    {
-    }
-
-// ---------------------------------------------------------------------------
-// Empty
-// ---------------------------------------------------------------------------
-//
-void CCatalogsPCConnectivityPlugin::ConstructL()
-    {
-    }
-
-
-// ---------------------------------------------------------------------------
-// Standard symbian object constructing first phase
-// ---------------------------------------------------------------------------
-//
-EXPORT_C CCatalogsPCConnectivityPlugin* CCatalogsPCConnectivityPlugin::NewL()
-    {
-    CCatalogsPCConnectivityPlugin* self = 
-        CCatalogsPCConnectivityPlugin::NewLC();
-    CleanupStack::Pop( self );
-    return self;
-    }
-
-
-// ---------------------------------------------------------------------------
-// Standard symbian object constructing first phase
-// ---------------------------------------------------------------------------
-//
-EXPORT_C CCatalogsPCConnectivityPlugin* CCatalogsPCConnectivityPlugin::NewLC()
-    {
-    CCatalogsPCConnectivityPlugin* self = 
-        new( ELeave ) CCatalogsPCConnectivityPlugin;
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    return self;
-    }
-
-// ---------------------------------------------------------------------------
-// Destructor
-// ---------------------------------------------------------------------------
-//
-EXPORT_C CCatalogsPCConnectivityPlugin::~CCatalogsPCConnectivityPlugin()
-    {
-    iClient.Close();
-    }
-
-
-// ---------------------------------------------------------------------------
-// Connect to Catalogs engine pc client front-end
-// ---------------------------------------------------------------------------
-//
-EXPORT_C TInt CCatalogsPCConnectivityPlugin::Connect()
-    {
-    return iClient.Connect();
-    }
-
-// ---------------------------------------------------------------------------
-// Close the connection to Catalogs engine pc client front-end
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void CCatalogsPCConnectivityPlugin::Close()
-    {
-    iClient.Close();
-    }
-
-// ---------------------------------------------------------------------------
-// Give all MIME types supported by this component
-// ---------------------------------------------------------------------------
-//
-EXPORT_C RPointerArray<TDataType> CCatalogsPCConnectivityPlugin::
-    SupportedMimeTypesL()
-    {
-    return iClient.SupportedMimeTypesL();
-    }
-
-// ---------------------------------------------------------------------------
-// Data package from PC Client
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void CCatalogsPCConnectivityPlugin::PutDataL( 
-    const TDataType& aMimeType, const CBufFlat& aData )
-    {
-    iClient.PutDataL( aMimeType, aData );
-    }
-
-// ---------------------------------------------------------------------------
-// Data request from PC Client
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void CCatalogsPCConnectivityPlugin::GetDataL( 
-    TDataType& aMimeType, CBufFlat& aData )
-    {
-    iClient.GetDataL( aMimeType, aData );
-    }
-
-
-// ======== GLOBAL FUNCTIONS ========
-
-// ---------------------------------------------------------------------------
-// Dll entry point
-// ---------------------------------------------------------------------------
-//
-GLDEF_C TInt E32Dll()
-    {
-    return( KErrNone );
-    }
-
--- a/connectivitymodules/SeCon/clients/pcconn/bld/bld.inf	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +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 provides the information required for building the
-*    whole of SConPCConnClient
-*
-*/
-
-
-PRJ_PLATFORMS  
-DEFAULT
-
-PRJ_MMPFILES
-../bld/sconpcconnclient.mmp
--- a/connectivitymodules/SeCon/clients/pcconn/bld/def/bwinscwu.def	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,9 +0,0 @@
-EXPORTS
-	??0RSConPCConnSession@@QAE@XZ @ 1 NONAME ; RSConPCConnSession::RSConPCConnSession(void)
-	??1RSConPCConnSession@@QAE@XZ @ 2 NONAME ; RSConPCConnSession::~RSConPCConnSession(void)
-	?Close@RSConPCConnSession@@QAEXXZ @ 3 NONAME ; void RSConPCConnSession::Close(void)
-	?Connect@RSConPCConnSession@@QAEHXZ @ 4 NONAME ; int RSConPCConnSession::Connect(void)
-	?GetPacketL@RSConPCConnSession@@QAEHABVTDesC16@@ABVTDesC8@@AAPAVCBufFlat@@@Z @ 5 NONAME ; int RSConPCConnSession::GetPacketL(class TDesC16 const &, class TDesC8 const &, class CBufFlat * &)
-	?PutPacketL@RSConPCConnSession@@QAEHABVTDesC16@@ABVTDesC8@@AAPAVCBufFlat@@@Z @ 6 NONAME ; int RSConPCConnSession::PutPacketL(class TDesC16 const &, class TDesC8 const &, class CBufFlat * &)
-	?ResetServer@RSConPCConnSession@@QAEHXZ @ 7 NONAME ; int RSConPCConnSession::ResetServer(void)
-
--- a/connectivitymodules/SeCon/clients/pcconn/bld/def/eabiuu.def	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-EXPORTS
-	_ZN18RSConPCConnSession10GetPacketLERK7TDesC16RK6TDesC8RP8CBufFlat @ 1 NONAME
-	_ZN18RSConPCConnSession10PutPacketLERK7TDesC16RK6TDesC8RP8CBufFlat @ 2 NONAME
-	_ZN18RSConPCConnSession11ResetServerEv @ 3 NONAME
-	_ZN18RSConPCConnSession5CloseEv @ 4 NONAME
-	_ZN18RSConPCConnSession7ConnectEv @ 5 NONAME
-	_ZN18RSConPCConnSessionC1Ev @ 6 NONAME
-	_ZN18RSConPCConnSessionC2Ev @ 7 NONAME
-	_ZN18RSConPCConnSessionD1Ev @ 8 NONAME
-	_ZN18RSConPCConnSessionD2Ev @ 9 NONAME
-
--- a/connectivitymodules/SeCon/clients/pcconn/bld/sconpcconnclient.mmp	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,62 +0,0 @@
-/*
-* Copyright (c) 2005-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:  Client side of PC Connectivity Server-Client
-*
-*/
-
-
-// To get the MW_LAYER_SYSTEMINCLUDE-definition
-#include <platform_paths.hrh>
-#include <data_caging_paths.hrh>
-
-VENDORID        VID_DEFAULT
-
-CAPABILITY      CAP_CLIENT_DLL
-
-TARGET          sconpcconnclient.dll
-TARGETTYPE      dll
-
-UID             0x10009D8D 0x101F99F7
-
-TARGETPATH      sys/bin
-
-#if defined(ARMCC)
-DEFFILE	./def/eabiu
-#elif defined(WINSCW) 
-DEFFILE	./def/bwinscw
-#elif defined(WINS)
-DEFFILE	./def/bwins
-#elif defined(ARM)
-DEFFILE	./def/bmarm
-#endif
-
-
-SOURCEPATH      ../src
-
-SOURCE          sconpcconnclient.cpp
-
-// Client
-USERINCLUDE     ../inc
-USERINCLUDE     ../../../inc
-
-// Server
-USERINCLUDE     ../../../servers/pcconn/inc
-
-// Default system include paths for middleware layer modules.
-MW_LAYER_SYSTEMINCLUDE
-
-LIBRARY         euser.lib
-LIBRARY         estor.lib   // RMemWriteStream
-LIBRARY         efsrv.lib   // Rfs, RFile
-DEBUGLIBRARY    flogger.lib
--- a/connectivitymodules/SeCon/clients/pcconn/inc/sconpcconnclient.h	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,79 +0,0 @@
-/*
-* Copyright (c) 2005-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:  PC Connectivity client
-*
-*/
-
-
-#ifndef __SCONPCCONNCLIENT_H__
-#define __SCONPCCONNCLIENT_H__
-
-// -----------------------------------------------------------------------------
-// class RSConPCConnSession - the client session
-// -----------------------------------------------------------------------------
-class RSConPCConnSession : public RSessionBase
-	{
-public:
-	IMPORT_C RSConPCConnSession();
-	IMPORT_C ~RSConPCConnSession();
-
-        /**
-        * Starts the server and connects to it
-        * @param none
-        * @return KerrNone or an error code
-        */
-	IMPORT_C TInt Connect();
-	
-	/**
-        *  Disconnects from the server and terminates the server
-        * @param none
-        * @return none
-        */
-	IMPORT_C void Close();
-	
-	/**
-        *  Passes an OBEX Put -message to the server
-        * @param none
-        * @return none
-        */
-	IMPORT_C TInt PutPacketL( const TDesC& aNameHeader, 
-	                          const TDesC8& aTypeHeader, 
-	                          CBufFlat*& aBuffer );
-	
-	/**
-        *  Passes an OBEX Get -message to the server
-        * @param none
-        * @return none
-        */
-	IMPORT_C TInt GetPacketL( const TDesC& aNameHeader, 
-	                          const TDesC8& aTypeHeader, 
-	                          CBufFlat*& aBuffer );
-	
-	/**
-        *  Passes an reset -message to the server
-        * @param none
-        * @return none
-        */
-	IMPORT_C TInt ResetServer();	
-
-private:
-	TVersion Version() const;
-	TInt LaunchServer();
-	TInt CreateAndSendChunkHandle();
-
-private:
-	RChunk iChunk;
-	};
-	
-#endif
\ No newline at end of file
--- a/connectivitymodules/SeCon/clients/pcconn/src/sconpcconnclient.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,304 +0,0 @@
-/*
-* Copyright (c) 2005-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:  PC Connectivity client
-*
-*/
-
-
-
-// -----------------------------------------------------------------------------
-// Includes
-// -----------------------------------------------------------------------------
-#include <e32base.h>
-#include <s32mem.h>
-
-// Client - server 
-#include "sconpcconnclient.h"
-#include "sconpcconnclientserver.h"
-#include "debug.h"
-
-// -----------------------------------------------------------------------------
-// RSConPCConnSession::RSConPCConnSession()
-// Default constructor
-// -----------------------------------------------------------------------------
-//
-EXPORT_C RSConPCConnSession::RSConPCConnSession()
-    {
-    TRACE_FUNC;
-    }
-
-// -----------------------------------------------------------------------------
-// RSConPCConnSession::~RSConPCConnSession()
-// Default destructor
-// -----------------------------------------------------------------------------
-//
-EXPORT_C RSConPCConnSession::~RSConPCConnSession()
-    {
-    TRACE_FUNC;
-    }
-
-// -----------------------------------------------------------------------------
-// RSConPCConnSession::Connect()
-// Creates a chunk and server, starts the server connection
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt RSConPCConnSession::Connect()
-    {
-    TRACE_FUNC_ENTRY;
- 	
-    TInt ret ( KErrNone );
-
-    ret = CreateSession(KSConPCConnServerName,Version());
-    
-    if ( ret == KErrNotFound || ret == KErrServerTerminated )
-    	{
-    	ret = LaunchServer();
-    	
-    	if ( ret == KErrNone || ret == KErrAlreadyExists )
-    		{
-    		ret = CreateSession( KSConPCConnServerName, Version() );
-    		}
-    	}
-    	
-    if ( ret == KErrNone )
-    	{
-    	ret = CreateAndSendChunkHandle();
-    	if ( ret != KErrNone )
-    	    {
-    	    LOGGER_WRITE("CreateAndSendChunkHandle failed, close session");
-    	    Close();
-    	    }
-    	}
-    
-    LOGGER_WRITE_1( "RSConPCConnSession::Connect() : returned %d", ret );
-    return ret; 
-    }
-
-// -----------------------------------------------------------------------------
-// RSConPCConnSession::Close()
-// Closes the server connection
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void RSConPCConnSession::Close()
-    {
-    TRACE_FUNC_ENTRY;
-    iChunk.Close();
-    RSessionBase::Close();
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// RSConPCConnSession::Version()
-// Returns the version of the client
-// -----------------------------------------------------------------------------
-//	
-TVersion RSConPCConnSession::Version(void) const
-    {
-    return (TVersion(KSConPCConnServerVersionMajor, 
-                               KSConPCConnServerVersionMinor, 
-                               KSConPCConnServerVersionBuild));
-    }
-
-// -----------------------------------------------------------------------------
-// RSConPCConnSession::Version()
-// Forwards a PUT -message to the server
-// -----------------------------------------------------------------------------
-//	
-EXPORT_C TInt RSConPCConnSession::PutPacketL( 
-    const TDesC& aNameHeader, const TDesC8& aTypeHeader, CBufFlat*& aBuffer )
-    {
-    TRACE_FUNC_ENTRY;
-
-    if ( !aBuffer )
-        {
-        return KErrArgument;
-        }
-
-    if ((aBuffer->Size() + aTypeHeader.Size() + 
-         aNameHeader.Size()) > KSConPCConnChunkMaxSize)
-        {
-        LOGGER_WRITE( "RSConPCConnSession::PutPacketL() :\
-         WBXML document too big" );
-        return KErrTooBig;
-        }
-	
-    TInt ret (KErrNone);
-    iChunk.Adjust( KSConPCConnChunkMaxSize );
-    RMemWriteStream buf( iChunk.Base(), iChunk.Size() );
-	
-    buf.WriteInt32L( aNameHeader.Size() );
-    buf.WriteL( aNameHeader );
-
-    buf.WriteInt32L( aTypeHeader.Size() );
-    buf.WriteL( aTypeHeader );
-	
-    // WBXML document	
-    buf.WriteInt32L( aBuffer->Size() );
-    buf.WriteL( aBuffer->Ptr(0) );
-    buf.CommitL();
-    buf.Close();
-    
-    TIpcArgs args;
-    ret = SendReceive ( EPutMessage, args );
-
-    LOGGER_WRITE_1( "RSConPCConnSession::PutPacketL() : returned %d", ret );
-    return ret;
-    }
-
-// -----------------------------------------------------------------------------
-// RSConPCConnSession::Version()
-// Forwards a GET -message to the server
-// -----------------------------------------------------------------------------
-//	
-EXPORT_C TInt RSConPCConnSession::GetPacketL( 
-    const TDesC& aNameHeader, const TDesC8& aTypeHeader, CBufFlat*& aBuffer )
-    {
-    TRACE_FUNC_ENTRY;
-
-    if ( !aBuffer )
-        {
-        return KErrArgument;
-        }
-
-    TInt ret (KErrNone);
-	
-    iChunk.Adjust( KSConPCConnChunkMaxSize);
-    RMemWriteStream writeBuf( iChunk.Base(), iChunk.Size() );
-    writeBuf.WriteInt32L( aNameHeader.Size() );
-    writeBuf.WriteL( aNameHeader );
-    
-    writeBuf.WriteInt32L( aTypeHeader.Size() );
-    writeBuf.WriteL( aTypeHeader );
-
-    writeBuf.CommitL();
-    writeBuf.Close();
-    
-    TIpcArgs args;
-    ret = SendReceive ( EGetMessage, args );
-
-    if ( ret != KErrNone) 
-        {
-        LOGGER_WRITE_1( "RSConPCConnSession::GetPacketL() :\
-         Send Receive failed with code %d", ret );
-        return ret;
-        };
-	
-    // copy data from the chunk
-    RMemReadStream readBuf( iChunk.Base(), iChunk.Size() );
-    TInt32 length ( 0 );
-
-    aBuffer->Reset();
-    length = readBuf.ReadInt32L();
-	
-    HBufC8* data = HBufC8::NewLC( length );
-    TPtr8 dataPtr = data->Des();
-	
-    readBuf.ReadL( dataPtr, length );
-    aBuffer->ExpandL( 0, length );
-    aBuffer->Write ( 0, dataPtr );
-	
-    readBuf.Close();
-	
-    CleanupStack::PopAndDestroy(); // data;
-
-    LOGGER_WRITE_1( "RSConPCConnSession::GetPacketL()\
-     : returned %d", ret );
-    return ret;
-    }
-
-// -----------------------------------------------------------------------------
-// RSConPCConnSession::Version()
-// Forwards a Reset -message to the server
-// -----------------------------------------------------------------------------
-//	
-EXPORT_C TInt RSConPCConnSession::ResetServer()
-    {
-    TRACE_FUNC_ENTRY;
-    TInt ret ( KErrNone );
-    TIpcArgs args;
-    ret = SendReceive ( EResetMessage, args );
-    LOGGER_WRITE_1( "RSConPCConnSession::ResetServerL(): ret %d", ret );
-    return ret;
-    }
-    
-// -----------------------------------------------------------------------------
-// RSConPCConnSession::LaunchServer()
-// Launches the server
-// -----------------------------------------------------------------------------
-//	
-TInt RSConPCConnSession::LaunchServer()
-	{
-	TRACE_FUNC_ENTRY;
-	TInt ret( KErrNone );
-    
-    // Create server
-    RProcess p;
-    ret = p.Create(KSConPCConnServerExe, KNullDesC);
-    
-    if ( ret != KErrNone )
-        {
-        // Loading failed.
-        LOGGER_WRITE_1( "RProcess::Create failed, err: %d", ret );
-        return ret;
-        }
-    
-    
-    TRequestStatus status;
-    p.Rendezvous( status );
-    
-    if ( status != KRequestPending )
-        {
-        p.Kill(0);		// abort startup
-        p.Close();
-        LOGGER_WRITE("Abort startup, return KErrGeneral");
-        return KErrGeneral;   
-        }
-    else
-        {
-        p.Resume();	// logon OK - start the server
-        }
-    
-    User::WaitForRequest(status);
-    
-    p.Close();
-    
-	LOGGER_WRITE_1( "RSConPCConnSession::LaunchServerL(): returned %d", status.Int() );
-    return status.Int();
-	}
-	
-// -----------------------------------------------------------------------------
-// RSConPCConnSession::CreateAndSendChunkHandle()
-// Creates a chunk and sends a handle to server
-// -----------------------------------------------------------------------------
-//	
-TInt RSConPCConnSession::CreateAndSendChunkHandle()
-	{
-	TRACE_FUNC_ENTRY;
-	TInt err = iChunk.CreateGlobal( KNullDesC, 
-                                    KSConPCConnChunkSize, 
-                                    KSConPCConnChunkMaxSize );
-    if ( err != KErrNone )
-        {
-        LOGGER_WRITE_1("iChunk.CreateGlobal failed, err: %d", err);
-        return err;
-        }                           
-    TIpcArgs args;
- 	args.Set( 0, iChunk );
- 	err = SendReceive( EChunkMessage, args );
-    
-    LOGGER_WRITE_1("RSConPCConnSession::CreateAndSendChunkHandle : returned: %d", err);
-    return err;
-	}
-	
-// End of file
--- a/connectivitymodules/SeCon/cntparser/bld/bld.inf	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-/*
-* Copyright (c) 2002-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:  Contact Parser Client-Server build information file.
-*
-*/
-
-
-
-PRJ_PLATFORMS
-DEFAULT
-
-
-PRJ_MMPFILES
-cntparsersrv.mmp
-cntparsersrvexe.mmp
-
-
--- a/connectivitymodules/SeCon/cntparser/bld/cntparsersrv.mmp	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,60 +0,0 @@
-/*
-* Copyright (c) 2002-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:  Contact Parser Client
-*
-*/
-
-
-// To get the MW_LAYER_SYSTEMINCLUDE-definition
-#include <platform_paths.hrh>
-#include <data_caging_paths.hrh>
-
-VENDORID        VID_DEFAULT
-
-CAPABILITY      CAP_CLIENT_DLL
-
-TARGET          cntparserserver.dll
-TARGETTYPE      dll
-
-UID             0x10009d8d 0x101F99F8
-
-#if defined(ARMCC)
-DEFFILE	./def/eabiu
-#elif defined(WINSCW) 
-DEFFILE	./def/bwinscw
-#elif defined(WINS)
-DEFFILE	./def/bwins
-#elif defined(ARM)
-DEFFILE	./def/bmarm
-#endif
-
-SOURCEPATH      ../src
-SOURCE          cntparserclient.cpp
-SOURCE          cntparserinfolog.cpp
-
-USERINCLUDE     ../inc
-USERINCLUDE     ../../inc
-
-// Default system include paths for middleware layer modules.
-MW_LAYER_SYSTEMINCLUDE
-
-LIBRARY         euser.lib
-LIBRARY	        cntmodel.lib
-LIBRARY	        efsrv.lib
-LIBRARY	        estor.lib
-LIBRARY	        versit.lib
-LIBRARY	        vcard.lib
-LIBRARY         bafl.lib
-DEBUGLIBRARY    flogger.lib
-
--- a/connectivitymodules/SeCon/cntparser/bld/cntparsersrvexe.mmp	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-/*
-* Copyright (c) 2002-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:  Contact Parser Server
-*
-*/
-
-
-// To get the MW_LAYER_SYSTEMINCLUDE-definition
-#include <platform_paths.hrh>
-#include <data_caging_paths.hrh>
-
-VENDORID        VID_DEFAULT
-
-CAPABILITY      CAP_SERVER
-
-TARGET          cntparserserverexe.exe
-TARGETTYPE      exe
-
-UID             0 0x101F99F9
-
-SOURCEPATH      ../src
-SOURCE          cntparserserverexe.cpp
-SOURCE          cntparserserversession.cpp
-SOURCE          cntparsercollector.cpp
-
-USERINCLUDE     ../inc
-USERINCLUDE     ../../inc
-
-// Default system include paths
-APP_LAYER_SYSTEMINCLUDE
-
-LIBRARY         euser.lib
-LIBRARY	        cntmodel.lib
-LIBRARY	        efsrv.lib
-LIBRARY	        estor.lib
-LIBRARY	        versit.lib
-LIBRARY	        vcard.lib
-LIBRARY         bafl.lib
-DEBUGLIBRARY    flogger.lib
--- a/connectivitymodules/SeCon/cntparser/bld/def/bwinscwu.def	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,18 +0,0 @@
-EXPORTS
-	??0RCntParserServer@@QAE@XZ @ 1 NONAME ; RCntParserServer::RCntParserServer(void)
-	?Cancel@RCntParserServer@@QAEHXZ @ 2 NONAME ; int RCntParserServer::Cancel(void)
-	?CancelAll@RCntParserServer@@QAEHXZ @ 3 NONAME ; int RCntParserServer::CancelAll(void)
-	?Connect@RCntParserServer@@QAEHXZ @ 4 NONAME ; int RCntParserServer::Connect(void)
-	?ContactsParsed@RCntParserServer@@QAEHXZ @ 5 NONAME ; int RCntParserServer::ContactsParsed(void)
-	?ContactsSaved@RCntParserServer@@QAEHXZ @ 6 NONAME ; int RCntParserServer::ContactsSaved(void)
-	?CreateIrMCL2PhoneBook@RCntParserServer@@QAEHHH@Z @ 7 NONAME ; int RCntParserServer::CreateIrMCL2PhoneBook(int, int)
-	?Disconnect@RCntParserServer@@QAEHXZ @ 8 NONAME ; int RCntParserServer::Disconnect(void)
-	?MaximumRecords@CCntParserInfoLog@@QBEHXZ @ 9 NONAME ; int CCntParserInfoLog::MaximumRecords(void) const
-	?NewL@CCntParserInfoLog@@SAPAV1@XZ @ 10 NONAME ; class CCntParserInfoLog * CCntParserInfoLog::NewL(void)
-	?SaveToFileL@CCntParserInfoLog@@QBEXABVTDesC16@@@Z @ 11 NONAME ; void CCntParserInfoLog::SaveToFileL(class TDesC16 const &) const
-	?SetMaximumRecords@CCntParserInfoLog@@QAEXH@Z @ 12 NONAME ; void CCntParserInfoLog::SetMaximumRecords(int)
-	?SetTotalRecords@CCntParserInfoLog@@QAEXH@Z @ 13 NONAME ; void CCntParserInfoLog::SetTotalRecords(int)
-	?TotalNumberOfContacts@RCntParserServer@@QAEHXZ @ 14 NONAME ; int RCntParserServer::TotalNumberOfContacts(void)
-	?TotalRecords@CCntParserInfoLog@@QBEHXZ @ 15 NONAME ; int CCntParserInfoLog::TotalRecords(void) const
-	?Version@RCntParserServer@@QBE?AVTVersion@@XZ @ 16 NONAME ; class TVersion RCntParserServer::Version(void) const
-
--- a/connectivitymodules/SeCon/cntparser/bld/def/eabiuu.def	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-EXPORTS
-	_ZN16RCntParserServer10DisconnectEv @ 1 NONAME
-	_ZN16RCntParserServer13ContactsSavedEv @ 2 NONAME
-	_ZN16RCntParserServer14ContactsParsedEv @ 3 NONAME
-	_ZN16RCntParserServer21CreateIrMCL2PhoneBookEii @ 4 NONAME
-	_ZN16RCntParserServer21TotalNumberOfContactsEv @ 5 NONAME
-	_ZN16RCntParserServer6CancelEv @ 6 NONAME
-	_ZN16RCntParserServer7ConnectEv @ 7 NONAME
-	_ZN16RCntParserServer9CancelAllEv @ 8 NONAME
-	_ZN16RCntParserServerC1Ev @ 9 NONAME
-	_ZN16RCntParserServerC2Ev @ 10 NONAME
-	_ZN17CCntParserInfoLog15SetTotalRecordsEi @ 11 NONAME
-	_ZN17CCntParserInfoLog17SetMaximumRecordsEi @ 12 NONAME
-	_ZN17CCntParserInfoLog4NewLEv @ 13 NONAME
-	_ZNK16RCntParserServer7VersionEv @ 14 NONAME
-	_ZNK17CCntParserInfoLog11SaveToFileLERK7TDesC16 @ 15 NONAME
-	_ZNK17CCntParserInfoLog12TotalRecordsEv @ 16 NONAME
-	_ZNK17CCntParserInfoLog14MaximumRecordsEv @ 17 NONAME
-	_ZTI17CCntParserInfoLog @ 18 NONAME ; #<TI>#
-	_ZTV17CCntParserInfoLog @ 19 NONAME ; #<VT>#
-
--- a/connectivitymodules/SeCon/cntparser/inc/clientserver.h	Tue Feb 02 01:11:40 2010 +0200
+++ /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:  Contact Parser Server definitions
-*
-*/
-
-
-#ifndef __CLIENTSERVER_H__
-#define __CLIENTSERVER_H__
-#include <e32base.h>
-
-// server name
-_LIT(KCntParserName,"Contacts Parser");
-
-// A version must be specified when creating a session with the server
-
-const TUint KCntParserMajorVersionNumber=0;
-const TUint KCntParserMinorVersionNumber=1;
-const TUint KCntParserBuildVersionNumber=1;
-
-// opcodes used in message passing between client and server
-enum TCntParserRqst
-	{
-	ECntParserServerCancel,
-	ECntParserServerClose,
-	ECntParserServerCreateIrMCL2,
-	ECntParserServerTotalNumOfContacts,
-	ECntParserServerDisconnect,
-	ECntParserServerCntParsed,
-	ECntParserServerCntSaved,
-	ECntParserServerCancelAll
-	};
-
-#endif
\ No newline at end of file
--- a/connectivitymodules/SeCon/cntparser/inc/cntparserclient.h	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,56 +0,0 @@
-/*
-* Copyright (c) 2002-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:  Contact Parser Client
-*
-*/
-
-
-
-#if !defined(__CNTPARSERCLIENT_H__)
-#define __CNTPARSERCLIENT_H__
-
-#include <e32base.h>
-#include <e32std.h>
-
-enum TCntParserConnection
-{
-	ECntParserNotConnected,
-	ECntParserConnected
-};
-
-//**********************************
-//RCntParserServer
-//**********************************
-
-class RCntParserServer : public RSessionBase
-{
-	public:
-	IMPORT_C	RCntParserServer();
-	IMPORT_C	TInt Connect();
-	IMPORT_C	TInt Disconnect();
-	IMPORT_C	TVersion Version() const;
-	IMPORT_C	TInt CreateIrMCL2PhoneBook(TInt aMaxNumberOfContacts, TBool aForced);
-	IMPORT_C	TInt ContactsParsed();
-	IMPORT_C	TInt ContactsSaved();
-	IMPORT_C	TInt TotalNumberOfContacts();
-	IMPORT_C	TInt Cancel(); 		//cancels phonebook request
-	IMPORT_C	TInt CancelAll(); 	//cancels all request
-
-	private:
-	TCntParserConnection	iConnected;
-};
-
-
-#endif
-
--- a/connectivitymodules/SeCon/cntparser/inc/cntparsercollector.h	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,76 +0,0 @@
-/*
-* Copyright (c) 2002-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:  CCntParserCollector header
-*
-*/
-
-
-
-#ifndef __CNTPARSERCOLLECTOR_H__
-#define __CNTPARSERCOLLECTOR_H__
-
-#include <f32file.h>
-#include <s32file.h>
-
-class CCntParserServer;
-class CContactDatabase;
-class CContactIdArray;
-class CCntFilter;
-class CVersitTlsData;
-
-class CCntParserCollector : public CActive
-{
-	public:
-
-	CCntParserCollector();
-	static CCntParserCollector* NewL(CCntParserServer* aServer,CContactDatabase* aCurrentDatabase);
-	static CCntParserCollector* NewLC(CCntParserServer* aServer,CContactDatabase* aCurrentDatabase);
-	virtual ~CCntParserCollector();
-	void ConstructL(CCntParserServer* aServer,CContactDatabase* aCurrentDatabase);
-	TInt CreateIrMCL2FileL(const TDesC& aFileName,TInt aMaxNumberOfContacts,TBool aForced);
-	void PrepareParserL();
-	void ParseCntDatabaseL();
-	void DoCancel();
-
-	TInt CurrentItem();
-	TInt Count();
-	TInt ContactsSaved();
-
-	protected:
-	void RunL();
-	TInt RunError(TInt aError);
-	void ExternalizeCurrentContactL(CContactDatabase* aContactsDb,TInt aCurrentItem,TBool ExternalizeEmpty);
-	void CloseResources();
-	void SaveTotalCountL();
-	TInt ReadTotalCountL() const;
-	TBool ContactCountChanged();
-
-	private:
-	CContactDatabase*	iContactsDb;	//Caller has the ownership
-	TInt iCurrentItem;
-	TInt iCount;						//Contacts in CDB
-	TInt iMaxNumberOfContacts;			//Max contacts to be parsed (MAXIMUM RECORDS in info.log)
-	RFileWriteStream iWriter;
-	CContactIdArray* iIds;				//List of ID numbers of contacts
-	CCntParserServer* iServer;			//Caller has the ownership
-	CCntFilter* iFilter;
-	CVersitTlsData* iVersitTLS;			//For speed optimization
-	TBool iCancel;
-	TInt iContactsSaved;
-	TInt iTotalCount;
-	
-	RFs iFsSession;
-};
-
-#endif
\ No newline at end of file
--- a/connectivitymodules/SeCon/cntparser/inc/cntparserinfolog.h	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +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:  CCntParserInfoLog header.
-*    This class is intended to create the INFO.LOG file for RANSI car phone when
-*    downloading contacts using IrMC L2. The implementation contains only mandatory
-*    needs and some extension possibilities. This class is RANSI specific and
-*    should _NOT_ be used by anyone else without a deeper knowledge.
-*
-*/
-
-
-#ifndef _CNTPARSERINFOLOG_H_
-#define _CNTPARSERINFOLOG_H_
-
-
-class CCntParserInfoLog : public CBase
-{
-	public:
-	CCntParserInfoLog();
-	virtual ~CCntParserInfoLog();
-	IMPORT_C static CCntParserInfoLog* NewL();
-	void ConstructL();
-
-	IMPORT_C void SaveToFileL(const TDesC& aFileName) const;
-
-	IMPORT_C void SetTotalRecords(TInt aTotalRecords);
-	IMPORT_C void SetMaximumRecords(TInt aMaximumRecords);
-
-	IMPORT_C TInt TotalRecords() const;
-	IMPORT_C TInt MaximumRecords() const;
-
-	private:
-
-	TInt	iTotalRecords;
-	TInt	iLastUsedIndex;
-	TInt	iMaximumRecords;
-};
-
-#endif // _CNTPARSERINFOLOG_H_
--- a/connectivitymodules/SeCon/cntparser/inc/cntparserserver.h	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,95 +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:  CCntParserServer header
-*
-*/
-
-
-#ifndef __CNTPARSERSERVER_H__
-#define __CNTPARSERSERVER_H__
-
-#include <e32base.h>
-#include <e32svr.h>
-
-class CCntParserCollector;
-class CContactDatabase;
-
-_LIT(KTxtServer,"CntParserServerExe.exe");
-
-// needed for creating server thread.
-const TUint KDefaultHeapSize=0x10000;
-
-// reasons for server panic
-enum TCntParserServerPanic
-{
-	EBadRequest,
-	EBadDescriptor,
-	EMainSchedulerError,
-	ESvrCreateServer,
-	ESvrStartServer,
-	ECreateTrapCleanup,
-	ENotImplementedYet,
-};
-
-
-//**********************************
-//CCntParserServer
-//**********************************
-class CCntParserServer : public CServer2
-{
-	public:
-	IMPORT_C static CCntParserServer* NewL();
-	IMPORT_C virtual ~CCntParserServer();
-	static TInt RunServer();
-	static void RunServerL();
-	void IncreaseSessionCountL();
-	void DecreaseSessionCount();
-	void Stop();
-	
-	TInt CreateIrMCL2PhoneBookL(const TDesC& path, TInt aMaxNumberOfContacts,TBool aForced);
-	void PrepareCollectorL();
-	TInt ContactsParsed();
-	void CancelPhoneBookRequest();
-	void CancelAllPhoneBookRequests();
-	TInt TotalNumOfContacts();
-	TInt ContactsSaved();
-	void Disconnect();
-	void CompletePhoneBookRequests(TInt aErr);
-	void SetRequests(TInt aRequests);
-
-	protected:
-	virtual CSession2* NewSessionL(const TVersion &aVersion, const RMessage2& aMsg) const;
-
-
-	protected:
-	CCntParserServer();
-
-
-	private:
-	TInt	iSessionCount;
-	TInt	iRequests;	//How many PB.VCF requests are ongoing, if 0 collector is canceled
-
-	CCntParserCollector* iCollector;
-	CContactDatabase* iCurrentDatabase;
-};
-
-//**********************************
-//global functions
-//**********************************
-
-// function to panic the server
-GLREF_C void PanicServer(TCntParserServerPanic aPanic);
-
-
-#endif
\ No newline at end of file
--- a/connectivitymodules/SeCon/cntparser/inc/cntparserserversession.h	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,57 +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:  CCntParserServerSession header
-*
-*/
-
-
-#ifndef __CNTPARSERSERVERSESSION_H__
-#define __CNTPARSERSERVERSESSION_H__
-
-#include "clientserver.h"
-#include "cntparserclient.h"
-#include "cntparserserver.h"
-#include "cntparsercollector.h"
-
-class CCntParserServer;
-
-//**********************************
-//CCntParserServerSession
-//**********************************
-class CCntParserServerSession : public CSession2
-{
-	public:
-	static CCntParserServerSession* NewL(CCntParserServer* aServer);
-	virtual ~CCntParserServerSession();
-	void ConstructL(CCntParserServer* aServer);
-
-	private:
-	CCntParserServerSession();
-
-	public:
-	virtual void ServiceL(const RMessage2& aMessage);
-	TInt DispatchMessageL(const RMessage2& aMessage);
-	void CompletePhoneBookRequest(TInt aErr);
-
-	protected:
-	// panic the client
-	void PanicClient(TInt aPanic) const;
-
-	private:
-	CCntParserServer* iContactsParserSrv;
-	TBool iPhoneBookRequest;
-	RMessage2 iPhoneBookRequestMessage;
-};
-
-#endif
\ No newline at end of file
--- a/connectivitymodules/SeCon/cntparser/inc/irmcconsts.h	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +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:  Contact Parser constants
-*
-*/
-
-
-#ifndef _IRMCCONSTS_H_
-#define _IRMCCONSTS_H_
-
-_LIT(KPhoneBookFilename,"c:\\IrMC\\pb.vcf");
-const TInt KMaximumNumberOfContacts=-1; //-1 == all contacts are transferred
-const TInt KPBNotUpdated=1;	//Must be grater than 0
-const TInt KPerformComplete=2; //Must be grater than 0 and different than KPBNotUpdated
-
-#endif
--- a/connectivitymodules/SeCon/cntparser/src/cntparserclient.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,252 +0,0 @@
-/*
-* Copyright (c) 2002-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:  RCntParserServer implementation.
-*
-*/
-
-
-// needed for client interface
-#include "clientserver.h"
-#include "cntparserserver.h"
-#include "cntparserclient.h"
-
-#include "debug.h"
-
-const TUint KDefaultMessageSlots=4;
-
-
-//------------------------------------------------------------
-// RCntParserServer::RCntParserServer()
-//------------------------------------------------------------
-EXPORT_C RCntParserServer::RCntParserServer():iConnected(ECntParserNotConnected)
-	{
-	}
-//------------------------------------------------------------
-// RCntParserServer::Connect()
-//------------------------------------------------------------
-EXPORT_C TInt RCntParserServer::Connect()
-	{
-	LOGGER_ENTERFN( "RCntParserServer::Connect()" );
-
-	TInt r = KErrNone;
-
-	if( iConnected == ECntParserNotConnected )
-		{
-		r = CreateSession( KCntParserName, Version(), KDefaultMessageSlots );
-		if(r==KErrNone) 
-			{
-			iConnected=ECntParserConnected;	
-			}
-		else
-			{
-			RProcess p;
-			TInt err = p.Create(KTxtServer, KNullDesC);
-	   		if ( err != KErrNone )
-           		{
-           		// Loading failed.
-           		return err;
-           		}
-			TRequestStatus status;
-			p.Rendezvous( status );
-			if( status != KRequestPending )
-				{
-				p.Kill(0);		// abort startup
-				p.Close();
-				return KErrGeneral;   // status can be KErrNone: don't return status.Int()
-				}
-			else
-				{
-				p.Resume();	// logon OK - start the server
-				}
-			
-			User::WaitForRequest( status );
-
-			if( status != KErrNone )
-				{
-				p.Close();
-				return status.Int();
-				}
-
-			r = CreateSession( KCntParserName, Version() );
-			if( r == KErrNone )
-				{
-				iConnected = ECntParserConnected;	
-				}
-			p.Close();
-			}
-		}
-	else
-		{
-		r = KErrCouldNotConnect;
-		}
-	LOGGER_WRITE_1( "RCntParserServer::Connect() : return %d", r );
-	return r; 
-	}
-//------------------------------------------------------------
-// RCntParserServer::Disconnect()
-//------------------------------------------------------------
-EXPORT_C TInt RCntParserServer::Disconnect()
-	{
-	LOGGER_ENTERFN( "RCntParserServer::Disconnect()" );
-
-	TInt res = KErrNone;
-	if(iConnected==ECntParserConnected)
-		{
-		res = SendReceive( ECntParserServerDisconnect, TIpcArgs(NULL) );
-		if( res == KErrNone )
-			{
-			iConnected = ECntParserNotConnected;
-			RSessionBase::Close();
-			}
-		}
-	else
-		{
-		res = KErrCouldNotDisconnect;
-		}
-	LOGGER_WRITE_1( "RCntParserServer::CreateIrMCL2PhoneBook() : return %d", res );
-	return res;
-	}
-//------------------------------------------------------------
-// RCntParserServer::Version(void) const
-//------------------------------------------------------------
-EXPORT_C TVersion RCntParserServer::Version(void) const
-	{
-	return(TVersion(KCntParserMajorVersionNumber,KCntParserMinorVersionNumber,KCntParserBuildVersionNumber));
-	}
-//------------------------------------------------------------
-// RCntParserServer::CreateIrMCL2PhoneBook(TInt aMaxNumberOfContacts, TBool aForced)
-//------------------------------------------------------------
-EXPORT_C int RCntParserServer::CreateIrMCL2PhoneBook(TInt aMaxNumberOfContacts, TBool aForced)
-	{
-	LOGGER_ENTERFN( "RCntParserServer::CreateIrMCL2PhoneBook()" );
-    TInt res(KErrNone);
-	if( iConnected == ECntParserConnected )
-		{
-		res = SendReceive(ECntParserServerCreateIrMCL2,TIpcArgs(aMaxNumberOfContacts,aForced));
-		}
-	else
-		{
-		res = KErrNotReady;
-		}
-	LOGGER_WRITE_1( "RCntParserServer::CreateIrMCL2PhoneBook() : return %d", res );
-	return res;
-	}
-//------------------------------------------------------------
-// RCntParserServer::ContactsParsed()
-//------------------------------------------------------------
-EXPORT_C TInt RCntParserServer::ContactsParsed()
-	{
-	LOGGER_ENTERFN( "RCntParserServer::ContactsParsed()" );
-
-	TInt res=KErrNone;
-	if( iConnected == ECntParserConnected )
-		{
-		TPckgBuf<TInt> pckg;
-		res = SendReceive(ECntParserServerCntParsed,TIpcArgs(&pckg));
-		if( res == KErrNone )
-            {
-            res = pckg();
-            }
-		}
-	else
-		{
-		res = KErrNotReady;
-		}
-	LOGGER_WRITE_1( "RCntParserServer::ContactsParsed() : return %d", res );
-	return res;
-	}
-//------------------------------------------------------------
-// RCntParserServer::TotalNumberOfContacts()
-//------------------------------------------------------------
-EXPORT_C TInt RCntParserServer::TotalNumberOfContacts()
-	{
-	LOGGER_ENTERFN( "RCntParserServer::TotalNumberOfContacts()" );
-
-	TInt res = KErrNone;
-	if( iConnected == ECntParserConnected )
-		{
-		TPckgBuf<TInt> pckg;
-		res = SendReceive(ECntParserServerTotalNumOfContacts,TIpcArgs(&pckg));
-		if( res == KErrNone)
-            {
-            res = pckg();
-            }
-		}
-	else
-		{
-		res = KErrNotReady;
-		}
-	LOGGER_WRITE_1( "RCntParserServer::TotalNumberOfContacts() : return %d", res );
-	return res;
-	}
-//------------------------------------------------------------
-// RCntParserServer::Cancel()
-//------------------------------------------------------------
-EXPORT_C TInt RCntParserServer::Cancel()
-	{
-	LOGGER_ENTERFN( "RCntParserServer::Cancel()" );
-
-	TInt res = KErrNone;
-	if( iConnected == ECntParserConnected )
-		{
-		res = SendReceive(ECntParserServerCancel,TIpcArgs(NULL));
-		}
-	else
-		{
-		res = KErrCancel;
-		}
-	LOGGER_WRITE_1( "RCntParserServer::Cancel() : return %d", res );
-	return res;
-	}
-//------------------------------------------------------------
-// RCntParserServer::CancelAll()
-//------------------------------------------------------------
-EXPORT_C TInt RCntParserServer::CancelAll()
-	{
-	LOGGER_ENTERFN( "RCntParserServer::CancelAll()" );
-
-	TInt res = KErrNone;
-	if(iConnected==ECntParserConnected)
-		{
-		res = SendReceive(ECntParserServerCancelAll,TIpcArgs(NULL));
-		}
-	else
-		{
-		res = KErrCancel;
-		}
-    LOGGER_WRITE_1( "RCntParserServer::CancelAll() : return %d", res );
-	return res;
-	}
-//------------------------------------------------------------
-// RCntParserServer::ContactsSaved()
-//------------------------------------------------------------
-EXPORT_C TInt RCntParserServer::ContactsSaved()
-	{
-	LOGGER_ENTERFN( "RCntParserServer::ContactsSaved()" );
-
-	TInt res = KErrNone;
-	if( iConnected == ECntParserConnected )
-		{
-		TPckgBuf<TInt> pckg;
-		SendReceive(ECntParserServerCntSaved,TIpcArgs(&pckg));
-		res = pckg();
-		}
-	else
-		{
-		res = KErrNotReady;
-		}
-    LOGGER_WRITE_1( "RCntParserServer::ContactsSaved() : return %d", res );
-	return res;
-	}
-
--- a/connectivitymodules/SeCon/cntparser/src/cntparsercollector.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,620 +0,0 @@
-/*
-* Copyright (c) 2002-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:  CCntParserCollector implementation.
-*
-*/
-
-
-
-#include <cntfilt.h>
-#include <cntitem.h>
-#include <cntfldst.h>
-
-#include <vcard.h>
-#include <versit.h>
-#include <s32mem.h>
-
-#include "cntparsercollector.h"
-#include "cntparserserver.h"
-#include "irmcconsts.h"
-#include "debug.h"
-
-//Next values are defined in cntdef.h
-const TUid typesToBeSearched[]={{KUidContactFieldPhoneNumberValue},{KUidContactFieldFaxValue}};
-
-_LIT( KTotalCountFilePath, "count.txt" );
-
-_LIT8( KNameProperty, "N" );
-_LIT8( KTelProperty, "TEL" );
-
-
-//------------------------------------------------------------
-// CCntParserCollector::CCntParserCollector():CActive( 0 )
-//------------------------------------------------------------
-CCntParserCollector::CCntParserCollector():CActive( 0 )
-    {
-    }
-//------------------------------------------------------------
-// CCntParserCollector::~CCntParserCollector()
-//------------------------------------------------------------
-CCntParserCollector::~CCntParserCollector()
-    {
-    LOGGER_ENTERFN( "CntParserCollector::~CCntParserCollector()" );
-
-    if( iVersitTLS != NULL )
-        {
-        iVersitTLS->VersitTlsDataClose(); //Close reference 
-        }
-    LOGGER_WRITE( "CntParserCollector: Versit OK!" );
-
-    iFsSession.Close();
-    LOGGER_WRITE( "CntParserCollector: FsSession OK!" );
-    iWriter.Close(); 
-    LOGGER_WRITE( "CntParserCollector: iWriter OK!" );
-    delete iFilter;
-    LOGGER_LEAVEFN( "CntParserCollector::~CCntParserCollector()" );
-    }
-//------------------------------------------------------------
-// CCntParserCollector::NewL(CCntParserServer* aServer,CContactDatabase* aCurrentDatabase)
-//------------------------------------------------------------
-CCntParserCollector* CCntParserCollector::NewL(CCntParserServer* aServer,CContactDatabase* aCurrentDatabase)
-    {
-    CCntParserCollector* self=NewLC(aServer, aCurrentDatabase);
-    CleanupStack::Pop();
-    return self;
-    }
-//------------------------------------------------------------
-// CCntParserCollector::NewLC(CCntParserServer* aServer,CContactDatabase* aCurrentDatabase)
-//------------------------------------------------------------
-CCntParserCollector* CCntParserCollector::NewLC(CCntParserServer* aServer,CContactDatabase* aCurrentDatabase)
-    {
-    CCntParserCollector* self=new (ELeave) CCntParserCollector();
-    CleanupStack::PushL( self );
-    self->ConstructL( aServer, aCurrentDatabase );
-    return self;
-    }
-//------------------------------------------------------------
-// CCntParserCollector::ConstructL(CCntParserServer* aServer,CContactDatabase* aCurrentDatabase)
-//------------------------------------------------------------
-void CCntParserCollector::ConstructL(CCntParserServer* aServer,CContactDatabase* aCurrentDatabase)
-    {
-    LOGGER_WRITE( "CntParserCollector: ConstructL" );
-
-    CVersitTlsData& VersitTLS = CVersitTlsData::VersitTlsDataL();   //For speed optimization take a reference to TLS, SEE DESTRUCTOR!!
-    iVersitTLS = &VersitTLS;
-
-    iServer = aServer;
-    iContactsDb = aCurrentDatabase;
-    PrepareParserL();
-
-    CActiveScheduler::Add(this);
-    }
-//------------------------------------------------------------
-// CCntParserCollector::CreateIrMCL2FileL(const TDesC& aFileName, TInt aMaxNumberOfContacts,TBool aForced)
-//------------------------------------------------------------
-TInt CCntParserCollector::CreateIrMCL2FileL(const TDesC& aFileName, TInt aMaxNumberOfContacts,TBool aForced)
-    {
-    LOGGER_WRITE( "CntParserCollector: CreateIrMCL2FileL" );
-    LOGGER_WRITE_1( "CCntParserCollector::CreateIrMCL2FileL aFileName %S", &aFileName );
-
-    iMaxNumberOfContacts = aMaxNumberOfContacts;
-
-    CContactIdArray* changedItems;
-    TTime tTime;
-
-    LOGGER_WRITE( "CntParserCollector: CreateIrMCL2FileL: Does the PB.VCF already exist" );
-
-    //Is there a previously created pb.vcf file?
-    RFile file;
-    TInt err = file.Open( iFsSession, aFileName, EFileShareExclusive ); //Open file
-    if( err == KErrNone )
-        {
-        LOGGER_WRITE( "CntParserCollector: CreateIrMCL2FileL: Yes, when created" );
-        file.Modified(tTime);   //When modified
-        }
-    file.Close();
-
-    err = iWriter.Open( iFsSession, aFileName, EFileShareExclusive ); //Open stream
-    CleanupClosePushL( iWriter );   //Yes, this is a member variable, but it's considered
-
-    if( err == KErrPathNotFound )
-        {
-        LOGGER_WRITE( "CntParserCollector: CreateIrMCL2FileL: dir did not exist, creating..." );
-        err = iFsSession.MkDir( aFileName );
-        LOGGER_WRITE_1( "CCntParserCollector MkDir returned %d", err );
-        if ( err == KErrNone )
-            {
-            LOGGER_WRITE( "CntParserCollector: CreateIrMCL2FileL: New file after MkDir" );
-            //This is the situation that the file is created for the first time
-            User::LeaveIfError( iWriter.Create( iFsSession, aFileName, EFileShareExclusive ) );
-            LOGGER_WRITE( "CntParserCollector: CreateIrMCL2FileL: New file created after MkDir" );
-            CleanupStack::Pop();    //iWriter
-            ParseCntDatabaseL(); //create IrMC L2 stuff
-            SaveTotalCountL();
-            return KErrNone;    //File created normally
-            }
-        }
-    if( err == KErrNotFound ) // file does not exist - create it
-        {
-        LOGGER_WRITE( "CntParserCollector: CreateIrMCL2FileL: New file" );
-
-        //This is the situation that the file is created for the first time
-        User::LeaveIfError( iWriter.Create( iFsSession, aFileName, EFileShareExclusive ) );
-        LOGGER_WRITE( "CntParserCollector: CreateIrMCL2FileL: New file created" );
-        CleanupStack::Pop();    //iWriter
-        ParseCntDatabaseL(); //create IrMC L2 stuff
-        SaveTotalCountL();
-        return KErrNone;    //File created normally
-        }
-    else
-        {
-        if( err != KErrNone )
-            {
-            LOGGER_WRITE_1( "CreateIrMCL2FileL errror leaving %d", err );
-            User::Leave(err);   
-            }
-        iWriter.Close();
-
-        LOGGER_WRITE( "CntParserCollector: CreateIrMCL2FileL: File exists, any changes in CDB?" );
-        //The file exists, but are there any changes?
-
-        changedItems = iContactsDb->ContactsChangedSinceL( tTime ); //Create a contactidarray, user takes the ownership
-        CleanupStack::PushL(changedItems);
-
-        LOGGER_WRITE_1( "CreateIrMCL2FileL changedItems %d", changedItems->Count() );
-        LOGGER_WRITE_1( "CreateIrMCL2FileL aForced %d", aForced );
-        //Are there changes in any contact
-        if( changedItems->Count()!=0 || aForced || ContactCountChanged() )
-            {
-            LOGGER_WRITE( "CntParserCollector: CreateIrMCL2FileL: Changes in CDB, replace existing PB.VCF" );
-
-            CleanupStack::PopAndDestroy(changedItems);
-
-            //Create pb.vcf
-            User::LeaveIfError( iWriter.Replace( iFsSession, aFileName, EFileShareExclusive) );
-            LOGGER_WRITE( "CntParserCollector: CreateIrMCL2FileL: file replaced" );
-            CleanupStack::Pop();    //iWriter
-            ParseCntDatabaseL(); //create IrMC L2 stuff
-            SaveTotalCountL();
-            return KErrNone;    //File created normally
-            }
-
-        //No changes
-        CleanupStack::PopAndDestroy(changedItems);
-        CleanupStack::PopAndDestroy();
-
-        LOGGER_WRITE( "CntParserCollector: CreateIrMCL2FileL: No Changes in CDB, keep old PB.VCF" );
-        }   
-    return KPBNotUpdated;   //No error occured, KPBNotUpdated used as return value to tell that the file was not created..
-    }
-//------------------------------------------------------------
-// CCntParserCollector::ParseCntDatabaseL()
-//------------------------------------------------------------
-void CCntParserCollector::ParseCntDatabaseL()
-    {
-    LOGGER_WRITE( "CntParserCollector: ParseCntDatabaseL" );
-
-    iCurrentItem = 0;
-    iCancel = EFalse;
-    iContactsSaved = 0;
-
-    //Create owncard (it's always included, even if it's empty)
-
-    TFileName defaultDb;
-    CContactDatabase::GetDefaultNameL( defaultDb );
-    TFileName currentDb;
-    iContactsDb->GetCurrentDatabase( currentDb );
-
-    if( defaultDb.CompareF(currentDb) == 0 || currentDb == KNullDesC16 /*|| currentDb.CompareF(KSimDummyDatabase)==0*/) //Is current database also default?
-        {
-        LOGGER_WRITE( "CntParserCollector: ParseCntDatabaseL: Using default database" );
-        TContactItemId ownCardId = iContactsDb->OwnCardId();
-        ExternalizeCurrentContactL( iContactsDb, ownCardId, ETrue);
-        }
-    else
-        {
-        LOGGER_WRITE( "CntParserCollector: ParseCntDatabaseL: Not using default database" );
-        CContactDatabase* db=CContactDatabase::OpenL(); //My contact card is only in default db, so open it
-        CleanupStack::PushL(db);
-
-        TContactItemId ownCardId = db->OwnCardId();
-        ExternalizeCurrentContactL( db, ownCardId, ETrue );
-
-        CleanupStack::PopAndDestroy( db );
-        }
-
-    //Start running RunL method and create everything else..
-    TRequestStatus* s = &iStatus;
-    User::RequestComplete( s, KErrNone );
-    SetActive();
-    }
-//------------------------------------------------------------
-// CCntParserCollector::CloseResources()
-//------------------------------------------------------------
-void CCntParserCollector::CloseResources()
-    {
-    LOGGER_WRITE( "CntParserCollector: CloseResources: Closing resources (iWriter)" );
-    iWriter.Close();
-    }
-//------------------------------------------------------------
-// CCntParserCollector::PrepareParserL()
-//------------------------------------------------------------
-void CCntParserCollector::PrepareParserL()
-    {
-    LOGGER_WRITE( "CntParserCollector: PrepareParserL" );
-    iFilter = CCntFilter::NewL();   //Filter all contact cards out of others
-
-    iFilter->SetContactFilterTypeALL( EFalse );
-    iFilter->SetContactFilterTypeCard( ETrue );
-    iContactsDb->FilterDatabaseL( *iFilter );
-
-    iIds=iFilter->iIds; //Get IDs to filtered contacts
-    iCount=iIds->Count(); //Get number of contacts to be collected
-
-    User::LeaveIfError( iFsSession.Connect() ); //Connect to the file server
-    
-    LOGGER_WRITE_1( "CntParserCollector: PrepareParserL: iCount == %d", iCount);
-    }
-//------------------------------------------------------------
-// CCntParserCollector::RunL()
-//------------------------------------------------------------
-void CCntParserCollector::RunL()
-    {
-    //MaxNumberOfContacts-1 for OwnCard
-    if( iCurrentItem < iCount && (iCurrentItem < ( iMaxNumberOfContacts - 1 ) || iMaxNumberOfContacts == -1 ) ) //If no more contacts left or maximum number of contacts already parsed
-        {
-        ExternalizeCurrentContactL( iContactsDb, (*iIds)[iCurrentItem], EFalse );
-        iCurrentItem++;
-        TRequestStatus* s = &iStatus;       //Let's rerun this RunL method as soon as possible
-        User::RequestComplete( s, KErrNone );
-        SetActive();
-        return;
-        }
-    iCurrentItem++; //for OwnCard that is created separately
-    LOGGER_WRITE( "CntParserCollector: RunL: No more items" );
-    CloseResources();
-    iServer->CompletePhoneBookRequests( KErrNone );
-    }
-//------------------------------------------------------------
-// CCntParserCollector::ExternalizeCurrentContactL(CContactDatabase* aContactsDb,TInt aCurrentItem,TBool ExternalizeEmpty)
-//------------------------------------------------------------
-void CCntParserCollector::ExternalizeCurrentContactL(CContactDatabase* aContactsDb,TInt aCurrentItem,TBool ExternalizeEmpty)
-    {
-    CContactItem* ownCard;
-
-    if( aCurrentItem < 0 )
-        {
-        ownCard = CContactCard::NewLC();
-        }
-    else
-        {
-        ownCard = aContactsDb->ReadContactLC( aCurrentItem );   //Take a new contact item
-        }
-
-    CParserVCard* VCard=CParserVCard::NewL();   //Create new VCard
-    CleanupStack::PushL( VCard );
-
-    TInt nField = ownCard->CardFields().Find( KUidContactFieldGivenName );
-    TInt fField = ownCard->CardFields().Find( KUidContactFieldFamilyName );
-    TInt cField = ownCard->CardFields().Find( KUidContactFieldCompanyName );
-
-    //FOR NAMES
-    //N: -field always included even if it's empty
-    CDesC16Array* ValueArray=new (ELeave) CDesCArrayFlat(4);
-    CleanupStack::PushL( ValueArray );
-    CParserPropertyValueCDesCArray* NameValues=new (ELeave) CParserPropertyValueCDesCArray( ValueArray );
-    CleanupStack::PushL( NameValues );
-    CArrayPtr<CParserParam>* parameters=new (ELeave) CArrayPtrFlat<CParserParam>(1);
-    CleanupStack::PushL( parameters );
-
-    TPtrC fName;
-    TPtrC nName;
-    TPtrC cName;
-
-    if( fField != KErrNotFound )
-        {
-        fName.Set( ownCard->CardFields()[fField].TextStorage()->Text() );
-        }
-    if( nField != KErrNotFound )
-        {
-        nName.Set( ownCard->CardFields()[nField].TextStorage()->Text() );
-        }
-    if( cField != KErrNotFound )
-        {
-        cName.Set( ownCard->CardFields()[cField].TextStorage()->Text() );
-        }
-
-    if( fName.Length() == 0)
-        {
-        fField = KErrNotFound;  
-        }
-    if(nName.Length()==0)
-        {
-        nField = KErrNotFound;
-        if( fField==KErrNotFound )
-            {
-            ValueArray->AppendL( cName );   
-            }
-        else
-            {
-            ValueArray->AppendL( fName );   
-            }
-        }
-    else
-        {
-        ValueArray->AppendL( fName );
-        ValueArray->AppendL( nName );
-        }
-
-    VCard->AddPropertyL( CParserProperty::NewL((*NameValues),KNameProperty,parameters) );   //Add name property to VCard (VCard takes the ownership of the property)
-    CleanupStack::Pop(3); //parameters namevalues valuearray
-
-    TBool isNumber = EFalse;
-
-    TInt typeIndex = 0;
-    TInt index = -1;    //NOTE: +1 added before used first time
-
-    for(;;) //Go through all fields (Number of fields is unknown)
-        {
-        index = ownCard->CardFields().FindNext(typesToBeSearched[typeIndex],index+1);//Find next field (of current type)
-        if( index == KErrNotFound ) //No more phone numbers, move to the next group -> (See TypesToBeSearched)
-            {
-            typeIndex++;
-            if( typeIndex >= (signed) (sizeof(typesToBeSearched) / sizeof(TUid)) )
-                {
-                break;  //if no more types to search -> exit FOR-loop
-                }
-
-            index=ownCard->CardFields().FindNext(typesToBeSearched[typeIndex],0); //Find next field
-            if( index==KErrNotFound )
-                {
-                break;  //No fields -> exit
-                }
-            }
-
-        TPtrC number = ownCard->CardFields()[index].TextStorage()->Text();
-        if( number.Length() != 0)
-            {
-            CDesC16Array* ValueArray2=new (ELeave) CDesCArrayFlat(4);
-            CleanupStack::PushL( ValueArray2 );
-            CParserPropertyValueCDesCArray* NumberValues=new (ELeave) CParserPropertyValueCDesCArray(ValueArray2);
-            CleanupStack::PushL( NumberValues );
-            CArrayPtr<CParserParam>* parameters2=new (ELeave) CArrayPtrFlat<CParserParam>(1);
-            CleanupStack::PushL( parameters2 );
-
-            //Take label name to parameter
-
-            for( TInt i=0;i<ownCard->CardFields()[index].ContentType().FieldTypeCount();i++ )
-                {
-                TFieldType fieldType=ownCard->CardFields()[index].ContentType().FieldType(i);
-
-                if(fieldType==KUidContactFieldVCardMapWORK) parameters2->AppendL(CParserParam::NewL(KVersitParam8Work,KNullDesC8));
-                if(fieldType==KUidContactFieldVCardMapHOME) parameters2->AppendL(CParserParam::NewL(KVersitParam8Home,KNullDesC8));
-                if(fieldType==KUidContactFieldVCardMapMSG)  parameters2->AppendL(CParserParam::NewL(KVersitParam8Msg,KNullDesC8));
-                if(fieldType==KUidContactFieldVCardMapVOICE)parameters2->AppendL(CParserParam::NewL(KVersitParam8Voice,KNullDesC8));
-                if(fieldType==KUidContactFieldVCardMapFAX)  parameters2->AppendL(CParserParam::NewL(KVersitParam8Fax,KNullDesC8));
-                if(fieldType==KUidContactFieldVCardMapPREF) parameters2->AppendL(CParserParam::NewL(KVersitParam8Pref,KNullDesC8));
-                if(fieldType==KUidContactFieldVCardMapCELL) parameters2->AppendL(CParserParam::NewL(KVersitParam8Cell,KNullDesC8));
-                if(fieldType==KUidContactFieldVCardMapPAGER)parameters2->AppendL(CParserParam::NewL(KVersitParam8Pager,KNullDesC8));
-                if(fieldType==KUidContactFieldVCardMapBBS)  parameters2->AppendL(CParserParam::NewL(KVersitParam8Bbs,KNullDesC8));
-                if(fieldType==KUidContactFieldVCardMapMODEM)parameters2->AppendL(CParserParam::NewL(KVersitParam8Modem,KNullDesC8));
-                if(fieldType==KUidContactFieldVCardMapCAR)  parameters2->AppendL(CParserParam::NewL(KVersitParam8Car,KNullDesC8));
-                if(fieldType==KUidContactFieldVCardMapISDN) parameters2->AppendL(CParserParam::NewL(KVersitParam8Isdn,KNullDesC8));
-                if(fieldType==KUidContactFieldVCardMapVIDEO)parameters2->AppendL(CParserParam::NewL(KVersitParam8Video,KNullDesC8));
-                }
-
-            ValueArray2->AppendL( number );
-            VCard->AddPropertyL(CParserProperty::NewL((*NumberValues),KTelProperty,parameters2)); //VCard takes the ownership of the property
-            isNumber=ETrue;
-
-            CleanupStack::Pop(3); //parameters2 numbervalues valuearray2
-            }
-        }
-
-    if( (nField!=KErrNotFound) || (fField!=KErrNotFound) || (cField!=KErrNotFound) || isNumber || ExternalizeEmpty )
-        {
-        if( !isNumber )
-            {
-            //Create empty TEL field (required by the specs)
-
-            CDesC16Array* ValueArray3=new (ELeave) CDesCArrayFlat(4);
-            CleanupStack::PushL(ValueArray3);
-            CParserPropertyValueCDesCArray* NumberValues2=new (ELeave) CParserPropertyValueCDesCArray(ValueArray3);
-            CleanupStack::PushL(NumberValues2);
-            CArrayPtr<CParserParam>* parameters3=new (ELeave) CArrayPtrFlat<CParserParam>(1);
-            CleanupStack::PushL(parameters3);
-
-            VCard->AddPropertyL(CParserProperty::NewL((*NumberValues2),KTelProperty,parameters3)); //VCard takes the ownership of the property
-
-            CleanupStack::Pop(3); //parameters3 numbervalues valuearray3
-            }
-
-        TRAPD( err, VCard->ExternalizeL( iWriter );) //If there are no name or numbers, then no externalizing..
-        //if error then only current contact card is discarded, but others will be still collected..
-        if( err == KErrNone )
-            {
-            iContactsSaved++;
-            }
-        else
-            {
-            LOGGER_WRITE( "CntParserCollector: RunL: Error,VCARD _NOT_ saved" );
-            }
-        }
-
-    aContactsDb->CloseContactL( aCurrentItem ); //Close current contact item
-
-    CleanupStack::PopAndDestroy( VCard ); // VCard and all arrays (parameters2, numvervalues, valuearray2) related to this VCard are deleted through the ownership relations
-    CleanupStack::PopAndDestroy( ownCard );
-    }
-//------------------------------------------------------------
-// CCntParserCollector::DoCancel()
-//------------------------------------------------------------
-void CCntParserCollector::DoCancel()
-    {
-    LOGGER_WRITE( "CntParserCollector: DoCancel" );
-    CloseResources();
-    }
-//------------------------------------------------------------
-// CCntParserCollector::RunError(TInt aError)
-//------------------------------------------------------------
-TInt CCntParserCollector::RunError( TInt aError )
-    {
-    LOGGER_WRITE( "CntParserCollector: RunError!" );
-    CloseResources(); //JIC
-
-    iServer->CompletePhoneBookRequests( aError );   //complete all requests with an error
-    return KErrNone;
-    }
-//------------------------------------------------------------
-// CCntParserCollector::CurrentItem()
-//------------------------------------------------------------
-TInt CCntParserCollector::CurrentItem()
-    {
-    return iCurrentItem;
-    }
-//------------------------------------------------------------
-// CCntParserCollector::Count()
-//------------------------------------------------------------
-TInt CCntParserCollector::Count()
-    {
-    return iCount;
-    }
-//------------------------------------------------------------
-// CCntParserCollector::ContactsSaved()
-//------------------------------------------------------------
-TInt CCntParserCollector::ContactsSaved()
-    {
-    return iContactsSaved;
-    }
-//------------------------------------------------------------
-// CCntParserCollector::SaveTotalCountL() const
-//------------------------------------------------------------
-void CCntParserCollector::SaveTotalCountL()
-    {
-    LOGGER_WRITE( "CntParserCollector: SaveTotalCount begin" );
-        
-    if( iContactsDb )
-        {
-        iTotalCount = iContactsDb->CountL();
-        LOGGER_WRITE_1( "CntParserCollector: SaveTotalCount iTotalCount %d", iTotalCount );
-        }
-        
-    RFs Fs;
-    RFile writer;
-    User::LeaveIfError(Fs.Connect());   //Connect to the file server
-    CleanupClosePushL(Fs);
-    
-    User::LeaveIfError(Fs.CreatePrivatePath( EDriveC ));
-    User::LeaveIfError(Fs.SetSessionToPrivate( EDriveC ));
-    
-    User::LeaveIfError(writer.Replace(Fs,KTotalCountFilePath,EFileWrite)); //Open file
-    CleanupClosePushL(writer);
-    LOGGER_WRITE( "CntParserCollector: SaveTotalCount file replaced" );
-    
-    // Prepare externalized representation of iTotalCount
-    TBuf8< 256 > countData;
-    RDesWriteStream writeStream( countData );
-    CleanupClosePushL( writeStream );
-    writeStream.WriteInt32L( iTotalCount );
-    writeStream.CommitL();
-    CleanupStack::PopAndDestroy( &writeStream );
-    
-    // Then write them to the file itself
-    User::LeaveIfError(writer.Write( countData ));
-
-    CleanupStack::PopAndDestroy();  //writer
-    CleanupStack::PopAndDestroy();  //Fs
-    
-    LOGGER_WRITE( "CntParserCollector: SaveTotalCount end" );
-    }
-//------------------------------------------------------------
-// CCntParserCollector::ReadTotalCountL() const
-//------------------------------------------------------------
-TInt CCntParserCollector::ReadTotalCountL() const
-    {
-    LOGGER_WRITE( "CntParserCollector: ReadTotalCount begin" );
-    TInt total;
-    RFs Fs;
-    RFile reader;
-    User::LeaveIfError(Fs.Connect());   //Connect to the file server
-    CleanupClosePushL(Fs);
-    
-    User::LeaveIfError(Fs.CreatePrivatePath( EDriveC ));
-    User::LeaveIfError(Fs.SetSessionToPrivate( EDriveC ));
-        
-    User::LeaveIfError(reader.Open(Fs,KTotalCountFilePath,EFileRead)); //Open file
-    CleanupClosePushL(reader);
-    LOGGER_WRITE( "CntParserCollector: ReadTotalCount file opened" );
-        
-    RFileReadStream readStream(reader);
-    readStream.PushL();
-
-    total = readStream.ReadInt32L();
-    
-    LOGGER_WRITE_1( "CntParserCollector: ReadTotalCount total %d", total );
-    
-    CleanupStack::PopAndDestroy();  //readStream
-    CleanupStack::PopAndDestroy();  //writer
-    CleanupStack::PopAndDestroy();  //Fs
-    LOGGER_WRITE( "CntParserCollector: ReadTotalCount end" );
-    return total;
-    }
-//------------------------------------------------------------
-// CCntParserCollector::ContactCountChanged() const
-//------------------------------------------------------------
-TBool CCntParserCollector::ContactCountChanged()
-    {
-    LOGGER_WRITE( "CntParserCollector: ContactCountChanged begin" );
-    TInt oldCount = 0;
-    TInt err( KErrNone );
-    
-    if( iContactsDb )
-        {
-        TRAP( err, iTotalCount = iContactsDb->CountL() );
-        if ( err != KErrNone )
-            {
-            LOGGER_WRITE_1( "iContactsDb->CountL leaved: %d", err );
-            LOGGER_WRITE( "CntParserCollector: ContactCountChanged ETrue" );
-            return ETrue;
-            }
-        LOGGER_WRITE_1( "CntParserCollector: ContactCountChanged iTotalCount %d", iTotalCount );
-        }
-    
-    TRAP( err, oldCount = ReadTotalCountL() );
-
-    LOGGER_WRITE_1( "CntParserCollector: ContactCountChanged err %d", err );
-    LOGGER_WRITE_1( "CntParserCollector: ContactCountChanged oldCount %d", oldCount );
-    LOGGER_WRITE_1( "CntParserCollector: ContactCountChanged iTotalCount %d", iTotalCount );
-    
-    if( err == KErrNone )
-        {
-        if( iTotalCount != oldCount )
-            {
-            LOGGER_WRITE( "CntParserCollector: ContactCountChanged ETrue" );
-            return ETrue;
-            }
-        else
-            {
-            LOGGER_WRITE( "CntParserCollector: ContactCountChanged EFalse" );
-            return EFalse;
-            }
-        }
-    else
-        {
-        LOGGER_WRITE( "CntParserCollector: ContactCountChanged ETrue" );
-        return ETrue;               
-        }
-    }
-    
-// end of file
--- a/connectivitymodules/SeCon/cntparser/src/cntparserinfolog.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,119 +0,0 @@
-/*
-* Copyright (c) 2002-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:  CCntParserInfoLog implementation.
-*
-*/
-
-
-#include <s32strm.h>
-#include <f32file.h>
-#include <s32file.h>
-
-#include "cntparserinfolog.h"
-
-_LIT8(KNewLine,"\r\n");
-
-_LIT8(KMaxRecords,"Maximum-Records:");
-_LIT8(KTotalRecords,"Total-Records:");
-
-//------------------------------------------------------------
-// CCntParserInfoLog::CCntParserInfoLog()
-//------------------------------------------------------------
-CCntParserInfoLog::CCntParserInfoLog()
-    {
-    }
-
-//------------------------------------------------------------
-// CCntParserInfoLog::~CCntParserInfoLog()
-//------------------------------------------------------------
-CCntParserInfoLog::~CCntParserInfoLog()
-    {
-    }
-
-//------------------------------------------------------------
-// CCntParserInfoLog::CCntParserInfoLog::NewL()
-//------------------------------------------------------------
-EXPORT_C CCntParserInfoLog* CCntParserInfoLog::NewL()
-    {
-    CCntParserInfoLog* self=new (ELeave) CCntParserInfoLog();
-    return self;
-    }
-
-//------------------------------------------------------------
-// CCntParserInfoLog::SaveToFileL(const TDesC& aFileName) const
-//------------------------------------------------------------
-EXPORT_C void CCntParserInfoLog::SaveToFileL( const TDesC& aFileName ) const
-    {
-    TInt err = KErrNone;
-    RFs Fs;
-    RFile writer;
-    User::LeaveIfError( Fs.Connect() ); //Connect to the file server
-    CleanupClosePushL( Fs );
-    err = writer.Replace( Fs, aFileName, EFileWrite ); //Open file
-    CleanupClosePushL( writer );
-    
-    if( err == KErrNone )
-        {
-        writer.Write( KMaxRecords );
-        
-        TBuf8<16> numVal;
-        numVal.Num( iMaximumRecords );
-        writer.Write( numVal );
-        
-        writer.Write( KNewLine );
-        
-        writer.Write( KTotalRecords );
-        
-        TBuf8<16> numVal2;
-        numVal2.Num( iTotalRecords );
-        writer.Write( numVal2 );
-        }
-    
-    CleanupStack::PopAndDestroy();  //writer
-    CleanupStack::PopAndDestroy();  //Fs
-    }
-
-//------------------------------------------------------------
-// CCntParserInfoLog::SetTotalRecords(TInt aTotalRecords)
-//------------------------------------------------------------
-EXPORT_C void CCntParserInfoLog::SetTotalRecords(TInt aTotalRecords)
-    {
-    iTotalRecords = aTotalRecords;
-    }
-
-//------------------------------------------------------------
-// CCntParserInfoLog::SetMaximumRecords(TInt aMaximumRecords)
-//------------------------------------------------------------
-EXPORT_C void CCntParserInfoLog::SetMaximumRecords(TInt aMaximumRecords)
-    {
-    iMaximumRecords = aMaximumRecords;
-    }
-
-//------------------------------------------------------------
-// CCntParserInfoLog::TotalRecords() const
-//------------------------------------------------------------
-EXPORT_C TInt CCntParserInfoLog::TotalRecords() const
-    {
-    return iTotalRecords;
-    }
-
-//------------------------------------------------------------
-// CCntParserInfoLog::MaximumRecords() const
-//------------------------------------------------------------
-EXPORT_C TInt CCntParserInfoLog::MaximumRecords() const
-    {
-    return iMaximumRecords;
-    }
-    
-// end of file
--- a/connectivitymodules/SeCon/cntparser/src/cntparserserverexe.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,322 +0,0 @@
-/*
-* Copyright (c) 2002-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:  CCntParserServer implementation.
-*
-*/
-
-
-#include "clientserver.h"
-#include "cntparserserver.h"
-#include "cntparserserversession.h"
-#include "irmcconsts.h"
-
-#include "debug.h"
-
-#include <cntdb.h>
-
-//------------------------------------------------------------
-// RunServer
-//------------------------------------------------------------
-TInt CCntParserServer::RunServer()
-	{
-	LOGGER_ENTERFN( "CCntParserServer::RunServer" );
-	
-	CTrapCleanup* cleanup = CTrapCleanup::New();
-	TInt ret( KErrNoMemory );
-	if( cleanup )
-		{
-		TRAP( ret, CCntParserServer::RunServerL() );
-		delete cleanup;
-		}
-	if( ret != KErrNone )
-		{
-		// Signal the client that server creation failed
-		RProcess::Rendezvous( ret );
-		}
-	LOGGER_LEAVEFN( "CCntParserServer::RunServer" );
-	return ret;
-	}
-//------------------------------------------------------------
-// RunServerL
-//------------------------------------------------------------
-void CCntParserServer::RunServerL()
-	{
-	// Create and install the active scheduler we need
-	LOGGER_ENTERFN( "CCntParserServer::RunServerL" );
-	CActiveScheduler *as=new (ELeave)CActiveScheduler;
-	CleanupStack::PushL( as );
-	CActiveScheduler::Install( as );
-
-	// Create server
-	CCntParserServer::NewL();
-
-	// Initialisation complete, now signal the client
-	User::LeaveIfError( RThread().RenameMe( KTxtServer ) );
-	RProcess::Rendezvous( KErrNone );
-
-	// Ready to run
-	CActiveScheduler::Start();
-
-	// Cleanup the scheduler
-	CleanupStack::PopAndDestroy( as );
-	LOGGER_LEAVEFN( "CCntParserServer::RunServerL" );
-	}
-//------------------------------------------------------------
-// E32Main()
-//------------------------------------------------------------
-TInt E32Main()
-	{
-	return CCntParserServer::RunServer();
-	}
-//------------------------------------------------------------
-// PanicServer(TCntParserServerPanic aPanic)
-//------------------------------------------------------------
-GLDEF_C void PanicServer(TCntParserServerPanic aPanic)
-	{
-	LOGGER_WRITE( "PANIC SERVER!" );
-	_LIT(KTxtServerPanic,"Parser server panic");
-	User::Panic( KTxtServerPanic, aPanic );
-	}
-
-
-//**********************************
-//CCntParserServer
-//**********************************
-
-//------------------------------------------------------------
-// CCntParserServer::CCntParserServer()
-//------------------------------------------------------------
-CCntParserServer::CCntParserServer() : CServer2( EPriorityStandard )
-	{
-	}
-//------------------------------------------------------------
-// CCntParserServer::~CCntParserServer()
-//------------------------------------------------------------
-EXPORT_C CCntParserServer::~CCntParserServer()
-	{
-	if( iCollector )
-	    {
-	    iCollector->Cancel();
-	    }
-	delete iCollector;
-	delete iCurrentDatabase;
-	LOGGER_WRITE( "CntParserServer: DELETED!" );
-	}
-//------------------------------------------------------------
-// CCntParserServer* CCntParserServer::NewL()
-//------------------------------------------------------------
-EXPORT_C CCntParserServer* CCntParserServer::NewL()
-	{
-	LOGGER_WRITE( "CntParserServer: NEW" );
-	CCntParserServer* pS=new (ELeave) CCntParserServer();
-	CleanupStack::PushL(pS);
-	pS->StartL( KCntParserName );
-	CleanupStack::Pop( pS );
-	LOGGER_WRITE( "CntParserServer: Created" );
-	return pS;
-	}
-//------------------------------------------------------------
-// CCntParserServer::NewSessionL(const TVersion &aVersion, const RMessage2& /*aMsg*/) const
-//------------------------------------------------------------
-CSession2* CCntParserServer::NewSessionL(const TVersion &aVersion, const RMessage2& /*aMsg*/) const
-	{
-	LOGGER_WRITE( "CntParserServer: NEW SessionL" );
-	// check we're the right version
-	TVersion v( KCntParserMajorVersionNumber,KCntParserMinorVersionNumber,KCntParserBuildVersionNumber );
-	if ( !User::QueryVersionSupported( v,aVersion ) )
-		User::Leave( KErrNotSupported );
-	CCntParserServerSession* self=CCntParserServerSession::NewL( (CCntParserServer*)this );
-	return self;
-	}
-//------------------------------------------------------------
-// CCntParserServer::IncreaseSessionCountL()
-//------------------------------------------------------------
-void CCntParserServer::IncreaseSessionCountL()
-	{
-	LOGGER_WRITE( "CntParserServer: Increase Session Count" );
-	iSessionCount++;
-	if( iSessionCount == 1 )	//If first session, prepare collector
-		{
-		PrepareCollectorL();
-		}
-	}
-//------------------------------------------------------------
-// CCntParserServer::DecreaseSessionCount()
-//------------------------------------------------------------
-void CCntParserServer::DecreaseSessionCount()
-	{
-	LOGGER_WRITE( "CntParserServer: Decrease Session Count" );
-	iSessionCount--;
-	if( iSessionCount==0 )	//if last session is disconnected, delete server
-		{
-		Stop();
-		}
-	}
-//------------------------------------------------------------
-// CCntParserServer::ContactsParsed()
-//------------------------------------------------------------
-TInt CCntParserServer::ContactsParsed()
-	{
-	return iCollector->CurrentItem();
-	}
-//------------------------------------------------------------
-// CCntParserServer::TotalNumOfContacts()
-//------------------------------------------------------------
-TInt CCntParserServer::TotalNumOfContacts()	
-	{
-	//After the PrepareCollector is called, the number of contacts can be returned
-	return iCollector->Count();
-	}
-//------------------------------------------------------------
-// CCntParserServer::ContactsSaved()
-//------------------------------------------------------------
-TInt CCntParserServer::ContactsSaved()
-	{
-	return iCollector->ContactsSaved();
-	}
-//------------------------------------------------------------
-// CCntParserServer::PrepareCollectorL()
-//------------------------------------------------------------
-void CCntParserServer::PrepareCollectorL()
-	{
-	LOGGER_WRITE( "CntParserServer: Prepare collectorL: Open Contact Database" );
-
-	TFileName dbFile;
-	TFileName defaultDb;
-  
-	CContactDatabase::GetDefaultNameL( defaultDb );
-	
-	LOGGER_WRITE( "CntParserServer: Prepare collectorL: GetDefault" );
-
-	iCurrentDatabase=CContactDatabase::OpenL();
-	
-	LOGGER_WRITE( "CntParserServer: Prepare collectorL: OpenDefault" );
-
-	iCurrentDatabase->GetCurrentDatabase( dbFile );	//Get selected database
-
-	LOGGER_WRITE( "CntParserServer: Prepare collectorL: CompareDefault" );
-
-	if( dbFile.CompareF(defaultDb)!=0 && dbFile!=KNullDesC16 /*&& dbFile.CompareF(KSimDummyDatabase)!=0*/)	//If the selected database is not the default and something is selected
-		{
-		LOGGER_WRITE( "CntParserServer: Prepare collectorL: Close Default" );
-		delete iCurrentDatabase;
-		iCurrentDatabase = NULL;
-
-		LOGGER_WRITE( "CntParserServer: Prepare collectorL: OpenSelected" );
-		iCurrentDatabase=CContactDatabase::OpenL( dbFile );	//open the selected one
-		}
-
-	LOGGER_WRITE( "CntParserServer: Prepare collectorL: Is everything ok?" );
-	if( !iCurrentDatabase )
-		{
-		User::Leave( KErrNotFound );	
-		}
-
-	LOGGER_WRITE( "CntParserServer: Prepare collectorL: Create Collector" );
-	iCollector = CCntParserCollector::NewL( this,iCurrentDatabase );
-
-	iRequests = 0;
-	}
-//------------------------------------------------------------
-// CCntParserServer::CreateIrMCL2PhoneBookL()
-//------------------------------------------------------------
-TInt CCntParserServer::CreateIrMCL2PhoneBookL(const TDesC& path, TInt aMaxNumberOfContacts,TBool aForced)
-	{
-	LOGGER_WRITE( "CntParserServer: CreateIrMCL2PhoneBookL" );
-
-	TInt err( KErrNone );
-
-	iRequests++;
-	if( iRequests == 1 )
-		{
-		LOGGER_WRITE( "CntParserServer: CreateIrMCL2PhoneBookL: Ready to call collector" );
-
-		err = iCollector->CreateIrMCL2FileL( path,aMaxNumberOfContacts,aForced );
-		if( err==KPBNotUpdated ) 
-			{
-			iRequests = 0;	//If the file exists (no parsing), then more requests can be made	
-			}
-		}
-	else
-		{
-		return KErrNotReady;	
-		}
-	return err;
-	}
-//------------------------------------------------------------
-// CCntParserServer::CompletePhoneBookRequests()
-//------------------------------------------------------------
-void CCntParserServer::CompletePhoneBookRequests(TInt aErr)	//Goes through all the sessions and completes the request
-	{
-	LOGGER_WRITE( "CntParserServer: Complete phonebook request" );
-	iSessionIter.SetToFirst();
-	while( iSessionIter!=NULL )	//Go through all sessions
-		{
-		( (CCntParserServerSession*) (iSessionIter++) )->CompletePhoneBookRequest( aErr );
-		}
-	iRequests = 0;	//Collector is ready to start again..
-	}
-//------------------------------------------------------------
-// CCntParserServer::CancelPhoneBookRequest()
-//------------------------------------------------------------
-void CCntParserServer::CancelPhoneBookRequest()
-	{
-	if( iRequests == 1 )
-		{
-		iCollector->Cancel();
-		}
-	iRequests--;
-	}
-//------------------------------------------------------------
-// CCntParserServer::CancelAllPhoneBookRequests()
-//------------------------------------------------------------
-void CCntParserServer::CancelAllPhoneBookRequests()
-	{
-	iCollector->Cancel();
-	iRequests = 0;
-	}
-//------------------------------------------------------------
-// CCntParserServer::Disconnect()
-//------------------------------------------------------------
-void CCntParserServer::Disconnect()
-	{
-	LOGGER_WRITE( "CntParserServer: Disconnect" );
-	}
-//------------------------------------------------------------
-// CCntParserServer::Stop()
-//------------------------------------------------------------
-void CCntParserServer::Stop()
-	{
-	LOGGER_ENTERFN( "CntParserServer::Stop()" );
-	if( iCollector )
-	    {
-	    iCollector->Cancel();
-	    }
-	delete iCollector;
-	iCollector = NULL;
-	delete iCurrentDatabase;
-	iCurrentDatabase = NULL;
-	CActiveScheduler::Stop();
-	LOGGER_LEAVEFN( "CntParserServer::Stop()" );
-	}
-//------------------------------------------------------------
-// CCntParserServer::SetRequests()
-//------------------------------------------------------------
-void CCntParserServer::SetRequests(TInt aRequests)
-	{
-	iRequests=aRequests;
-	}
-
-
-
--- a/connectivitymodules/SeCon/cntparser/src/cntparserserversession.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,219 +0,0 @@
-/*
-* Copyright (c) 2002-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:  CCntParserServerSession implementation.
-*
-*/
-
-
-#include "cntparserserversession.h"
-#include <cntdb.h>
-#include "cntparsercollector.h"
-#include "cntparserinfolog.h"
-#include "irmcconsts.h"
-
-#include "debug.h"
-
-//------------------------------------------------------------
-// CCntParserServerSession::CCntParserServerSession()
-//------------------------------------------------------------
-CCntParserServerSession::CCntParserServerSession()
-    {
-    }
-//------------------------------------------------------------
-// CCntParserServerSession::NewL(CCntParserServer* aServer)
-//------------------------------------------------------------
-CCntParserServerSession* CCntParserServerSession::NewL( CCntParserServer* aServer )
-    {
-    LOGGER_ENTERFN( "CntParserServerSession::NewL()" );
-
-    CCntParserServerSession* self = new( ELeave ) CCntParserServerSession();
-    CleanupStack::PushL( self );
-    self->ConstructL( aServer );
-    CleanupStack::Pop( self );
-    LOGGER_LEAVEFN( "CntParserServerSession::NewL()" );
-    return self;
-    }
-//------------------------------------------------------------
-// CCntParserServerSession::ConstructL( CCntParserServer* aServer )
-//------------------------------------------------------------
-void CCntParserServerSession::ConstructL( CCntParserServer* aServer )
-    {
-    iContactsParserSrv = aServer;
-    iContactsParserSrv->IncreaseSessionCountL();
-    }
-//------------------------------------------------------------
-// CCntParserServerSession::~CCntParserServerSession()
-//------------------------------------------------------------
-CCntParserServerSession::~CCntParserServerSession()
-    {
-    LOGGER_ENTERFN( "CntParserServerSession::~CCntParserServerSession()" );
-    if ( iContactsParserSrv )
-        {
-        iContactsParserSrv->DecreaseSessionCount();
-        }
-    LOGGER_LEAVEFN( "CntParserServerSession::~CCntParserServerSession()" );
-    }
-//------------------------------------------------------------
-// CCntParserServerSession::ServiceL( const RMessage2& aMessage )
-//------------------------------------------------------------
-void CCntParserServerSession::ServiceL( const RMessage2& aMessage )
-    {
-    LOGGER_WRITE( "CntParserServerSession: ServiceL" );
-
-    TInt err( KErrNone );
-    TInt ret( KErrNone );
-
-    TRAP( err, ret = DispatchMessageL( aMessage ) );
-
-    if ( err != KErrNone )
-        {
-        LOGGER_WRITE_1( "CntParserServerSession: ServiceL: Error trapped, complete with ERR code %d", err );
-
-        iPhoneBookRequest = EFalse; //If requested, then clear request flag
-        iContactsParserSrv->SetRequests( 0 );   //Reset requests count in server to allow new requests to start..
-        aMessage.Complete( err ); //If trap error, complete with it
-        return;
-        }   
-
-    if ( ret == KErrNone )
-        {
-        LOGGER_WRITE( "CntParserServerSession: ServiceL: No complete" );
-        return;
-        }
-
-    if ( ret == KPerformComplete )
-        {
-        LOGGER_WRITE( "CntParserServerSession: ServiceL: Normal complete" );
-
-        aMessage.Complete( KErrNone );
-        return;
-        }
-
-    if ( ret == KPBNotUpdated )
-        {
-        LOGGER_WRITE( "CntParserServerSession: ServiceL: Complete (PB not updated)" );
-
-        iPhoneBookRequest = EFalse;
-        aMessage.Complete( KPBNotUpdated );
-        return;
-        }
-    LOGGER_WRITE( "CntParserServerSession: ServiceL: Error, should never come here" );
-    aMessage.Complete( KErrGeneral );
-    }
-//------------------------------------------------------------
-// CCntParserServerSession::CompletePhoneBookRequest( TInt aErr )
-//------------------------------------------------------------
-void CCntParserServerSession::CompletePhoneBookRequest( TInt aErr )
-    {
-    LOGGER_WRITE( "CntParserServerSession: CompletePhoneBookRequest" );
-
-    if ( iPhoneBookRequest ) //If this session has requested phonebook, then the completion should be done here, as it was not done in ServiceL
-        {
-        LOGGER_WRITE( "CntParserServerSession: CompletePhoneBookRequest: collector or cancel" );
-        iPhoneBookRequest = EFalse;
-        iPhoneBookRequestMessage.Complete( aErr );
-        }
-    else
-        {
-        LOGGER_WRITE( "CntParserServerSession: CompletePhoneBookRequest: No complete for this session" );
-        }
-    }
-//------------------------------------------------------------
-// CCntParserServerSession::DispatchMessageL( const RMessage2 &aMessage )
-//------------------------------------------------------------
-TInt CCntParserServerSession::DispatchMessageL( const RMessage2 &aMessage )
-    {
-    LOGGER_WRITE( "CntParserServerSession: DispatchMessageL" );
-
-    TInt res( KPerformComplete );
-
-    switch( aMessage.Function() )
-        {
-        case ECntParserServerCreateIrMCL2:  //Create pb.vcf file
-            {
-            res = ETrue;
-
-            if ( iPhoneBookRequest == EFalse )
-                {
-                iPhoneBookRequestMessage = aMessage;
-                iPhoneBookRequest = ETrue;
-
-                TInt sid=aMessage.SecureId();
-                TInt MaxNumOfContacts = aMessage.Int0();
-                TBool Forced = aMessage.Int1();
-                TBuf<8> sidLit;
-                sidLit.AppendNumFixedWidth( sid, EHex, 8);
-                TBuf<255> path;
-                path.Insert( 0, KPhoneBookFilename );
-
-                res = iContactsParserSrv->CreateIrMCL2PhoneBookL( path, (TInt) MaxNumOfContacts, Forced );
-                }
-            break;
-            }
-        case ECntParserServerCntParsed: //How many contacts already parsed
-            {
-            TPckgBuf<TInt> p((TInt) iContactsParserSrv->ContactsParsed());
-            aMessage.WriteL( 0, p, 0 );
-            break;
-            }
-        case ECntParserServerTotalNumOfContacts: //How many contacts total?
-            {
-            TPckgBuf<TInt> p((TInt) iContactsParserSrv->TotalNumOfContacts());
-            aMessage.WriteL( 0, p, 0 );
-            break;
-            }
-        case ECntParserServerDisconnect:    //Disconnect session from server
-            {
-            iContactsParserSrv->Disconnect();
-            break;
-            }
-        case ECntParserServerCancel:    //Cancel phone book request
-            {
-            if (iPhoneBookRequest)
-                {
-                iContactsParserSrv->CancelPhoneBookRequest();
-                CompletePhoneBookRequest( KErrCancel );
-                }
-            break;
-            }
-        case ECntParserServerCntSaved: //How many contacts total?
-            {
-            TPckgBuf<TInt> p((TInt) iContactsParserSrv->ContactsSaved());
-            aMessage.WriteL( 0, p, 0 );
-            break;
-            }
-        case ECntParserServerCancelAll: //Cancel all requests, not just current?
-            {
-            iContactsParserSrv->CancelAllPhoneBookRequests();
-            break;
-            }
-        // requests we don't understand
-        // so panic the client here, this function also completes the message
-        default:
-            {
-            PanicClient( EBadRequest );
-            break;
-            }
-        }
-    return res;
-    }
-//------------------------------------------------------------
-// CCntParserServerSession::PanicClient(TInt aPanic) const
-//------------------------------------------------------------
-void CCntParserServerSession::PanicClient(TInt aPanic) const
-    {
-    User::Panic( KTxtServer,aPanic );
-    }
-    
-// end of file
--- a/connectivitymodules/SeCon/common/conmltask/inc/sconconmltask.h	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,597 +0,0 @@
-/*
-* Copyright (c) 2005-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:  Header file for ConML tasks
-*
-*/
-
-
-#ifndef _SCONCONMLTASK_H_
-#define _SCONCONMLTASK_H_
-
-#include <e32base.h>
-#include <f32file.h>
-
-const TInt KSConTaskPartiallyCompleted( 206 );
-const TInt KMaxPackageNameLength = 128;
-
-enum TSConMethodName
-    {
-    ECancel = 0,
-    EGetDataOwnerStatus,
-    EGetDataSize,
-    EGetStatus,
-    EInstall,
-    EListDataOwners,
-    EListInstalledApps,
-    EListPublicFiles,
-    ERequestData,
-    ESetBURMode,
-    ESetInstParams,
-    ESupplyData,
-    EUninstall,
-    EUpdateDeviceInfo,
-    EReboot,
-    EGetMetadata
-    };
-
-enum TSConInstallMode
-    {
-    ESilentInstall = 0,
-    EUnsilentInstall,
-    EUnknown
-    };
-    
-enum TSConUserPerm
-    {
-    EPermReadOnly = 0,
-    EPermNormal
-    };
-    
-enum TSConDOType
-    {
-    EActiveDataOwner = 1,
-    EPassiveDataOwner,
-    EHybridDataOwner
-    };
-    
-enum TSConHasFiles
-    {
-    ENoFiles = 0,
-    EPublicFiles,
-    ESystemFiles,
-    EPublicSystemFiles
-    };
-    
-enum TSConAppType
-    {
-    ESisApplication = 0,
-    ESisAugmentation,
-    EJavaApplication,
-    EWidgetApplication
-    };
-
-enum TSConBurMode
-    {
-    ESConBurNormal = 1,     // 1 BUR mode - normal
-    ESConBurBackupFull,     // 2 BUR mode – backup full
-    ESConBurBackupPartial,  // 3 BUR mode – backup partial
-    ESConBurRestoreFull,    // 4 BUR mode – restore full
-    ESConBurRestorePartial  // 5 BUR mode – restore partial
-    };
-
-enum TSConIncType
-    {
-    ESConNoBackup = 0,          // 0   No backup
-    ESConBackupBase = 100,      // 100 Backup – base
-    ESConBackupIncrement = 200  // 200 Backup - increment
-    };
-
-enum TSConTransferDataType
-    {
-    ESConRegistrationData = 1,  // 1 RegistrationData
-    ESConPassiveSnapshotData,   // 2 Passive snapshot data
-    ESConPassiveBaseData,       // 3 Passive base data
-    ESConPassiveIncrementalData,// 4 Passive incremental data 
-    ESConActiveSnapshotData,    // 5 Active snapshot data
-    ESConActiveBaseData,        // 6 Active base data
-    ESConActiveIncrementalData, // 7 Active incremental data
-    ESConSystemData,            // 8 System data
-    ESConSystemSnapshotData     // 9 System snapshot data
-    };
-
-enum TSConDataOwnerStatus
-    {
-    ESConUnset = 0,         // 0 Unset
-    ESConNotFound,          // 1 Not found
-    ESConReady,             // 2 Ready
-    ESConNotReady,          // 3 Not ready
-    ESConFailed,            // 4 Failed
-    ESConNotConnected,      // 5 Not connected
-    ESConNotImplemented     // 6 Not implemented
-    };
-
-
-
-
-//============================================================
-// class CSConReboot declaration
-//============================================================  
-NONSHARABLE_CLASS( CSConReboot ) : public CBase
-    {
-    public:
-        CSConReboot();      
-        ~CSConReboot();
-        CSConReboot* CopyL();
-                    
-        //used only with reply
-        TBool               iComplete;      //task complete
-        TInt                iProgress;      //task progress     
-    };
-
-//============================================================
-// class CSConDataOwner declaration
-//============================================================  
-NONSHARABLE_CLASS( CSConDataOwner ) : public CBase
-    {
-    public:
-        CSConDataOwner();
-        ~CSConDataOwner();
-        CSConDataOwner* CopyL();
-    
-    public:
-        //dataowner type
-        TSConDOType                     iType;
-        //unique identifier
-        TUid                            iUid;
-        //drive list
-        TDriveList                      iDriveList;
-        //package name
-        TBuf<KMaxPackageNameLength>     iPackageName;
-        //requires reboot
-        TBool                           iReqReboot;
-        //has files 
-        TSConHasFiles                   iHasFiles;
-        //supports incremental backup
-        TBool                           iSupportsInc;
-        //supports selective backup
-        TBool                           iSupportsSel;
-        //delay to prepare data
-        TBool                           iDelayToPrep;
-        //size
-        TUint                           iSize;
-        //data owner status
-        TSConDataOwnerStatus            iDataOwnStatus;
-        //transfer data type
-        TSConTransferDataType           iTransDataType;
-        //Java hash
-        HBufC*                          iJavaHash;
-    };
-        
-//============================================================
-// class CSConUpdateDeviceInfo declaration
-//============================================================      
-NONSHARABLE_CLASS( CSConUpdateDeviceInfo ) : public CBase
-    {
-    public:
-        CSConUpdateDeviceInfo();
-        ~CSConUpdateDeviceInfo();
-        CSConUpdateDeviceInfo* CopyL();
-
-        TBuf8<3>            iVersion;       //version number
-        TBool               iInstallSupp;
-        TBool               iUninstallSupp;
-        TBool               iInstParamsSupp;
-        TBool               iInstAppsSupp;
-        TBool               iDataOwnersSupp;
-        TBool               iSetBURModeSupp;
-        TBool               iGetSizeSupp;
-        TBool               iReqDataSupp;
-        TBool               iSupplyDataSupp;
-        TBool               iRebootSupp;
-        TInt                iMaxObjectSize; //kBytes
-        
-        //used only with reply
-        TBool               iComplete;      //task complete
-        TInt                iProgress;      //task progress     
-    };
-//============================================================
-// class CSConInstApp declaration
-//============================================================      
-NONSHARABLE_CLASS( CSConInstApp ) : public CBase 
-    {
-    public:
-        CSConInstApp() {};
-        ~CSConInstApp() {};
-        CSConInstApp* CopyL();
-        
-        TFileName       iName;
-        TFileName       iParentName;
-        TFileName       iVendor;
-        TFileName       iVersion;
-        TInt64          iSize;
-        TSConAppType    iType;
-        TUid            iUid;
-    };
-    
-//============================================================
-// class CSConListInstApps declaration
-//============================================================      
-NONSHARABLE_CLASS( CSConListInstApps ) : public CBase
-    {
-    public:
-        CSConListInstApps();
-        ~CSConListInstApps();
-        CSConListInstApps* CopyL();
-            
-        TBool                   iAllApps;       //list all apps
-        TDriveList              iDriveList;     //drive list
-
-        //used only with reply
-        TBool               iComplete;      //task complete
-        TInt                iProgress;      //task progress 
-                
-        RPointerArray<CSConInstApp>     iApps; //installed apps
-    };
-    
-//============================================================
-// class CSConGetStatus declaration
-//============================================================      
-NONSHARABLE_CLASS( CSConGetStatus ) : public CBase
-    {
-    public:
-        TBool               iAll;           //list all statuses
-        TInt                iTaskId;        //task id
-    };  
-    
-//============================================================
-// class CSConFile declaration
-//============================================================      
-NONSHARABLE_CLASS( CSConFile ) : public CBase
-    {
-    public:
-        CSConFile();
-        ~CSConFile();
-        CSConFile* CopyL();     
-            
-        TFileName                   iPath;      //file path + name
-        TBuf<KMaxTimeFormatSpec>    iModified;  //modified date
-        TUint                       iSize;      //file size
-        TSConUserPerm               iUserPerm;  //user permission
-    };  
-    
-//============================================================
-// class CSConInstall declaration
-//============================================================      
-NONSHARABLE_CLASS( CSConInstall ) : public CBase
-    {
-    public:
-        CSConInstall();
-        ~CSConInstall();
-            
-        CSConInstall* CopyL();
-            
-        TFileName           iPath;          //path to file
-        TSConInstallMode    iMode;          //install mode
-        
-        //used only with reply
-        TBool               iComplete;      //task complete
-        TInt                iProgress;      //task progress 
-    };  
-    
-//============================================================
-// class CSConUninstall declaration
-//============================================================      
-NONSHARABLE_CLASS( CSConUninstall ) : public CBase
-    {
-    public:
-        CSConUninstall();
-        ~CSConUninstall();
-            
-        CSConUninstall* CopyL();
-            
-        TFileName           iName;          // application name
-        TFileName           iVendor;        // application vendor
-        TUid                iUid;           // application uid
-        TSConAppType    	iType;			// application type
-        TSConInstallMode    iMode;          // install mode
-        
-        //used only with reply
-        TBool               iComplete;      //task complete
-        TInt                iProgress;      //task progress 
-    };  
-    
-//============================================================
-// class CSConListDataOwners declaration
-//============================================================      
-NONSHARABLE_CLASS( CSConListDataOwners ) : public CBase
-    {
-    public:
-        CSConListDataOwners();
-        ~CSConListDataOwners();         
-        CSConListDataOwners* CopyL();           
-        void DeleteDataOwners();
-            
-        //used only with reply
-        TBool               iComplete;      //task complete
-        TInt                iProgress;      //task progress 
-        
-        RPointerArray<CSConDataOwner>   iDataOwners;    //data owners
-    };
-    
-//============================================================
-// class CSConSetBURMode declaration
-//============================================================      
-NONSHARABLE_CLASS( CSConSetBURMode ) : public CBase
-    {
-    public:
-        TDriveList          iDriveList;     //drive list
-        TSConBurMode        iPartialType;   //partial backup type
-        TSConIncType        iIncType;       //incremental backup type
-        
-        CSConSetBURMode();
-        ~CSConSetBURMode();     
-        CSConSetBURMode* CopyL();
-        
-        //used only with reply
-        TBool               iComplete;      //task complete
-        TInt                iProgress;      //task progress 
-    };
-
-//============================================================
-// class CSConGetDataSize declaration
-//============================================================  
-NONSHARABLE_CLASS( CSConGetDataSize ) : public CBase
-    {
-    public:
-        CSConGetDataSize();
-        ~CSConGetDataSize();
-        
-        CSConGetDataSize* CopyL();          
-        void DeleteDataOwners();
-            
-    public:
-        RPointerArray<CSConDataOwner> iDataOwners;  //data owners
-        
-        //used only with reply
-        TBool               iComplete;      //task complete
-        TInt                iProgress;      //task progress 
-    };
-    
-//============================================================
-// class CSConListPublicFiles declaration
-//============================================================  
-NONSHARABLE_CLASS( CSConListPublicFiles ) : public CBase
-    {
-    public:
-        CSConListPublicFiles();
-        ~CSConListPublicFiles();            
-        CSConListPublicFiles* CopyL();
-        
-    public:
-        RPointerArray<CSConFile>        iFiles;         //data owners
-        RPointerArray<CSConDataOwner>   iDataOwners;    //data owners
-        
-        //used only with reply
-        TBool               iComplete;      //task complete
-        TInt                iProgress;      //task progress 
-    };
-    
-//============================================================
-// class CSConRequestData declaration
-//============================================================  
-NONSHARABLE_CLASS( CSConRequestData ) : public CBase
-    {
-    public:
-        CSConRequestData();         
-        ~CSConRequestData();            
-        CSConRequestData* CopyL();          
-        void DeleteDataAndDataOwner();
-            
-        CSConDataOwner*     iDataOwner;     //data owner
-        HBufC8*             iBackupData;    //backup data
-        TBool               iMoreData;      //more data
-        
-        //used only with reply
-        TBool               iComplete;      //task complete
-        TInt                iProgress;      //task progress 
-    };
-    
-//============================================================
-// class CSConGetDataOwnerStatus declaration
-//============================================================  
-NONSHARABLE_CLASS( CSConGetDataOwnerStatus ) : public CBase
-    {
-    public:
-        CSConGetDataOwnerStatus();
-        ~CSConGetDataOwnerStatus();         
-        CSConGetDataOwnerStatus* CopyL();
-        void DeleteDataOwners();
-            
-    public:
-        RPointerArray<CSConDataOwner> iDataOwners;  //data owners
-        
-        //used only with reply
-        TBool               iComplete;      //task complete
-        TInt                iProgress;      //task progress 
-    };
-
-//============================================================
-// class CSConSupplyData declaration
-//============================================================  
-NONSHARABLE_CLASS( CSConSupplyData ) : public CBase
-    {
-    public:
-        CSConSupplyData();
-        ~CSConSupplyData();         
-        CSConSupplyData* CopyL();
-    public:
-        CSConDataOwner*     iDataOwner;
-        HBufC8*             iRestoreData;   //restore data
-        TBool               iMoreData;      //more data     
-        //used only with reply
-        TBool               iComplete;      //task complete
-        TInt                iProgress;      //task progress 
-    };
-
-//============================================================
-// class CSConGetMetadata declaration
-//============================================================
-NONSHARABLE_CLASS( CSConGetMetadata ) : public CBase
-    {
-    public:
-        CSConGetMetadata();
-        ~CSConGetMetadata();            
-        CSConGetMetadata* CopyL();
-    public:
-        TFileName           iFilename;
-        HBufC8*             iData;          //metadata
-        TBool               iMoreData;      //more data     
-        //used only with reply
-        TBool               iComplete;      //task complete
-        TInt                iProgress;      //task progress 
-    };
-
-//============================================================
-// class CSConTask declaration
-//============================================================  
-NONSHARABLE_CLASS( CSConTask ): public CBase
-    {
-    public:
-        /**
-        * Two-phase constructor
-        * @return CSConTask instance
-        */
-        static CSConTask* NewL( TSConMethodName aMethod );
-        static CSConTask* NewLC( TSConMethodName aMethod );
-
-        CSConTask();
-        ~CSConTask();
-        TSConMethodName GetServiceId() const;
-        CSConTask* CopyL() const;
-        TBool GetComplete();
-        void SetCompleteValue( TBool aValue );
-        TBool GetCompleteValue();
-        void SetProgressValue( TInt aValue );
-    private:
-        
-        void ConstructL( TSConMethodName aMethod );                
-    public:
-        //Task
-        //service id
-        TSConMethodName             iMethod;
-        //task number
-        TInt                        iTaskId;            
-        
-        //DeviceInfo -params
-        CSConUpdateDeviceInfo*      iDevInfoParams;
-        //ListInstalledTasks -params
-        CSConListInstApps*          iListAppsParams;
-        //GetStatus -params
-        CSConGetStatus*             iGetStatusParams;
-        //Install -params
-        CSConInstall*               iInstallParams; 
-        //Uninstall -params 
-        CSConUninstall*             iUninstallParams;
-        //SetBURMode -params
-        CSConSetBURMode*            iBURModeParams;
-        //GetDataSize -params
-        CSConGetDataSize*           iGetDataSizeParams;
-        //RequestData -params
-        CSConRequestData*           iRequestDataParams; 
-        //GetDataOwnerStatus -params
-        CSConGetDataOwnerStatus*    iGetDataOwnerParams;
-        //SupplyData -params
-        CSConSupplyData*            iSupplyDataParams;
-        //ListPublicFiles -params
-        CSConListPublicFiles*       iPubFilesParams;
-        //ListDataOwners -params
-        CSConListDataOwners*        iListDataOwnersParams;
-        //Reboot -params
-        CSConReboot*                iRebootParams;
-        //GetMetadata -params
-        CSConGetMetadata*           iGetMetadataParams;
-        
-        TInt                        iCancelTaskId;
-        TBool                       iCancelTaskAll;
-    };
-    
-//============================================================
-// class CSConTaskReply declaration
-//============================================================
-NONSHARABLE_CLASS( CSConTaskReply ) : public CBase
-    {
-    public:
-        CSConTaskReply();
-        CSConTaskReply( TSConMethodName aMethod );
-        ~CSConTaskReply();
-        void InitializeL( const CSConTask& aTask );   
-        void InitializeL( TSConMethodName aMethod, 
-            TInt aProgress, TBool aComplete );           
-        CSConTaskReply* CopyAndFreeL();
-        void CleanTaskData();
-            
-    public:
-        //task id number
-        TInt                        iTaskId;
-        //method type
-        TSConMethodName             iMethod;
-        
-        //DeviceInfo -params
-        CSConUpdateDeviceInfo*      iDevInfoParams;
-        //ListInstalledTasks -params
-        CSConListInstApps*          iListAppsParams;
-        //GetStatus -params
-        CSConGetStatus*             iGetStatusParams;
-        //Install -params
-        CSConInstall*               iInstallParams;
-        //Uninstall -params
-        CSConUninstall*             iUninstallParams;
-        //SetBURMode -params
-        CSConSetBURMode*            iBURModeParams;
-        //GetDataSize -params
-        CSConGetDataSize*           iGetDataSizeParams;
-        //RequestData -params
-        CSConRequestData*           iRequestDataParams;
-        //GetDataOwnerStatus -params
-        CSConGetDataOwnerStatus*    iGetDataOwnerParams;
-        //SupplyData -params
-        CSConSupplyData*            iSupplyDataParams;
-        //ListPublicFiles -params
-        CSConListPublicFiles*       iPubFilesParams;
-        //ListDataOwners -params
-        CSConListDataOwners*        iListDataOwnersParams;
-        //Reboot -params
-        CSConReboot*                iRebootParams;
-        //GetMetadata -params
-        CSConGetMetadata*           iGetMetadataParams;
-    };      
-    
-//============================================================
-// class CSConStatusReply declaration
-//============================================================
-NONSHARABLE_CLASS( CSConStatusReply ): public CBase
-    {
-    public:
-        CSConStatusReply();
-        ~CSConStatusReply();
-            
-    public:
-        TBool                           iNoTasks;       //no active tasks
-        RPointerArray<CSConTaskReply>   iTasks;
-    };
-
-#endif
-
-// End of file
-
--- a/connectivitymodules/SeCon/common/conmltask/src/sconconmltask.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1684 +0,0 @@
-/*
-* Copyright (c) 2005-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:  ConML Task implementations
-*
-*/
-
-
-// INCLUDE FILES
-
-#include "sconconmltask.h"
-
-// -----------------------------------------------------------------------------
-// CSConReboot::CSConReboot()
-// 
-// -----------------------------------------------------------------------------
-//
-CSConReboot::CSConReboot() : iComplete( EFalse ), iProgress( 0 )
-    {
-    }
-        
-// -----------------------------------------------------------------------------
-// CSConReboot::~CSConReboot()
-// 
-// -----------------------------------------------------------------------------
-//  
-CSConReboot::~CSConReboot()
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CSConReboot::Copy()
-// 
-// -----------------------------------------------------------------------------
-//          
-CSConReboot* CSConReboot::CopyL()
-    {
-    CSConReboot* copy = new (ELeave) CSConReboot();
-    copy->iComplete = iComplete;
-    copy->iProgress = iProgress;
-    return copy;
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConDataOwner::CSConDataOwner()
-// 
-// -----------------------------------------------------------------------------
-//  
-CSConDataOwner::CSConDataOwner()
-    {
-    iHasFiles = ENoFiles;
-    iJavaHash = NULL;
-    iUid.iUid = 0;
-    
-    //Initialize iDriveList with zeros
-    iDriveList.Fill( '\x0' );
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConDataOwner::~CSConDataOwner()
-// 
-// -----------------------------------------------------------------------------
-//  
-CSConDataOwner::~CSConDataOwner()
-    {
-    delete iJavaHash;
-    iJavaHash = NULL;
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConDataOwner::Copy()
-// 
-// -----------------------------------------------------------------------------
-//          
-CSConDataOwner* CSConDataOwner::CopyL()
-    {
-    CSConDataOwner* copy = new (ELeave) CSConDataOwner();
-    copy->iType = iType;
-    copy->iUid = iUid;
-    copy->iDriveList.Copy( iDriveList );
-    copy->iPackageName = iPackageName;
-    copy->iReqReboot = iReqReboot;
-    copy->iHasFiles = iHasFiles;
-    copy->iSupportsInc = iSupportsInc;
-    copy->iSupportsSel = iSupportsSel;
-    copy->iDelayToPrep = iDelayToPrep;
-    copy->iSize = iSize;
-    copy->iDataOwnStatus = iDataOwnStatus;
-    copy->iTransDataType = iTransDataType;
-    
-    if ( iJavaHash )
-        {
-        if ( copy->iJavaHash )
-            {
-            delete copy->iJavaHash;
-            copy->iJavaHash = NULL;
-            }
-        copy->iJavaHash = iJavaHash->Alloc();
-        }
-                        
-    return copy;
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConUpdateDeviceInfo::CSConUpdateDeviceInfo()
-// 
-// -----------------------------------------------------------------------------
-//  
-CSConUpdateDeviceInfo::CSConUpdateDeviceInfo() : 
-            iInstallSupp(EFalse), iUninstallSupp(EFalse), 
-            iInstParamsSupp(EFalse), iInstAppsSupp(EFalse), 
-            iDataOwnersSupp(EFalse), iSetBURModeSupp(EFalse),
-            iGetSizeSupp(EFalse), iReqDataSupp(EFalse), 
-            iSupplyDataSupp(EFalse), iRebootSupp(EFalse),
-            iComplete( EFalse ), iProgress( 0 )
-    {
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConUpdateDeviceInfo::~CSConUpdateDeviceInfo()
-// 
-// -----------------------------------------------------------------------------
-//           
-CSConUpdateDeviceInfo::~CSConUpdateDeviceInfo()
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CSConUpdateDeviceInfo::Copy()
-// 
-// -----------------------------------------------------------------------------
-//          
-CSConUpdateDeviceInfo* CSConUpdateDeviceInfo::CopyL()
-    {
-    CSConUpdateDeviceInfo* copy = new (ELeave) CSConUpdateDeviceInfo();
-    copy->iVersion.Copy( iVersion );
-    copy->iInstallSupp = iInstallSupp;
-    copy->iUninstallSupp = iUninstallSupp;
-    copy->iInstParamsSupp = iInstParamsSupp;
-    copy->iInstAppsSupp = iInstAppsSupp;
-    copy->iDataOwnersSupp = iDataOwnersSupp;
-    copy->iSetBURModeSupp = iSetBURModeSupp;
-    copy->iGetSizeSupp = iGetSizeSupp;
-    copy->iReqDataSupp = iReqDataSupp;
-    copy->iSupplyDataSupp = iSupplyDataSupp;
-    copy->iMaxObjectSize = iMaxObjectSize;
-    copy->iRebootSupp = iRebootSupp;
-    copy->iComplete = iComplete;
-    copy->iProgress = iProgress;        
-                
-    return copy;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConInstApp::Copy()
-// 
-// -----------------------------------------------------------------------------
-//  
-CSConInstApp* CSConInstApp::CopyL()
-    {
-    CSConInstApp* copy = new (ELeave) CSConInstApp();
-            
-    copy->iName.Copy( iName ); 
-    copy->iParentName.Copy( iParentName );
-    copy->iVendor.Copy( iVendor );
-    copy->iVersion.Copy( iVersion );
-    copy->iSize = iSize;
-    copy->iType = iType;
-    copy->iUid = iUid;
-
-    return copy;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConListInstApps::CSConListInstApps()
-// 
-// -----------------------------------------------------------------------------
-//      
-CSConListInstApps::CSConListInstApps() : iComplete( EFalse ), iProgress( 0 )
-    {
-    //Initialize iDriveList with zeros
-    iDriveList.Fill( '\x0' );
-    }
-
-// -----------------------------------------------------------------------------
-// CSConListInstApps::~CSConListInstApps()
-// 
-// -----------------------------------------------------------------------------
-//      
-CSConListInstApps::~CSConListInstApps()
-    {
-    iApps.ResetAndDestroy();
-    iApps.Close();
-    }
-
-// -----------------------------------------------------------------------------
-// CSConListInstApps::CopyL()
-// 
-// -----------------------------------------------------------------------------
-//              
-CSConListInstApps* CSConListInstApps::CopyL()
-    {
-    CSConListInstApps* copy = new (ELeave) CSConListInstApps();
-    copy->iAllApps = iAllApps;
-    copy->iDriveList = iDriveList;
-            
-    copy->iComplete = iComplete;
-    copy->iProgress = iProgress;            
-        
-    for( TInt i = 0; i < iApps.Count(); i++ )
-        {
-        copy->iApps.Append( iApps[i]->CopyL() );
-        }
-            
-    return copy;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFile::CSConFile
-// 
-// -----------------------------------------------------------------------------
-//  
-CSConFile::CSConFile()
-    {
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConFile::~CSConFile
-// 
-// -----------------------------------------------------------------------------
-//  
-CSConFile::~CSConFile()
-    {
-    
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConFile::Copy()
-// 
-// -----------------------------------------------------------------------------
-//  
-CSConFile* CSConFile::CopyL()
-    {
-    CSConFile* copy = new (ELeave) CSConFile();
-            
-    copy->iPath.Copy( iPath ); 
-    copy->iModified.Copy( iModified );
-    copy->iSize = iSize;
-    copy->iUserPerm = iUserPerm;
-
-    return copy;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConInstall::CSConInstall()
-// 
-// -----------------------------------------------------------------------------
-//      
-CSConInstall::CSConInstall() : iMode( EUnknown ), iComplete( EFalse ), iProgress( 0 ) 
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CSConInstall::~CSConInstall()
-// 
-// -----------------------------------------------------------------------------
-//              
-CSConInstall::~CSConInstall()
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CSConInstall::CopyL()
-// 
-// -----------------------------------------------------------------------------
-//              
-CSConInstall* CSConInstall::CopyL()
-    {
-    CSConInstall* copy = new (ELeave) CSConInstall();
-    copy->iPath = iPath;
-    copy->iMode = iMode;
-            
-    copy->iComplete = iComplete;
-    copy->iProgress = iProgress;
-            
-    return copy;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConUninstall::CSConUninstall()
-// 
-// -----------------------------------------------------------------------------
-//  
-CSConUninstall::CSConUninstall() : iMode( EUnknown ), iComplete( EFalse ), iProgress( 0 )
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CSConUninstall::~CSConUninstall()
-// 
-// -----------------------------------------------------------------------------
-//          
-CSConUninstall::~CSConUninstall()
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CSConUninstall::Copy()
-// 
-// -----------------------------------------------------------------------------
-//          
-CSConUninstall* CSConUninstall::CopyL()
-    {
-    CSConUninstall* copy = new (ELeave) CSConUninstall();
-    copy->iName = iName;
-    copy->iVendor = iVendor;
-    copy->iUid = iUid;
-    copy->iMode = iMode;
-            
-    copy->iComplete = iComplete;
-    copy->iProgress = iProgress;
-            
-    return copy;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConListDataOwners::CSConListDataOwners()
-// 
-// -----------------------------------------------------------------------------
-//      
-CSConListDataOwners::CSConListDataOwners() : iComplete( EFalse ), iProgress( 0 )
-    {
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConListDataOwners::~CSConListDataOwners()
-// 
-// -----------------------------------------------------------------------------
-//          
-CSConListDataOwners::~CSConListDataOwners()
-    {
-    iDataOwners.ResetAndDestroy();
-    iDataOwners.Close();
-    }
-
-// -----------------------------------------------------------------------------
-// CSConListDataOwners::CopyL()
-// 
-// -----------------------------------------------------------------------------
-//              
-CSConListDataOwners* CSConListDataOwners::CopyL()
-    {
-    CSConListDataOwners* copy = new (ELeave) CSConListDataOwners();
-    CleanupStack::PushL( copy );
-    for( TInt i = 0; i < iDataOwners.Count(); i++ )
-        {
-        copy->iDataOwners.Append( iDataOwners[i]->CopyL() );
-        }
-    CleanupStack::Pop( copy );
-    
-    copy->iComplete = iComplete;
-    copy->iProgress = iProgress;
-        
-    return copy;
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConListDataOwners::DeleteDataOwners()
-// 
-// -----------------------------------------------------------------------------
-//          
-void CSConListDataOwners::DeleteDataOwners()
-    {
-    iDataOwners.ResetAndDestroy();
-    iDataOwners.Close();
-    }
-    
-// -----------------------------------------------------------------------------
-// CCSConSetBURMode::CSConSetBURMode()
-// 
-// -----------------------------------------------------------------------------
-//      
-CSConSetBURMode::CSConSetBURMode() : iComplete( EFalse ), iProgress( 0 )
-    {
-    //Initialize iDriveList with zeros
-    iDriveList.Fill( '\x0' );
-    }
-        
-// -----------------------------------------------------------------------------
-// CSConSetBURMode::~CSConSetBURMode()
-// 
-// -----------------------------------------------------------------------------
-//      
-CSConSetBURMode::~CSConSetBURMode()
-    {
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConSetBURMode::Copy()
-// 
-// -----------------------------------------------------------------------------
-//      
-CSConSetBURMode* CSConSetBURMode::CopyL()
-    {
-    CSConSetBURMode* copy = new (ELeave) CSConSetBURMode();
-    copy->iDriveList.Copy( iDriveList );
-    copy->iPartialType = iPartialType;
-    copy->iIncType = iIncType;
-            
-    copy->iComplete = iComplete;
-    copy->iProgress = iProgress;
-
-    return copy;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConGetDataSize::CSConGetDataSize()
-// 
-// -----------------------------------------------------------------------------
-//          
-CSConGetDataSize::CSConGetDataSize() : iComplete( EFalse ), iProgress( 0 )
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CSConGetDataSize::~CSConGetDataSize()
-// 
-// -----------------------------------------------------------------------------
-//      
-CSConGetDataSize::~CSConGetDataSize()
-    {
-    iDataOwners.ResetAndDestroy();
-    iDataOwners.Close();
-    }
-        
-// -----------------------------------------------------------------------------
-// CSConGetDataSize::Copy()
-// 
-// -----------------------------------------------------------------------------
-//      
-CSConGetDataSize* CSConGetDataSize::CopyL()
-    {
-    CSConGetDataSize* copy = new (ELeave) CSConGetDataSize();
-    CleanupStack::PushL( copy );
-    for( TInt i = 0; i < iDataOwners.Count(); i++ )
-        {
-        copy->iDataOwners.Append( iDataOwners[i]->CopyL() );
-        }
-    CleanupStack::Pop( copy );
-    copy->iComplete = iComplete;
-    copy->iProgress = iProgress;
-        
-    return copy;
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConGetDataSize::DeleteDataOwners()
-// 
-// -----------------------------------------------------------------------------
-//              
-void CSConGetDataSize::DeleteDataOwners()
-    {
-    iDataOwners.ResetAndDestroy();
-    iDataOwners.Close();
-    }   
-    
-// -----------------------------------------------------------------------------
-// CSConListPublicFiles::CSConListPublicFiles()
-// 
-// -----------------------------------------------------------------------------
-//  
-CSConListPublicFiles::CSConListPublicFiles() : iComplete( EFalse ), iProgress( 0 )
-    {
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConListPublicFiles::~CSConListPublicFiles()
-// 
-// -----------------------------------------------------------------------------
-//          
-CSConListPublicFiles::~CSConListPublicFiles()
-    {
-    iFiles.ResetAndDestroy();
-    iFiles.Close();
-    
-    iDataOwners.ResetAndDestroy();
-    iDataOwners.Close();
-    }
-
-// -----------------------------------------------------------------------------
-// CSConListPublicFiles::CopyL()
-// 
-// -----------------------------------------------------------------------------
-//              
-CSConListPublicFiles* CSConListPublicFiles::CopyL()
-    {
-    CSConListPublicFiles* copy = new (ELeave) CSConListPublicFiles();
-    CleanupStack::PushL( copy );
-    for( TInt i = 0; i < iFiles.Count(); i++ )
-        {
-        copy->iFiles.Append( iFiles[i]->CopyL() );
-        }
-        
-    for( TInt j = 0; j < iDataOwners.Count(); j++ )
-        {
-        copy->iDataOwners.Append( iDataOwners[j]->CopyL() );
-        }
-    CleanupStack::Pop( copy );
-    
-    copy->iComplete = iComplete;
-    copy->iProgress = iProgress;
-        
-    return copy;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConRequestData::CSConRequestData()
-// 
-// -----------------------------------------------------------------------------
-//
-CSConRequestData::CSConRequestData() : iDataOwner( NULL ), iBackupData( NULL ), 
-    iMoreData( EFalse ), iComplete( EFalse ), iProgress( 0 )
-    {
-    iDataOwner = new CSConDataOwner();
-    }
-            
-// -----------------------------------------------------------------------------
-// CSConRequestData::~CSConRequestData()
-// 
-// -----------------------------------------------------------------------------
-//
-CSConRequestData::~CSConRequestData()
-    {
-    if ( iDataOwner )
-        {
-        delete iDataOwner;
-        iDataOwner = NULL;
-        }
-        
-    if ( iBackupData )
-        {
-        delete iBackupData;
-        iBackupData = NULL;
-        }
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConRequestData::Copy()
-// 
-// -----------------------------------------------------------------------------
-//          
-CSConRequestData* CSConRequestData::CopyL()
-    {
-    CSConRequestData* copy = new (ELeave) CSConRequestData();
-    
-    if ( iDataOwner )
-        {
-        if ( copy->iDataOwner )
-            {
-            delete copy->iDataOwner;
-            copy->iDataOwner = NULL;
-            }
-        copy->iDataOwner = iDataOwner->CopyL();
-        }
-    
-    copy->iComplete = iComplete;
-    copy->iProgress = iProgress;
-        
-    if ( iBackupData )
-        {
-        if ( copy->iBackupData )
-            {
-            delete copy->iBackupData;
-            copy->iBackupData = NULL;
-            }
-        copy->iBackupData = iBackupData->Alloc();
-        }
-        
-    copy->iMoreData = iMoreData;
-    
-    return copy;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConRequestData::DeleteDataAndDataOwner()
-// 
-// -----------------------------------------------------------------------------
-//          
-void CSConRequestData::DeleteDataAndDataOwner()
-    {
-    if ( iDataOwner )
-        {
-        delete iDataOwner;
-        iDataOwner = NULL;
-        }
-    
-    if ( iBackupData )
-        {
-        delete iBackupData;
-        iBackupData = NULL;
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CSConGetDataOwnerStatus::CSConGetDataOwnerStatus()
-// 
-// -----------------------------------------------------------------------------
-//      
-CSConGetDataOwnerStatus::CSConGetDataOwnerStatus() : iComplete( EFalse ), iProgress( 0 )
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CSConGetDataOwnerStatus::~CSConGetDataOwnerStatus()
-// 
-// -----------------------------------------------------------------------------
-//              
-CSConGetDataOwnerStatus::~CSConGetDataOwnerStatus()
-    {
-    iDataOwners.ResetAndDestroy();
-    iDataOwners.Close();
-    }
-
-// -----------------------------------------------------------------------------
-// CSConGetDataOwnerStatus::Copy()
-// 
-// -----------------------------------------------------------------------------
-//              
-CSConGetDataOwnerStatus* CSConGetDataOwnerStatus::CopyL()
-    {
-    CSConGetDataOwnerStatus* copy = new (ELeave) CSConGetDataOwnerStatus();
-    CleanupStack::PushL( copy );
-    for( TInt i = 0; i < iDataOwners.Count(); i++ )
-        {
-        copy->iDataOwners.Append( iDataOwners[i]->CopyL() );
-        }           
-    CleanupStack::Pop( copy );
-    
-    copy->iComplete = iComplete;
-    copy->iProgress = iProgress;
-        
-    return copy;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConGetDataOwnerStatus::DeleteDataOwners()
-// 
-// -----------------------------------------------------------------------------
-//              
-void CSConGetDataOwnerStatus::DeleteDataOwners()
-    {
-    iDataOwners.ResetAndDestroy();
-    iDataOwners.Close();
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConSupplyData::CSConSupplyData()
-// 
-// -----------------------------------------------------------------------------
-//  
-CSConSupplyData::CSConSupplyData() : iDataOwner( NULL ), iRestoreData( NULL ),
-    iComplete( EFalse ), iProgress( 0 )
-    {
-    iDataOwner = new CSConDataOwner();
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConSupplyData::~CSConSupplyData()
-// 
-// -----------------------------------------------------------------------------
-//          
-CSConSupplyData::~CSConSupplyData()
-    {
-    if ( iDataOwner )
-        {
-        delete iDataOwner;
-        iDataOwner = NULL;
-        }
-    
-    if ( iRestoreData )
-        {
-        delete iRestoreData;
-        iRestoreData = NULL;
-        }
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConSupplyData::Copy()
-// 
-// -----------------------------------------------------------------------------
-//          
-CSConSupplyData* CSConSupplyData::CopyL()
-    {
-    CSConSupplyData* copy = new (ELeave) CSConSupplyData();
-    CleanupStack::PushL( copy );
-    
-    copy->iComplete = iComplete;
-    copy->iProgress = iProgress;
-        
-    if ( iDataOwner )
-        {
-        if ( copy->iDataOwner )
-            {
-            delete copy->iDataOwner;
-            copy->iDataOwner = NULL;
-            }
-            
-        copy->iDataOwner = iDataOwner->CopyL();
-        }
-    CleanupStack::Pop( copy ); 
-        
-    if ( iRestoreData )
-        {
-        if ( copy->iRestoreData )
-            {
-            delete copy->iRestoreData;
-            copy->iRestoreData = NULL;
-            }
-            
-        copy->iRestoreData = iRestoreData->Alloc();
-        }
-    
-    copy->iMoreData = iMoreData;    
-    
-    return copy;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConGetMetadata::CSConGetMetadata()
-// 
-// -----------------------------------------------------------------------------
-//  
-CSConGetMetadata::CSConGetMetadata() : iData( NULL ),
-    iMoreData( EFalse ), iComplete( EFalse ), iProgress( 0 )
-    {
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConGetMetadata::~CSConGetMetadata()
-// 
-// -----------------------------------------------------------------------------
-//          
-CSConGetMetadata::~CSConGetMetadata()
-    {
-    if ( iData )
-        {
-        delete iData;
-        iData = NULL;
-        }
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConGetMetadata::Copy()
-// 
-// -----------------------------------------------------------------------------
-//          
-CSConGetMetadata* CSConGetMetadata::CopyL()
-    {
-    CSConGetMetadata* copy = new (ELeave) CSConGetMetadata();
-    
-    copy->iFilename = iFilename;
-    
-    if ( iData )
-        {
-        if ( copy->iData )
-            {
-            delete copy->iData;
-            copy->iData = NULL;
-            }
-        
-        copy->iData = iData->Alloc();
-        }
-    
-    copy->iMoreData = iMoreData;
-    copy->iComplete = iComplete;
-    copy->iProgress = iProgress;
-    
-    return copy;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CSConTask::NewL( TSConMethodName aMethod )
-// 
-// -----------------------------------------------------------------------------
-//
-CSConTask* CSConTask::NewL( TSConMethodName aMethod )
-    {
-    CSConTask* self = NewLC( aMethod );
-    CleanupStack::Pop( self );
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConTask::NewLC( TSConMethodName aMethod )
-// 
-// -----------------------------------------------------------------------------
-//
-CSConTask* CSConTask::NewLC( TSConMethodName aMethod )
-    {
-    CSConTask* self = new (ELeave) CSConTask();
-    CleanupStack::PushL( self );
-    self->ConstructL( aMethod );
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConTask::ConstructL( TSConMethodName aMethod )
-// Initializes member data
-// -----------------------------------------------------------------------------
-//
-void CSConTask::ConstructL( TSConMethodName aMethod )
-    {
-    iMethod = aMethod;
-    
-    switch( aMethod )
-        {
-        case ECancel :
-            break;
-        case EGetDataOwnerStatus :
-            iGetDataOwnerParams = new (ELeave) CSConGetDataOwnerStatus();
-            break;
-        case EGetDataSize :
-            iGetDataSizeParams = new (ELeave) CSConGetDataSize();
-            break;
-        case EGetStatus :
-            iGetStatusParams = new (ELeave) CSConGetStatus();
-            break;
-        case EInstall :
-            iInstallParams = new (ELeave) CSConInstall();
-            break;
-        case EListDataOwners :
-            iListDataOwnersParams = new (ELeave) CSConListDataOwners();
-            break;
-        case EListInstalledApps :
-            iListAppsParams = new (ELeave) CSConListInstApps();
-            break;
-        case EListPublicFiles :
-            iPubFilesParams = new (ELeave) CSConListPublicFiles();
-            break;
-        case ERequestData :
-            iRequestDataParams = new (ELeave) CSConRequestData();
-            break;
-        case ESetBURMode :
-            iBURModeParams = new (ELeave) CSConSetBURMode();
-            break;
-        case ESetInstParams :
-            break;
-        case ESupplyData :
-            iSupplyDataParams = new (ELeave) CSConSupplyData();
-            break;
-        case EUninstall :
-            iUninstallParams = new (ELeave) CSConUninstall();
-            break;
-        case EUpdateDeviceInfo :
-            iDevInfoParams = new (ELeave) CSConUpdateDeviceInfo();
-            break;
-        case EReboot :
-            iRebootParams = new (ELeave) CSConReboot();
-            break;
-        case EGetMetadata :
-            iGetMetadataParams = new (ELeave) CSConGetMetadata();
-            break;
-        default :
-            break;
-        }
-    }
-// -----------------------------------------------------------------------------
-// CSConTask::CSConTask()
-// 
-// -----------------------------------------------------------------------------
-//      
-CSConTask::CSConTask()
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CSConTask::~CSConTask()
-// 
-// -----------------------------------------------------------------------------
-//          
-CSConTask::~CSConTask()
-    {
-    delete iDevInfoParams;
-    delete iListAppsParams;
-    delete iGetStatusParams;
-    delete iInstallParams;
-    delete iUninstallParams;
-    delete iBURModeParams;
-    delete iGetDataSizeParams;
-    delete iRequestDataParams;
-    delete iGetDataOwnerParams;
-    delete iSupplyDataParams;
-    delete iPubFilesParams;
-    delete iListDataOwnersParams;
-    delete iRebootParams;
-    delete iGetMetadataParams;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConTask::GetServiceId() const
-// 
-// -----------------------------------------------------------------------------
-//          
-TSConMethodName CSConTask::GetServiceId() const
-    { 
-    return iMethod; 
-    }
-
-// -----------------------------------------------------------------------------
-// CSConTask::Copy() const
-// 
-// -----------------------------------------------------------------------------
-//          
-CSConTask* CSConTask::CopyL() const
-    {
-    CSConTask* copy = new (ELeave) CSConTask();
-    copy->iMethod = iMethod;
-    
-    if ( iDevInfoParams )
-        {
-        copy->iDevInfoParams = iDevInfoParams->CopyL();
-        }
-    if ( iListAppsParams )
-        {
-        copy->iListAppsParams = iListAppsParams->CopyL();
-        }
-    if ( iGetStatusParams ) 
-        {
-        
-        }
-    if ( iInstallParams )
-        {
-        copy->iInstallParams = iInstallParams->CopyL();
-        }
-    if ( iUninstallParams )
-        {
-        copy->iUninstallParams = iUninstallParams->CopyL();
-        }
-    if ( iBURModeParams )
-        {
-        copy->iBURModeParams = iBURModeParams->CopyL();
-        }
-    if ( iGetDataSizeParams )
-        {
-        copy->iGetDataSizeParams = iGetDataSizeParams->CopyL();
-        }
-    if ( iRequestDataParams )
-        {
-        copy->iRequestDataParams = iRequestDataParams->CopyL();
-        }
-    if ( iGetDataOwnerParams )
-        {
-        copy->iGetDataOwnerParams = iGetDataOwnerParams->CopyL();
-        }
-    if ( iSupplyDataParams )
-        {
-        copy->iSupplyDataParams = iSupplyDataParams->CopyL();
-        }
-    if ( iPubFilesParams )
-        {
-        copy->iPubFilesParams = iPubFilesParams->CopyL();
-        }
-    if ( iListDataOwnersParams )
-        {
-        copy->iListDataOwnersParams = iListDataOwnersParams->CopyL();
-        }
-    if ( iRebootParams )
-        {
-        copy->iRebootParams = iRebootParams->CopyL();
-        }
-    if ( iGetMetadataParams )
-        {
-        copy->iGetMetadataParams = iGetMetadataParams->CopyL();
-        }
-    
-    return copy;
-    }
-            
-// -----------------------------------------------------------------------------
-// CSConTask::GetComplete()
-// 
-// -----------------------------------------------------------------------------
-//  
-TBool CSConTask::GetComplete()
-    {
-    TBool complete( EFalse );
-    
-    switch( iMethod )
-        {
-        case EInstall :
-            complete = this->iInstallParams->iComplete;
-            break;
-        case EUninstall :
-            complete =  this->iUninstallParams->iComplete;
-            break;
-        case EListInstalledApps :
-            complete =  this->iListAppsParams->iComplete;
-            break;
-        case ESetInstParams :
-            break;
-        case ESetBURMode :
-            complete = this->iBURModeParams->iComplete;
-            break;
-        case EListPublicFiles :
-            complete = this->iPubFilesParams->iComplete;
-            break;
-        case EListDataOwners :
-            complete = this->iListDataOwnersParams->iComplete;
-            break;
-        case EGetDataSize :
-            complete = this->iGetDataSizeParams->iComplete;
-            break;
-        case EReboot :
-            complete = this->iRebootParams->iComplete;
-            break;
-        case ERequestData :
-            //If task is partially completed, 
-            //it can be removed from the queue
-            if ( this->iRequestDataParams->iProgress == KSConTaskPartiallyCompleted )
-                {
-                complete = ETrue;
-                }
-            else
-                {
-                complete = this->iRequestDataParams->iComplete;
-                }
-            
-            break;
-        case EGetDataOwnerStatus :
-            complete = this->iGetDataOwnerParams->iComplete;
-            break;
-        case ESupplyData :
-            //If task is partially completed, 
-            //it can be removed from the queue
-            if ( this->iSupplyDataParams->iProgress == KSConTaskPartiallyCompleted )
-                {
-                complete = ETrue;
-                }
-            else
-                {
-                complete = this->iSupplyDataParams->iComplete;
-                }
-            
-            break;
-        case EGetMetadata :
-            complete = this->iGetMetadataParams->iComplete;
-            break;
-        default :
-            break;                      
-        }
-    
-    return complete;
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConTask::SetCompleteValue( TBool aValue )
-// 
-// -----------------------------------------------------------------------------
-//          
-void CSConTask::SetCompleteValue( TBool aValue )   
-    {
-    switch( iMethod )
-        {
-        case EInstall :
-            this->iInstallParams->iComplete = aValue;
-            break;
-        case EUninstall :
-            this->iUninstallParams->iComplete = aValue;         
-            break;
-        case EListInstalledApps :
-            this->iListAppsParams->iComplete = aValue;
-            break;
-        case ESetInstParams :
-            this->iInstallParams->iComplete = aValue;
-            break;
-        case ESetBURMode :
-            this->iBURModeParams->iComplete = aValue;
-            break;
-        case EListPublicFiles :
-            this->iPubFilesParams->iComplete = aValue;
-            break;
-        case EListDataOwners :
-            this->iListDataOwnersParams->iComplete = aValue;
-            break;
-        case EGetDataSize :
-            this->iGetDataSizeParams->iComplete = aValue;
-            break;
-        case EReboot :
-            this->iRebootParams->iComplete = aValue;
-            break;
-        case ERequestData :
-            this->iRequestDataParams->iComplete = aValue;
-            break;
-        case EGetDataOwnerStatus :
-            this->iGetDataOwnerParams->iComplete = aValue;
-            break;
-        case ESupplyData :
-            this->iSupplyDataParams->iComplete = aValue;
-            break;
-        case EGetMetadata :
-            this->iGetMetadataParams->iComplete = aValue;
-            break;
-        default:
-            break;      
-        }
-    }
-        
-// -----------------------------------------------------------------------------
-// CSConTask::GetCompleteValue()
-// 
-// -----------------------------------------------------------------------------
-//  
-TBool CSConTask::GetCompleteValue()
-    {
-    TBool complete( EFalse );
-    
-    switch( iMethod )
-        {
-        case EInstall :
-            complete = this->iInstallParams->iComplete;
-            break;
-        case EUninstall :
-            complete = this->iUninstallParams->iComplete;           
-            break;
-        case EListInstalledApps :
-            complete = this->iListAppsParams->iComplete;
-            break;
-        case ESetInstParams :
-            complete = this->iInstallParams->iComplete;
-            break;
-        case ESetBURMode :
-            complete = this->iBURModeParams->iComplete;
-            break;
-        case EListPublicFiles :
-            complete = this->iPubFilesParams->iComplete;
-            break;
-        case EListDataOwners :
-            complete = this->iListDataOwnersParams->iComplete;
-            break;
-        case EGetDataSize :
-            complete = this->iGetDataSizeParams->iComplete;
-            break;
-        case EReboot :
-            complete = this->iRebootParams->iComplete;
-            break;
-        case ERequestData :
-            if ( this->iRequestDataParams->iProgress != KSConTaskPartiallyCompleted )
-                {
-                complete = this->iRequestDataParams->iComplete;
-                }
-            else
-                {
-                complete = ETrue;
-                }
-            
-            break;
-        case EGetDataOwnerStatus :
-            complete = this->iGetDataOwnerParams->iComplete;
-            break;
-        case ESupplyData :
-            if ( this->iSupplyDataParams->iProgress != KSConTaskPartiallyCompleted )
-                {
-                complete = this->iSupplyDataParams->iComplete;
-                }
-            else
-                {
-                complete = ETrue;
-                }
-            break;
-        case EGetMetadata :
-            complete = this->iGetMetadataParams->iComplete;
-            break;
-        default:
-            break;      
-        }
-    return complete;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConTask::SetProgressValue( TInt aValue )
-// 
-// -----------------------------------------------------------------------------
-//              
-void CSConTask::SetProgressValue( TInt aValue )
-    {
-    switch( iMethod )
-        {
-        case EInstall :
-            this->iInstallParams->iProgress = aValue;
-            break;
-        case EUninstall :
-            this->iUninstallParams->iProgress = aValue;
-            break;
-        case EListInstalledApps :
-            this->iListAppsParams->iProgress = aValue;
-            break;
-        case ESetInstParams :
-            this->iInstallParams->iProgress = aValue;
-            break;
-        case ESetBURMode :
-            this->iBURModeParams->iProgress = aValue;
-            break;
-        case EListPublicFiles :
-            this->iPubFilesParams->iProgress = aValue;
-            break;
-        case EListDataOwners :
-            this->iListDataOwnersParams->iProgress = aValue;
-            break;
-        case EGetDataSize :
-            this->iGetDataSizeParams->iProgress = aValue;
-            break;
-        case EReboot :
-            this->iRebootParams->iProgress = aValue;
-            break;
-        case ERequestData :
-            this->iRequestDataParams->iProgress = aValue;
-            break;
-        case EGetDataOwnerStatus :
-            this->iGetDataOwnerParams->iProgress = aValue;
-            break;
-        case ESupplyData :
-            this->iSupplyDataParams->iProgress = aValue;
-            break;
-        case EGetMetadata :
-            this->iGetMetadataParams->iProgress = aValue;
-            break;
-        default:
-            break;      
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CSConTaskReply::CSConTaskReply()
-// 
-// -----------------------------------------------------------------------------
-//      
-CSConTaskReply::CSConTaskReply()
-    {
-    }
-   
-// -----------------------------------------------------------------------------
-// CSConTaskReply::CSConTaskReply( TSConMethodName aMethod )
-// 
-// -----------------------------------------------------------------------------
-//          
-CSConTaskReply::CSConTaskReply( TSConMethodName aMethod )
-    {
-    iMethod = aMethod;
-    switch( aMethod )
-        {
-        case ECancel :
-            break;
-        case EGetDataOwnerStatus :
-            iGetDataOwnerParams = new CSConGetDataOwnerStatus();
-            break;
-        case EGetDataSize :
-            iGetDataSizeParams = new CSConGetDataSize();
-            break;
-        case EGetStatus :
-            iGetStatusParams = new CSConGetStatus();
-            break;
-        case EInstall :
-            iInstallParams = new CSConInstall();
-            break;
-        case EListDataOwners :
-            iListDataOwnersParams = new CSConListDataOwners();
-            break;
-        case EListInstalledApps :
-            iListAppsParams = new CSConListInstApps();
-            break;
-        case EListPublicFiles :
-            iPubFilesParams = new CSConListPublicFiles();
-            break;
-        case ERequestData :
-            iRequestDataParams = new CSConRequestData();
-            break;
-        case ESetBURMode :
-            iBURModeParams = new CSConSetBURMode();
-            break;
-        case ESetInstParams :
-            break;
-        case ESupplyData :
-            iSupplyDataParams = new CSConSupplyData();
-            break;
-        case EUninstall :
-            iUninstallParams = new CSConUninstall();
-            break;
-        case EUpdateDeviceInfo :
-            iDevInfoParams = new CSConUpdateDeviceInfo();
-            break;
-        case EReboot :
-            iRebootParams = new CSConReboot();
-            break;
-        case EGetMetadata :
-            iGetMetadataParams = new CSConGetMetadata();
-            break;
-        default :
-            break;
-        }
-    }
-      
-// -----------------------------------------------------------------------------
-// CSConTaskReply::~CSConTaskReply()
-// 
-// -----------------------------------------------------------------------------
-//          
-CSConTaskReply::~CSConTaskReply()
-    {
-    delete iDevInfoParams;
-    delete iListAppsParams;
-    delete iGetStatusParams;
-    delete iInstallParams;
-    delete iUninstallParams;
-    delete iBURModeParams;
-    delete iGetDataSizeParams;
-    delete iRequestDataParams;
-    delete iGetDataOwnerParams;
-    delete iSupplyDataParams;
-    delete iPubFilesParams;
-    delete iListDataOwnersParams;
-    delete iRebootParams;
-    delete iGetMetadataParams;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConTaskReply::Initialize( const CSConTask& aTask )
-// 
-// -----------------------------------------------------------------------------
-// 
-void CSConTaskReply::InitializeL( const CSConTask& aTask )
-    {
-    iTaskId = aTask.iTaskId;
-    iMethod = aTask.iMethod;
-    
-    if ( iMethod == EInstall )
-        {
-        if ( iInstallParams )
-            {
-            delete iInstallParams;
-            iInstallParams = NULL;
-            }
-        iInstallParams = aTask.iInstallParams->CopyL();
-        }
-    else if ( iMethod == EListInstalledApps )
-        {
-        if ( iListAppsParams )
-            {
-            delete iListAppsParams;
-            iListAppsParams = NULL;
-            }
-            
-        iListAppsParams = aTask.iListAppsParams->CopyL();
-        }
-    else if ( iMethod == EUninstall )
-        {
-        if ( iUninstallParams )
-            {
-            delete iUninstallParams;
-            iUninstallParams = NULL;
-            }
-            
-        iUninstallParams = aTask.iUninstallParams->CopyL();
-        }
-    else if ( iMethod == ESetBURMode )
-        {
-        if ( iBURModeParams )
-            {
-            delete iBURModeParams;
-            iBURModeParams = NULL;
-            }
-            
-        iBURModeParams = aTask.iBURModeParams->CopyL();
-        }
-    else if ( iMethod == EListPublicFiles )
-        {
-        if ( iPubFilesParams )
-            {
-            delete iPubFilesParams;
-            iPubFilesParams = NULL;
-            }
-        
-        iPubFilesParams = aTask.iPubFilesParams->CopyL();
-        }
-    else if ( iMethod == EListDataOwners )
-        {
-        if ( iListDataOwnersParams )
-            {
-            delete iListDataOwnersParams;
-            iListDataOwnersParams = NULL;
-            }
-        
-        iListDataOwnersParams = aTask.iListDataOwnersParams->CopyL();
-        }
-    else if ( iMethod == EGetDataSize )
-        {
-        if ( iGetDataSizeParams )
-            {
-            delete iGetDataSizeParams;
-            iGetDataSizeParams = NULL;
-            }
-        
-        iGetDataSizeParams = aTask.iGetDataSizeParams->CopyL();
-        }
-    else if ( iMethod == EReboot )
-        {
-        if ( iRebootParams )
-            {
-            delete iRebootParams;
-            iRebootParams = NULL;
-            }
-        }
-    else if ( iMethod == ERequestData )
-        {
-        if ( iRequestDataParams )
-            {
-            delete iRequestDataParams;
-            iRequestDataParams = NULL;
-            }
-        
-        iRequestDataParams = aTask.iRequestDataParams->CopyL();
-        }
-    else if ( iMethod == EGetDataOwnerStatus )
-        {
-        if ( iGetDataOwnerParams )
-            {
-            delete iGetDataOwnerParams;
-            iGetDataOwnerParams = NULL;
-            }
-            
-        iGetDataOwnerParams = aTask.iGetDataOwnerParams->CopyL();
-        }
-    else if ( iMethod == ESupplyData )
-        {
-        if ( iSupplyDataParams )
-            {
-            delete iSupplyDataParams;
-            iSupplyDataParams = NULL;
-            }
-        
-        iSupplyDataParams = aTask.iSupplyDataParams->CopyL();
-        }
-    else if ( iMethod == EGetMetadata )
-        {
-        if ( iGetMetadataParams )
-            {
-            delete iGetMetadataParams;
-            iGetMetadataParams = NULL;
-            }
-        
-        iGetMetadataParams = aTask.iGetMetadataParams->CopyL();
-        }
-    }
- 
-// -----------------------------------------------------------------------------
-// CSConTaskReply::Initialize( TSConMethodName aMethod, 
-//              TInt aProgress, TBool aComplete )
-// 
-// -----------------------------------------------------------------------------
-//              
-void CSConTaskReply::InitializeL( TSConMethodName aMethod, 
-                TInt aProgress, TBool aComplete )
-    {
-    iMethod = aMethod;
-    if ( aMethod == EUpdateDeviceInfo )
-        {
-        if ( !iDevInfoParams )
-            {
-            iDevInfoParams = new (ELeave) CSConUpdateDeviceInfo();
-            }
-            
-        iDevInfoParams->iComplete = aComplete;
-        iDevInfoParams->iProgress = aProgress;
-        }
-    else if ( aMethod == EReboot )
-        {
-        if ( !iRebootParams )
-            {
-            iRebootParams = new (ELeave) CSConReboot();
-            }
-            
-        iRebootParams->iComplete = aComplete;
-        iRebootParams->iProgress = aProgress;
-        }
-    else if ( aMethod == EGetMetadata )
-        {
-        if ( !iGetMetadataParams )
-            {
-            iGetMetadataParams = new (ELeave) CSConGetMetadata();
-            }
-            
-        iGetMetadataParams->iComplete = aComplete;
-        iGetMetadataParams->iProgress = aProgress;
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CSConTaskReply::CopyAndFree()
-// 
-// -----------------------------------------------------------------------------
-// 
-CSConTaskReply* CSConTaskReply::CopyAndFreeL()  
-    {
-    CSConTaskReply* copy = new (ELeave) CSConTaskReply();
-    copy->iTaskId = iTaskId;
-    copy->iMethod = iMethod;
-    
-    if ( iDevInfoParams )
-        {
-        copy->iDevInfoParams = iDevInfoParams->CopyL();
-        
-        //free allocated memory
-        delete iDevInfoParams;
-        iDevInfoParams = NULL;
-        }
-    if ( iListAppsParams )
-        {
-        copy->iListAppsParams = iListAppsParams->CopyL();
-        
-        //free allocated memory
-        delete iListAppsParams;
-        iListAppsParams = NULL;
-        }
-    if ( iInstallParams )
-        {
-        copy->iInstallParams = iInstallParams->CopyL();
-        
-        //free allocated memory
-        delete iInstallParams;
-        iInstallParams = NULL;
-        }
-    if ( iUninstallParams )
-        {
-        copy->iUninstallParams = iUninstallParams->CopyL();
-        
-        //free allocated memory
-        delete iUninstallParams;
-        iUninstallParams = NULL;
-        }
-    if ( iBURModeParams )
-        {
-        copy->iBURModeParams = iBURModeParams->CopyL();
-        
-        //free allocated memory
-        delete iBURModeParams;
-        iBURModeParams = NULL;
-        }
-    if ( iGetDataSizeParams )
-        {
-        copy->iGetDataSizeParams = iGetDataSizeParams->CopyL();
-        
-        //free allocated memory
-        delete iGetDataSizeParams;
-        iGetDataSizeParams = NULL;
-        }
-    if ( iRequestDataParams )
-        {
-        copy->iRequestDataParams = iRequestDataParams->CopyL();
-        
-        //free allocated memory
-        delete iRequestDataParams;
-        iRequestDataParams = NULL;
-        }
-    if ( iGetDataOwnerParams )
-        {
-        copy->iGetDataOwnerParams = iGetDataOwnerParams->CopyL();
-        
-        //free allocated memory
-        delete iGetDataOwnerParams;
-        iGetDataOwnerParams = NULL;
-        }
-    if ( iSupplyDataParams )
-        {
-        copy->iSupplyDataParams = iSupplyDataParams->CopyL();
-        
-        //free allocated memory
-        delete iSupplyDataParams;
-        iSupplyDataParams = NULL;
-        }
-    if ( iPubFilesParams )
-        {
-        copy->iPubFilesParams = iPubFilesParams->CopyL();
-        
-        //free allocated memory
-        delete iPubFilesParams;
-        iPubFilesParams = NULL;
-        }
-    if ( iListDataOwnersParams )
-        {
-        copy->iListDataOwnersParams = iListDataOwnersParams->CopyL();
-        
-        //free allocated memory
-        delete iListDataOwnersParams;
-        iListDataOwnersParams = NULL;
-        }
-    if ( iRebootParams )
-        {
-        copy->iRebootParams = iRebootParams->CopyL();
-        
-        //free allocated memory
-        delete iRebootParams;
-        iRebootParams = NULL;
-        }
-    if ( iGetMetadataParams )
-        {
-        copy->iGetMetadataParams = iGetMetadataParams->CopyL();
-        
-        //free allocated memory
-        delete iGetMetadataParams;
-        iGetMetadataParams = NULL;
-        }
-    
-    return copy;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConTaskReply::CleanTaskData()
-// 
-// -----------------------------------------------------------------------------
-// 
-void CSConTaskReply::CleanTaskData()
-    {
-    switch( iMethod )   
-        {
-        case EGetDataSize :
-            if ( iGetDataSizeParams )
-                {
-                this->iGetDataSizeParams->DeleteDataOwners();
-                }
-            break;
-        case EGetDataOwnerStatus :
-            if ( iGetDataOwnerParams )
-                {
-                this->iGetDataOwnerParams->DeleteDataOwners();
-                }
-            break;
-        case EListDataOwners :
-            if ( iListDataOwnersParams )
-                {
-                this->iListDataOwnersParams->DeleteDataOwners();
-                }
-            break;
-        case ERequestData :
-            if ( iRequestDataParams )
-                {
-                this->iRequestDataParams->DeleteDataAndDataOwner();
-                }
-            break;
-        default :
-            break;
-        }
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConStatusReply::CSConStatusReply()
-// 
-// -----------------------------------------------------------------------------
-// 
-CSConStatusReply::CSConStatusReply() : iNoTasks( EFalse )
-    {
-    }
-   
-// -----------------------------------------------------------------------------
-// CSConStatusReply::~CSConStatusReply()
-// 
-// -----------------------------------------------------------------------------
-//      
-CSConStatusReply::~CSConStatusReply() 
-    {
-    iTasks.ResetAndDestroy();
-    iTasks.Close();
-    };
-
-// End of file
--- a/connectivitymodules/SeCon/group/bld.inf	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,47 +0,0 @@
-/*
-* Copyright (c) 2002-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:  Build info file for SeCon
-*
-*/
-
-#include <platform_paths.hrh>
-
-#include "../catalogspcconnectivityplugin/group/bld.inf"
-#include "../cntparser/bld/bld.inf"
-#include "../services/csc/bld/bld.inf"
-#include "../services/ftp/bld/bld.inf"
-#include "../services/pcd/bld/bld.inf"
-#include "../wbxml/conmlhandler/bld/bld.inf"
-#include "../servers/pcconn/bld/bld.inf"
-#include "../clients/pcconn/bld/bld.inf"
-#include "../plugins/pcconn/bld/bld.inf"
-#include "../plugins/ftp/bld/bld.inf"
-#include "../plugins/hapticsconnplugin/group/bld.inf"
-
-PRJ_EXPORTS
-
-// Export stub files
-stubs/secon_stub.SIS                /epoc32/data/z/system/install/secon_stub.SIS
-stubs/sconpcconnplugin_stub.SIS     /epoc32/data/z/system/install/sconpcconnplugin_stub.SIS
-stubs/sconftpplugin_stub.SIS        /epoc32/data/z/system/install/sconftpplugin_stub.SIS
-
-../rom/sconpcd.iby                  CORE_MW_LAYER_IBY_EXPORT_PATH(sconpcd.iby)
-../rom/sconpcconnplugin.iby         CORE_MW_LAYER_IBY_EXPORT_PATH(sconpcconnplugin.iby)
-../rom/sconpcconnclientserver.iby   CORE_MW_LAYER_IBY_EXPORT_PATH(sconpcconnclientserver.iby)
-../rom/sconftpresources.iby         LANGUAGE_MW_LAYER_IBY_EXPORT_PATH(sconftpresources.iby)
-../rom/sconftpplugin.iby            CORE_MW_LAYER_IBY_EXPORT_PATH(sconftpplugin.iby)
-../rom/sconftp.iby                  CORE_MW_LAYER_IBY_EXPORT_PATH(sconftp.iby)
-../rom/sconcsc.iby                  CORE_MW_LAYER_IBY_EXPORT_PATH(sconcsc.iby)
-../rom/cntparser.iby                CORE_MW_LAYER_IBY_EXPORT_PATH(cntparser.iby)
-
--- a/connectivitymodules/SeCon/group/stubs/createstubs.bat	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
-rem
-rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-rem All rights reserved.
-rem This component and the accompanying materials are made available
-rem under the terms of "Eclipse Public License v1.0"
-rem which accompanies this distribution, and is available
-rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
-rem
-rem Initial Contributors:
-rem Nokia Corporation - initial contribution.
-rem
-rem Contributors:
-rem
-rem Description: Batch file for creating needed stub files.
-rem
-
-makesis -s sconftpplugin_stub.pkg
-makesis -s sconpcconnplugin_stub.pkg
-makesis -s secon_stub.pkg
Binary file connectivitymodules/SeCon/group/stubs/sconftpplugin_stub.SIS has changed
--- a/connectivitymodules/SeCon/group/stubs/sconftpplugin_stub.pkg	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +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: Sis-stub file for FTP Plugin
-;
-; Languages
-&EN
-
-; Header
-#{"FTP Plugin"},(0x101F9686),1,0,0, TYPE=SA
-
-; Localised Vendor name
-%{"Nokia"}
-
-; Unique Vendor name
-:"Nokia"
-
-; Files to install
-""-"z:\resource\plugins\sconftpplugin.rsc"
-""-"z:\sys\bin\sconftpplugin.dll"
Binary file connectivitymodules/SeCon/group/stubs/sconpcconnplugin_stub.SIS has changed
--- a/connectivitymodules/SeCon/group/stubs/sconpcconnplugin_stub.pkg	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +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: Sis-stub file for PCConn Plugin
-;
-; Languages
-&EN
-
-; Header
-#{"PCConn Plugin"},(0x101F9688),1,0,0, TYPE=SA
-
-; Localised Vendor name
-%{"Nokia"}
-
-; Unique Vendor name
-:"Nokia"
-
-; Files to install
-""-"z:\resource\plugins\sconpcconnplugin.rsc"
-""-"z:\sys\bin\sconpcconnplugin.dll"
Binary file connectivitymodules/SeCon/group/stubs/secon_stub.SIS has changed
--- a/connectivitymodules/SeCon/group/stubs/secon_stub.pkg	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +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: Sis-stub file for Service Controllers
-;
-; Languages
-&EN
-
-; Header
-#{"Service Controllers"},(0x101F99F6),1,0,0, TYPE=SA
-
-; Localised Vendor name
-%{"Nokia"}
-
-; Unique Vendor name
-:"Nokia"
-
-; Files to install
-""-"z:\sys\bin\sconpcconnserver.exe"
-""-"z:\sys\bin\sconpcconnclient.dll"
-""-"z:\sys\bin\sconpcd.dll"
-""-"z:\resource\sconftp.r??"
-""-"z:\sys\bin\sconftp.dll"
-""-"z:\sys\bin\sconcsc.dll"
-""-"z:\sys\bin\sconconmlhandler.dll"
-""-"z:\sys\bin\catalogspcconnectivityplugin.dll"
-""-"z:\sys\bin\cntparserserver.dll"
-""-"z:\sys\bin\cntparserserverexe.exe"
--- a/connectivitymodules/SeCon/inc/debug.h	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,128 +0,0 @@
-/*
-* Copyright (c) 2005-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:  Debug utility for SeCon components.
-*
-*/
-
-
-#ifndef _SECON_DEBUG_H
-#define _SECON_DEBUG_H
-
-#ifdef _DEBUG
-    
-    #ifdef __WINS__
-        // Enable file logging
-        #define __FLOGGING__
-    #endif //__WINS__
-    
-    #include <e32svr.h>
-    #ifdef __FLOGGING__
-        #include <f32file.h>
-        #include <flogger.h>
-    #endif
-    
-    NONSHARABLE_CLASS(TOverflowTruncate16) : public TDes16Overflow
-        {
-    public:
-        void Overflow(TDes16& /*aDes*/) {}
-        };
-    
-    NONSHARABLE_CLASS(TOverflowTruncate8) : public TDes8Overflow
-        {
-    public:
-        void Overflow(TDes8& /*aDes*/) {}
-        };
-    
-    _LIT( KLogDir, "SECON" );
-    _LIT( KLogFile, "SeconDebug.txt" );
-    
-    _LIT(KTracePrefix16, "[SeCon] ");
-    _LIT8(KTracePrefix8, "[SeCon] ");
-    _LIT8(KFuncEntryFormat8, "%S : Begin");
-    _LIT8(KFuncExitFormat8, "%S : End");
-    _LIT8(KFuncReturnFormat8, "%S : End, return: %d");
-    _LIT8(KFuncFormat8, "><%S");
-    
-    const TInt KMaxLogLineLength = 512;
-    
-    // old function loggin macros
-    #define LOGGER_ENTERFN( name )      {TRACE_FUNC_ENTRY;}
-    #define LOGGER_LEAVEFN( name )      {TRACE_FUNC_EXIT;}
-    
-    #define LOGGER_WRITE( text )                    {_LIT( KTemp, text ); FPrint( KTemp );}
-    #define LOGGER_WRITE_1( text,par1 )             {_LIT( KTemp, text ); FPrint( KTemp, par1 );}
-    #define LOGGER_WRITE8_1( text,par1 )            {_LIT8( KTemp, text ); FPrint( KTemp, par1 );}
-    #define LOGGER_WRITE_2( text,par1,par2 )        {_LIT( KTemp, text ); FPrint( KTemp, par1, par2 );}
-    #define LOGGER_WRITE_3( text,par1,par2,par3 )   {_LIT( KTemp, text ); FPrint( KTemp, par1, par2, par3 );}
-    
-    // New function logging macros
-    #define TRACE_FUNC_ENTRY {TPtrC8 ptr8((TUint8*)__PRETTY_FUNCTION__); FPrint(KFuncEntryFormat8, &ptr8);}
-    #define TRACE_FUNC_EXIT {TPtrC8 ptr8((TUint8*)__PRETTY_FUNCTION__); FPrint(KFuncExitFormat8, &ptr8);}
-    #define TRACE_FUNC {TPtrC8 ptr8((TUint8*)__PRETTY_FUNCTION__); FPrint(KFuncFormat8, &ptr8);}
-    
-    #define TRACE_FUNC_RET( number )  {TPtrC8 ptr8((TUint8*)__PRETTY_FUNCTION__); FPrint(KFuncReturnFormat8, &ptr8, number);}
-    // Declare the FPrint function
-    inline void FPrint( TRefByValue<const TDesC16> aFmt, ...)
-        {
-        VA_LIST list;
-        VA_START(list,aFmt);
-    #ifdef __FLOGGING__
-        RFileLogger::WriteFormat( KLogDir, KLogFile, EFileLoggingModeAppend, aFmt, list );
-    #endif
-        TBuf16<KMaxLogLineLength> theFinalString;
-        theFinalString.Append(KTracePrefix16);
-        TOverflowTruncate16 overflow;
-        theFinalString.AppendFormatList(aFmt,list,&overflow);
-        RDebug::Print(theFinalString);
-        }
-    
-    // Declare the FPrint function
-    inline void FPrint(TRefByValue<const TDesC8> aFmt, ...)
-        {
-        VA_LIST list;
-        VA_START(list, aFmt);
-    #ifdef __FLOGGING__
-        RFileLogger::WriteFormat(KLogDir, KLogFile, EFileLoggingModeAppend, aFmt, list);
-    #endif
-        TOverflowTruncate8 overflow;
-        TBuf8<KMaxLogLineLength> buf8;
-        buf8.Append(KTracePrefix8);
-        buf8.AppendFormatList(aFmt, list, &overflow);
-        TBuf16<KMaxLogLineLength> buf16(buf8.Length());
-        buf16.Copy(buf8);
-        TRefByValue<const TDesC> tmpFmt(_L("%S"));
-        RDebug::Print(tmpFmt, &buf16);
-        }
-#else
-    
-    // No loggings --> reduced code size
-
-    #define LOGGER_ENTERFN( name )
-    #define LOGGER_LEAVEFN( name )
-    #define LOGGER_WRITE( text )
-    #define LOGGER_WRITE_1( text, par1 )
-    #define LOGGER_WRITE8_1( text, par1 )
-    #define LOGGER_WRITE_2( text, par1, par2 )
-    #define LOGGER_WRITE_3( text, par1, par2, par3 )
-    #define TRACE_FUNC_ENTRY
-    #define TRACE_FUNC_EXIT
-    #define TRACE_FUNC
-    #define TRACE_FUNC_RET( number )
-
-#endif //_DEBUG
-
-#endif // SECON_DEBUG_H
-
-// End of file
-
--- a/connectivitymodules/SeCon/plugins/ftp/bld/bld.inf	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +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:  File Transfer Profile Plug-in build information file.
-*
-*/
-
-
-PRJ_PLATFORMS  
-DEFAULT
-
-PRJ_MMPFILES
-sconftpplugin.mmp
--- a/connectivitymodules/SeCon/plugins/ftp/bld/def/bwinscwU.DEF	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-EXPORTS
-	?ImplementationGroupProxy@@YAPBUTImplementationProxy@@AAH@Z @ 1 NONAME ; struct TImplementationProxy const * ImplementationGroupProxy(int &)
-
--- a/connectivitymodules/SeCon/plugins/ftp/bld/def/eabiU.DEF	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-EXPORTS
-	_Z24ImplementationGroupProxyRi @ 1 NONAME
-	_ZTI14CSConFTPplugin @ 2 NONAME ; #<TI>#
-	_ZTV14CSConFTPplugin @ 3 NONAME ; #<VT>#
-
--- a/connectivitymodules/SeCon/plugins/ftp/bld/sconftpplugin.mmp	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,57 +0,0 @@
-/*
-* Copyright (c) 2002-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:  File Transfer Profile Plug-in
-*
-*/
-
-
-// To get the MW_LAYER_SYSTEMINCLUDE-definition
-#include <platform_paths.hrh>
-#include <data_caging_paths.hrh>
-
-VENDORID        VID_DEFAULT
-
-CAPABILITY      CAP_ECOM_PLUGIN
-
-TARGET          sconftpplugin.dll
-TARGETTYPE      PLUGIN
-
-UID             0x10009D8D 0x101F9686
-
-SOURCEPATH     	../src
-
-SOURCE          sconftpplugin.cpp
-SOURCE          proxy.cpp
-SOURCE          sconftppluginutils.cpp
-SOURCE          sconservicetimer.cpp
-SOURCE          sconshutdownwatcher.cpp
-
-START RESOURCE 101f9686.rss
-  TARGET        sconftpplugin.rsc
-END
-
-// Default system include paths for middleware layer modules.
-MW_LAYER_SYSTEMINCLUDE
-
-USERINCLUDE     ../inc 
-USERINCLUDE     ../../../inc 
-USERINCLUDE     ../../../services/ftp/inc 
-
-DEBUGLIBRARY    flogger.lib
-LIBRARY	        euser.lib
-LIBRARY	        irobex.lib 
-LIBRARY         ecom.lib			
-LIBRARY	        efsrv.lib 
-LIBRARY         bluetooth.lib
-LIBRARY         esock.lib 
--- a/connectivitymodules/SeCon/plugins/ftp/inc/sconftpplugin.h	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,194 +0,0 @@
-/*
-* Copyright (c) 2005-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:  File Transfer Profile Plug-in header file
-*
-*/
-
-
-#ifndef _SCONFTPPLUGIN_H
-#define _SCONFTPPLUGIN_H
-
-#include <obexserver.h>
-#include <SrcsInterface.h>
-
-#include "sconshutdownwatcher.h"
-
-// forward declaration
-class CSConFTP;
-class CSConServiceTimer;
-// CLASS DECLARATION
-
-/*
-* File Transfer Profile Plugin class
-*
-*/
-
-class CSConFTPplugin : public CSrcsInterface, public MObexServerNotify,
-                          public MShutdownObserver
-    {
-    public:
-        static CSConFTPplugin* NewL();
-        ~CSConFTPplugin();
-
-        /**
-         * Returns active status of OBEX session
-         * @return ETrue if session is active, else EFalse
-         */
-        TBool IsOBEXActive();
-        
-        /**
-         * Device is shutting down, abort connection.
-         */
-        void NotifyShutdown();
-
-    private:
-        /**
-         * Loads sconftp.dll module
-         * @return none
-         */
-        void LoadFTPDllL();
-        /**
-         * Closes initialized services
-         * @return none
-         */
-        void Disconnect();
-        /**
-         * Removes spaces and nulls from the end of the string
-         * @param aDes String to be formatted
-         * @return none
-         */
-        void TrimRightSpaceAndNull( TDes8& aDes ) const;
-        /**
-         * Current used transfer media (IR,USB,BT)
-         * @param aMediaType Enumeration indicating the media type
-         * @return none
-         */
-        void SetMediaType( TSrcsMediaType aMediaType );
-        /**
-         * MObexServerNotify implementation
-         * @param aError Error code
-         * @return none
-         */
-        void ErrorIndication( TInt aError );
-        /**
-         * MObexServerNotify implementation
-         * @return none
-         */
-        void TransportUpIndication();
-        /**
-         * MObexServerNotify implementation
-         * @return none
-         */
-        void TransportDownIndication();
-        /**
-         * MObexServerNotify implementation
-         * @param aRemoteInfo Structure containing information used during OBEX
-         * connection
-         * @param aInfo Further information about the requested connection
-         * @return System wide error code that indicates the success of the connection
-         */
-        TInt ObexConnectIndication( const TObexConnectInfo& aRemoteInfo,
-                                    const TDesC8& aInfo );
-        /**
-         * MObexServerNotify implementation
-         * @param aInfo Contains information about the disconnection
-         * @return none
-         */
-        void ObexDisconnectIndication( const TDesC8& aInfo );
-        /**
-         * MObexServerNotify implementation
-         * @return CObexBaseObject-derived object, which the object being put
-         * will be parsed into.
-         */
-        CObexBufObject* PutRequestIndication();
-        /**
-         * MObexServerNotify implementation
-         * @return System wide error code that indicates the success of the
-         * PUT packet operation.
-         */
-        TInt PutPacketIndication();
-        /**
-         * MObexServerNotify implementation
-         * @return System wide error code that indicates the success of the
-         * PUT packet operation.
-         */
-        TInt PutCompleteIndication();
-        /**
-         * MObexServerNotify implementation
-         * @param aRequiredObject Details about the object the remote client
-         * has requested
-         * @returnObject to return to the client
-         */
-        CObexBufObject* GetRequestIndication( CObexBaseObject
-                                                *aRequiredObject );
-        /**
-         * MObexServerNotify implementation
-         * @return System wide error code that indicates the success of the
-         * GET packet operation.
-         */
-        TInt GetPacketIndication();
-        /**
-         * MObexServerNotify implementation
-         * @return System wide error code that indicates the success of the
-         * GET packet operation.
-         */
-        TInt GetCompleteIndication();
-        /**
-         * MObexServerNotify implementation
-         * @param aPathInfo SETPATH command parameters
-         * @param aInfo Not currently used
-         * @return System wide error code indicating the success of the
-         * setpath command.
-         */
-        TInt SetPathIndication( const CObex::TSetPathInfo& aPathInfo,
-                                const TDesC8& aInfo );
-        /**
-         * SetObexServer
-         * @param aObexServer pass obex server pointer to sevice controller
-         * @return System wide error code.
-         */
-        TInt SetObexServer( CObexServer* aObexServer );
-        /**
-         * MObexServerNotify implementation
-         * @return none
-         */
-        void AbortIndication();
-
-        void ConstructL();
-    CSConFTPplugin();
-
-    private:
-        RLibrary                    iFTPlib;
-        CObexBufObject*             iObject;
-        CBufFlat*                   iBuffer;
-        CSConFTP*                   iFTPHandler;
-        TInt                        iPutError;
-        TBool                       iSessionActive;
-        CSConServiceTimer*          iServiceTimer;
-        TBool                       iStartTimer;
-        TSrcsMediaType              iMediaType;
-        CObexFileObject*            iFileObject;
-        TBool                       iPutPacketIndicationCalled;
-        CShutdownWatcher*           iShutdownWatcher;
-        TBool                       iShutdownInProgress;
-        CObexServer*                iObexServer;
-        RSocketServ                 iSocketServer;
-        RBTPhysicalLinkAdapter      iLinkAdapter;
-    private:
-        // Friend class is used,because existing impelentation has been working
-        // properly. Avoiding re-design.
-        friend class CSConServiceTimer;
-    };
-
-#endif // SCONPCCONNPLUGIN_H
--- a/connectivitymodules/SeCon/plugins/ftp/inc/sconftppluginutils.h	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-/*
-* Copyright (c) 2005-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:  File Transfer Profile Plug-in Utils header
-*
-*/
-
-
-#ifndef _SCONFTPPLUGINUTILS_H
-#define _SCONFTPPLUGINUTILS_H
-
-#include <e32base.h>
-//============================================================
-// Class TFTPpluginUtils declaration
-//============================================================
-class TFTPpluginUtils
-	{
-	public:
-		/**
-		 * Converts Symbian error code to OBEX error code
-		 * @param aError The error code
-		 * @return The converted error code
-		 */
-		static TInt ConvertFTPResponseCode( TInt aError );
-	};
-
-#endif // _SCONFTPPLUGINUTILS_H
\ No newline at end of file
--- a/connectivitymodules/SeCon/plugins/ftp/inc/sconservicetimer.h	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,61 +0,0 @@
-/*
-* Copyright (c) 2005-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:  File Transfer Profile Plug-in Service Timer Header file
-*
-*/
-
-
-#ifndef _SCONSERVICETIMER_H
-#define _SCONSERVICETIMER_H
-
-#include <e32base.h>
-
-class CSConFTPplugin;
-
-
-//============================================================
-// Class CSConServiceTimer declaration
-//============================================================
-
-NONSHARABLE_CLASS ( CSConServiceTimer ) : public CActive
-	{
-	public:
-		CSConServiceTimer( CSConFTPplugin* aEngine, TInt aValue );
-		void ConstructL();
-		~CSConServiceTimer();
-		
-		/**
-	 	* Starts the timer
-		* @return none
-	 	*/
-		void StartTimer();
-		/**
-		 * Stops the timer
-		 * @return none
-		 */
-		void StopTimer();
-	
-	private:
-		void DoCancel();
-		void RunL();
-		
-	private:
-		RTimer 				iTimer;
-		CSConFTPplugin* 	iEngine;
-		TInt 				iValue;
-	};
-	
-#endif //_SCONSERVICETIMER_H
-
-// End of file
--- a/connectivitymodules/SeCon/plugins/ftp/inc/sconshutdownwatcher.h	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,66 +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:  Power shutdown -watcher header file
-*
-*/
-
-
-#ifndef _SCONSHUTDOWNWATCHER_H
-#define _SCONSHUTDOWNWATCHER_H
-
-
-#include <e32base.h>
-#include <e32property.h>
-
-//============================================================
-// Class MShutdownObserver declaration
-//============================================================
-class MShutdownObserver
-    {
-public:
-    virtual void NotifyShutdown()=0;
-    };
-
-//============================================================
-// Class CShutdownWatcher declaration
-//============================================================
-NONSHARABLE_CLASS (  CShutdownWatcher ) : public CActive
-    {
-    public:
-        static CShutdownWatcher* NewL( MShutdownObserver* aObserver );
-        ~CShutdownWatcher();
-
-        /**
-         * Starts to watch shutdown status
-         * @return none
-         */
-        void StartShutdownWatcher();
-
-    private:
-        //construct/destruct
-        CShutdownWatcher( MShutdownObserver* aObserver );
-        void ConstructL();
-
-        // from CActive
-        void DoCancel();
-        void RunL();
-
-    private:
-        MShutdownObserver*   iObserver; 
-        RProperty            iProperty;
-    };
-
-#endif //_SCONSHUTDOWNWATCHER_H
-
-// End of file
\ No newline at end of file
--- a/connectivitymodules/SeCon/plugins/ftp/src/101f9686.rss	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,68 +0,0 @@
-/*
-* Copyright (c) 2005-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:  File Transfer Profile Plug-in resource file
-*
-*/
-
-
-#include "ecom/registryinfo.rh"
-
-// Declares info for two implementations
-RESOURCE REGISTRY_INFO theInfo
-	{
-	// UID for the DLL
-	dll_uid = 0x101F9686;
-	// Declare array of interface info
-	interfaces = 
-		{
-		INTERFACE_INFO
-			{
-			// UID of interface that is implemented
-			interface_uid = 0x101F7C8C;
-			implementations = 
-				{
-				// Info for CSConFTPplugin
-				IMPLEMENTATION_INFO
-					{
-					implementation_uid = 0x101F9687;
-					version_no = 1;
-					display_name = "OBEX File Transfer";
-					default_data = "OBEX/BT";
-					
-					// 
-					// opaque_data contains parameters used by following API calls in SRCS:
-					// 1. Setup USB interface string descriptor in Unicode;
-					// 2. TInt CObex::SetLocalWho(const TDesC8& aInfo);
-					// 3. TInt CBTConnection::RegisterSecuritySettingsL( TUint aService,
-					//						 TInt  aProtocol,
-					//						 TInt  aChannel,
-					//						 TBool aAuthenticate,
-					//						 TBool aAuthorise,
-					//						 TBool aEncrypt );
-					// opaque_data = "@0||@1||@2||@3||@4||@5||@6"
-					// @0 aStrDesc		e.g. "OBEX File Transfer"
-					// @1 aInfo			e.g. KFolderBrowsingID, "\xF9\xEC\x7B\xC4\x95\x3C\x11\xd2\x98\x4E\x52\x54\x00\xDC\x9E\x09"
-					// @2 aService		e.g. KBTSecurityUidFileTransfer, 0x1106
-					// @3 aProtocol		e.g. KSolBtRFCOMM, 0x1013
-					// @4 aAuthenticate	e.g. EFalse, 0
-					// @5 aAuthorise	e.g. EFalse, 0
-					// @6 aEncrypt		e.g. EFalse, 0
-					//
-					opaque_data = "OBEX File Transfer||\xF9\xEC\x7B\xC4\x95\x3C\x11\xd2\x98\x4E\x52\x54\x00\xDC\x9E\x09||0x1106||0x1013||1||1||1";
-					}
-				};
-			}
-		};
-	}
-
--- a/connectivitymodules/SeCon/plugins/ftp/src/proxy.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-/*
-* Copyright (c) 2005-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:  File Transfer Profile Plug-in proxy implementation
-*
-*/
-
-
-// INCLUDE FILES
-
-#include <e32std.h>
-#include <ecom/implementationproxy.h>
-
-#include "sconftpplugin.h"
-
-const TImplementationProxy ImplementationTable[] = 
-	{
-	IMPLEMENTATION_PROXY_ENTRY(0x101F9687,	CSConFTPplugin::NewL)
-	};
-
-// -----------------------------------------------------------------------------
-// TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount)
-// Exported proxy for instantiation method resolution
-// -----------------------------------------------------------------------------
-//
-EXPORT_C const TImplementationProxy* ImplementationGroupProxy(
-														TInt& aTableCount)
-	{
-	aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
-
-	return ImplementationTable;
-	}
--- a/connectivitymodules/SeCon/plugins/ftp/src/sconftpplugin.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,880 +0,0 @@
-/*
-* Copyright (c) 2005-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:  File Transfer Profile Plug-in implementation
-*
-*/
-
-
-// INCLUDE FILES
-
-#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
-#include <obexconstantsinternal.h>
-#endif
-#include "sconftpplugin.h"
-#include "sconftp.h"
-#include "sconftppluginutils.h"
-#include "sconservicetimer.h"
-#include "debug.h"
-
-
-// CONSTANTS
-_LIT(KSConFTPLibName, "sconftp.dll");
-const TInt KSConFTPUidValue = 0x10009D8D;
-const TUid KSConFTPUid = {KSConFTPUidValue};
-
-// Folder listing type from IrObex specification
-_LIT8( KSConFolderListType, "x-obex/folder-listing" );
-
-_LIT( K_C_ROOT, "C:\\" );
-const TInt KSConBufSize = 262144; // 256KB
-// Time (in milliseconds) for the timer
-const TInt KSConTimeOutValue =  60000000;
-// Flags used to indicate SetPath commands
-const TInt KSConNULLSetPath =   0x00;
-
-const TInt KSConHeaderMaxLength = 256;
-
-// ============================= MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CSConFTPplugin::NewL()
-// Two-phase constructor
-// -----------------------------------------------------------------------------
-//
-CSConFTPplugin* CSConFTPplugin::NewL()
-    {
-    TRACE_FUNC_ENTRY;
-    CSConFTPplugin* self = new ( ELeave ) CSConFTPplugin();
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop( self );
-    TRACE_FUNC_EXIT;
-    return( self );
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFTPplugin::~CSConFTPplugin()
-// Destructor
-// -----------------------------------------------------------------------------
-//
-CSConFTPplugin::~CSConFTPplugin()
-    {
-    TRACE_FUNC_ENTRY;
-    
-    // Disconnect from services.
-    Disconnect();
-    
-    if ( iFTPHandler )
-        {
-        delete iFTPHandler;
-        iFTPHandler = NULL;
-        iFTPlib.Close();
-        }
-    
-    delete iBuffer;
-    iBuffer = NULL;
-    delete iObject;
-    iObject = NULL;
-
-    if ( iServiceTimer )
-        {
-        iServiceTimer->Cancel();
-        }
-
-    delete iServiceTimer;
-    iServiceTimer = NULL;
-
-    if ( iFileObject )
-        {
-        delete iFileObject;
-        iFileObject = NULL;
-        }
-
-
-    delete iShutdownWatcher;
-    iShutdownWatcher = NULL;
-    
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFTPplugin::IsOBEXActive()
-// Returns active status of OBEX session
-// -----------------------------------------------------------------------------
-//
-TBool CSConFTPplugin::IsOBEXActive()
-    {
-    TRACE_FUNC;
-    return iSessionActive;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFTPplugin::NotifyShutdown()
-// System is shutting down
-// -----------------------------------------------------------------------------
-//
-void CSConFTPplugin::NotifyShutdown()
-    {
-    TRACE_FUNC;
-    iShutdownInProgress = ETrue;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFTPplugin::LoadFTPDllL()
-// Loads sconftp.dll module
-// -----------------------------------------------------------------------------
-//
-void CSConFTPplugin::LoadFTPDllL()
-    {
-    TRACE_FUNC_ENTRY;
-    // Dynamically load DLL
-    User::LeaveIfError( iFTPlib.Load( KSConFTPLibName ) );
-    if ( iFTPlib.Type()[1] != KSConFTPUid )
-        {
-        LOGGER_WRITE( "KSConFTPUidValue incorrect" );
-        iFTPlib.Close();
-        User::Leave( KErrNotFound );
-        }
-    TSConCreateCSConFTPFunc CreateCSConFTPL =
-    (TSConCreateCSConFTPFunc)iFTPlib.Lookup(1);
-    iFTPHandler = (CSConFTP*)CreateCSConFTPL();
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFTPplugin::Disconnect()
-// Closes initialized services
-// -----------------------------------------------------------------------------
-//
-void CSConFTPplugin::Disconnect()
-    {
-    TRACE_FUNC_ENTRY;
-    
-    iLinkAdapter.Close();
-    iSocketServer.Close();
-    
-    if ( iStartTimer != EFalse )
-        {
-        iServiceTimer->Cancel();
-        iServiceTimer->StartTimer();
-        }
-    
-    delete iObject;
-    iObject = NULL;
-    
-    if ( iFileObject )
-        {
-        delete iFileObject;
-        iFileObject = NULL;
-        }
-    if ( iFTPHandler )
-        {
-        delete iFTPHandler;
-        iFTPHandler = NULL;
-        iFTPlib.Close();
-        }
-
-    TRACE_FUNC_EXIT
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFTPplugin::ErrorIndication( TInt aError )
-// MObexServerNotify implementation
-// -----------------------------------------------------------------------------
-//
-void CSConFTPplugin::ErrorIndication( TInt aError )
-    {
-    TRACE_FUNC_ENTRY;
-    LOGGER_WRITE_1( "aError : %d", aError );
-    
-    if ( iFTPHandler )
-        {
-        iFTPHandler->AbortFileTransfer( iObject );
-        }
-
-    if ( iObject )
-        {
-        delete iObject;
-        iObject = NULL;
-        }
-    
-    if ( iFileObject )
-        {
-        iFileObject->Reset();
-        delete iFileObject;
-        iFileObject = NULL;
-        }
-
-    // Keep compiler happy
-    (void)aError;
-    
-    delete iShutdownWatcher;
-    iShutdownWatcher = NULL;
-    
-	if ( iLinkAdapter.IsOpen() )
-        {
-        // Cancel ActivateActiveRequester & allow going to low power mode
-        TInt err2 = iLinkAdapter.CancelLowPowerModeRequester();
-        LOGGER_WRITE_1( "iLinkAdapter.CancelLowPowerModeRequester() err: %d", err2 );
-        }
-    
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFTPplugin::AbortIndication()
-// MObexServerNotify implementation
-// -----------------------------------------------------------------------------
-//
-void CSConFTPplugin::AbortIndication()
-    {
-    TRACE_FUNC_ENTRY;
-    if ( iFTPHandler )
-        {
-        iFTPHandler->AbortFileTransfer( iObject );
-        }
-
-    if ( iObject )
-        {
-        delete iObject;
-        iObject = NULL;
-        }
-    
-    if ( iFileObject )
-        {
-        iFileObject->Reset();
-        delete iFileObject;
-        iFileObject = NULL;
-        }
-    
-    delete iShutdownWatcher;
-    iShutdownWatcher = NULL;
-    
-    if ( iLinkAdapter.IsOpen() )
-        {
-        // Cancel ActivateActiveRequester & allow going to low power mode
-        TInt err = iLinkAdapter.CancelLowPowerModeRequester();
-        LOGGER_WRITE_1( "iLinkAdapter.CancelLowPowerModeRequester() err: %d", err );
-        }
-    
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFTPplugin::TransportUpIndication()
-// MObexServerNotify implementation
-// -----------------------------------------------------------------------------
-//
-void CSConFTPplugin::TransportUpIndication()
-    {
-    TRACE_FUNC;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFTPplugin::ObexConnectIndication( const TObexConnectInfo& aRemoteInfo,
-// const TDesC8& aInfo )
-// MObexServerNotify implementation
-// -----------------------------------------------------------------------------
-//
-TInt CSConFTPplugin::ObexConnectIndication(
-                        const TObexConnectInfo& /*aRemoteInfo*/,
-                        const TDesC8& /*aInfo*/ )
-    {
-    TRACE_FUNC_ENTRY;
-    TInt err( KErrNone );
-    iStartTimer = ETrue;
-    
-    if ( iMediaType == ESrcsMediaBT && iObexServer )
-        {
-        TSockAddr remoteAddr;
-        iObexServer->RemoteAddr( remoteAddr );
-        
-        TBTSockAddr btSockAddr( remoteAddr );
-        TBTDevAddr devAddr = btSockAddr.BTAddr();
-        
-        err = iSocketServer.Connect();
-        LOGGER_WRITE_1("iSocketServer.Connect err: %d", err );
-        if ( !err )
-            {
-            err = iLinkAdapter.Open( iSocketServer, devAddr );
-            LOGGER_WRITE_1("iLinkAdapter.Open err: %d", err );
-            }
-        // Ignore all BT link errors
-        err = KErrNone;
-        }
-    
-    if ( err == KErrNone && !iFTPHandler )
-        {
-        TRAP( err, LoadFTPDllL() );
-        LOGGER_WRITE_1( "LoadFTPDllL returned : %d", err );
-        }
-    
-    if ( err == KErrNone )
-        {
-        iFTPHandler->SetProfile( EStandard );
-        LOGGER_WRITE( "CSConFTPplugin::ObexConnectIndication() : iServiceTimer->StopTimer()" );
-        iServiceTimer->Cancel();
-        iServiceTimer->StopTimer();
-        }
-
-    TRACE_FUNC_EXIT;
-    LOGGER_WRITE_1( "CSConFTPplugin::ObexConnectIndication returned %d", err );
-    return TFTPpluginUtils::ConvertFTPResponseCode( err );
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFTPplugin::ObexDisconnectIndication( const TDesC8& )
-// MObexServerNotify implementation
-// -----------------------------------------------------------------------------
-//
-void CSConFTPplugin::ObexDisconnectIndication( const TDesC8& )
-    {
-    TRACE_FUNC_ENTRY;
-    Disconnect();
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFTPplugin::TransportDownIndication()
-// MObexServerNotify implementation
-// -----------------------------------------------------------------------------
-//
-void CSConFTPplugin::TransportDownIndication()
-    {
-    TRACE_FUNC_ENTRY;
-    Disconnect();
-    if ( iBuffer )
-        {
-        iBuffer->Reset();
-        }
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFTPplugin::PutRequestIndication()
-// MObexServerNotify implementation
-// -----------------------------------------------------------------------------
-//
-CObexBufObject* CSConFTPplugin::PutRequestIndication()
-    {
-    TRACE_FUNC_ENTRY;
-    TInt ret( KErrNone );
-    TInt err( KErrNone );
-    iPutError = KErrNone;
-
-    if ( iBuffer )
-        {
-        iBuffer->Reset();
-        }
-
-    if ( iObject )
-        {
-        delete iObject;
-        iObject = NULL;
-        }
-
-    TRAP( err, iObject = CObexBufObject::NewL ( iBuffer ) );
-
-    if ( err != KErrNone )
-        {
-        return NULL;
-        }
-
-    if ( !iFTPHandler )
-        {
-        LOGGER_WRITE( "Creating iFTPHandler has failed" );
-        return NULL;
-        }
-
-    TRAP( err, ret = iFTPHandler->PutFileObjectInitL( iObject, iBuffer ) );
-
-    if ( err != KErrNone )
-        {
-        LOGGER_WRITE_1( "iFTPHandler->PutFileObjectInitL() leaves: %d", err );
-        return NULL;
-        }
-    if ( ret != KErrNone )
-        {
-        LOGGER_WRITE_1( "PutFileObjectInitL failed - returning error in next PutPacketIndication : %d", ret );
-        iPutError = ret;
-        }
-    iPutPacketIndicationCalled = EFalse;
-    
-    if ( !iShutdownWatcher )
-        {
-        TRAP( err, iShutdownWatcher = CShutdownWatcher::NewL( this ) );
-        if ( err == KErrNone )
-            {
-            iShutdownWatcher->StartShutdownWatcher();
-            }
-        else
-            {
-            LOGGER_WRITE_1( "CShutdownWatcher::NewL leaves: %d", err );
-            }
-        }
-    
-    if ( iLinkAdapter.IsOpen() )
-        {
-        // request active BT mode (high power mode)
-        err = iLinkAdapter.ActivateActiveRequester();
-        LOGGER_WRITE_1( "iLinkAdapter.ActivateActiveRequester() err: %d", err );
-        }
-    
-    TRACE_FUNC_EXIT;
-    return( iObject );
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFTPplugin::PutPacketIndication()
-// MObexServerNotify implementation
-// -----------------------------------------------------------------------------
-//
-TInt CSConFTPplugin::PutPacketIndication()
-    {
-    TRACE_FUNC_ENTRY;
-    TInt ret( KErrNone );
-    
-    // always normal file transfer
-    if ( (TInt)iObject->Length() > 0 )
-        {
-        if ( !iPutPacketIndicationCalled )
-            {
-            // This is first check, need to check only once
-            TFileName path;
-            iFTPHandler->GetPath( path );
-            if ( path.CompareF( K_C_ROOT ) == 0 )
-                {
-                // path forbidden
-                ret = KErrAccessDenied;
-                }
-            else
-                {
-                if ( iPutError != KErrNone )
-                    {
-                    ret = iPutError;
-                    LOGGER_WRITE_1( "CSConFTPplugin::PutPacketIndication() : PutError : %d", iPutError );
-                    }
-                else
-                    {
-                    // check required free space
-                    // if filesize is small ( <65k ) it fits into one package and its already saved to filesystem.
-                    // if file is larger, need to check is there enought free space in device.
-                    
-                    const TUint32  filesize = iObject->Length();
-                    LOGGER_WRITE_1( "CSConFTPplugin::PutPacketIndication() filesize %d", filesize );
-                    LOGGER_WRITE_1( "CSConFTPplugin::PutPacketIndication() iObject->BytesReceived() %d", iObject->BytesReceived() );
-                    if ( filesize > iObject->BytesReceived() )
-                        {
-                        LOGGER_WRITE( "CSConFTPplugin::PutPacketIndication() : check freespace" );
-                        // file does not fit into one obex packet, check is there enought free space in current drive
-                        if ( iFTPHandler->IsCurrentDiskSpaceBelowCritical( filesize ) )
-                            {
-    	                    LOGGER_WRITE( "CSConFTPplugin::PutPacketIndication() : returning KErrNoMemory" );
-                            ret = KErrNoMemory;
-                            }
-                        }
-                    }
-                }
-            }
-        
-        if ( iShutdownInProgress )
-            {
-            LOGGER_WRITE( "ShutdownInProgress, abort" );
-            ret = KErrDisconnected;
-            }
-        }
-    
-    if ( !iPutPacketIndicationCalled )
-        {
-        // Need to check only once
-        iPutPacketIndicationCalled = ETrue;
-        
-        //Check if filename is too long.
-        TFileName path;
-        iFTPHandler->GetPath( path );
-        if ( ret == KErrNone && path.Length() + iObject->Name().Length() > KMaxFileName )
-            {
-            LOGGER_WRITE_1( "Name length overflow! : %d", path.Length() + iObject->Name().Length() );
-            ret = KErrBadName;
-            }
-        }
-    
-    if ( ret != KErrNone )
-        {
-        if ( iFTPHandler )
-            {
-            iFTPHandler->AbortFileTransfer( iObject );
-            }
-        
-        delete iObject;
-        iObject = NULL;
-        
-        if ( iLinkAdapter.IsOpen() )
-            {
-            // Cancel ActivateActiveRequester & allow going to low power mode
-            TInt err = iLinkAdapter.CancelLowPowerModeRequester();
-            LOGGER_WRITE_1( "iLinkAdapter.CancelLowPowerModeRequester() err: %d", err );
-            }
-        }
-    
-    LOGGER_WRITE_1( "CSConFTPplugin::PutPacketIndication returned: %d", ret );
-    return TFTPpluginUtils::ConvertFTPResponseCode( ret );
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFTPplugin::PutCompleteIndication()
-// MObexServerNotify implementation
-// -----------------------------------------------------------------------------
-//
-TInt CSConFTPplugin::PutCompleteIndication()
-    {
-    TRACE_FUNC_ENTRY;
-    TInt ret( KErrNone );
-    TInt err( KErrNone );
-    
-    if ( iLinkAdapter.IsOpen() )
-        {
-        // Cancel ActivateActiveRequester & allow going to low power mode
-        TInt err2 = iLinkAdapter.CancelLowPowerModeRequester();
-        LOGGER_WRITE_1( "iLinkAdapter.CancelLowPowerModeRequester() err: %d", err2 );
-        }
-    
-    TObexHeaderMask validHdrs = iObject->ValidHeaders();
-    TTime time = iObject->Time();
-    
-    // shutdownWatcher is not needed anymore
-    delete iShutdownWatcher;
-    iShutdownWatcher = NULL;
-
-    TInt size = iObject->BytesReceived();
-
-    if (!(validHdrs & KObexHdrTime))
-        {
-        LOGGER_WRITE( "CSConFTPplugin::PutCompleteIndication() no valid time header received - using hometime" );
-        time.HomeTime();
-        TRAP( ret, iObject->SetTimeL(time) );
-        LOGGER_WRITE_1( "CSConFTPplugin::PutCompleteIndication SetTimeL  %d", ret );
-        }
-
-    if ( ( validHdrs & KObexHdrBody ) || ( validHdrs & KObexHdrEndOfBody ) )
-        {
-        LOGGER_WRITE_1( "CSConFTPplugin::PutCompleteIndication : number of received bytes  %d", size );
-        TSConUsedMedia media( ESConNoMedia );
-
-        switch ( iMediaType )
-            {
-            case ESrcsMediaBT:
-                media = ESConBTMedia;
-                break;
-            case ESrcsMediaIrDA:
-                media = ESConIRMedia;
-                break;
-            case ESrcsMediaUSB:
-                media = ESConUSBMedia;
-                break;
-            default:
-                media = ESConNoMedia;
-                break;
-            }
-        iFTPHandler->SetUsedMedia( media );
-        
-        TRAP( ret, err =
-        this->iFTPHandler->PutFileObjectFinalizeL( iObject ) );
-        LOGGER_WRITE_1( "CSConFTPplugin::PutCompleteIndication :PutFileObjectL  %d", ret );
-        }
-    else
-        {
-        LOGGER_WRITE( "CSConFTPplugin::PutCompleteIndication() : Delete  starts" );
-        TRAP( ret, err = this->iFTPHandler->DeleteObjectL( iObject->Name() ) );
-        LOGGER_WRITE_1( "CSConFTPplugin::PutCompleteIndication : DeleteObjectL  %d", ret );
-        }
-
-    if ( iObject )
-        {
-        delete iObject;
-        iObject = NULL;
-        }
-
-    iFTPHandler->DeleteTempFile();
-
-    if ( ret != KErrNone )
-        {
-        LOGGER_WRITE_1( "CSConFTPplugin::PutCompleteIndication : returned  %d", ret );
-        return TFTPpluginUtils::ConvertFTPResponseCode( ret );
-        }
-
-    LOGGER_WRITE_1( "CSConFTPplugin::PutCompleteIndication : returned  %d", err );
-    return TFTPpluginUtils::ConvertFTPResponseCode( err );
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFTPplugin::GetRequestIndication( CObexBaseObject* aRequiredObject )
-// MObexServerNotify implementation
-// -----------------------------------------------------------------------------
-//
-CObexBufObject* CSConFTPplugin::GetRequestIndication(
-                                            CObexBaseObject* aRequiredObject )
-    {
-    TRACE_FUNC_ENTRY;
-    CObexBufObject* bufObject(NULL);
-    if ( aRequiredObject->Type().Length() > KSConHeaderMaxLength )
-        {
-        LOGGER_WRITE("TypeHeader too big");
-        return NULL;
-        }
-    if ( aRequiredObject->Name().Length() > KMaxFileName )
-        {
-        LOGGER_WRITE("NameHeader is too long");
-        return NULL;
-        }
-    TInt ret( KErrNone );
-    TInt err( KErrNone );
-    TBuf8<KSConHeaderMaxLength> typeHeader( aRequiredObject->Type() );
-    TrimRightSpaceAndNull( typeHeader );
-    LOGGER_WRITE8_1("type: %S", &typeHeader);
-    LOGGER_WRITE_1("name: %S", &aRequiredObject->Name());
-
-    iBuffer->Reset();
-    
-    delete iObject;
-    iObject = NULL;
-    
-    TRAP( err, iObject = CObexBufObject::NewL ( iBuffer ) );
-    if ( err != KErrNone )
-        {
-        return NULL;
-        }
-    
-    // Client requests folder listing
-    if ( typeHeader == KSConFolderListType )
-        {
-        LOGGER_WRITE( "Client requests folder listning" );
-        if ( !iFTPHandler )
-            {
-            LOGGER_WRITE( "Creating iFTPHandler has failed" );
-            return NULL;
-            }
-
-        TRAP( err, ret = iFTPHandler->GetFolderObjectL( iObject ) );
-        LOGGER_WRITE_1( "iFTPHandler->GetFolderObjectL() returned: %d", ret );
-        if ( err == KErrNone && ret == KErrNone )
-            {
-            bufObject = iObject;
-            }
-        else
-            {
-            LOGGER_WRITE_1( "CSConFTPplugin::GetRequestIndication : Leavecode returned  %d", err );
-            return NULL;
-            }
-        }
-
-    // Client requests a file
-    else
-        {
-        if ( iFileObject )
-            {
-            delete iFileObject;
-            iFileObject = NULL;
-            }
-        
-        TRAP( err, iFileObject = CObexFileObject::NewL() );
-        if ( err != KErrNone )
-            {
-            LOGGER_WRITE( "Creating iFileObject has failed" );
-            return NULL;
-            }
-        iFileObject->Reset();
-        TRAP( err, iFileObject->SetNameL( aRequiredObject->Name() ) );
-
-        if ( err == KErrNone )
-            {
-            if ( !iFTPHandler )
-                {
-                LOGGER_WRITE( "CSConFTPplugin::GetRequestIndication() Creating iFTPHandler has failed" );
-                return NULL;
-                }
-
-            TRAP( err, ret =
-            this->iFTPHandler->GetFileObjectL( iFileObject ) );
-            LOGGER_WRITE_1( "CSConFTPplugin::GetRequestIndication :  GetFileObjectL returned  %d", ret );
-            }
-        if ( err == KErrNone && ret == KErrNone )
-            {
-            bufObject = (CObexBufObject*)iFileObject;
-            }
-        else
-            {
-            LOGGER_WRITE_1( "CSConFTPplugin::GetRequestIndication : Leavecode   %d", err );
-            return NULL;
-            }
-        }
-    if ( bufObject && iLinkAdapter.IsOpen() )
-        {
-        // request active BT mode (high power mode)
-        err = iLinkAdapter.ActivateActiveRequester();
-        LOGGER_WRITE_1( "iLinkAdapter.ActivateActiveRequester() err: %d", err );
-        }
-    return bufObject;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFTPplugin::GetPacketIndication()
-// MObexServerNotify implementation
-// -----------------------------------------------------------------------------
-//
-TInt CSConFTPplugin::GetPacketIndication()
-    {
-    TRACE_FUNC;
-    return KErrNone;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFTPplugin::GetCompleteIndication()
-// MObexServerNotify implementation
-// -----------------------------------------------------------------------------
-//
-TInt CSConFTPplugin::GetCompleteIndication()
-    {
-    TRACE_FUNC_ENTRY;
-    if ( iLinkAdapter.IsOpen() )
-        {
-        // Cancel ActivateActiveRequester & allow going to low power mode
-        TInt err = iLinkAdapter.CancelLowPowerModeRequester();
-        LOGGER_WRITE_1( "iLinkAdapter.CancelLowPowerModeRequester() err: %d", err );
-        }
-    
-    TInt ret( KErrNone );
-    if ( iFileObject )
-        {
-        iFileObject->Reset();
-        delete iFileObject;
-        iFileObject = NULL;
-        }
-
-    LOGGER_WRITE_1( "CSConFTPplugin::GetCompleteIndication() : returned %d", ret );
-    return ret;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFTPplugin::SetPathIndication( const CObex::TSetPathInfo& aPathInfo,
-// const TDesC8& aInfo )
-// MObexServerNotify implementation
-// -----------------------------------------------------------------------------
-//
-TInt CSConFTPplugin::SetPathIndication( const CObex::TSetPathInfo& aPathInfo,
-                                        const TDesC8& /*aInfo*/ )
-    {
-    TRACE_FUNC_ENTRY;
-    TInt ret( KErrNone );
-    TInt err( KErrNone );
-
-    if ( !iFTPHandler )
-        {
-        LOGGER_WRITE( "Creating iFTPHandler has failed" );
-        return TFTPpluginUtils::ConvertFTPResponseCode( KErrNoMemory );
-        }
-
-    if ( aPathInfo.iFlags == KSConNULLSetPath )
-        {
-        TRAP( err, ret = this->iFTPHandler->CreateFolderL( aPathInfo.iName ) );
-        }
-    else
-        {
-        TRAP( err, ret = this->iFTPHandler->SetPathL( aPathInfo.iName,
-        aPathInfo.iFlags ) );
-        }
-    
-    if ( err != KErrNone )
-        {
-        LOGGER_WRITE_1( "CSConFTPplugin::SetPathIndication : returned   %d", err );
-        return TFTPpluginUtils::ConvertFTPResponseCode( err );
-        }
-    LOGGER_WRITE_1( "CSConFTPplugin::SetPathIndication : returned %d", ret );
-    return TFTPpluginUtils::ConvertFTPResponseCode( ret );
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFTPplugin::TrimRightSpaceAndNull( TDes8& aDes ) const
-// Removes spaces and nulls from the end of the string
-// -----------------------------------------------------------------------------
-//
-void CSConFTPplugin::TrimRightSpaceAndNull( TDes8& aDes ) const
-    {
-    TRACE_FUNC;
-    aDes.TrimRight();
-    if ( aDes.Length() > 0 )
-        {
-        if ( !aDes[aDes.Length() - 1] )
-            {
-            aDes.SetLength( aDes.Length() - 1 );
-            }
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFTPplugin::SetMediaType ( TSrcsMediaType aMediaType )
-// Current used transfer media (IR,USB,BT)
-// -----------------------------------------------------------------------------
-//
-void CSConFTPplugin::SetMediaType ( TSrcsMediaType aMediaType )
-    {
-    TRACE_FUNC;
-    iMediaType = aMediaType;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFTPplugin::CSConFTPplugin()
-// Constructor
-// -----------------------------------------------------------------------------
-//
-CSConFTPplugin::CSConFTPplugin()
-    {
-    TRACE_FUNC;
-    iBuffer = NULL;
-    iObject = NULL;
-    iFileObject = NULL;
-    iSessionActive = EFalse;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFTPplugin::ConstructL()
-// Initializes member data
-// -----------------------------------------------------------------------------
-//
-void CSConFTPplugin::ConstructL()
-    {
-    TRACE_FUNC_ENTRY;
-    iBuffer = CBufFlat::NewL( KSConBufSize );
-    iObject = CObexBufObject::NewL ( iBuffer );
-    iServiceTimer = new (ELeave) CSConServiceTimer( this, KSConTimeOutValue );
-    iServiceTimer->ConstructL();
-    CActiveScheduler::Add( iServiceTimer );
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFTPplugin::SetObexServer( CObexServer* aObexServer )
-// SetObexServer
-// -----------------------------------------------------------------------------
-//
-TInt CSConFTPplugin::SetObexServer( CObexServer* aObexServer )
-    {
-    iObexServer = aObexServer;
-    TInt ret = iObexServer->Start(this);
-    LOGGER_WRITE_1( "CSConFTPplugin::SetObexServer() ret: %d", ret );
-    return ret;
-    }
-
-// End of file
-
--- a/connectivitymodules/SeCon/plugins/ftp/src/sconftppluginutils.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,129 +0,0 @@
-/*
-* Copyright (c) 2005-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:  File Transfer Profile Plug-in utilities
-*
-*/
-
-
-// INCLUDE FILES
-#include <obexconstants.h>
-#include "sconftppluginutils.h"
-#include "debug.h"
-
-// ============================= MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// TFTPpluginUtils::ConvertFTPResponseCode( TInt aError )
-// Converts Symbian error code to OBEX error code
-// -----------------------------------------------------------------------------
-//
-TInt TFTPpluginUtils::ConvertFTPResponseCode( TInt aError )
-	{
-	LOGGER_WRITE_1( "TFTPpluginUtils::ConvertFTPResponseCode : begin Code  %d", aError );
-	TInt obexErr ( KErrIrObexRespBadRequest );
-	switch( aError )
-		{
-		case KErrNone:
-			obexErr = KErrNone;
-			break;
-		case KErrNotFound:
-			obexErr = KErrIrObexRespNotFound;
-			break;
-		case KErrGeneral:
-		case KErrCancel:
-			obexErr = KErrIrObexRespBadRequest;
-			break;
-		case KErrNoMemory:
-			obexErr = KErrIrObexRespDatabaseFull;
-			break;
-		case KErrNotSupported:
-			obexErr = KErrIrObexRespNotImplemented;
-			break;
-		case KErrArgument:
-		case KErrTotalLossOfPrecision:
-		case KErrBadHandle:
-		case KErrOverflow:
-		case KErrUnderflow:
-		case KErrAlreadyExists:
-			obexErr = KErrIrObexRespConflict;
-			break;
-		case KErrPathNotFound:
-		case KErrDied:
-			obexErr = KErrIrObexRespNotFound;
-			break;
-		case KErrInUse:
-			obexErr = KErrIrObexRespTimedOut;
-			break;
-		case KErrServerTerminated:
-			obexErr = KErrIrObexRespNotFound;
-			break;
-		case KErrServerBusy:
-		case KErrCompletion:
-		case KErrNotReady:
-		case KErrUnknown:
-		case KErrCorrupt:
-			obexErr = KErrIrObexRespForbidden;
-			break;
-		case KErrAccessDenied:
-		case KErrLocked:
-			obexErr = KErrIrObexRespUnauthorized;
-			break;
-		case KErrWrite:
-		case KErrDisMounted:
-		case KErrEof:
-			obexErr = KErrIrObexRespForbidden;
-			break;
-		case KErrDiskFull:
-			obexErr = KErrIrObexRespDatabaseFull;
-			break;
-		case KErrBadDriver:
-		case KErrBadName:
-			obexErr = KErrIrObexRespPreCondFailed;
-			break;
-		case KErrCommsLineFail:
-		case KErrCommsFrame:
-		case KErrCommsOverrun:
-		case KErrCommsParity:
-		case KErrTimedOut:
-		case KErrCouldNotConnect:
-		case KErrCouldNotDisconnect:
-		case KErrBadLibraryEntryPoint:
-		case KErrBadDescriptor:
-		case KErrAbort:
-			obexErr = KErrIrObexRespForbidden;
-			break;
-		case KErrTooBig:
-			obexErr = KErrIrObexRespReqEntityTooLarge;
-			break;
-		case KErrDivideByZero:
-		case KErrBadPower:
-		case KErrDirFull:
-		case KErrHardwareNotAvailable:
-			obexErr = KErrIrObexRespForbidden;
-			break;
-		case KErrDisconnected: // System is shutting down
-		    obexErr = KErrIrObexRespMethodNotAllowed;
-		    break;
-		default:
-			obexErr = KErrIrObexRespBadRequest;
-			break;
-		};
-	LOGGER_WRITE_1( "TFTPpluginUtils::ConvertFTPResponseCode : returned %d", obexErr );
-	return obexErr;
-};
-
-//End of file
-
-
-
--- a/connectivitymodules/SeCon/plugins/ftp/src/sconservicetimer.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,119 +0,0 @@
-/*
-* Copyright (c) 2005-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:  File Transfer Profile Plug-in Service Timer implementation
-*
-*/
-
-
-// INCLUDE FILES
-
-#include "sconservicetimer.h"
-#include "sconftpplugin.h"
-#include "debug.h"
-
-// ============================= MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CSConServiceTimer::CSConServiceTimer( CSConFTPplugin* aEngine, TInt aValue )
-// Constuctor
-// -----------------------------------------------------------------------------
-//
-CSConServiceTimer::CSConServiceTimer( CSConFTPplugin* aEngine, TInt aValue )
-	: CActive( EPriorityStandard ), iEngine( aEngine ), iValue( aValue ) {}
-
-// -----------------------------------------------------------------------------
-// CSConServiceTimer::ConstructL()
-// Initializes member data
-// -----------------------------------------------------------------------------
-//
-void CSConServiceTimer::ConstructL()
-	{
-	LOGGER_ENTERFN( "CSConServiceTimer::ConstructL()" );
-	// create a thread-relative timer
-	User::LeaveIfError( iTimer.CreateLocal() );
-	LOGGER_LEAVEFN( "CSConServiceTimer::ConstructL()" );
-	}
-
-// -----------------------------------------------------------------------------
-// CSConServiceTimer::~CSConServiceTimer()
-// Destructor
-// -----------------------------------------------------------------------------
-//
-CSConServiceTimer::~CSConServiceTimer()
-	{
-	LOGGER_ENTERFN( "CSConServiceTimer::~CSConServiceTimer()" );
-	iTimer.Close();
-	LOGGER_LEAVEFN( "CSConServiceTimer::~CSConServiceTimer()" );	
-	}
-
-// -----------------------------------------------------------------------------
-// CSConServiceTimer::~CSConServiceTimer()
-// Starts the timer
-// -----------------------------------------------------------------------------
-//
-void CSConServiceTimer::StartTimer()
-	{
-	LOGGER_ENTERFN( "CSConServiceTimer::StartTimer()" );
-	if( !IsActive() )
-		{
-		LOGGER_WRITE( "CSConServiceTimer::StartTimer() : !IsActive()" );
-		iTimer.After( iStatus, TTimeIntervalMicroSeconds32( iValue ) );
-		iEngine->iSessionActive = ETrue;
-		SetActive();
-		LOGGER_WRITE( "CSConServiceTimer::StartTimer() : SetActive()" );
-		}
-	LOGGER_LEAVEFN( "CSConServiceTimer::StartTimer()" );
-	}
-
-// -----------------------------------------------------------------------------
-// CSConServiceTimer::StopTimer()
-// StopTimer()
-// -----------------------------------------------------------------------------
-//
-void CSConServiceTimer::StopTimer()
-	{
-	LOGGER_ENTERFN( "CSConServiceTimer::StopTimer()" );
-	iEngine->iSessionActive = ETrue;	
-	LOGGER_WRITE( "CSConServiceTimer::StopTimer() : iSessionActive = ETrue" );
-	LOGGER_LEAVEFN( "CSConServiceTimer::StopTimer()" );	
-	}
-
-// -----------------------------------------------------------------------------
-// CSConServiceTimer::DoCancel()
-// Cancels the timer
-// -----------------------------------------------------------------------------
-//
-void CSConServiceTimer::DoCancel()
-	{
-	LOGGER_ENTERFN( "CSConServiceTimer::DoCancel()" );
-	iTimer.Cancel();
-	LOGGER_LEAVEFN( "CSConServiceTimer::DoCancel()" );
-	}
-
-// -----------------------------------------------------------------------------
-// CSConServiceTimer::RunL()
-// Executed when timer is triggered
-// -----------------------------------------------------------------------------
-//
-void CSConServiceTimer::RunL()
-	{
-	LOGGER_ENTERFN( "CSConServiceTimer::RunL()" );
-	iEngine->iSessionActive = EFalse;
-	LOGGER_WRITE( "CSConServiceTimer::RunL() : iSessionActive = EFalse" );
-	iEngine->iStartTimer = EFalse;
-	LOGGER_WRITE( "CSConServiceTimer::RunL() : iStartTimer = EFalse " );
-	LOGGER_LEAVEFN( "CSConServiceTimer::RunL()" );
-	}
-	
-// End of file
--- a/connectivitymodules/SeCon/plugins/ftp/src/sconshutdownwatcher.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,153 +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:  Power shutdown -watcher implementation
-*
-*/
-
-
-// INCLUDE FILES
-
-#include "sconshutdownwatcher.h"
-#include "debug.h"
-
-#include <startupdomainpskeys.h>
-
-
-
-// ============================= MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CShutdownWatcher::NewL( MShutdownObserver* aObserver )
-// Two-phase constructor
-// -----------------------------------------------------------------------------
-//
-CShutdownWatcher* CShutdownWatcher::NewL( MShutdownObserver* aObserver )
-    {
-    LOGGER_ENTERFN( "CShutdownWatcher::NewL()" );
-    CShutdownWatcher* self = new (ELeave) CShutdownWatcher( aObserver );
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    CleanupStack::Pop(self);
-    LOGGER_LEAVEFN( "CShutdownWatcher::NewL()" );
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// CShutdownWatcher::~CShutdownWatcher()
-// Destructor
-// -----------------------------------------------------------------------------
-//
-CShutdownWatcher::~CShutdownWatcher()
-    {
-    LOGGER_ENTERFN( "CShutdownWatcher::~CShutdownWatcher()" );
-    Cancel();
-    iProperty.Close();
-    LOGGER_LEAVEFN( "CShutdownWatcher::~CShutdownWatcher()" );
-    }
-
-// -----------------------------------------------------------------------------
-// CShutdownWatcher::StartShutdownWatcher()
-// Starts to watch shutdown status
-// -----------------------------------------------------------------------------
-//
-void CShutdownWatcher::StartShutdownWatcher()
-    {
-    LOGGER_ENTERFN( "CShutdownWatcher::StartShutdownWatcher()" );
-    TInt status;
-    TInt err = iProperty.Get( KPSUidStartup, KPSGlobalSystemState, status );
-    LOGGER_WRITE_2( "CShutdownWatcher::StartShutdownWatcher() :\
-     err %d, KPSGlobalSystemState status %d", err, status);
-    if ( err == KErrNone )
-        {
-        if ( status == ESwStateShuttingDown )
-            {
-            LOGGER_WRITE( "Call NotifyShutdown" );
-            iObserver->NotifyShutdown();
-            return;
-            }
-        }
-    
-    err = iProperty.Attach( KPSUidStartup, KPSGlobalSystemState );
-    LOGGER_WRITE_1( "CShutdownWatcher::StartShutdownWatcher() :\
-     iProperty.Attach( KPSUidStartup, KPSGlobalSystemState ) : err %d", err );
-    iProperty.Subscribe( iStatus );
-    LOGGER_WRITE( "CShutdownWatcher::StartShutdownWatcher() :\
-     iProperty.Subscribe( iStatus ) : ok" );
-    SetActive();
-
-    LOGGER_LEAVEFN( "CShutdownWatcher::StartShutdownWatcher()" );
-    }
-
-// -----------------------------------------------------------------------------
-// CShutdownWatcher::DoCancel()
-// Executed when CActive is canceled.
-// -----------------------------------------------------------------------------
-//
-void CShutdownWatcher::DoCancel()
-    {
-    LOGGER_ENTERFN( "CShutdownWatcher::DoCancel()" );
-    iProperty.Cancel();
-    LOGGER_LEAVEFN( "CShutdownWatcher::DoCancel()" );
-    }
-
-// -----------------------------------------------------------------------------
-// CShutdownWatcher::RunL()
-// Executed when disk watcher is triggered
-// -----------------------------------------------------------------------------
-//
-void CShutdownWatcher::RunL()
-    {
-    LOGGER_ENTERFN( "CShutdownWatcher::RunL()" );
-    TInt status;
-    iProperty.Get( status );
-    LOGGER_WRITE_1( "CShutdownWatcher::RunL() : status %d", status );
-    
-    if ( status == ESwStateShuttingDown )
-        {
-        LOGGER_WRITE( "Call NotifyShutdown" );
-        iObserver->NotifyShutdown();
-        return;
-        }
-    
-    iProperty.Cancel();
-    iProperty.Close();
-    
-    LOGGER_LEAVEFN( "CShutdownWatcher::RunL()" );
-    }
-
-
-// -----------------------------------------------------------------------------
-// CShutdownWatcher::CShutdownWatcher( MShutdownObserver* aObserver )
-// Default constructor
-// -----------------------------------------------------------------------------
-//
-CShutdownWatcher::CShutdownWatcher( MShutdownObserver* aObserver )
-: CActive(EPriorityStandard),
-    iObserver(aObserver)
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CShutdownWatcher::ConstructL()
-// Initializes member data
-// -----------------------------------------------------------------------------
-//
-void CShutdownWatcher::ConstructL()
-    {
-    LOGGER_ENTERFN( "CShutdownWatcher::ConstructL()" );
-    CActiveScheduler::Add(this);
-    LOGGER_LEAVEFN( "CShutdownWatcher::ConstructL()" );
-    }
-
-// End of file
--- a/connectivitymodules/SeCon/plugins/hapticsconnplugin/data/2001FE54.rss	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,74 +0,0 @@
-/*
-* Copyright (c) 2001 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:  Plugin info file.
-*
-*/
-
-
-#include "ecom/registryinfo.rh"
-
-// Declares info for two implementations
-RESOURCE REGISTRY_INFO theInfo
-    {
-    // UID for the DLL
-    dll_uid = 0x2001FE54;
-    // Declare array of interface info
-    interfaces = 
-        {
-        INTERFACE_INFO
-            {
-            // UID of interface that is implemented
-            interface_uid = 0x101F7C8C;
-            implementations = 
-                {
-                IMPLEMENTATION_INFO
-                    {
-                    implementation_uid = 0x2001FE53;
-                    version_no = 1;
-                    display_name = "Haptics Bridge";
-                    default_data = "OBEX/USB||OBEX/BT";
-                    // 
-                    // opaque_data contains parameters used by following API calls in SRCS:
-                    // 1. Setup USB interface string descriptor in Unicode;
-                    // 2. TInt CObex::SetLocalWho(const TDesC8& aInfo);
-                    // 3. TInt CBTConnection::RegisterSecuritySettingsL( TUint aService,
-                    //                       TInt  aProtocol,
-                    //                       TInt  aChannel,
-                    //                       TBool aAuthenticate,
-                    //                       TBool aAuthorise,
-                    //                       TBool aEncrypt );
-                    // opaque_data = "@0||@1||@2||@3||@4||@5||@6"
-                    // @0 aStrDesc      e.g. "PC Connectivity"
-                    // @1 aInfo         e.g. KFolderBrowsingID, "\xF9\xEC\x7B\xC4\x95\x3C\x11\xd2\x98\x4E\x52\x54\x00\xDC\x9E\x09"
-                    // @2 aService      e.g. KBTSecurityUidFileTransfer, 0x1106
-                    // @3 aProtocol     e.g. KSolBtRFCOMM, 0x1013
-                    // @4 aAuthenticate e.g. EFalse, 0
-                    // @5 aAuthorise    e.g. EFalse, 0
-                    // @6 aEncrypt      e.g. EFalse, 0
-                    //
-                    opaque_data = "Haptics Bridge|"\
-                              "|\xF9\xEC\x7B\xC4\x95\x3C\x11\xd2\x98\x4E\x52\x54\x00\xDC\x9E\x09|"\
-                              "|0x2001E2B5|"\
-                              "|0x1013|"\
-                              "|0|"\
-                              "|1|"\
-                              "|0|"\
-                              "|0xffff|"\
-                              "|0xffff";
-                    }
-                };
-            }
-        };
-    }
-
--- a/connectivitymodules/SeCon/plugins/hapticsconnplugin/group/bld.inf	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +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:  Haptics connection plugin build file. 
-*
-*/
-
-#include <platform_paths.hrh>
-
-PRJ_PLATFORMS  
-DEFAULT
-
-PRJ_EXPORTS
-../rom/hapticsconnplugin.iby CORE_IBY_EXPORT_PATH(mw, hapticsconnplugin.iby)
-
-PRJ_MMPFILES
-hapticsconnplugin.mmp
-
--- a/connectivitymodules/SeCon/plugins/hapticsconnplugin/group/hapticsconnplugin.mmp	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,58 +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:  Haptics connection plugin project definition file.
-*
-*/
-
-
-#include <platform_paths.hrh>
-#include <data_caging_paths.hrh>
-
-VENDORID        VID_DEFAULT
-
-CAPABILITY      CAP_ECOM_PLUGIN
-
-TARGET          hapticsconnplugin.dll
-TARGETTYPE      PLUGIN
-
-UID             0x10009D8D 0x2001FE54
-
-SOURCEPATH     	../src
-
-SOURCE          hapticsconnplugin.cpp
-SOURCE          hapticsconntimer.cpp
-SOURCE          hapticsmsghandler.cpp
-SOURCE          hapticsbridgeclient.cpp
-SOURCE          proxy.cpp
-
-SOURCEPATH     	../data
-
-START RESOURCE 2001FE54.rss
-  TARGET        hapticsconnplugin.rsc
-END 
-
-MW_LAYER_SYSTEMINCLUDE
-SYSTEMINCLUDE /epoc32/include/stdapis
-
-USERINCLUDE     ../inc
-
-LIBRARY         flogger.lib
-LIBRARY         euser.lib
-LIBRARY         ecom.lib			
-LIBRARY         efsrv.lib
-LIBRARY         avkon.lib
-LIBRARY         bafl.lib
-LIBRARY         platformenv.lib
-LIBRARY         irobex.lib
-LIBRARY         hwrmhapticspacketizer.lib
--- a/connectivitymodules/SeCon/plugins/hapticsconnplugin/inc/hapticsbridgeclient.h	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,101 +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:  Client interface to haptics server for haptics bridge 
-*                commands.
-*
-*/
-
-
-#ifndef C_HAPTICSBRIDGECLIENT_H
-#define C_HAPTICSBRIDGECLIENT_H
-
-#include <e32base.h>
-
-class CHWRMHapticsPacketizer;
-
-class RHapticsBridgeClient : public RSessionBase
-{
-public:
-    /**
-     * Constructor
-     */
-     RHapticsBridgeClient();
-     
-     /**
-      * Destructor
-      */
-     virtual ~RHapticsBridgeClient();
-
-public:
-    /**
-     * Create a connection to haptics server.
-     */
-	TInt Connect();
-
-    /**
-     * Close the connection to haptics server.
-     */
-	void Close();
-
-    /**
-     * Send message to haptics server.
-     * @param aReqData     Data request to be sent to haptics server.
-     * @param aRetDataPckg Returned data from haptics server.
-     * @return KErrNone if sent succesfully, otherwise system wide error code.
-     */
-	TInt SendBridgeBuffer( const TDesC8& aReqData, TDes8& aRetDataPckg );
-
-    /**
-     * Sends a message clean-up commend to haptics server.
-     */
-	void CleanUp();
-    
-
-private:
-
-    /**
-     * Returns the version of the haptics server.
-     * @return Version.
-     */
-	TVersion ServerVersion() const;
-
-    /**
-     * Starts the server process if it is not already running.
-     * @return KErrNone on success, otherwise a system error code.
-     */
-	TInt StartServer() const;
-
-    /**
-     * Handles the device opening request.
-     * @param aResponse Reference to a descriptor containing the response
-     *                  received from haptics server.
-     */
-	void HandleOpenDeviceResponseL( const TDesC8& aResponse );
-	
-	/**
-	 * Opens the haptic effect ("vibra") device.
-	 * @return KErrNone on success, otherwise a system error code.
-	 */
-    TInt OpenHapticsDevice();
-
-private:
-
-    /**
-     * Haptic packetizer.
-     * Owned.
-     */
-    CHWRMHapticsPacketizer* iPacketizer;     
-};
-
-#endif // C_HAPTICSBRIDGECLIENT_H
\ No newline at end of file
--- a/connectivitymodules/SeCon/plugins/hapticsconnplugin/inc/hapticsconnplugin.h	Tue Feb 02 01:11:40 2010 +0200
+++ /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:  Haptics OBEX connection plugin.
-*
-*/
-
-
-#ifndef C_HAPTICSCONNPLUGIN_H
-#define C_HAPTICSCONNPLUGIN_H
-
-#include <obexserver.h>
-#include <SrcsInterface.h>
-
-class CHapticsMsgHandler;
-
-class CHapticsConnPlugin : public CSrcsInterface
-    {
-    public:
-        /**
-         * 2-phased constructor.
-         */
-        static CHapticsConnPlugin* NewL();
-
-        /**
-         * Destructor.
-         */
-        virtual ~CHapticsConnPlugin();
-        
-        /**
-         * From CSrcsInterface.
-         * @see CSrcsInterface.
-         */
-        TBool IsOBEXActive();
-        
-    private:
-        /**
-         * 2nd phase constructor.
-         */    
-        void ConstructL();
-        
-        /**
-         * Constructor.
-         */
-        CHapticsConnPlugin();
-        
-    private:
-        /**
-         * Component to handle messages between file systen and 
-         * haptics server.
-         * Own.
-         */
-        CHapticsMsgHandler* iMsgHandler;
-    };
-
-#endif // C_HAPTICSCONNPLUGIN_H
\ No newline at end of file
--- a/connectivitymodules/SeCon/plugins/hapticsconnplugin/inc/hapticsconntimer.h	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,71 +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:  Connection shutdown timer for haptics server connection.
-*
-*/
-
-
-#ifndef C_HAPTICSCONNTIMER_H
-#define C_HAPTICSCONNTIMER_H
-
-#include <e32base.h>
-
-#include "hapticsmsghandler.h"
-
-NONSHARABLE_CLASS ( CHapticsConnTimer ) : public CTimer
-	{
-	public:
-        /**
-         * 2-phased constructor.
-         */
-        static CHapticsConnTimer* NewL( MHapticsConnectionShutdown* aCallback );
-
-        /**
-         * Destructor.
-         */
-        virtual ~CHapticsConnTimer();
-
-		/**
-	 	* Starts the timer
-	 	*/
-        void Start();
-        
-    private: // From CActive.
-        /**
-         * Notifies client on timeout.
-         */
-        void RunL();
-        			
-    private:
-        /**
-         * Constructor.
-         */
-        CHapticsConnTimer( MHapticsConnectionShutdown* aCallback );
-
-        /**
-         * 2nd phase constructor.
-         */    
-	    void ConstructL();
-
-    private:
-        /**
-         * Callback interface to notify about timeout.
-         * Not own.
-         */        
-        MHapticsConnectionShutdown* iCallback;
-	};
-	
-#endif // C_HAPTICSCONNTIMER_H
-
-// End of file
--- a/connectivitymodules/SeCon/plugins/hapticsconnplugin/inc/hapticsconntrace.h	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,113 +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:  Haptics conn plugin debug trace macro definition header file.
-*
-*/
-#ifndef HAPTICSCONNTRACE_H
-#define HAPTICSCONNTRACE_H
-
-#include <bldvariant.hrh>
-#include <e32svr.h>
-#include <e32std.h>
-#include <e32svr.h>
-#include <flogger.h>
-
-/**
- * Writes formatted string data to a file using RFileLogger.
- *
- * @param aFmt Value-referenced descriptor containing the formatted string. 
- */
-inline void HwrmWriteFormat( TRefByValue<const TDesC> aFmt, ... )
-    {
-    _LIT( KDir, "Hwrm" );
-    _LIT( KName, "Hwres.log" );
-
-    // take the ellipsis parameters
-    VA_LIST args;
-    VA_START( args, aFmt );
-    RFileLogger::WriteFormat( KDir, KName, EFileLoggingModeAppend, aFmt, args );
-    VA_END( args );
-    }
-
-/**
- * Writes data dump in hex format in "[ 00 01 FF ]" style.
- * 
- * @param aPrefix Descriptor containing the string to be appended in 
- *                front of the actual data dump.
- * @param aData   An 8-bit descriptor containing the data buffer for which 
- *                the data dump is written.
- */
-inline void DataDumpTrace( const TDesC& aPrefix, const TDesC8& aData )
-    {
-    _LIT( KSATraceDataDumpStart, " [ " );
-    _LIT( KSATraceDataDumpLineAlign, "   " );
-    _LIT( KSATraceDataDumpStop, " ] " );
-    _LIT( KSATraceDataDumpValue, "%02x " );
-    const TInt KSASDataDumpTraceBytesPerLine = 10;
-    
-    HBufC* buffer = HBufC::New( 255 );
-
-    if ( buffer != NULL )
-        {
-        buffer->Des().Copy( aPrefix );
-        buffer->Des().Append( KSATraceDataDumpStart );
-        for ( TInt i = 0; i < aData.Length(); i++)
-            {
-            buffer->Des().AppendFormat( KSATraceDataDumpValue,  aData[i] );
-            
-            if( ( i % KSASDataDumpTraceBytesPerLine == ( KSASDataDumpTraceBytesPerLine - 1 ) ) && 
-                ( i + 1 < aData.Length() ) )
-                {
-                RDebug::Print( buffer->Des() );
-
-                buffer->Des().Copy( aPrefix);
-                buffer->Des().Append( KSATraceDataDumpLineAlign );
-                }
-            }
-        buffer->Des().Append( KSATraceDataDumpStop );
-            
-        RDebug::Print( buffer->Des() );
-                
-        }
-
-    delete buffer;
-    }
-
-#ifdef _DEBUG
-
-    #ifdef USE_FILE_LOGGING
-    
-        #define COMPONENT_TRACE( a ) HwrmWriteFormat a
-        #define API_TRACE( a ) HwrmWriteFormat a
-        #define DATADUMP_TRACE( a, b )
-    
-    #else
-
-        #define COMPONENT_TRACE( a ) RDebug::Print a
-        #define API_TRACE( a ) RDebug::Print a
-        #define DATADUMP_TRACE( a, b ) DataDumpTrace( a, b )
-        
-    #endif // #ifdef USE_FILE_LOGGING
-
-#else // #ifdef _DEBUG
-
-    #define COMPONENT_TRACE( a )
-    #define API_TRACE( a )
-    #define DATADUMP_TRACE( a, b ) 
-
-#endif //#ifdef _DEBUG
-#endif //#ifndef HAPTICSCONNTRACE_H
-
-
-//  End of File
--- a/connectivitymodules/SeCon/plugins/hapticsconnplugin/inc/hapticsmsghandler.h	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,136 +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:  Handles messaging between file system and haptics 
-*                client interface.
-*
-*/
-
-
-#ifndef C_HAPTICSMSGHANDLER_H
-#define C_HAPTICSMSGHANDLER_H
-
-#include <e32base.h>
-#include <e32debug.h>
-#include <f32file.h>
-
-#include "hapticsbridgeclient.h"
-
-class CHapticsConnTimer;
-
-/**
- * Interface to notify about connection timeout.
- */
-class MHapticsConnectionShutdown
-    {
-    public:
-        /**
-         * Called to notify about connection timeout.
-         */
-        virtual void NotifyShutdown() = 0;
-    
-    };
-
-/**
- * Helper class for Bridge functionality for handling RFs (File Session)
- * change notifications for VibeTonz request file.
- *
- * @since S60 5.1
- */
-class CHapticsMsgHandler : public CActive,
-                           public MHapticsConnectionShutdown
-    {        
-public:    
-    /**
-     * 2-phased constructor.
-     */
-    static CHapticsMsgHandler* NewL();
-    
-    /**
-     * Destructor
-     */
-    virtual ~CHapticsMsgHandler();
-
-    /**
-     * Method for starting the listening for change notifications    
-     */
-    void StartNotifier();
-        
-    /**
-     * From MHapticsConnectionShutdown.
-     * Called to notify about connection timeout.
-     */        
-    void NotifyShutdown();   
-    
-protected: // From CActive.    
-    /**
-     * @see CActive
-     */
-    void RunL();
-    /**
-     * @see CActive
-     */    
-    TInt RunError(TInt aError);
-    /**
-     * @see CActive
-     */    
-    void DoCancel();
-        
-private:
-
-    /**
-     * Constructor
-     */
-    CHapticsMsgHandler();
-
-    /**
-     * Two-phase construction ConstructL
-     */
-    void ConstructL();
-    
-    /**
-     * Method for connecting to file system. Also sets the paths and
-     * creates directories (if not already exists).
-     */
-    void ConnectToFilesystemL();            	
- 
-    /**
-     * Helper for clearing the possible left-over request file from
-     * previous runs.
-     */
-    void ClearRequestFile();
-
-private: // data
-    
-    /**
-     * File server session through which all file server related 
-     * services are requested.
-     */
-    RFs iFs;
-    
-    /**
-     * Buffer for the request file data
-     */
-    HBufC8* iReqBuf;    
-
-    /**
-     * The RHapticsBridgeClient object that is responsible for further
-     * handling of received Bridge commands
-     */
-    RHapticsBridgeClient iClient;
-    
-    CHapticsConnTimer* iConnectionTimeout;
-        
-  };
-
-#endif // C_HAPTICSMSGHANDLER_H
--- a/connectivitymodules/SeCon/plugins/hapticsconnplugin/rom/hapticsconnplugin.iby	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +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:  IBY file for Haptics conn plugin.
-*
-*/
-
-
-#ifndef HAPTICSCONNPLUGIN_IBY
-#define HAPTICSCONNPLUGIN_IBY
-
-#include <data_caging_paths_for_iby.hrh>
-
-ECOM_PLUGIN(hapticsconnplugin.dll,hapticsconnplugin.rsc)
-
-#endif // HAPTICSCONNPLUGIN_IBY
--- a/connectivitymodules/SeCon/plugins/hapticsconnplugin/src/hapticsbridgeclient.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,317 +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:  Client interface to haptics server for haptics bridge 
-*                commands.
-*
-*/
-
-
-#include <e32svr.h>
-#include <f32file.h>
-#include <data_caging_path_literals.hrh> // KDC_PROGRAMS_DIR
-#include <hwrmhaptics.h>
-#include <hwrmlogicalactuators.h>
-#include <hwrmhapticspacketizer.h>
-
-#include "hapticsbridgeclient.h"
-#include "hapticsconntrace.h"
-
-const TInt KServerVersionMajor       = 1;
-const TInt KServerVersionMinor       = 1;
-const TInt KServerVersionBuild       = 1;
-_LIT( KServerProcessName, "!hwrmhapticsserver" );
-_LIT( KServerExeName, "hwrmhapticsserver.exe" );
-const TInt KAsyncMsgSlots = 10;
-
-const TInt KHWRMHapticsServiceCommand      = 2001;
-const TInt KHWRMHapticsOpenActuatorCommand = 2004;
-const TInt KHWRMHapticsCleanupCommand      = 2008;
-const TInt KHWRMHapticsBridgeCommand       = 2011;
-
-// --------------------------------------------------------------------------
-// Simple constructor
-// 
-// --------------------------------------------------------------------------
-// 
-RHapticsBridgeClient::RHapticsBridgeClient()
-    {
-    TRAP_IGNORE( iPacketizer = 
-                 CHWRMHapticsPacketizer::NewL( EHWRMLogicalActuatorAny ) );
-    }
-
-// --------------------------------------------------------------------------
-// Simple destructor
-// 
-// --------------------------------------------------------------------------
-// 
-RHapticsBridgeClient::~RHapticsBridgeClient()
-    {
-    delete iPacketizer;
-    }
-
-// --------------------------------------------------------------------------
-// Method for connecting (creating a new session) with Haptics Server
-// 
-// --------------------------------------------------------------------------
-// 
-TInt RHapticsBridgeClient::Connect()
-    {
-    COMPONENT_TRACE( ( _L( "RHapticsBridgeClient::Connect()" ) ) );
-    TInt ret = CreateSession( KServerProcessName, 
-                              ServerVersion(), 
-                              KAsyncMsgSlots );
-    if ( ret != KErrNone )
-        {
-        ret = StartServer();
-        if ( ret == KErrNone )
-            {
-            ret = CreateSession( KServerProcessName, 
-                                 ServerVersion(),
-                                 KAsyncMsgSlots );    
-            COMPONENT_TRACE(_L("RHapticsBridgeClient::Connect(), Session created"));
-            }       
-        }
-
-    // Initialize server components.
-    if ( ret == KErrNone )
-        {
-        ret = SendReceive( KHWRMHapticsServiceCommand );
-        }
-
-    // Open the haptic effect ("vibra") device.
-    if ( ret == KErrNone )
-        {
-        ret = OpenHapticsDevice();
-        }
-    
-        
-    COMPONENT_TRACE( ( _L( "RHapticsBridgeClient::Connect - return(%d)" ), ret ) );        
-    return ret;
-    }
-
-// --------------------------------------------------------------------------
-// Method for starting Haptics Server (if not already running)
-// 
-// --------------------------------------------------------------------------
-//
-TInt RHapticsBridgeClient::StartServer() const
-    {
-    COMPONENT_TRACE( ( _L( "RHapticsBridgeClient::StartServer()" ) ) );
-
-    TParse parser;
-    parser.Set( KServerExeName, &KDC_PROGRAMS_DIR, NULL );
-        
-    RProcess server;
-    TInt ret = server.Create( parser.FullName(), KNullDesC );
-
-    if ( ret != KErrNone ) // Loading failed.
-        {
-        return ret;
-        }
-
-    TRequestStatus status;
-    server.Rendezvous( status );
-
-    if ( status != KRequestPending )
-        {
-        server.Kill( 0 ); // Abort startup.
-        server.Close();
-        return KErrGeneral;
-        }
-    else
-        {
-        server.Resume(); // Logon OK - start the server.
-        }
-        
-    User::WaitForRequest( status );
-    server.Close();
-
-    COMPONENT_TRACE( ( _L( "RHapticsBridgeClient::StartServer() - return %d" ), status.Int() ) );
-    return status.Int();    
-    }
-
-// --------------------------------------------------------------------------
-// Method for closing session to haptics server.
-// 
-// --------------------------------------------------------------------------
-//    
-void RHapticsBridgeClient::Close()    
-    {
-    RSessionBase::Close();
-    }
-
-// --------------------------------------------------------------------------
-// Getter method for server version.
-// 
-// --------------------------------------------------------------------------
-//
-TVersion RHapticsBridgeClient::ServerVersion() const 
-    {
-    return TVersion( KServerVersionMajor, 
-                     KServerVersionMinor,
-                     KServerVersionBuild );
-    }
-
-// --------------------------------------------------------------------------
-// Method for sending commands to Haptics Server.
-// 
-// --------------------------------------------------------------------------
-//    
-TInt RHapticsBridgeClient::SendBridgeBuffer( const TDesC8& aReqData, TDes8& aRetDataPckg )
-    {
-    COMPONENT_TRACE( ( _L( "RHapticsBridgeClient::SendBridgeBufferL() - Begin" ) ) );
-
-    TInt retVal( KErrDisconnected );
-    if ( iHandle )
-        {
-        TInt vibeStatus(0);
-        TPckg<TInt> vibeStatusPckg( vibeStatus );
-        retVal = SendReceive( KHWRMHapticsBridgeCommand, 
-                              TIpcArgs( &aReqData, 
-                                        &vibeStatusPckg, 
-                                        &aRetDataPckg ) );
-
-        if ( retVal == KErrNone ) 
-            {
-            TRAP( retVal, HandleOpenDeviceResponseL( aRetDataPckg ) );
-            }
-        }
-    
-    COMPONENT_TRACE( ( _L( "RHapticsBridgeClient::SendBridgeBufferL() - End (%d)" ), retVal ) );    
-    return retVal;
-    }
-
-// --------------------------------------------------------------------------
-// Method for cleaning up session to Haptics Server.
-// 
-// --------------------------------------------------------------------------
-//
-void RHapticsBridgeClient::CleanUp()
-    {
-    COMPONENT_TRACE( ( _L( "RHapticsBridgeClient::CleanUp() - Begin" ) ) );
-    if ( iHandle )
-        {
-        SendReceive ( KHWRMHapticsCleanupCommand );
-        }
-    COMPONENT_TRACE( ( _L( "RHapticsBridgeClient::CleanUp() - End" ) ) );
-    }
-
-// --------------------------------------------------------------------------
-// Method for handling Open Device responses (basically for requesting the 
-// setting of the license key).
-// 
-// --------------------------------------------------------------------------
-//
-void RHapticsBridgeClient::HandleOpenDeviceResponseL( const TDesC8& aResponse )
-    {
-    COMPONENT_TRACE( ( _L( "RHapticsBridgeClient::HandleOpenDeviceResponse() - Begin" ) ) );
-    TInt err( KErrNone );
-    if ( !iPacketizer )
-        {
-        COMPONENT_TRACE( ( _L( "RHapticsBridgeClient::HandleOpenDeviceResponse() - No Packetizer!" ) ) );
-        User::Leave( KErrGeneral );
-        }
-    else    
-        {
-        const TUint8* pRsp ( aResponse.Ptr() );
-        if ( 0x12 == pRsp[0] && 0x00 == pRsp[1] && 0x00 == pRsp[2] )
-            {
-            COMPONENT_TRACE( ( _L( "RHapticsBridgeClient::HandleOpenDeviceResponse() - OPEN DEVICE RESPONSE handling" ) ) );
-            iPacketizer->DecodeMessageL( aResponse, err );
-            if ( !err )
-                {
-                RBuf8 reqBuf;
-                err = iPacketizer->EncSetPlatformLicenseKeyReq( 
-                    iPacketizer->DeviceHandle(), reqBuf );
-                if ( !err )
-                    {
-                    TBuf8<50> dummyRetBuf;
-                    TInt dummyStatus;
-                    TPckg<TInt> dummyStatusPckg( dummyStatus );
-                    err = SendReceive( KHWRMHapticsBridgeCommand, 
-                                       TIpcArgs ( &reqBuf,
-                                                  &dummyStatusPckg, 
-                                                  &dummyRetBuf ) );
-                    COMPONENT_TRACE( ( _L( "RHapticsBridgeClient::HandleOpenDeviceResponse() - Sent set license command (%d)"), err ) );
-                    }
-                reqBuf.Close();
-                }
-            User::LeaveIfError( err );
-            }
-        }
-    COMPONENT_TRACE( ( _L( "RHapticsBridgeClient::HandleOpenDeviceResponse() - End" ) ) );
-    }
-
-
-// --------------------------------------------------------------------------
-// Method for opening haptics device. This is needed since there's possibility
-// that no other haptics client has opened the device prior to this bridge
-// connectivity. This method also call set license key, i.e., completes the
-// device opening. 
-//
-// --------------------------------------------------------------------------
-//
-TInt RHapticsBridgeClient::OpenHapticsDevice()
-    {
-    COMPONENT_TRACE( ( _L( "RHapticsBridgeClient::OpenHapticsDevice - Begin" ) ) );
-    TInt err( KErrGeneral );
-    if ( iPacketizer )
-        {
-        RBuf8 openDevReqBuf;
-        RBuf8 setLicenseReqBuf;
-        TBuf8<50> setLicenseRspBuf;
-        TInt dummyStatus;
-        TPckg<TInt> dummyStatusPckg( dummyStatus );
-        
-        err = iPacketizer->EncOpenDeviceReq( EHWRMLogicalActuatorAny,
-                                             openDevReqBuf );
-
-        COMPONENT_TRACE( ( _L( "RHapticsBridgeClient::OpenHapticsDevice - EncOpenDevice (%d)" ), err ) );
-        if ( !err )
-            {
-            TInt deviceHandle;
-            TPckg<TInt> deviceHandlePckg( deviceHandle );
-            err = SendReceive( KHWRMHapticsOpenActuatorCommand,
-                               TIpcArgs ( &openDevReqBuf, 
-                                          &deviceHandlePckg,
-                                          EHWRMLogicalActuatorAny ) );
-            COMPONENT_TRACE( ( _L( "RHapticsBridgeClient::OpenHapticsDevice - Send OpenDevice (%d)" ), err ) );
-            COMPONENT_TRACE( ( _L( "RHapticsBridgeClient::OpenHapticsDevice - Device handle = %d" ), deviceHandle ) );
-            if ( !err )
-                {
-                err = iPacketizer->EncSetPlatformLicenseKeyReq( 
-                    deviceHandle, setLicenseReqBuf );
-                COMPONENT_TRACE( ( _L( "RHapticsBridgeClient::OpenHapticsDevice - EncSetEmptyLicenseKey (%d)" ), err ) );    
-                if ( !err )
-                    {
-                    TBuf8<50> dummyRspBuf;
-                    TInt dummyStatus;
-                    TPckg<TInt> dummyStatusPckg( dummyStatus );
-                    err = SendReceive( KHWRMHapticsBridgeCommand, 
-                                       TIpcArgs ( &setLicenseReqBuf,
-                                                  &dummyStatusPckg, 
-                                                  &dummyRspBuf ) );
-                    COMPONENT_TRACE( ( _L( "RHapticsBridgeClient::OpenHapticsDevice - Send SetLicense (%d)" ), err ) );
-                    }
-                }
-            }
-
-        openDevReqBuf.Close();
-        setLicenseReqBuf.Close();
-        }
-    COMPONENT_TRACE( ( _L( "RHapticsBridgeClient::OpenHapticsDevice - End (err=%d)" ),err ) );    
-    return err;
-    }
-
-// eof
--- a/connectivitymodules/SeCon/plugins/hapticsconnplugin/src/hapticsconnplugin.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,84 +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:  Haptics OBEX connection plugin.
-*
-*/
-
-
-#include "hapticsconnplugin.h"
-#include "hapticsmsghandler.h"
-#include "hapticsconntrace.h"
-
-// -----------------------------------------------------------------------------
-// CHapticsConnPlugin::NewL()
-// Two-phase constructing
-// -----------------------------------------------------------------------------
-//
-CHapticsConnPlugin* CHapticsConnPlugin::NewL()
-    {
-    COMPONENT_TRACE( ( _L( "CHapticsConnPlugin::NewL - Begin" ) ) );
-    CHapticsConnPlugin* self = new ( ELeave ) CHapticsConnPlugin();
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop( self );
-    COMPONENT_TRACE( ( _L( "CHapticsConnPlugin::NewL - End" ) ) );
-    return( self );
-    }
-
-// -----------------------------------------------------------------------------
-// CHapticsConnPlugin::ConstructL()
-// 
-// -----------------------------------------------------------------------------
-//
-void CHapticsConnPlugin::ConstructL()
-    {
-    COMPONENT_TRACE( ( _L( "CHapticsConnPlugin::ConstructL() - Begin" ) ) );
-    iMsgHandler = CHapticsMsgHandler::NewL();
-    iMsgHandler->StartNotifier();
-    COMPONENT_TRACE( ( _L( "CHapticsConnPlugin::ConstructL() - End" )));
-    }
-
-// -----------------------------------------------------------------------------
-// CHapticsConnPlugin::~CHapticsConnPlugin()
-// Destructor
-// -----------------------------------------------------------------------------
-//
-CHapticsConnPlugin::~CHapticsConnPlugin()
-    {
-    COMPONENT_TRACE( ( _L( "CHapticsConnPlugin::~CHapticsConnPlugin() - Begin" ) ) );
-    delete iMsgHandler;
-    COMPONENT_TRACE( ( _L( "CHapticsConnPlugin::~CHapticsConnPlugin() - End" ) ) );
-    }
-
-// -----------------------------------------------------------------------------
-// CHapticsConnPlugin::CHapticsConnPlugin()
-// Constructor
-// -----------------------------------------------------------------------------
-//
-CHapticsConnPlugin::CHapticsConnPlugin()
-    {    
-    }
-
-// -----------------------------------------------------------------------------
-// CHapticsConnPlugin::IsOBEXActive()
-//
-// -----------------------------------------------------------------------------
-//    
-TBool CHapticsConnPlugin::IsOBEXActive()   
-    {
-    COMPONENT_TRACE( ( _L( "CHapticsConnPlugin::IsOBEXActive" ) ));
-    return ETrue;
-    }
-
-// End of file
--- a/connectivitymodules/SeCon/plugins/hapticsconnplugin/src/hapticsconntimer.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,81 +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:  Connection shutdown timer for haptics server connection.
-*
-*/
-
-
-#include "hapticsconntimer.h"
-
-const TInt KHapticsConnectionTimeout = 30000000; // 30 sec.
-
-// ---------------------------------------------------------------------------
-// Two phased constructor.
-// ---------------------------------------------------------------------------
-//
-CHapticsConnTimer* CHapticsConnTimer::NewL( MHapticsConnectionShutdown* aCallback )
-    {
-    CHapticsConnTimer* self = new ( ELeave ) CHapticsConnTimer(aCallback);
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop( self );
-    return self;
-    }
-
-// ---------------------------------------------------------------------------
-// Destructor.
-// ---------------------------------------------------------------------------
-//
-CHapticsConnTimer::~CHapticsConnTimer()
-    {
-    }
-
-// ---------------------------------------------------------------------------
-// Activates this timer.
-// ---------------------------------------------------------------------------
-//
-void CHapticsConnTimer::Start()
-    {
-    After( KHapticsConnectionTimeout );
-    }
-
-// ---------------------------------------------------------------------------
-// Constructor of the shutdown timer.
-// ---------------------------------------------------------------------------
-//
-CHapticsConnTimer::CHapticsConnTimer( MHapticsConnectionShutdown* aCallback )
-    : CTimer( EPriorityStandard ), iCallback(aCallback)
-    {
-    CActiveScheduler::Add( this );
-    }
-
-// ---------------------------------------------------------------------------
-// Second phase construction.
-// ---------------------------------------------------------------------------
-//
-void CHapticsConnTimer::ConstructL()
-    {
-    CTimer::ConstructL();
-    }
-
-// ---------------------------------------------------------------------------
-// 
-// ---------------------------------------------------------------------------
-//
-void CHapticsConnTimer::RunL()
-    {
-    iCallback->NotifyShutdown();
-    }
-
-//  End of File  
--- a/connectivitymodules/SeCon/plugins/hapticsconnplugin/src/hapticsmsghandler.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,255 +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:  Handles messaging between file system and haptics 
-*                client interface.
-*
-*/
-
-
-#include <f32file.h> 
-#include <bautils.h> 
-#include <pathinfo.h>
-#include <hwrmhaptics.h>
-
-#include "hapticsmsghandler.h"
-#include "hapticsconntimer.h"
-#include "hapticsconntrace.h"
-
-_LIT( KVibeTonzFolder,"VibeTonz\\" );
-_LIT( KSourceFileName,"VibeTonzDataReq" );
-_LIT( KTargetFileName,"VibeTonzDataRsp" );
-
-// ---------------------------------------------------------------------------
-// CHapticsMsgHandler* CHapticsMsgHandler::NewL()
-// ---------------------------------------------------------------------------
-//
-CHapticsMsgHandler* CHapticsMsgHandler::NewL()
-    {
-    CHapticsMsgHandler* self = new (ELeave) CHapticsMsgHandler();
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop( self );
-    return self;
-    }
-
-// ---------------------------------------------------------------------------
-// Default C++ constructor
-// ---------------------------------------------------------------------------
-//
-CHapticsMsgHandler::CHapticsMsgHandler () : CActive( EPriorityStandard )
-    {
-    }    
-
-// ---------------------------------------------------------------------------
-// void CHapticsMsgHandler::ConstructL()
-// ---------------------------------------------------------------------------
-//
-void CHapticsMsgHandler::ConstructL()
-    {
-    COMPONENT_TRACE( ( _L( "CHapticsMsgHandler::ConstructL - Begin") ) );    
-    CActiveScheduler::Add( this );
-    ConnectToFilesystemL();
-    iConnectionTimeout = CHapticsConnTimer::NewL(this);
-    COMPONENT_TRACE( ( _L( "CHapticsMsgHandler::ConstructL - End") ) );
-    }
-
-// ---------------------------------------------------------------------------
-// CHapticsMsgHandler::~CHapticsMsgHandler()
-// ---------------------------------------------------------------------------
-//
-CHapticsMsgHandler::~CHapticsMsgHandler()
-    {    
-    Cancel();
-
-    if ( iConnectionTimeout )
-        {
-        iConnectionTimeout->Cancel();
-        delete iConnectionTimeout;
-        }
-
-    delete iReqBuf;
-        
-    iClient.Close();
-    iFs.Close();
-    }
-
-// ---------------------------------------------------------------------------
-// void ClearRequestFile()
-// ---------------------------------------------------------------------------
-//   
-void CHapticsMsgHandler::ClearRequestFile()
-	{
-	COMPONENT_TRACE( ( _L( "CHapticsMsgHandler::ClearRequestFile - Begin") ) );
-	
-    TFindFile findDataFile( iFs );
-    
-    TFileName sourcefile = PathInfo::PhoneMemoryRootPath();
-    sourcefile.Append( PathInfo::OthersPath() );
-    sourcefile.Append( KVibeTonzFolder );
-    sourcefile.Append( KSourceFileName );
-    
-    if( findDataFile.FindByDir( sourcefile, KNullDesC ) == KErrNone )
-    	{
-    	COMPONENT_TRACE( _L("CHapticsMsgHandler::ClearRequestFile - Deleting REQ file") );
-    	iFs.Delete( KSourceFileName ); 
-    	}
-    COMPONENT_TRACE( ( _L( "CHapticsMsgHandler::ClearRequestFile - End") ) );    	
-	}
-// ---------------------------------------------------------------------------
-// void ConnectToFilesystem()
-// ---------------------------------------------------------------------------
-//    
-void CHapticsMsgHandler::ConnectToFilesystemL()
-    {
-    COMPONENT_TRACE( ( _L( "CHapticsMsgHandler::ConnectToFilesystemL - Begin") ) );
-    User::LeaveIfError( iFs.Connect() );
-    
-    TFileName sessionPath = PathInfo::PhoneMemoryRootPath();
-    sessionPath.Append( PathInfo::OthersPath() );
-    sessionPath.Append( KVibeTonzFolder );
-    TBool folderExists = BaflUtils::FolderExists( iFs, sessionPath );
-    
-    if( folderExists )
-        {
-        User::LeaveIfError( iFs.SetSessionPath( sessionPath ) );
-        ClearRequestFile();
-        }
-    else
-        {
-        User::LeaveIfError( iFs.MkDir( sessionPath ) );
-        User::LeaveIfError( iFs.SetSessionPath( sessionPath ) );
-        }
-    COMPONENT_TRACE( ( _L( "CHapticsMsgHandler::ConnectToFilesystemL - End") ) );
-    }    
-
-// ---------------------------------------------------------------------------
-// CHapticsMsgHandler::StartNotifier()
-// ---------------------------------------------------------------------------
-//
-void CHapticsMsgHandler::StartNotifier()
-	{
-	COMPONENT_TRACE( ( _L( "CHapticsMsgHandler::StartNotifier - Begin" ) ) );
-    if ( !IsActive() )
-        {
-        TFileName sessionPath = PathInfo::PhoneMemoryRootPath();
-        sessionPath.Append( PathInfo::OthersPath() );
-        sessionPath.Append( KVibeTonzFolder );        
-        iFs.NotifyChange( ENotifyAll, iStatus, sessionPath );
-        SetActive();
-	    COMPONENT_TRACE( ( _L( "CHapticsMsgHandler::StartNotifier - Started" ) ) );        
-        }
-    COMPONENT_TRACE( ( _L( "CHapticsMsgHandler::StartNotifier - End" ) ) );
-    }
-
-// ---------------------------------------------------------------------------
-// CHapticsMsgHandler::RunL()
-// ---------------------------------------------------------------------------
-//
-void CHapticsMsgHandler::RunL()
-    {
-    COMPONENT_TRACE( ( _L( "CHapticsMsgHandler::RunL - Begin" ) ) );
-
-    StartNotifier(); // re-subscribe for change notifications.
-
-    TFindFile findDataFile(iFs); 
-    TFileName sourcefileName = PathInfo::PhoneMemoryRootPath();
-    sourcefileName.Append( PathInfo::OthersPath() );
-    sourcefileName.Append( KVibeTonzFolder );
-    sourcefileName.Append( KSourceFileName ); 
-          
-    if( findDataFile.FindByDir( sourcefileName, KNullDesC ) == KErrNone )
-        {
-        COMPONENT_TRACE( ( _L("CHapticsMsgHandler::RunL - found request file") ) );
-        
-        RFile sourceFile;
-		TInt sourceFileSize;
-
-		User::LeaveIfError( sourceFile.Open( iFs, sourcefileName, EFileShareAny )  );
-		CleanupClosePushL( sourceFile );
-		sourceFile.Size( sourceFileSize );
-		
-		iReqBuf = HBufC8::NewL( sourceFileSize );
-		TPtr8 reqBufPtr = iReqBuf->Des();		
-		sourceFile.Read( reqBufPtr );
-		CleanupStack::PopAndDestroy( &sourceFile );
-			
-		ClearRequestFile();
-
-        DATADUMP_TRACE( _L("CHapticsMsgHandler::RunL - request data dump:"), reqBufPtr );
-
-        if ( !iClient.Handle() )
-            {
-            User::LeaveIfError( iClient.Connect() );
-            }
-
-		TBuf8<256> retData;	
-		TInt bridgeErr = iClient.SendBridgeBuffer( reqBufPtr, retData );
-					
-	    delete iReqBuf;
-	    iReqBuf = NULL;
-	    
-		if ( bridgeErr == KErrNone )
-			{		
-            iConnectionTimeout->Cancel();
-            iConnectionTimeout->Start();
-            			
-			DATADUMP_TRACE( _L("CHapticsMsgHandler::RunL - response data dump:"), retData );
-            RFile targetFile;
-			targetFile.Replace( iFs, KTargetFileName, EFileWrite );
-			targetFile.Write( retData );
-        	targetFile.Close();
-        	}
-        }      
-    COMPONENT_TRACE( ( _L( "CHapticsMsgHandler::RunL - End" ) ) );
-    }
-
-// -----------------------------------------------------------------------------
-//
-//
-// -----------------------------------------------------------------------------
-//
-TInt CHapticsMsgHandler::RunError( TInt aError )
-    {
-    COMPONENT_TRACE( ( _L( "CHapticsMsgHandler::RunError: %d" ), aError ) );
-    return aError;
-    }
-
-// -----------------------------------------------------------------------------
-//
-//
-// -----------------------------------------------------------------------------
-//
-void CHapticsMsgHandler::DoCancel()
-    {
-    COMPONENT_TRACE( ( _L( "Inside CHapticsMsgHandler::DoCancel" ) ) );
-    if ( IsActive() )
-        {
-        iFs.NotifyChangeCancel( iStatus );
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CHapticsConnPlugin::CHapticsConnPlugin()
-// Constructor
-// -----------------------------------------------------------------------------
-//
-void CHapticsMsgHandler::NotifyShutdown()
-    {
-    COMPONENT_TRACE( ( _L( "CHapticsMsgHandler::NotifyShutdown - Begin" ) ) );
-    iClient.CleanUp();
-    iClient.Close(); 
-    COMPONENT_TRACE( ( _L( "CHapticsMsgHandler::NotifyShutdown - End" ) ) );    
-    } 
-	
-// end of file
--- a/connectivitymodules/SeCon/plugins/hapticsconnplugin/src/proxy.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +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 proxy for haptics connection plugin.
-*
-*/
-
-
-#include <e32std.h>
-#include <ecom/implementationproxy.h>
-
-#include "hapticsconnplugin.h"
-
-// Map the interface UIDs to implementation factory functions
-const TImplementationProxy ImplementationTable[] = 
-	{
-		IMPLEMENTATION_PROXY_ENTRY( 0x2001FE53,	CHapticsConnPlugin::NewL )
-	};
-
-// Exported proxy for instantiation method resolution
-EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount)
-	{
-	aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
-
-	return ImplementationTable;
-	}
-	
-// End of file
-
-
--- a/connectivitymodules/SeCon/plugins/pcconn/bld/bld.inf	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-/*
-* Copyright (c) 2005-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:  PC Connectivity Plug-in build information file.
-*
-*/
-
-
-PRJ_PLATFORMS  
-DEFAULT
-
-PRJ_MMPFILES
-sconpcconnplugin.mmp
--- a/connectivitymodules/SeCon/plugins/pcconn/bld/def/bwinscwu.def	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-EXPORTS
-	?ImplementationGroupProxy@@YAPBUTImplementationProxy@@AAH@Z @ 1 NONAME ; struct TImplementationProxy const * ImplementationGroupProxy(int &)
-
--- a/connectivitymodules/SeCon/plugins/pcconn/bld/def/eabiu.def	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-EXPORTS
-	_Z24ImplementationGroupProxyRi @ 1 NONAME
-	_ZTI17CSConPCConnplugin @ 2 NONAME ; #<TI>#
-	_ZTV17CSConPCConnplugin @ 3 NONAME ; #<VT>#
-
--- a/connectivitymodules/SeCon/plugins/pcconn/bld/sconpcconnplugin.mmp	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,64 +0,0 @@
-/*
-* Copyright (c) 2005-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:  PC Connectivity Plug-in MMP file
-*
-*/
-
-
-// To get the MW_LAYER_SYSTEMINCLUDE-definition
-#include <platform_paths.hrh>
-#include <data_caging_paths.hrh>
-
-VENDORID        VID_DEFAULT
-
-CAPABILITY      CAP_ECOM_PLUGIN
-
-TARGET          sconpcconnplugin.dll
-TARGETTYPE      PLUGIN
-
-UID             0x10009D8D 0x101F9688
-
-SOURCEPATH     	../src
-
-SOURCE          sconpcconnplugin.cpp
-SOURCE          proxy.cpp
-SOURCE          sconpcconnpluginutils.cpp
-SOURCE          sconservicetimer.cpp
-SOURCE          sconshutdownwatcher.cpp
-
-START RESOURCE 101f9688.rss
-  TARGET        sconpcconnplugin.rsc
-END
-
-// Default system include paths for middleware layer modules.
-MW_LAYER_SYSTEMINCLUDE
-
-USERINCLUDE     ../inc
-USERINCLUDE     ../../../inc 
-USERINCLUDE     ../../../clients/pcconn/inc
-USERINCLUDE     ../../../servers/pcconn/inc
-USERINCLUDE     ../../../services/ftp/inc 
-USERINCLUDE     ../../../catalogspcconnectivityplugin/inc 
-
-DEBUGLIBRARY    flogger.lib
-LIBRARY         sconpcconnclient.lib
-LIBRARY         euser.lib
-LIBRARY         irobex.lib 
-LIBRARY         ecom.lib			
-LIBRARY         efsrv.lib 
-LIBRARY         bafl.lib
-LIBRARY         catalogspcconnectivityplugin.lib
-LIBRARY         apmime.lib 
-LIBRARY         bluetooth.lib
-LIBRARY         esock.lib 
--- a/connectivitymodules/SeCon/plugins/pcconn/inc/sconpcconnplugin.h	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,234 +0,0 @@
-/*
-* Copyright (c) 2005-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:  PC Connectivity plugin header file
-*
-*/
-
-#ifndef _SCONPCCONNPLUGIN_H
-#define _SCONPCCONNPLUGIN_H
-
-#include <obexserver.h>
-#include <SrcsInterface.h>
-#include <apmstd.h>
-
-#include "sconpcconnclient.h"
-#include "sconshutdownwatcher.h"
-
-// forward declaration
-class CSConFTP;
-class CSConServiceTimer;
-class CCatalogsPCConnectivityPlugin;
-
-
-
-class CSConPCConnplugin : public CSrcsInterface, public MObexServerNotify,
-                          public MShutdownObserver
-    {
-    public:
-        static CSConPCConnplugin* NewL();
-        virtual ~CSConPCConnplugin();
-
-        /**
-         * Returns active status of OBEX session
-         * @return ETrue if session is active, else EFalse
-         */
-        TBool IsOBEXActive();
-        
-        /**
-         * Device is shutting down, abort connection.
-         */
-        void NotifyShutdown();
-
-    private:
-        /**
-         * Loads sconftp.dll module
-         * @return none
-         */
-        void LoadFTPDllL();
-        /**
-         * Closes initialized services
-         * @return none
-         */
-        void Disconnect();
-        /**
-         * Removes spaces and nulls from the end of the string
-         * @param aDes String to be formatted
-         * @return none
-         */
-        void TrimRightSpaceAndNull( TDes8& aDes ) const;
-        /**
-         * Current used transfer media (IR,USB,BT)
-         * @param aMediaType Enumeration indicating the media type
-         * @return none
-         */
-        void SetMediaType( TSrcsMediaType aMediaType );
-        /**
-         * MObexServerNotify implementation
-         * @param aError Error code
-         * @return none
-         */
-        void ErrorIndication( TInt aError );
-        /**
-         * MObexServerNotify implementation
-         * @return none
-         */
-        void TransportUpIndication();
-        /**
-         * MObexServerNotify implementation
-         * @return none
-         */
-        void TransportDownIndication();
-        /**
-         * MObexServerNotify implementation
-         * @param aRemoteInfo Structure containing information used during OBEX
-         * connection
-         * @param aInfo Further information about the requested connection
-         * @return System wide error code that indicates the success of the connection
-         */
-        TInt ObexConnectIndication( const TObexConnectInfo& aRemoteInfo,
-                                    const TDesC8& aInfo );
-        /**
-         * MObexServerNotify implementation
-         * @param aInfo Contains information about the disconnection
-         * @return none
-         */
-        void ObexDisconnectIndication( const TDesC8& aInfo );
-        /**
-         * MObexServerNotify implementation
-         * @return CObexBaseObject-derived object, which the object being put
-         * will be parsed into.
-         */
-        CObexBufObject* PutRequestIndication();
-        /**
-         * MObexServerNotify implementation
-         * @return System wide error code that indicates the success of the
-         * PUT packet operation.
-         */
-        TInt PutPacketIndication();
-        /**
-         * MObexServerNotify implementation
-         * @return System wide error code that indicates the success of the
-         * PUT packet operation.
-         */
-        TInt PutCompleteIndication();
-        /**
-         * MObexServerNotify implementation
-         * @param aRequiredObject Details about the object the remote client
-         * has requested
-         * @returnObject to return to the client
-         */
-        CObexBufObject* GetRequestIndication( CObexBaseObject
-                                                *aRequiredObject );
-        /**
-         * MObexServerNotify implementation
-         * @return System wide error code that indicates the success of the
-         * GET packet operation.
-         */
-        TInt GetPacketIndication();
-        /**
-         * MObexServerNotify implementation
-         * @return System wide error code that indicates the success of the
-         * GET packet operation.
-         */
-        TInt GetCompleteIndication();
-        /**
-         * MObexServerNotify implementation
-         * @param aPathInfo SETPATH command parameters
-         * @param aInfo Not currently used
-         * @return System wide error code indicating the success of the
-         * setpath command.
-         */
-        TInt SetPathIndication( const CObex::TSetPathInfo& aPathInfo,
-                                const TDesC8& aInfo );
-        /**
-         * SetObexServer
-         * @param aObexServer pass obex server pointer to sevice controller
-         * @return System wide error code.
-         */
-        TInt SetObexServer( CObexServer* aObexServer );
-        /**
-         * MObexServerNotify implementation
-         * @return none
-         */
-        void AbortIndication();
-        /**
-         * Checks if mime type belongs to Catalogs
-         * @return TBool
-         */
-        TBool IsCatalogsMimeType( TDataType aMime );
-
-        void ConstructL();
-        CSConPCConnplugin();
-        
-        /**
-         * Handles PCD object. Used for advanced file handling.
-         * @param aDescriptionHeader Contains command code and destination filename
-         * @param aNameHeader Source filename
-         * @return System wide error code.
-         */
-        TInt HandlePCDObjectPut( const TDesC& aDescriptionHeader, const TDesC& aNameHeader );
-        
-        /**
-         * Get Capbility object or ConML message from PCConnServer
-         * @param aNameHeader Name information.
-         * @param aTypeHeader Object type header. ConML or Capability object type
-         * @return none
-         */
-        void HandleGetPCConnObjectL( const TDesC& aNameHeader, const TDesC8& aTypeHeader );
-        
-        /**
-         * Get Catalogs object
-         * @param aTypeHeader Object type header.
-         * @return none
-         */
-        void HandleGetCatalogsObjectL( const TDesC8& aTypeHeader );
-        
-        /**
-         * Get file object
-         * @param aNameHeader requested filename.
-         * @return none
-         */
-        void HandleGetFileObjectL( const TDesC& aNameHeader );
-        
-    private:
-        RLibrary                    iFTPlib;
-        CObexBufObject*             iObject;
-        CBufFlat*                   iBuffer;
-        CSConFTP*                   iFTPHandler;
-        TInt                        iPutError;
-        TBool                       iSessionActive;
-        CSConServiceTimer*          iServiceTimer;
-        TBool                       iStartTimer;
-        TSrcsMediaType              iMediaType;
-        CObexFileObject*            iFileObject;
-        RSConPCConnSession          iPCConnSession;
-        TBool                       iPCConnSessionConnected;
-        CCatalogsPCConnectivityPlugin*  iCatalogs;
-        TBool                           iCatalogsConnected;
-        HBufC8*                         iCatalogsMimeType;
-        RPointerArray<TDataType>        iMimeArray;
-        TBool                           iCatalogsMimeTypesExist;
-        TBool                       iPutPacketIndicationCalled;
-        CShutdownWatcher*           iShutdownWatcher;
-        TBool                       iShutdownInProgress;
-        CObexServer*                iObexServer;
-        RSocketServ                 iSocketServer;
-        RBTPhysicalLinkAdapter      iLinkAdapter;
-    private:
-        // Friend class is used,because existing impelentation has been working
-        // properly. Avoiding re-design.
-        friend class CSConServiceTimer;
-    };
-
-#endif // SCONPCCONNPLUGIN_H
\ No newline at end of file
--- a/connectivitymodules/SeCon/plugins/pcconn/inc/sconpcconnpluginutils.h	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,53 +0,0 @@
-/*
-* Copyright (c) 2005-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:  PC Connectivity Plug-in Utils header
-*
-*/
-
-
-#ifndef _SCONPCCONNPLUGINUTILS_H
-#define _SCONPCCONNPLUGINUTILS_H
-
-#include <e32base.h>
-//============================================================
-// Class TPCConnpluginUtils declaration
-//============================================================
-class TPCConnpluginUtils
-	{
-	public:
-		/**
-		 * Converts Symbian error code to OBEX error code
-		 * @param aError The error code
-		 * @return The converted error code
-		 */
-		static TInt ConvertPCDResponseCode( TInt aError );
-		/**
-		 * Converts Symbian error code to OBEX error code
-		 * @param aError The error code
-		 * @return The converted error code
-		 */
-		static TInt ConvertFTPResponseCode( TInt aError );
-		
-		/**
-		 * Converts Symbian error code to OBEX error code
-		 * @param aError The error code
-		 * @return The converted error code
-		 */
-		static TInt ConvertObexMoveResponseCode( TInt aError );
-	};
-	
-#endif //_SCONPCCONNPLUGINUTILS_H
-
-// End of file
-
--- a/connectivitymodules/SeCon/plugins/pcconn/inc/sconservicetimer.h	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,61 +0,0 @@
-/*
-* Copyright (c) 2005-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:  PC Connectivity Plug-in Service Timer Header file
-*
-*/
-
-
-#ifndef _SCONSERVICETIMER_H
-#define _SCONSERVICETIMER_H
-
-#include <e32base.h>
-
-class CSConPCConnplugin;
-
-
-//============================================================
-// Class CSConServiceTimer declaration
-//============================================================
-
-NONSHARABLE_CLASS ( CSConServiceTimer ) : public CActive
-	{
-	public:
-		CSConServiceTimer( CSConPCConnplugin* aEngine, TInt aValue );
-		void ConstructL();
-		~CSConServiceTimer();
-		
-		/**
-	 	* Starts the timer
-		* @return none
-	 	*/
-		void StartTimer();
-		/**
-		 * Stops the timer
-		 * @return none
-		 */
-		void StopTimer();
-	
-	private:
-		void DoCancel();
-		void RunL();
-		
-	private:
-		RTimer 				iTimer;
-		CSConPCConnplugin* 	iEngine;
-		TInt 				iValue;
-	};
-	
-#endif //_SCONSERVICETIMER_H
-
-// End of file
--- a/connectivitymodules/SeCon/plugins/pcconn/inc/sconshutdownwatcher.h	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,66 +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:  Power shutdown -watcher header file
-*
-*/
-
-
-#ifndef _SCONSHUTDOWNWATCHER_H
-#define _SCONSHUTDOWNWATCHER_H
-
-
-#include <e32base.h>
-#include <e32property.h>
-
-//============================================================
-// Class MShutdownObserver declaration
-//============================================================
-class MShutdownObserver
-    {
-public:
-    virtual void NotifyShutdown()=0;
-    };
-
-//============================================================
-// Class CShutdownWatcher declaration
-//============================================================
-NONSHARABLE_CLASS (  CShutdownWatcher ) : public CActive
-    {
-    public:
-        static CShutdownWatcher* NewL( MShutdownObserver* aObserver );
-        ~CShutdownWatcher();
-
-        /**
-         * Starts to watch shutdown status
-         * @return none
-         */
-        void StartShutdownWatcher();
-
-    private:
-        //construct/destruct
-        CShutdownWatcher( MShutdownObserver* aObserver );
-        void ConstructL();
-
-        // from CActive
-        void DoCancel();
-        void RunL();
-
-    private:
-        MShutdownObserver*   iObserver; 
-        RProperty            iProperty;
-    };
-
-#endif //_SCONSHUTDOWNWATCHER_H
-
-// End of file
\ No newline at end of file
--- a/connectivitymodules/SeCon/plugins/pcconn/src/101f9688.rss	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,68 +0,0 @@
-/*
-* Copyright (c) 2005-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:  PC Connectivity Plug-in resource file
-*
-*/
-
-
-#include "ecom/registryinfo.rh"
-
-// Declares info for two implementations
-RESOURCE REGISTRY_INFO theInfo
-	{
-	// UID for the DLL
-	dll_uid = 0x101F9688;
-	// Declare array of interface info
-	interfaces = 
-		{
-		INTERFACE_INFO
-			{
-			// UID of interface that is implemented
-			interface_uid = 0x101F7C8C;
-			implementations = 
-				{
-				// Info for CSConPCConnplugin
-				IMPLEMENTATION_INFO
-					{
-					implementation_uid = 0x101F9689;
-					version_no = 1;
-					display_name = "PC Suite Services";
-					default_data = "OBEX/USB||OBEX/BT||OBEX/IrDA";
-					
-					// 
-					// opaque_data contains parameters used by following API calls in SRCS:
-					// 1. Setup USB interface string descriptor in Unicode;
-					// 2. TInt CObex::SetLocalWho(const TDesC8& aInfo);
-					// 3. TInt CBTConnection::RegisterSecuritySettingsL( TUint aService,
-					//						 TInt  aProtocol,
-					//						 TInt  aChannel,
-					//						 TBool aAuthenticate,
-					//						 TBool aAuthorise,
-					//						 TBool aEncrypt );
-					// opaque_data = "@0||@1||@2||@3||@4||@5||@6"
-					// @0 aStrDesc		e.g. "PC Connectivity"
-					// @1 aInfo			e.g. KFolderBrowsingID, "\xF9\xEC\x7B\xC4\x95\x3C\x11\xd2\x98\x4E\x52\x54\x00\xDC\x9E\x09"
-					// @2 aService		e.g. KBTSecurityUidFileTransfer, 0x1106
-					// @3 aProtocol		e.g. KSolBtRFCOMM, 0x1013
-					// @4 aAuthenticate	e.g. EFalse, 0
-					// @5 aAuthorise	e.g. EFalse, 0
-					// @6 aEncrypt		e.g. EFalse, 0
-					//
-					opaque_data = "PC Suite Services||\xF9\xEC\x7B\xC4\x95\x3C\x11\xd2\x98\x4E\x52\x54\x00\xDC\x9E\x09||0x000050050000100080000002EE000001||0x1013||1||1||1||0xffff||0xffff";
-					}
-				};
-			}
-		};
-	}
-
--- a/connectivitymodules/SeCon/plugins/pcconn/src/proxy.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
-/*
-* Copyright (c) 2005-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:  PC Connectivity Plug-in proxy implementation
-*
-*/
-
-
-
-#include <e32std.h>
-#include <ecom/implementationproxy.h>
-
-#include "sconpcconnplugin.h"
-
-// Map the interface UIDs to implementation factory functions
-const TImplementationProxy ImplementationTable[] = 
-	{
-		IMPLEMENTATION_PROXY_ENTRY(0x101F9689,	CSConPCConnplugin::NewL)
-	};
-
-// Exported proxy for instantiation method resolution
-EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount)
-	{
-	aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
-
-	return ImplementationTable;
-	}
-	
-// End of file
-
-
--- a/connectivitymodules/SeCon/plugins/pcconn/src/sconpcconnplugin.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1254 +0,0 @@
-/*
-* Copyright (c) 2005-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:  PC Connectivity Plug-in implementation
-*
-*/
-
-
-// INCLUDE FILES
-
-#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
-#include <obexconstantsinternal.h>
-#endif
-#include "sconpcconnplugin.h"
-#include "sconftp.h"
-#include "sconpcconnpluginutils.h"
-#include "sconservicetimer.h"
-#include "catalogspcconnectivityplugin.h"
-#include "debug.h"
-
-
-// CONSTANTS
-_LIT(KSConFTPLibName, "sconftp.dll");
-const TInt KSConFTPUidValue = 0x10009D8D;
-const TUid KSConFTPUid = {KSConFTPUidValue};
-
-// Folder listing type from IrObex specification
-_LIT8( KSConFolderListType, "x-obex/folder-listing" );
-// Folder listing type from IrObex specification
-_LIT8( KSConCapabilityObjectType, "x-obex/capability" );
-// PCD types
-_LIT8( KSConPCDObjectType, "application/vnd.nokia.pcd" );
-_LIT8( KSConPCDXMLObjectType, "application/vnd.nokia.conml+xml" );
-_LIT8( KSConPCDWBXMLObjectType, "application/vnd.nokia.conml+wbxml" );
-_LIT8( KSConPCDXMLObjectType2, "application/vnd.nokia.pcd+xml" );
-_LIT8( KSConPCDWBXMLObjectType2, "application/vnd.nokia.pcd+wbxml" );
-_LIT( K_C_ROOT, "C:\\" );
-
-// PCD header commands
-const TInt KSCon_PCD_TAG = 0x003A;
-const TInt KSCon_PCD_CMD_COPY = 0x0037;
-const TInt KSCon_PCD_CMD_MOVE_OR_RENAME = 0x0038;
-const TInt KSCon_PCD_CMD_SET_PERMISSION = 0x0039;
-// PCD header parameters
-const TInt KSCon_PCD_PAR_FULL_PERMISSION = 0x0040;
-const TInt KSCon_PCD_PAR_READ_ONLY_PERMISSION = 0x0041;
-
-
-const TInt KSConBufSize = 262144; // 256KB
-// Time (in milliseconds) for the timer
-const TInt KSConTimeOutValue =  180000000;
-// Flags used to indicate SetPath commands
-const TInt KSConNULLSetPath =   0x00;
-
-const TInt KSConHeaderMaxLength = 256;
-
-// ============================= MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CSConPCConnplugin::NewL()
-// Two-phase constructing
-// -----------------------------------------------------------------------------
-//
-CSConPCConnplugin* CSConPCConnplugin::NewL()
-    {
-    TRACE_FUNC_ENTRY;
-    CSConPCConnplugin* self = new ( ELeave ) CSConPCConnplugin();
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop( self );
-    TRACE_FUNC_EXIT;
-    return( self );
-    }
-
-// -----------------------------------------------------------------------------
-// CSConPCConnplugin::~CSConPCConnplugin()
-// Destructor
-// -----------------------------------------------------------------------------
-//
-CSConPCConnplugin::~CSConPCConnplugin()
-    {
-    TRACE_FUNC_ENTRY;
-    
-    // Disconnect from services.
-    Disconnect();
-    
-    delete iBuffer;
-    iBuffer = NULL;
-    
-    if ( iServiceTimer )
-        {
-        iServiceTimer->Cancel();
-        }
-    
-    delete iServiceTimer;
-    iServiceTimer = NULL;
-    
-    delete iCatalogs;
-    iCatalogs = NULL;
-    delete iCatalogsMimeType;
-    iCatalogsMimeType = NULL;
-    
-    iMimeArray.Reset();
-    iMimeArray.Close();
-    
-    delete iShutdownWatcher;
-    iShutdownWatcher = NULL;
-    
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConPCConnplugin::IsOBEXActive()
-// Returns active status of OBEX session
-// -----------------------------------------------------------------------------
-//
-TBool CSConPCConnplugin::IsOBEXActive()
-    {
-    TRACE_FUNC;
-    return iSessionActive;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConPCConnplugin::NotifyShutdown()
-// System is shutting down
-// -----------------------------------------------------------------------------
-//
-void CSConPCConnplugin::NotifyShutdown()
-    {
-    TRACE_FUNC;
-    iShutdownInProgress = ETrue;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConPCConnplugin::LoadFTPDllL()
-// Loads sconftp.dll module
-// -----------------------------------------------------------------------------
-//
-void CSConPCConnplugin::LoadFTPDllL()
-    {
-    TRACE_FUNC_ENTRY;
-    // Dynamically load DLL
-    User::LeaveIfError( iFTPlib.Load( KSConFTPLibName ) );
-    if ( iFTPlib.Type()[1] != KSConFTPUid )
-        {
-        LOGGER_WRITE( "KSConFTPUidValue incorrect" );
-        iFTPlib.Close();
-        User::Leave( KErrNotFound );
-        }
-    TSConCreateCSConFTPFunc CreateCSConFTPL =
-    (TSConCreateCSConFTPFunc)iFTPlib.Lookup(1);
-    iFTPHandler = (CSConFTP*)CreateCSConFTPL();
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConPCConnplugin::Disconnect()
-// Closes initialized services
-// -----------------------------------------------------------------------------
-//
-void CSConPCConnplugin::Disconnect()
-    {
-    TRACE_FUNC_ENTRY;
-    
-    iLinkAdapter.Close();
-    iSocketServer.Close();
-    
-    //Disconnect from server
-    iPCConnSession.Close();
-    iPCConnSessionConnected = EFalse;
-    
-    if ( iStartTimer != EFalse )
-        {
-        iServiceTimer->Cancel();
-        iServiceTimer->StartTimer();
-        }
-    
-    delete iObject;
-    iObject = NULL;
-    
-    if ( iFTPHandler )
-        {
-        delete iFTPHandler;
-        iFTPHandler = NULL;
-        iFTPlib.Close();
-        }
-    if ( iFileObject )
-        {
-        delete iFileObject;
-        iFileObject = NULL;
-        }
-    if ( iCatalogsConnected )
-        {
-        iCatalogs->Close();
-        iCatalogsConnected = EFalse;
-        iCatalogsMimeTypesExist = EFalse;
-        }
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConPCConnplugin::ErrorIndication( TInt aError )
-// MObexServerNotify implementation
-// -----------------------------------------------------------------------------
-//
-void CSConPCConnplugin::ErrorIndication( TInt aError )
-    {
-    TRACE_FUNC_ENTRY;
-    LOGGER_WRITE_1( "aError : %d", aError );
-
-    if ( iFTPHandler )
-        {
-        iFTPHandler->AbortFileTransfer( iObject );
-        }
-
-    if ( iObject )
-        {
-        delete iObject;
-        iObject = NULL;
-        }
-    
-    if ( iFileObject )
-        {
-        iFileObject->Reset();
-        delete iFileObject;
-        iFileObject = NULL;
-        }
-    
-    if ( iPCConnSessionConnected )
-        {
-        iPCConnSession.ResetServer();
-        }
-    
-    // Keep compiler happy
-    (void)aError;
-    
-    delete iShutdownWatcher;
-    iShutdownWatcher = NULL;
-    
-    if ( iLinkAdapter.IsOpen() )
-        {
-        // Cancel ActivateActiveRequester & allow going to low power mode
-        TInt err = iLinkAdapter.CancelLowPowerModeRequester();
-        LOGGER_WRITE_1( "iLinkAdapter.CancelLowPowerModeRequester() err: %d", err );
-        }
-
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConPCConnplugin::AbortIndication()
-// MObexServerNotify implementation
-// -----------------------------------------------------------------------------
-//
-void CSConPCConnplugin::AbortIndication()
-    {
-    TRACE_FUNC_ENTRY;
-
-    if ( iFTPHandler )
-        {
-        iFTPHandler->AbortFileTransfer( iObject );
-        }
-
-    if ( iObject )
-        {
-        delete iObject;
-        iObject = NULL;
-        }
-    
-    if ( iFileObject )
-        {
-        iFileObject->Reset();
-        delete iFileObject;
-        iFileObject = NULL;
-        }
-    
-    if ( iPCConnSessionConnected )
-        {
-        iPCConnSession.ResetServer();
-        }
-    
-    delete iShutdownWatcher;
-    iShutdownWatcher = NULL;
-    
-    if ( iLinkAdapter.IsOpen() )
-        {
-        // Cancel ActivateActiveRequester & allow going to low power mode
-        TInt err = iLinkAdapter.CancelLowPowerModeRequester();
-        LOGGER_WRITE_1( "iLinkAdapter.CancelLowPowerModeRequester() err: %d", err );
-        }
-
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConPCConnplugin::TransportUpIndication()
-// MObexServerNotify implementation
-// -----------------------------------------------------------------------------
-//
-void CSConPCConnplugin::TransportUpIndication()
-    {
-    TRACE_FUNC;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConPCConnplugin::ObexConnectIndication( const TObexConnectInfo&
-// aRemoteInfo, const TDesC8& aInfo )
-// MObexServerNotify implementation
-// -----------------------------------------------------------------------------
-//
-TInt CSConPCConnplugin::ObexConnectIndication( const TObexConnectInfo&
-                                    /*aRemoteInfo*/, const TDesC8& /*aInfo*/ )
-    {
-    TRACE_FUNC_ENTRY;
-    TInt err( KErrNone );
-    TInt catalogsErr( KErrNone );
-    iStartTimer = ETrue;
-    
-    if ( iMediaType == ESrcsMediaBT && iObexServer )
-        {
-        TSockAddr remoteAddr;
-        iObexServer->RemoteAddr( remoteAddr );
-        
-        TBTSockAddr btSockAddr( remoteAddr );
-        TBTDevAddr devAddr = btSockAddr.BTAddr();
-        
-        err = iSocketServer.Connect();
-        LOGGER_WRITE_1("iSocketServer.Connect err: %d", err );
-        if ( !err )
-            {
-            err = iLinkAdapter.Open( iSocketServer, devAddr );
-            LOGGER_WRITE_1("iLinkAdapter.Open err: %d", err );
-            }
-        // Ignore all BT link errors
-        err = KErrNone;
-        }
-    
-    //Connect to server
-    if ( !iPCConnSessionConnected )
-        {
-        LOGGER_WRITE("Try to connect to iPCConnSession");
-        err = iPCConnSession.Connect();
-        LOGGER_WRITE_1( "iPCConnSession.Connect returned : %d", err );
-        if ( err == KErrNone )
-            {
-            iPCConnSessionConnected = ETrue;
-            }
-        }
-    
-    if ( err == KErrNone && !iFTPHandler )
-        {
-        TRAP( err, LoadFTPDllL() );
-        LOGGER_WRITE_1( "LoadFTPDllL returned : %d", err );
-        }
-    
-    if ( err == KErrNone )
-        {
-        iFTPHandler->SetProfile( EProprietary );
-        LOGGER_WRITE( "iServiceTimer->StopTimer()" );
-        iServiceTimer->Cancel();
-        iServiceTimer->StopTimer();
-        }
-
-    if ( !iCatalogsConnected )
-        {
-        LOGGER_WRITE( "CSConPCConnplugin::ObexConnectIndication() before iCatalogs->Connect()" );
-        catalogsErr = iCatalogs->Connect();
-        LOGGER_WRITE_1( "CSConPCConnplugin::ObexConnectIndication() iCatalogs->Connect() err: %d", catalogsErr );
-        if ( catalogsErr == KErrNone )
-            {
-            LOGGER_WRITE( "CSConPCConnplugin::ObexConnectIndication() iCatalogs->Connect() success" );
-            iCatalogsConnected = ETrue;
-            TRAPD( ret, iMimeArray = iCatalogs->SupportedMimeTypesL() );
-            if ( ret == KErrNone )
-                {
-                LOGGER_WRITE_1( "iCatalogs->SupportedMimeTypesL count: %d", iMimeArray.Count() );
-                iCatalogsMimeTypesExist = ETrue;
-                }
-            }
-        }
-    TRACE_FUNC_EXIT;
-    return TPCConnpluginUtils::ConvertFTPResponseCode( err );
-    }
-
-// -----------------------------------------------------------------------------
-// CSConPCConnplugin::ObexDisconnectIndication( const TDesC8& )
-// MObexServerNotify implementation
-// -----------------------------------------------------------------------------
-//
-void CSConPCConnplugin::ObexDisconnectIndication( const TDesC8& )
-    {
-    TRACE_FUNC_ENTRY;
-    Disconnect();
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConPCConnplugin::TransportDownIndication()
-// MObexServerNotify implementation
-// -----------------------------------------------------------------------------
-//
-void CSConPCConnplugin::TransportDownIndication()
-    {
-    TRACE_FUNC_ENTRY;
-    Disconnect();
-    if ( iBuffer )
-        {
-        iBuffer->Reset();
-        }
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConPCConnplugin::PutRequestIndication()
-// MObexServerNotify implementation
-// -----------------------------------------------------------------------------
-//
-CObexBufObject* CSConPCConnplugin::PutRequestIndication()
-    {
-    TRACE_FUNC_ENTRY;
-    TInt ret( KErrNone );
-    TInt err( KErrNone );
-    iPutError = KErrNone;
-
-    if ( iBuffer )
-        {
-        iBuffer->Reset();
-        }
-
-    if ( iObject )
-        {
-        delete iObject;
-        iObject = NULL;
-        }
-
-    TRAP( err, iObject = CObexBufObject::NewL ( iBuffer ) );
-
-    if ( err != KErrNone )
-        {
-        return NULL;
-        }
-
-    if ( !iFTPHandler )
-        {
-        LOGGER_WRITE( "Creating iFTPHandler has failed" );
-        return NULL;
-        }
-
-    TRAP( err, ret = iFTPHandler->PutFileObjectInitL( iObject, iBuffer ) );
-
-    if ( err != KErrNone )
-        {
-        LOGGER_WRITE_1( "iFTPHandler->PutFileObjectInitL() leaves: %d", err );
-        return NULL;
-        }
-    if ( ret != KErrNone )
-        {
-        LOGGER_WRITE_1( "PutFileObjectInitL failed - returning error in next PutPacketIndication : %d", ret );
-        iPutError = ret;
-        }
-    iPutPacketIndicationCalled = EFalse;
-    
-    if ( !iShutdownWatcher )
-        {
-        TRAP( err, iShutdownWatcher = CShutdownWatcher::NewL( this ) );
-        if ( err == KErrNone )
-            {
-            iShutdownWatcher->StartShutdownWatcher();
-            }
-        else
-            {
-            LOGGER_WRITE_1( "CShutdownWatcher::NewL leaves: %d", err );
-            }
-        }
-    
-    if ( iLinkAdapter.IsOpen() )
-        {
-        // request active BT mode (high power mode)
-        err = iLinkAdapter.ActivateActiveRequester();
-        LOGGER_WRITE_1( "iLinkAdapter.ActivateActiveRequester() err: %d", err );
-        }
-    
-    TRACE_FUNC_EXIT;
-    return( iObject );
-    }
-
-// -----------------------------------------------------------------------------
-// CSConPCConnplugin::PutPacketIndication()
-// MObexServerNotify implementation
-// -----------------------------------------------------------------------------
-//
-TInt CSConPCConnplugin::PutPacketIndication()
-    {
-    TRACE_FUNC_ENTRY;
-    TInt ret( KErrNone );
-
-    TBool catalogsMime( EFalse );
-    if ( iObject->Type().Length() > KSConHeaderMaxLength )
-        {
-        LOGGER_WRITE("TypeHeader too big, return KErrNotSupported");
-        return TPCConnpluginUtils::ConvertFTPResponseCode( KErrNotSupported );
-        }
-    TBuf8<KSConHeaderMaxLength> typeHeader( iObject->Type() );
-    TrimRightSpaceAndNull( typeHeader );
-    
-    if ( iCatalogsConnected && IsCatalogsMimeType( TDataType( typeHeader ) ) )
-        {
-        catalogsMime = ETrue;
-        }
-
-    if ( (TInt)iObject->Length() > 0 
-        && typeHeader != KSConPCDWBXMLObjectType
-        && typeHeader != KSConPCDWBXMLObjectType2
-        && !catalogsMime
-        && typeHeader != KSConPCDObjectType )
-        {
-        // normal file transfer
-        if ( !iPutPacketIndicationCalled )
-            {
-            // This is first check, need to check only once
-                   
-            TFileName path;
-            iFTPHandler->GetPath( path );
-            if ( path.CompareF( K_C_ROOT ) == 0 )
-                {
-                // path forbidden
-                ret = KErrAccessDenied;
-                }
-            else
-                {
-                if ( iPutError != KErrNone )
-                    {
-                    ret = iPutError;
-                    LOGGER_WRITE_1( "CSConPCConnplugin::PutPacketIndication() : PutError : %d", iPutError );
-                    }
-                else
-                    {
-                    // check required free space
-                    // if filesize is small ( <65k ) it fits into one package and its already saved to filesystem.
-                    // if file is larger, need to check is there enought free space in device.
-                    
-                    const TUint32  filesize = iObject->Length();
-                    LOGGER_WRITE_1( "CSConPCConnplugin::PutPacketIndication() filesize %d", filesize );
-                    LOGGER_WRITE_1( "CSConPCConnplugin::PutPacketIndication() iObject->BytesReceived() %d", iObject->BytesReceived() );
-                    if ( filesize > iObject->BytesReceived() )
-                        {
-                        LOGGER_WRITE( "CSConPCConnplugin::PutPacketIndication() : check freespace" );
-                        // file does not fit into one obex packet, check is there enought free space in current drive
-                        if ( iFTPHandler->IsCurrentDiskSpaceBelowCritical( filesize ) )
-                            {
-                            LOGGER_WRITE( "CSConPCConnplugin::PutPacketIndication() : returning KErrNoMemory" );
-                            ret = KErrNoMemory;
-                            }
-                        }
-                    }
-                }
-            }
-        
-        if ( iShutdownInProgress )
-            {
-            LOGGER_WRITE( "ShutdownInProgress, abort" );
-            ret = KErrDisconnected;
-            }
-        }
-    
-    if ( !iPutPacketIndicationCalled )
-        {
-        // Need to check only once
-        iPutPacketIndicationCalled = ETrue;
-        
-        //Check if filename is too long.
-        TFileName path;
-        iFTPHandler->GetPath( path );
-        if ( ret == KErrNone && path.Length() + iObject->Name().Length() > KMaxFileName )
-            {
-            LOGGER_WRITE_1( "Name length overflow! : %d", path.Length() + iObject->Name().Length() );
-            ret = KErrBadName;
-            }
-        }
-    
-    if ( ret != KErrNone )
-        {
-        if ( iFTPHandler )
-            {
-            iFTPHandler->AbortFileTransfer( iObject );
-            }
-        
-        delete iObject;
-        iObject = NULL;
-        
-        if ( iLinkAdapter.IsOpen() )
-            {
-            // Cancel ActivateActiveRequester & allow going to low power mode
-            TInt err = iLinkAdapter.CancelLowPowerModeRequester();
-            LOGGER_WRITE_1( "iLinkAdapter.CancelLowPowerModeRequester() err: %d", err );
-            }
-        }
-    
-    LOGGER_WRITE_1( "CSConPCConnplugin::PutPacketIndication(): ret %d", ret );
-    return TPCConnpluginUtils::ConvertFTPResponseCode( ret );
-    }
-
-// -----------------------------------------------------------------------------
-// CSConPCConnplugin::PutCompleteIndication()
-// MObexServerNotify implementation
-// -----------------------------------------------------------------------------
-//
-TInt CSConPCConnplugin::PutCompleteIndication()
-    {
-    TRACE_FUNC_ENTRY;
-    TInt ret( KErrNone );
-    TInt err( KErrNone );
-    
-    if ( iLinkAdapter.IsOpen() )
-        {
-        // Cancel ActivateActiveRequester & allow going to low power mode
-        TInt err2 = iLinkAdapter.CancelLowPowerModeRequester();
-        LOGGER_WRITE_1( "iLinkAdapter.CancelLowPowerModeRequester() err: %d", err2 );
-        }
-    
-    if ( iObject->Type().Length() > KSConHeaderMaxLength )
-        {
-        LOGGER_WRITE("TypeHeader too big, return KErrNotSupported");
-        delete iObject;
-        iObject = NULL;
-                
-        iFTPHandler->DeleteTempFile();
-        return TPCConnpluginUtils::ConvertPCDResponseCode( KErrNotSupported );
-        }
-    if ( iObject->Name().Length() > KSConHeaderMaxLength )
-        {
-        LOGGER_WRITE("NameHeader too big, return KErrNotSupported");
-        delete iObject;
-        iObject = NULL;
-                
-        iFTPHandler->DeleteTempFile();
-        return TPCConnpluginUtils::ConvertPCDResponseCode( KErrNotSupported );
-        }
-    
-    // check if ConML signal is received
-    TBuf8<KSConHeaderMaxLength> typeHeader( iObject->Type() );
-    TBuf<KSConHeaderMaxLength> nameHeader( iObject->Name() );
-    TrimRightSpaceAndNull( typeHeader );
-    LOGGER_WRITE8_1("type: %S", &typeHeader);
-    LOGGER_WRITE_1("name: %S", &nameHeader);
-    LOGGER_WRITE_1("description: %S", &iObject->Description());
-    TInt size = iObject->BytesReceived();
-    TTime time = iObject->Time();
-    
-    // shutdownWatcher is not needed anymore
-    delete iShutdownWatcher;
-    iShutdownWatcher = NULL;
-    
-    if ( IsCatalogsMimeType( TDataType( typeHeader ) ) )
-        {
-        if ( iCatalogsConnected )
-            {
-            LOGGER_WRITE( "iCatalogs->PutDataL" );
-            TRAP( err, iCatalogs->PutDataL( typeHeader, *iBuffer ) );
-            LOGGER_WRITE_1( "iCatalogs->PutDataL : %d", err );
-            if ( err == KErrServerTerminated )
-                {
-                err = iCatalogs->Connect();
-                LOGGER_WRITE_1( "CSConPCConnplugin::PutCompleteIndication() iCatalogs->Connect() err: %d", err );
-                if ( err == KErrNone )
-                    {
-                    LOGGER_WRITE( "iCatalogs->PutDataL" );
-                    TRAP( err, iCatalogs->PutDataL( typeHeader, *iBuffer ) );
-                    LOGGER_WRITE_1( "iCatalogs->PutDataL : %d", err );
-                    }
-                }
-            }
-        else
-            {
-            LOGGER_WRITE( "Catalogs mime type recognised - failing due no connection" );
-            err = KErrNotSupported;
-            }
-        
-        delete iObject;
-        iObject = NULL;
-        
-        iFTPHandler->DeleteTempFile();
-        return TPCConnpluginUtils::ConvertPCDResponseCode( err );
-        }
-
-    if ( typeHeader == KSConPCDObjectType )
-        {
-        LOGGER_WRITE( "CSConPCConnplugin::PutCompleteIndication KSConPCDObjectType" );
-        err = HandlePCDObjectPut( iObject->Description(), iObject->Name() );
-        delete iObject;
-        iObject = NULL;
-        
-        iFTPHandler->DeleteTempFile();
-        LOGGER_WRITE_1( "CSConPCConnplugin::PutCompleteIndication() end, err: %d", err );
-        return TPCConnpluginUtils::ConvertObexMoveResponseCode( err );
-        }
-
-    if ( typeHeader != KSConPCDWBXMLObjectType &&
-        typeHeader != KSConPCDWBXMLObjectType2 )
-        {
-        TObexHeaderMask validHdrs = iObject->ValidHeaders();
-        if ( ( validHdrs & KObexHdrBody ) || ( validHdrs & KObexHdrEndOfBody ) )
-            {
-            LOGGER_WRITE( "CSConPCConnplugin::PutCompleteIndication() normal filetransfer" );
-            LOGGER_WRITE_1( "Number of received bytes : %d", size );
-            TSConUsedMedia media( ESConNoMedia );
-            
-            switch( iMediaType )
-                {
-                case ESrcsMediaBT :
-                    media = ESConBTMedia;
-                    break;
-                case ESrcsMediaIrDA :
-                    media = ESConIRMedia;
-                    break;
-                case ESrcsMediaUSB :
-                    media = ESConUSBMedia;
-                    break;
-                default :
-                    media = ESConNoMedia;
-                    break;
-                }
-            
-            iFTPHandler->SetUsedMedia( media );
-            
-            TRAP( ret, err = iFTPHandler->PutFileObjectFinalizeL( iObject ) );
-            LOGGER_WRITE_1( "PutFileObjectL() returned : %d", ret );
-            }
-        else
-            {
-            LOGGER_WRITE( "Delete starts" );
-            TRAP( ret, err = iFTPHandler->DeleteObjectL( iObject->Name() ) );
-            LOGGER_WRITE_1( "DeleteObjectL() returned : %d", ret );
-            }
-        }
-    
-    delete iObject;
-    iObject = NULL;
-    
-    if ( typeHeader == KSConPCDWBXMLObjectType ||
-        typeHeader == KSConPCDWBXMLObjectType2 )
-        {
-        LOGGER_WRITE( "CSConPCConnplugin::PutCompleteIndication() ReadWBXMLDataL" );
-        TRAP( ret, err = iFTPHandler->ReadWBXMLDataL( iBuffer ) );
-        
-        if ( err == KErrNone && ret == KErrNone )
-            {
-            TRAP( ret, err = iPCConnSession.PutPacketL( nameHeader,
-            typeHeader, iBuffer ) );
-            LOGGER_WRITE_1( "iPCConnSession.PutPacketL() leaveCode : %d", ret );
-            LOGGER_WRITE_1( "iPCConnSession.PutPacketL() returned : %d", err );
-            }
-        
-        iFTPHandler->DeleteTempFile();
-        
-        return TPCConnpluginUtils::ConvertPCDResponseCode( err );
-        }
-    
-    iFTPHandler->DeleteTempFile();
-    
-    TRACE_FUNC_EXIT;
-    if ( ret != KErrNone )
-        {
-        return TPCConnpluginUtils::ConvertFTPResponseCode( ret );
-        }
-    return TPCConnpluginUtils::ConvertFTPResponseCode( err );
-    }
-
-// -----------------------------------------------------------------------------
-// CSConPCConnplugin::GetRequestIndication( CObexBaseObject* aRequiredObject )
-// MObexServerNotify implementation
-// -----------------------------------------------------------------------------
-//
-CObexBufObject* CSConPCConnplugin::GetRequestIndication( CObexBaseObject*
-                                                        aRequiredObject )
-    {
-    TRACE_FUNC_ENTRY;
-    CObexBufObject* bufObject(NULL);
-    if ( aRequiredObject->Type().Length() > KSConHeaderMaxLength )
-        {
-        LOGGER_WRITE("TypeHeader too big");
-        return NULL;
-        }
-    if ( aRequiredObject->Name().Length() > KMaxFileName )
-        {
-        LOGGER_WRITE("NameHeader is too long");
-        return NULL;
-        }
-    TInt ret( KErrNone );
-    TInt err( KErrNone );
-    TBuf8<KSConHeaderMaxLength> typeHeader( aRequiredObject->Type() );
-    TrimRightSpaceAndNull( typeHeader );
-    LOGGER_WRITE8_1("type: %S", &typeHeader);
-    LOGGER_WRITE_1("name: %S", &aRequiredObject->Name());
-
-    iBuffer->Reset();
-    
-    delete iObject;
-    iObject = NULL;
-    
-    TRAP( err, iObject = CObexBufObject::NewL ( iBuffer ) );
-    if ( err != KErrNone )
-        {
-        return NULL;
-        }
-    
-    // Client requests folder listing
-    if ( typeHeader == KSConFolderListType )
-        {
-        LOGGER_WRITE( "Client requests folder listning" );
-        if ( !iFTPHandler )
-            {
-            LOGGER_WRITE( "Creating iFTPHandler has failed" );
-            return NULL;
-            }
-
-        TRAP( err, ret = iFTPHandler->GetFolderObjectL( iObject ) );
-        LOGGER_WRITE_1( "iFTPHandler->GetFolderObjectL() returned: %d", ret );
-        if ( err == KErrNone && ret == KErrNone )
-            {
-            bufObject = iObject;
-            }
-        else
-            {
-            return NULL;
-            }
-        }
-    // Client requests capability object or ConML packet
-    else if ( typeHeader == KSConCapabilityObjectType
-            || typeHeader == KSConPCDWBXMLObjectType
-            || typeHeader == KSConPCDWBXMLObjectType2)
-        {
-        LOGGER_WRITE( "Client requests capability object or ConML packet" );
-        // HandleGetPCConnObjectL will set some data to iObject, or leaves if error occurs
-        TRAP( err, HandleGetPCConnObjectL( aRequiredObject->Name(), typeHeader ) );
-        
-        if ( err == KErrNone )
-            {
-            bufObject = iObject;
-            }
-        else
-            {
-            LOGGER_WRITE_1("Get PCConn object failed, err: %d", err);
-            return NULL;
-            }
-        }
-    // Client requests file conversion
-    else if ( typeHeader == KSConPCDObjectType )
-        {
-        LOGGER_WRITE("request of KSConPCDObjectType is not supported.")
-        return NULL;
-        }
-    // catalogs
-    else if ( IsCatalogsMimeType( TDataType( typeHeader ) ) )
-        {
-        TRAP( err, HandleGetCatalogsObjectL( typeHeader ) );
-        if ( err == KErrNone )
-            {
-            bufObject = iObject;
-            }
-        else
-            {
-            LOGGER_WRITE_1("Get catalogs object failed, err: %d", err);
-            return NULL;
-            }
-        }
-    // Client requests file
-    else
-        {
-        LOGGER_WRITE( "Client requests file" );
-        TRAP( err, HandleGetFileObjectL( aRequiredObject->Name() ) );
-        if ( err == KErrNone )
-            {
-            bufObject = (CObexBufObject*)iFileObject;
-            }
-        else
-            {
-            LOGGER_WRITE_1("Get file object failed, err: %d", err);
-            return NULL;
-            }
-        }
-    if ( bufObject && iLinkAdapter.IsOpen() )
-        {
-        // request active BT mode (high power mode)
-        err = iLinkAdapter.ActivateActiveRequester();
-        LOGGER_WRITE_1( "iLinkAdapter.ActivateActiveRequester() err: %d", err );
-        }
-    return bufObject;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConPCConnplugin::GetPacketIndication()
-// MObexServerNotify implementation
-// -----------------------------------------------------------------------------
-//
-TInt CSConPCConnplugin::GetPacketIndication()
-    {
-    TRACE_FUNC;
-    return KErrNone;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConPCConnplugin::GetCompleteIndication()
-// MObexServerNotify implementation
-// -----------------------------------------------------------------------------
-//
-TInt CSConPCConnplugin::GetCompleteIndication()
-    {
-    TRACE_FUNC_ENTRY;
-    if ( iLinkAdapter.IsOpen() )
-        {
-        // Cancel ActivateActiveRequester & allow going to low power mode
-        TInt err = iLinkAdapter.CancelLowPowerModeRequester();
-        LOGGER_WRITE_1( "iLinkAdapter.CancelLowPowerModeRequester() err: %d", err );
-        }
-    
-    TInt ret( KErrNone );
-    if ( iFileObject )
-        {
-        iFileObject->Reset();
-        delete iFileObject;
-        iFileObject = NULL;
-        }
-
-    LOGGER_WRITE_1( "CSConPCConnplugin::GetCompleteIndication() : returned %d", ret );
-    return ret;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConPCConnplugin::SetPathIndication( const CObex::TSetPathInfo& aPathInfo,
-// const TDesC8& aInfo )
-// MObexServerNotify implementation
-// -----------------------------------------------------------------------------
-//
-TInt CSConPCConnplugin::SetPathIndication( const CObex::TSetPathInfo& aPathInfo,
-                                            const TDesC8& /*aInfo*/ )
-    {
-    TRACE_FUNC_ENTRY;
-    TInt ret( KErrNone );
-    TInt err( KErrNone );
-    
-    if ( !iFTPHandler )
-        {
-        LOGGER_WRITE( "Creating iFTPHandler has failed" );
-        return TPCConnpluginUtils::ConvertFTPResponseCode( KErrNoMemory );
-        }
-    
-    if ( aPathInfo.iFlags == KSConNULLSetPath )
-        {
-        TRAP( err, ret = this->iFTPHandler->CreateFolderL( aPathInfo.iName ) );
-        }
-    else
-        {
-        TRAP( err, ret = this->iFTPHandler->SetPathL( aPathInfo.iName,
-        aPathInfo.iFlags ) );
-        }
-    
-    if ( err != KErrNone )
-        {
-        LOGGER_WRITE_1( "CSConPCConnplugin::SetPathIndication : returned   %d", err );
-        return TPCConnpluginUtils::ConvertFTPResponseCode( err );
-        }
-    LOGGER_WRITE_1( "CSConPCConnplugin::SetPathIndication : returned %d", ret );
-    return TPCConnpluginUtils::ConvertFTPResponseCode( ret );
-    }
-
-// -----------------------------------------------------------------------------
-// CSConPCConnplugin::TrimRightSpaceAndNull( TDes8& aDes ) const
-// Removes spaces and nulls from the end of the string
-// -----------------------------------------------------------------------------
-//
-void CSConPCConnplugin::TrimRightSpaceAndNull( TDes8& aDes ) const
-    {
-    TRACE_FUNC;
-    aDes.TrimRight();
-    if ( aDes.Length() > 0 )
-        {
-        if ( !aDes[aDes.Length() - 1] )
-            {
-            aDes.SetLength( aDes.Length() - 1 );
-            }
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CSConPCConnplugin::SetMediaType( TSrcsMediaType aMediaType )
-// Current used transfer media (IR,USB,BT)
-// -----------------------------------------------------------------------------
-//
-void CSConPCConnplugin::SetMediaType( TSrcsMediaType aMediaType )
-    {
-    TRACE_FUNC;
-    iMediaType = aMediaType;
-    }
-// -----------------------------------------------------------------------------
-// CSConPCConnplugin::TBool IsCatalogsMimeType( TDataType aMime )
-// Checks if mime type belogs to Catalogs
-// -----------------------------------------------------------------------------
-//
-TBool CSConPCConnplugin::IsCatalogsMimeType( TDataType aMime )
-    {
-    TRACE_FUNC_ENTRY;
-    TBool result = EFalse;
-
-    if ( !iCatalogsConnected
-        && aMime.Des8() != KSConPCDObjectType
-        && aMime.Des8() != KSConPCDXMLObjectType
-        && aMime.Des8() != KSConPCDWBXMLObjectType
-        && aMime.Des8() != KSConPCDXMLObjectType2
-        && aMime.Des8() != KSConPCDWBXMLObjectType2
-        )
-        {
-        // Catalogs never connected and not secon mime type
-        // Try to connect to catalogs to get catalogstypes
-        TInt catalogsErr = iCatalogs->Connect();
-        LOGGER_WRITE_1( "CSConPCConnplugin::IsCatalogsMimeType() iCatalogs->Connect() err: %d", catalogsErr );
-        if ( catalogsErr == KErrNone )
-            {
-            LOGGER_WRITE( "CSConPCConnplugin::IsCatalogsMimeType() iCatalogs->Connect() success" );
-            iCatalogsConnected = ETrue;
-            TRAPD( ret, iMimeArray = iCatalogs->SupportedMimeTypesL() );
-            if ( ret == KErrNone )
-                {
-                LOGGER_WRITE_1( "iCatalogs->SupportedMimeTypesL count: %d", iMimeArray.Count() );
-                iCatalogsMimeTypesExist = ETrue;
-                }
-            }
-        }
-
-    if ( iCatalogsMimeTypesExist )
-        {
-        // Compare to supported values
-        for ( TInt j = 0; j < iMimeArray.Count(); j++ )
-            {
-            if ( (*iMimeArray[j]) == aMime )
-                {
-                LOGGER_WRITE( "CSConPCConnplugin::IsCatalogsMimeTypeL returns TRUE" );
-                result = ETrue;
-                break;
-                }
-            }
-        }
-    TRACE_FUNC_EXIT;
-    return result;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConPCConnplugin::CSConPCConnplugin()
-// Default constructor
-// -----------------------------------------------------------------------------
-//
-CSConPCConnplugin::CSConPCConnplugin()
-    {
-    TRACE_FUNC;
-    iBuffer = NULL;
-    iObject = NULL;
-    iFileObject = NULL;
-    iSessionActive = EFalse;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConPCConnplugin::ConstructL()
-// Initializes member data
-// -----------------------------------------------------------------------------
-//
-void CSConPCConnplugin::ConstructL()
-    {
-    TRACE_FUNC_ENTRY;
-    iBuffer = CBufFlat::NewL( KSConBufSize );
-    iObject = CObexBufObject::NewL ( iBuffer );
-    iServiceTimer = new (ELeave) CSConServiceTimer( this, KSConTimeOutValue );
-    iServiceTimer->ConstructL();
-    CActiveScheduler::Add( iServiceTimer );
-    
-    // catalogs
-    iCatalogs = CCatalogsPCConnectivityPlugin::NewL();
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConPCConnplugin::SetObexServer( CObexServer* aObexServer )
-// SetObexServer
-// -----------------------------------------------------------------------------
-//
-TInt CSConPCConnplugin::SetObexServer( CObexServer* aObexServer )
-    {
-    iObexServer = aObexServer;
-    TInt ret = iObexServer->Start(this);
-    LOGGER_WRITE_1( "CSConPCConnplugin::SetObexServer() ret: %d", ret );
-    return ret;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConPCConnplugin::HandlePCDObjectPut
-// Handles PCD object. Used for advanced file handling.
-// -----------------------------------------------------------------------------
-//
-TInt CSConPCConnplugin::HandlePCDObjectPut( const TDesC& aDescriptionHeader,
-        const TDesC& aNameHeader )
-    {
-    TRACE_FUNC_ENTRY;
-    TInt err( KErrNotSupported);
-    if ( aDescriptionHeader.Length() >= 3 )
-        {
-        TInt commandTag = aDescriptionHeader[0];
-        TInt commandID = aDescriptionHeader[1];
-        TInt commandParam1 = aDescriptionHeader[2];
-
-        TPtrC destination;
-        if ( aDescriptionHeader.Length() >= 3 )
-            {
-            destination.Set( aDescriptionHeader.Mid(3) );
-            }
-        TPtrC source;
-        if ( aNameHeader.Length() >= 1 )
-            {
-            // remove ":" character from beginning
-            source.Set( aNameHeader.Mid(1) );
-            }
-
-        if ( commandTag == KSCon_PCD_TAG )
-            {
-            LOGGER_WRITE( "CSConPCConnplugin::HandlePCDObjectPut KSCon_PCD_TAG found" );
-            switch (commandID)
-                {
-                case KSCon_PCD_CMD_COPY:
-                    err = iFTPHandler->CopyFile( source, destination );
-                    break;
-
-                case KSCon_PCD_CMD_MOVE_OR_RENAME:
-                    err = iFTPHandler->MoveFile( source, destination );
-                    break;
-
-                case KSCon_PCD_CMD_SET_PERMISSION:
-                    if ( commandParam1 == KSCon_PCD_PAR_FULL_PERMISSION )
-                        {
-                        err = iFTPHandler->SetReadOnly( source, EFalse );
-                        }
-                    else if ( commandParam1 == KSCon_PCD_PAR_READ_ONLY_PERMISSION )
-                        {
-                        err = iFTPHandler->SetReadOnly( source, ETrue );
-                        }
-                    else
-                        {
-                        err = KErrNotSupported;
-                        }
-                    break;
-
-                default:
-                    LOGGER_WRITE( "CSConPCConnplugin::HandlePCDObjectPut unknown commandID" );
-                    err = KErrNotSupported;
-                    break;
-                }
-
-            }
-
-        }
-    TRACE_FUNC_EXIT;
-    return err;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConPCConnplugin::HandleGetPCConnObjectL
-// Get Capbility object or ConML message from PCConnServer
-// -----------------------------------------------------------------------------
-//
-void CSConPCConnplugin::HandleGetPCConnObjectL( const TDesC& aNameHeader,
-        const TDesC8& aTypeHeader )
-    {
-    TRACE_FUNC_ENTRY;
-    if ( !iPCConnSessionConnected )
-        {
-        LOGGER_WRITE( "ERROR, iPCConnSession was not connected" );
-        User::Leave( KErrNotReady );
-        }
-    TInt err = iPCConnSession.GetPacketL( aNameHeader, aTypeHeader, iBuffer );
-    LOGGER_WRITE_1( "iPCConnSession.GetPacketL() returned: %d", err );
-    User::LeaveIfError( err );
-    iObject->SetDataBufL( iBuffer );
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConPCConnplugin::HandleGetCatalogsObjectL
-// Get Catalogs object
-// -----------------------------------------------------------------------------
-//
-void CSConPCConnplugin::HandleGetCatalogsObjectL( const TDesC8& aTypeHeader )
-    {
-    TRACE_FUNC_ENTRY;
-    TInt err(KErrNone);
-    if ( !iCatalogsConnected )
-        {
-        LOGGER_WRITE( "catalogs mime type recognised - failing due to no connection" );
-        User::Leave( KErrNotReady );
-        }
-    else
-        {
-        LOGGER_WRITE( "iCatalogs->GetDataL" );
-        TDataType mime( aTypeHeader );
-        TRAP( err, iCatalogs->GetDataL( mime, *iBuffer ) );
-        LOGGER_WRITE_1( "iCatalogs->GetDataL : %d", err );
-        if ( err == KErrServerTerminated )
-            {
-            // server was terminated, try to reconnect
-            err = iCatalogs->Connect();
-            LOGGER_WRITE_1( "iCatalogs->Connect() err: %d", err );
-            User::LeaveIfError( err );
-            LOGGER_WRITE( "iCatalogs->GetDataL" );
-            iCatalogs->GetDataL( mime, *iBuffer );
-            }
-        }
-    User::LeaveIfError( err );
-    iObject->SetDataBufL( iBuffer );
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConPCConnplugin::HandleGetFileObjectL
-// Get file object
-// -----------------------------------------------------------------------------
-//
-void CSConPCConnplugin::HandleGetFileObjectL( const TDesC& aNameHeader )
-    {
-    TRACE_FUNC_ENTRY;
-    delete iFileObject;
-    iFileObject = NULL;
-    iFileObject = CObexFileObject::NewL();
-    
-    iFileObject->Reset();
-    iFileObject->SetNameL( aNameHeader );
-
-    if ( !iFTPHandler )
-        {
-        LOGGER_WRITE( "Creating iFTPHandler has failed" );
-        User::Leave( KErrNotReady );
-        }
-
-    TInt err = iFTPHandler->GetFileObjectL( iFileObject );
-    User::LeaveIfError( err );
-    TRACE_FUNC_EXIT;
-    }
-
-// End of file
--- a/connectivitymodules/SeCon/plugins/pcconn/src/sconpcconnpluginutils.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,274 +0,0 @@
-/*
-* Copyright (c) 2005-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:  PC Connectivity Plug-in Utils implementation
-*
-*/
-
-
-// INCLUDE FILES
-#include <obexconstants.h>
-#include "sconpcconnpluginutils.h"
-#include "debug.h"
-
-// ============================= MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// TPCConnpluginUtils::ConvertFTPResponseCode( TInt aError )
-// Converts Symbian error code to OBEX error code
-// -----------------------------------------------------------------------------
-//
-TInt TPCConnpluginUtils::ConvertFTPResponseCode( TInt aError )
-	{
-	LOGGER_WRITE_1( "TPCConnpluginUtils::ConvertFTPResponseCode( TInt aError )\
-	 : begin, aError: %d", aError );
-	TInt obexErr ( KErrIrObexRespBadRequest );
-	switch( aError )
-		{
-		case KErrNone:
-			obexErr = KErrNone;
-			break;
-		case KErrNotFound:
-			obexErr = KErrIrObexRespNotFound;
-			break;
-		case KErrGeneral:
-		case KErrCancel:
-			obexErr = KErrIrObexRespBadRequest;
-			break;
-		case KErrNoMemory:
-			obexErr = KErrIrObexRespDatabaseFull;
-			break;
-		case KErrNotSupported:
-			obexErr = KErrIrObexRespNotImplemented;
-			break;
-		case KErrArgument:
-		case KErrTotalLossOfPrecision:
-		case KErrBadHandle:
-		case KErrOverflow:
-		case KErrUnderflow:
-		case KErrAlreadyExists:
-			obexErr = KErrIrObexRespConflict;
-			break;
-		case KErrPathNotFound:
-		case KErrDied:
-			obexErr = KErrIrObexRespNotFound;
-			break;
-		case KErrInUse:
-			obexErr = KErrIrObexRespTimedOut;
-			break;
-		case KErrServerTerminated:
-			obexErr = KErrIrObexRespNotFound;
-			break;
-		case KErrServerBusy:
-		case KErrCompletion:
-		case KErrNotReady:
-		case KErrUnknown:
-		case KErrCorrupt:
-			obexErr = KErrIrObexRespForbidden;
-			break;
-		case KErrAccessDenied:
-		case KErrLocked:
-			obexErr = KErrIrObexRespUnauthorized;
-			break;
-		case KErrWrite:
-		case KErrDisMounted:
-		case KErrEof:
-			obexErr = KErrIrObexRespForbidden;
-			break;
-		case KErrDiskFull:
-			obexErr = KErrIrObexRespDatabaseFull;
-			break;
-		case KErrBadDriver:
-		case KErrBadName:
-			obexErr = KErrIrObexRespPreCondFailed;
-			break;
-		case KErrCommsLineFail:
-		case KErrCommsFrame:
-		case KErrCommsOverrun:
-		case KErrCommsParity:
-		case KErrTimedOut:
-		case KErrCouldNotConnect:
-		case KErrCouldNotDisconnect:
-		case KErrBadLibraryEntryPoint:
-		case KErrBadDescriptor:
-		case KErrAbort:
-			obexErr = KErrIrObexRespForbidden;
-			break;
-		case KErrTooBig:
-			obexErr = KErrIrObexRespReqEntityTooLarge;
-			break;
-		case KErrDivideByZero:
-		case KErrBadPower:
-		case KErrDirFull:
-		case KErrHardwareNotAvailable:
-			obexErr = KErrIrObexRespForbidden;
-			break;
-		case KErrDisconnected: // System is shutting down
-		    obexErr = KErrIrObexRespMethodNotAllowed;
-		    break;
-		default:
-			obexErr = KErrIrObexRespBadRequest;
-			break;
-		};
-	LOGGER_WRITE_1( "TPCConnpluginUtils::ConvertFTPResponseCode( \
-	TInt aError ) returned : %d", obexErr );
-	return obexErr;
-};
-
-// -----------------------------------------------------------------------------
-// TPCConnpluginUtils::ConvertPCDResponseCode( TInt aError )
-// Converts Symbian error code to OBEX error code
-// -----------------------------------------------------------------------------
-//
-TInt TPCConnpluginUtils::ConvertPCDResponseCode( TInt aError )
-	{
-	LOGGER_WRITE_1( "TPCConnpluginUtils::ConvertPCDResponseCode( TInt \
-	aError ) : begin, aError: %d", aError );
-	
-	TInt obexErr ( KErrIrObexRespInternalError );
-	switch( aError )
-		{
-		case KErrNone:
-			obexErr = KErrNone;
-			break;
-		case KErrNotFound:
-			obexErr = KErrIrObexRespNotFound;
-			break;
-		case KErrGeneral:
-		case KErrCancel:
-			obexErr = KErrIrObexRespInternalError;
-			break;
-		case KErrNoMemory:
-			obexErr = KErrIrObexRespDatabaseFull;
-			break;
-		case KErrNotSupported:
-			obexErr = KErrIrObexRespUnsupMediaType;
-			break;
-		case KErrArgument:
-		case KErrTotalLossOfPrecision:
-		case KErrBadHandle:
-		case KErrOverflow:
-		case KErrUnderflow:
-			obexErr = KErrIrObexRespPreCondFailed;
-			break;
-		case KErrAlreadyExists:
-			obexErr = KErrIrObexRespConflict;
-			break;
-		case KErrPathNotFound:
-		case KErrDied:
-		case KErrInUse:
-			obexErr = KErrIrObexRespTimedOut;
-			break;
-		case KErrServerTerminated:
-			obexErr = KErrIrObexRespPreCondFailed;
-			break;
-		case KErrServerBusy:
-			obexErr = KErrIrObexRespConflict;
-			break;
-		case KErrCompletion:
-		case KErrNotReady:
-		case KErrUnknown:
-		case KErrCorrupt:
-			obexErr = KErrIrObexRespInternalError;
-			break;
-		case KErrAccessDenied:
-		case KErrLocked:
-			obexErr = KErrIrObexRespUnauthorized;
-			break;
-		case KErrWrite:
-		case KErrDisMounted:
-		case KErrEof:
-			obexErr = KErrIrObexRespInternalError;
-			break;
-		case KErrDiskFull:
-			obexErr = KErrIrObexRespDatabaseFull;
-			break;
-		case KErrBadDriver:
-		case KErrBadName:
-			obexErr = KErrIrObexRespNotFound;
-			break;
-		case KErrCommsLineFail:
-		case KErrCommsFrame:
-		case KErrCommsOverrun:
-		case KErrCommsParity:
-		case KErrTimedOut:
-		case KErrCouldNotConnect:
-		case KErrCouldNotDisconnect:
-		case KErrBadLibraryEntryPoint:
-		case KErrBadDescriptor:
-		case KErrAbort:
-		case KErrTooBig:
-		case KErrDivideByZero:
-		case KErrBadPower:
-		case KErrDirFull:
-		case KErrHardwareNotAvailable:
-			obexErr = KErrIrObexRespInternalError;
-			break;
-		default:
-			obexErr = KErrIrObexRespInternalError;
-			break;
-		};
-	LOGGER_WRITE_1( "TPCConnpluginUtils::ConvertPCDResponseCode(\
-	 TInt aError ) returned : %d", obexErr );
-	return obexErr;
-};
-
-// -----------------------------------------------------------------------------
-// TPCConnpluginUtils::ConvertObexMoveResponseCode( TInt aError )
-// Converts Symbian error code to OBEX error code
-// -----------------------------------------------------------------------------
-//
-TInt TPCConnpluginUtils::ConvertObexMoveResponseCode( TInt aError )
-	{
-	LOGGER_WRITE_1( "TPCConnpluginUtils::ConvertObexMoveResponseCode( TInt \
-	aError ) : begin, aError: %d", aError );
-	
-	TInt obexErr ( KErrIrObexRespInternalError );
-	switch( aError )
-		{
-		case KErrNone:
-			obexErr = KErrIrObexRespSuccess;
-			break;
-		case KErrNotFound:
-		case KErrPathNotFound:
-			obexErr = KErrIrObexRespNotFound;
-			break;
-        case KErrAccessDenied:
-            obexErr = KErrIrObexRespForbidden;
-            break;
-        case KErrNoMemory:
-        case KErrDiskFull:
-            obexErr = KErrIrObexRespDatabaseFull;
-            break;
-        case KErrInUse:
-        case KErrLocked:
-            obexErr = KErrIrObexRespConflict;
-            break;
-        case KErrNotSupported:
-            obexErr = KErrIrObexRespNotImplemented;
-            break;
-        case KErrAlreadyExists:
-            obexErr = KErrIrObexRespNotModified;
-            break;
-		
-		default:
-			obexErr = KErrIrObexRespInternalError;
-			break;
-		};
-	LOGGER_WRITE_1( "TPCConnpluginUtils::ConvertObexMoveResponseCode(\
-	 TInt aError ) returned : %d", obexErr  );
-	return obexErr;
-};
-
-//End of file
-
--- a/connectivitymodules/SeCon/plugins/pcconn/src/sconservicetimer.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,119 +0,0 @@
-/*
-* Copyright (c) 2005-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:  PC Connectivity Plug-in Service Timer implementation
-*
-*/
-
-
-// INCLUDE FILES
-
-#include "sconservicetimer.h"
-#include "sconpcconnplugin.h"
-#include "debug.h"
-
-// ============================= MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CSConServiceTimer::CSConServiceTimer( CSConPCConnplugin* aEngine, TInt aValue )
-// Constuctor
-// -----------------------------------------------------------------------------
-//
-CSConServiceTimer::CSConServiceTimer( CSConPCConnplugin* aEngine, TInt aValue )
-	: CActive( EPriorityStandard ), iEngine( aEngine ), iValue( aValue ) {}
-
-// -----------------------------------------------------------------------------
-// CSConServiceTimer::ConstructL()
-// Initializes member data
-// -----------------------------------------------------------------------------
-//
-void CSConServiceTimer::ConstructL()
-	{
-	LOGGER_ENTERFN( "CSConServiceTimer::ConstructL()" );
-	// create a thread-relative timer
-	User::LeaveIfError( iTimer.CreateLocal() );
-	LOGGER_LEAVEFN( "CSConServiceTimer::ConstructL()" );
-	}
-
-// -----------------------------------------------------------------------------
-// CSConServiceTimer::~CSConServiceTimer()
-// Destructor
-// -----------------------------------------------------------------------------
-//
-CSConServiceTimer::~CSConServiceTimer()
-	{
-	LOGGER_ENTERFN( "CSConServiceTimer::~CSConServiceTimer()" );
-	iTimer.Close();
-	LOGGER_LEAVEFN( "CSConServiceTimer::~CSConServiceTimer()" );	
-	}
-
-// -----------------------------------------------------------------------------
-// CSConServiceTimer::~CSConServiceTimer()
-// Starts the timer
-// -----------------------------------------------------------------------------
-//
-void CSConServiceTimer::StartTimer()
-	{
-	LOGGER_ENTERFN( "CSConServiceTimer::StartTimer()" );
-	if( !IsActive() )
-		{
-		LOGGER_WRITE( "CSConServiceTimer::StartTimer() : !IsActive()" );
-		iTimer.After( iStatus, TTimeIntervalMicroSeconds32( iValue ) );
-		iEngine->iSessionActive = ETrue;
-		SetActive();
-		LOGGER_WRITE( "CSConServiceTimer::StartTimer() : SetActive()" );
-		}
-	LOGGER_LEAVEFN( "CSConServiceTimer::StartTimer()" );
-	}
-
-// -----------------------------------------------------------------------------
-// CSConServiceTimer::StopTimer()
-// StopTimer()
-// -----------------------------------------------------------------------------
-//
-void CSConServiceTimer::StopTimer()
-	{
-	LOGGER_ENTERFN( "CSConServiceTimer::StopTimer()" );
-	iEngine->iSessionActive = ETrue;	
-	LOGGER_WRITE( "CSConServiceTimer::StopTimer() : iSessionActive = ETrue" );
-	LOGGER_LEAVEFN( "CSConServiceTimer::StopTimer()" );	
-	}
-
-// -----------------------------------------------------------------------------
-// CSConServiceTimer::DoCancel()
-// Cancels the timer
-// -----------------------------------------------------------------------------
-//
-void CSConServiceTimer::DoCancel()
-	{
-	LOGGER_ENTERFN( "CSConServiceTimer::DoCancel()" );
-	iTimer.Cancel();
-	LOGGER_LEAVEFN( "CSConServiceTimer::DoCancel()" );
-	}
-
-// -----------------------------------------------------------------------------
-// CSConServiceTimer::RunL()
-// Executed when timer is triggered
-// -----------------------------------------------------------------------------
-//
-void CSConServiceTimer::RunL()
-	{
-	LOGGER_ENTERFN( "CSConServiceTimer::RunL()" );
-	iEngine->iSessionActive = EFalse;
-	LOGGER_WRITE( "CSConServiceTimer::RunL() : iSessionActive = EFalse" );
-	iEngine->iStartTimer = EFalse;
-	LOGGER_WRITE( "CSConServiceTimer::RunL() : iStartTimer = EFalse " );
-	LOGGER_LEAVEFN( "CSConServiceTimer::RunL()" );
-	}
-	
-// End of file
--- a/connectivitymodules/SeCon/plugins/pcconn/src/sconshutdownwatcher.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,153 +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:  Power shutdown -watcher implementation
-*
-*/
-
-
-// INCLUDE FILES
-
-#include "sconshutdownwatcher.h"
-#include "debug.h"
-
-#include <startupdomainpskeys.h>
-
-
-
-// ============================= MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CShutdownWatcher::NewL( MShutdownObserver* aObserver )
-// Two-phase constructor
-// -----------------------------------------------------------------------------
-//
-CShutdownWatcher* CShutdownWatcher::NewL( MShutdownObserver* aObserver )
-    {
-    LOGGER_ENTERFN( "CShutdownWatcher::NewL()" );
-    CShutdownWatcher* self = new (ELeave) CShutdownWatcher( aObserver );
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    CleanupStack::Pop(self);
-    LOGGER_LEAVEFN( "CShutdownWatcher::NewL()" );
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// CShutdownWatcher::~CShutdownWatcher()
-// Destructor
-// -----------------------------------------------------------------------------
-//
-CShutdownWatcher::~CShutdownWatcher()
-    {
-    LOGGER_ENTERFN( "CShutdownWatcher::~CShutdownWatcher()" );
-    Cancel();
-    iProperty.Close();
-    LOGGER_LEAVEFN( "CShutdownWatcher::~CShutdownWatcher()" );
-    }
-
-// -----------------------------------------------------------------------------
-// CShutdownWatcher::StartShutdownWatcher()
-// Starts to watch shutdown status
-// -----------------------------------------------------------------------------
-//
-void CShutdownWatcher::StartShutdownWatcher()
-    {
-    LOGGER_ENTERFN( "CShutdownWatcher::StartShutdownWatcher()" );
-    TInt status;
-    TInt err = iProperty.Get( KPSUidStartup, KPSGlobalSystemState, status );
-    LOGGER_WRITE_2( "CShutdownWatcher::StartShutdownWatcher() :\
-     err %d, KPSGlobalSystemState status %d",err, status);
-    if ( err == KErrNone )
-        {
-        if ( status == ESwStateShuttingDown )
-            {
-            LOGGER_WRITE( "Call NotifyShutdown" );
-            iObserver->NotifyShutdown();
-            return;
-            }
-        }
-    
-    err = iProperty.Attach( KPSUidStartup, KPSGlobalSystemState );
-    LOGGER_WRITE_1( "CShutdownWatcher::StartShutdownWatcher() :\
-     iProperty.Attach( KPSUidStartup, KPSGlobalSystemState ) : err %d", err );
-    iProperty.Subscribe( iStatus );
-    LOGGER_WRITE( "CShutdownWatcher::StartShutdownWatcher() :\
-     iProperty.Subscribe( iStatus ) : ok" );
-    SetActive();
-
-    LOGGER_LEAVEFN( "CShutdownWatcher::StartShutdownWatcher()" );
-    }
-
-// -----------------------------------------------------------------------------
-// CShutdownWatcher::DoCancel()
-// Executed when CActive is canceled.
-// -----------------------------------------------------------------------------
-//
-void CShutdownWatcher::DoCancel()
-    {
-    LOGGER_ENTERFN( "CShutdownWatcher::DoCancel()" );
-    iProperty.Cancel();
-    LOGGER_LEAVEFN( "CShutdownWatcher::DoCancel()" );
-    }
-
-// -----------------------------------------------------------------------------
-// CShutdownWatcher::RunL()
-// Executed when disk watcher is triggered
-// -----------------------------------------------------------------------------
-//
-void CShutdownWatcher::RunL()
-    {
-    LOGGER_ENTERFN( "CShutdownWatcher::RunL()" );
-    TInt status;
-    iProperty.Get( status );
-    LOGGER_WRITE_1( "CShutdownWatcher::RunL() : status %d", status );
-    
-    if ( status == ESwStateShuttingDown )
-        {
-        LOGGER_WRITE( "Call NotifyShutdown" );
-        iObserver->NotifyShutdown();
-        return;
-        }
-    
-    iProperty.Cancel();
-    iProperty.Close();
-    
-    LOGGER_LEAVEFN( "CShutdownWatcher::RunL()" );
-    }
-
-
-// -----------------------------------------------------------------------------
-// CShutdownWatcher::CShutdownWatcher( MShutdownObserver* aObserver )
-// Default constructor
-// -----------------------------------------------------------------------------
-//
-CShutdownWatcher::CShutdownWatcher( MShutdownObserver* aObserver )
-: CActive(EPriorityStandard),
-    iObserver(aObserver)
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CShutdownWatcher::ConstructL()
-// Initializes member data
-// -----------------------------------------------------------------------------
-//
-void CShutdownWatcher::ConstructL()
-    {
-    LOGGER_ENTERFN( "CShutdownWatcher::ConstructL()" );
-    CActiveScheduler::Add(this);
-    LOGGER_LEAVEFN( "CShutdownWatcher::ConstructL()" );
-    }
-
-// End of file
--- a/connectivitymodules/SeCon/rom/cntparser.iby	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +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: Image description file for Contact Parser Client and Server.
-*
-*/
-
-
-file=ABI_DIR\BUILD_DIR\cntparserserverexe.exe   PROGRAMS_DIR\cntparserserverexe.exe
-file=ABI_DIR\BUILD_DIR\cntparserserver.dll      SHARED_LIB_DIR\cntparserserver.dll
-
--- a/connectivitymodules/SeCon/rom/sconcsc.iby	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-/*
-* Copyright (c) 2005-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:  Image description file for project SConCSC
-*
-*/
-
-
-#ifndef __SCONCSC_IBY__
-#define __SCONCSC_IBY__
-//file content
-
-file=ABI_DIR\BUILD_DIR\sconcsc.dll              SHARED_LIB_DIR\sconcsc.dll
-data=ZPRIVATE\101F99F6\capability\101F9698.xml  PRIVATE\101F99F6\capability\101F9698.xml
-data=ZPRIVATE\101F99F6\capability\fwdcomp.xml   PRIVATE\101F99F6\capability\fwdcomp.xml
-data=ZPRIVATE\101F99F6\capability\101F99F6.xml  PRIVATE\101F99F6\capability\101F99F6.xml
-#endif
--- a/connectivitymodules/SeCon/rom/sconftp.iby	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +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: Image description file for CSConFTP
-*
-*/
-
-
-#ifndef __SCONFTP_IBY__
-#define __SCONFTP_IBY__
-//file content
-
-file=ABI_DIR\BUILD_DIR\sconftp.dll              SHARED_LIB_DIR\sconftp.dll
-
-#endif
--- a/connectivitymodules/SeCon/rom/sconftpplugin.iby	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +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: Image description file for FTPplugin
-*
-*/
-
-
-#ifndef __SCONFTP_PLUGIN_IBY__
-#define __SCONFTP_PLUGIN_IBY__
-//file content
-
-ECOM_PLUGIN(sconftpplugin.dll,101F9686.RSC)
-
-#endif
--- a/connectivitymodules/SeCon/rom/sconftpresources.iby	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +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: Image description file for SConFTP resources.
-*
-*/
-
-#ifndef __SCONFTP_RESOURCE_IBY__
-#define __SCONFTP_RESOURCE_IBY__
-
-data=DATAZ_\RESOURCE_FILES_DIR\sconftp.rsc	RESOURCE_FILES_DIR\sconftp.rsc
-
-#endif
\ No newline at end of file
--- a/connectivitymodules/SeCon/rom/sconpcconnclientserver.iby	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-/*
-* Copyright (c) 2005-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 PCCONNClientServer
-*
-*/
-
-
-#ifndef __SCONPCCONNCLIENTSERVER_IBY__
-#define __SCONPCCONNCLIENTSERVER_IBY__
-//file content
-
-file=ABI_DIR\BUILD_DIR\sconconmlhandler.dll		SHARED_LIB_DIR\sconconmlhandler.dll
-
-file=ABI_DIR\BUILD_DIR\sconpcconnserver.exe		PROGRAMS_DIR\sconpcconnserver.exe
-file=ABI_DIR\BUILD_DIR\sconpcconnclient.dll		SHARED_LIB_DIR\sconpcconnclient.dll
-
-// stub files
-data=ZSYSTEM\install\secon_stub.sis             system\install\secon_stub.sis
-data=ZSYSTEM\install\sconpcconnplugin_stub.sis  system\install\sconpcconnplugin_stub.sis
-data=ZSYSTEM\install\sconftpplugin_stub.sis     system\install\sconftpplugin_stub.sis
-
-#endif
--- a/connectivitymodules/SeCon/rom/sconpcconnplugin.iby	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +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: Image description file for PC Connectivity Plug-in.
-*
-*/
-#ifndef __SCONPCCONN_PLUGIN_IBY__
-#define __SCONPCCONN_PLUGIN_IBY__
-//file content
-
-ECOM_PLUGIN(sconpcconnplugin.dll,101F9688.RSC)
-
-file=ABI_DIR\BUILD_DIR\catalogspcconnectivityplugin.dll              SHARED_LIB_DIR\catalogspcconnectivityplugin.dll
-
-#endif
--- a/connectivitymodules/SeCon/rom/sconpcd.iby	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +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: Image description file for SConPCD.
-*
-*/
-#ifndef __SCONPCD_IBY__
-#define __SCONPCD_IBY__
-//file content
-
-file=ABI_DIR\BUILD_DIR\sconpcd.dll		system\libs\sconpcd.dll
-
-data=ZPRIVATE\10202D56\sbeconfig.xml	PRIVATE\10202D56\sbeconfig.xml
-
-#endif
--- a/connectivitymodules/SeCon/servers/pcconn/bld/bld.inf	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-/*
-* Copyright (c) 2005-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:  Build information file for project PCConnServer
-*
-*/
-
-
-PRJ_EXPORTS
-
-
-PRJ_PLATFORMS
-DEFAULT
-
-PRJ_MMPFILES
-sconpcconnserver.mmp
--- a/connectivitymodules/SeCon/servers/pcconn/bld/sconpcconnserver.mmp	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,61 +0,0 @@
-/*
-* Copyright (c) 2005-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:  PC Connectivity Server
-*
-*/
-
-
-// To get the MW_LAYER_SYSTEMINCLUDE-definition
-#include <platform_paths.hrh>
-#include <data_caging_paths.hrh>
-
-VENDORID        VID_DEFAULT
-
-CAPABILITY      CAP_SERVER TrustedUI
-
-TARGET          sconpcconnserver.exe
-TARGETTYPE      exe
-
-EPOCSTACKSIZE   49152
-EPOCHEAPSIZE    0x10000 0x800000
-
-UID             0 0x101F99F6
-
-// Server
-SOURCEPATH      ../src
-SOURCE          sconpcconnserver.cpp
-
-// ConML
-SOURCEPATH      ../../../wbxml/conmlhandler/src
-SOURCE          sconconmldtd.cpp
-SOURCE          sconxmlelement.cpp
-
-SOURCEPATH      ../../../common/conmltask/src
-SOURCE          sconconmltask.cpp
-
-USERINCLUDE     ../inc
-USERINCLUDE     ../../../inc
-USERINCLUDE     ../../../common/conmltask/inc
-USERINCLUDE     ../../../services/pcd/inc 
-USERINCLUDE     ../../../services/csc/inc
-USERINCLUDE     ../../../wbxml/conmlhandler/inc
-
-// Default system include paths for middleware layer modules.
-MW_LAYER_SYSTEMINCLUDE
-
-LIBRARY         euser.lib
-LIBRARY         estor.lib       // RMemWriteStream, RMemReadStream
-LIBRARY         efsrv.lib       // Rfs, RFile
-LIBRARY         charconv.lib    // For Unicode conversion
-DEBUGLIBRARY    flogger.lib
--- a/connectivitymodules/SeCon/servers/pcconn/inc/sconpcconnclientserver.h	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,70 +0,0 @@
-/*
-* Copyright (c) 2005-2006 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:  PC Connectivity server client
-*
-*/
-
-
-
-
-#ifndef __SCONPCCONNCLIENTSERVER_H__
-#define __SCONPCCONNCLIENTSERVER_H__
-
-#include <e32base.h>
-
-// for debugging ConML messages and capability objects 
-//#define DEBUG_XML
-
-
-// reasons for server panic
-enum TPCConnServPanic
-	{
-	E_BadRequest = 1,
-	E_DispatchRequest,
-	E_InvalidClient,
-	E_CleanupCreate,
-	E_MainSchedulerError
-	};
-	
-	
-// server related constants
-_LIT( KSConPCConnServerName,"SConPCConnServer" );
-_LIT( KSConPCConnServerExe, "SConPCConnServer.exe" );
-
-// client 
-_LIT( KSConPCConnClientDll, "SConPCConnClient.dll" );
-
-
-// Chunk
-const TUint KSConPCConnChunkSize = 128;
-const TUint KSConPCConnChunkMaxSize = 65536;
-const TUint KSConPCConnBufferMaxSize = 65000; 
-
-// Version number
-const TUint KSConPCConnServerVersionMajor = 1;
-const TUint KSConPCConnServerVersionMinor = 0;
-const TUint KSConPCConnServerVersionBuild = 1;
-
-
-// Function codes
-
-enum TRequest 
-{
-	EPutMessage,
-	EGetMessage,
-	EResetMessage,
-	EChunkMessage
-};
-
-#endif // __SCONPCCONNCLIENTSERVER_H__
--- a/connectivitymodules/SeCon/servers/pcconn/inc/sconpcconnserver.h	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,237 +0,0 @@
-/*
-* Copyright (c) 2005-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:  PC Connectivity server
-*
-*/
-
-
-#ifndef __SCONPCCONNSERVER_H__
-#define __SCONPCCONNSERVER_H__
-
-#include "sconconmlhandler.h"
-#include "sconconmltask.h"
-
-
-class CSConPCD;
-class CSConCSC;
-class CSConConMLParser;
-
-const TUint KSConDefaultHeapSize=0x10000;
-const TInt KSConFirstDrive = 65;
-
-_LIT8 ( KParamNameSilent, "Silent" );
-
-
-// PCD Handler Dll
-_LIT(KSConPCDLibName, "sconpcd.dll");
-const TInt KSConPCDUidValue = 0x10009D8D;
-const TUid KSConPCDUid = {KSConPCDUidValue};
-
-// CSC Handler Dll
-_LIT(KSConCSCLibName, "sconcsc.dll");
-const TInt KSConCSCUidValue = 0x10009D8D;
-const TUid KSConCSCUid = {KSConCSCUidValue};
-
-// ConML Handler Dll
-_LIT (KSConConMLHandlerLibName, "sconconmlhandler.dll");
-const TInt KSConConMLHandlerUidValue = 0x10009D8D;
-const TUid KSConConMLHandlerUid = {KSConConMLHandlerUidValue};
-
-// debug file for put and get messages
-_LIT ( KSConConMLDebugFile, "c:\\data\\handler_result.txt");
-
-// Secure ids
-_LIT_SECURE_ID(KSConPCConnClientSecureId,0x101F7C87);
-
-// PCD types
-_LIT8( KSConPCDXMLObjectType, "application/vnd.nokia.conml+xml" );
-_LIT8( KSConPCDXMLObjectType2, "application/vnd.nokia.pcd+xml" );
-_LIT8( KSConPCDWBXMLObjectType, "application/vnd.nokia.conml+wbxml" );
-_LIT8( KSConPCDWBXMLObjectType2, "application/vnd.nokia.pcd+wbxml" );
-
-// CSC types
-_LIT8( KSConCapabilityObjectType, "x-obex/capability" );
-
-// Drives
-_LIT( KSConNoDrive, "\x0" );
-_LIT( KSConDriveExists, "\x1" );
-
-// user permissions
-_LIT8( KSConPermReadOnly, "R" );
-_LIT8( KSConPermNormal, "RW" );
-// Java hash id for ConML
-_LIT8( KSConJavaHashId, "JAVA_");
-
-_LIT8( KSConAppInfoSeparator, "#" );
-
-//**********************************
-//CSConPCConnServer - PC Connectivity Server 
-//**********************************
-
-class CSConPCConnServer : public CServer2
-    {
-public:
-        // From CServer2
-    IMPORT_C static CSConPCConnServer* NewLC();
-    IMPORT_C ~CSConPCConnServer();
-    
-    /**
-     * Function to start the server
-     * @param none
-     * @return Error code
-     */
-    static TInt RunServer();
-    
-    /**
-     * Function to start the server
-     * @param none
-     * @return none
-     */
-    static void RunServerL();
-    
-    /**
-     * Increments session count.
-     * @param none
-     * @return none
-     */
-    void IncSessionCount();
-    
-    /**
-     * Decrements session count. 
-     * When count reaches zero, stops active scheduler
-     * @param none
-     * @return none
-     */ 
-    void DecSessionCount();
-    
-
-protected:
-    virtual CSession2* NewSessionL( const TVersion &aVersion, 
-                                    const RMessage2& aMessage) const;
-
-private:
-    CSConPCConnServer();
-    
-    TInt iSessionCount;
-
-    };
-
-//**********************************
-//CSConPCConnSession - Server session class, handles the requested operations
-//**********************************
-class CSConPCConnSession : public CSession2, public MWBXMLConMLCallback
-    {
-
-public:
-    static CSConPCConnSession* NewL(CSConPCConnServer& aServer);
-    
-    /**
-    * From CSession2
-    */
-    void ServiceL( const RMessage2 &aMessage);
-
-private:
-    void DispatchRequestL( const RMessage2 &aMessage);
-    void LoadPCDDllL();
-    void LoadCSCDllL();
-    void LoadConMLHandlerDllL();
-
-protected:
-    // Callback funktion for WBXML parsing
-    void ConMLL ( ConML_ConMLPtr_t aContent );
-
-private:
-    void ConstructL();
-    CSConPCConnSession ( CSConPCConnServer& aServer);
-    ~CSConPCConnSession();
-
-    TInt HandlePutMessageL();
-    TInt HandleGetMessageL();
-    TInt HandleWBXMLGetRequestL( const TDesC& aFileName );
-    TInt HandleResetMessage();
-    TInt HandleChunkMessage( const RMessage2& aMessage );
-    TInt OptionsFromExecuteL ( ConML_ExecutePtr_t aContent );
-    TInt TaskCancelL(ConML_CancelPtr_t aContent);
-    TInt TaskGetStatusL(ConML_GetStatusPtr_t aContent );
-    TInt TaskInstallL( ConML_InstallPtr_t aContent );
-    TInt TaskUnInstallL( ConML_UnInstallPtr_t aContent );
-    void SplitL( const TDesC8& aText, const TChar aSeparator, RArray<TPtrC8>& aArray );
-    TInt TaskListInstalledAppsL( ConML_ListInstalledAppsPtr_t aContent );
-    TInt TaskListDataOwnersL();
-    TInt TaskSetBURModeL( ConML_SetBURModePtr_t aContent );
-    TInt TaskGetDataSizeL( ConML_GetDataSizePtr_t aContent );
-    TInt TaskRequestDataL( ConML_RequestDataPtr_t aContent );
-    TInt TaskUpdateDeviceInfoL( ConML_UpdateDeviceInfoPtr_t aContent );
-    TInt TaskListPublicFilesL( ConML_ListPublicFilesPtr_t aContent );
-    TInt TaskGetDataOwnerStatusL( ConML_GetDataOwnerStatusPtr_t aContent );
-    TInt TaskSupplyDataL ( ConML_SupplyDataPtr_t aContent );
-    TInt TaskRebootL();
-    TInt TaskGetMetadataL( ConML_GetMetadataPtr_t aContent );
-    void AppendStatusL( ConML_ConMLPtr_t aContent, CSConStatusReply* reply );
-    void AppendUpdateDeviceInfoResultsL( ConML_ResultsPtr_t aContent, 
-                                         CSConUpdateDeviceInfo* aResult );
-    void AppendSetBURModeResultsL ( ConML_ResultsPtr_t aContent, 
-                                    CSConSetBURMode* aResult );
-    void AppendListInstalledAppsResultsL ( ConML_ResultsPtr_t aContent, 
-                                           CSConListInstApps* aResult );
-    void AppendListPublicFilesResultsL ( ConML_ResultsPtr_t aContent, 
-                                         CSConListPublicFiles* aResult );
-    void AppendRequestDataResultsL( ConML_ResultsPtr_t aContent, 
-                                    CSConRequestData* aResult );
-    void AppendSupplyDataResultsL( ConML_ResultsPtr_t aContent, 
-                                   CSConSupplyData* aResult );
-    void AppendInstallResultsL( ConML_ResultsPtr_t aContent, 
-                                CSConInstall* aResult );
-    void AppendUninstallResultsL( ConML_ResultsPtr_t aContent, 
-                                CSConUninstall* aResult );                          
-    void AppendListDataOwnersResultsL ( ConML_ResultsPtr_t aContent, 
-                                        CSConListDataOwners* aResult  );
-    void AppendGetDataOwnerStatusResultsL ( ConML_ResultsPtr_t aContent, 
-                                            CSConGetDataOwnerStatus* aResult );
-    void AppendGetDataSizeResultsL ( ConML_ResultsPtr_t aContent, 
-                                     CSConGetDataSize* aResult );
-    void AppendGetMetadataResultsL ( ConML_ResultsPtr_t aContent, 
-                                     CSConGetMetadata* aResult );
-    void AppendProgressL ( ConML_ResultsPtr_t aContent, TInt progress );
-    void AppendDrivesL( ConML_DrivesPtr_t aContent, TDriveList aDrives );
-    TDriveList DriveList( ConML_DriveListPtr_t aContent );
-    TDesC8& IntToDesLC( const TInt& anInt);
-    TDesC8& DriveNumToDesLC( const TInt& anInt );
-    TDesC8& BufToDesLC( const TDesC& aBuf );
-    TDesC8& UidToDesLC( const TUid& aUid );
-    TUid DesToUid ( const TDesC8& aDes );
-    TInt DesToInt( const TDesC8& aDes);
-    TBool HasDrives( TDriveList& aDrive );
-    TDesC8& HashToDesLC( const TDesC& aBuf );
-    TPtr DesToHashLC( const TDesC8& aDes );
-    TBool IsJavaHash( const TDesC8& aDes );
-        
-// data
-private:
-    CSConPCConnServer& iServer;
-    
-    RLibrary iPCDlib;
-    RLibrary iCSClib;
-    RLibrary iConMLHandlerLib;
-    
-    CSConPCD* iPCDHandler;
-    CSConCSC* iCSCHandler;
-    CSConConMLHandler* iConMLHandler;
-    
-    RChunk iChunk;
-    CBufFlat* iBuffer;  
-    TInt iResult;
-    };
-
-#endif // __SCONPCCONNSERVER_H__
--- a/connectivitymodules/SeCon/servers/pcconn/src/sconpcconnserver.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2725 +0,0 @@
-/*
-* Copyright (c) 2005-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:  PC Connectivity server
-*
-*/
-
-
-#include <s32mem.h> // For RMemReadStream
-#include <utf.h>
-
-#include "sconpcconnclientserver.h"
-#include "sconpcconnserver.h"
-#include "sconpcd.h"
-#include "sconcsc.h"
-#include "sconconmlhandler.h"
-#include "debug.h"
-
-#ifdef DEBUG_XML
-#include <s32file.h>
-_LIT8( KTimeFormat, "%02d:%02d:%02d.%03d" );
-_LIT8( KXmlBegin, "\nXML:\n" );
-#endif
-
-_LIT( KSCONGetMetadataRequest, "METADATA:" );
-
-//------------------------------------------------------------
-// Global functions 
-//------------------------------------------------------------
-
-// -----------------------------------------------------------------------------
-// E32Main()
-// Entry point 
-// -----------------------------------------------------------------------------
-//
-TInt E32Main()
-    {
-    TRACE_FUNC_ENTRY;
-    __UHEAP_MARK;
-    TInt error( KErrNone );
-    error = CSConPCConnServer::RunServer();
-    __UHEAP_MARKEND;
-    TRACE_FUNC_EXIT;
-    return error;
-    }
-
-// -----------------------------------------------------------------------------
-// PanicServer()
-// Panics the server with panic reason aPanic 
-// -----------------------------------------------------------------------------
-//
-GLDEF_C void PanicServer(TPCConnServPanic aPanic)
-    {
-    LOGGER_WRITE_1( "CSConPCConnSession::PanicServer() : Panic code  %d", aPanic );  
-    _LIT(KTxtServerPanic,"PCConn server panic");
-    User::Panic(KTxtServerPanic,aPanic);
-    }
-
-// -----------------------------------------------------------------------------
-// CSConPCConnServer::CSConPCConnServer ()
-// Default constructor - can not leave
-// -----------------------------------------------------------------------------
-//
-CSConPCConnServer::CSConPCConnServer () : CServer2( EPriorityStandard)
-    {
-    LOGGER_WRITE( "* * * *  CSConPCConnServer  * * * *" );
-    }
-
-// -----------------------------------------------------------------------------
-// CSConPCConnServer::~CSConPCConnServer()
-// Default destructor
-// -----------------------------------------------------------------------------
-//
-EXPORT_C CSConPCConnServer::~CSConPCConnServer()
-    {
-    TRACE_FUNC;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConPCConnServer::NewLC()
-// Creates a new instance of CSConPCConnServer
-// -----------------------------------------------------------------------------
-//
-EXPORT_C CSConPCConnServer*  CSConPCConnServer::NewLC()
-    {
-    TRACE_FUNC_ENTRY;
-    CSConPCConnServer* self  = new (ELeave) CSConPCConnServer();
-    CleanupStack::PushL( self );
-    self->StartL( KSConPCConnServerName );
-    TRACE_FUNC_EXIT;
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConPCConnServer::NewSessionL()
-// Creates a new session to the client
-// -----------------------------------------------------------------------------
-//
-CSession2* CSConPCConnServer::NewSessionL( 
-    const TVersion &aVersion, const RMessage2& /*aMessage*/ ) const
-    {
-    TRACE_FUNC_ENTRY;
-    
-    // check version
-    TVersion version( KSConPCConnServerVersionMajor, 
-                                  KSConPCConnServerVersionMinor, 
-                                  KSConPCConnServerVersionBuild);
-    
-    if (!User::QueryVersionSupported(version, aVersion))
-        {
-        User::Leave(KErrNotSupported);
-        }
-    
-    // check client identity
-    RThread client;
-    Message().Client( client );
-    TSecureId clientId = client.SecureId();
-    
-    if ( clientId != KSConPCConnClientSecureId )
-        {
-        LOGGER_WRITE( "CSConPCConnServer::NewSessionL() : Secure ID does not match" );
-        User::Leave( KErrAccessDenied );
-        }
-    
-    TRACE_FUNC_EXIT;
-    return CSConPCConnSession::NewL( *CONST_CAST( CSConPCConnServer*, this));
-    }
-
-// -----------------------------------------------------------------------------
-// CSConPCConnServer::RunServer()
-// Starts the server
-// -----------------------------------------------------------------------------
-//
-TInt CSConPCConnServer::RunServer()
-    {
-    TRACE_FUNC_ENTRY;
-    
-    CTrapCleanup* cleanup = CTrapCleanup::New();
-    TInt ret = KErrNoMemory;
-    if( cleanup )
-        {
-        TRAP( ret, CSConPCConnServer::RunServerL(  ) );
-        delete cleanup;
-        }
-    if( ret != KErrNone )
-        {
-        // Signal the client that server creation failed
-        RProcess::Rendezvous( ret );
-        }
-    TRACE_FUNC_EXIT;
-    return ret;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConPCConnServer::RunServerL()
-// Starts the server
-// -----------------------------------------------------------------------------
-//
-void CSConPCConnServer::RunServerL()
-    {
-    // Create and install the active scheduler we need
-    TRACE_FUNC_ENTRY;
-    CActiveScheduler *as=new (ELeave)CActiveScheduler;
-    CleanupStack::PushL( as );
-    CActiveScheduler::Install( as );
-
-    // Create server
-    CSConPCConnServer* server = CSConPCConnServer::NewLC();
-
-    // Initialisation complete, now signal the client
-    User::LeaveIfError( RThread().RenameMe( KSConPCConnServerName ) );
-    RProcess::Rendezvous( KErrNone );
-
-    // Ready to run
-    CActiveScheduler::Start();
-    
-    // Cleanup the scheduler
-    CleanupStack::PopAndDestroy( 2, as );
-    TRACE_FUNC_EXIT;
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConPCConnServer::IncSessionCount()
-// Increments session count
-// -----------------------------------------------------------------------------
-//
-void CSConPCConnServer::IncSessionCount()
-    {
-    TRACE_FUNC_ENTRY;
-    iSessionCount++;
-    LOGGER_WRITE_1( "There are now %d sessions", iSessionCount );
-    TRACE_FUNC_EXIT;
-    }    
-    
-// -----------------------------------------------------------------------------
-// CSConPCConnServer::DecSessionCount()
-// Decrements session count
-// -----------------------------------------------------------------------------
-//
-void CSConPCConnServer::DecSessionCount()
-    {
-    TRACE_FUNC_ENTRY;
-    iSessionCount--;
-    LOGGER_WRITE_1( "There are still %d sessions", iSessionCount );
-    if ( iSessionCount < 1 )
-        {
-        Cancel();
-        CActiveScheduler::Stop();   
-        }
-    TRACE_FUNC_EXIT;
-    } 
-
-// -----------------------------------------------------------------------------
-// CSConPCConnSession::CSConPCConnSession()
-// Default constructor 
-// -----------------------------------------------------------------------------
-//
-CSConPCConnSession::CSConPCConnSession (
-     CSConPCConnServer& aServer ) : iServer (aServer)
-    {
-    TRACE_FUNC_ENTRY;
-    iServer.IncSessionCount();
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConPCConnSession::CSConPCConnSession()
-// Default destructor - frees resources
-// -----------------------------------------------------------------------------
-//
-CSConPCConnSession::~CSConPCConnSession()
-    {
-    TRACE_FUNC_ENTRY;
-    
-    iServer.DecSessionCount();
-
-    if ( iConMLHandler )
-        {
-        delete iConMLHandler;
-        iConMLHandler = NULL;
-        iConMLHandlerLib.Close();
-        }
-
-    if ( iPCDHandler )
-        {
-        delete iPCDHandler;
-        iPCDHandler = NULL;
-        iPCDlib.Close();
-        }
-
-    if ( iCSCHandler )
-        {
-        delete iCSCHandler;
-        iCSCHandler = NULL;
-        iCSClib.Close();
-        }
-    
-    if ( iBuffer )
-        {
-        delete iBuffer;
-        iBuffer = NULL;
-        }
-        
-    iChunk.Close();
-        
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConPCConnSession::NewL()
-// Creates a new instance of CSConPCConnSession
-// -----------------------------------------------------------------------------
-//
-EXPORT_C CSConPCConnSession *CSConPCConnSession::NewL(
-    CSConPCConnServer& aServer)
-    {
-    TRACE_FUNC_ENTRY;
-    CSConPCConnSession* self = new ( ELeave ) CSConPCConnSession(aServer);
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop( self );
-    TRACE_FUNC_EXIT;
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConPCConnSession::ConstructL()
-// 2nd phase constructor
-// -----------------------------------------------------------------------------
-//
-void CSConPCConnSession::ConstructL()
-    {
-    TRACE_FUNC_ENTRY;
-    TInt ret ( KErrNone );
-    iResult = KErrNone;
-    
-#ifdef DEBUG_XML
-    // create log file 
-    RFs fs;
-    User::LeaveIfError( fs.Connect () );
-    CleanupClosePushL( fs );
-    
-    RFile file;
-    TInt err = file.Create ( fs, KSConConMLDebugFile, EFileWrite );
-    if( err == KErrNone )
-        {
-        // file created, close it
-        file.Close();
-        }       
-    
-    CleanupStack::PopAndDestroy( &fs );               
-#endif
-    
-    // initialize buffer
-    iBuffer = CBufFlat::NewL ( KSConPCConnBufferMaxSize );
-    
-    // load handlers
-    if ( !iPCDHandler )
-        {
-        TRAP( ret, LoadPCDDllL() );
-        if ( ret != KErrNone) 
-            {
-            LOGGER_WRITE_1( "CSConPCConnSession::ConstructL() : PCD load failed with error code %d", ret );
-            User::Leave( ret );
-            }
-        }   
-    
-    if ( !iCSCHandler )
-        {
-        TRAP( ret, LoadCSCDllL() );
-        if ( ret != KErrNone) 
-            {
-            LOGGER_WRITE_1( "CSConPCConnSession::ConstructL() : CSC dll load failed with error code %d", ret ); 
-            User::Leave ( ret );
-            }
-        }
-
-    // Load parser
-    if ( !iConMLHandler )
-        {
-        TRAPD( ret, LoadConMLHandlerDllL() );
-        if ( ret != KErrNone)
-            {
-            LOGGER_WRITE_1( "CSConPCConnSession::ConstructL() : Parser dll load failed with error code %d", ret );
-            User::Leave ( ret );
-            }
-        }
-
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConPCConnSession::ServiceL()
-// Gets the client's request
-// -----------------------------------------------------------------------------
-//
-void CSConPCConnSession::ServiceL( const RMessage2 &aMessage)
-    {
-    TRACE_FUNC_ENTRY;
-    TRAPD(err,DispatchRequestL(aMessage) );
-    if ( err != KErrNone )
-        {
-        LOGGER_WRITE_1( "CSConPCConnSession::ServiceL() : leave code %d", err );
-        PanicServer( E_DispatchRequest );
-        }
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConPCConnSession::DispatchRequestL()
-// Identifies an IPC command from the client 
-// -----------------------------------------------------------------------------
-//
-void CSConPCConnSession::DispatchRequestL(const RMessage2 &aMessage)
-    {
-    TRACE_FUNC_ENTRY;
-    
-    TInt ret (KErrNone);
-        
-    switch (aMessage.Function())
-        {
-        case EPutMessage:
-            LOGGER_WRITE( "CSConPCConnSession::DispatchRequestL() : EPutMessage" );
-            ret = HandlePutMessageL();
-            break;
-        
-        case EGetMessage:
-            LOGGER_WRITE( "CSConPCConnSession::DispatchRequestL() : EGetMessage" );
-            ret = HandleGetMessageL();
-            break;
-        
-        case EResetMessage:
-            LOGGER_WRITE( "CSConPCConnSession::DispatchRequestL() : EResetMessage" );
-            ret = HandleResetMessage();
-            break;
-            
-        case EChunkMessage:
-            LOGGER_WRITE( "CSConPCConnSession::DispatchRequestL() : EChunkMessage" );
-            ret = HandleChunkMessage( aMessage );
-            break;
-                        
-        default:
-            PanicServer (E_BadRequest);
-            break;
-        }
-
-    aMessage.Complete( ret );
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConPCConnSession::HandlePutMessageL()
-// Handles a PUT -type message from the client
-// -----------------------------------------------------------------------------
-//
-TInt CSConPCConnSession::HandlePutMessageL()
-    {
-    TRACE_FUNC_ENTRY;
-    LOGGER_WRITE_1( "CSConPCConnSession::HandlePutMessageL() : begin : Heap count : %d", User::Heap().Count() );
-    TInt ret ( KErrNone );
-        
-    if ( !iPCDHandler )
-        {
-        TRAP( ret, LoadPCDDllL() );
-        if ( ret != KErrNone) 
-            {
-            LOGGER_WRITE_1( "CSConPCConnSession::HandlePutMessageL (): PCD dll load failed with error code %d", ret );    
-            return ( ret );
-            }
-        }   
-        
-    if ( ! iConMLHandler )
-        {
-        TRAP ( ret, LoadConMLHandlerDllL() );
-        if ( ret != KErrNone )
-            {
-            LOGGER_WRITE_1( "CSConPCConnSession::HandlePutMessageL (): ConML Handler dll load failed with error code %d", ret );  
-            return ( ret );
-            }
-        }
-        
-    TInt length ( 0 );
-    
-    RMemReadStream buf( iChunk.Base(), iChunk.Size() );
-
-
-    iBuffer->Reset();
-
-    length = buf.ReadInt32L();
-    HBufC8* name = HBufC8::NewLC( length );
-    TPtr8 namePtr = name->Des();
-    buf.ReadL( namePtr, length);
-        
-    length = buf.ReadInt32L();
-    HBufC8* type = HBufC8::NewLC( length );
-    TPtr8 typePtr = type->Des();
-    buf.ReadL( typePtr, length);
-   
-    // WBXML Document
-    length = buf.ReadInt32L();
-    HBufC8* data = HBufC8::NewLC( length );
-    TPtr8 dataPtr = data->Des();
-    
-    buf.ReadL( dataPtr, length );
-    iBuffer->ResizeL( length );
-    iBuffer->Write( 0, dataPtr );
-            
-    buf.Close();
-    
-#ifdef DEBUG_XML
-    RFs fs;
-    User::LeaveIfError( fs.Connect() );
-    CleanupClosePushL( fs );
-
-    RFile file;
-    if ( file.Open( fs, KSConConMLDebugFile, EFileWrite ) == KErrNone )
-        {
-        RFileWriteStream fws;
-        TInt fileSize;
-        file.Size( fileSize );
-        
-        TTime now;
-        now.HomeTime();
-        TDateTime time = now.DateTime();
-        TBuf8<16> timeLine;
-        timeLine.Format (KTimeFormat, time.Hour(), time.Minute(), 
-                                    time.Second(), time.MicroSecond() );
-        
-        fws.Attach( file, fileSize );
-        fws.PushL();
-        fws.WriteL( timeLine );
-        _LIT8( KPutMessage, "__________PUT-MESSAGE \nWBXML:\n" );
-        fws.WriteL( KPutMessage );
-        fws.WriteL( iBuffer->Ptr(0), iBuffer->Size() );
-        TRAP_IGNORE( fws.CommitL() );
-        fws.Close();
- 
-        CleanupStack::PopAndDestroy( &fws );
-        }
-    file.Close();   
-    CleanupStack::PopAndDestroy( &fs );
-#endif
-    
-    if ( ( typePtr.Compare( KSConPCDWBXMLObjectType ) == KErrNone) || 
-         ( typePtr.Compare( KSConPCDWBXMLObjectType2 )== KErrNone) )
-        {
-        LOGGER_WRITE( "CSConPCConnSession::HandlePutMessageL() : Object type PCD " );
-        TRAPD( err, ret = iConMLHandler->ParseDocumentL( *iBuffer, this ) );    
-        if ( err != KErrNone )
-            {
-            ret = err;
-            }
-        if ( ret == KErrNone )
-            {
-            // Possible error code returned from PCCS 
-            ret = iResult;
-            }
-        }
-    else 
-        {
-        LOGGER_WRITE( "Object type not regognized " );
-        ret = KErrNotSupported;
-        }
-    CleanupStack::PopAndDestroy( data );
-    CleanupStack::PopAndDestroy( type );
-    CleanupStack::PopAndDestroy( name );
-    LOGGER_WRITE_1( "CSConPCConnSession::HandlePutMessageL() end : Heap count : %d", User::Heap().Count() );
-    LOGGER_WRITE_1( "CSConPCConnSession::HandlePutMessageL() : returned %d", ret );    
-    return ret;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConPCConnSession::HandleGetMessageL()
-// Handles a GET -type message from the client
-// -----------------------------------------------------------------------------
-//
-TInt CSConPCConnSession::HandleGetMessageL()
-    {
-    TRACE_FUNC_ENTRY;
-    TInt ret ( KErrNone );
-    
-    if ( !iCSCHandler )
-        {
-        TRAP( ret, LoadCSCDllL() );
-        if ( ret != KErrNone) 
-            {
-            LOGGER_WRITE_1( "CSConPCConnSession::HandleGetMessageL() : CSC dll load failed with error code %d", ret ); 
-            return ret;
-            }
-        }
-
-    TInt32 length ( 0 );
-    RMemReadStream readBuf( iChunk.Base(), iChunk.Size() );
-    iBuffer->Reset();
-    
-    length = readBuf.ReadInt32L();
-    HBufC8* name = HBufC8::NewLC( length );
-    TPtr8 namePtr8 = name->Des();
-    readBuf.ReadL( namePtr8, length);
-    namePtr8.SetLength( length );
-    LOGGER_WRITE8_1("namePtr: %S", &namePtr8);
-    
-    const TUint8* ptr8 = namePtr8.Ptr();
-    const TUint16* ptr16 = reinterpret_cast<const TUint16*>( ptr8 );
-    TPtrC namePtr;
-    namePtr.Set( ptr16, length/2 );
-    
-    length = readBuf.ReadInt32L();
-    HBufC8* type = HBufC8::NewLC( length );
-    TPtr8 typePtr = type->Des();
-    readBuf.ReadL( typePtr, length);
-    
-    readBuf.Close();
-        
-    if ( typePtr.Compare( KSConCapabilityObjectType ) == KErrNone )
-        {
-        ret = iCSCHandler->CapabilityObject( *iBuffer );
-        
-#ifdef DEBUG_XML
-        RFs fs;
-        User::LeaveIfError(fs.Connect());
-        CleanupClosePushL(fs);
-
-        RFile file;
-        if ( file.Open(fs, KSConConMLDebugFile, EFileWrite ) == KErrNone )
-            {
-            RFileWriteStream fws;
-            TInt fileSize;
-            file.Size ( fileSize );
-            TTime now;
-            now.HomeTime();
-            TDateTime time = now.DateTime();
-            TBuf8<16> timeLine;
-            timeLine.Format( KTimeFormat, time.Hour(), time.Minute(), 
-                                        time.Second(), time.MicroSecond() );
-
-            fws.Attach ( file, fileSize);
-            fws.PushL();
-            fws.WriteL( timeLine );
-            _LIT8( KGetMessage, "__________GET -MESSAGE - Capability Object \n " );
-            fws.WriteL( KGetMessage );
-            fws.WriteL( iBuffer->Ptr(0), iBuffer->Size() );
-            TRAP_IGNORE( fws.CommitL() );
-            fws.Close();
-
-            CleanupStack::PopAndDestroy( &fws );
-            }
-        file.Close();
-        CleanupStack::PopAndDestroy( &fs );
-#endif
-
-        }
-    else if (  typePtr.CompareC( KSConPCDWBXMLObjectType) == KErrNone )
-        {
-        ret = HandleWBXMLGetRequestL( namePtr );
-        }
-    else
-        {
-        LOGGER_WRITE( "CSConPCConnSession::HandleGetMessageL() : Header type not regognized " );
-        ret = KErrNotSupported;
-        }
-    
-    CleanupStack::PopAndDestroy( 2 ); // name, type
-    
-    if ( ret != KErrNone )
-        {
-        return ret;
-        }
-    
-    length = iBuffer->Size();
-    
-    if ( sizeof(TInt32) + length > iChunk.Size() )
-        {
-        // need to resize chunk
-        TInt err = iChunk.Adjust( sizeof(TInt32) + length );
-        LOGGER_WRITE_2("iChunk.Adjust( %d ) err: %d", sizeof(TInt32) + length, err);
-        if ( err )
-            {
-            iBuffer->Reset();
-            LOGGER_WRITE_1( "CSConPCConnSession::HandleGetMessageL() : returned %d", ret );
-            return err;
-            }
-        }
-    
-    // copy data to chunk
-    RMemWriteStream writeBuf ( iChunk.Base(), iChunk.Size() );
-    
-    if ( length > 0 )
-        {
-        writeBuf.WriteInt32L( length );
-        writeBuf.WriteL( iBuffer->Ptr(0), length );
-        writeBuf.CommitL();
-        }
-    else 
-        {
-        writeBuf.WriteInt32L( 0 );
-        }
-    writeBuf.CommitL();
-    writeBuf.Close();
-    iBuffer->Reset();
-    LOGGER_WRITE_1( "CSConPCConnSession::HandleGetMessageL() : returned %d", ret );
-    return ( ret );
-    }
-
-// -----------------------------------------------------------------------------
-// CSConPCConnSession::HandleWBXMLGetRequestL()
-// Handles a ConML(wbxml) Get request from the client
-// -----------------------------------------------------------------------------
-//
-TInt CSConPCConnSession::HandleWBXMLGetRequestL( const TDesC& aFileName )
-    {
-    TRACE_FUNC_ENTRY;
-    TInt ret(KErrNone);
-    if ( aFileName.Find(KSCONGetMetadataRequest) == 0 )
-        {
-        // ConML get metadata request --> Create metadata task
-        LOGGER_WRITE( "ConML GetMetadataRequest" );
-        TPtrC filename = aFileName.Mid( KSCONGetMetadataRequest().Length() );
-        
-        TSConMethodName method ( EGetMetadata );
-        CSConTask* task = CSConTask::NewLC( method );
-        
-        if ( filename.Length() > task->iGetMetadataParams->iFilename.MaxLength() )
-            {
-            User::Leave( KErrTooBig );
-            }
-        task->iGetMetadataParams->iFilename = filename;
-        
-        ret = iPCDHandler->PutTaskL( task );
-        CleanupStack::Pop( task );
-        LOGGER_WRITE_1("iPCDHandler->PutTaskL ret: %d", ret);
-        }
-    else if ( aFileName.Length() > 0 )
-        {
-        LOGGER_WRITE("Error: aFilename does not match to any definitions");
-        TRACE_FUNC_RET( KErrArgument );
-        return KErrArgument;
-        }
-    
-	// Get reply
-    LOGGER_WRITE( "CSConPCConnSession::HandleGetMessageL() before ConML GetReplyL" );
-    CSConStatusReply* reply = iPCDHandler->GetReply();
-    CleanupStack::PushL( reply );
-    
-    ConML_ConMLPtr_t content = new ( ELeave ) ConML_ConML_t();
-    CleanupStack::PushL( content );
-    
-    AppendStatusL( content, reply );
-    ret = iConMLHandler->GenerateDocument( content );
-    
-    CleanupStack::PopAndDestroy( content );
-    CleanupStack::PopAndDestroy( reply );
-     
-    TPtrC8 ptr( iConMLHandler->WBXMLDocument() );
-    LOGGER_WRITE_1("ptr.Size(): %d", ptr.Size());
-    iBuffer->ResizeL( ptr.Size() );
-    iBuffer->Write( 0, ptr );
-
-#ifdef DEBUG_XML
-    RFile file;
-    if ( file.Open( iFs, KSConConMLDebugFile, EFileWrite) == KErrNone )
-        {
-        RFileWriteStream fws;   
-        TInt fileSize;
-        file.Size ( fileSize );
-        fws.Attach ( file, fileSize);
-        fws.PushL();
-        TTime now;
-        now.HomeTime();
-        TDateTime time = now.DateTime();
-        TBuf8<16> timeLine;
-        timeLine.Format( KTimeFormat, time.Hour(), time.Minute(), 
-                         time.Second(), time.MicroSecond() );
-
-        fws.WriteL( timeLine );
-        _LIT8( KGetMessage, "__________GET -MESSAGE" );
-        fws.WriteL( KGetMessage );
-        fws.WriteL(KXmlBegin);
-        fws.WriteL(iConMLHandler->XMLDocument().Ptr(), 
-                          iConMLHandler->XMLDocument().Length());
-        fws.WriteL(_L("\n\n"));
-        TRAP_IGNORE( fws.CommitL() );
-        fws.Close();
-        CleanupStack::PopAndDestroy( &fws );
-        }
-        
-    file.Close();
-#endif
-    TRACE_FUNC_RET(ret);
-    return ret;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConPCConnSession::HandleResetMessage()
-// Resets the PCCS service
-// -----------------------------------------------------------------------------
-//
-TInt CSConPCConnSession::HandleResetMessage()   
-    {
-    TRACE_FUNC_ENTRY;
-    TInt ret ( KErrNone );
-    
-    // reset PCD
-    if ( iPCDHandler )
-        {
-        iPCDHandler->ResetPCD();
-        }
-        
-    LOGGER_WRITE_1( "CSConPCConnSession::HandleResetMessage() : ret %d", ret );
-    return ret;
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConPCConnSession::HandleChunkMessage( const RMessage2& aMessage )
-// Receives the chunk handle from the client
-// -----------------------------------------------------------------------------
-//
-TInt CSConPCConnSession::HandleChunkMessage( const RMessage2& aMessage )    
-    {
-    TRACE_FUNC_ENTRY;
-    TInt ret ( KErrNone );
-    
-    ret = iChunk.Open( aMessage, 0, EFalse );
-        
-    LOGGER_WRITE_1( "CSConPCConnSession::HandleChunkMessageL() : ret %d", ret );
-    return ret;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConPCConnSession::LoadPCDDllL()
-// Loads the PCCS service
-// -----------------------------------------------------------------------------
-//
-void CSConPCConnSession::LoadPCDDllL()
-    {
-    TRACE_FUNC_ENTRY;
-    
-    // Dynamically load DLL
-    User::LeaveIfError( iPCDlib.Load( KSConPCDLibName ) );
-    if( iPCDlib.Type()[1] != KSConPCDUid )
-        {
-        LOGGER_WRITE( "CSConPCConnSession::LoadPCDDllL() : KSConPCDUidValue incorrect..." );
-        iPCDlib.Close();
-        User::Leave( KErrNotFound );
-        }   
-    TSConCreateCSConPCDFunc CreateCSConPCDL =
-    (TSConCreateCSConPCDFunc)iPCDlib.Lookup(1);
-    
-    iPCDHandler = (CSConPCD*)CreateCSConPCDL();
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConPCConnSession::LoadCSCDllL()
-// Loads the CSC service
-// -----------------------------------------------------------------------------
-//
-void CSConPCConnSession::LoadCSCDllL()
-    {
-    TRACE_FUNC_ENTRY;
-    // Dynamically load DLL
-    User::LeaveIfError( iCSClib.Load( KSConCSCLibName ) );
-    if( iCSClib.Type()[1] != KSConCSCUid )
-        {
-        LOGGER_WRITE( "CSConPCConnSession::LoadCSCDllL() : KSConCSCUidValue incorrect" );
-        iCSClib.Close();
-        User::Leave( KErrNotFound );
-        }   
-    TSConCreateCSConCSCFunc CreateCSConCSCL = 
-    (TSConCreateCSConCSCFunc)iCSClib.Lookup(1);
-    
-    iCSCHandler = (CSConCSC*)CreateCSConCSCL();
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConPCConnSession::LoadConMLHandlerDllL()
-// Loads the ConML handler
-// -----------------------------------------------------------------------------
-//
-void CSConPCConnSession::LoadConMLHandlerDllL()
-    {
-    TRACE_FUNC_ENTRY;
-    // Dynamically load DLL
-    User::LeaveIfError( iConMLHandlerLib.Load( KSConConMLHandlerLibName ) );
-    if ( iConMLHandlerLib.Type()[1] != KSConConMLHandlerUid )
-        {
-        LOGGER_WRITE( "CSConPCConnSession::LoadConMLHandlerDllL() : KSConConMLHandlerUidValue incorrect" );
-        iConMLHandlerLib.Close();
-        User::Leave( KErrNotFound );
-        }
-    TSConCreateCSConConMLHandlerFunc CreateCSConConMLHandlerL = 
-    (TSConCreateCSConConMLHandlerFunc)iConMLHandlerLib.Lookup(1);
-    
-    iConMLHandler = (CSConConMLHandler*)CreateCSConConMLHandlerL();
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConPCConnSession::ConMLL()
-// Callback function for ConML handler - parsed data processing starts
-// -----------------------------------------------------------------------------
-//
-void CSConPCConnSession::ConMLL( ConML_ConMLPtr_t aContent )
-    {
-    TRACE_FUNC_ENTRY;
-    TInt ret ( KErrNone );
-    
-#ifdef DEBUG_XML
-    iConMLHandler->GenerateDocument( aContent );
-    RFs fs;
-    User::LeaveIfError(fs.Connect());
-    CleanupClosePushL(fs);
-    RFile file;
-    
-    if ( file.Open(fs, KSConConMLDebugFile, EFileWrite) == KErrNone )
-        {
-        RFileWriteStream fws;
-        TInt fileSize;
-        file.Size( fileSize );
-        fws.Attach ( file, fileSize );
-        fws.PushL();
-        
-        TTime now;
-        now.HomeTime();
-        TDateTime time = now.DateTime();
-        TBuf8<16> timeLine;
-        timeLine.Format (KTimeFormat, time.Hour(), time.Minute(), 
-                                    time.Second(), time.MicroSecond() );
-        
-        fws.WriteL( timeLine );
-        _LIT8( KPutMessage, "__________PUT-MESSAGE" );
-        fws.WriteL( KPutMessage );
-        fws.WriteL( KXmlBegin );
-        fws.WriteL( iConMLHandler->XMLDocument().Ptr(), 
-                    iConMLHandler->XMLDocument().Length());
-        fws.WriteL(_L("\n\n"));
-        TRAP_IGNORE( fws.CommitL() );
-        fws.Close();
-        CleanupStack::PopAndDestroy( &fws );
-        }
-    file.Close();
-    CleanupStack::PopAndDestroy( &fs );
-    
-#endif
-
-
-    if ( aContent )
-        {
-        if ( aContent->execute )
-            {
-            ret = OptionsFromExecuteL( aContent->execute );
-            }
-        else if ( aContent->cancel )
-            {
-            ret = TaskCancelL( aContent->cancel );
-            }
-        else if ( aContent->getStatus )
-            {
-            ret = TaskGetStatusL ( aContent->getStatus );
-            }
-        else 
-            {
-            LOGGER_WRITE( "CSConPCConnSession::ConML() : No appropriate content in ConML -element " );
-            ret = KErrArgument;
-            }
-        }
-    else 
-        {
-        ret  = KErrArgument;
-        }
-    
-    // store result for later use
-    iResult = ret;
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConPCConnSession::OptionsFromExecuteL()
-// Handles data of an execute -element
-// -----------------------------------------------------------------------------
-//
-TInt CSConPCConnSession::OptionsFromExecuteL(ConML_ExecutePtr_t aContent )
-    {
-    TRACE_FUNC_ENTRY;
-    
-    TInt ret ( KErrNone );
-    if ( aContent->updateDeviceInfo )
-        {
-        ret = TaskUpdateDeviceInfoL( aContent->updateDeviceInfo);
-        }
-    else if ( aContent->listInstalledApps )
-        {
-        ret = TaskListInstalledAppsL( aContent->listInstalledApps);
-        }
-    else if ( aContent->install )
-        {
-        ret = TaskInstallL( aContent->install );
-        }       
-    else if ( aContent->unInstall )
-        {
-        ret = TaskUnInstallL( aContent->unInstall );
-        }
-    else if ( aContent->listDataOwners )
-        {
-        ret = TaskListDataOwnersL();
-        }
-    else if ( aContent->setBurMode )    
-        {
-        ret = TaskSetBURModeL( aContent->setBurMode );
-        }
-    else if ( aContent->getDataSize )
-        {
-        ret = TaskGetDataSizeL( aContent->getDataSize );
-        }
-    else if ( aContent->requestData )
-        {
-        ret = TaskRequestDataL( aContent->requestData );
-        }
-    else if ( aContent->listPublicFiles )
-        {
-        ret = TaskListPublicFilesL( aContent->listPublicFiles );
-        }
-    else if ( aContent->reboot )
-        {
-        ret = TaskRebootL();
-        }
-    else if ( aContent->getDataOwnerStatus )
-        {
-        ret = TaskGetDataOwnerStatusL( aContent->getDataOwnerStatus );      
-        }
-    else if ( aContent->supplyData )
-        {
-        ret = TaskSupplyDataL( aContent->supplyData );
-        }
-    else if ( aContent->getMetadata )
-        {
-        ret = TaskGetMetadataL( aContent->getMetadata );
-        }
-    else 
-        {
-        LOGGER_WRITE( "CSConPCConnSession::OptionsFromExecute() : No content " );
-        ret = KErrNotSupported;
-        }
-    LOGGER_WRITE_1( "CSConPCConnSession::OptionsFromExecute() : returned %d", ret );    
-    return ret;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConPCConnSession::TaskCancelL(ConML_CancelPtr_t aContent)
-// Sends a Cancel -task to PCCS service
-// -----------------------------------------------------------------------------
-//
-TInt CSConPCConnSession::TaskCancelL( ConML_CancelPtr_t aContent )
-    {
-    TRACE_FUNC_ENTRY;
-    TInt ret ( KErrNone );
-    TSConMethodName method ( ECancel );
-    CSConTask* task = CSConTask::NewLC( method );
-    if ( aContent->all )
-        {
-        task->iCancelTaskAll = ETrue;
-        }
-    if ( aContent->id )
-        {
-        task->iCancelTaskId = ( DesToInt( aContent->id->Data() ));
-        }
-    ret = iPCDHandler->PutTaskL( task );
-    CleanupStack::Pop( task );
-    LOGGER_WRITE_1( "CSConPCConnSession::TaskCancelL() : returned %d", ret );    
-    return ret;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CSConPCConnSession::TaskGetStatusL()
-// Sends a Get Status -task to PCCS service
-// -----------------------------------------------------------------------------
-//
-TInt CSConPCConnSession::TaskGetStatusL( ConML_GetStatusPtr_t aContent )
-    {
-    TRACE_FUNC_ENTRY;
-    TInt ret ( KErrNone );
-    TSConMethodName method ( EGetStatus );
-    CSConTask* task = CSConTask::NewLC( method );
-    if ( aContent->all )
-        {
-        task->iGetStatusParams->iAll = ETrue;
-        }
-    if ( aContent->id)
-        {
-        task->iGetStatusParams->iTaskId = ( DesToInt( aContent->id->Data() ));
-        }
-    ret = iPCDHandler->PutTaskL( task );
-    CleanupStack::Pop( task );
-    LOGGER_WRITE_1( "CSConPCConnSession::TaskGetStatusL() : returned %d", ret );    
-    return ret;
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConPCConnSession::TaskInstallL()
-// Sends an Install -task to PCCS service
-// -----------------------------------------------------------------------------
-//
-TInt CSConPCConnSession::TaskInstallL( ConML_InstallPtr_t aContent )
-    {
-    TRACE_FUNC_ENTRY;
-    TInt ret ( KErrNone );
-    TSConMethodName method ( EInstall );
-    CSConTask* task = CSConTask::NewLC( method);
-    task->iInstallParams->iMode = EUnknown;
-    if ( aContent->name )
-        {
-        // Unicode conversion from 8-bit to 16-bit
-        CnvUtfConverter::ConvertToUnicodeFromUtf8(task->iInstallParams->iPath, 
-                                                    aContent->name->Data());    
-        }
-    if ( aContent->instParams )
-        {
-        if ( aContent->instParams->param )
-            {
-            for ( ConML_ParamListPtr_t p = aContent->instParams->param; 
-                  p && p->data; p = p->next)
-                {
-                LOGGER_WRITE( "CSConPCConnSession::TaskInstallL() : Parameters found " );
-                if ( p->data->name )
-                    {
-                    LOGGER_WRITE( "CSConPCConnSession::TaskInstallL() : name param found " );
-                    TPtrC8 silent(KParamNameSilent);
-                    
-                    TInt comp = Mem::Compare((TUint8*)p->data->name->content, (TInt)p->data->name->length, silent.Ptr(), silent.Length());
-                    if( comp == 0)
-                        {
-                        // "Silent"-param found
-                        LOGGER_WRITE( "CSConPCConnSession::TaskInstallL() : Silent-param found " );
-                        if ( p->data->value )
-                            {
-                            TPtrC8 dataValue((TUint8*)p->data->value->content, (TInt)p->data->value->length);
-                            TInt value = DesToInt( dataValue );
-                            if (value == 1)
-                                {
-                                LOGGER_WRITE( "CSConPCConnSession::TaskInstallL() : ESilentInstall " );
-                                task->iInstallParams->iMode = ESilentInstall;
-                                }
-                            else if( value == 0 )
-                                {
-                                LOGGER_WRITE( "CSConPCConnSession::TaskInstallL() : EUnsilentInstall " );
-                                task->iInstallParams->iMode = EUnsilentInstall;
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-        }
-    ret = iPCDHandler->PutTaskL( task );
-    CleanupStack::Pop( task );
-    LOGGER_WRITE_1( "CSConPCConnSession::TaskInstallL() : returned %d", ret );    
-    return ret;
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConPCConnSession::TaskUnInstallL()
-// Sends an Uninstall -task to PCCS service
-// -----------------------------------------------------------------------------
-//
-TInt CSConPCConnSession::TaskUnInstallL( ConML_UnInstallPtr_t aContent )
-    {
-    TRACE_FUNC_ENTRY;
-    TInt ret ( KErrNone );
-    TSConMethodName method ( EUninstall );
-    CSConTask* task = CSConTask::NewLC( method );
-    task->iUninstallParams->iMode = EUnknown;
-    
-    if ( aContent->applications->application)       
-        {
-        for ( ConML_ApplicationListPtr_t p = 
-              aContent->applications->application; p && p->data; p = p->next )
-            {
-            if ( p->data )
-                {
-                if ( p->data->name )
-                    {
-                    // get application name
-                    HBufC* nameBuf = CnvUtfConverter::ConvertToUnicodeFromUtf8L( p->data->name->Data() );
-                    task->iUninstallParams->iName.Copy( nameBuf->Des() );
-                    delete nameBuf;
-                    nameBuf = NULL;
-                    }
-                if ( p->data->uid )
-                    {
-                    // parse uid:  UID # Type # Size # Version # Vendor # Parent app. name #
-                    // only UID and Vendor are needed from whole uid-field.
-                    LOGGER_WRITE( "CSConPCConnSession::TaskUnInstallL() : start parsing uid " );
-                    
-                    TPtrC8 buf( p->data->uid->Data() );
-                    
-                    RArray<TPtrC8> arr(6);
-                    CleanupClosePushL( arr );
-                    TBuf8<1> separator(KSConAppInfoSeparator);
-                    
-                    SplitL(buf, separator[0], arr);
-                    if ( arr.Count() >= 5 )
-                    	{
-                    	task->iUninstallParams->iUid = DesToUid( arr[0] );
-                    	task->iUninstallParams->iType = (TSConAppType)DesToInt( arr[1] );
-                    	HBufC* vendorBuf = CnvUtfConverter::ConvertToUnicodeFromUtf8L( arr[4] );
-                    	task->iUninstallParams->iVendor.Copy( vendorBuf->Des() );
-                    	delete vendorBuf;
-                    	vendorBuf = NULL;
-                    	}
-                    CleanupStack::PopAndDestroy( &arr );
-                    
-                        
-                    } // endif p->data->uid
-                }
-            }
-        }
-    
-    if ( aContent->instParams)
-        {
-        if ( aContent->instParams->param )
-            {
-            for ( ConML_ParamListPtr_t p = aContent->instParams->param; 
-                    p && p->data; p = p->next )
-                {
-                LOGGER_WRITE( "CSConPCConnSession::TaskUnInstallL() : Parameters found " );
-                if ( p->data->name )
-                    {
-                    LOGGER_WRITE( "CSConPCConnSession::TaskUnInstallL() : name param found " );
-                    TPtrC8 silent(KParamNameSilent);
-                    
-                    TInt comp = Mem::Compare((TUint8*)p->data->name->content, (TInt)p->data->name->length, silent.Ptr(), silent.Length());
-                    if( comp == 0)
-                        {
-                        // "Silent"-param found
-                        LOGGER_WRITE( "CSConPCConnSession::TaskUnInstallL() : Silent-param found " );
-                        if ( p->data->value )
-                            {
-                            TPtrC8 dataValue((TUint8*)p->data->value->content, (TInt)p->data->value->length);
-                            TInt value = DesToInt( dataValue );
-                            if ( value == 1 )
-                                {
-                                LOGGER_WRITE( "CSConPCConnSession::TaskUnInstallL() : ESilentInstall " );
-                                task->iUninstallParams->iMode = ESilentInstall;
-                                }
-                            else if ( value == 0 )
-                                {
-                                LOGGER_WRITE( "CSConPCConnSession::TaskUnInstallL() : EUnsilentInstall " );
-                                task->iUninstallParams->iMode = EUnsilentInstall;
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-        }
-    ret = iPCDHandler->PutTaskL( task );
-    CleanupStack::Pop( task );
-    LOGGER_WRITE_1( "CSConPCConnSession::TaskUnInstallL() : returned %d", ret );    
-    return ret;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConPCConnSession::SplitL(const TDesC& aText, const TChar aSeparator, 
-// RArray<TPtrC>& aArray)
-// Function splits string (eg "name1, name2, name3") into substrings.
-// -----------------------------------------------------------------------------
-//
-void CSConPCConnSession::SplitL(const TDesC8& aText, const TChar aSeparator, 
-                    RArray<TPtrC8>& aArray)
-    {
-    TRACE_FUNC_ENTRY;
-    TPtrC8 ptr;
-    ptr.Set(aText);
-
-    for (;;)
-        {
-        TInt pos=ptr.Locate(aSeparator);
-        if (pos==KErrNotFound)
-            {
-            aArray.AppendL(ptr);
-            break;
-            }
-
-        TPtrC8 subStr=ptr.Left(pos); // get pos characters starting from position 0
-        aArray.AppendL(subStr);
-
-        if (!(ptr.Length()>pos+1))
-            {
-            break;
-            }
-            
-        ptr.Set(ptr.Mid(pos+1));// get all characters starting from position pos+1
-        }
-    TRACE_FUNC_EXIT;
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConPCConnSession::TaskListInstalledAppsL()
-// Sends a List installed apps -task to PCCS service
-// -----------------------------------------------------------------------------
-//
-TInt CSConPCConnSession::TaskListInstalledAppsL(
-    ConML_ListInstalledAppsPtr_t aContent )
-    {
-    TRACE_FUNC_ENTRY;
-    TInt ret ( KErrNone );
-    TSConMethodName method ( EListInstalledApps );
-    CSConTask* task = CSConTask::NewLC( method );
-    if( aContent-> drives )
-        {
-        task->iListAppsParams->iDriveList = DriveList( aContent->drives->drive);
-        }
-    if ( aContent->all )
-        {
-        task->iListAppsParams->iAllApps = ETrue;
-        }
-    ret = iPCDHandler->PutTaskL( task );
-    CleanupStack::Pop( task );
-    LOGGER_WRITE_1( "CSConPCConnSession::TaskListInstalledAppsL() : returned %d", ret);
-    return ret;
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConPCConnSession::TaskListDataOwnersL()
-// Sends a List data owners -task to PCCS service
-// -----------------------------------------------------------------------------
-//
-TInt CSConPCConnSession::TaskListDataOwnersL()
-    {
-    TRACE_FUNC_ENTRY;
-    TInt ret ( KErrNone );
-    TSConMethodName method ( EListDataOwners );
-    CSConTask* task = CSConTask::NewLC( method );
-    ret = iPCDHandler->PutTaskL( task );
-    CleanupStack::Pop( task );
-    LOGGER_WRITE_1( "CSConPCConnSession::TaskListDataOwnersL() : returned %d", ret );    
-    return ret;
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConPCConnSession::TaskSetBURModeL()
-// Sends a Set BUR mode -task to PCCS service
-// -----------------------------------------------------------------------------
-//
-TInt CSConPCConnSession::TaskSetBURModeL(ConML_SetBURModePtr_t aContent )
-    {
-    TRACE_FUNC_ENTRY;
-    TInt ret ( KErrNone );
-    TSConMethodName method ( ESetBURMode );
-    CSConTask* task = CSConTask::NewLC( method );
-    if ( aContent->drives )
-        {
-        task->iBURModeParams->iDriveList = DriveList( aContent->drives->drive);
-        }
-    if ( aContent->partialType )
-        {
-        TInt intValue = DesToInt( aContent->partialType->Data() );
-        task->iBURModeParams->iPartialType = static_cast<TSConBurMode> (intValue) ;
-        }
-    if ( aContent->incType )
-        {
-        TInt intValue = DesToInt( aContent->incType->Data() );
-        task->iBURModeParams->iIncType = static_cast<TSConIncType> (intValue) ;
-        }
-    ret = iPCDHandler->PutTaskL( task );
-    CleanupStack::Pop( task );
-    LOGGER_WRITE_1( "CSConPCConnSession::TaskSetBURModeL() : returned %d", ret );    
-    return ret;
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConPCConnSession::TaskGetDataSizeL()
-// Sends a Get data size -task to PCCS service
-// -----------------------------------------------------------------------------
-//
-TInt CSConPCConnSession::TaskGetDataSizeL(ConML_GetDataSizePtr_t aContent )
-    {
-    TRACE_FUNC_ENTRY;
-    TInt ret ( KErrNone );
-    TSConMethodName method ( EGetDataSize );
-    CSConTask* task = CSConTask::NewLC( method );
-    if ( aContent->dataOwners )
-        {
-        for ( ConML_SIDListPtr_t p = aContent->dataOwners->sid; 
-                p && p->data; p=p->next )
-            {
-            CSConDataOwner* dataOwner = new (ELeave) CSConDataOwner();
-            if ( p->data->type )
-                {
-                dataOwner->iType = TSConDOType (DesToInt( 
-                    p->data->type->Data() ));
-                }
-            if (p->data->uid )
-                {
-                if( !IsJavaHash( p->data->uid->Data() ) )
-                    {
-                    dataOwner->iUid = DesToUid( p->data->uid->Data() );
-                    }
-                else
-                    {
-                    TPtr hashPtr = DesToHashLC( p->data->uid->Data() );
-                    dataOwner->iJavaHash = HBufC::NewL( hashPtr.Size() );
-                    dataOwner->iJavaHash->Des().Copy( hashPtr );
-                    CleanupStack::PopAndDestroy(); //DesToHashLC()
-                    }
-                }
-            if ( p->data->drives )
-                {
-                dataOwner->iDriveList = DriveList ( p->data->drives->drive );
-                }
-            if ( p->data->transferDataType )
-                {
-                TInt intValue = DesToInt( p->data->transferDataType->Data() );
-                dataOwner->iTransDataType = static_cast<TSConTransferDataType> (intValue);
-                }
-            task->iGetDataSizeParams->iDataOwners.Append( dataOwner );
-            }
-        }
-    ret = iPCDHandler->PutTaskL( task );
-    CleanupStack::Pop( task );
-    LOGGER_WRITE_1( "CSConPCConnSession::TaskGetDataSizeL() : returned %d", ret );    
-    return ret;
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConPCConnSession::TaskRequestDataL()
-// Sends a Request data -task to PCCS service
-// -----------------------------------------------------------------------------
-//
-TInt CSConPCConnSession::TaskRequestDataL(ConML_RequestDataPtr_t aContent )
-    {
-    TRACE_FUNC_ENTRY;
-    TInt ret ( KErrNone );
-    TSConMethodName method ( ERequestData );
-    CSConTask* task = CSConTask::NewLC( method );
-    if ( aContent )
-        {
-        if ( aContent->sid )
-            {
-            for ( ConML_SIDListPtr_t p=aContent->sid; p && p->data; p=p->next )
-                {
-                if ( p->data->type )
-                    {
-                    task->iRequestDataParams->iDataOwner->iType = 
-                    TSConDOType ( DesToInt ( p->data->type->Data() ) );
-                    }
-                if ( p->data->uid )
-                    {
-                    if( !IsJavaHash( p->data->uid->Data() ) )
-                        {
-                        task->iRequestDataParams->iDataOwner->iUid = DesToUid(
-                                                     p->data->uid->Data() );
-                        }
-                    else
-                        {
-                        TPtr hashPtr = DesToHashLC( p->data->uid->Data() );
-                        task->iRequestDataParams->iDataOwner->iJavaHash = HBufC::NewL( hashPtr.Size() );
-                        task->iRequestDataParams->iDataOwner->iJavaHash->Des().Copy( hashPtr );
-                        CleanupStack::PopAndDestroy(); //DesToHashLC()
-                        }                                 
-                    }
-                if ( p->data->drives )
-                    {
-                    task->iRequestDataParams->iDataOwner->iDriveList = 
-                    DriveList ( p->data->drives->drive );
-                    }
-                if ( p->data->transferDataType )
-                    {
-                    TInt intValue = DesToInt( p->data->transferDataType->Data() );
-                    task->iRequestDataParams->iDataOwner->iTransDataType =
-                        static_cast<TSConTransferDataType> (intValue);
-                    }
-                }
-            }
-        }
-    ret = iPCDHandler->PutTaskL( task );
-    CleanupStack::Pop( task );
-    LOGGER_WRITE_1( "CSConPCConnSession::TaskRequestDataL() : returned %d", ret );    
-    return ret;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConPCConnSession::TaskUpdateDeviceInfoL()
-// Sends a Update device info -task to PCCS service
-// -----------------------------------------------------------------------------
-//
-TInt CSConPCConnSession::TaskUpdateDeviceInfoL(
-    ConML_UpdateDeviceInfoPtr_t aContent )
-    {
-    TRACE_FUNC_ENTRY;
-    TInt ret ( KErrNone );
-    TSConMethodName method ( EUpdateDeviceInfo );
-    CSConTask* task = CSConTask::NewLC( method );
-
-    if ( aContent->deviceInfo)
-        {
-        ConML_DeviceInfoPtr_t dPtr = aContent->deviceInfo;
-        if ( dPtr->version )
-            {
-            task->iDevInfoParams->iVersion.Copy( dPtr->version->Data());
-            }
-        if ( dPtr->maxObjectSize )
-            {
-            task->iDevInfoParams->iMaxObjectSize = DesToInt(
-                                            dPtr->maxObjectSize->Data());
-            }
-        if ( dPtr->supportedMethods )
-            {
-            ConML_SupportedMethodsPtr_t smPtr = dPtr->supportedMethods;
-            if ( smPtr->install )
-                {
-                task->iDevInfoParams->iInstallSupp = ETrue; 
-                }
-            if ( smPtr->unInstall )
-                {
-                task->iDevInfoParams->iUninstallSupp = ETrue;
-                }
-            if ( smPtr->listInstalledApps )
-                {
-                task->iDevInfoParams->iInstAppsSupp = ETrue;
-                }
-            if ( smPtr->listDataOwners )
-                {
-                task->iDevInfoParams->iDataOwnersSupp = ETrue;
-                }
-            if ( smPtr->setBurMode )
-                {
-                task->iDevInfoParams->iSetBURModeSupp = ETrue;
-                }
-            if ( smPtr->getDataSize )
-                {
-                task->iDevInfoParams->iGetSizeSupp = ETrue;
-                }
-            if ( smPtr->requestData )
-                {
-                task->iDevInfoParams->iReqDataSupp = ETrue;
-                }
-            if ( smPtr->supplyData )
-                {
-                task->iDevInfoParams->iSupplyDataSupp = ETrue;  
-                }
-            if ( smPtr->reboot )
-                {
-                task->iDevInfoParams->iRebootSupp = ETrue;
-                }
-            }
-        }
-    ret = iPCDHandler->PutTaskL( task );
-    CleanupStack::Pop( task );
-    LOGGER_WRITE_1( "CSConPCConnSession::TaskUpdateDeviceInfoL() : returned %d", ret );    
-    return ret;
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConPCConnSession::TaskListPublicFilesL()
-// Sends a List public files -task to PCCS service
-// -----------------------------------------------------------------------------
-//
-TInt CSConPCConnSession::TaskListPublicFilesL(
-    ConML_ListPublicFilesPtr_t aContent )
-    {
-    TRACE_FUNC_ENTRY;
-    TInt ret ( KErrNone );
-    TSConMethodName method ( EListPublicFiles );
-    CSConTask* task = CSConTask::NewLC( method );
-    if ( aContent->sid )
-        {
-        for ( ConML_SIDListPtr_t p = aContent->sid; p && p->data; p = p->next )
-            {
-            CSConDataOwner* dataOwner = new (ELeave) CSConDataOwner();
-            
-            if ( p->data->type )                
-                {
-                dataOwner->iType = TSConDOType ( DesToInt( 
-                                        p->data->type->Data() ) );
-                }
-            if ( p->data->uid )
-                {
-                if( !IsJavaHash( p->data->uid->Data() ) )
-                    {
-                    dataOwner->iUid = DesToUid( p->data->uid->Data() );
-                    }
-                else
-                    {
-                    TPtr hashPtr = DesToHashLC( p->data->uid->Data() );
-                    dataOwner->iJavaHash = HBufC::NewL( hashPtr.Size() );
-                    dataOwner->iJavaHash->Des().Copy( hashPtr );
-                    CleanupStack::PopAndDestroy(); //DesToHashLC()
-                    }
-                }
-            if ( p->data->drives )
-                {
-                dataOwner->iDriveList = DriveList ( p->data->drives->drive );
-                }
-            if ( p->data->packageInfo && p->data->packageInfo->name )
-                {
-                // Unicode conversion from 8-bit to 16-bit
-                CnvUtfConverter::ConvertToUnicodeFromUtf8(
-                        dataOwner->iPackageName, 
-                        p->data->packageInfo->name->Data());
-                }
-            task->iPubFilesParams->iDataOwners.Append( dataOwner );
-            }
-        }
-    ret = iPCDHandler->PutTaskL( task );
-    CleanupStack::Pop( task );
-    LOGGER_WRITE_1( "CSConPCConnSession::TaskListPublicFilesL() : returned %d", ret );    
-    return ret;
-    }
-        
-// -----------------------------------------------------------------------------
-// CSConPCConnSession::TaskSupplyDataL()
-// Sends a Supply data -task to PCCS service
-// -----------------------------------------------------------------------------
-//
-TInt CSConPCConnSession::TaskSupplyDataL ( ConML_SupplyDataPtr_t aContent )
-    {
-    TRACE_FUNC_ENTRY;
-    TInt ret ( KErrNone );
-    TSConMethodName method ( ESupplyData );
-    CSConTask* task = CSConTask::NewLC( method );
-    if (aContent )
-        {
-        for ( ConML_SIDListPtr_t p = aContent->sid; p && p->data; p = p->next )
-            {
-            if ( p->data->type )
-                {
-                task->iSupplyDataParams->iDataOwner->iType = 
-                TSConDOType ( DesToInt( p->data->type->Data() ) );
-                }
-            if ( p->data->uid )
-                {
-                if( !IsJavaHash( p->data->uid->Data() ) )
-                    {
-                    task->iSupplyDataParams->iDataOwner->iUid = DesToUid( 
-                                                p->data->uid->Data() );
-                    }
-                else
-                    {
-                    TPtr hashPtr = DesToHashLC( p->data->uid->Data() );
-                    task->iSupplyDataParams->iDataOwner->iJavaHash = HBufC::NewL( hashPtr.Size() );
-                    task->iSupplyDataParams->iDataOwner->iJavaHash->Des().Copy( hashPtr );
-                    CleanupStack::PopAndDestroy(); //DesToHashLC()
-                    }
-                }
-            if ( p->data->drives )
-                {
-                task->iSupplyDataParams->iDataOwner->iDriveList = 
-                DriveList ( p->data->drives->drive );
-                }
-            if ( p->data->transferDataType )
-                {
-                TInt intValue = DesToInt ( p->data->transferDataType->Data() );
-                task->iSupplyDataParams->iDataOwner->iTransDataType =
-                    static_cast<TSConTransferDataType> (intValue);
-                }
-            if ( p->data->data )
-                {
-                task->iSupplyDataParams->iRestoreData = HBufC8::NewL(
-                                            p->data->data->Data().Size() );
-                *task->iSupplyDataParams->iRestoreData = p->data->data->Data();
-                }
-            if ( p->data->moreData )
-                {
-                task->iSupplyDataParams->iMoreData = ETrue;
-                }
-            else
-                {
-                task->iSupplyDataParams->iMoreData = EFalse;
-                }
-            }
-        }
-    ret = iPCDHandler->PutTaskL( task );
-    CleanupStack::Pop( task );
-    LOGGER_WRITE_1( "CSConPCConnSession::TaskSupplyDataL() : returned %d", ret );    
-    return ret;
-}
-
-// -----------------------------------------------------------------------------
-// CSConPCConnSession::TaskGetDataOwnerStatusL()
-// Sends a Get data owner status -task to PCCS service
-// -----------------------------------------------------------------------------
-//
-TInt CSConPCConnSession::TaskGetDataOwnerStatusL
-    ( ConML_GetDataOwnerStatusPtr_t aContent )
-    {
-    TRACE_FUNC_ENTRY;
-    TInt ret ( KErrNone );
-    TSConMethodName method ( EGetDataOwnerStatus );
-    CSConTask* task = CSConTask::NewLC( method );
-
-    if ( aContent->dataOwners )
-        {
-        for ( ConML_SIDListPtr_t p = aContent->dataOwners->sid; 
-                p && p->data; p=p->next )
-            {
-            CSConDataOwner* dataOwner = new (ELeave) CSConDataOwner();
-            if ( p->data->type )    
-                {
-                dataOwner->iType = TSConDOType (DesToInt(
-                                     p->data->type->Data() ));
-                }
-            if ( p->data->uid )             
-                {
-                if( !IsJavaHash( p->data->uid->Data() ) )
-                    {
-                    dataOwner->iUid = DesToUid( p->data->uid->Data() );
-                    }
-                else
-                    {
-                    TPtr hashPtr = DesToHashLC( p->data->uid->Data() );
-                    dataOwner->iJavaHash = HBufC::NewL( hashPtr.Size() );
-                    dataOwner->iJavaHash->Des().Copy( hashPtr );
-                    CleanupStack::PopAndDestroy(); //DesToHashLC()
-                    }
-                }           
-            task->iGetDataOwnerParams->iDataOwners.Append( dataOwner );
-            }
-        }
-    ret = iPCDHandler->PutTaskL( task );
-    CleanupStack::Pop( task );
-    LOGGER_WRITE_1( "CSConPCConnSession::TaskGetDataOwnerStatusL() : returned %d", ret );    
-    return ret; 
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConPCConnSession::TaskRebootL()
-// Sends a Reboot -task to PCCS service
-// -----------------------------------------------------------------------------
-//
-TInt CSConPCConnSession::TaskRebootL( )
-    {
-    TRACE_FUNC_ENTRY;
-    TInt ret ( KErrNone );
-    TSConMethodName method ( EReboot );
-    CSConTask* task = CSConTask::NewLC( method );
-    ret = iPCDHandler->PutTaskL( task );
-    CleanupStack::Pop( task );
-    LOGGER_WRITE_1( "CSConPCConnSession::TaskRebootL() : returned %d", ret );    
-    return ret;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConPCConnSession::TaskGetMetadataL()
-// Sends a GetMetadata -task to PCCS service
-// -----------------------------------------------------------------------------
-//
-TInt CSConPCConnSession::TaskGetMetadataL( ConML_GetMetadataPtr_t aContent )
-    {
-    TRACE_FUNC_ENTRY;
-    TInt ret ( KErrNone );
-    TSConMethodName method ( EGetMetadata );
-    CSConTask* task = CSConTask::NewLC( method );
-    if( aContent )
-        {
-        if ( aContent->filename )
-            {
-            // Unicode conversion from 8-bit to 16-bit
-            CnvUtfConverter::ConvertToUnicodeFromUtf8(task->iGetMetadataParams->iFilename, 
-                                                        aContent->filename->Data());    
-            }
-        }
-    ret = iPCDHandler->PutTaskL( task );
-    CleanupStack::Pop( task );
-    LOGGER_WRITE_1( "CSConPCConnSession::TaskGetMetadataL() : returned %d", ret );    
-    return ret;
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConPCConnSession::TaskRebootL()
-// Appends a status element from the reply data of PCCS
-// -----------------------------------------------------------------------------
-//
-void CSConPCConnSession::AppendStatusL( 
-    ConML_ConMLPtr_t aContent, CSConStatusReply* reply )
-    {
-    TRACE_FUNC_ENTRY;
-    
-    if ( !reply )
-        {
-        LOGGER_WRITE( "CSConPCConnSession::AppendStatus() : No data in reply!" );
-        return;
-        }
-    aContent->status = new ( ELeave ) ConML_Status_t();
-        
-    if ( reply->iTasks.Count() > 0 ) 
-        {
-        for ( TInt i=0; i < reply->iTasks.Count(); i ++)
-            {
-            ConML_TaskListPtr_t task = new ( ELeave ) ConML_TaskList_t();
-            CleanupStack::PushL( task );
-            GenericListAddL ( &aContent->status->task, task );
-            CleanupStack::Pop(); // task
-            
-            task->data = new ( ELeave ) ConML_Task_t();
-            task->data->id = new ( ELeave ) pcdata_t();
-            task->data->id->SetDataL ( IntToDesLC(reply->iTasks[i]->iTaskId) );
-            CleanupStack::PopAndDestroy(); // IntToDesLC 
-            TSConMethodName method ( reply->iTasks[i]->iMethod );
-            
-            switch ( method )
-                {
-                case EUpdateDeviceInfo:
-                    task->data->updateDeviceInfo = 
-                        new ( ELeave ) ConML_UpdateDeviceInfo_t();
-                    task->data->updateDeviceInfo->results = 
-                        new ( ELeave ) ConML_Results_t();
-                    AppendUpdateDeviceInfoResultsL( 
-                        task->data->updateDeviceInfo->results,
-                        reply->iTasks[i]->iDevInfoParams );
-                    break;
-                
-                case ESetBURMode:
-                    task->data->setBurMode = 
-                        new ( ELeave ) ConML_SetBURMode_t();
-                    task->data->setBurMode->results = 
-                        new ( ELeave) ConML_Results_t();
-                    AppendSetBURModeResultsL( 
-                        task->data->setBurMode->results,
-                        reply->iTasks[i]->iBURModeParams );
-                    break;
-            
-                case EListInstalledApps:
-                    task->data->listInstalledApps = 
-                        new ( ELeave ) ConML_ListInstalledApps_t();
-                    task->data->listInstalledApps->results = 
-                        new ( ELeave ) ConML_Results_t();
-                    AppendListInstalledAppsResultsL( 
-                        task->data->listInstalledApps->results,
-                        reply->iTasks[i]->iListAppsParams);
-                    break;
-                
-                case EInstall:
-                    task->data->install = new ( ELeave ) ConML_Install_t();
-                    task->data->install->results = 
-                        new ( ELeave ) ConML_Results_t();
-                    AppendInstallResultsL( 
-                        task->data->install->results, 
-                        reply->iTasks[i]->iInstallParams );
-                    break;
-            
-                case EUninstall:
-                    task->data->unInstall = new ( ELeave ) ConML_UnInstall_t();
-                    task->data->unInstall->results = 
-                        new ( ELeave ) ConML_Results_t();
-                    AppendUninstallResultsL(
-                        task->data->unInstall->results, 
-                        reply->iTasks[i]->iUninstallParams );
-                    break;
-                
-                case EListDataOwners:
-                    task->data->listDataOwners = 
-                        new ( ELeave ) ConML_ListDataOwners_t();
-                    task->data->listDataOwners->results = 
-                        new ( ELeave ) ConML_Results_t();
-                    AppendListDataOwnersResultsL( 
-                        task->data->listDataOwners->results, 
-                        reply->iTasks[i]->iListDataOwnersParams );
-                    break;
-                
-                case EGetDataOwnerStatus:
-                    task->data->getDataOwnerStatus = 
-                        new ( ELeave ) ConML_GetDataOwnerStatus_t();
-                    task->data->getDataOwnerStatus->results = 
-                        new ( ELeave ) ConML_Results_t();
-                    AppendGetDataOwnerStatusResultsL( 
-                        task->data->getDataOwnerStatus->results,
-                        reply->iTasks[i]->iGetDataOwnerParams);
-                    break;
-                
-                case EGetDataSize:
-                    task->data->getDataSize = 
-                        new ( ELeave ) ConML_GetDataSize_t();
-                    task->data->getDataSize->results = 
-                        new ( ELeave ) ConML_Results_t();
-                    AppendGetDataSizeResultsL( 
-                        task->data->getDataSize->results,
-                        reply->iTasks[i]->iGetDataSizeParams );
-                    break;
-                                
-                case EListPublicFiles:
-                    task->data->listPublicFiles = 
-                        new ( ELeave ) ConML_ListPublicFiles_t();
-                    task->data->listPublicFiles->results = 
-                        new ( ELeave ) ConML_Results_t();
-                    AppendListPublicFilesResultsL ( 
-                        task->data->listPublicFiles->results,
-                        reply->iTasks[i]->iPubFilesParams );
-                    break;
-            
-                case ERequestData:
-                    task->data->requestData = 
-                        new ( ELeave ) ConML_RequestData_t();
-                    task->data->requestData->results = 
-                        new ( ELeave ) ConML_Results_t();
-                    AppendRequestDataResultsL( 
-                        task->data->requestData->results, 
-                        reply->iTasks[i]->iRequestDataParams );
-                    break;
-                
-                case ESupplyData:
-                    task->data->supplyData = 
-                        new ( ELeave ) ConML_SupplyData_t();
-                    task->data->supplyData->results = 
-                        new ( ELeave ) ConML_Results_t();
-                    AppendSupplyDataResultsL ( 
-                        task->data->supplyData->results, 
-                        reply->iTasks[i]->iSupplyDataParams );
-                    break;
-                
-                case EGetMetadata:
-                    task->data->getMetadata = 
-                        new ( ELeave ) ConML_GetMetadata_t();
-                    task->data->getMetadata->results = 
-                        new ( ELeave ) ConML_Results_t();
-                    AppendGetMetadataResultsL ( 
-                        task->data->getMetadata->results, 
-                        reply->iTasks[i]->iGetMetadataParams );
-                    break;
-                    
-                default:
-                    LOGGER_WRITE_1( "CSConPCConnSession:: AppendStatus() : Unknown method  %d ", method );
-                    break;
-                }
-            }
-        }
-    else
-        {
-        LOGGER_WRITE( "CSConPCConnSession::AppendStatus() : No Task " );     
-        }
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConPCConnSession::AppendUpdateDeviceInfoResultsL()
-// Appends a update device info -element from the reply data of PCCS
-// -----------------------------------------------------------------------------
-//
-void CSConPCConnSession::AppendUpdateDeviceInfoResultsL 
-    ( ConML_ResultsPtr_t aContent, CSConUpdateDeviceInfo* aResult )
-    {
-    TRACE_FUNC_ENTRY;
-    if ( aResult )  
-        {
-        if ( aResult->iComplete )
-            {
-            aContent->complete = new ( ELeave ) pcdata_t();
-            }
-        AppendProgressL ( aContent, aResult->iProgress );
-    
-        aContent->deviceInfo = new ( ELeave ) ConML_DeviceInfo_t();
-        aContent->deviceInfo->version = new ( ELeave ) pcdata_t();
-        aContent->deviceInfo->version->SetDataL ( aResult->iVersion );
-
-        aContent->deviceInfo->supportedMethods = 
-            new ( ELeave ) ConML_SupportedMethods_t();
-            
-        if ( aResult->iInstallSupp )
-            {
-            aContent->deviceInfo->supportedMethods->install = 
-                new ( ELeave ) pcdata_t();
-            }
-        if ( aResult->iUninstallSupp )
-            {
-            aContent->deviceInfo->supportedMethods->unInstall = 
-                new ( ELeave ) pcdata_t();
-            }
-        if ( aResult->iInstAppsSupp )
-            {
-            aContent->deviceInfo->supportedMethods->listInstalledApps = 
-                new ( ELeave ) pcdata_t();
-            }
-        if ( aResult->iDataOwnersSupp )
-            {
-            aContent->deviceInfo->supportedMethods->listDataOwners = 
-                new ( ELeave ) pcdata_t();
-            }
-        if ( aResult->iSetBURModeSupp )
-            {
-            aContent->deviceInfo->supportedMethods->setBurMode = 
-                new ( ELeave ) pcdata_t();
-            }
-        if ( aResult->iGetSizeSupp )
-            {
-            aContent->deviceInfo->supportedMethods->getDataSize = 
-                new ( ELeave ) pcdata_t();
-            }
-        if ( aResult->iReqDataSupp )
-            {
-            aContent->deviceInfo->supportedMethods->requestData = 
-                new (ELeave ) pcdata_t();
-            }
-        if ( aResult->iSupplyDataSupp )
-            {
-            aContent->deviceInfo->supportedMethods->supplyData = 
-                new ( ELeave ) pcdata_t();
-            }
-        if ( aResult->iRebootSupp )
-            {
-            aContent->deviceInfo->supportedMethods->reboot = 
-                new ( ELeave ) pcdata_t();
-            }
-        aContent->deviceInfo->maxObjectSize = new ( ELeave ) pcdata_t();
-        aContent->deviceInfo->maxObjectSize->SetDataL ( IntToDesLC(
-            aResult->iMaxObjectSize ));
-        CleanupStack::PopAndDestroy(); // IntToDesLC
-        }
-    TRACE_FUNC_EXIT;
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConPCConnSession::AppendSetBURModeResultsL()
-// Appends a Set BUR mode -element from the reply data of PCCS
-// -----------------------------------------------------------------------------
-//
-void CSConPCConnSession::AppendSetBURModeResultsL (
-    ConML_ResultsPtr_t aContent, CSConSetBURMode* aResult )
-    {
-    TRACE_FUNC_ENTRY;
-    if ( aResult )
-        {
-        if ( aResult->iComplete )
-            {
-            aContent->complete = new ( ELeave ) pcdata_t();
-            }
-        AppendProgressL ( aContent, aResult->iProgress );
-        }
-    TRACE_FUNC_EXIT;
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConPCConnSession::AppendListInstalledAppsResultsL()
-// Appends a List installed apps -element from the reply data of PCCS
-// -----------------------------------------------------------------------------
-//
-void CSConPCConnSession::AppendListInstalledAppsResultsL ( 
-    ConML_ResultsPtr_t aContent, CSConListInstApps* aResult )
-    {
-    TRACE_FUNC_ENTRY;
-
-    if ( aResult )
-        {
-        if ( aResult->iComplete )
-            {
-            aContent->complete = new ( ELeave ) pcdata_t();
-            }
-        AppendProgressL ( aContent, aResult->iProgress );
-        
-        if ( aResult->iApps.Count() > 0 )
-            {
-            // 5 * KMaxFileName should be enought
-            // ( 4 items of TFileName and uid + type + size + 6* "#" )
-            HBufC8* buf = HBufC8::NewLC( 5 * KMaxFileName );
-            TPtr8 ptrBuf = buf->Des();
-            
-            aContent->applications = new ( ELeave ) ConML_Applications_t();
-            for ( TInt i=0; i<aResult->iApps.Count(); i++)
-                {
-                ConML_ApplicationListPtr_t app = 
-                    new ( ELeave )ConML_ApplicationList_t();
-                CleanupStack::PushL ( app );
-                GenericListAddL ( &aContent->applications->application, app );
-                CleanupStack::Pop(); // app
-                
-                app->data = new ( ELeave ) ConML_Application_t();
-                app->data->name = new ( ELeave ) pcdata_t();
-                app->data->name->SetDataL( BufToDesLC( 
-                    aResult->iApps[i]->iName));
-                CleanupStack::PopAndDestroy(); // BufToDesLC
-                
-                // create uid: UID # Type # Size # Version # Vendor # Parent app. name #
-                LOGGER_WRITE( "CSConPCConnSession::AppendListInstalledAppsResultsL() : Create Uid" );
-                
-                ptrBuf.Copy( UidToDesLC( aResult->iApps[i]->iUid ) );
-                CleanupStack::PopAndDestroy(); // UidToDesLC
-                
-                ptrBuf.Append( KSConAppInfoSeparator );
-                
-                ptrBuf.Append( IntToDesLC(aResult->iApps[i]->iType ));
-                CleanupStack::PopAndDestroy(); // IntToDesLC
-                
-                ptrBuf.Append( KSConAppInfoSeparator );
-                
-                ptrBuf.Append( IntToDesLC(aResult->iApps[i]->iSize ) );
-                CleanupStack::PopAndDestroy(); // IntToDesLC
-                
-                ptrBuf.Append( KSConAppInfoSeparator );
-                ptrBuf.Append( aResult->iApps[i]->iVersion );
-                
-                ptrBuf.Append( KSConAppInfoSeparator );
-                ptrBuf.Append( BufToDesLC( aResult->iApps[i]->iVendor ) );
-                CleanupStack::PopAndDestroy(); // BufToDesLC
-                
-                ptrBuf.Append( KSConAppInfoSeparator );
-                ptrBuf.Append( BufToDesLC( aResult->iApps[i]->iParentName ) );
-                CleanupStack::PopAndDestroy(); // BufToDesLC
-                
-                ptrBuf.Append( KSConAppInfoSeparator );
-                
-                LOGGER_WRITE( "CSConPCConnSession::AppendListInstalledAppsResultsL() : set data" );
-                app->data->uid = new ( ELeave ) pcdata_t();
-                app->data->uid->SetDataL( *buf );
-                    
-                LOGGER_WRITE( "CSConPCConnSession::AppendListInstalledAppsResultsL() : Info added" );
-                }
-            CleanupStack::PopAndDestroy(buf);       
-            }
-        }
-    TRACE_FUNC_EXIT;
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConPCConnSession::AppendListPublicFilesResultsL()
-// Appends a List public files -element from the reply data of PCCS
-// -----------------------------------------------------------------------------
-//
-void CSConPCConnSession::AppendListPublicFilesResultsL ( 
-    ConML_ResultsPtr_t aContent, CSConListPublicFiles* aResult )
-    {
-    TRACE_FUNC_ENTRY;
-    if ( aResult )
-        {
-        if ( aResult->iComplete )
-            {
-            aContent->complete = new ( ELeave ) pcdata_t();
-            }
-        AppendProgressL ( aContent, aResult->iProgress );
-        
-        if ( aResult->iFiles.Count() > 0 )
-            {
-            aContent->files = new ( ELeave ) ConML_Files_t();
-            for ( TInt i=0;i<aResult->iFiles.Count(); i++ )
-                {
-                ConML_FileListPtr_t file = new ( ELeave ) ConML_FileList_t();
-                CleanupStack::PushL( file );
-                GenericListAddL ( &aContent->files->file, file );
-                CleanupStack::Pop(); // file
-                
-                file->data = new ( ELeave ) ConML_File_t();
-                file->data->name = new ( ELeave ) pcdata_t();
-                file->data->name->SetDataL( BufToDesLC (
-                    aResult->iFiles[i]->iPath ) );
-                CleanupStack::PopAndDestroy(); // BufToDesLC
-                
-                file->data->modified = new ( ELeave ) pcdata_t();
-                file->data->modified->SetDataL( BufToDesLC (
-                    aResult->iFiles[i]->iModified ) );
-                CleanupStack::PopAndDestroy(); // BufToDesLC
-                
-                file->data->size = new ( ELeave ) pcdata_t();
-                file->data->size->SetDataL( IntToDesLC ( 
-                    aResult->iFiles[i]->iSize ) );
-                CleanupStack::PopAndDestroy(); // IntToDesLC
-                
-                file->data->userPerm = new ( ELeave ) pcdata_t();
-                switch ( aResult->iFiles[i]->iUserPerm )
-                    {
-                    case EPermReadOnly:
-                        file->data->userPerm->SetDataL ( KSConPermReadOnly );
-                        break;
-                    
-                    case EPermNormal:
-                        file->data->userPerm->SetDataL ( KSConPermNormal );
-                        break;
-                    
-                    default:
-                        LOGGER_WRITE( "CSConPCConnSession:: AppendListPublicFilesResultsL() : Unknown userPerm! " );
-                        break;          
-                    }
-                }
-        }
-    }
-    TRACE_FUNC_EXIT;
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConPCConnSession::AppendRequestDataResultsL()
-// Appends a Request data -element from the reply data of PCCS
-// -----------------------------------------------------------------------------
-//
-void CSConPCConnSession::AppendRequestDataResultsL( 
-    ConML_ResultsPtr_t aContent, CSConRequestData* aResult )
-    {
-    TRACE_FUNC_ENTRY;
-    if ( aResult )
-        {
-        if ( aResult->iComplete )
-            {
-            aContent->complete = new ( ELeave ) pcdata_t();
-            }
-        AppendProgressL ( aContent, aResult->iProgress );
-        
-        if ( aResult->iMoreData )
-            {
-            aContent->moreData = new ( ELeave ) pcdata_t();
-            }
-        if ( aResult->iBackupData )
-            {
-            aContent->data = new ( ELeave ) pcdata_t();
-            aContent->data->SetDataL( aResult->iBackupData->Des() );
-            }
-        }
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConPCConnSession::AppendSupplyDataResultsL()
-// Appends a Supply data -element from the reply data of PCCS
-// -----------------------------------------------------------------------------
-//
-void CSConPCConnSession::AppendSupplyDataResultsL( 
-    ConML_ResultsPtr_t aContent, CSConSupplyData* aResult )
-    {
-    TRACE_FUNC_ENTRY;
-    if ( aResult )
-        {
-        if ( aResult->iComplete )
-            {
-            aContent->complete = new ( ELeave ) pcdata_t();
-            }
-        AppendProgressL( aContent, aResult->iProgress );
-        }
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConPCConnSession::AppendInstallResultsL()
-// Appends an Install -element from the reply data of PCCS
-// -----------------------------------------------------------------------------
-//
-void CSConPCConnSession::AppendInstallResultsL( 
-    ConML_ResultsPtr_t aContent, CSConInstall* aResult )
-    {
-    TRACE_FUNC_ENTRY;
-    if ( aResult )
-        {
-        if ( aResult->iComplete )
-            {
-            aContent->complete = new ( ELeave ) pcdata_t();
-            }
-        AppendProgressL( aContent, aResult->iProgress );
-        }
-    TRACE_FUNC_EXIT;
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConPCConnSession::AppendUninstallResultsL()
-// Appends an Uninstall -element from the reply data of PCCS
-// -----------------------------------------------------------------------------
-//
-void CSConPCConnSession::AppendUninstallResultsL( 
-    ConML_ResultsPtr_t aContent, CSConUninstall* aResult )
-    {
-    TRACE_FUNC_ENTRY;
-    if ( aResult )
-        {
-        if ( aResult->iComplete )
-            {
-            LOGGER_WRITE( "CSConPCConnSession::AppendUninstallResultsL() Complete" );
-            aContent->complete = new ( ELeave ) pcdata_t();
-            }
-        LOGGER_WRITE_1( "CSConPCConnSession::AppendUninstallResultsL() iProgress: %d", aResult->iProgress );
-        AppendProgressL( aContent, aResult->iProgress );
-        }
-    TRACE_FUNC_EXIT;
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConPCConnSession::AppendListDataOwnersResultsL()
-// Appends a List data owners -element from the reply data of PCCS
-// -----------------------------------------------------------------------------
-//
-void CSConPCConnSession::AppendListDataOwnersResultsL ( 
-    ConML_ResultsPtr_t aContent, CSConListDataOwners* aResult  )
-    {
-    TRACE_FUNC_ENTRY;
-    if ( aResult )  
-        {
-        if ( aResult->iComplete )
-            {
-            aContent->complete = new ( ELeave ) pcdata_t();
-            }
-        AppendProgressL( aContent, aResult->iProgress );
-        
-        if ( aResult->iDataOwners.Count() > 0 )
-            {
-            aContent->dataOwners = new ( ELeave ) ConML_DataOwners_t();
-            for ( TInt i=0; i < aResult->iDataOwners.Count(); i ++)
-                {
-                ConML_SIDListPtr_t sid = new ( ELeave ) ConML_SIDList_t();
-                CleanupStack::PushL( sid );
-                GenericListAddL ( &aContent->dataOwners->sid, sid );
-                CleanupStack::Pop();
-            
-                sid->data = new ( ELeave ) ConML_SID_t();
-                
-                sid->data->type = new ( ELeave ) pcdata_t();
-                sid->data->type->SetDataL ( IntToDesLC ( 
-                    aResult->iDataOwners[i]->iType) );  
-                CleanupStack::PopAndDestroy(); // IntToDesLC
-                
-                sid->data->uid = new ( ELeave ) pcdata_t();
-                
-                if( aResult->iDataOwners[i]->iUid.iUid )
-                    {
-                    sid->data->uid->SetDataL ( UidToDesLC ( 
-                        aResult->iDataOwners[i]->iUid ) );
-                    CleanupStack::PopAndDestroy(); // UidToDesLC    
-                    }
-                    
-                if( aResult->iDataOwners[i]->iJavaHash )
-                    {
-                    sid->data->uid->SetDataL ( HashToDesLC ( 
-                        aResult->iDataOwners[i]->iJavaHash->Des() ) );
-                    CleanupStack::PopAndDestroy(); // HashToDesLC
-                    }
-                                
-                if ( HasDrives ( aResult->iDataOwners[i]->iDriveList ) )
-                    {
-                    sid->data->drives = new ( ELeave ) ConML_Drives_t();
-                    AppendDrivesL ( sid->data->drives, 
-                        aResult->iDataOwners[i]->iDriveList );
-                    }       
-            
-                if ( aResult->iDataOwners[i]->iPackageName.Length() > 0 ) 
-                    {
-                    sid->data->packageInfo = 
-                        new ( ELeave ) ConML_PackageInfo_t();
-                    sid->data->packageInfo->name = new ( ELeave ) pcdata_t();
-                    sid->data->packageInfo->name->SetDataL ( BufToDesLC ( 
-                        aResult->iDataOwners[i]->iPackageName  ) );
-
-                    CleanupStack::PopAndDestroy(); // BufToDesLC
-                    }           
-            
-                if ( aResult->iDataOwners[i]->iHasFiles || 
-                aResult->iDataOwners[i]->iSupportsInc ||
-                aResult->iDataOwners[i]->iDelayToPrep ||
-                aResult->iDataOwners[i]->iReqReboot )
-                    {
-                    sid->data->burOptions = new ( ELeave ) ConML_BUROptions_t();
-                    if ( aResult->iDataOwners[i]->iHasFiles ) 
-                        {
-                        sid->data->burOptions->hasFiles = 
-                            new ( ELeave ) pcdata_t();
-                        sid->data->burOptions->hasFiles->SetDataL( IntToDesLC(
-                                aResult->iDataOwners[i]->iHasFiles ));
-                                
-                        CleanupStack::PopAndDestroy(); // IntToDesLC
-                        }
-                    if ( aResult->iDataOwners[i]->iSupportsInc )
-                        {
-                        sid->data->burOptions->supportsInc = 
-                            new ( ELeave ) pcdata_t();
-                        }
-                    if ( aResult->iDataOwners[i]->iDelayToPrep )                        
-                        {
-                        sid->data->burOptions->delayToPrepareData = 
-                            new ( ELeave ) pcdata_t();
-                        }
-                    if ( aResult->iDataOwners[i]->iReqReboot )
-                        {
-                        sid->data->burOptions->requiresReboot = 
-                            new ( ELeave ) pcdata_t();
-                        }
-                    }
-                }
-            }
-        }
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConPCConnSession::AppendGetDataOwnerStatusResultsL()
-// Appends a Get data owner status -element from the reply data of PCCS
-// -----------------------------------------------------------------------------
-//
-void CSConPCConnSession::AppendGetDataOwnerStatusResultsL 
-    ( ConML_ResultsPtr_t aContent, CSConGetDataOwnerStatus* aResult )
-    {
-    TRACE_FUNC_ENTRY;
-    if ( aResult )
-        {
-        if ( aResult->iComplete )
-            {
-            aContent->complete = new ( ELeave ) pcdata_t();
-            }
-        AppendProgressL( aContent, aResult->iProgress );
-
-        if ( aResult->iDataOwners.Count() > 0 )
-            {
-            aContent->dataOwners = new ( ELeave ) ConML_DataOwners_t();
-            for ( TInt i=0; i < aResult->iDataOwners.Count(); i ++)
-                {
-                ConML_SIDListPtr_t sid = new ( ELeave ) ConML_SIDList_t();
-                CleanupStack::PushL( sid );
-                GenericListAddL ( &aContent->dataOwners->sid, sid );
-                CleanupStack::Pop();
-            
-                sid->data = new ( ELeave ) ConML_SID_t();
-                
-                sid->data->type = new ( ELeave ) pcdata_t();
-                sid->data->type->SetDataL ( IntToDesLC ( 
-                    aResult->iDataOwners[i]->iType) );  
-                CleanupStack::PopAndDestroy(); // IntToDesLC
-                
-                sid->data->uid = new ( ELeave ) pcdata_t();
-                sid->data->uid->SetDataL ( UidToDesLC ( 
-                    aResult->iDataOwners[i]->iUid ) );
-                CleanupStack::PopAndDestroy(); // UidToDesLC    
-                
-                sid->data->dataOwnerStatus = new ( ELeave ) pcdata_t();
-                sid->data->dataOwnerStatus->SetDataL ( IntToDesLC( 
-                        aResult->iDataOwners[i]->iDataOwnStatus ));
-                
-                CleanupStack::PopAndDestroy(); // IntToDesLC
-                }
-            }
-        }
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConPCConnSession::AppendGetDataSizeResultsL()
-// Appends a Get data owner size -element from the reply data of PCCS
-// -----------------------------------------------------------------------------
-//
-void CSConPCConnSession::AppendGetDataSizeResultsL ( 
-    ConML_ResultsPtr_t aContent, CSConGetDataSize* aResult )
-    {
-    TRACE_FUNC_ENTRY;
-    if ( aResult )  
-        {
-        if ( aResult->iComplete )
-            {
-            aContent->complete = new ( ELeave ) pcdata_t();
-            }
-        AppendProgressL( aContent, aResult->iProgress );
-        
-        if ( aResult->iDataOwners.Count() > 0 )
-            {
-            aContent->dataOwners = new ( ELeave ) ConML_DataOwners_t();
-                
-            for ( TInt i=0; i< aResult->iDataOwners.Count(); i++ )      
-                {
-                ConML_SIDListPtr_t sid = new ( ELeave ) ConML_SIDList_t();
-                CleanupStack::PushL( sid );
-                GenericListAddL ( &aContent->dataOwners->sid, sid );
-                CleanupStack::Pop();
-                
-                sid->data = new ( ELeave ) ConML_SID_t();
-                
-                sid->data->type = new ( ELeave ) pcdata_t();
-                sid->data->type->SetDataL ( IntToDesLC ( 
-                    aResult->iDataOwners[i]->iType) );  
-                CleanupStack::PopAndDestroy(); // IntToDesLC
-                    
-                sid->data->uid = new ( ELeave ) pcdata_t();
-                
-                if( aResult->iDataOwners[i]->iUid.iUid )
-                    {
-                    sid->data->uid->SetDataL ( UidToDesLC ( 
-                        aResult->iDataOwners[i]->iUid ) );
-                    CleanupStack::PopAndDestroy(); // UidToDesLC    
-                    }
-
-                if( aResult->iDataOwners[i]->iJavaHash )
-                    {
-                    sid->data->uid->SetDataL ( HashToDesLC ( 
-                        aResult->iDataOwners[i]->iJavaHash->Des() ) );
-                    CleanupStack::PopAndDestroy(); // HashToDesLC
-                    }
-    
-                if ( HasDrives (  aResult->iDataOwners[i]->iDriveList ) )
-                    {
-                    sid->data->drives = new ( ELeave ) ConML_Drives_t();
-                    AppendDrivesL ( sid->data->drives, 
-                        aResult->iDataOwners[i]->iDriveList );
-                    }       
-                
-                sid->data->size = new ( ELeave ) pcdata_t();
-                sid->data->size->SetDataL( IntToDesLC( 
-                    aResult->iDataOwners[i]->iSize ) );
-                CleanupStack::PopAndDestroy(); // IntToDesLC
-                
-                sid->data->transferDataType = new ( ELeave ) pcdata_t();
-                sid->data->transferDataType->SetDataL( IntToDesLC( 
-                        aResult->iDataOwners[i]->iTransDataType ) );
-
-                CleanupStack::PopAndDestroy(); // IntToDesLC
-                }
-            }
-        }
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConPCConnSession::AppendGetMetadataResultsL()
-// Appends a GetMetadata -element from the reply data of PCCS
-// -----------------------------------------------------------------------------
-//
-void CSConPCConnSession::AppendGetMetadataResultsL(
-    ConML_ResultsPtr_t aContent, CSConGetMetadata* aResult )
-    {
-    TRACE_FUNC_ENTRY;
-    
-    if ( aResult )
-        {
-        if ( aResult->iComplete )
-            {
-            aContent->complete = new ( ELeave ) pcdata_t();
-            
-            // add filename only if task is completed
-            aContent->filename = new ( ELeave ) pcdata_t();
-            aContent->filename->SetDataL( BufToDesLC(aResult->iFilename ) );
-            CleanupStack::PopAndDestroy(); // BufToDesLC
-            }
-        AppendProgressL( aContent, aResult->iProgress );
-        
-        if ( aResult->iData )
-            {
-            aContent->data = new ( ELeave ) pcdata_t();
-            aContent->data->SetDataL( aResult->iData->Des() );
-            }
-        
-        if ( aResult->iMoreData )
-            {
-            aContent->moreData = new ( ELeave ) pcdata_t();
-            }
-        }
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConPCConnSession::AppendProgressL()
-// Appends a Progress -element from the reply data of PCCS
-// -----------------------------------------------------------------------------
-//
-void CSConPCConnSession::AppendProgressL ( 
-    ConML_ResultsPtr_t aContent, TInt progress )
-    {
-    TRACE_FUNC_ENTRY;
-    aContent->progress = new ( ELeave ) ConML_Progress_t();
-    aContent->progress->value = new ( ELeave ) pcdata_t();
-    aContent->progress->value->SetDataL ( IntToDesLC ( progress ));
-    CleanupStack::PopAndDestroy(); // IntToDesLC
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConPCConnSession::AppendDrivesL()
-// Appends a Drives -element from the reply data of PCCS
-// -----------------------------------------------------------------------------
-//
-void CSConPCConnSession::AppendDrivesL( 
-    ConML_DrivesPtr_t aContent, TDriveList aDrives )
-    {
-    TRACE_FUNC_ENTRY;
-    
-    for ( TInt i = 0; i<KMaxDrives; i++ )
-        {
-        if ( aDrives[i] )
-            {
-            ConML_DriveListPtr_t drive = new ( ELeave ) ConML_DriveList_t();
-            CleanupStack::PushL ( drive );
-            GenericListAddL ( &aContent->drive, drive );
-            CleanupStack::Pop(); // drive
-            
-            drive->data = new ( ELeave ) ConML_Drive_t();
-            drive->data->name = new ( ELeave ) pcdata_t();
-            drive->data->name->SetDataL( DriveNumToDesLC(i+KSConFirstDrive  ));
-            CleanupStack::PopAndDestroy(); // IntToDesLC
-            }
-        }
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConPCConnSession::DriveList()
-// Converts an Drives -element to TDriveList
-// -----------------------------------------------------------------------------
-//
-TDriveList CSConPCConnSession::DriveList( ConML_DriveListPtr_t aContent )
-    {
-    TBuf8<KMaxDrives>  driveBuf;
-    TDriveList driveList;
-
-    for ( ConML_DriveListPtr_t p = aContent; p && p->data; p = p->next )
-        {
-        if ( p->data->name )            
-            {
-            driveBuf.Append( p->data->name->Data() );
-            }
-        }
-
-    for ( TInt i = 0; i<KMaxDrives; i++ )
-        {
-        if ( driveBuf.Locate ( TChar( i + KSConFirstDrive ) ) != KErrNotFound )
-            {
-            driveList.Append( KSConDriveExists );
-            }
-        else
-            {
-            driveList.Append( KSConNoDrive );
-            }
-        }
-    return driveList;
-    }
-
-    
-// -----------------------------------------------------------------------------
-// CSConPCConnSession::IntToDesLC()
-// Converts an integer to descriptor
-// -----------------------------------------------------------------------------
-//
-TDesC8& CSConPCConnSession::IntToDesLC(const TInt& anInt)
-    {
-    HBufC8* buf = HBufC8::NewLC(20);
-    TPtr8 ptrBuf = buf->Des();
-    ptrBuf.Num(anInt);
-    return *buf;
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConPCConnSession::DriveNumToDesLC()
-// Convers a drive number to equivalent drive letter 
-// -----------------------------------------------------------------------------
-//
-TDesC8& CSConPCConnSession::DriveNumToDesLC( const TInt& anInt )
-    {
-    TChar mark ( anInt );
-    HBufC8* buf = HBufC8::NewLC(1);
-    TPtr8 ptrBuf = buf->Des();
-    ptrBuf.Append(mark);
-    return *buf;
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConPCConnSession::BufToDesLC()
-// converts a buffer to descriptor
-// -----------------------------------------------------------------------------
-//
-TDesC8& CSConPCConnSession::BufToDesLC( const TDesC& aBuf)
-    {
-    HBufC8* buf = CnvUtfConverter::ConvertFromUnicodeToUtf8L( aBuf );
-    CleanupStack::PushL( buf );
-    return *buf;
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConPCConnSession::UidToDesLC()
-// converts an UID to a descriptor
-// -----------------------------------------------------------------------------
-//
-TDesC8& CSConPCConnSession::UidToDesLC( const TUid& aUid )
-    {
-    HBufC8* buf = HBufC8::NewLC(10);
-    TPtr8 ptrBuf = buf->Des();
-    ptrBuf.Copy (aUid.Name().Mid(1, 8) );
-    return *buf;
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConPCConnSession::DesToUid()
-// converts a descriptor to a UID value
-// -----------------------------------------------------------------------------
-//
-TUid CSConPCConnSession::DesToUid ( const TDesC8& aDes )
-    {
-    TLex8 lex( aDes );
-    TUint32 value;
-    lex.Val( value, EHex );
-    TUid uid = TUid::Uid( value );
-    return uid;
-    }   
-    
-// -----------------------------------------------------------------------------
-// CSConPCConnSession::DesToInt()
-// converts a descriptor to a integer value
-// -----------------------------------------------------------------------------
-//
-TInt CSConPCConnSession::DesToInt( const TDesC8& aDes)
-    {
-    TLex8 lex(aDes);
-    TInt value = 0;
-    lex.Val(value);
-    return value;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConPCConnSession::HasDrives()
-// Returns ETrue if at least one drive is found from the given TDriveList
-// -----------------------------------------------------------------------------
-//
-TBool CSConPCConnSession::HasDrives( TDriveList& aDrive )
-    {
-    TBool hasDrives ( EFalse );     
-    for ( TInt i = 0; i<KMaxDrives; i++ )
-        {
-        if ( aDrive[i] )
-            {
-            hasDrives = ETrue;
-            }
-        }
-    return hasDrives;
-    }
-// -----------------------------------------------------------------------------
-// CSConPCConnSession::HashToDesLC()
-// converts a Java hash to descriptor
-// -----------------------------------------------------------------------------
-//
-TDesC8& CSConPCConnSession::HashToDesLC( const TDesC& aBuf)
-    {
-    HBufC8* buf = HBufC8::NewLC(aBuf.Size()+5);
-    TPtr8 ptrBuf = buf->Des();
-    // Unicode conversion from 16-bit to 8-bit
-    CnvUtfConverter::ConvertFromUnicodeToUtf8(ptrBuf, aBuf);
-    //Add JAVA_ identifier to the begining of the hash
-    ptrBuf.Insert(0, KSConJavaHashId);
-    return *buf;
-    }
-// -----------------------------------------------------------------------------
-// CSConPCConnSession::DesToHashLC()
-// converts descriptor to Java hash
-// -----------------------------------------------------------------------------
-//    
-TPtr CSConPCConnSession::DesToHashLC( const TDesC8& aDes )
-    {
-    HBufC* buf = HBufC::NewLC(aDes.Size());
-    TPtr ptrBuf = buf->Des();
-    // Unicode conversion from 8-bit to 16-bit
-    CnvUtfConverter::ConvertToUnicodeFromUtf8(ptrBuf, aDes);
-    //Delete JAVA_
-    ptrBuf.Delete(0, KSConJavaHashId().Length());   
-    return ptrBuf;
-    }
-// -----------------------------------------------------------------------------
-// CSConPCConnSession::IsJavaHash()
-// Returns ETrue if descriptor is Java hash, else EFalse
-// -----------------------------------------------------------------------------
-//  
-TBool CSConPCConnSession::IsJavaHash( const TDesC8& aDes )
-    {
-    if ( aDes.FindC(KSConJavaHashId) == 0 )
-        {
-        return ETrue;
-        }
-    else
-        {
-        return EFalse;
-        }
-    }
-
Binary file connectivitymodules/SeCon/services/csc/bld/101F9698.xml has changed
Binary file connectivitymodules/SeCon/services/csc/bld/101F99F6.xml has changed
--- a/connectivitymodules/SeCon/services/csc/bld/bld.inf	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-/*
-* Copyright (c) 2005-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:  Capability Object Module bld.inf file
-*
-*/
-
-
-#include <platform_paths.hrh>
-
-PRJ_PLATFORMS  
-DEFAULT
-
-PRJ_EXPORTS
-./101F9698.xml  /epoc32/data/Z/private/101F99F6/capability/101F9698.xml
-./fwdcomp.xml   /epoc32/data/Z/private/101F99F6/capability/fwdcomp.xml
-./101F99F6.xml  /epoc32/data/Z/private/101F99F6/capability/101F99F6.xml
-
-./101F9698.xml  /epoc32/RELEASE/winscw/udeb/Z/private/101F99F6/capability/101F9698.xml
-./fwdcomp.xml   /epoc32/RELEASE/winscw/udeb/Z/private/101F99F6/capability/fwdcomp.xml
-./101F99F6.xml  /epoc32/RELEASE/winscw/udeb/Z/private/101F99F6/capability/101F99F6.xml
-
-
-PRJ_MMPFILES
-
-sconcsc.mmp
-
-
--- a/connectivitymodules/SeCon/services/csc/bld/def/bwinscwu.def	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-EXPORTS
-	?CreateCSConCSCL@@YAPAVCSConCSC@@XZ @ 1 NONAME ; class CSConCSC * CreateCSConCSCL(void)
-
--- a/connectivitymodules/SeCon/services/csc/bld/def/eabiuu.def	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-EXPORTS
-	_Z15CreateCSConCSCLv @ 1 NONAME
-	_ZTI8CSConCSC @ 2 NONAME ; #<TI>#
-	_ZTV8CSConCSC @ 3 NONAME ; #<VT>#
-
Binary file connectivitymodules/SeCon/services/csc/bld/fwdcomp.xml has changed
--- a/connectivitymodules/SeCon/services/csc/bld/sconcsc.mmp	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,80 +0,0 @@
-/*
-* Copyright (c) 2005-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:  Capability Object Module mmp file
-*
-*/
-
-
-// To get the MW_LAYER_SYSTEMINCLUDE-definition
-#include <platform_paths.hrh>
-#include <data_caging_paths.hrh>
-
-VENDORID        VID_DEFAULT
-
-CAPABILITY      CAP_GENERAL_DLL
-
-TARGETPATH      sys/bin
-
-TARGET          sconcsc.dll
-TARGETTYPE      DLL
-UID             0x10009D8D 0x101F9698
-
-#if defined(ARMCC)
-DEFFILE	./def/eabiu
-#elif defined(WINSCW) 
-DEFFILE	./def/bwinscw
-#elif defined(WINS)
-DEFFILE	./def/bwins
-#elif defined(ARM)
-DEFFILE	./def/bmarm
-#endif
-
-SOURCEPATH      ../src
-SOURCE          sconcsc.cpp
-SOURCE          capinfo.cpp
-SOURCE          caputils.cpp
-SOURCE          caplist.cpp
-SOURCE          stringlist.cpp
-SOURCE          capparser.cpp
-SOURCE          sconsyncservice.cpp
-SOURCE          sconversioninfo.cpp 
-
-USERINCLUDE     ../inc
-USERINCLUDE     ../../../inc
-
-// Default system include paths for middleware layer modules.
-//MW_LAYER_SYSTEMINCLUDE
-APP_LAYER_SYSTEMINCLUDE
-
-DEBUGLIBRARY    flogger.lib
-LIBRARY         euser.lib
-LIBRARY         efsrv.lib
-LIBRARY         bafl.lib
-LIBRARY         sysutil.lib
-LIBRARY         etel.lib
-LIBRARY         etelmm.lib
-LIBRARY         hal.lib
-LIBRARY         platformenv.lib
-LIBRARY         charconv.lib
-LIBRARY	        customapi.lib
-LIBRARY	        centralrepository.lib
-LIBRARY         apgrfx.lib
-LIBRARY         apparc.lib
-LIBRARY         sisregistryclient.lib
-LIBRARY         SyncMLClientAPI.lib
-LIBRARY         javaregistryclient.lib
-LIBRARY         sysversioninfo.lib
-LIBRARY         Etel3rdParty.lib
-LIBRARY         platformver.lib
-
--- a/connectivitymodules/SeCon/services/csc/inc/capability.h	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,483 +0,0 @@
-/*
-* Copyright (c) 2002-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:  Capability service controller
-*
-*/
-
-
-#ifndef _CAPABILITY_H_
-#define _CAPABILITY_H_
-
-#include <e32std.h>
-
-//
-// string sizes
-//
-const TInt KBufSize(128);
-const TInt KTagSize(64);
-const TInt KMaxSize(512);
-
-const TInt KNestingLimit(10);
-
-//
-// this directory contains xml-format files for
-// Service-elements
-//
-_LIT(KCapabilityDirC, "c:\\private\\101F99F6\\capability\\");
-_LIT(KCapabilityDirCImport, "c:\\private\\101F99F6\\import\\");
-_LIT(KCapabilityDirZ, "z:\\private\\101F99F6\\capability\\");
-
-//
-// folder service constants
-//
-_LIT(KFolderServiceName, "Folder-Browsing");
-_LIT(KFolderServiceUid, "F9EC7BC4-953c-11d2-984E-525400DC9E09");
-_LIT(KFolderServiceVersion, "1.0");
-_LIT(KFolderServiceType, "x-obex/folder-listing");
-_LIT(KFolderMemoryTypeTag, "MemType");
-_LIT(KFolderNameTag, "Folder");
-
-_LIT(KFolderImages, "Images");
-_LIT(KFolderGraphics, "Graphics");
-_LIT(KFolderTones, "Tones");
-_LIT(KFolderMusic, "Music");
-_LIT(KFolderVideos, "Videos");
-_LIT(KFolderInstalls, "Installs");
-
-_LIT( KSyncSolutionsServiceName, "SyncSolutions" );
-_LIT( KSyncSolutionsServiceVersion, "1.0" );
-_LIT( KSyncCalendar, "Calendar" );
-_LIT( KSyncContacts, "Contacts" );
-_LIT( KSyncSms, "Sms" );
-_LIT( KSyncBookmark, "Bookmark" );
-
-_LIT( KDesktopSync, "DesktopSync" );
-
-enum TFolderTypes
-    {
-    EFolderImages,
-    EFolderGraphics,
-    EFolderTones,
-    EFolderMusic,
-    EFolderVideos,
-    EFolderInstalls
-    };
-
-
-//
-// misc capabily document strings
-//
-_LIT(KServiceHeader,   "<!-- Capability Object Service -->");
-_LIT(KXmlVersion,      "<?xml version=\"1.0\" ?>");
-_LIT(KComment1,        "<!-- OBEX Capability Object -->");
-_LIT(KDocType,         "<!DOCTYPE Capability SYSTEM \"obex-capability.dtd\">");
-_LIT(KRootBegin,       "<Capability Version=\"1.0\">");
-_LIT(KRootEnd,         "</Capability>");
-_LIT(KCommentBegin,    "<!--");
-_LIT(KCommentEnd,      "-->");
-_LIT(KFormatText, "  ");
-_LIT(KXmlExtension, ".xml");
-
-
-//
-// manufacturers
-//
-_LIT(KManufacturerNokia, "Nokia");
-_LIT(KManufacturerEricsson, "Ericsson");
-_LIT(KManufacturerMotorola, "Motorola");
-_LIT(KManufacturerPanasonic, "Panasonic");
-_LIT(KManufacturerPsion, "Psion");
-_LIT(KManufacturerIntel, "Intel");
-_LIT(KManufacturerCogent, "Cogent");
-_LIT(KManufacturerCirrus, "Cirrus");
-_LIT(KManufacturerLinkup, "Linkup");
-_LIT(KManufacturerTexasInstruments, "TexasInstruments");
-
-
-//
-// media types (TMediaType in e32std.h)
-//
-_LIT(KMediaMMC, "MMC");     // memory card
-_LIT(KMediaFlash, "DEV");   // device memory
-
-//
-// TElementType contains all element types used in 
-// capabilty xml document
-//
-//
-enum TElementType
-    {
-    ECapability,
-    EGeneral,
-    EManufacturer,
-    EModel,
-    ESN,
-    EOEM,
-    ESW,
-    EFW,
-    EHW,
-    ELanguage,
-    EMemory,
-    EMemType,
-    ELocation,
-    EFree,
-    EUsed,
-    EShared,
-    EFileSize,
-    EFolderSize,
-    EFileNLen,
-    EFolderNLen,
-    ECaseSenN,
-
-    EExt,
-    EXNam,
-    EXVal,
-    
-    EObject,
-    EType,
-    EName_Ext,
-    ESize,
-
-    EAccess,
-    EProtocol,
-    EEndpoint,
-    ETarget,
-
-    EInbox,
-    EService,   
-    EName,
-    EUUID,
-    EVersion,
-
-    EAttVersion,
-    EAttDate,
-    
-    EAttCurrentNetwork,
-    EAttHomeNetwork,
-    EAttCountryCode
-    };
-
-
-
-
-//
-// KXmlTokens contains all tokens (=tags) used in 
-// capabilty xml document
-//
-//
-
-typedef const TText*  TTag;
-NONSHARABLE_STRUCT( TXmlToken )
-    {
-    TInt id;
-    TTag tag;
-    };
-
-const TXmlToken KXmlTokens[] =
-    {
-    {ECapability,   _S("Capability")},
-    {EGeneral,      _S("General")},
-    {EManufacturer, _S("Manufacturer")},
-    {EModel,        _S("Model")},
-    {ESN,           _S("SN")}, 
-    {EOEM,          _S("OEM")},
-    {ESW,           _S("SW")},
-    {EFW,           _S("FW")},
-    {EHW,           _S("HW")},
-    {ELanguage,     _S("Language")},
-    {EMemory,       _S("Memory")},
-    {EMemType,      _S("MemType")},
-    {ELocation,     _S("Location")},
-    {EFree,         _S("Free")},
-    {EUsed,         _S("Used")},
-    {EShared,       _S("Shared")},
-    {EFileSize,     _S("FileSize")},
-    {EFolderSize,   _S("FolderSize")},
-    {EFileNLen,     _S("FileNLen")},
-    {EFolderNLen,   _S("FolderNLen")},
-    {ECaseSenN,     _S("CaseSenN")},
-    {EExt,          _S("Ext")},
-    {EXNam,         _S("XNam")},
-    {EXVal,         _S("XVal")},
-    {EObject,       _S("Object")},
-    {EType,         _S("Type")},
-    {EName_Ext,     _S("Name_Ext")},
-    {ESize,         _S("Size")},
-    {EAccess,       _S("Access")},
-    {EProtocol,     _S("Protocol")},
-    {EEndpoint,     _S("Endpoint")},
-    {ETarget,       _S("Target")},
-    {EInbox,        _S("Inbox")},
-    {EService,      _S("Service")},
-    {EName,         _S("Name")},
-    {EUUID,         _S("UUID")},
-    {EVersion,      _S("Version")},
-    {EXNam,             _S("XNam")},
-    {EXVal,             _S("XVal")},
-    {EAttVersion,       _S("Version")},
-    {EAttDate,          _S("Date")},
-    {EAttCurrentNetwork,_S("CurrentNetwork")},
-    {EAttHomeNetwork,   _S("HomeNetwork")},
-    {EAttCountryCode,   _S("CountryCode")}  
-    };
-
-#define NUMXMLTOKENS (sizeof(KXmlTokens)/sizeof(TXmlToken))
-
-
-
-
-//
-// string array to convert symbian TLanguage enums to 
-// ISO 639 language codes
-// 
-// See "http://www.sil.org/iso639-3/default.asp" 
-//
-
-typedef const TText*  TLangString;
-NONSHARABLE_STRUCT( TLangStringStruct )
-    {
-    TInt id;
-    TLangString lang;
-    };
-
-/**
- * Language mapping table.
- */
-const TLangStringStruct KLangStrings[] =
-    {
-    {ELangEnglish,   _S("en")},
-    {ELangFrench,    _S("fr")},
-    {ELangGerman,    _S("de")},
-    {ELangSpanish,   _S("es")},
-    {ELangItalian,   _S("it")},
-    {ELangSwedish,   _S("sv")},
-    {ELangDanish,    _S("da")},
-    {ELangNorwegian, _S("no")},
-    {ELangFinnish, _S("fi")},
-
-    {ELangAmerican, _S("en_US")},
-    {ELangSwissFrench, _S("fr_CH")},
-    {ELangSwissGerman, _S("de_CH")},
-    {ELangPortuguese, _S("pt")},
-    {ELangTurkish, _S("tr")},
-    {ELangIcelandic, _S("is")},
-    {ELangRussian, _S("ru")},
-    {ELangHungarian, _S("hu")},
-    {ELangDutch, _S("nl")},
-    
-    {ELangBelgianFlemish, _S("nl_BE")},
-    {ELangAustralian, _S("aus")},
-    {ELangBelgianFrench, _S("fr_BE")},
-    {ELangAustrian, _S("de_AT")},
-    {ELangNewZealand, _S("en_NZ")},
-    {ELangInternationalFrench, _S("fr")},
-    {ELangCzech, _S("cs")},
-    {ELangSlovak, _S("sk")},
-    {ELangPolish, _S("pl")},
-    
-    {ELangSlovenian, _S("sl")},
-    {ELangTaiwanChinese, _S("zh_TW")},
-    {ELangHongKongChinese, _S("zh_HK")},
-    {ELangPrcChinese, _S("zh_CN")},
-    {ELangJapanese, _S("ja")},
-    {ELangThai, _S("th")},
-    {ELangAfrikaans, _S("af")},
-    {ELangAlbanian, _S("sq")},
-    {ELangAmharic, _S("am")},
-    
-    {ELangArabic, _S("ar")},
-    {ELangArmenian, _S("hy")},
-    {ELangTagalog, _S("tl")},
-    {ELangBelarussian, _S("be")},
-    {ELangBengali, _S("bn")},
-    {ELangBulgarian, _S("bg")},
-    {ELangBurmese, _S("my")},
-    {ELangCatalan, _S("ca")},
-    {ELangCroatian, _S("hr")},
-    
-    {ELangCanadianEnglish, _S("en_CA")},
-    {ELangInternationalEnglish, _S("en")},
-    {ELangSouthAfricanEnglish, _S("en_ZA")},
-    {ELangEstonian, _S("et")},
-    {ELangFarsi, _S("fa")},
-    {ELangCanadianFrench, _S("fr_CA")},
-    {ELangScotsGaelic, _S("gd")},
-    {ELangGeorgian, _S("ka")},
-    {ELangGreek, _S("el")},
-    
-    {ELangCyprusGreek, _S("el_CY")},
-    {ELangGujarati, _S("gu")},
-    {ELangHebrew, _S("he")},
-    {ELangHindi, _S("hi")},
-    {ELangIndonesian, _S("id")},
-    {ELangIrish, _S("ga")},
-    {ELangSwissItalian, _S("it_CH")},
-    {ELangKannada, _S("kn")},
-    {ELangKazakh, _S("kk")},
-    
-    {ELangKhmer, _S("km")},
-    {ELangKorean, _S("ko")},
-    {ELangLao, _S("lo")},
-    {ELangLatvian, _S("lv")},
-    {ELangLithuanian, _S("lt")},
-    {ELangMacedonian, _S("mk")},
-    {ELangMalay, _S("ms")},
-    {ELangMalayalam, _S("ml")},
-    {ELangMarathi, _S("mr")},
-    
-    {ELangMoldavian, _S("mo")},
-    {ELangMongolian, _S("mn")},
-    {ELangNorwegianNynorsk, _S("nn")},
-    {ELangBrazilianPortuguese, _S("pt_BR")},
-    {ELangPunjabi, _S("pa")},
-    {ELangRomanian, _S("ro")},
-    {ELangSerbian, _S("sr")},
-    {ELangSinhalese, _S("si")},
-    {ELangSomali, _S("so")},
-    
-    {ELangInternationalSpanish, _S("es")},
-    {ELangLatinAmericanSpanish, _S("es_US")},
-    {ELangSwahili, _S("sw")},
-    {ELangFinlandSwedish, _S("sv_FI")},
-    {ELangReserved1, _S("en")},  
-    {ELangTamil, _S("ta")},
-    {ELangTelugu, _S("te")},
-    {ELangTibetan, _S("bo")},
-    {ELangTigrinya, _S("ti")},
-    
-    {ELangCyprusTurkish, _S("tr_CY")},
-    {ELangTurkmen, _S("tk")},
-    {ELangUkrainian, _S("uk")},
-    {ELangUrdu, _S("ur")},
-    {ELangReserved2, _S("en")},
-    {ELangVietnamese, _S("vi")},
-    {ELangWelsh, _S("cy")},
-    {ELangZulu, _S("zu")},
-    {ELangOther, _S("other")},
-    
-    {ELangManufacturerEnglish, _S("en")},
-    {ELangSouthSotho, _S("st")},
-    {ELangBasque, _S("eu")},
-    {ELangGalician, _S("gl")},
-    {ELangJavanese, _S("jv")},
-    {ELangMaithili, _S("bh")},
-    {ELangAzerbaijani_Latin, _S("az")},
-    {ELangAzerbaijani_Cyrillic, _S("az")},
-    {ELangOriya, _S("or")},
-    {ELangBhojpuri, _S("bh")},
-    {ELangSundanese, _S("su")},
-    {ELangKurdish_Latin, _S("ku")},
-    {ELangKurdish_Arabic, _S("ku")},
-    {ELangPashto, _S("ps")},
-    {ELangHausa, _S("ha")},
-    {ELangOromo, _S("om")},
-    {ELangUzbek_Latin, _S("uz")},
-    {ELangUzbek_Cyrillic, _S("uz")},
-    {ELangSindhi_Arabic, _S("sd")},
-    {ELangSindhi_Devanagari, _S("sd")},
-    {ELangYoruba, _S("yo")},
-    {ELangCebuano, _S("ceb")},
-    {ELangIgbo, _S("ig")},
-    {ELangMalagasy, _S("mg")},
-    {ELangNepali, _S("ne")},
-	{ELangAssamese, _S("as")},
-    {ELangShona, _S("sn")},
-    {ELangZhuang, _S("za")},
-    {ELangMadurese, _S("mad")},
-    
-    {ELangEnglish_Apac, _S("en")},
-    {ELangEnglish_Taiwan, _S("en")},
-    {ELangEnglish_HongKong, _S("en")},
-    {ELangEnglish_Prc, _S("en")},
-    {ELangEnglish_Japan, _S("en")},
-    {ELangEnglish_Thailand, _S("en")},
-    
-	{ELangFulfulde, _S("ff")},
-    {ELangTamazight, _S("ber")},
-    {ELangBolivianQuechua, _S("qu")},
-    {ELangPeruQuechua, _S("qu")},
-    {ELangEcuadorQuechua, _S("qu")},
-    {ELangTajik_Cyrillic, _S("tg")},
-    {ELangTajik_PersoArabic, _S("tg")},
-    {ELangNyanja, _S("ny")},
-    {ELangHaitianCreole, _S("ht")},
-    {ELangLombard, _S("lmo")},
-    {ELangKoongo, _S("kg")},
-    {ELangAkan, _S("ak")},
-    {ELangHmong, _S("hmn")},
-    {ELangYi, _S("ii")},
-    {ELangTshiluba, _S("lu")},
-    {ELangIlocano, _S("ilo")},
-    {ELangUyghur, _S("ug")},
-    {ELangNeapolitan, _S("nap")},
-    {ELangRwanda, _S("rw")},
-    {ELangXhosa, _S("xh")},
-    {ELangBalochi, _S("bal")},
-    {ElangHiligaynon, _S("hil")},
-    {ELangMinangkabau, _S("min")},
-    {ELangMakhuwa, _S("vmw")},
-    {ELangSantali, _S("sat")},
-    {ELangGikuyu, _S("ki")},
-    {ELangMoore, _S("mos")},
-    {ELangGuarani, _S("gnHI")},
-    {ELangRundi, _S("ru")},
-    {ELangRomani_Latin, _S("rom")},
-    {ELangRomani_Cyrillic, _S("rom")},
-    {ELangTswana, _S("tn")},
-    {ELangKanuri, _S("kr")},
-    {ELangKashmiri_Devanagari, _S("ks")},
-    {ELangKashmiri_PersoArabic, _S("ks")},
-    {ELangUmbundu, _S("umb")},
-    {ELangKonkani, _S("kok")},
-    {ELangBalinese, _S("ban")},
-    {ELangNorthernSotho, _S("nso")},
-    {ELangWolof, _S("wo")},
-    {ELangBemba, _S("bmy")}, 	 	 	
-    {ELangTsonga, _S("ts")},
-    {ELangYiddish, _S("yi")},
-    {ELangKirghiz, _S("ky")},
-    {ELangGanda, _S("lg")},
-    {ELangSoga, _S("xog")},
-    {ELangMbundu, _S("kmb")},
-    {ELangBambara, _S("bm")},
-    {ELangCentralAymara, _S("ay")},
-    {ELangZarma, _S("dje")},
-    {ELangLingala, _S("ln")},
-    {ELangBashkir, _S("ba")},
-    {ELangChuvash, _S("cv")},
-    {ELangSwati, _S("ss")},
-    {ELangTatar, _S("tt")},
-    {ELangSouthernNdebele, _S("nr")},
-    {ELangSardinian, _S("sc")},
-    {ELangScots, _S("sco")},
-    {ELangMeitei, _S("mni")},
-    {ELangWalloon, _S("wa")},
-    {ELangKabardian, _S("kbd")},
-    {ELangMazanderani, _S("mzn")},
-    {ELangGilaki, _S("glk")},
-    {ELangShan, _S("shn")},
-    {ELangLuyia, _S("luy")},
-    {ELanguageLuo, _S("luo")},
-    {ELangSukuma, _S(" 	suk")},
-    {ELangAceh, _S("ace")},
-    {ELangMalay_Apac, _S("ms")}
-    };
-
-#define NUMLANGSTRINGS (sizeof(KLangStrings)/sizeof(TLangStringStruct))
-
-
-
-
-#endif // capability.h
-
--- a/connectivitymodules/SeCon/services/csc/inc/capinfo.h	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,94 +0,0 @@
-/*
-* Copyright (c) 2002-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:  Capability service controller
-*
-*/
-
-
-#ifndef _CAPINFO_H_
-#define _CAPINFO_H_
-
-#include <e32base.h>
-#include <f32file.h>
-
-#include "caputils.h"
-
-//
-// CCapInfo creates capability document
-// 
-//
-
-class CCapList;
-class CStringList;
-class TSConSolutionInfo;
-class CSconVersionInfo;
-
-NONSHARABLE_CLASS( CCapInfo ) : public CBase
-{
-public:
-    static CCapInfo* NewL();        
-    ~CCapInfo();
-private:
-    CCapInfo();
-    void ConstructL();
-
-public:
-    void CapabilityDocumentL( CBufFlat* aBuf );
-
-private:
-    CCapList* CapList();
-    void SetCapabilityBuf( CBufFlat* aBuf );
-    
-    void GeneralInfoL();
-    void MemoryInfoL();
-    void WriteMemoryInfoL( TMemoryInfo& aInfo );
-    void ServiceInfoL( const TDesC& aDir, const RArray<TFileName>& aExcludeList,
-        RArray<TFileName>& aFilesAdded );
-    void FolderServiceL();
-    
-    void SyncSolutionsServiceL();
-    void WriteSyncSolutionsServiceL( const TSConSolutionInfo& aCalendar,
-    		const TSConSolutionInfo& aContact,
-    		const TSConSolutionInfo& aSms,
-    		const TSConSolutionInfo& aBookmark );
-    void WriteSolutionTagL( const TDesC& aContentName, const TSConSolutionInfo& aSolution );
-    
-    void WriteFolderL( const TDesC& aType, const TDesC& aFullName, const TDesC& aMemory );
-
-    void WriteValueL( TInt aId, const TDesC& aValue );
-    void WriteBigValueL( TInt aId, const TDesC& aValue );
-    void WriteValueL( TInt aId, TInt64 aValue );
-    void WriteTagL( TInt aId, TInt aType );
-    void WriteAttributeL( TInt aId, const TDesC& aVersion, const TDesC& aDate );
-    void WriteL( const TDesC& aText );
-
-    void WriteFromListL( CStringList* aList );
-    void WriteNewLineL();
-
-    void FormatElement( TDes& aText );
-    void AddFormatText( TDes& aText, TInt aNum ) const;
-
-private:
-    RFs             iFsSession;     // has
-    CCapList*       iCapList;       // has
-    HBufC8*         iHeapBuf;       // has
-    TBuf<KMaxSize>  iBuf;
-    TIdStack        iIdStack;
-
-    CBufFlat*       iCapabilityBuf; // uses
-    CSconVersionInfo* iSconInfo;
-};
-
-#endif // CCapability
-
--- a/connectivitymodules/SeCon/services/csc/inc/caplist.h	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,107 +0,0 @@
-/*
-* Copyright (c) 2005-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:  CCapList header file.
-*
-*/
-
-
-#ifndef _CAPLIST_H_
-#define _CAPLIST_H_
-
-// INCLUDES
-
-#include <e32base.h>
-#include <badesca.h>
-#include "stringlist.h"
-
-//
-// Class CCapList
-//
-NONSHARABLE_CLASS( CCapList ) : public CBase
-{
-public:
-    /**
-     * Two-phase constructor.
-     * @return CCapList instance
-     */
-    static CCapList* NewL();
-    /**
-     * Destructor
-     * @return none
-     */
-    ~CCapList();
-
-private:
-    /**
-     * Constructor
-     * @return none
-     */
-    CCapList();
-    /**
-     * Initializes the member data
-     * @return none
-     */
-    void ConstructL();
-    /**
-     * Operator =
-     * @param aList The data to be copied
-     * @return none
-     */
-    void operator=(const CCapList& aList); // not allowed
-
-public:
-    /**
-     * Returns the list
-     * @return The CStringList object
-     */
-    CStringList* List();
-
-public:
-    /**
-     * Find element
-     * @param aId
-     * @param aType
-     * @param aIndex (Default=0)
-     * @return position
-     */
-    TInt Find(TInt aId, TInt aType, TInt aIndex=0);
-    /**
-     * Find from mark
-     * @param aId
-     * @param aType
-     * @return position
-     */
-    TInt FindFromMark(TInt aId, TInt aType);
-    /**
-     * Finds service xml-file identification header. This header must be the first 
-     * line in every service file.
-     * @return ETrue if service header found
-     */
-    TBool FindServiceHeader();
-    /**
-     * Find service
-     * @param aList The source list
-     * @return ETrue if Service is found
-     */
-    TBool FindServiceL(CStringList* aList);
-
-private:
-    CStringList*   iList;           // has
-};
-
-#endif 
-
-// End of file
-
-
--- a/connectivitymodules/SeCon/services/csc/inc/capparser.h	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,296 +0,0 @@
-/*
-* Copyright (c) 2005-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:  CapParser header file
-*
-*/
-
-
-
-#ifndef _CAPPARSER_H_
-#define _CAPPARSER_H_
-
-// INCLUDES
-
-#include <e32base.h>
-#include <badesca.h>
-
-//
-// Class CapParser
-//
-NONSHARABLE_CLASS( CapParser )
-    {
-
-public:
-    /**
-     * Parses element's id and type (eg. "<Memory>" -> EMemory, EElementBegin)
-     * @param aText
-     * @param aId
-     * @param aType
-     * @return none
-     */
-    static void ParseElement(const TDesC& aText, TInt& aId, TInt& aType);
-    
-public:
-    /**
-     * Constructs element with value (eg. "<Free>23456</Free>").
-     * @param aText
-     * @param aId
-     * @param aValue
-     * @return none
-     */
-    static void MakeElementL(TDes& aText, TInt aId, const TDesC& aValue);   
-    /**
-     * Constructs element without value (eg. "<Memory>" or "</Memory>").
-     * @param aText
-     * @param aId
-     * @param aType
-     * @return none
-     */
-    static void MakeElementL(TDes& aText, TInt aId, TInt aType);
-    /**
-     * Constructs element with attributes "Version" and "Date"(eg. 
-     * "<FW Version="2.2"/>").
-     * @param aText
-     * @param aId
-     * @param aVersion
-     * @param aDate
-     * @return none
-     */
-    static void MakeElementL(TDes& aText, TInt aId, const TDesC& aVersion, 
-                            const TDesC& aDate);
-    /**
-     * Constructs element with attributes
-     * @param aText
-     * @param aId
-     * @param aAttributes
-     * @return none
-     */
-    static void MakeElementL(TDes& aText, TInt aId, CDesCArrayFlat* aAttributes);
-    
-public:
-    /**
-     * Returns capability element id (eg. EMemory).
-     * @param aText
-     * @return none
-     */
-    static TInt ElementId(const TDesC& aText);
-    /**
-     * Returns capability element tag (eg. "Memory").
-     * @param aText
-     * @param aId
-     * @return none
-     */
-    static void GetTagL(TDes& aText, TInt aId);
-    
-private:
-    /**
-     * Replaces special characters to xml compliant.
-     * @param aText
-     * @param aValue
-     * @return none
-     */
-    static void ReplaceSpecialCharsL( TDes& aText, const TDesC& aValue );
-    };
-
-
-//
-// Class TXmlParser
-//
-NONSHARABLE_CLASS( TXmlParser )
-    {
-
-public:
-    enum TElementType
-        {
-        EElementValue,
-        EElementBegin,
-        EElementEnd,
-        EElementEmpty,
-        EElementAtt,
-        EElementComment,
-        EElementVersion,
-        EElementDocType,
-        EElementUnknown
-        };
-
-
-public:
-    /**
-     * Sets a tag
-     * @param aText The tag
-     * @return none
-     */
-    void Set(const TDesC& aText);
-    /**
-     * Returns type
-     * @return type
-     */
-    TInt Type() const;
-    /**
-     * Returns a pointer to a tag
-     * @return The tag pointer
-     */
-    TPtrC Tag() const;
-    /**
-     * Gets the tag
-     * @param aText The tag buffer
-     * @return none
-     */
-    void GetTag(TDes& aText) const;
-
-private:
-    /**
-     * Parses value (eg. <Language>en</Language>)
-     * @return Operation success
-     */
-    TBool ElementValue();
-    /**
-     * Parses beginning tag (eg. <General>)
-     * @return Operation success
-     */
-    TBool ElementBegin();
-    /**
-     * Parses ending tag (eg. </General>)
-     * @return Operation success
-     */
-    TBool ElementEnd();
-    /**
-     * Parses empty element (eg. <CaseSenN/>)
-     * @return Operation success
-     */
-    TBool ElementEmpty();
-    /**
-     * Parses attribute element (eg. <HW Version="1.5"/>)
-     * Note: Attribute values cannot contain equals (=) or quotations (")
-     * @return Operation success
-     */
-    TBool ElementAtt();
-    /**
-     * Identifies comment element ("<!-- OBEX Capability Object -->").
-     * @return Operation success
-     */
-    TBool ElementComment();
-    /**
-     * Parses unknown elements
-     * @return Operation success
-     */
-    TBool ElementUnknown();
-    /**
-     * Identifies version element ("<?xml version="1.0" ?>") 
-     * @return Operation success
-     */
-    TBool ElementVersion();
-    /**
-     * Identifies document type element 
-     * ("<!DOCTYPE Capability SYSTEM "obex-capability.dtd">").
-     * @return Operation success
-     */
-    TBool ElementDocType();
-
-private:
-    /**
-     * Inits the parser
-     * @return none
-     */
-    void Init();
-    /**
-     * Parses xml-element.  
-     * @return none
-     */
-    void Parse();
-
-public:
-    /**
-     * Validates the character
-     * @param aChar The char to be validated.
-     * @return ETrue if the char is valid
-     */
-    static TBool ValidChar(const TChar aChar);
-    /**
-     * Validates the tag
-     * @param aText The tag to be validated.
-     * @return ETrue if the tag is valid
-     */
-    static TBool ValidTag(const TDesC& aText);
-    /**
-     * Returns the number of characters (aChar)
-     * @param aText The buffer
-     * @param aChar The character
-     * @return The number of characters
-     */
-    static TInt Count(const TDesC& aText, const TChar aChar);
-    /**
-     * Returns the position of the first non space character
-     * @param aText The buffer
-     * @return The position
-     */
-    static TInt FirstNonSpace(const TDesC& aText);
-    /**
-     * Returns the position of the last non space character
-     * @param aText The buffer
-     * @return The position
-     */
-    static TInt LastNonSpace(const TDesC& aText);
-    /**
-     * Function returns a sub-string between aPos1 and aPos2
-     * @param aText The buffer
-     * @param aText Start position
-     * @param aText End position
-     * @return The pointer to the substring
-     */
-    static TPtrC SubStr(const TDesC& aText, TInt aPos1, TInt aPos2);
-    /**
-     * Function performs string copy with length checking.
-     * @param aTarget Target buffer
-     * @param aSource Source buffer
-     * @return none
-     */
-    static void StrCopy(TDes& aTarget, const TDesC& aSource);
-
-private:    
-    /**
-     * Returns a string
-     * @return A pointer to a string
-     */
-    TPtrC Str() const;
-    /**
-     * Trimmer function
-     * @return none
-     */
-    void TrimOriginal();
-    /**
-     * Function returns sub string between aPos1 and aPos2
-     * @param aPos1 Start position
-     * @param aPos2 End posiotion
-     * @return none
-     */
-    TPtrC SubStr(TInt pos1, TInt pos2);
-
-private:
-    TPtrC iOriginal;
-    TPtrC iText;
-    TPtrC iTag;
-    TPtrC iValue;
-    TInt  iType;
-
-    TInt iSlash;
-    TInt iFirst;
-    TInt iLast;
-    };
-
-#endif 
-
-// End of file
-
-
--- a/connectivitymodules/SeCon/services/csc/inc/caputils.h	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,252 +0,0 @@
-/*
-* Copyright (c) 2005-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:  CapUtil header file
-*
-*/
-
-
-// INCLUDES
-
-#ifndef _CAPUTILS_H_
-#define _CAPUTILS_H_
-
-#include "capability.h"
-
-class RFs;
-
-//
-// TMemoryInfo
-//
-NONSHARABLE_CLASS( TMemoryInfo )
-    {
-public:
-    TChar    iDriveLetter;
-    TInt     iDriveNum;
-    TBuf<16> iLocation;
-    TInt64   iFree;
-    TInt64   iUsed;
-    TBool    iShared;
-    TInt64   iFileSize;
-    TInt64   iFolderSize;
-    TInt     iFileNameSize;
-    TInt     iFolderNameSize;
-    TBool    iCaseSensitivity;
-    TUint    iDriveStatus;
-    TInt     iMemNr;
-    };
-
-//
-// CapUtil 
-//
-NONSHARABLE_CLASS( CapUtil )
-    {
-public:
-    /**
-     * Gets default root path from pathinfo. 
-     * @param aText
-     * @param aType
-     * @return none
-     */
-    static void GetDefaultRootPathL( RFs& aFs, TDes& aRootPath );
-    
-    /**
-     * Gets memory type. 
-     * @param aFs
-     * @param aMemoryType
-     * @param aDrive
-     * @return none
-     */
-    static void GetMemoryType( RFs& aFs, TDes& aMemoryType, const TInt aDrive );
-    
-    /**
-     * Gets language
-     * @param aText
-     * @return none
-     */
-    static void GetLanguage( TDes& aText );
-    
-    /**
-     * Gets SW version, SW version date  and device model from SysUtil. 
-     * @param aVersion SW version
-     * @param aDate SW date
-     * @param aModel Device model
-     * @return none
-     */
-    static void GetSWVersionL( TDes& aVersion, TDes& aDate, TDes& aModel );
-    
-    /**
-     * Gets phone manufacturer from HAL. In case manufacturer is not known,
-     * empty value is used.
-     * @param aText Manufacturer
-     * @return none
-     */
-    static void GetManufacturer( TDes& aText );
-    
-    /**
-     * Get memory information for one drive.
-     * @param aFs RFs handle
-     * @param aDriveNumber drive number
-     * @param aInfo Memory information
-     * @return none
-     */
-    static void GetMemoryInfoL( const RFs& aFs, const TInt aDriveNumber, TMemoryInfo& aInfo );
-    
-    /**
-     * Initializes TMemoryInfo.
-     * @param aInfo TMemoryInfo to be initialized
-     * @return none
-     */
-    static void InitMemoryInfo( TMemoryInfo& aInfo );
-    
-    /**
-     * Get language string for aId.
-     * @param aId Language id
-     * @param aText Language text
-     * @return none
-     */
-    static void GetLanguageString( TLanguage aId, TDes& aText );
-    
-    /**
-     * Finds all files in aDir.
-     * @param aFs RFs handle
-     * @param aDir Directory
-     * @param aList List of files in directory
-     * @return none
-     */
-    static void GetFileListL( const RFs& aFs, const TDesC& aDir, 
-                            RArray<TFileName>& aList );
-    
-    
-    /**
-     * Gets operator name, country code, network ID
-     * @param aLongName
-     * @param aCountryCode
-     * @param aNetworkID
-     * @return none
-     */
-    static void GetOperatorNameL( TDes& aLongName, TDes& aCountryCode, TDes& aNetworkID );
-    
-    /**
-     * Creates a panic
-     * @param aReason Panic code
-     * @return none
-     */
-    static void Panic( TInt aReason );
-    
-    /**
-     * String copy with lenght check.
-     * @param aTarget Target string
-     * @param aSource Source string
-     * @return none
-     */
-    static void StrCopy( TDes& aTarget, const TDesC& aSource );
-    
-    /**
-     * Function converts ínteger to string.
-     * @param aText string
-     * @param aNum integer
-     * @return none
-     */
-    static void IntToStr( TDes& aText, TInt64 aNum );
-    
-    /**
-     * Function converts string to integer. If string cannot be converted,
-     * error code is returned.
-     * @param aText string
-     * @param aNum integer
-     * @return error code
-     */
-    static TInt StrToInt( const TDesC& aText, TInt& aNum );
-    
-    /**
-     * Function splits string (eg "name1, name2, name3") into substrings.
-     * @param aText string
-     * @param aSeparator separator character
-     * @param aArray substrings
-     * @return none
-     */
-    static void SplitL( const TDesC& aText, const TChar aSeparator, 
-                        RArray<TPtrC>& aArray );
-    
-    /**
-     * Constructs capability date as string
-     * @param aText string
-     * @param aTime time object
-     * @return none
-     */
-    static void CapabilityDate( TDes& aText, const TTime aTime );
-    
-    /**
-     * Function parses date string of the format "dd-mm-yy".
-     * @param aText string
-     * @return time object
-     */
-    static TTime ParseDateL( const TDesC& aText );
-    
-    /**
-     * Function return TMonth presentation of integer
-     * @param aNum
-     * @return TMonth object
-     */
-    static TMonth Month( TInt aNum );
-    
-    /**
-     * Function checks file extension.
-     * @param aFile File name
-     * @param aExt extension
-     * @return boolean
-     */
-    static TBool CheckFileType( const TDesC& aFile, const TDesC& aExt );
-    };
-
-//
-//  TIdStack
-//
-NONSHARABLE_CLASS( TIdStack )
-    {
-public:
-    
-    /**
-     * Push id to the stack
-     * @param aId Id number
-     * @return none
-     */
-    void Push( TInt aId );
-    
-    /**
-     * Pop id from the stack
-     * @return id
-     */
-    TInt Pop();
-    
-    /**
-     * Size of the stack
-     * @return size
-     */
-    TInt Size() const;
-    
-    /**
-     * Reset the stack.
-     * @return none
-     */
-    void Reset();
-
-private:
-    TInt iPos;
-    TFixedArray<TInt, KNestingLimit> iArray;
-    };
-
-#endif // CapUtils.h
-
-// End of file
--- a/connectivitymodules/SeCon/services/csc/inc/sconcsc.h	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,61 +0,0 @@
-/*
-* Copyright (c) 2005-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:  CSConCSC header file
-*
-*/
-
-
-// INCLUDES
-
-#ifndef _SCONCSC_H_
-#define _SCONCSC_H_
-
-#include <e32base.h>
-
-class CCapInfo;
-
-//============================================================
-// Class CSConCSC declaration
-//============================================================
-class CSConCSC : public CBase
-{
-public:
-    static CSConCSC* NewL();        
-    ~CSConCSC();
-
-public:
-    // Creates capability object and places it into aBuf.
-    // Returns system error code
-	virtual TInt CapabilityObject( CBufFlat& aBuf );
-
-private:	
-	void CapabilityObjectL( CBufFlat& aBuf );
-	
-	CSConCSC();
-    virtual void ConstructL();
-    
-private: // data
-    CCapInfo*   iCapInfo;
-    
-};
-
-IMPORT_C CSConCSC* CreateCSConCSCL();
-typedef CSConCSC* (*TSConCreateCSConCSCFunc) ();   
-
-
-#endif // SCONCSC
-
-// End of file
-
-
--- a/connectivitymodules/SeCon/services/csc/inc/sconsyncservice.h	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,116 +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:  CSConSyncService header file.
-*
-*/
-
-
-#ifndef _SCONSYNCSERVICE_H_
-#define _SCONSYNCSERVICE_H_
-
-#include <e32base.h>
-#include <apgcli.h>     // RApaLsSession
-#include <SyncMLClientDS.h>
-
-
-class TApaAppInfo;
-class RApaLsSession;
-class CRepository;
-
-
-class TSConSolutionInfo
-	{
-	public:
-	TSConSolutionInfo():iTime(0){}
-	public:
-	TFileName 	iSolutionName;
-	TUint		iUid;
-	TTime		iTime;
-	};
-
-/**
- *  This class provides information about active sync solutions.
- *
- *  @code
- *   CSConSyncService *syncService = CSConSyncService::NewLC();
- *   SConSolutionInfo solutionInfo;
- *   syncService->GetSolutionL( KSeconCalendarUid, solutionInfo );
- *   CleanupStack::PopAndDestroy( syncService );
- *  @endcode
- *
- *  @since S60 v5.0
- */
-NONSHARABLE_CLASS( CSConSyncService ) : public CBase
-	{
-	public:
-	static CSConSyncService* NewLC();
-	~CSConSyncService();
-	
-	/**
-     * Populate SolutionInfo according to content type.
-     *
-     * @since S60 v5.0
-     * @param aSeconContentType Contenttype to be readed
-     * @param aSolutionInfo contains founded solution info,
-     * 				        solution info is empty if not found
-     * @return none
-     */
-	void GetSolutionL( const TUint aSeconContentType, TSConSolutionInfo& aSolutionInfo );
-	
-	private:
-	
-	CSConSyncService();
-	void ConstructL();
-	
-	// Return correct providerId according to content type.
-	TSmlDataProviderId ProviderId( const TUint32 aSeconContentType ) const;
-	
-	// Parse time from text
-	TInt ParseTimestamp( TTime& aTime, const TDesC& aTimestamp ) const;
-	
-	// Get application caption.
-	void GetApplicationCaptionL( TDes& aCaption, const TUid aAppUid );
-	
-	// Search UID from installed applications, return app caption
-	void GetInstPackageCaptionL( TDes& aCaption, const TUid aPackageUid );
-	
-	// Gets last used profile for selected provider
-	void GetLastUsedProfileNameL( TDes& aProfileName, TTime& aTime,
-			const TSmlDataProviderId& aDataProviderId );
-	
-	// Gets last sync time for certain profile and provider.
-	void GetLastSyncTimeL( TTime& aTime, const TSmlProfileId aSyncProfileId,
-			const TSmlDataProviderId aDataProviderId );
-	
-	// Gets provider task id from profile
-	void GetProviderTaskL( TSmlTaskId& aProviderTask,
-			RSyncMLDataSyncProfile& aSyncProfile,
-			const TSmlDataProviderId aDataProviderId ) const;
-	
-	// Gets latest historyJob where task is correct.
-	const CSyncMLHistoryJob* LatestHistoryJob( RSyncMLHistoryLog& aHistoryLog,
-			TInt aTaskId ) const;
-	
-	// Returns ETrue if task exists in HistoryJob.
-	TBool TaskExist( const CSyncMLHistoryJob* aHistoryJob, TInt aTaskId ) const;
-	
-	private: // data
-	TBool			iApaSessionConnected;
-	RApaLsSession 	iApaSession;
-	TBool			iSyncSessionOpened;
-	RSyncMLSession 	iSyncSession;
-	CRepository* 	iRepository;
-	};
-
-#endif // _SCONSYNCSERVICE_H_
--- a/connectivitymodules/SeCon/services/csc/inc/sconversioninfo.h	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,116 +0,0 @@
-/*
-* Copyright (c) 2008-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:  Handles version fetching
-*
-*/
-
-
-#ifndef SCONVERSIONINFO_H_
-#define SCONVERSIONINFO_H_
-
-#include <e32base.h>
-#include <sysversioninfo.h>
-#include <versioninfo.h>
-#include <etelmm.h>
-#include <sysutil.h>
-
-const TInt KSconSWVersionSize = 50;
-const TInt KSconDateSize = 16;
-const TInt KMaxLangSize = 5;
-
-NONSHARABLE_CLASS( CSconVersionInfo ) : public CBase
-{
-public:
-	CSconVersionInfo();
-	~CSconVersionInfo();
-	
-	static CSconVersionInfo* NewL();
-	
-	/**
-	 * 
-	 * @param aFs RFs session
-	 * @return none.
-	 */
-	void FetchInfoL( RFs& aFs );
-	
-	/**
-	 *  Is all data ready.
-	 *  @return ETrue if FetchInfoL has been called succesfully.
-	 */
-	TBool IsReady();
-	
-	/**
-	 * Get symbian version. FetchInfoL must be called first
-	 * @param aSymbianVersion symbian version
-	 * @return error code.
-	 */
-	TInt GetSymbianVersion( SysVersionInfo::TSymbianOSVersion& aSymbianVersion );
-	
-	/**
-     * Get S60 platform version. FetchInfoL must be called first
-     * @param aS60Version S60 platform version
-     * @return error code.
-     */
-    TInt GetS60Version( VersionInfo::TPlatformVersion& aS60Version );
-    
-public: // data
-    
-    /**  Contains the manufacturer name. For example "Nokia". */
-    HBufC* iManufacturer;
-
-    /**  Contains the phone model sales name. For example "N01". */
-    HBufC* iModel;
-
-    /**  Contains the product code name. For example "RM-1". */
-    HBufC* iProduct;
-
-    /**  Contains the product revision. For example "01". */
-    HBufC* iRevision;
-    
-    TBuf< KSconDateSize > iDate;
-    
-    HBufC* iSWVersion;
-    
-    /** Phone serial number (IMEI or ESN), in character string format. */
-    HBufC* iSerialNumber;
-    
-    TBuf<KMaxLangSize> iLanguage;
-    
-    HBufC* iSysVersionInfo;
-    
-    HBufC* iLangVersion;
-    
-    HBufC* iLangSWVersion;
-    
-    HBufC* iOPVersion;
-    
-    TSize iScreenSize;
-    
-    HBufC* iProductCode;
-    
-    TInt iDesktopSyncError;
-    TInt iDesktopSync;
-    
-private:
-    TBool iInfoFetched; // ETrue if FetchInfoL has been called succesfully.
-    
-    TInt iSymbianVersionError;
-    SysVersionInfo::TSymbianOSVersion iSymbianVersion;
-    
-    TInt iS60VersionError;
-    VersionInfo::TPlatformVersion iS60Version;
-    
-};
-
-#endif /*SCONVERSIONINFO_H_*/
--- a/connectivitymodules/SeCon/services/csc/inc/stringlist.h	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,142 +0,0 @@
-/*
-* Copyright (c) 2005-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:  CStringList header file
-*
-*/
-
-
-#ifndef _STRINGLIST_H_
-#define _STRINGLIST_H_
-
-// INCLUDES
-
-#include <e32base.h>
-#include <badesca.h>  // for CDesCArrayFlat
-#include <f32file.h>
-
-//
-// CStringList is used for storing lines of text.
-//
-NONSHARABLE_CLASS( CStringList ) : public CBase
-{
-public:
-    /**
-     * Two-phase constructor. The created instance is placed to cleanup stack
-     * @param aFileName Default KNullDesC
-     * @return CStringList instance
-     */
-    static CStringList* NewLC();
-    /**
-     * Two-phase constructor.
-     * @param aFileName Default KNullDesC
-     * @return CStringList instance
-     */
-    static CStringList* NewL();
-    /**
-     * Destructor
-     * @return none
-     */
-    ~CStringList();
-    
-public:
-    /**
-     * Returns the count of lines
-     * @return The count
-     */
-    TInt Count() const;
-    /**
-     * Returns pointer to the string
-     * @param aIndex The position
-     * @return String pointer
-     */
-    TPtrC16 ReadPtr(TInt aIndex);
-    /**
-     * Copies a string / strings
-     * @param aSource Source buffer
-     * @param aStart A start position
-     * @param aStop A stop position
-     * @return none
-     */
-    void CopyL(CStringList* aSource, TInt aStart, TInt aStop);
-    /**
-     * Resets iLines
-     * @return none
-     */
-    void Reset();
-    /**
-     * Returns the mark
-     * @return Mark value
-     */
-    TInt Mark() const;
-    /**
-     * Sets mark
-     * @param aMark The mark value
-     * @return none
-     */
-    void SetMark(TInt aMark);
-    /**
-     * Read strings from file.
-     * @param aText The tag buffer
-     * @return none
-     */
-    void ReadFromFileL( RFs& aFs, const TDesC& aName );
-
-private:
-    /**
-     * Default constuctor
-     * @return none
-     */
-    CStringList();
-    /**
-     * Initializes member data
-     * @param aFileName The file name
-     * @return none
-     */
-    void ConstructL();
-    /**
-     * Creates a panic
-     * @param aPanic Panic code
-     * @return none
-     */
-    void Panic(TInt aPanic) const;
-    /**
-     * Copies the string
-     * @param aTarget Target string
-     * @param aSource Source string
-     * @return ETrue if successful
-     */
-    TBool StrCopy(TDes& aTarget, const TDesC& aSource) const;
-    /**
-     * Writes a string
-     * @param aText The string
-     * @return none
-     */
-    void WriteL(const TDesC& aText);
-    /**
-     * Internalizes from file
-     * @param aFileName The name of the file
-     * @return none
-     */
-    void InternalizeL( RFs& aFs, const TDesC& aFileName );
-
-private:
-    TInt            iMark; 
-    CDesCArrayFlat* iLines;
-};
-
-#endif
-
-// End of file
-
-
--- a/connectivitymodules/SeCon/services/csc/src/capinfo.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1031 +0,0 @@
-/*
-* Copyright (c) 2005-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:  CCapInfo implementation
-*
-*/
-
-
-// INCLUDE FILES
-
-#include <utf.h>
-#include <driveinfo.h>
-#include <pathinfo.h>    // for PathInfo::SoundsPath
-#include <seconsdkcrkeys.h>
-#include "sconsyncservice.h"
-#include "capinfo.h"
-#include "caplist.h"
-#include "capparser.h"
-#include "caputils.h"
-#include "stringlist.h"
-#include "sconversioninfo.h"
-#include "debug.h"
-
-
-_LIT8( KLineFeed, "\r\n" );
-
-const TInt KDefaultArrayGranularity = 5;
-
-
-// ============================= MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CCapInfo::NewL()
-// Two-phase constructor
-// -----------------------------------------------------------------------------
-//
-CCapInfo* CCapInfo::NewL()
-    {
-    TRACE_FUNC_ENTRY;
-    CCapInfo* self = new (ELeave) CCapInfo();
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop(self);
-    TRACE_FUNC_EXIT;
-    return self;
-    }
-    
-// -----------------------------------------------------------------------------
-// CCapInfo::~CCapInfo()
-// Destructor
-// -----------------------------------------------------------------------------
-//
-CCapInfo::~CCapInfo()
-    {
-    TRACE_FUNC_ENTRY;
-    iFsSession.Close();
-    delete iHeapBuf;
-    delete iCapList;
-    delete iSconInfo;
-    TRACE_FUNC_EXIT;
-    }
-    
-// -----------------------------------------------------------------------------
-// CCapInfo::CapabilityDocumentL(CBufFlat* aBuf)
-// Creates capability xml document end places it in aBuf
-// -----------------------------------------------------------------------------
-//
-void CCapInfo::CapabilityDocumentL(CBufFlat* aBuf)
-    {
-    TRACE_FUNC_ENTRY;
-    TInt err( KErrNone );
-    
-    // set buffer where capability document is written
-    SetCapabilityBuf( aBuf );
-    
-    WriteL( KXmlVersion );
-    WriteL( KComment1 );
-    WriteL( KDocType );
-    WriteL( KRootBegin );
-    
-    
-    //
-    // general
-    //
-    TRAP( err, GeneralInfoL() );
-    if ( err != KErrNone )
-        {
-        LOGGER_WRITE_1( "GeneralInfoL failed : %d", err );
-        User::Leave( err ); 
-        }
-    
-    
-    //
-    // services
-    //
-    // Search service files first from C-drive, and then from Z
-    // Do not add same files twice.
-    
-    RArray<TFileName> excludeList( KDefaultArrayGranularity );
-    CleanupClosePushL( excludeList );
-    RArray<TFileName> filesAdded( KDefaultArrayGranularity );
-    CleanupClosePushL( filesAdded );
-    
-    //read service files from C Import folder
-    TRAP( err, ServiceInfoL( KCapabilityDirCImport, excludeList, filesAdded ) );     
-    LOGGER_WRITE_1( "ServiceInfoL(KCapabilityDirCImport) returned : %d", err );
-    for ( TInt i=0; i<filesAdded.Count(); i++ )
-        {
-        excludeList.Append( filesAdded[i] );
-        }
-    filesAdded.Reset();
-    
-    // read service files from C Capability folder
-    TRAP( err, ServiceInfoL( KCapabilityDirC, excludeList, filesAdded ) ); 
-    LOGGER_WRITE_1( "ServiceInfoL(KCapabilityDirC) returned : %d", err );
-    for ( TInt i=0; i<filesAdded.Count(); i++ )
-        {
-        excludeList.Append( filesAdded[i] );
-        }
-    filesAdded.Reset();
-    
-    // read service files from Z Capability folder
-    TRAP( err, ServiceInfoL( KCapabilityDirZ, excludeList, filesAdded ) );
-    LOGGER_WRITE_1( "ServiceInfoL(KCapabilityDirZ) returned : %d", err );
-    
-    CleanupStack::PopAndDestroy( &filesAdded );
-    CleanupStack::PopAndDestroy( &excludeList );
-    
-        
-    // this service does not come from file
-    TRAP( err, FolderServiceL() );
-    LOGGER_WRITE_1( "FolderServiceL() returned : %d", err );
-    
-    TRAP( err, SyncSolutionsServiceL() );
-    LOGGER_WRITE_1( "SyncSolutionsServiceL() returned: %d", err );
-
-    WriteL( KRootEnd );
-    TRACE_FUNC_EXIT;
-    }
-    
-// -----------------------------------------------------------------------------
-// CCapInfo::ConstructL()
-// Initializes member data
-// -----------------------------------------------------------------------------
-//
-void CCapInfo::ConstructL()
-    {
-    TRACE_FUNC_ENTRY;
-    User::LeaveIfError( iFsSession.Connect() );
-    
-    iHeapBuf = HBufC8::NewL( KMaxSize*2 );
-    iCapList = CCapList::NewL();
-    iIdStack.Reset();
-    
-    iSconInfo = CSconVersionInfo::NewL();
-    TInt err(KErrNone);
-    TRAP(err, iSconInfo->FetchInfoL( iFsSession ));
-    LOGGER_WRITE_1("sconInfo->FetchInfoL() Leaved: %d", err);
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CCapInfo::CCapInfo()
-// Constuctor
-// -----------------------------------------------------------------------------
-//
-CCapInfo::CCapInfo()
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CCapInfo::CapList()
-// Returns caplist
-// -----------------------------------------------------------------------------
-//
-CCapList* CCapInfo::CapList()
-    {
-    TRACE_FUNC;
-    __ASSERT_DEBUG(iCapList, CapUtil::Panic(KErrGeneral));
-    return iCapList;
-    }
-
-// -----------------------------------------------------------------------------
-// CCapInfo::SetCapabilityBuf( CBufFlat* aBuf )
-// Set capability buffer
-// -----------------------------------------------------------------------------
-//
-void CCapInfo::SetCapabilityBuf( CBufFlat* aBuf )
-    {
-    TRACE_FUNC;
-    iCapabilityBuf=aBuf;
-    }
-
-// -----------------------------------------------------------------------------
-// CCapInfo::GeneralInfoL()
-// Write general device capability information.
-// -----------------------------------------------------------------------------
-//
-void CCapInfo::GeneralInfoL()
-    {
-    TRACE_FUNC_ENTRY;
-    TInt err( KErrNone );
-    TBuf<KBufSize> buf;
-    TBuf<KBufSize> longName;
-    TBuf<KBufSize> coutryCode;
-    TBuf<KBufSize> networkID;
-    
-    WriteTagL(EGeneral, TXmlParser::EElementBegin);
-    
-    if ( !iSconInfo->IsReady() )
-        {
-        LOGGER_WRITE("iSconInfo wasn't ready, call iSconInfo->FetchInfoL");
-        iSconInfo->FetchInfoL( iFsSession );
-        }
-    
-    if ( iSconInfo->iManufacturer )
-        {
-        WriteValueL( EManufacturer, *iSconInfo->iManufacturer );
-        }
-    
-    if ( iSconInfo->iProduct )
-        {
-        WriteValueL( EModel, *iSconInfo->iProduct );
-        }
-    
-    // serial number
-    if ( iSconInfo->iSerialNumber )
-        {
-        WriteValueL( ESN, *iSconInfo->iSerialNumber );
-        }
-    
-    // software version 
-    if ( iSconInfo->iSWVersion )
-        {
-        WriteAttributeL( ESW, *iSconInfo->iSWVersion, iSconInfo->iDate );
-        }
-    
-    // language
-    WriteValueL( ELanguage, iSconInfo->iLanguage );
-
-    // this must succeed - do not trap
-    MemoryInfoL();
-    
-    // Operator
-    TRAP( err, CapUtil::GetOperatorNameL( longName, coutryCode, networkID ) );
-    LOGGER_WRITE_1( "CapUtil::GGetOperatorNameL returned : %d", err );
-    if( err == KErrNone )
-        {
-        LOGGER_WRITE_3( "CSConFsHandler::GetOperatorNameL longName =  %S coutryCode = %S networkID = %S", &longName, &coutryCode, &networkID );       
-        _LIT( KNetworkInfo, "NetworkInfo" );
-        _LIT( KCurrentNetwork, "CurrentNetwork=" );
-        _LIT( KCountryCode, "CountryCode=" );
-        _LIT( KNetworkID, "NetworkID=" );
-        
-        WriteTagL( EExt, TXmlParser::EElementBegin );
-        WriteValueL( EXNam, KNetworkInfo );
-        
-        // write CurrentNetwork
-        buf.Copy( KCurrentNetwork );
-        buf.Append( longName );
-        WriteValueL( EXVal, buf );
-        
-        // write CountryCode
-        buf.Copy( KCountryCode );
-        buf.Append( coutryCode );
-        WriteValueL( EXVal, buf );
-        
-        // write NetworkID
-        buf.Copy( KNetworkID );
-        buf.Append( networkID );
-        WriteValueL( EXVal, buf );
-        
-        WriteTagL( EExt, TXmlParser::EElementEnd );     
-        }
-    
-    if ( iSconInfo->iModel )
-        {
-        // print modelname (phone model sales name. For example "N01".)
-        WriteTagL( EExt, TXmlParser::EElementBegin );
-        _LIT(KModelName, "ModelName");
-        WriteValueL( EXNam, KModelName );
-        WriteValueL( EXVal, *iSconInfo->iModel );
-        WriteTagL( EExt, TXmlParser::EElementEnd ); 
-        }
-        
-    if ( iSconInfo->iProductCode )
-        {
-        // print productcode
-        WriteTagL( EExt, TXmlParser::EElementBegin );
-        _LIT( KProductCode, "ProductCode" );
-        WriteValueL( EXNam, KProductCode );
-        WriteValueL( EXVal, *iSconInfo->iProductCode );
-        WriteTagL( EExt, TXmlParser::EElementEnd );
-        }
-    
-    
-    // print advanced info
-    WriteTagL( EExt, TXmlParser::EElementBegin );
-    _LIT(KAdvancedDeviceInfo, "AdvancedDeviceInfo");
-    WriteValueL( EXNam, KAdvancedDeviceInfo );
-    
-    TBuf<KSysVersionInfoTextLength> temp;
-    
-    if ( iSconInfo->iRevision )
-        {
-        // product revision. For example "01"
-        _LIT( KRevision, "Revision=" );
-        temp.Copy( KRevision );
-        temp.Append( *iSconInfo->iRevision );
-        LOGGER_WRITE_1( "CCapInfo::GeneralInfoL() : %S ", &temp );
-        WriteValueL( EXVal, temp );
-        }
-    
-    
-    if ( iSconInfo->iSysVersionInfo )
-        {
-        _LIT( KFWVersion, "FWVersion=" );
-        temp.Copy( KFWVersion );
-        temp.Append( *iSconInfo->iSysVersionInfo );
-        LOGGER_WRITE_1( "CCapInfo::GeneralInfoL() : %S ", &temp );
-        WriteValueL( EXVal, temp );
-        }
-    
-    SysVersionInfo::TSymbianOSVersion osVersion;
-    err = iSconInfo->GetSymbianVersion( osVersion );
-    LOGGER_WRITE_1("TSymbianOSVersion info error: %d", err)
-    if ( !err )
-        {
-        // Now osVersion contains the Symbian OS version information
-        _LIT( KSymbianOSVersion, "SymbianOSVersion=%d.%d" );
-        temp.Format( KSymbianOSVersion,
-                osVersion.iMajorVersion,
-                osVersion.iMinorVersion  );
-        LOGGER_WRITE_1( "CCapInfo::GeneralInfoL() : %S ", &temp );
-                        
-        WriteValueL( EXVal, temp );
-        }
-    
-    VersionInfo::TPlatformVersion platformVersion;
-    err = iSconInfo->GetS60Version( platformVersion );
-    if ( !err )
-       {
-       _LIT( KS60Version, "S60PlatformVersion=%d.%d" );
-       temp.Format( KS60Version,
-               platformVersion.iMajorVersion,
-               platformVersion.iMinorVersion  );
-       LOGGER_WRITE_1( "CCapInfo::GeneralInfoL() : %S ", &temp );
-       WriteValueL( EXVal, temp );
-       }
-    
-    
-    if ( iSconInfo->iLangVersion )
-        {
-        _LIT( KLangVersion, "LangVersion=" );
-        temp.Copy( KLangVersion );
-        temp.Append( *iSconInfo->iLangVersion );
-        LOGGER_WRITE_1( "CCapInfo::GeneralInfoL() : %S ", &temp );
-        WriteValueL( EXVal, temp );
-        }
-    
-    if ( iSconInfo->iLangSWVersion )
-        {
-        _LIT( KLangSWVersion, "LangSWVersion=" );
-        temp.Copy( KLangSWVersion );
-        temp.Append( *iSconInfo->iLangSWVersion );
-        LOGGER_WRITE_1( "CCapInfo::GeneralInfoL() : %S ", &temp );
-        WriteValueL( EXVal, temp );
-        }
-    
-    if ( iSconInfo->iOPVersion )
-        {
-        // CustomerVersion
-        _LIT( KOPVersion, "OPVersion=" );
-        temp.Copy( KOPVersion );
-        temp.Append( *iSconInfo->iOPVersion );
-        LOGGER_WRITE_1( "CCapInfo::GeneralInfoL() : %S ", &temp );
-        WriteValueL( EXVal, temp );
-        }
-    
-    // screen size
-    LOGGER_WRITE_2("Size, width: %d, height: %d",
-            iSconInfo->iScreenSize.iWidth,
-            iSconInfo->iScreenSize.iHeight );
-    _LIT( KWidth, "ScreenWidth=%d" );
-    _LIT( KHeight, "ScreenHeight=%d" );
-    
-    temp.Format( KWidth, iSconInfo->iScreenSize.iWidth );
-    WriteValueL( EXVal, temp );
-    
-    temp.Format( KHeight, iSconInfo->iScreenSize.iHeight );
-    WriteValueL( EXVal, temp );
-    
-    WriteTagL( EExt, TXmlParser::EElementEnd ); 
-    // end of advanced info
-    
-    WriteTagL(EGeneral, TXmlParser::EElementEnd);
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CCapInfo::MemoryInfoL()
-// Create memory info for all drives (RAM excluded).
-// -----------------------------------------------------------------------------
-//
-void CCapInfo::MemoryInfoL()
-    {
-    TRACE_FUNC_ENTRY;
-    
-    TMemoryInfo info;
-    TInt devDriveCount = 0;
-    TInt mmcDriveCount = 0;
-    
-    //Write all drivers to folderlisting object
-    TDriveList driveList;
-    // Get all drives that are visible to the user.
-    TInt driveCount;
-    User::LeaveIfError( DriveInfo::GetUserVisibleDrives( iFsSession, driveList, driveCount ) );
-    
-    for( TInt i = EDriveA; i < KMaxDrives; i++ )
-        {
-        if( driveList[i] )
-            {
-            TUint driveStatus;
-            TInt err = DriveInfo::GetDriveStatus( iFsSession, i, driveStatus );
-            if( err )
-                {
-                LOGGER_WRITE_1( "CCapInfo::MemoryInfoL() : DriveInfo::GetDriveStatus: %d", i);
-                continue;
-                }
-            
-            if( !(driveStatus & DriveInfo::EDrivePresent )
-                || driveStatus & DriveInfo::EDriveCorrupt
-                || (driveStatus & DriveInfo::EDriveRemote) )
-                {
-                LOGGER_WRITE_1( "skip drive %d", i);
-                continue;
-                }
-            
-            TRAP( err, CapUtil::GetMemoryInfoL( iFsSession, i, info ));
-            if ( err )
-                {
-                LOGGER_WRITE_1( "CapUtil::GetMemoryInfoL() : Leaved with: %d", err);
-                continue;
-                }
-            
-            info.iDriveStatus = driveStatus;
-            if( driveStatus & DriveInfo::EDriveInternal )
-                {
-                // if internal (DEV) drive, save drive number
-                devDriveCount++;
-                info.iMemNr = devDriveCount;
-                }
-            else if ( driveStatus & DriveInfo::EDriveRemovable )
-                {
-                // if removable (MMC) drive, save drive number
-                mmcDriveCount++;
-                info.iMemNr = mmcDriveCount;
-                }
-            else
-                {
-                // was not internal or removable, skip.
-                LOGGER_WRITE( "CCapInfo::MemoryInfoL() : not internal or removable, skip." );
-                continue;
-                }
-                
-            WriteMemoryInfoL(info);
-            
-            }
-        }
-    
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CCapInfo::MemoryInfoL(TMemoryInfo& aInfo)
-// Create memory info for all drives (RAM excluded).
-// -----------------------------------------------------------------------------
-//
-void CCapInfo::WriteMemoryInfoL(TMemoryInfo& aInfo)
-    {
-    TRACE_FUNC_ENTRY;
-    TBuf<KBufSize> buf;
-
-    WriteTagL(EMemory, TXmlParser::EElementBegin);
-
-    if( aInfo.iDriveStatus & DriveInfo::EDriveInternal )
-        {
-        buf = KMediaFlash;
-        }
-    else
-        {
-        buf = KMediaMMC;  // memory card (MMC)
-        }
-        
-    if( aInfo.iMemNr > 1 )
-        {
-        // append memory number DEV2, MMC2..
-        buf.AppendNum( aInfo.iMemNr ); 
-        }
-    
-    WriteValueL(EMemType, buf);
-    WriteValueL(ELocation, aInfo.iLocation);
-    WriteValueL(EFree, aInfo.iFree);
-    WriteValueL(EUsed, aInfo.iUsed);
-    
-    WriteValueL(EFileNLen, aInfo.iFileNameSize);
-
-    WriteTagL(EMemory, TXmlParser::EElementEnd);
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CCapInfo::ServiceInfoL(const TDesC& aDir)
-// Reads service xml-files from directory and writes them into capability 
-// document.
-// -----------------------------------------------------------------------------
-//
-void CCapInfo::ServiceInfoL(const TDesC& aDir, const RArray<TFileName>& aExcludeList,
-    RArray<TFileName>& aFilesAdded)
-    {
-    TRACE_FUNC_ENTRY;
-    CCapList* capList=CapList();
-
-    RArray<TFileName> array( KDefaultArrayGranularity );
-    CleanupClosePushL(array);
-
-    CStringList* stringList=CStringList::NewLC();
-
-    CapUtil::GetFileListL(iFsSession, aDir, array);
-    
-    _LIT(KFormat, "%S%S");
-    TFileName name;
-    TInt count=array.Count();
-    for (TInt i=0; i<count; i++)
-        {
-        TBool exludeFromList(EFalse);
-        
-        // Check if file is already added to list
-        for ( TInt j=0; j<aExcludeList.Count() && !exludeFromList; j++ )
-            {
-            if ( array[i].CompareF(aExcludeList[j]) == 0 )
-                {
-                LOGGER_WRITE_1( "match found at pos %d", j);
-                exludeFromList = ETrue;
-                }
-            }
-        
-        if ( !exludeFromList )
-            {
-            name.Format(KFormat, &aDir, &array[i]);
-            if (!CapUtil::CheckFileType(name, KXmlExtension))
-                {
-                continue;  // only accept .xml files
-                }
-            
-            capList->List()->Reset();
-            capList->List()->ReadFromFileL( iFsSession, name );
-            if (capList->FindServiceL(stringList))
-                {
-                WriteNewLineL();
-                WriteFromListL(stringList);
-                
-                User::LeaveIfError( aFilesAdded.Append(array[i]) );
-                LOGGER_WRITE_1( "File '%S' added to list", &array[i] );
-                }
-            }
-        }
-
-    CleanupStack::PopAndDestroy(stringList);
-    CleanupStack::PopAndDestroy(&array);
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CCapInfo::FolderServiceL()
-// Writes folder service. Notice that this service is created in code because
-// pathinfo component is used to get folder names.
-// -----------------------------------------------------------------------------
-//
-void CCapInfo::FolderServiceL()
-    {
-    TRACE_FUNC_ENTRY;
-    TBuf<KBufSize> rootPath;
-    TBuf<KBufSize> memoryType(KNullDesC);
-    TFileName folderName;
-    _LIT( KFormat, "%S%S" );
-    
-    WriteNewLineL();
-    WriteTagL(EService, TXmlParser::EElementBegin);
-
-    WriteValueL(EName,  KFolderServiceName);
-    WriteValueL(EUUID,  KFolderServiceUid);
-    WriteValueL(EVersion,  KFolderServiceVersion);
-
-    WriteTagL(EObject, TXmlParser::EElementBegin);
-    WriteValueL(EType,  KFolderServiceType);
-    WriteTagL(EObject, TXmlParser::EElementEnd);
-    TInt drive;
-    TInt err;
-    
-    CapUtil::GetDefaultRootPathL( iFsSession, rootPath );
-    if( rootPath.Length() > 0 )
-        {
-        err = iFsSession.CharToDrive( rootPath[0], drive );
-        if( err == KErrNone )
-            {
-            CapUtil::GetMemoryType( iFsSession, memoryType, drive );
-            }
-        }
-
-    // EFolderImages
-    folderName.Format( KFormat, &rootPath, &PathInfo::ImagesPath() );
-    WriteFolderL( KFolderImages, folderName, memoryType );
-    
-    // EFolderGraphics
-    folderName.Format( KFormat, &rootPath, &PathInfo::ImagesPath() );
-    WriteFolderL(KFolderGraphics, folderName, memoryType);
-    
-    // EFolderTones
-    folderName.Format( KFormat, &rootPath, &PathInfo::DigitalSoundsPath() );
-    WriteFolderL(KFolderTones, folderName, memoryType);
-    
-    // EFolderMusic
-    folderName.Format( KFormat, &rootPath, &PathInfo::SoundsPath() );
-    WriteFolderL(KFolderMusic, folderName, memoryType);
-    
-    // EFolderVideos
-    folderName.Format( KFormat, &rootPath, &PathInfo::VideosPath() );
-    WriteFolderL(KFolderVideos, folderName, memoryType);
-    
-    // EFolderInstalls
-    folderName.Format( KFormat, &rootPath, &PathInfo::InstallsPath() );
-    WriteFolderL(KFolderInstalls, folderName, memoryType);
-
-
-    WriteTagL(EService, TXmlParser::EElementEnd);
-    WriteNewLineL();
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CCapInfo::SyncSolutionsServiceL()
-// Reads last used syncSolutions from cenrep and writes to capability object
-// -----------------------------------------------------------------------------
-//
-void CCapInfo::SyncSolutionsServiceL()
-    {
-    TRACE_FUNC_ENTRY;
-    TSConSolutionInfo calendar;
-    TSConSolutionInfo contact;
-    TSConSolutionInfo sms;
-    TSConSolutionInfo bookmark;
-    
-    CSConSyncService *syncService = CSConSyncService::NewLC();
-    syncService->GetSolutionL( KSeconCalendarUid, calendar );
-    syncService->GetSolutionL( KSeconContactsUid, contact );
-    syncService->GetSolutionL( KSeconSmsUid, sms );
-    syncService->GetSolutionL( KSeconBookmarkUid, bookmark );
-    CleanupStack::PopAndDestroy( syncService );
-    
-    WriteSyncSolutionsServiceL( calendar, contact, sms, bookmark );
-    
-    TRACE_FUNC_EXIT;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCapInfo::WriteSyncSolutionsServiceL()
-// Writes SyncSolutionsService data to capability object.
-// -----------------------------------------------------------------------------
-//
-void CCapInfo::WriteSyncSolutionsServiceL( const TSConSolutionInfo& aCalendar,
-        const TSConSolutionInfo& aContact,
-        const TSConSolutionInfo& aSms,
-        const TSConSolutionInfo& aBookmark)
-    {
-    TRACE_FUNC_ENTRY;
-    
-    WriteTagL( EService, TXmlParser::EElementBegin );
-
-    WriteValueL( EName,  KSyncSolutionsServiceName );
-    WriteValueL( EVersion,  KSyncSolutionsServiceVersion );
-    
-    if ( aCalendar.iUid != 0 )
-        {
-        WriteSolutionTagL( KSyncCalendar, aCalendar );
-        }
-    
-    if ( aContact.iUid != 0 )
-        {
-        WriteSolutionTagL( KSyncContacts, aContact );
-        }
-    
-    if ( aSms.iUid != 0 )
-        {
-        WriteSolutionTagL( KSyncSms, aSms );
-        }
-    
-    if ( aBookmark.iUid != 0 )
-        {
-        WriteSolutionTagL( KSyncBookmark, aBookmark );
-        }
-    
-    /*
-     * <Ext>
-     *   <XNam>DesktopSync</XNam>
-     *   <XVal></XVal>
-     * </Ext>
-     * 
-     */
-    if ( !iSconInfo->iDesktopSyncError )
-        {
-        WriteTagL( EExt, TXmlParser::EElementBegin );
-        WriteValueL( EXNam, KDesktopSync );
-        
-        TBuf<KBufSize> buffer;
-        buffer.AppendNum( iSconInfo->iDesktopSync );
-        
-        WriteValueL( EXVal, buffer );
-        WriteTagL( EExt, TXmlParser::EElementEnd );
-        }
-    
-    
-    
-    WriteTagL( EService, TXmlParser::EElementEnd );
-    TRACE_FUNC_EXIT;
-    }
-
-
-
-// -----------------------------------------------------------------------------
-// CCapInfo::WriteSolutionTagL()
-// Writes SyncSolutionsService solution data to capability object.
-// -----------------------------------------------------------------------------
-//
-void CCapInfo::WriteSolutionTagL( const TDesC& aContentName,
-        const TSConSolutionInfo& aSolution )
-    {
-    TRACE_FUNC_ENTRY;
-    _LIT( KFormatUID, "UID=0x%08x" );
-    _LIT( KFormatName, "Name=%S" );
-    _LIT( KFormatDate, "Timestamp=%04d%02d%02dT%02d%02d%02dZ" );
-    
-    WriteTagL( EExt, TXmlParser::EElementBegin );
-    WriteValueL( EXNam, aContentName );
-    
-    TFileName temp;
-    temp.Format( KFormatUID, aSolution.iUid );
-    WriteValueL( EXVal, temp );
-    
-    temp.Format( KFormatName, &aSolution.iSolutionName );
-    WriteValueL( EXVal, temp );
-    
-    if ( aSolution.iTime.Int64() != 0 )
-        {
-        // write time
-        TDateTime time = aSolution.iTime.DateTime();
-        temp.Format( KFormatDate, time.Year(), time.Month() + 1,
-            time.Day() + 1, time.Hour(), time.Minute(), time.Second() );
-        WriteValueL( EXVal, temp );
-        
-        }
-    
-    
-    WriteTagL( EExt, TXmlParser::EElementEnd );
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CCapInfo::WriteFolderL(const TDesC& aType, const TDesC& aFullName, 
-// const TDesC& aMemory)
-// Writes one folder name element.
-// -----------------------------------------------------------------------------
-//
-void CCapInfo::WriteFolderL(const TDesC& aType, const TDesC& aFullName, 
-                            const TDesC& aMemory)
-    {
-    TRACE_FUNC_ENTRY;
-    _LIT(KFormat, "%S=%S");
-
-    TBuf<KBufSize> buf; 
-    const TInt KReservedSize = 10;
-    if ( aFullName.Length() + KReservedSize > KBufSize )
-        {
-        return;
-        }
-    buf.Format(KFormat, &KFolderNameTag, &aFullName);
-    
-
-    WriteTagL(EExt, TXmlParser::EElementBegin);
-
-    WriteValueL(EXNam, aType);
-    WriteValueL(EXVal, buf);
-
-    buf.Format(KFormat, &KFolderMemoryTypeTag, &aMemory);
-    WriteValueL(EXVal, buf);
-    
-
-    WriteTagL(EExt, TXmlParser::EElementEnd);
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CCapInfo::WriteL(const TDesC& aText)
-// Writes one element to capability buffer.
-// -----------------------------------------------------------------------------
-//
-void CCapInfo::WriteL(const TDesC& aText)
-    {
-    if (aText.Length() > iBuf.MaxLength())
-        {
-        User::Leave(KErrTooBig);
-        }
-        
-
-    iBuf=aText;
-    iBuf.Trim();
-    FormatElement(iBuf);
-    TPtr8 ptr = iHeapBuf->Des();
-
-    if ( iBuf.Length()+2 > ptr.MaxLength() )
-        {
-        User::Leave(KErrTooBig);
-        }
-        
-    //unicode conversion
-    HBufC8* convBuf = HBufC8::NewLC( iBuf.Size() );
-    TPtr8 convPtr = convBuf->Des();
-    
-    CnvUtfConverter::ConvertFromUnicodeToUtf8(convPtr, iBuf);
-
-    ptr.Copy(convPtr);
-    ptr.Append( KLineFeed );  // linefeed
-    
-    CleanupStack::PopAndDestroy( convBuf );
-    
-    TInt pos=iCapabilityBuf->Size();
-    iCapabilityBuf->InsertL(pos, ptr);
-
-    iBuf=KNullDesC;
-    }
-
-void CCapInfo::WriteNewLineL()
-    {
-    TInt pos=iCapabilityBuf->Size();
-    iCapabilityBuf->InsertL(pos, KLineFeed );
-    }
-
-// -----------------------------------------------------------------------------
-// CCapInfo::WriteValueL(TInt aId, const TDesC& aValue)
-// Constructs element with value (eg <Language>en</Language>)
-// -----------------------------------------------------------------------------
-//
-void CCapInfo::WriteValueL(TInt aId, const TDesC& aValue)
-    {
-    // empty values not written to capability object
-    if (aValue.Length()<1)
-        {
-        LOGGER_WRITE( "WriteValueL: value is empty" );
-        return;
-        }
-
-    TBuf<KBufSize> buf;
-
-    TRAPD(err, CapParser::MakeElementL(buf, aId, aValue));
-    if (err==KErrNone)
-        {
-        WriteL(buf);
-        }
-    else if (err==KErrTooBig)
-        {
-        WriteBigValueL(aId, aValue);
-        }
-    else
-        {
-        User::Leave(err);
-        }
-    
-    }
-
-// -----------------------------------------------------------------------------
-// CCapInfo::WriteBigValueL(TInt aId, const TDesC& aValue)
-// Constructs element with value
-// -----------------------------------------------------------------------------
-//
-void CCapInfo::WriteBigValueL(TInt aId, const TDesC& aValue)
-    {
-    HBufC* hBuf=HBufC::NewL(aValue.Length()+KBufSize);
-    CleanupStack::PushL(hBuf);
-
-    TPtr pBuf(hBuf->Des());
-    CapParser::MakeElementL(pBuf, aId, aValue);
-    WriteL(*hBuf);
-    
-    CleanupStack::PopAndDestroy(hBuf);
-    }
-
-// -----------------------------------------------------------------------------
-// CCapInfo::WriteValueL(TInt aId, TInt64 aValue)
-// Constructs element with integer value
-// -----------------------------------------------------------------------------
-//
-void CCapInfo::WriteValueL(TInt aId, TInt64 aValue)
-    {
-    TBuf<KBufSize> buf;
-    TBuf<KTagSize> value;
-    CapUtil::IntToStr(value, aValue);
-    CapParser::MakeElementL(buf, aId, value);
-    WriteL(buf);
-    }
-
-// -----------------------------------------------------------------------------
-// CCapInfo::WriteTagL(TInt aId, TInt aType)
-// Constructs element without value (eg <Memory>)
-// -----------------------------------------------------------------------------
-//
-void CCapInfo::WriteTagL(TInt aId, TInt aType)
-    {
-    TBuf<KBufSize> buf;
-    CapParser::MakeElementL(buf, aId, aType);
-    WriteL(buf);
-    }
-
-// -----------------------------------------------------------------------------
-// CCapInfo::WriteAttributeL(TInt aId, const TDesC& aVersion, const TDesC& aDate)
-// Constructs element with attributes "Version" and "Date" 
-// (eg <HW Version="1.5"/>)
-// -----------------------------------------------------------------------------
-//
-void CCapInfo::WriteAttributeL(TInt aId, const TDesC& aVersion, 
-                                const TDesC& aDate)
-    {
-    // empty values not written to capability object
-    if (aVersion.Length()<1 && aDate.Length()<1)
-        {
-        LOGGER_WRITE( "WriteAttributeL: attributes are empty" );
-        return;
-        }
-    
-    TBuf<KBufSize> buf;
-    CapParser::MakeElementL(buf, aId, aVersion, aDate);
-    WriteL(buf);
-    }
-
-// -----------------------------------------------------------------------------
-// CCapInfo::WriteFromListL(CStringList* aList)
-// Writes elements from list to capability buffer.
-// -----------------------------------------------------------------------------
-//
-void CCapInfo::WriteFromListL(CStringList* aList)
-    {
-    TInt count=aList->Count();
-
-    for (TInt i=0; i<count; i++)
-        {
-        WriteL(aList->ReadPtr(i));
-        }
-    }   
-
-// -----------------------------------------------------------------------------
-// CCapInfo::FormatElement(TDes& aText)
-// Function adds indentation spaces to capability elements to improve 
-// readability.
-// -----------------------------------------------------------------------------
-//
-void CCapInfo::FormatElement(TDes& aText)
-    {
-    TXmlParser parser;
-
-    parser.Set(aText);
-    TInt type=parser.Type();
-    TBuf<KTagSize> tag;
-    parser.GetTag(tag);
-        
-    if (type==TXmlParser::EElementEnd)
-        {
-        TInt id1=CapParser::ElementId(tag);
-        TInt id2=iIdStack.Pop();
-        
-        __ASSERT_DEBUG(id1==id2, CapUtil::Panic(KErrGeneral));
-        id1=0;
-        id2=0;
-        }
-
-    AddFormatText(aText, iIdStack.Size());
-
-    if (type==TXmlParser::EElementBegin)
-        {
-        TInt id1=CapParser::ElementId(tag);
-        iIdStack.Push(id1);
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CCapInfo::AddFormatText( TDes& aText, TInt aNum ) const
-// Adds format text
-// -----------------------------------------------------------------------------
-//
-void CCapInfo::AddFormatText( TDes& aText, TInt aNum ) const
-    {
-    TBuf<KBufSize> buf;
-    buf = KNullDesC;
-
-    if ( aNum > KNestingLimit )
-        {
-        aNum = KNestingLimit;
-        }
-        
-    for ( TInt i=0; i<aNum; i++ )
-        {
-        buf.Append( KFormatText );
-        }
-    if ( aText.MaxLength()-aText.Length()>buf.Length() )
-        {
-        aText.Insert( 0, buf );
-        }
-    }
-    
-// End of file
-
-
--- a/connectivitymodules/SeCon/services/csc/src/caplist.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,228 +0,0 @@
-/*
-* Copyright (c) 2005-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:  CCapList implementation
-*
-*/
-
-
-// INCLUDE FILES
-
-#include "caplist.h"
-#include "caputils.h"
-#include "capparser.h"
-#include "capability.h"
-#include "debug.h"
-
-// ============================= MEMBER FUNCTIONS ===============================
-
-
-// -----------------------------------------------------------------------------
-// CCapList::NewL()
-// Two-phase constructor.
-// -----------------------------------------------------------------------------
-//
-CCapList* CCapList::NewL()
-    {
-    TRACE_FUNC_ENTRY;
-    CCapList* self = new(ELeave) CCapList();
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop( self );
-    TRACE_FUNC_EXIT;
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// CCapList::~CCapList()
-// Gets phone serial number from etel.
-// -----------------------------------------------------------------------------
-//
-CCapList::~CCapList()
-    {
-    TRACE_FUNC_ENTRY;
-    delete iList;
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CCapList::CCapList()
-// Constructor
-// -----------------------------------------------------------------------------
-//
-CCapList::CCapList()
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CCapList::ConstructL()
-// Initializes the member data
-// -----------------------------------------------------------------------------
-//
-void CCapList::ConstructL()
-    {
-    TRACE_FUNC_ENTRY;
-    iList = CStringList::NewL();
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CCapList::List()
-// Returns the list
-// -----------------------------------------------------------------------------
-//
-CStringList* CCapList::List()
-    {
-    __ASSERT_DEBUG(iList, CapUtil::Panic(KErrGeneral));
-    return iList;
-    }
-
-// -----------------------------------------------------------------------------
-// CCapList::FindFromMark(TInt aId, TInt aType)
-// Find from mark
-// -----------------------------------------------------------------------------
-//
-TInt CCapList::FindFromMark(TInt aId, TInt aType)
-    {
-    TRACE_FUNC_ENTRY;
-    TInt mark = List()->Mark();
-    TInt count= List()->Count();
-    
-    if ( mark >= count )
-        {
-        return KErrNotFound;
-        }       
-
-    TInt index=Find(aId, aType, mark);
-    if ( index == KErrNotFound )
-        {
-        LOGGER_WRITE_1( "CCapList::FindFromMark(TInt aId, TInt aType) returned : %d", KErrNotFound );
-        return KErrNotFound;
-        }
-        
-
-    __ASSERT_DEBUG(index>=mark, CapUtil::Panic(KErrGeneral));
-
-    List()->SetMark(index+1);
-    LOGGER_WRITE_1( "CCapList::FindFromMark(TInt aId, TInt aType) returned : %d", index );
-    return index;
-    }
-
-// -----------------------------------------------------------------------------
-// CCapList::FindServiceHeader()
-// Finds service xml-file identification header. This header must be the first 
-// line in every service file.
-// -----------------------------------------------------------------------------
-//
-TBool CCapList::FindServiceHeader()
-    {
-    TRACE_FUNC_ENTRY;
-    if (List()->Count()<1)
-        {
-        LOGGER_WRITE( "CCapList::FindServiceHeader() : returned EFalse" );
-        return EFalse;
-        }
-
-    TBuf<KBufSize> buf;
-    TPtrC ptr=List()->ReadPtr(0);
-    CapUtil::StrCopy(buf, ptr);
-    buf.Trim();
-    if (buf.Compare(KServiceHeader)==0)
-        {
-        LOGGER_WRITE( "CCapList::FindServiceHeader() : returned ETrue" );
-        return ETrue;
-        }       
-    else
-        {
-        LOGGER_WRITE( "CCapList::FindServiceHeader() : returned EFalse" );
-        return EFalse;
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CCapList::FindServiceL(CStringList* aList)
-// Find service
-// -----------------------------------------------------------------------------
-//
-TBool CCapList::FindServiceL(CStringList* aList)
-    {
-    TRACE_FUNC_ENTRY;
-    aList->Reset();
-    List()->SetMark(0);
-
-    if (!FindServiceHeader())
-        {
-        LOGGER_WRITE( "CCapList::FindServiceL(CStringList* aList) : returned EFalse" );
-        return EFalse;
-        }
-        
-
-    for (;;)
-        {
-        TInt start=FindFromMark(EService, TXmlParser::EElementBegin);
-        TInt stop=FindFromMark(EService, TXmlParser::EElementEnd);
-        
-        if (start==KErrNotFound || stop==KErrNotFound || start>=stop)
-            {
-            break;
-            }
-                    
-        aList->CopyL(List(), start, stop);
-        }
-
-    if (aList->Count()>0)
-        {
-        LOGGER_WRITE( "CCapList::FindServiceL(CStringList* aList) : returned ETrue" );
-        return ETrue;
-        }
-    
-    LOGGER_WRITE( "CCapList::FindServiceL(CStringList* aList) : returned EFalse" );   
-    return EFalse;
-    }
-
-// -----------------------------------------------------------------------------
-// CCapList::Find(TInt aId, TInt aType, TInt aIndex)
-// Find element
-// -----------------------------------------------------------------------------
-//
-TInt CCapList::Find(TInt aId, TInt aType, TInt aIndex)
-    {
-    TInt count=List()->Count();
-    if (aIndex<0 || aIndex>=count)
-        {
-        CapUtil::Panic(KErrArgument);
-        }
-        
-    for (TInt i=aIndex; i<count; i++)
-        {
-        TPtrC ptr=List()->ReadPtr(i);
-
-        TInt id=0;
-        TInt type=0;
-        
-        CapParser::ParseElement(ptr, id, type);
-        if (type==TXmlParser::EElementUnknown)
-            {
-            continue;  // invalid capability element
-            }
-
-        if (id==aId && aType==type)
-            {
-            return i;
-            }
-        }
-    return KErrNotFound;
-    }
-
-
-// End of files
--- a/connectivitymodules/SeCon/services/csc/src/capparser.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,766 +0,0 @@
-/*
-* Copyright (c) 2005-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:  CapParser implementation
-*
-*/
-
-
-// INCLUDE FILES
-
-#include "capparser.h"
-#include "caputils.h"
-
-const char KFind1 = '&';
-const char KFind2 = '<';
-const char KFind3 = '>';
-const char KFind4 = '"';
-const char KFind5 = '\'';
-
-_LIT( KReplace1, "&amp;" );
-_LIT( KReplace2, "&lt;" );
-_LIT( KReplace3, "&gt;" );
-_LIT( KReplace4, "&quot;" );
-_LIT( KReplace5, "&apos;" );
-
-// ============================= MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CapParser::GetTagL(TDes& aText, TInt aId)
-// Returns capability element tag (eg. "Memory")
-// -----------------------------------------------------------------------------
-//
-void CapParser::GetTagL(TDes& aText, TInt aId)
-    {
-    aText=KNullDesC;
-    
-    TInt count=NUMXMLTOKENS;
-    for (TInt i=0; i<count; i++)
-        {
-        TXmlToken t=KXmlTokens[i];
-        if (t.id==aId)
-            {
-            aText=t.tag;
-            return;
-            }
-        }
-    User::Leave(KErrNotFound);
-    }
-
-// -----------------------------------------------------------------------------
-// CapParser::ElementId(const TDesC& aText)
-// Returns capability element id (eg. EMemory).
-// -----------------------------------------------------------------------------
-//
-TInt CapParser::ElementId(const TDesC& aText)
-    {
-    TBuf<KTagSize>buf;
-    TInt count=NUMXMLTOKENS;
-    for (TInt i=0; i<count; i++)
-        {
-        TXmlToken t=KXmlTokens[i];
-        buf=t.tag;
-        if (buf.Compare(aText)==0)
-            {
-            return t.id;
-            }
-        }
-    return KErrNotFound;
-    }
-
-// -----------------------------------------------------------------------------
-// CapParser::ParseElement(const TDesC& aText, TInt& aId, TInt& aType)
-// Parses element's id and type (eg. "<Memory>" -> EMemory, EElementBegin)
-// -----------------------------------------------------------------------------
-//
-void CapParser::ParseElement(const TDesC& aText, TInt& aId, TInt& aType)
-    {
-    TXmlParser parse;
-    aId=KErrNotFound;
-    
-    parse.Set(aText);
-    aType=parse.Type();
-    if (aType==TXmlParser::EElementUnknown)
-        {
-        return;
-        }
-
-    TPtrC ptr=parse.Tag();
-    aId=ElementId(ptr);
-    }
-
-// -----------------------------------------------------------------------------
-// CapParser::MakeElementL(TDes& aText, TInt aId, const TDesC& aValue)
-// Constructs element with value (eg. "<Free>23456</Free>").
-// -----------------------------------------------------------------------------
-//
-void CapParser::MakeElementL(TDes& aText, TInt aId, const TDesC& aValue)
-    {
-    aText=KNullDesC;
-    ReplaceSpecialCharsL( aText, aValue );
-    
-    TBuf<KTagSize> buf;
-    MakeElementL( buf, aId, TXmlParser::EElementBegin );
-    
-    TInt len = aText.Length() + buf.Length() + buf.Length() + 1;
-    if ( len > aText.MaxLength())
-        {
-        User::Leave(KErrTooBig);
-        }
-    
-    aText.Insert( 0, buf );
-    MakeElementL( buf, aId, TXmlParser::EElementEnd );
-    aText.Append( buf );
-    }
-
-// -----------------------------------------------------------------------------
-// CapParser::MakeElementL(TDes& aText, TInt aId, TInt aType)
-// Constructs element without value (eg. "<Memory>" or "</Memory>").
-// -----------------------------------------------------------------------------
-//
-void CapParser::MakeElementL(TDes& aText, TInt aId, TInt aType)
-    {
-    _LIT(KFormat1, "<%S>");
-    _LIT(KFormat2, "</%S>");
-    _LIT(KFormat3, "<%S/>");
-
-    aText=KNullDesC;
-    TBuf<KTagSize> buf;
-    GetTagL(buf, aId);
-    
-    switch(aType)
-        {
-        case TXmlParser::EElementBegin:
-            aText.Format(KFormat1, &buf);
-            break;
-        case TXmlParser::EElementEnd:
-            aText.Format(KFormat2, &buf);
-            break;
-        case TXmlParser::EElementEmpty:
-            aText.Format(KFormat3, &buf);
-            break;
-        default:
-            CapUtil::Panic(KErrArgument);
-            break;
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CapParser::MakeElementL(TDes& aText, TInt aId, const TDesC& aVersion,
-// const TDesC& aDate)
-// Constructs element with attributes "Version" and "Date"(eg. 
-// "<FW Version="2.2"/>").
-// -----------------------------------------------------------------------------
-//
-void CapParser::MakeElementL(TDes& aText, TInt aId, const TDesC& aVersion, 
-                            const TDesC& aDate)
-    {
-    _LIT(KFormat1, "<%S %S=\"%S\" %S=\"%S\"/>");
-    _LIT(KFormat2, "<%S %S=\"%S\"/>");
-
-    aText=KNullDesC;
-    
-    TBuf<KTagSize> element;
-    TBuf<KTagSize> versionTag;
-    TBuf<KTagSize> dateTag;
-    
-    GetTagL(element, aId);
-    GetTagL(versionTag, EAttVersion);
-    GetTagL(dateTag, EAttDate);
-
-    if (aDate.Length()>0)
-        {
-        aText.Format(KFormat1, &element, &versionTag, &aVersion, &dateTag, 
-        &aDate);
-        }       
-    else
-        {
-        aText.Format(KFormat2, &element, &versionTag, &aVersion);
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CapParser::ReplaceSpecialCharsL( TDes& aText, const TDesC& aValue )
-// Replaces special characters to xml compliant.
-// -----------------------------------------------------------------------------
-//
-void CapParser::ReplaceSpecialCharsL( TDes& aText, const TDesC& aValue )
-    {
-    if ( aValue.Length() > aText.MaxLength() )
-        {
-        User::Leave(KErrTooBig);
-        }
-    aText.Copy( aValue );
-    
-    //Replace special characters
-    for( TInt i = 0; i < aText.Length(); i++ )
-        {
-        switch( aText[i] )
-            {
-            case KFind1:
-                if ( aText.Length()+KReplace1().Length()-1 > aText.MaxLength() )
-                    {
-                    User::Leave(KErrTooBig);
-                    }
-                aText.Replace( i, 1, KReplace1 );
-                i+=KReplace1().Length()-1;
-                break;
-            case KFind2:
-                if ( aText.Length()+KReplace2().Length()-1 > aText.MaxLength() )
-                    {
-                    User::Leave(KErrTooBig);
-                    }
-                aText.Replace( i, 1, KReplace2 );
-                i+=KReplace2().Length()-1;
-                break;
-            case KFind3:
-                if ( aText.Length()+KReplace3().Length()-1 > aText.MaxLength() )
-                    {
-                    User::Leave(KErrTooBig);
-                    }
-                aText.Replace( i, 1, KReplace3 );
-                i+=KReplace3().Length()-1;
-                break;
-            case KFind4:
-                if ( aText.Length()+KReplace4().Length()-1 > aText.MaxLength() )
-                    {
-                    User::Leave(KErrTooBig);
-                    }
-                aText.Replace( i, 1, KReplace4 );
-                i+=KReplace4().Length()-1;
-                break;
-            case KFind5:
-                if ( aText.Length()+KReplace5().Length()-1 > aText.MaxLength() )
-                    {
-                    User::Leave(KErrTooBig);
-                    }
-                aText.Replace( i, 1, KReplace5 );
-                i+=KReplace5().Length()-1;
-                break;
-            default:
-                break;
-            }
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// TXmlParser::Set(const TDesC& aText)
-// Sets a tag
-// -----------------------------------------------------------------------------
-//
-void TXmlParser::Set(const TDesC& aText)
-    {
-    iOriginal.Set(aText);
-    TrimOriginal();
-    Init();
-    Parse();
-    }
-
-// -----------------------------------------------------------------------------
-// TXmlParser::Init()
-// Inits the parser
-// -----------------------------------------------------------------------------
-//
-void TXmlParser::Init()
-    {
-    iType=EElementUnknown;
-    iTag.Set(KNullDesC);
-    iValue.Set(KNullDesC);
-    }
-
-// -----------------------------------------------------------------------------
-// TXmlParser::GetTag(TDes& aText) const
-// Gets the tag
-// -----------------------------------------------------------------------------
-//
-void TXmlParser::GetTag(TDes& aText) const
-    {
-    StrCopy(aText, iTag);
-    }
-
-// -----------------------------------------------------------------------------
-// TXmlParser::Tag() const
-// Returns a pointer to a tag
-// -----------------------------------------------------------------------------
-//
-TPtrC TXmlParser::Tag() const
-    {
-    return iTag;
-    }
-
-// -----------------------------------------------------------------------------
-// TXmlParser::Type() const
-// Returns type
-// -----------------------------------------------------------------------------
-//
-TInt TXmlParser::Type() const
-    {
-    return iType;
-    }
-
-// -----------------------------------------------------------------------------
-// TXmlParser::Parse()
-// Parses xml-element.  
-// -----------------------------------------------------------------------------
-//
-void TXmlParser::Parse()
-    {
-    iType=EElementUnknown;
-    
-    // this must be the first check
-    if (ElementUnknown())
-        {
-        return;
-        }       
-    
-    if (ElementBegin())
-        {
-        return;
-        }
-    
-    if (ElementEnd())
-        {
-        return;
-        }
-        
-    if (ElementValue())
-        {
-        return;
-        }
-            
-    if (ElementComment())
-        {
-        return;
-        }
-        
-    if (ElementDocType())
-        {
-        return;
-        }
-        
-    if (ElementVersion())
-        {
-        return;
-        }
-        
-    if (ElementEmpty())
-        {
-        return;
-        }
-        
-    if (ElementAtt())
-        {
-        return;
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// TXmlParser::ElementUnknown()
-// Parses unknown elements
-// -----------------------------------------------------------------------------
-//
-TBool TXmlParser::ElementUnknown()
-    {
-    TPtrC str=Str();
-    TInt len=str.Length();
-    const TInt KXmlElementMinLength = 3;
-    if ( len < KXmlElementMinLength )
-        {
-        return ETrue;  // too short to be xml element
-        }
-        
-    
-    iFirst=str.Locate('<');
-    iLast=str.LocateReverse('>');
-    iSlash=str.LocateReverse('/');
-
-    if (iFirst!=0 || iLast!=len-1)
-        {
-        return ETrue;  // first char must be "<" and last ">"
-        }
-        
-    return EFalse;    
-    }
-
-// -----------------------------------------------------------------------------
-// TXmlParser::ElementBegin()
-// Parses beginning tag (eg. <General>)
-// -----------------------------------------------------------------------------
-//
-TBool TXmlParser::ElementBegin()
-    {
-    TPtrC str=Str();
-        
-    if (iSlash!=KErrNotFound)
-        {
-        return EFalse;
-        }
-        
-    // remove possible attributes
-    TInt pos=str.Locate(' ');
-    if (pos==KErrNotFound)
-        {
-        pos=iLast;
-        }
-        
-    TPtrC ptr=SubStr(iFirst, pos);
-
-    if (!ValidTag(ptr))
-        {
-        return EFalse;
-        }       
-
-    iType=EElementBegin;
-    iTag.Set(ptr);
-
-    return ETrue;
-    }
-
-// -----------------------------------------------------------------------------
-// TXmlParser::ElementEnd()
-// Parses ending tag (eg. </General>)
-// -----------------------------------------------------------------------------
-//
-TBool TXmlParser::ElementEnd()
-    {
-    if (iSlash!=iFirst+1)
-        {
-        return EFalse;
-        }
-        
-    TPtrC ptr=SubStr(iSlash, iLast);
-    if (!ValidTag(ptr))
-        {
-        return EFalse;
-        }       
-
-    iType=EElementEnd;
-    iTag.Set(ptr);
-    return ETrue;
-    }
-
-// -----------------------------------------------------------------------------
-// TXmlParser::ElementValue()
-// Parses value (eg. <Language>en</Language>)
-// -----------------------------------------------------------------------------
-//
-TBool TXmlParser::ElementValue()
-    {
-    TPtrC str=Str();
-
-    TInt pos1=str.Locate('>');
-    TInt pos2=str.LocateReverse('<');
-    
-    if (pos1<pos2 && iSlash==pos2+1)
-        {
-        TPtrC ptr1=SubStr(iFirst, pos1);
-        TPtrC ptr2=SubStr(iSlash, iLast);
-        if (!ValidTag(ptr1) || ptr1.Compare(ptr2)!=0)
-            {
-            return EFalse;
-            }
-                    
-        iType=EElementValue;
-        iTag.Set(ptr1);
-        iValue.Set(SubStr(pos1, pos2));
-        return ETrue;
-        }
-    return EFalse;    
-    }
-
-// -----------------------------------------------------------------------------
-// TXmlParser::ElementEmpty()
-// Parses empty element (eg. <CaseSenN/>)
-// -----------------------------------------------------------------------------
-//
-TBool TXmlParser::ElementEmpty()
-    {
-    if (iSlash!=iLast-1)
-        {
-        return EFalse;
-        }       
-    
-    TPtrC ptr=SubStr(iFirst, iSlash);
-    if (!ValidTag(ptr))
-        {
-        return EFalse;
-        }
-        
-    iType=EElementEmpty;
-    iTag.Set(ptr);
-    return ETrue;
-    }
-
-// -----------------------------------------------------------------------------
-// TXmlParser::ElementVersion()
-// Identifies version element ("<?xml version="1.0" ?>") 
-// -----------------------------------------------------------------------------
-//
-TBool TXmlParser::ElementVersion()
-    {
-    TPtrC str=Str();
-
-    if ( str.Length()>=3 && str[1]=='?' && str[2]=='x')
-        {
-        iType=EElementVersion;
-        return ETrue;
-        }
-    return EFalse;
-    }
-
-// -----------------------------------------------------------------------------
-// TXmlParser::ElementDocType()
-// Identifies document type element 
-// ("<!DOCTYPE Capability SYSTEM "obex-capability.dtd">").
-// -----------------------------------------------------------------------------
-//
-TBool TXmlParser::ElementDocType()
-    {
-    TPtrC str=Str();
-    const TInt KElementMinLength = 10;
-    if ( str.Length() < KElementMinLength )
-        {
-        return EFalse;
-        }
-        
-    if (str[1]=='!' && str[2]=='D' && str[3]=='O' && str[4]=='C')
-        {
-        iType=EElementDocType;
-        return ETrue;
-        }
-    return EFalse;
-    }
-
-// -----------------------------------------------------------------------------
-// TXmlParser::ElementComment()
-// Identifies comment element ("<!-- OBEX Capability Object -->").
-// -----------------------------------------------------------------------------
-//
-TBool TXmlParser::ElementComment()
-    {
-    TPtrC str=Str();
-    
-    if (str.Length()<7)
-        {
-        return EFalse;
-        }
-        
-    if (str[1]=='!' && str[2]=='-' && str[3]=='-')
-        {
-        iType=EElementComment;
-        return ETrue;
-        }
-    
-    return EFalse;
-    }
-
-// -----------------------------------------------------------------------------
-// TXmlParser::ElementAtt()
-// Parses attribute element (eg. <HW Version="1.5"/>)
-// Note: Attribute values cannot contain equals (=) or quotations (")
-// -----------------------------------------------------------------------------
-//
-TBool TXmlParser::ElementAtt()
-    {
-    TPtrC str=Str();
-    TInt num1=Count(str, '=');
-    TInt num2=Count(str, '"');
-    TInt pos=str.Locate(' ');  // find end of tag
-    
-    if (iSlash==iLast-1 && num1>0 && num2==(2*num1) && pos!=KErrNotFound)
-        {
-        TPtrC ptr1=SubStr(iFirst, pos);
-        if (!ValidTag(ptr1))
-            {
-            return EFalse;
-            }
-            
-        iType=EElementAtt;
-        iTag.Set(ptr1);
-        TPtrC ptr2=SubStr(pos, iSlash);
-        iValue.Set(ptr2);
-        return ETrue;
-        }
-    return EFalse;    
-    }
-
-// -----------------------------------------------------------------------------
-// TXmlParser::Str() const
-// Locates the position of the given character
-// -----------------------------------------------------------------------------
-//
-TPtrC TXmlParser::Str() const
-    {
-    return iText;
-    }
-
-// -----------------------------------------------------------------------------
-// TXmlParser::FirstNonSpace(const TDesC& aText)
-// Returns the position of the first non space character
-// -----------------------------------------------------------------------------
-//
-TInt TXmlParser::FirstNonSpace(const TDesC& aText)
-    {
-    TInt len=aText.Length();
-    for (TInt i=0; i<len; i++)
-        {
-        TChar c=aText[i];
-        if (!c.IsSpace())
-            {
-            return i;
-            }
-        }
-    return KErrNotFound;
-    }
-
-// -----------------------------------------------------------------------------
-// TXmlParser::LastNonSpace(const TDesC& aText)
-// Returns the position of the last non space character
-// -----------------------------------------------------------------------------
-//
-TInt TXmlParser::LastNonSpace(const TDesC& aText)
-    {
-    TInt last=aText.Length()-1;
-    for (TInt i=last; i>=0; i--)
-        {
-        TChar c=aText[i];
-        if (!c.IsSpace())
-            {
-            return i;
-            }           
-        }
-    return KErrNotFound;
-    }
-
-// -----------------------------------------------------------------------------
-// TXmlParser::SubStr(const TDesC& aText, TInt pos1, TInt pos2)
-// Function returns a sub-string between aPos1 and aPos2
-// -----------------------------------------------------------------------------
-//
-TPtrC TXmlParser::SubStr(const TDesC& aText, TInt pos1, TInt pos2)
-    {
-    if (pos1<0 || pos2>=aText.Length() || pos1>=pos2)
-        {
-        return TPtrC(); // return empty descriptor
-        }
-        
-    TInt len=pos2-pos1;
-    return aText.Mid(pos1+1, len-1); 
-    }
-
-// -----------------------------------------------------------------------------
-// TXmlParser::SubStr(TInt pos1, TInt pos2)
-// Function returns a sub-string between aPos1 and aPos2
-// -----------------------------------------------------------------------------
-//
-TPtrC TXmlParser::SubStr(TInt pos1, TInt pos2)
-    {
-    TPtrC str=Str();
-    return SubStr(str, pos1, pos2);
-    }
-
-// -----------------------------------------------------------------------------
-// TXmlParser::StrCopy(TDes& aTarget, const TDesC& aSource)
-// Function performs string copy with length checking.
-// -----------------------------------------------------------------------------
-//
-void TXmlParser::StrCopy(TDes& aTarget, const TDesC& aSource)
-    {
-    TInt len=aTarget.MaxLength();
-    if(len<aSource.Length()) 
-        {
-        aTarget.Copy(aSource.Left(len));
-        }        
-    else
-        {
-        aTarget.Copy(aSource);
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// TXmlParser::Count(const TDesC& aText, const TChar aChar)
-// Returns the number of characters (aChar)
-// -----------------------------------------------------------------------------
-//
-TInt TXmlParser::Count(const TDesC& aText, const TChar aChar)
-    {
-    TInt count=0;
-    TInt len=aText.Length();
-
-    for (TInt i=0; i<len; i++)
-        {
-        TChar ch=aText[i];
-        if (ch == aChar)
-            {
-            count++;
-            }
-        }
-    return count;
-    }
-
-// -----------------------------------------------------------------------------
-// TXmlParser::TrimOriginal()
-// Trimmer function
-// -----------------------------------------------------------------------------
-//
-void TXmlParser::TrimOriginal()
-    {
-    // trim iOriginal and place into iText
-    iText.Set(KNullDesC);
-    TInt first=FirstNonSpace(iOriginal);
-    TInt last=LastNonSpace(iOriginal);
-    if(first!=KErrNotFound && last!=KErrNotFound && last>first+1)
-        {
-        TPtrC ptr=iOriginal.Mid(first, last-first+1);
-        iText.Set(ptr);
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// TXmlParser::ValidChar(const TChar aChar)
-// Validates the character
-// -----------------------------------------------------------------------------
-//
-TBool TXmlParser::ValidChar(const TChar aChar)
-    {
-    if (aChar >= 'A' && aChar <= 'Z')
-        {
-        return ETrue;
-        }
-    if (aChar >= 'a' && aChar <= 'z')
-        {
-        return ETrue;
-        }
-        
-    return EFalse;
-    }
-
-// -----------------------------------------------------------------------------
-// TXmlParser::ValidTag(const TDesC& aText)
-// Validates the tag
-// -----------------------------------------------------------------------------
-//
-TBool TXmlParser::ValidTag(const TDesC& aText)
-    {
-    TInt len=aText.Length();
-    for (TInt i=0; i<len; i++)
-        {
-        if (!ValidChar(aText[i]))
-            {
-            return EFalse;
-            }           
-        }
-    return ETrue;
-    }
-    
-// End of file
--- a/connectivitymodules/SeCon/services/csc/src/caputils.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,719 +0,0 @@
-/*
-* Copyright (c) 2005-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:  CapUtil implementation
-*
-*/
-
-
-// INCLUDE FILES
-
-#include <pathinfo.h>
-#include <sysutil.h>
-#include <hal.h>
-#include <hal_data.h>
-#include <etelmm.h>      // for etel
-#include <mmtsy_names.h> // for etel
-#include <utf.h>
-#include <eikenv.h>
-#include <driveinfo.h>
-#include <centralrepository.h>
-#include <sysutildomaincrkeys.h>
-
-#include "caputils.h"
-#include "capability.h"
-#include "debug.h"
-
-const TInt KPackageSize = 65536;
-const TInt KDefaultArrayGranularity = 5;
-// ============================= MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CapUtil::GetDefaultRootPathL( RFs& aFs, TDes& aRootPath )
-// Gets default root path
-// -----------------------------------------------------------------------------
-//
-void CapUtil::GetDefaultRootPathL( RFs& aFs, TDes& aRootPath )
-    {
-    TRACE_FUNC_ENTRY;
-    // Use the default mass storage if it is internal drive
-    TInt msDrive;
-    User::LeaveIfError( DriveInfo::GetDefaultDrive( DriveInfo::EDefaultMassStorage, msDrive ) );
-    LOGGER_WRITE_1("drive: %d", msDrive);
-    
-    TUint msStatus( 0 );
-    TInt err = DriveInfo::GetDriveStatus( aFs, msDrive, msStatus );
-    LOGGER_WRITE_1("DriveInfo::GetDriveStatus err: %d", err);
-    
-    // if no errors, also check drive status
-    if( !err && !( msStatus & DriveInfo::EDrivePresent )
-        || msStatus & DriveInfo::EDriveCorrupt )
-        {
-        LOGGER_WRITE( "Internal mass storage not present or corrupted" );
-        err = KErrNotFound;
-        }
-    
-    if ( !err && ( msStatus & DriveInfo::EDriveInternal ) )
-        {
-        // Use internal mass storage
-        LOGGER_WRITE( "Use internal mass storage" );
-        User::LeaveIfError( PathInfo::GetRootPath( aRootPath, msDrive ) );
-        }
-    else
-        {
-        // Use phone memory
-        LOGGER_WRITE( "Use phone memory" );
-        StrCopy( aRootPath, PathInfo::PhoneMemoryRootPath() );
-        }
-    LOGGER_WRITE_1( "rootPath: %S", &aRootPath );
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CapUtil::GetMemoryType( RFs& aFs, TDes& aMemoryType, const TInt aDrive )
-// Gets drive memory type
-// -----------------------------------------------------------------------------
-//
-void CapUtil::GetMemoryType( RFs& aFs, TDes& aMemoryType, const TInt aDrive )
-    {
-    TRACE_FUNC_ENTRY;
-    LOGGER_WRITE_1("aDrive: %d", aDrive);
-    aMemoryType = KNullDesC;
-    TUint driveStatus;
-    TInt err = DriveInfo::GetDriveStatus( aFs, aDrive, driveStatus );
-    if( err )
-        {
-        LOGGER_WRITE_1( "CapUtil::GetMemoryType() : DriveInfo::GetDriveStatus err: %d", err );
-        return;
-        }
-    // search internal or removable drives
-    TBool searchInternalDrives;
-    if( driveStatus & DriveInfo::EDriveInternal )
-        {
-        aMemoryType = KMediaFlash;
-        searchInternalDrives = ETrue;
-        }
-    else
-        {
-        aMemoryType = KMediaMMC;
-        searchInternalDrives = EFalse;
-        }
-    
-    TInt typeNumber(0);
-    TInt driveCount;
-    TDriveList driveList;
-    
-    err = DriveInfo::GetUserVisibleDrives( aFs, driveList, driveCount );
-    if( err )
-        {
-        LOGGER_WRITE_1( "CapUtil::GetMemoryType() : DriveInfo::GetUserVisibleDrives err: %d", err );
-        return;
-        }
-    
-    for( TInt i = EDriveA; i <= aDrive; i++ )
-        {
-        if( driveList[i] )
-            {
-            TUint driveStatus;
-            err = DriveInfo::GetDriveStatus( aFs, i, driveStatus );
-            if( err )
-                {
-                LOGGER_WRITE_1( "CapUtil::GetMemoryType() : DriveInfo::GetDriveStatus err: %d", err );
-                continue;
-                }
-
-            if( !(driveStatus & DriveInfo::EDrivePresent )
-                || driveStatus & DriveInfo::EDriveCorrupt )
-                {
-                LOGGER_WRITE( "not present or corrupted" );
-                continue;
-                }
-            
-            if( driveStatus & DriveInfo::EDriveInternal )
-                {
-                if( searchInternalDrives )
-                    {
-                    typeNumber++;
-                    }
-                }
-            else if( driveStatus & DriveInfo::EDriveRemovable )
-                {
-                if( !searchInternalDrives )
-                    {
-                    typeNumber++;
-                    }
-                }
-            }
-        }
-        
-    if( typeNumber > 1 )
-        {
-        aMemoryType.AppendNum( typeNumber );
-        }
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CapUtil::GetOperatornameL(TDes& aLongName, TDes& aCountryCode, TDes& aNetworkID)
-// Gets phone operator name, country code, networkID.
-// -----------------------------------------------------------------------------
-//
-void CapUtil::GetOperatorNameL(TDes& aLongName, TDes& aCountryCode, TDes& aNetworkID)
-    {
-    TRACE_FUNC_ENTRY;
-    TUint32 networkCaps;
-    RTelServer::TPhoneInfo phoneInfo;
-    
-    RTelServer server;
-    RMobilePhone mobilePhone;
-    User::LeaveIfError( server.Connect() );
-    CleanupClosePushL( server );
-    
-    TInt numPhones;
-    User::LeaveIfError( server.EnumeratePhones( numPhones ) );
-    server.GetPhoneInfo( 0, phoneInfo );
-    
-    User::LeaveIfError( mobilePhone.Open( server, phoneInfo.iName ) );
-    CleanupClosePushL( mobilePhone );
-    User::LeaveIfError( mobilePhone.GetNetworkCaps( networkCaps ) );
-    
-    RMobilePhone::TMobilePhoneNetworkInfoV1 mobilePhoneNetworkInfo;
-    RMobilePhone::TMobilePhoneNetworkInfoV1Pckg mobilePhoneNetworkInfoPckg(
-        mobilePhoneNetworkInfo );
-    RMobilePhone::TMobilePhoneLocationAreaV1 mobilePhoneLocationArea;
-    
-    if (networkCaps & RMobilePhone::KCapsGetCurrentNetwork)
-        {
-        TRequestStatus status;
-        mobilePhone.GetCurrentNetwork( 
-            status, mobilePhoneNetworkInfoPckg, mobilePhoneLocationArea );
-        User::WaitForRequest( status );
-        User::LeaveIfError( status.Int() );     
-        }
-    
-    CleanupStack::PopAndDestroy( &mobilePhone );
-    CleanupStack::PopAndDestroy( &server );
-    StrCopy( aLongName, mobilePhoneNetworkInfo.iLongName );
-    StrCopy( aCountryCode, mobilePhoneNetworkInfo.iCountryCode );
-    StrCopy( aNetworkID, mobilePhoneNetworkInfo.iNetworkId );
-    
-    TRACE_FUNC_EXIT;
-    }
-// -----------------------------------------------------------------------------
-// CapUtil::GetManufacturer(TDes& aText)
-// Gets phone manufacturer from HAL. In case manufacturer is not known,
-// -----------------------------------------------------------------------------
-//
-void CapUtil::GetManufacturer(TDes& aText)
-    {
-    TRACE_FUNC_ENTRY;
-    TInt num(KErrNotFound);
-    
-    HAL::Get(HALData::EManufacturer, num);
-    
-    switch (num)
-        {
-        case HALData::EManufacturer_Ericsson:
-            aText=KManufacturerEricsson; 
-            break;
-        case HALData::EManufacturer_Motorola:
-            aText=KManufacturerMotorola; 
-            break;
-        case HALData::EManufacturer_Nokia:
-            aText=KManufacturerNokia; 
-            break;
-        case HALData::EManufacturer_Panasonic:
-            aText=KManufacturerPanasonic; 
-            break;
-        case HALData::EManufacturer_Psion:
-            aText=KManufacturerPsion; 
-            break;
-        case HALData::EManufacturer_Intel:
-            aText=KManufacturerIntel; 
-            break;
-        case HALData::EManufacturer_Cogent:
-            aText=KManufacturerCogent; 
-            break;
-        case HALData::EManufacturer_Cirrus:
-            aText=KManufacturerCirrus; 
-            break;
-        case HALData::EManufacturer_Linkup:
-            aText=KManufacturerLinkup; 
-            break;
-        case HALData::EManufacturer_TexasInstruments:
-            aText=KManufacturerTexasInstruments; 
-            break;
-        default: 
-            aText=KNullDesC; 
-            break;
-        }
-
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CapUtil::GetLanguage(TDes& aText)
-// Gets language
-// -----------------------------------------------------------------------------
-//
-void CapUtil::GetLanguage(TDes& aText)
-    {
-    TRACE_FUNC_ENTRY;
-    TLanguage lang=User::Language();
-    GetLanguageString(lang, aText);
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CapUtil::GetSWVersionL(TDes& aVersion, TDes& aDate, TDes& aModel)
-// Gets SW version, SW version date  and device model from SysUtil. 
-// -----------------------------------------------------------------------------
-//
-void CapUtil::GetSWVersionL(TDes& aVersion, TDes& aDate, TDes& aModel)
-    {
-    TRACE_FUNC_ENTRY;
-    TBuf<KBufSize> buf;
-    aVersion=KNullDesC;
-    aDate=KNullDesC;
-    aModel=KNullDesC;
-
-    User::LeaveIfError( SysUtil::GetSWVersion( buf ) );
-    RArray<TPtrC> arr(KDefaultArrayGranularity);
-    CleanupClosePushL( arr );
-
-    CapUtil::SplitL(buf, '\n', arr);
-    const TInt KFieldsToFind = 3;
-    if ( arr.Count() < KFieldsToFind )
-        {
-        User::Leave( KErrNotFound );
-        }
-    
-    StrCopy( aVersion, arr[0] );
-    aVersion.Trim();
-
-    StrCopy(aModel,arr[2]);
-    aModel.Trim();
-
-    TBuf<KTagSize> date;
-    StrCopy(date, arr[1]);
-    TTime t;
-    t.UniversalTime(); // this is to avoid warnings
-    TRAPD( err, t = ParseDateL( date ) );
-    if ( err == KErrNone )
-        {
-        CapabilityDate( aDate, t );
-        }
-    
-    CleanupStack::PopAndDestroy( &arr );
-    
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CapUtil::InitMemoryInfo(TMemoryInfo& aInfo)
-// Initializes TMemoryInfo.
-// -----------------------------------------------------------------------------
-//
-void CapUtil::InitMemoryInfo(TMemoryInfo& aInfo)
-    {
-    aInfo.iDriveNum        = KErrNotFound;
-    aInfo.iDriveLetter     = KNoChar;
-    aInfo.iLocation        = KNullDesC;
-    aInfo.iFree            = KErrNotFound;
-    aInfo.iUsed            = KErrNotFound;
-    aInfo.iShared          = EFalse;
-    aInfo.iFileSize        = KErrNotFound;
-    aInfo.iFolderSize      = KErrNotFound;
-    aInfo.iFileNameSize    = KMaxFileName;    // TFileName 256
-    aInfo.iFolderNameSize  = KMaxFileName;    // TFileName 256
-    aInfo.iCaseSensitivity = EFalse;
-    }
-
-// -----------------------------------------------------------------------------
-// CapUtil::GetMemoryInfoL( const RFs& aFs, TInt aDriveNumber, TMemoryInfo& aInfo )
-// Get memory information for one drive.
-// -----------------------------------------------------------------------------
-//
-void CapUtil::GetMemoryInfoL( const RFs& aFs, const TInt aDriveNumber, TMemoryInfo& aInfo )
-    {
-    TRACE_FUNC_ENTRY;
-    LOGGER_WRITE_1("  aDriveNumber: %d", aDriveNumber);
-    
-    TVolumeInfo volumeInfo;
-    TDriveInfo driveInfo;
-
-    InitMemoryInfo( aInfo );
-
-    User::LeaveIfError( aFs.Drive(driveInfo, aDriveNumber) ); 
-    if ( driveInfo.iDriveAtt == (TUint)KDriveAbsent ) 
-        {
-        LOGGER_WRITE(" iDriveAtt == (TUint)KDriveAbsent, Leave KErrNotFound");
-        User::Leave( KErrNotFound );
-        }
-                
-    User::LeaveIfError( aFs.Volume(volumeInfo, aDriveNumber) );
-
-    User::LeaveIfError( aFs.DriveToChar(aDriveNumber, aInfo.iDriveLetter) );
-    aInfo.iDriveNum = aDriveNumber;
-    aInfo.iLocation.Append( aInfo.iDriveLetter );
-    aInfo.iLocation.Append( KDriveDelimiter );
-    aInfo.iLocation.Append( KPathDelimiter );
-    aInfo.iFree = volumeInfo.iFree;
-    aInfo.iUsed = volumeInfo.iSize - volumeInfo.iFree;
-    
-    // set free memory up to critical level for all drives
-    CRepository* repository = CRepository::NewLC( KCRUidDiskLevel );
-    TInt criticalLevel(0);
-    User::LeaveIfError( repository->Get( KDiskCriticalThreshold, criticalLevel ) );
-    CleanupStack::PopAndDestroy( repository );
-    criticalLevel += KPackageSize; // add obex package size to critical level
-    LOGGER_WRITE_1( "CapUtil::GetMemoryInfoL() criticalLevel: %d", criticalLevel ) ;
-    if ( aInfo.iFree > criticalLevel )
-        {
-        aInfo.iFree = aInfo.iFree - criticalLevel;
-        }       
-    else
-        {
-        aInfo.iFree = 0;
-        }
-    
-    aInfo.iFileSize = aInfo.iFree;
-    aInfo.iFolderSize = aInfo.iFree;
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CapUtil::GetFileListL( RFs& aFs, const TDesC& aDir, 
-// RArray<TFileName>& aList)
-// Finds all files in aDir.
-// -----------------------------------------------------------------------------
-//
-void CapUtil::GetFileListL( const RFs& aFs, const TDesC& aDir, 
-                            RArray<TFileName>& aList)
-    {
-    TRACE_FUNC_ENTRY;
-    
-    aList.Reset();
-    
-    CDir* dir( NULL );
-    User::LeaveIfError( aFs.GetDir( aDir, KEntryAttMatchMask, ESortByName, dir ) );
-    CleanupStack::PushL( dir );
-    
-    for ( TInt i=0; i < dir->Count(); ++i )
-        {
-        TEntry entry = (*dir)[i];
-        if ( !entry.IsDir() )
-            {
-            User::LeaveIfError( aList.Append( entry.iName ) );
-            }
-        }
-    CleanupStack::PopAndDestroy( dir );
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CapUtil::CheckFileType(const TDesC& aFile, const TDesC& aExt)
-// Function checks file extension.
-// -----------------------------------------------------------------------------
-//
-TBool CapUtil::CheckFileType(const TDesC& aFile, const TDesC& aExt)
-    {
-    TRACE_FUNC_ENTRY;
-    TParse parse;
-    parse.Set(aFile, NULL, NULL);
-    TPtrC ptr=parse.Ext();
-
-    TBuf<KTagSize> buf1;
-    TBuf<KTagSize> buf2;
-    
-    buf1=ptr;
-    buf2=aExt;
-    
-    buf1.LowerCase();
-    buf2.LowerCase();
-
-    if (buf1.Compare(buf2)==0)
-        {
-        LOGGER_WRITE( "CapUtil::CheckFileType(const TDesC& aFile, const TDesC& aExt) : returned ETrue" );
-        return ETrue;
-        }
-        
-    else
-        {
-        LOGGER_WRITE( "CapUtil::CheckFileType(const TDesC& aFile, const TDesC& aExt) : returned EFalse" );
-        return EFalse;
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CapUtil::GetLanguageString(TLanguage aId, TDes& aText)
-// Get language string for aId.
-// -----------------------------------------------------------------------------
-//
-void CapUtil::GetLanguageString(TLanguage aId, TDes& aText)
-    {
-    TRACE_FUNC_ENTRY;
-    aText=KNullDesC;
-    
-    TInt count=NUMLANGSTRINGS;
-    for (TInt i=0; i<count; i++)
-        {
-        TLangStringStruct t=KLangStrings[i];
-        if (t.id == (TInt)aId)
-            {
-            aText=t.lang;
-            return;
-            }
-        }
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CapUtil::Panic(TInt aReason)
-// Panic.
-// -----------------------------------------------------------------------------
-//
-#ifdef _DEBUG
-void CapUtil::Panic(TInt aReason)
-#else
-void CapUtil::Panic(TInt /*aReason*/)
-#endif
-    {
-    TRACE_FUNC_ENTRY;
-#ifdef _DEBUG
-    _LIT(KPanicCategory,"CapabilitySC");
-
-    User::Panic(KPanicCategory, aReason);
-#endif
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CapUtil::StrCopy(TDes& aTarget, const TDesC& aSource)
-// String copy with lenght check.
-// -----------------------------------------------------------------------------
-//
-void CapUtil::StrCopy(TDes& aTarget, const TDesC& aSource)
-    {
-    TInt len=aTarget.MaxLength();
-    if(len<aSource.Length()) 
-        {
-        aTarget.Copy(aSource.Left(len));
-        return;
-        }
-    aTarget.Copy(aSource);
-    }
-
-// -----------------------------------------------------------------------------
-// CapUtil::IntToStr(TDes& aText, TInt64 aNum)
-// Function converts ínteger to string.
-// -----------------------------------------------------------------------------
-//
-void CapUtil::IntToStr(TDes& aText, TInt64 aNum)
-    {
-    aText.Num(aNum);
-    }
-
-// -----------------------------------------------------------------------------
-// CapUtil::StrToInt(const TDesC& aText, TInt& aNum)
-// Function converts string to integer. If string cannot be converted,
-// error code is returned.
-// -----------------------------------------------------------------------------
-//
-TInt CapUtil::StrToInt(const TDesC& aText, TInt& aNum)
-    {
-    TLex lex(aText);
-
-    TInt err=lex.Val(aNum); 
-    return err;
-    }
-
-// -----------------------------------------------------------------------------
-// CapUtil::SplitL(const TDesC& aText, const TChar aSeparator, 
-// RArray<TPtrC>& aArray)
-// Function splits string (eg "name1, name2, name3") into substrings.
-// -----------------------------------------------------------------------------
-//
-void CapUtil::SplitL(const TDesC& aText, const TChar aSeparator, 
-                    RArray<TPtrC>& aArray)
-    {
-    TRACE_FUNC_ENTRY;
-    TPtrC ptr;
-    ptr.Set(aText);
-
-    for (;;)
-        {
-        TInt pos=ptr.Locate(aSeparator);
-        if (pos==KErrNotFound)
-            {
-            aArray.AppendL(ptr);
-            break;
-            }
-
-        TPtrC subStr=ptr.Left(pos); // get pos characters starting from position 0
-        aArray.AppendL(subStr);
-
-        if (!(ptr.Length()>pos+1))
-            {
-            break;
-            }
-            
-        ptr.Set(ptr.Mid(pos+1));// get all characters starting from position pos+1
-        }
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CapUtil::ParseDateL(const TDesC& aText)
-// Function parses date string of the format "dd-mm-yy".
-// -----------------------------------------------------------------------------
-//
-TTime CapUtil::ParseDateL(const TDesC& aText)
-    {
-    TRACE_FUNC_ENTRY;
-    RArray<TPtrC> arr(KDefaultArrayGranularity);
-    CleanupClosePushL( arr );
-
-    CapUtil::SplitL( aText, '-', arr );
-    if ( arr.Count() != 3 )
-        {
-        User::Leave( KErrNotSupported );
-        }
-           
-    TInt day; 
-    TInt month; 
-    TInt year;
-    
-    User::LeaveIfError( StrToInt(arr[0], day) );
-    User::LeaveIfError( StrToInt(arr[1], month) );
-    User::LeaveIfError( StrToInt(arr[2], year) );
-
-    TDateTime td;
-    TMonth month2 = Month( month );
-    // if year is defined as two digit, add currect millenium for it
-    const TInt KDefaultMillenium = 2000;
-    if ( year < KDefaultMillenium )
-        {
-        year = year + KDefaultMillenium;
-        }
-        
-
-    User::LeaveIfError( td.Set(year, month2, day-1, 0, 0, 0, 0) );
-
-    CleanupStack::PopAndDestroy( &arr );
-    
-    TTime t(td);
-    TRACE_FUNC_EXIT;
-    return t;
-}
-
-// -----------------------------------------------------------------------------
-// CapUtil::Month(TInt aNum)
-// Function return TMonth presentation of integer
-// -----------------------------------------------------------------------------
-//
-TMonth CapUtil::Month(TInt aNum)
-    {
-    TRACE_FUNC_ENTRY;
-    __ASSERT_DEBUG(aNum>=1 && aNum<=12, Panic(KErrArgument));
-
-    switch (aNum)
-        {
-        case 1: return EJanuary;
-        case 2: return EFebruary;
-        case 3: return EMarch;
-        case 4: return EApril;
-        case 5: return EMay;
-        case 6: return EJune;
-        case 7: return EJuly;
-        case 8: return EAugust;
-        case 9: return ESeptember;
-        case 10: return EOctober;
-        case 11: return ENovember;
-        case 12: return EDecember;
-        default: return EJanuary;
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CapUtil::CapabilityDate(TDes& aText, const TTime aTime)
-// Constructs capability date as string
-// -----------------------------------------------------------------------------
-//
-void CapUtil::CapabilityDate(TDes& aText, const TTime aTime)
-    {
-    TRACE_FUNC_ENTRY;
-    _LIT(KFormat,"%04d%02d%02dT%02d%02d%02dZ");
-
-    TDateTime dt=aTime.DateTime();
-    aText.Format(KFormat, dt.Year(), dt.Month()+1, dt.Day()+1, dt.Hour(),
-     dt.Minute(), dt.Second());
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// TIdStack::Pop()
-// Pop id from the stack
-// -----------------------------------------------------------------------------
-//
-TInt TIdStack::Pop()
-    {
-    if (iPos<0)
-        {
-        LOGGER_WRITE( "TIdStack::Pop() returned KErrNotFound" );
-        return KErrNotFound;
-        }
-        
-    TInt id=iArray[iPos];
-    iPos--;
-    return id;
-    }
-
-// -----------------------------------------------------------------------------
-// TIdStack::Push( TInt aId )
-// Push id to the stack
-// -----------------------------------------------------------------------------
-//
-void TIdStack::Push( TInt aId )
-    {
-    if ( Size() >= KNestingLimit )
-        {
-        return;
-        }
-        
-    iPos++;
-    iArray[iPos] = aId;
-    }
-
-// -----------------------------------------------------------------------------
-// TIdStack::Size() const
-// Size of the stack
-// -----------------------------------------------------------------------------
-//
-TInt TIdStack::Size() const
-    {
-    return iPos+1;
-    }
-
-// -----------------------------------------------------------------------------
-// TIdStack::Reset()
-// Reset the stack.
-// -----------------------------------------------------------------------------
-//
-void TIdStack::Reset()
-    {
-    iArray.Reset();
-    iPos=-1;
-    }
-
-// End of file
--- a/connectivitymodules/SeCon/services/csc/src/sconcsc.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,122 +0,0 @@
-/*
-* Copyright (c) 2002-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:  CSConCSC implementation
-*
-*/
-
-
-//
-// This program creates a polymorphic interface DLL that is used
-// to create capability object
-//
-
-// INCLUDE FILES
-
-#include <e32def.h>
-#include <e32uid.h>
-
-#include "sconcsc.h"
-#include "capinfo.h"
-#include "debug.h"
-
-// ============================= MEMBER FUNCTIONS ===============================
-
-
-// -----------------------------------------------------------------------------
-// CreateCSConCSCL()
-// Function to construct CSConCSC object. Note that this function
-// is exported at ordinal 1 and is not a member of any class.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C CSConCSC* CreateCSConCSCL()
-    {
-    TRACE_FUNC;
-    return CSConCSC::NewL();
-    }
-
-
-// -----------------------------------------------------------------------------
-// CSConCSC::NewL()
-// Two-phase constructor
-// -----------------------------------------------------------------------------
-//
-CSConCSC* CSConCSC::NewL()
-    {
-    TRACE_FUNC_ENTRY;
-    CSConCSC* self = new (ELeave) CSConCSC();
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop( self );
-    TRACE_FUNC_EXIT;
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConCSC::~CSConCSC()
-// Destructor
-// -----------------------------------------------------------------------------
-//
-CSConCSC::~CSConCSC()
-    {
-    TRACE_FUNC_ENTRY;
-    delete iCapInfo;
-    TRACE_FUNC_EXIT;
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConCSC::CapabilityObject(CBufFlat& aBuf)
-// Creates a capability object data and sets data into aBuf.
-// -----------------------------------------------------------------------------
-//
-TInt CSConCSC::CapabilityObject(CBufFlat& aBuf)
-    {
-    TRACE_FUNC_ENTRY;
-    TRAPD(err, CSConCSC::CapabilityObjectL(aBuf));
-    LOGGER_WRITE_1( "CSConCSC::CapabilityObject(CBufFlat& aBuf) : returned %d", err );
-    return err;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConCSC::ConstructL()
-// Initializes member data
-// -----------------------------------------------------------------------------
-//
-void CSConCSC::ConstructL()
-    {
-    iCapInfo = CCapInfo::NewL();
-    }
-
-// -----------------------------------------------------------------------------
-// CSConCSC::CSConCSC()
-// Default constructor
-// -----------------------------------------------------------------------------
-//
-CSConCSC::CSConCSC()
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CSConCSC::CapabilityObjectL(CBufFlat& aBuf)
-// Creates a capability object data and sets data into aBuf.
-// -----------------------------------------------------------------------------
-//
-void CSConCSC::CapabilityObjectL(CBufFlat& aBuf)
-    {
-    TRACE_FUNC_ENTRY;
-    iCapInfo->CapabilityDocumentL( &aBuf );
-    TRACE_FUNC_EXIT;
-    }
-
-// End of file
-
--- a/connectivitymodules/SeCon/services/csc/src/sconsyncservice.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,505 +0,0 @@
-/*
-* Copyright (c) 2007-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:  CSConSyncService implementation.
-*
-*/
-
-
-// Includes
-#include <centralrepository.h>
-#include <seconsdkcrkeys.h>
-
-#include <swi/sisregistryentry.h>   // for searching app name from installer
-#include <swi/sisregistrypackage.h>
-#include <swi/sisregistrysession.h>
-#include <javaregistryincludes.h>
-using namespace Java;
-
-#include "sconsyncservice.h"
-#include "capability.h"
-#include "debug.h"
-
-// Constants
-const TInt KDsAppUi = 0x101F6DE4; // NSmlDSSync.exe
-const TSmlDataProviderId KCalendarId = 0x101f6dde;
-const TSmlDataProviderId KContactsId = 0x101f6ddd;
-const TSmlDataProviderId KSmsId = 0x10206b5c;
-const TSmlDataProviderId KBookmarkId = 0x102751ba;
-
-const TInt KDateFormatLength(16);
-
-// -----------------------------------------------------------------------------
-// CSConSyncService::NewLC()
-// -----------------------------------------------------------------------------
-//
-CSConSyncService* CSConSyncService::NewLC()
-	{
-	TRACE_FUNC_ENTRY;
-	CSConSyncService* self = new (ELeave) CSConSyncService();
-	CleanupStack::PushL( self );
-	self->ConstructL();
-	TRACE_FUNC_EXIT;
-	return self;
-	}
-
-// -----------------------------------------------------------------------------
-// CSConSyncService::CSConSyncService()
-// -----------------------------------------------------------------------------
-//
-CSConSyncService::CSConSyncService()
-	{
-	}
-
-// -----------------------------------------------------------------------------
-// CSConSyncService::~CSConSyncService()
-// -----------------------------------------------------------------------------
-//
-CSConSyncService::~CSConSyncService()
-	{
-	TRACE_FUNC_ENTRY;
-	if ( iApaSessionConnected )
-		{
-		iApaSession.Close();
-		}
-	if ( iSyncSessionOpened )
-		{
-		iSyncSession.Close();
-		}
-	delete iRepository;
-	TRACE_FUNC_EXIT;
-	}
-
-// -----------------------------------------------------------------------------
-// CSConSyncService::ConstructL()
-// -----------------------------------------------------------------------------
-//
-void CSConSyncService::ConstructL()
-	{
-	iRepository = CRepository::NewL( KCRUidSecon );
-	}
-
-// -----------------------------------------------------------------------------
-// CSConSyncService::GetSolutionL()
-// Populate SolutionInfo according to content type.
-// -----------------------------------------------------------------------------
-//
-void CSConSyncService::GetSolutionL( const TUint aSeconContentType,
-		TSConSolutionInfo& aSolutionInfo )
-	{
-	TRACE_FUNC_ENTRY;
-	TInt appUid;
-	User::LeaveIfError( iRepository->Get( aSeconContentType, appUid ));
-    LOGGER_WRITE_2( "repository readed ok, uid: %d, hex:%x", appUid, appUid );
-    
-    aSolutionInfo.iUid = appUid;
-    if ( aSolutionInfo.iUid == KDsAppUi )
-        {
-        // read profile name
-        LOGGER_WRITE( "Search correct profile" );
-        GetLastUsedProfileNameL( aSolutionInfo.iSolutionName,
-        	aSolutionInfo.iTime, ProviderId( aSeconContentType ) );
-        }
-    else if ( aSolutionInfo.iUid != 0 )
-        {
-        LOGGER_WRITE( "Search correct application name" );
-        TUid appUid = {aSolutionInfo.iUid};
-        GetApplicationCaptionL( aSolutionInfo.iSolutionName, appUid );
-        
-        // get solution timestamp
-        TBuf<KDateFormatLength> timeBuffer;
-        // Timestamp is stored always in next to Uid value on cenrep
-        TInt err = iRepository->Get( aSeconContentType+1, timeBuffer );
-        
-        LOGGER_WRITE_1( "iRepository->Get(time) err: %d", err );
-        if ( err == KErrNone )
-        	{
-	        err = ParseTimestamp( aSolutionInfo.iTime, timeBuffer );
-	        LOGGER_WRITE_1( "ParseTimestamp err: %d", err );
-        	}
-        }
-    TRACE_FUNC_EXIT;
-	}
-
-// -----------------------------------------------------------------------------
-// CSConSyncService::ProviderId()
-// Return correct providerId according to content type.
-// -----------------------------------------------------------------------------
-//
-TSmlDataProviderId CSConSyncService::ProviderId( const TUint32 aSeconContentType ) const
-	{
-	TSmlDataProviderId providerId(KErrNotFound);
-	switch (aSeconContentType)
-		{
-		case KSeconCalendarUid:
-		providerId = KCalendarId;
-		break;
-		case KSeconContactsUid:
-		providerId = KContactsId;
-		break;
-		case KSeconSmsUid:
-		providerId = KSmsId;
-		break;
-		case KSeconBookmarkUid:
-		providerId = KBookmarkId;
-		break;
-		default:
-		LOGGER_WRITE_1( "Invalid content type: %d", aSeconContentType );
-		}
-	return providerId;
-	}
-
-// -----------------------------------------------------------------------------
-// CSConSyncService::ParseTimestamp()
-// Parses timestamp to TTime format
-// -----------------------------------------------------------------------------
-//
-TInt CSConSyncService::ParseTimestamp( TTime& aTime, const TDesC& aTimestamp ) const
-	{
-	// timestamp must be in following format:
-	// YYYYMMDDTHHMMSSZ
-	// MM=1..12, DD=1..number of days in month, HH=0..23, MM;SS=0..59
-	// Example 20071224T162215Z = 24.12.2007, 16:22:15 UTC time
-	
-	if ( aTimestamp.Length() != KDateFormatLength )
-		{
-		LOGGER_WRITE_1( "aTimestamp.Length(): %d", aTimestamp.Length() );
-		return KErrArgument;
-		}
-	
-	TPtrC temp;
-	temp.Set(aTimestamp.Ptr());
-	
-	TLex lex(temp.Mid(0,4));
-	TInt year;
-	TInt month;
-	TInt day;
-	TInt hour;
-	TInt minute;
-	TInt second;
-	TInt err = lex.Val( year );
-	if (err != KErrNone) return err;
-	
-	lex = temp.Mid(4,2);
-	err = lex.Val( month );
-	if ( err != KErrNone) return err;
-	month--;
-	
-	lex = temp.Mid(6,2);
-	err = lex.Val( day );
-	if (err != KErrNone) return err;
-	day--;
-	
-	lex = temp.Mid(9,2);
-	err = lex.Val( hour );
-	if (err != KErrNone) return err;
-	
-	lex = temp.Mid(11,2);
-	err = lex.Val( minute );
-	if (err != KErrNone) return err;
-	
-	lex = temp.Mid(13,2);
-	err = lex.Val( second );
-	if (err != KErrNone) return err;
-	
-	TDateTime parsedTime;
-	err = parsedTime.Set(year, (TMonth)month, day, hour, minute, second, 0);
-	if (err != KErrNone) return err;
-	
-	aTime = parsedTime;
-	return err;
-	}
-
-// -----------------------------------------------------------------------------
-// CSConSyncService::GetApplicationCaptionL()
-// Get application caption.
-// -----------------------------------------------------------------------------
-//
-void CSConSyncService::GetApplicationCaptionL( TDes& aCaption, const TUid aAppUid )
-    {
-    TRACE_FUNC_ENTRY;
-    
-    TInt err(KErrNotReady);
-    // connect to RApaLsSession, if not yet ready
-    if ( !iApaSessionConnected )
-    	{
-    	err = iApaSession.Connect();
-    	if ( err == KErrNone )
-    		{
-    		iApaSessionConnected = ETrue;
-    		}
-    	}
-    
-    // Get application caption using RApaLsSession::GetAppInfo
-	TApaAppInfo appInfo;
-	if ( iApaSessionConnected )
-		{
-		err = iApaSession.GetAppInfo( appInfo ,aAppUid );
-		}
-    
-    LOGGER_WRITE_1( "GetAppInfo err: %d", err );
-    if ( err == KErrNone )
-    	{
-    	aCaption = appInfo.iCaption;
-    	}
-    else
-        {
-        // Caption does not exist, search application name from installer
-        GetInstPackageCaptionL( aCaption, aAppUid );
-        }
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConSyncService::GetInstPackageCaptionL()
-// Search UID from installed applications, return app caption
-// -----------------------------------------------------------------------------
-//
-void CSConSyncService::GetInstPackageCaptionL( TDes& aCaption, const TUid aPackageUid )
-	{
-	TRACE_FUNC_ENTRY;
-    LOGGER_WRITE("Name not found, search from installer");
-    // Search application name from Installer.
-    Swi::RSisRegistrySession sisRegistry;
-    User::LeaveIfError( sisRegistry.Connect() );
-    CleanupClosePushL( sisRegistry );
-    
-    //Check if uid belongs to SIS package
-    if( sisRegistry.IsInstalledL( aPackageUid ) )
-        {
-        LOGGER_WRITE("SIS package found");
-        Swi::RSisRegistryEntry entry;
-        CleanupClosePushL(entry);
-        User::LeaveIfError( entry.Open( sisRegistry, aPackageUid ) );
-        aCaption.Copy( *entry.PackageNameL() );
-        CleanupStack::PopAndDestroy( &entry );
-        }
-    else
-        {
-        // not sis app, might be java app.
-        LOGGER_WRITE("SIS package not found");
-        CJavaRegistry* javaRegistry = CJavaRegistry::NewLC( );
-        TBool entryExist = javaRegistry->RegistryEntryExistsL( aPackageUid );
-        if ( entryExist )
-            {
-            CJavaRegistryEntry* entry = javaRegistry->RegistryEntryL( aPackageUid );
-            if ( entry )
-                {
-                aCaption.Copy( entry->Name() );
-                delete entry;
-                }
-            }
-        
-        CleanupStack::PopAndDestroy( javaRegistry ); 
-        }
-    
-    CleanupStack::PopAndDestroy( &sisRegistry );
-    TRACE_FUNC_EXIT;
-	}
-
-// -----------------------------------------------------------------------------
-// CSConSyncService::GetLastUsedProfileNameL()
-// Gets last used profile for selected provider
-// -----------------------------------------------------------------------------
-//
-void CSConSyncService::GetLastUsedProfileNameL( TDes& aProfileName, TTime& aTime,
-		const TSmlDataProviderId& aDataProviderId )
-    {
-    TRACE_FUNC_ENTRY;
-    if ( !iSyncSessionOpened )
-		{
-		iSyncSession.OpenL();
-		iSyncSessionOpened = ETrue;
-		}
-    RArray<TSmlProfileId> profiles;
-    CleanupClosePushL( profiles );
-    iSyncSession.ListProfilesL(profiles, ESmlDataSync );
-    TSmlProfileId lastSyncProfile(KErrNotFound);
-    TTime lastSyncTime(0);
-    LOGGER_WRITE_1( "Profiles count: %d", profiles.Count() );
-    for (TInt i=0; i<profiles.Count(); i++)
-    	{
-    	TTime syncTime(0);
-    	GetLastSyncTimeL( syncTime, profiles[i], aDataProviderId );
-    	if ( syncTime.Int64() != 0 && syncTime > lastSyncTime )
-    		{
-    		LOGGER_WRITE_1( "New record, profile: %d",profiles[i]);
-    		lastSyncTime = syncTime;
-    		lastSyncProfile = profiles[i];
-    		}
-    	}
-    CleanupStack::PopAndDestroy( &profiles );
-    LOGGER_WRITE_1( "lastSyncProfile: %d", lastSyncProfile );
-    if ( lastSyncProfile != KErrNotFound )
-    	{
-    	aTime = lastSyncTime;
-    	RSyncMLDataSyncProfile syncProfile;
-    	syncProfile.OpenL( iSyncSession, lastSyncProfile, ESmlOpenRead );
-    	TPtrC displayName = syncProfile.DisplayName();
-    	aProfileName.Copy( displayName );
-    	syncProfile.Close();
-    	}
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConSyncService::GetLastSyncTimeL()
-// Gets last sync time for certain profile and provider.
-// -----------------------------------------------------------------------------
-//
-void CSConSyncService::GetLastSyncTimeL( TTime& aTime, const TSmlProfileId aSyncProfileId,
-		const TSmlDataProviderId aDataProviderId  )
-	{
-	TRACE_FUNC_ENTRY;
-	LOGGER_WRITE_1( "aSyncProfileId: %d", aSyncProfileId );
-	LOGGER_WRITE_1( "aDataProviderId: 0x%08x", aDataProviderId );
-	if ( !iSyncSessionOpened )
-		{
-		LOGGER_WRITE("iSyncSession is not opened, Leave!");
-		User::Leave( KErrNotReady );
-		}
-	
-	RSyncMLDataSyncProfile syncProfile;
-	syncProfile.OpenL( iSyncSession, aSyncProfileId, ESmlOpenRead );
-    CleanupClosePushL( syncProfile );
-    LOGGER_WRITE( "syncProfile opened OK" );
-    
-    TSmlTaskId providerTask;
-    GetProviderTaskL( providerTask, syncProfile, aDataProviderId  );
-    if ( providerTask != KErrNone )
-    	{
-        RSyncMLHistoryLog historyLog;
-        historyLog.OpenL( iSyncSession, aSyncProfileId );
-        CleanupClosePushL( historyLog );
-        historyLog.SortEntries(CSyncMLHistoryEntry::ESortByTime);
-        LOGGER_WRITE_1( "historyLog.Count: %d", historyLog.Count() );
-        const CSyncMLHistoryJob* historyJob = LatestHistoryJob( historyLog, providerTask );
-        if ( historyJob )
-            {
-            aTime = historyJob->TimeStamp();
-#ifdef _DEBUG
-            TDateTime timeStamp = historyJob->TimeStamp().DateTime();
-            _LIT(KDateFormat, " (%04d%02d%02dT%02d%02d%02d)");
-            const TInt KDateFormatLength(20);
-            TBuf<KDateFormatLength> tempdate;
-            tempdate.Format(KDateFormat, timeStamp.Year(), timeStamp.Month()+1, timeStamp.Day()+1,
-                    timeStamp.Hour(), timeStamp.Minute(), timeStamp.Second());
-            LOGGER_WRITE_1("history found, TimeStamp: %S", &tempdate);
-#endif
-            }
-    	
-        CleanupStack::PopAndDestroy( &historyLog );
-    	}
-    CleanupStack::PopAndDestroy( &syncProfile );
-    TRACE_FUNC_EXIT;
-	}
-
-// -----------------------------------------------------------------------------
-// CSConSyncService::GetProviderTaskL()
-// Gets provider task id from profile
-// -----------------------------------------------------------------------------
-//
-void CSConSyncService::GetProviderTaskL( TSmlTaskId& aProviderTask,
-		RSyncMLDataSyncProfile& aSyncProfile,
-		const TSmlDataProviderId aDataProviderId  ) const
-	{
-	TRACE_FUNC_ENTRY;
-	aProviderTask = KErrNotFound;
-	
-	RArray<TSmlTaskId> tasks;
-	CleanupClosePushL( tasks );
-	
-	aSyncProfile.ListTasksL( tasks );
-	LOGGER_WRITE_1( "tasks.Count: %d", tasks.Count() );
-	
-	for ( TInt i=0; i<tasks.Count() && aProviderTask==KErrNotFound; i++ )
-		{
-		RSyncMLTask syncTask;
-	    syncTask.OpenL( aSyncProfile, tasks[i] );
-	    if ( syncTask.DataProvider() == aDataProviderId )
-	        {
-	        LOGGER_WRITE_1( "dataprovider task found, taskId: %d", tasks[i] );
-	        aProviderTask = tasks[i];
-	        }
-	    syncTask.Close();
-		}
-	
-	CleanupStack::PopAndDestroy( &tasks );
-	TRACE_FUNC_EXIT;
-	}
-
-// -----------------------------------------------------------------------------
-// CSConSyncService::LatestHistoryJob()
-// Gets latest historyJob where task is correct.
-// -----------------------------------------------------------------------------
-//
- const CSyncMLHistoryJob* CSConSyncService::LatestHistoryJob(
-		 RSyncMLHistoryLog& aHistoryLog, TInt aTaskId ) const
-    {
-    TRACE_FUNC_ENTRY;
-    
-    TInt count = aHistoryLog.Count();
-    if ( count == 0 )
-        {
-        LOGGER_WRITE( "profile has no history job" );
-        TRACE_FUNC_EXIT;
-        return NULL;  // profile has no history job
-        }
-
-    aHistoryLog.SortEntries(CSyncMLHistoryEntry::ESortByTime);    
-
-    // try to find latest sync job (start from last array entry)
-
-    for ( TInt i=count-1; i>=0; i-- )
-        {
-        const CSyncMLHistoryEntry& entry = aHistoryLog[i];
-        const CSyncMLHistoryJob* jobEntry = CSyncMLHistoryJob::DynamicCast(&entry);
-        if ( jobEntry )
-            {
-            if ( TaskExist(jobEntry, aTaskId) )
-                {
-                LOGGER_WRITE( "history job found" );
-                TRACE_FUNC_EXIT;
-                return jobEntry;
-                }
-            }
-        }
-    LOGGER_WRITE( "history job not found" );
-    TRACE_FUNC_EXIT;
-    return NULL;
-    }
-
- // -----------------------------------------------------------------------------
- // CSConSyncService::TaskExist()
- // Returns ETrue if task exists in HistoryJob.
- // -----------------------------------------------------------------------------
- //
-TBool CSConSyncService::TaskExist( const CSyncMLHistoryJob* aHistoryJob, TInt aTaskId ) const
-    {
-    TRACE_FUNC_ENTRY;
-    TInt taskCount = aHistoryJob->TaskCount();
-    for ( TInt i=0; i<taskCount; i++ )
-        {
-        const CSyncMLHistoryJob::TTaskInfo& taskInfo = aHistoryJob->TaskAt(i);
-
-        if ( taskInfo.iTaskId == aTaskId )
-            {
-            LOGGER_WRITE( "task exists." );
-            TRACE_FUNC_EXIT;
-            return ETrue;
-            }
-        }
-    TRACE_FUNC_EXIT;
-    return EFalse;
-    }
-
--- a/connectivitymodules/SeCon/services/csc/src/sconversioninfo.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,276 +0,0 @@
-/*
-* Copyright (c) 2008-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:  CSconVersionInfo implementation.
-*
-*/
-
-
-#include "sconversioninfo.h"
-
-#include <centralrepository.h>
-#include <DSCapabilityManagementCRKeys.h>
-#include <etel3rdparty.h> // read imsi
-#include <etel.h>
-#include <etelmm.h>
-#include <e32event.h>
-#include <e32svr.h>
-
-#include "caputils.h"
-#include "debug.h"
-
-CSconVersionInfo::CSconVersionInfo()
-    {
-    iSymbianVersionError = KErrNotReady;
-    iS60VersionError = KErrNotReady;
-    }
-
-CSconVersionInfo::~CSconVersionInfo()
-    {
-    delete iManufacturer;
-    delete iModel;
-    delete iProduct;
-    delete iRevision;
-    delete iSWVersion;
-    delete iSerialNumber;
-    delete iSysVersionInfo;
-    delete iLangVersion;
-    delete iLangSWVersion;
-    delete iOPVersion;
-    delete iProductCode;
-    }
-
-CSconVersionInfo* CSconVersionInfo::NewL()
-    {
-    CSconVersionInfo* self = new (ELeave) CSconVersionInfo;
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// CSconVersionInfo::FetchInfoL()
-// fetch device info
-// -----------------------------------------------------------------------------
-//
-void CSconVersionInfo::FetchInfoL( RFs& aFs )
-    {
-    TRACE_FUNC_ENTRY;
-    
-    iSymbianVersionError = SysVersionInfo::GetVersionInfo( iSymbianVersion, aFs );
-    iS60VersionError = VersionInfo::GetVersion( iS60Version, aFs );
-    
-    TBuf<KSysVersionInfoTextLength> info;
-    TBuf<KSysVersionInfoTextLength> productBuf;
-    TInt err(KErrNone);
-    delete iSWVersion;
-    iSWVersion = NULL;
-    delete iProduct;
-    iProduct = NULL;
-    // get SW version, SW version date and model
-    TRAP( err, CapUtil::GetSWVersionL( info, iDate, productBuf ) );
-    iSWVersion = info.AllocL();
-    iProduct = productBuf.AllocL();
-    LOGGER_WRITE_1("CapUtil::GetSWVersionL err: %d", err);
-    
-    
-    SysVersionInfo::TProductVersion productVersion;
-    TInt sysVersionError = SysVersionInfo::GetVersionInfo( productVersion, aFs );
-    LOGGER_WRITE_1( "SysVersionInfo::GetVersionInfo returned : %d", sysVersionError );
-    
-    // Use TelServer to get IMEI and also other info if SysVersionInfo is not supported
-    RTelServer telServer;
-    User::LeaveIfError( telServer.Connect() );
-    CleanupClosePushL( telServer );
-    RTelServer::TPhoneInfo teleinfo;
-    User::LeaveIfError( telServer.GetPhoneInfo( 0, teleinfo ) );
-    RMobilePhone phone;
-    User::LeaveIfError( phone.Open( telServer, teleinfo.iName ) );
-    CleanupClosePushL( phone );
-    User::LeaveIfError(phone.Initialise()); 
-    TUint32 teleidentityCaps;
-    phone.GetIdentityCaps( teleidentityCaps );
-    RMobilePhone::TMobilePhoneIdentityV1 telid;
-    TRequestStatus status;
-    phone.GetPhoneId( status, telid );
-    User::WaitForRequest( status );
-    if ( status == KErrNone )
-        {
-        if ( sysVersionError )
-            {
-            LOGGER_WRITE("Use info from TMobilePhoneIdentityV1");
-            delete iModel;
-            iModel = NULL;
-            delete iRevision;
-            iRevision = NULL;
-            
-            // phone model sales name. For example "N01".
-            iModel = telid.iModel.AllocL();
-            // product revision. For example "01"
-            iRevision = telid.iRevision.AllocL();
-            }
-        delete iSerialNumber;
-        iSerialNumber = NULL;
-        // Phone serial number (IMEI or ESN), in character string format.
-        iSerialNumber = telid.iSerialNumber.AllocL();
-        }
-    
-    CleanupStack::PopAndDestroy( &phone );
-    CleanupStack::PopAndDestroy( &telServer );
-        
-    if ( sysVersionError == KErrNone )
-        {
-        // use information from SysVersionInfo instead of previous APIs.
-        LOGGER_WRITE("Using SysVersionInfo");
-        
-        // phone model sales name. For example "N01".
-        delete iModel;
-        iModel = NULL;
-        iModel = productVersion.iModel.AllocL();
-        // product revision. For example "01"
-        delete iRevision;
-        iRevision = NULL;
-        iRevision = productVersion.iRevision.AllocL();
-        // manufacturer name. For example "Nokia"
-        delete iManufacturer;
-        iManufacturer = NULL;
-        iManufacturer = productVersion.iManufacturer.AllocL();
-        // product code name. For example "RM-1"
-        delete iProduct;
-        iProduct = NULL;
-        iProduct = productVersion.iProduct.AllocL();
-        }
-    else
-        {
-        CapUtil::GetManufacturer( info );
-        delete iManufacturer;
-        iManufacturer = NULL;
-        iManufacturer = info.AllocL();
-        }
-        
-    CapUtil::GetLanguage( iLanguage );
-    
-    
-    err = SysVersionInfo::GetVersionInfo( SysVersionInfo::EFWVersion, info, aFs );
-    delete iSysVersionInfo;
-    iSysVersionInfo = NULL;
-    if ( !err )
-        {
-        iSysVersionInfo = info.AllocL();
-        }
-    
-    err = SysUtil::GetLangVersion( info );
-    delete iLangVersion;
-    iLangVersion = NULL;
-    if ( !err )
-        {
-        iLangVersion = info.AllocL();
-        }
-    
-    sysVersionError = SysUtil::GetLangSWVersion( info );
-    delete iLangSWVersion;
-    iLangSWVersion = NULL;
-    if ( !sysVersionError )
-        {
-        iLangSWVersion = info.AllocL();
-        }
-                
-    sysVersionError = SysVersionInfo::GetVersionInfo( SysVersionInfo::EOPVersion, info, aFs );
-    delete iOPVersion;
-    iOPVersion = NULL;
-    if ( !sysVersionError )
-        {
-        iOPVersion = info.AllocL();
-        }
-    
-    
-    sysVersionError = SysVersionInfo::GetVersionInfo( SysVersionInfo::EProductCode, info, aFs );
-    delete iProductCode;
-    iProductCode = NULL;
-    if ( !sysVersionError )
-        {
-        iProductCode = info.AllocL();
-        }
-    
-    // screen size
-    TPckgBuf<TScreenInfoV01> siBuf;
-    UserSvr::ScreenInfo(siBuf);
-    TScreenInfoV01& si=siBuf();
-    iScreenSize = si.iScreenSize;
-    
-    
-    // read DesktopSync key value
-    CRepository* repository(NULL);
-    TRAP( iDesktopSyncError, repository = CRepository::NewL( KCRUidDSDCMOConfig ));
-    if ( !iDesktopSyncError )
-        {
-        iDesktopSyncError = repository->Get( KNsmlDesktopSync, iDesktopSync );
-        LOGGER_WRITE_1("iDesktopSyncError: %d", iDesktopSyncError );
-        LOGGER_WRITE_1("iDesktopSync: %d", iDesktopSync );
-        delete repository;
-        }
-    else
-        {
-        LOGGER_WRITE_1("Could not create CRepository, err: %d", iDesktopSyncError );
-        }
-    
-    
-    
-    iInfoFetched = ETrue;
-    TRACE_FUNC_EXIT;   
-    }
-
-// -----------------------------------------------------------------------------
-// CSconVersionInfo::IsReady()
-// 
-// -----------------------------------------------------------------------------
-//
-TBool CSconVersionInfo::IsReady()
-    {
-    return iInfoFetched;
-    }
-
-// -----------------------------------------------------------------------------
-// CSconVersionInfo::GetSymbianVersion()
-// Get Symbian OS version
-// -----------------------------------------------------------------------------
-//
-TInt CSconVersionInfo::GetSymbianVersion( SysVersionInfo::TSymbianOSVersion& aSymbianVersion )
-    {
-    if ( iSymbianVersionError )
-        {
-        return iSymbianVersionError;
-        }
-    else
-        {
-        aSymbianVersion = iSymbianVersion;
-        return KErrNone;
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CSconVersionInfo::GetS60Version()
-// Get S60 platform version
-// -----------------------------------------------------------------------------
-//
-TInt CSconVersionInfo::GetS60Version( VersionInfo::TPlatformVersion& aS60Version )
-    {
-    if ( iS60VersionError )
-        {
-        return iS60VersionError;
-        }
-    else
-        {
-        aS60Version = iS60Version;
-        return KErrNone;
-        }
-    }
-
--- a/connectivitymodules/SeCon/services/csc/src/stringlist.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,277 +0,0 @@
-/*
-* Copyright (c) 2005-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:  CStringList implementation
-*
-*/
-
-
-// INCLUDE FILES
-
-#include "stringlist.h"
-#include "capability.h"
-#include "debug.h"
-
-const TInt KMaxStringlistSize( 1000 );
-
-// ============================= MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CStringList::NewL()
-// Two-phase constructor.
-// -----------------------------------------------------------------------------
-//
-CStringList* CStringList::NewL()
-    {
-    TRACE_FUNC_ENTRY;
-    CStringList* self = CStringList::NewLC();
-    CleanupStack::Pop( self );
-    TRACE_FUNC_EXIT;
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// CStringList::NewLC()
-// Two-phase constructor. The created instance is placed to cleanup stack
-// -----------------------------------------------------------------------------
-//
-CStringList* CStringList::NewLC()
-    {
-    TRACE_FUNC_ENTRY;
-    CStringList* self = new ( ELeave ) CStringList();
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    TRACE_FUNC_EXIT;
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// CStringList::CStringList()
-// Default constuctor
-// -----------------------------------------------------------------------------
-//
-CStringList::CStringList()
-    {
-    TRACE_FUNC;
-    }
-
-// -----------------------------------------------------------------------------
-// CStringList::~CStringList()
-// Destructor
-// -----------------------------------------------------------------------------
-//
-CStringList::~CStringList()
-    {
-    TRACE_FUNC_ENTRY;
-    delete iLines;
-    iLines = NULL;
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CStringList::ConstructL()
-// Initializes member data
-// -----------------------------------------------------------------------------
-//
-void CStringList::ConstructL()
-    {
-    TRACE_FUNC_ENTRY;
-    const TInt KDefaultArrayGranularity = 10;
-    iLines = new (ELeave) CDesCArrayFlat(KDefaultArrayGranularity);
-    SetMark(0);
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CStringList::Count() const
-// Returns the count of lines
-// -----------------------------------------------------------------------------
-//
-TInt CStringList::Count() const
-    {
-    return iLines->Count();
-    }
-
-// -----------------------------------------------------------------------------
-// CStringList::Panic(TInt aPanic) const
-// Creates a panic
-// -----------------------------------------------------------------------------
-//
-#ifdef _DEBUG
-void CStringList::Panic(TInt aPanic) const
-#else
-void CStringList::Panic(TInt /*aPanic*/) const
-#endif
-    {
-    TRACE_FUNC_ENTRY;
-#ifdef _DEBUG
-    _LIT(KPanicCategory,"CStringList");
-
-    User::Panic(KPanicCategory, aPanic);
-#endif
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CStringList::Reset()
-// Resets iLines
-// -----------------------------------------------------------------------------
-//
-void CStringList::Reset()
-    {
-    iLines->Reset();
-    }
-
-// -----------------------------------------------------------------------------
-// CStringList::WriteL(const TDesC& aText)
-// Writes a string
-// -----------------------------------------------------------------------------
-//
-void CStringList::WriteL(const TDesC& aText)
-    {
-    iLines->AppendL(aText);
-    }
-
-// -----------------------------------------------------------------------------
-// CStringList::ReadPtr(TInt aIndex)
-// Returns pointer to the string
-// -----------------------------------------------------------------------------
-//
-TPtrC16 CStringList::ReadPtr(TInt aIndex)
-    {
-    if (aIndex<0 || aIndex>=Count())
-        {
-        Panic(KErrArgument);
-        }
-        
-    return iLines->MdcaPoint(aIndex);
-    }
-
-// -----------------------------------------------------------------------------
-// CStringList::CopyL(CStringList* aSource, TInt aStart, TInt aStop)
-// Copies a string / strings
-// -----------------------------------------------------------------------------
-//
-void CStringList::CopyL(CStringList* aSource, TInt aStart, TInt aStop)
-    {
-    if (aStart<0 || aStop>=aSource->Count() || aStart>aStop)
-        {
-        Panic(KErrArgument);
-        }        
-    
-    for (TInt i=aStart; i<=aStop; i++)
-        {
-        WriteL(aSource->ReadPtr(i));
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CStringList::StrCopy(TDes& aTarget, const TDesC& aSource) const
-// Copies the string
-// -----------------------------------------------------------------------------
-//
-TBool CStringList::StrCopy(TDes& aTarget, const TDesC& aSource) const
-    {
-    TInt len=aTarget.MaxLength();
-    if(len<aSource.Length()) 
-        {
-        aTarget.Copy(aSource.Left(len));
-        return EFalse;
-        }
-    aTarget.Copy(aSource);
-    return ETrue;
-    }
-
-// -----------------------------------------------------------------------------
-// CStringList::ReadFromFileL(const TDesC& aFileName)
-// Read strings from file.
-// -----------------------------------------------------------------------------
-//
-
-void CStringList::ReadFromFileL( RFs& aFs, const TDesC& aFileName )
-    {
-    InternalizeL( aFs, aFileName );
-    }
-
-// -----------------------------------------------------------------------------
-// CStringList::InternalizeL(const TDesC& aFileName)
-// Internalizes from file
-// -----------------------------------------------------------------------------
-//
-void CStringList::InternalizeL( RFs& aFs, const TDesC& aFileName )
-    {
-    
-    RFile file;
-    User::LeaveIfError( file.Open( aFs, aFileName, EFileRead ) );
-    CleanupClosePushL( file );
-    
-    
-    TFileText textFile;
-    textFile.Set( file );
-    textFile.Seek( ESeekStart );
-    TBuf<KMaxSize> buffer;
-    TInt count(0);
-    for (;;)
-        {
-        count++;
-        if ( count > KMaxStringlistSize )
-            {
-            break;
-            }           
-
-        buffer = KNullDesC;
-        
-        //
-        // Read seems to read chars until newline is reached or
-        // the descriptor is full. In case descriptor becomes full,
-        // err is KErrTooBig and next read starts from the next line. 
-        //
-        TInt err = textFile.Read( buffer );
-        if ( err == KErrEof )
-            {
-            break;
-            }
-            
-        if ( err != KErrNone )
-            {
-            User::Leave( err );
-            }           
-
-        iLines->AppendL( buffer );
-        }
-    
-    CleanupStack::PopAndDestroy( &file ); // file 
-    }
-
-
-// -----------------------------------------------------------------------------
-// CStringList::Mark() const
-// Returns the mark
-// -----------------------------------------------------------------------------
-//
-TInt CStringList::Mark() const
-    {
-    return iMark;
-    }
-
-// -----------------------------------------------------------------------------
-// CStringList::SetMark(TInt aMark)
-// Sets mark
-// -----------------------------------------------------------------------------
-//
-void CStringList::SetMark(TInt aMark)
-    {
-    iMark=aMark;
-    }
-
-// End of files
--- a/connectivitymodules/SeCon/services/ftp/bld/bld.inf	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-/*
-* Copyright (c) 2004-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:  File Transfer Controller build file.
-*
-*/
-
-#include <platform_paths.hrh>
-
-PRJ_PLATFORMS  
-DEFAULT
-
-PRJ_EXPORTS
-../loc/sconftp.loc  MW_LAYER_LOC_EXPORT_PATH(sconftp.loc)
-
-PRJ_MMPFILES
-../bld/sconftp.mmp
--- a/connectivitymodules/SeCon/services/ftp/bld/def/bwinscwu.def	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-EXPORTS
-	?CreateCSConFTPL@@YAPAVCSConFTP@@XZ @ 1 NONAME ; class CSConFTP * CreateCSConFTPL(void)
-
--- a/connectivitymodules/SeCon/services/ftp/bld/def/eabiuu.def	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-EXPORTS
-	_Z15CreateCSConFTPLv @ 1 NONAME
-	_ZTI8CSConFTP @ 2 NONAME ; #<TI>#
-	_ZTV8CSConFTP @ 3 NONAME ; #<VT>#
-
--- a/connectivitymodules/SeCon/services/ftp/bld/sconftp.mmp	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,75 +0,0 @@
-/*
-* Copyright (c) 2005-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:  File Transfer Controller mmp file
-*
-*/
-
-
-// To get the MW_LAYER_SYSTEMINCLUDE-definition
-#include <platform_paths.hrh>
-#include <data_caging_paths.hrh>
-
-VENDORID        VID_DEFAULT
-
-CAPABILITY      CAP_GENERAL_DLL
-
-TARGET          sconftp.dll
-TARGETTYPE      DLL
-
-UID             0x10009D8D 0x101F968A
-
-#if defined(ARMCC)
-DEFFILE ./def/eabiu
-#elif defined(WINSCW)
-DEFFILE ./def/bwinscw
-#elif defined(WINS)
-DEFFILE ./def/bwins
-#elif defined(ARM)
-DEFFILE ./def/bmarm
-#endif
-
-SOURCEPATH      ../src
-SOURCE          sconfshandler.cpp
-SOURCE          sconftp.cpp
-SOURCE          sconinboxhandler.cpp
-
-USERINCLUDE     ../../../inc
-USERINCLUDE     ../inc
-USERINCLUDE     ../../../cntparser/inc
-
-
-APP_LAYER_SYSTEMINCLUDE
-
-
-START RESOURCE  ../src/sconftp.rss
-HEADER
-TARGETPATH      RESOURCE_FILES_DIR
-LANGUAGE_IDS
-END
-
-
-LIBRARY         efsrv.lib               // For File server
-LIBRARY         euser.lib               // Base library
-LIBRARY         IrObex.lib              // For Object exchange
-LIBRARY         obexutils.lib
-LIBRARY         msgs.lib                // For Inbox entry
-LIBRARY         charconv.lib            // For Unicode conversion
-LIBRARY         bafl.lib                // Basic Application Framework Library
-LIBRARY         commonengine.lib        // For resource reader
-LIBRARY         platformenv.lib         // For pathinfo
-LIBRARY         CntParserServer.lib     // for contacts
-LIBRARY         directorylocalizer.lib  // For localizing directories
-LIBRARY         sysutil.lib
-LIBRARY         centralrepository.lib
-DEBUGLIBRARY    flogger.lib             // For debug logging
--- a/connectivitymodules/SeCon/services/ftp/inc/sconconstants.h	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +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:  Common constants for PC Connectivity
-*
-*/
-
-
-#ifndef __SCONCONSTANTS_H
-#define __SCONCONSTANTS_H
-
-enum TSConProfile
-	{
-	EStandard = 0,
-	EProprietary,
-	EOther
-	};
-
-enum TSConUsedMedia
-	{
-	ESConNoMedia = 0,
-	ESConIRMedia,
-	ESConBTMedia,
-	ESConUSBMedia		
-	};
-
-#endif // __SCONCONSTANTS_H
-
-// End of file
--- a/connectivitymodules/SeCon/services/ftp/inc/sconconsts.h	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,97 +0,0 @@
-/*
-* Copyright (c) 2005-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:  Constant definitions for File Transfer Controller
-*
-*/
-
-
-#ifndef _SCONCONSTS_H_
-#define _SCONCONSTS_H_
-
-_LIT( K_C_ROOT, "C:\\" );
-
-// Following folders on MMC are exluded from folder listing
-_LIT( KSConResource, "resource\\" ); // resource folder on MMC
-_LIT( KSConSys, "sys\\" );           // sys folder on MMC
-_LIT( KSConPrivate, "private\\" );   // private folder on MMC
-_LIT( KSConSystem, "system\\" );     // system folder on MMC
-
-// Suite needs access to SuiteConf.xml file
-_LIT( KSConAllowedPath, "Z:\\Private\\101F7C87" );
-
-// For folder listing
-_LIT8( KSConXmlDocBegin,
-       "<?xml version=\"1.0\"?>\n<!DOCTYPE folder-listing SYSTEM \"obex-folder-listing.dtd\"\n  [ <!ATTLIST folder mem-type CDATA #IMPLIED>\n  <!ATTLIST folder label CDATA #IMPLIED> ]>\n<folder-listing version=\"1.0\">\n" );
-_LIT8( KSConXmlParentFolder, "   <parent-folder />\n" );
-_LIT8( KSConXmlFileNameBegin,"   <file name=\"" );
-_LIT8( KSConXmlFolderNameBegin,"   <folder name=\"" );
-_LIT8( KSConXmlDriveNameBegin,"   <drive name=\"" );
-_LIT8( KSConXmlType,"\" type=\"" );
-_LIT8( KSConXmlModified,"\" modified=\"" );
-_LIT8( KSConXmlSize,"\" size=\"" );
-_LIT8( KSConXmlUserAttributes,"\" user-perm=\"" );
-_LIT8( KSConXmlMemoryType,"\" mem-type=\"" );
-_LIT8( KSConXmlMemoryLabel,"\" label=\"" );
-
-_LIT8( KSConXmlTypeWord, "x-epoc/x-app268450404" );
-_LIT8( KSConXmlTypeSheet, "x-epoc/x-app268450429" );
-
-_LIT8( KSConXmlUserEntryArchive,"RWD" );
-_LIT8( KSConXmlUserEntryReadOnly,"R" );
-_LIT8( KSConXmlUserEntryDrive, "RW" );
-
-_LIT8( KSConXmlFileEnd,"\"/>\n" );
-_LIT8( KSConXmlFolderListEnd,"</folder-listing>" );
-_LIT8( KSConDriveCName,"C:" );
-_LIT8( KSConDriveZName,"Z:" );
-_LIT8( KSConFolderListType, "x-obex/folder-listing" );
-
-const TInt KSConMemTypeMaxLength = 5;
-_LIT8( KSConMemoryTypeDev, "DEV" ); // prefix for device memory
-_LIT8( KSConMemoryTypeMmc, "MMC" ); // prefix for MMC memory
-
-// Date field format
-_LIT( KSConXmlDate, "%F%Y%M%DT%H%T%SZ" );
-const TInt KSConDateMaxLength = 16;
-
-//File extensions
-_LIT( KSConEpocWordExt, ".ewd" );
-_LIT( KSConEpocSheetExt, ".sht" );
-
-_LIT8( KFind1,"&" );
-_LIT8( KReplace1, "&amp;" );
-_LIT8( KReplace2, "&lt;" );
-_LIT8( KReplace3, "&gt;" );
-_LIT8( KReplace4, "&quot;" );
-_LIT8( KReplace5, "&apos;" );
-
-_LIT( KSConResourceName, "z:\\Resource\\sconftp.rsc" );
-
-const TInt KSConBufSize = 1024;
-const TInt KSConSetPathDontCreate = 0x01;   // Flags used to indicate SetPath commands
-const TInt KSConSetPathRoot = 0x02;         // Flags used to indicate SetPath commands
-const TInt KSConSetPathForward = 0x02;      // Flags used to indicate SetPath commands
-const TInt KSConSetPathBack = 0x03;         // Flags used to indicate SetPath commands
-const TInt KSConXmlBufSize = 30;
-const TInt KSConDriveNameLength = 2;
-const TInt KSConMaxMimeTypeLength = 25;
-const TInt KSConBufferSize = 262144; // 256KB
-
-const TUid KSConSheetUid = { 0x10003a7d };  // Sheet document uid
-const TUid KSConWordUid = { 0x10003a64 };   // Word document uid
-
-const TInt KDriveLength = 3;
-
-#endif
-
--- a/connectivitymodules/SeCon/services/ftp/inc/sconfshandler.h	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,172 +0,0 @@
-/*
-* Copyright (c) 2005-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:  CSConFSHandler header file
-*
-*/
-
-
-#ifndef _SCONFSHANDLER_H_
-#define _SCONFSHANDLER_H_
-
-// INCLUDES
-
-#include <e32base.h>
-#include <obexobjects.h>
-
-
-// FORWARD DECLARATIONS
-class CDirectoryLocalizer;
-
-
-//============================================================
-// Class CSConFsHandler declaration
-//============================================================
-NONSHARABLE_CLASS( CSConFsHandler ) : public CBase
-    {
-    public:
-        static CSConFsHandler* NewL( RFs& aFs );
-        ~CSConFsHandler();
-        /**
-         * Parses folder and file listing from specified directory
-         * @param aBuffer Buffer to store the folder list
-         * @param aPathName Folder path
-         * @param aMemNumber memory number (1= DEV or MMC, 2= DEV2 or MMC2..)
-         * @return KErrNone if no errors, else system wide error codes.
-         */
-        TInt ParseFolderListL( CBufFlat* aBuffer, const TPtrC aPathName,
-            const TInt aMemNumber );
-        /**
-         * Gets a file object
-         * @param aBuffer CObexFileObject object where the file will be stored
-         * @param aPathName The path of the file
-         * @param aFileName The name of the file
-         * @return KErrNone if no errors, else system wide error codes.
-         */
-        TInt GetFileObjectL( CObexFileObject*& aBuffer, const TPtrC aPathName,
-            const TPtrC aFileName );
-        /**
-         * Stores a file object
-         * @param aFullPathName The full path and name of the file
-         * @param aTime The time stamp of the file
-         * @param aTempFileName Data temp file
-         * @return KErrNone if no errors, else system wide error codes.
-         */
-        TInt SaveFileObjectL( const TPtrC aFullPathName, const TTime aTime, 
-            const TPtrC aTempFileName );
-        /**
-         * Validates the file name
-         * @param aName File name to be validated
-         * @return KErrNone if no errors, else system wide error codes.
-         */
-        TInt ValidateFileName( const TPtrC aName );
-        /**
-         * Creates a folder
-         * @param aFolderPath The name and the path of the folder
-         * @return KErrNone if no errors, else system wide error codes.
-         */
-        TInt CreateFolderL( const TPtrC aFolderPath );
-        /**
-         * Removes a folder or a file
-         * @param aFullPath The path and name of the object
-         * @return KErrNone if no errors, else system wide error codes.
-         */
-        TInt DeleteObjectL( const TPtrC aFullPath );
-        
-        /**
-         * Copy or Move file/folder
-         * @param aSource
-         * @param aTarget
-         * @param aUseCopyCommand if ETrue does copy, else does move.
-         * @return none.
-         */
-        void DoCopyOrMoveFileL( const TDesC& aSource, const TDesC& aTarget,
-            const TBool aUseCopyCommand );
-        
-        /**
-         * Check if folder can be showed
-         * @param aFullPath The path of the object
-         * @return ETrue if folder exists and can be showed.
-         */
-        TBool IsFolderVisible( const TDesC& aFullPath );
-        
-    private:
-        CSConFsHandler( RFs& aFs );
-        void ConstructL();
-        /**
-         * Updates the name of the data folder from a localized string
-         * @param none
-         * @return none
-         */
-        void GetDataPathNameL();
-        
-        /**
-         * Check if folder is read only
-         * @param aFullPath The path of the object
-         * @return ETrue if folder is read only, or if folder does not exist
-         */
-        TBool IsFolderReadOnly( const TDesC& aFullPath ) const;
-        /**
-         * Check if folder can be deleted
-         * @param aFullPath The path of the object
-         * @return ETrue if folder can be deleted
-         */
-        TBool IsFolderDeletable( const TDesC& aFullPath ) const;
-        /**
-         * Get parent folder
-         * @param aFullPath The folder full path with or without backlash ending
-         * @param aParent The founded parent folder with backlash
-         * @return KErrNone if parent folder founded
-         */
-        TInt GetParentFolder( const TDesC& aFullPath, TDes& aParent);
-        
-        /**
-         * Get folder (and subfolders) size
-         * @param aFullPath The folder full path with backlash ending
-         * @return folder total size
-         */
-        TInt64 GetFolderSizeL( const TDesC& aFullPath );
-        
-        /**
-         * Replaces all special characters to xml compliant ones
-         * @param aDes characters to be checked and replaced
-         */
-        void ReplaceSpecialChars( TDes8& aDes );
-        
-        /**
-         * Check if folder is exluded and cannot be shown to user
-         * @param aFullPath The full path with backlash ending
-         * @return ETrue if folder is exluded
-         */
-        TBool IsExludedPath( const TDesC& aFullPath ) const;
-        
-		/**
-		 * Prints folder information to obex-folder-list
-		 */
-        void PrintFolderL( CBufFlat* aBuffer, TInt& aOffset, const TDesC& aParentPath,
-                            const TDesC8& aMemType, const TEntry& aFolderEntry );
-        /**
-		 * Prints file information to obex-folder-list
-		 */
-        void PrintFileL( CBufFlat* aBuffer, TInt& aOffset, const TEntry& aFileEntry );
-        
-    private:
-        RFs&                 iFs; // not own
-        CDirectoryLocalizer* iLocalizer;
-        TBuf8<KMaxFileName> iDataPathName;  // Localized data path
-    };
-
-#endif
-
-// End of file
-
--- a/connectivitymodules/SeCon/services/ftp/inc/sconftp.h	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,261 +0,0 @@
-/*
-* Copyright (c) 2005-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:  CSConFTP header file
-*
-*/
-
-
-#ifndef _SCONFTP_H_
-#define _SCONFTP_H_
-
-// INCLUDES
-
-#include <e32base.h>
-#include <obexobjects.h>
-
-#include "sconconstants.h"
-
-class CSConInboxHandler;
-class CSConFsHandler;
-
-//============================================================
-// Class CSConFTP declaration
-//============================================================
-class CSConFTP : public CBase
-    {
-    public:
-        // construct / destruct
-        static CSConFTP* NewL();        
-        ~CSConFTP();
-
-        // methods
-         /**
-         * Gets object that contains folder listing from inbox or file system
-         * @param aObject CObexBufObject object
-         * @return KErrNone if no errors, else system wide error codes.
-         */
-         virtual TInt GetFolderObjectL( CObexBufObject*& aObject );
-
-         /**
-         * Gets object that contains a file from file system
-         * @param aFileObject CObexFileObject object
-         * @return KErrNone if no errors, else system wide error codes.
-         */
-         virtual TInt GetFileObjectL( CObexFileObject*& aFileObject );
-
-         /**
-         * Initializes the receiving from the client.
-         * @param aObject CObexBufObject object
-         * @param aObject CBufFlat object
-         * @return KErrNone if no error, else system wide error codes.
-         */
-         virtual TInt PutFileObjectInitL( CObexBufObject*& aObject, 
-                                            CBufFlat*& aBuffer );
-
-         /**
-         * Stores the relayed file object to inbox or file system.
-         * @param aObject CObexBufObject object
-         * @return KErrNone if no error, else system wide error codes.        
-         */
-         virtual TInt PutFileObjectFinalizeL( CObexBufObject*& aObject );
-
-         /**
-         * Changes the current path. The path can point to inbox or file system
-         * @param aPathName The name of the new path
-         * @param aFlags Flag value of OBEX Setpath operation
-         * @return KErrNone if no error, else system wide error codes.
-         */
-         virtual TInt SetPathL( const TPtrC aPathName, const TUint8 aFlags );
-
-         /**
-         * Creates a new folder to file system
-         * @param aFolderName The name of the folder to be created
-         * @return KErrNone if no error, else system wide error codes.
-         */
-         virtual TInt CreateFolderL( const TPtrC aFolderName );
-
-         /**
-         * Deletes file/folder from inbox or file system
-         * @param aObjectName The name of the object (file or folder) to be created
-         * @return KErrNone if no error, else system wide error codes.
-         */
-         virtual TInt DeleteObjectL( const TPtrC aObjectName );
-
-         /**
-         * Gets the current path
-         * @param aPath The name of the current path
-         * @return KErrNone if no error, else system wide error codes.
-         */
-         virtual TInt GetPath( TDes& aPath );
-         
-         /**
-         * Abort file transfer
-         * @param aObject The OBEX stack object which will reseted
-         * @return KErrNone if no error, else system wide error codes.
-         */
-         virtual TInt AbortFileTransfer( CObexBufObject*& aObject );
-
-         /**
-         * Set used transfer profile
-         * @param aProfile The profile id
-         * @return none
-         */
-         virtual void SetProfile( TSConProfile aProfile );
-
-         /**
-         * Set backup status
-         * @param aValue Is backup started or not
-         * @return none
-         */
-         virtual void SetBackupStarted( TBool aValue );
-         
-         /**
-         * Set the used media information
-         * @param aMedia The media which is currently used
-         * @return none
-         */
-         virtual void SetUsedMedia( TSConUsedMedia aMedia );
-
-         /**
-         * Check is current drive space below critical level
-         * @param aFilesize, additional free space needed
-         * @return ETrue if below critical                                                  
-         */
-         virtual TBool IsCurrentDiskSpaceBelowCritical( TUint32 aFilesize = 0 );
-         
-         /**
-         * Read received ConML protocol packet
-         * @param aBuffer The buffer for the data
-         * @return KErrNone if no error, else system wide error codes.                                                                        
-         */
-         virtual TInt ReadWBXMLDataL( CBufFlat*& aBuffer );
-         
-         /**
-         * Delete OBEX stack's temp file
-         * @param none
-         * @return KErrNone if no error, else system wide error codes.
-         */
-         virtual void DeleteTempFile();
-         
-         /**
-         * Move or rename file/folder
-         * @param aSource
-         * @param aTarget
-         * @return KErrNone if no error, else system wide error codes.
-         */
-         virtual TInt MoveFile( const TDesC& aSource, const TDesC& aTarget );
-         
-         /**
-         * Copy file/folder
-         * @param aSource
-         * @param aTarget
-         * @return KErrNone if no error, else system wide error codes.
-         */
-         virtual TInt CopyFile( const TDesC& aSource, const TDesC& aTarget );
-         
-         /**
-         * Set read-only attribute to file or folder
-         * @param aTarget file or folder fullname
-         * @param aReadOnly set read-only permission to ETrue or EFalse
-         * @return KErrNone if no error, else system wide error codes.
-         */
-         virtual TInt SetReadOnly( const TDesC& aTarget, const TBool aReadOnly );
-         
-        /**
-         * Set hidden attribute to file or folder
-         * @param aTarget file or folder fullname
-         * @param aHidden set read-only permission to ETrue or EFalse
-         * @return KErrNone if no error, else system wide error codes.
-         */
-        virtual TInt SetHidden( const TDesC& aTarget, const TBool aHidden );
-         
-    private:
-        // methods
-        /**
-         * Get absolute path from given relative foldername
-         * @param aFolderName relative or absolute filename
-         * @param aFullPath return absolete path of file/folder
-         * @return KErrNone if no error, else system wide error codes.
-        */
-        virtual TInt GetAbsolutePath( const TDesC& aFolderName, TDes& aFullPath );
-        
-        /**
-         * Checks if user can see/access to the drive
-         * @param aDriveNumber drive to be tested
-         * @return ETrue if user can see drive.
-        */
-        TBool IsDriveVisible( const TInt aDriveNumber );
-        
-        /**
-         * Checks if user access to the current volume
-         * @param none
-         * @return ETrue if volume is ok.
-        */
-        TBool IsCurrentVolumeOK();
-        
-        /**
-         * Go to (sub)directory
-         * @param aPath (sub)directory
-         * @param aFlags used to check if new folder(s) should be created
-         * @return KErrNone if no error, else system wide error codes.
-        */
-        TInt SetPathForwardL( const TPtrC aPath, const TUint8 aFlags );
-        
-        /**
-         * Go to parent directory
-         * @param aPath subdirectory under parent (additional)
-         * @return KErrNone if no error, else system wide error codes.
-        */
-        TInt SetPathBackwardL( const TPtrC aPath );
-        
-        /**
-         * Get volume name (Memory card name)
-         * @param aDriveNumber drive where to read
-         * @param aVolumeName if name found return volume name, else localised string
-         * @return KErrNone if no error, else system wide error codes.
-        */
-        TInt GetVolumeNameL(const TInt aDriveNumber, TDes8& aVolumeName);
-        
-        /**
-         * Updates drive information (iCurrentDrive and iCurrentDriveTypeNumber)
-         * @param none
-         * @return none, leaves if error occurs.
-        */
-        void UpdateDriveTypeInfoL();
-        
-        CSConFTP();
-        virtual void ConstructL();
-    
-    private:
-        CSConInboxHandler*                  iSConInboxHandler;  // Object saving-fetching
-        CBufFlat*                           iBuffer;            // Temporary buffer
-        CSConFsHandler*                     iSConFsHandler;     // Object saving-fetching
-        TBuf<KObexObjectDescriptionSize>    iPathName;          // Path
-        TFileName                           iTempFileName;      // Temp file name
-        RFs                                 iFs;
-        TSConProfile                        iProfile;           // Used profile
-        TBool                               iBackupStarted;
-        TSConUsedMedia                      iMedia;
-        TInt                                iCurrentDrive;
-        TInt                                iCurrentDriveTypeNumber; // DEV=1, DEV2=2, MMC=1, MMC2=2.
-        TInt                                iCriticalDiskLevel;
-    };
-
-    IMPORT_C CSConFTP* CreateCSConFTPL();
-    typedef CSConFTP* (*TSConCreateCSConFTPFunc) ();   
-
-
-#endif // SCONFTP
-
-// End of file
--- a/connectivitymodules/SeCon/services/ftp/inc/sconinboxhandler.h	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,84 +0,0 @@
-/*
-* Copyright (c) 2005-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:  CSConInboxHandler header file
-*
-*/
-
-
-#ifndef _SCONINBOXHANDLER_H_
-#define _SCONINBOXHANDLER_H_
-
-// INCLUDES
-
-#include <e32base.h>
-#include <e32cons.h>
-#include <msvapi.h>
-
-
-//============================================================
-// Class CSConInboxHandler declaration
-//============================================================
-NONSHARABLE_CLASS( CSConInboxHandler ) : public CBase, MMsvSessionObserver
-    {
-    public:
-        static CSConInboxHandler* NewL();
-        virtual ~CSConInboxHandler();
-        
-        /**
-         * Creates an attachment to device's Inbox
-         * @param aObject CObexBufObject object
-         * @return KErrNone if no errors, else system wide error codes.
-         */
-        TInt CreateInboxAttachmentL( CObexBufObject*& aObject, 
-                                        CBufFlat*& aBuffer );
-        /**
-         * Saves the object to the Inbox
-         * @param aObject CObexBufObject object
-         * @return KErrNone if no errors, else system wide error codes.
-         */
-        TInt SaveObjToInboxL( CObexBufObject*& aObject );
-        /**
-         * Aborts the storing operation
-         * @param aObject CObexBufObject object
-         * @return KErrNone if no errors, else system wide error codes.
-         */
-        TInt AbortInboxOperation( CObexBufObject*& aObject );
-        /**
-         * Implementation of MMsvSessionObserver::HandleSessionEventL
-         * @param aEvent Indicates the event type. 
-         * @param aArg1 Event type-specific argument value 
-         * @param aArg2 Event type-specific argument value 
-         * @param aArg3 Event type-specific argument value
-         * @return none
-         */
-        void HandleSessionEventL( TMsvSessionEvent aEvent, 
-                                TAny* aArg1, 
-                                TAny* aArg2, 
-                                TAny* aArg3 );
-        
-    private:
-        CSConInboxHandler();
-        
-        TInt GetMessageCenterDriveL();
-        
-    private:
-        TInt            iDrive;
-        TMsvId          iMsvIdParent;
-        TMsvId          iMsvIdAttach;
-        RFile           iFile;          
-};
-
-#endif
-
-// End of file
--- a/connectivitymodules/SeCon/services/ftp/loc/sconftp.loc	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-/*
-* Copyright (c) 2002-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:  Localization file for csconftp
-*
-*/
-
-
-//d:Default name for device
-//l:list_double_pane_t2_cp2
-#define	qtn_secon_device "Phone"
-
-//d:Default name for memory card
-//l:list_double_pane_t2_cp2
-#define	qtn_secon_mmc "Memory card"
-
-//d:Default name for mass storage
-//l:None
-//r:3.2
-#define	qtn_secon_mass_storage "Mass memory"
-
-//d:Default name for data folder
-//l:None
-//r:3.2
-#define	qtn_secon_data_folder "Personal files"
-
-// d: Value in a PC Suite dialog showing program details
-// l: None
-// r: 3.2
-#define qtn_secon_unknown_supplier "Unknown"
--- a/connectivitymodules/SeCon/services/ftp/src/sconfshandler.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1497 +0,0 @@
-/*
-* Copyright (c) 2005-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:  File Transfer Controller implementation
-*
-*/
-
-
-// INCLUDE FILES
-#include <stringresourcereader.h>
-#include <sconftp.rsg>
-#include <pathinfo.h>
-#include <connect/sbdefs.h> // to get backup/restore mode
-#include <driveinfo.h>
-#include <bautils.h>
-#include <sysutil.h>
-#include <CDirectoryLocalizer.h>
-
-#include "sconfshandler.h"
-#include "sconconsts.h"
-#include "irmcconsts.h"
-#include "cntparserclient.h"
-#include "cntparserinfolog.h"
-#include "debug.h"
-
-_LIT(KPhoneBookIrMCL2Request,"telecom/pb.vcf");
-_LIT(KInfoLogIrMCL2Request,"telecom/pb/info.log");
-_LIT(KInfoLogIrMCL2File,"IrMC\\info.log");
-_LIT(KInfoLogPathAndFileName,"c:\\IrMC\\info.log");
-_LIT(KPbPathAndFileName,"c:\\IrMC\\pb.vcf");
-
-// ============================= MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CSConFsHandler::NewL()
-// Two-phase constructor
-// -----------------------------------------------------------------------------
-//
-CSConFsHandler* CSConFsHandler::NewL( RFs& aFs )
-    {
-    TRACE_FUNC_ENTRY;
-    CSConFsHandler* self = new (ELeave) CSConFsHandler( aFs );
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop( self );
-    TRACE_FUNC_EXIT;
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFsHandler::~CSConFsHandler()
-// Destructor
-// -----------------------------------------------------------------------------
-//
-CSConFsHandler::~CSConFsHandler()
-    {
-    TRACE_FUNC_ENTRY;
-    delete iLocalizer;
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFsHandler::ParseFolderListL( CBufFlat* aBuffer, const TPtrC aPathName
-//                                  , const TInt aMemNumber )
-// Parses folder and file listing from specified directory
-// -----------------------------------------------------------------------------
-//
-TInt CSConFsHandler::ParseFolderListL( CBufFlat* aBuffer, const TPtrC aPathName,
-                                       const TInt aMemNumber )
-    {
-    TRACE_FUNC_ENTRY;
-    LOGGER_WRITE_1( "CSConFsHandler::ParseFolderListL aPathName =  %S", &aPathName );
-    if( aPathName.Length() == 0 )
-        {
-        LOGGER_WRITE( "CSConFsHandler::ParseFolderListL( CBufFlat* aBuffer, const TPtrC aPathName ) : No path" );
-        return KErrArgument;
-        }
-            
-    if( aPathName.Length() > KDriveLength && !BaflUtils::FolderExists( iFs, aPathName ) )
-        {
-        LOGGER_WRITE( "CSConFsHandler::ParseFolderListL( CBufFlat* aBuffer, const TPtrC aPathName ) : Current folder doesn't exist any more" );
-        return KErrNotFound;
-        }
-    
-    TInt driveNumber;
-    TInt err = iFs.CharToDrive(aPathName[0], driveNumber);
-    if( err )
-        {
-        LOGGER_WRITE_1( "CSConFsHandler::ParseFolderListL : CharToDrive err: %d", err );
-        return KErrNotFound;
-        }
-    TUint driveStatus;
-    err = DriveInfo::GetDriveStatus( iFs, driveNumber, driveStatus);
-    if( err )
-        {
-        LOGGER_WRITE_1( "CSConFsHandler::ParseFolderListL : DriveInfo::GetDriveStatus err: %d", err );
-        return KErrNotFound;
-        }
-    
-    // check mem type (DEV, DEV2, MMC, MMC2..)
-    TBuf8<KSConMemTypeMaxLength> memType;
-    if( driveStatus & DriveInfo::EDriveInternal )
-        {
-        memType.Copy( KSConMemoryTypeDev );
-        if( aMemNumber > 1 )
-            {
-            memType.AppendNum(aMemNumber);
-            }
-        }
-    else if( driveStatus & DriveInfo::EDriveRemovable )
-        {
-        memType.Copy( KSConMemoryTypeMmc );
-        if( aMemNumber > 1 )
-            {
-            memType.AppendNum(aMemNumber);
-            }
-        }
-
-    CDir *entryList = 0;
-    CDir *dirList = 0;
-    
-    // show only normal files and folders
-    TUint entryAttMask = KEntryAttNormal;
-    
-    
-    // get folders and files
-    err = iFs.GetDir( aPathName, entryAttMask, ESortByName, 
-            entryList, dirList );
-    
-    if ( err )
-        {
-        LOGGER_WRITE_1( "ParseFolderListL GetDir returned: %d", err );
-        return err;
-        }
-    
-    CleanupStack::PushL( entryList );
-    CleanupStack::PushL( dirList );
-    
-    TInt offset = 0;
-    
-    LOGGER_WRITE( "CSConFsHandler::ParseFolderList XML creation" );
-    //Create folder XML
-    aBuffer->ResizeL( KSConXmlDocBegin().Length() );
-    aBuffer->Write( offset, KSConXmlDocBegin );
-    offset += KSConXmlDocBegin().Length();
-
-    aBuffer->ExpandL( offset, KSConXmlParentFolder().Length() );
-    aBuffer->Write( offset, KSConXmlParentFolder );
-    offset += KSConXmlParentFolder().Length();
-
-    HBufC* fullNameBuf = HBufC::NewLC( KMaxPath );
-    TPtr fullName = fullNameBuf->Des();
-    
-    // Print folders to folder listing object
-    for( TInt i = 0; i < dirList->Count(); i++ )
-        {
-        const TEntry entry = ( *dirList )[i];
-        
-        fullName.Copy( aPathName );
-        fullName.Append( entry.iName );
-        fullName.Append( KPathDelimiter );
-        
-        // show path if not exluded
-        TBool proceed = !IsExludedPath( fullName );
-        if ( proceed )
-            {
-            PrintFolderL( aBuffer, offset, fullName, memType, entry );
-            }
-        }
-    CleanupStack::PopAndDestroy( fullNameBuf );
-    CleanupStack::PopAndDestroy( dirList );
-    
-    LOGGER_WRITE("Print files");
-    // Print files to folder listing object
-    for( TInt j = 0; j < entryList->Count(); j++ )
-        {
-        const TEntry entry = ( *entryList )[j];
-        PrintFileL( aBuffer, offset, entry );
-        }
-    LOGGER_WRITE("files printed");
-    //Write the end of XML
-    aBuffer->ExpandL( offset, KSConXmlFolderListEnd().Length() );
-    aBuffer->Write( offset, KSConXmlFolderListEnd );
-    aBuffer->Compress();
-    
-    CleanupStack::PopAndDestroy( entryList );
-
-    LOGGER_WRITE_1( "CSConFsHandler::ParseFolderListL() : returned %d", err );
-    return err;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CSConFsHandler::PrintFolderL
-// Prints folder entry to folder listing object
-// -----------------------------------------------------------------------------
-//
-void CSConFsHandler::PrintFolderL( CBufFlat* aBuffer, TInt& aOffset, const TDesC& aFullPath,
-                    const TDesC8& aMemType, const TEntry& aFolderEntry )
-    {
-    TRACE_FUNC_ENTRY;
-    // initialize Localizer
-    iLocalizer->SetFullPath( aFullPath );
-    
-    TBool dataPath( EFalse );
-    if ( aFullPath.CompareF( PathInfo::PhoneMemoryRootPath() ) == 0 ) // datapath
-        {
-        // printable folder is C:\Data (Localized)
-        dataPath = ETrue;
-        }
-    
-    // print foldername
-    aBuffer->ExpandL( aOffset, KSConXmlFolderNameBegin().Length() );
-    aBuffer->Write( aOffset, KSConXmlFolderNameBegin );
-    aOffset += KSConXmlFolderNameBegin().Length();
-    
-    HBufC8* folderBuf = HBufC8::NewLC( KMaxFileName );
-    TPtr8 folderName = folderBuf->Des();
-    User::LeaveIfError( 
-        CnvUtfConverter::ConvertFromUnicodeToUtf8( folderName, aFolderEntry.iName ) );
-    
-    //Replace special characters
-    ReplaceSpecialChars( folderName );
-
-    aBuffer->ExpandL( aOffset, folderName.Length() );
-    aBuffer->Write( aOffset, folderName );
-    aOffset += folderName.Length();
-    
-    CleanupStack::PopAndDestroy( folderBuf );
-    
-    // print modified time
-    TBuf<KSConDateMaxLength> modifiedTime;
-    TTime time = aFolderEntry.iModified;
-    time.FormatL( modifiedTime, KSConXmlDate );
-    
-    TBuf8<KSConDateMaxLength> modifiedTime8;
-    User::LeaveIfError( 
-        CnvUtfConverter::ConvertFromUnicodeToUtf8( modifiedTime8, modifiedTime ) );
-    
-    aBuffer->ExpandL( aOffset, KSConXmlModified().Length() );
-    aBuffer->Write( aOffset, KSConXmlModified );
-    aOffset += KSConXmlModified().Length();
-    
-    aBuffer->ExpandL( aOffset, modifiedTime8.Length() );
-    aBuffer->Write( aOffset, modifiedTime8 );
-    aOffset += modifiedTime8.Length();
-    
-    // print attributes
-    aBuffer->ExpandL( aOffset, KSConXmlUserAttributes().Length() );
-    aBuffer->Write( aOffset, KSConXmlUserAttributes );
-    aOffset += KSConXmlUserAttributes().Length();
-    
-    // Add user-perm info
-    if( aFolderEntry.IsReadOnly() )
-        {
-        aBuffer->ExpandL( aOffset, 
-            KSConXmlUserEntryReadOnly().Length() );
-        aBuffer->Write( aOffset, KSConXmlUserEntryReadOnly );
-        aOffset += KSConXmlUserEntryReadOnly().Length();
-        }
-    else if( iLocalizer->IsLocalized() || dataPath ) // delete disabled
-        {
-        aBuffer->ExpandL( aOffset, 
-            KSConXmlUserEntryDrive().Length() );
-        aBuffer->Write( aOffset, KSConXmlUserEntryDrive );
-        aOffset += KSConXmlUserEntryDrive().Length();
-        }
-    else
-        {
-        aBuffer->ExpandL( aOffset, 
-            KSConXmlUserEntryArchive().Length() );
-        aBuffer->Write( aOffset, KSConXmlUserEntryArchive );
-        aOffset += KSConXmlUserEntryArchive().Length();
-        }
-    
-    
-    // print memory type
-    aBuffer->ExpandL( aOffset, KSConXmlMemoryType().Length() );
-    aBuffer->Write( aOffset, KSConXmlMemoryType );
-    aOffset += KSConXmlMemoryType().Length();
-    
-    aBuffer->ExpandL( aOffset, aMemType.Length() );
-    aBuffer->Write( aOffset, aMemType );
-    aOffset += aMemType.Length();
-    
-    // print label if exists
-    if( iLocalizer->IsLocalized() )
-        {
-        //get localized folder name
-        HBufC8* labelBuf = 
-            CnvUtfConverter::ConvertFromUnicodeToUtf8L( iLocalizer->LocalizedName() );
-        CleanupStack::PushL( labelBuf );
-        TPtrC8 label = labelBuf->Des();
-        //memory label
-        aBuffer->ExpandL( aOffset, 
-            KSConXmlMemoryLabel().Length() );
-        aBuffer->Write( aOffset, KSConXmlMemoryLabel );
-        aOffset += KSConXmlMemoryLabel().Length();
-        
-        aBuffer->ExpandL( aOffset, label.Length() );
-        aBuffer->Write( aOffset, label );
-        aOffset += label.Length();
-        
-        CleanupStack::PopAndDestroy( labelBuf );
-        }
-    if ( dataPath ) // datapath
-        {
-        //memory label
-        aBuffer->ExpandL( aOffset, 
-            KSConXmlMemoryLabel().Length() );
-        aBuffer->Write( aOffset, KSConXmlMemoryLabel );
-        aOffset += KSConXmlMemoryLabel().Length();
-        
-        aBuffer->ExpandL( aOffset, iDataPathName.Length() );
-        aBuffer->Write( aOffset, iDataPathName );
-        aOffset += iDataPathName.Length();
-        }
-    // print ending
-    aBuffer->ExpandL( aOffset, KSConXmlFileEnd().Length() );
-    aBuffer->Write( aOffset, KSConXmlFileEnd );
-    aOffset += KSConXmlFileEnd().Length();
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFsHandler::PrintFileL
-// Prints file entry to folder listing object
-// -----------------------------------------------------------------------------
-//
-void CSConFsHandler::PrintFileL( CBufFlat* aBuffer, TInt& aOffset, const TEntry& aFileEntry )
-    {
-    LOGGER_WRITE_1("CSConFsHandler::PrintFileL, filename: %S", &aFileEntry.iName );
-    HBufC8* fileBuf = HBufC8::NewLC( KMaxFileName );
-    TPtr8 fileName = fileBuf->Des();
-        
-    User::LeaveIfError( 
-        CnvUtfConverter::ConvertFromUnicodeToUtf8( fileName, aFileEntry.iName ) );
-
-    //Replace special characters
-    ReplaceSpecialChars( fileName );
-        
-    // print filename
-    aBuffer->ExpandL( aOffset, KSConXmlFileNameBegin().Length() );
-    aBuffer->Write( aOffset, KSConXmlFileNameBegin );
-    aOffset += KSConXmlFileNameBegin().Length();
-
-    aBuffer->ExpandL( aOffset, fileName.Length() );
-    aBuffer->Write( aOffset, fileName );
-    aOffset += fileName.Length();
-
-    // print size
-    aBuffer->ExpandL( aOffset, KSConXmlSize().Length() );
-    aBuffer->Write( aOffset, KSConXmlSize );
-    aOffset += KSConXmlSize().Length();
-
-    fileName.Delete( 0, fileName.Length() ); // re-use fileName descriptor
-    fileName.AppendNum( aFileEntry.iSize );
-    aBuffer->ExpandL( aOffset, fileName.Length() );
-    aBuffer->Write( aOffset, fileName );
-    aOffset += fileName.Length();
-    
-    CleanupStack::PopAndDestroy( fileBuf );
-
-    // print modified
-    TBuf<KSConDateMaxLength> modifiedTime;
-    TTime time = aFileEntry.iModified;
-    time.FormatL( modifiedTime, KSConXmlDate );
-    
-    TBuf8<KSConDateMaxLength> modifiedTime8;
-    User::LeaveIfError( 
-        CnvUtfConverter::ConvertFromUnicodeToUtf8( modifiedTime8, modifiedTime ) );
-    
-    
-    aBuffer->ExpandL( aOffset, KSConXmlModified().Length() );
-    aBuffer->Write( aOffset, KSConXmlModified );
-    aOffset += KSConXmlModified().Length();
-    
-    aBuffer->ExpandL( aOffset, modifiedTime8.Length() );
-    aBuffer->Write( aOffset, modifiedTime8 );
-    aOffset += modifiedTime8.Length();
-
-    // attributes
-    aBuffer->ExpandL( aOffset, KSConXmlUserAttributes().Length() );
-    aBuffer->Write( aOffset, KSConXmlUserAttributes );
-    aOffset += KSConXmlUserAttributes().Length();
-
-    if( aFileEntry.IsSystem() )
-        {
-        aBuffer->ExpandL( aOffset, 
-            KSConXmlUserEntryReadOnly().Length() );
-        aBuffer->Write( aOffset, KSConXmlUserEntryReadOnly );
-        aOffset += KSConXmlUserEntryReadOnly().Length();
-        }
-    else if( aFileEntry.IsReadOnly() )
-        {
-        LOGGER_WRITE("was readonly" );
-        aBuffer->ExpandL( aOffset, 
-            KSConXmlUserEntryReadOnly().Length() );
-        aBuffer->Write( aOffset, KSConXmlUserEntryReadOnly );
-        aOffset += KSConXmlUserEntryReadOnly().Length();
-        }
-    else
-        {
-        aBuffer->ExpandL( aOffset, 
-            KSConXmlUserEntryArchive().Length() );
-        aBuffer->Write( aOffset, KSConXmlUserEntryArchive );
-        aOffset += KSConXmlUserEntryArchive().Length();
-        }
-    
-
-    //Word document
-    if ( aFileEntry.iType.IsPresent( KSConWordUid ) ||
-            aFileEntry.iName.Find( KSConEpocWordExt ) == aFileEntry.iName.Length() - 4 )
-        {
-        aBuffer->ExpandL( aOffset, KSConXmlType().Length() );
-        aBuffer->Write( aOffset, KSConXmlType );
-        aOffset += KSConXmlType().Length();
-        
-        aBuffer->ExpandL( aOffset, KSConXmlTypeWord().Length() );
-        aBuffer->Write( aOffset, KSConXmlTypeWord );
-        aOffset += KSConXmlTypeWord().Length();
-        }
-    //Sheet document
-    else if ( aFileEntry.iType.IsPresent( KSConSheetUid ) ||
-            aFileEntry.iName.Find( KSConEpocSheetExt ) == aFileEntry.iName.Length() - 4 )
-        {
-        aBuffer->ExpandL( aOffset, KSConXmlType().Length() );
-        aBuffer->Write( aOffset, KSConXmlType );
-        aOffset += KSConXmlType().Length();
-        
-        aBuffer->ExpandL( aOffset, KSConXmlTypeSheet().Length() );
-        aBuffer->Write( aOffset, KSConXmlTypeSheet );
-        aOffset += KSConXmlTypeSheet().Length();
-        }
-
-    aBuffer->ExpandL( aOffset, KSConXmlFileEnd().Length() );
-    aBuffer->Write( aOffset, KSConXmlFileEnd );
-    aOffset += KSConXmlFileEnd().Length();
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFsHandler::GetFileObjectL( CObexFileObject*& aFileObject, 
-// const TPtrC aPathName, const TPtrC aFileName )
-// Gets a file object
-// -----------------------------------------------------------------------------
-//
-TInt CSConFsHandler::GetFileObjectL( CObexFileObject*& aFileObject, 
-                                const TPtrC aPathName, const TPtrC aFileName )
-    {
-    TRACE_FUNC_ENTRY;
-    LOGGER_WRITE_2( "CSConFsHandler::GetFileObjectL aFileName =  %S aPathName = %S", &aFileName, &aPathName );
-
-    TInt ret( KErrNone );
-    
-    if( ( aPathName.Length() == 0 || aFileName.Length() == 0 ) && 
-    !( aFileName==KPhoneBookIrMCL2Request || 
-    aFileName==KInfoLogIrMCL2Request ) )
-        {
-        return KErrArgument;
-        }
-
-    if( aPathName.Length() + aFileName.Length() > KMaxFileName )
-        {
-        return KErrAbort;
-        }
-
-    HBufC* pathBuf = HBufC::NewLC( KMaxFileName );
-    TPtr pathBufPtr = pathBuf->Des();
-
-    /*These modifiactions are mean to catch an IrMC L2 request. 
-    If the request is made, then the requested phonebook file and
-    info log -file are created. Path and filename is also changed 
-    to point to these created files.*/
-    if( aFileName == KPhoneBookIrMCL2Request || 
-    aFileName == KInfoLogIrMCL2Request )
-        {
-        LOGGER_WRITE( "CSConFsHandler: IrMC L2 request!" );
-        TInt err;
-        TInt status;
-        TInt contactsSaved = 0;
-        RCntParserServer cntParserServer;
-
-        err = cntParserServer.Connect();
-        if( err != KErrNone )
-            {
-            LOGGER_WRITE( "CSConFsHandler: Cannot connect to the cntparserserver, ABORT!" );
-
-            CleanupStack::PopAndDestroy( pathBuf );
-            return KErrAbort;
-            }
-
-        LOGGER_WRITE( "CSConFsHandler: Time to call CreateIrMCL2PhoneBook" );
-        TBool force = ( aFileName == KInfoLogIrMCL2Request );
-        status=cntParserServer.CreateIrMCL2PhoneBook( KMaximumNumberOfContacts,
-         force );
-        LOGGER_WRITE_1( "CntParserServer.CreateIrMCL2PhoneBook returned %d", status );
-         
-        //Check how many vcards were saved
-        contactsSaved = cntParserServer.ContactsSaved();    
-        LOGGER_WRITE_1( "CntParserServer.ContactsSaved returned %d", contactsSaved );
-
-        err = cntParserServer.Disconnect();
-        LOGGER_WRITE_1( "CntParserServer.Disconnect() %d", err );
-        if( err != KErrNone )
-            {
-            CleanupStack::PopAndDestroy( pathBuf );
-            return KErrAbort;
-            }
-        //save info.log, if pb.vcf has changed (Note: KPBNotUpdated is returned
-        // if no changes made to pb.vcf)
-        if( status == KErrNone )    
-            {
-            LOGGER_WRITE( "CSConFsHandler: Create info.log" );
-
-            CCntParserInfoLog* infoLog=CCntParserInfoLog::NewL();
-            CleanupStack::PushL( infoLog );
-            //see KMaximumNumberOfContacts for more details
-            infoLog->SetMaximumRecords( contactsSaved ); 
-            infoLog->SetTotalRecords( contactsSaved );
-            TFileName privatepath( K_C_ROOT );
-            privatepath.Append( KInfoLogIrMCL2File );
-            infoLog->SaveToFileL( privatepath );
-            CleanupStack::PopAndDestroy( infoLog );
-            }
-
-        if( aFileName == KInfoLogIrMCL2Request )
-            {
-            //Changes filename and path to info.log
-            pathBufPtr.Copy( KInfoLogPathAndFileName ); 
-            }
-        else
-            {
-            //Changes filename and path to pb.vcf
-            pathBufPtr.Copy( KPbPathAndFileName );  
-            }
-        }       
-    else
-        {
-        pathBufPtr.Copy( aPathName );
-        pathBufPtr.Append( aFileName );         
-        }
-    
-    LOGGER_WRITE( "CSConFsHandler::GetFileObjectL() : aFileObject->InitFromFileL( pathBufPtr )" );
-    TRAP( ret, aFileObject->InitFromFileL( pathBufPtr ) );
-    LOGGER_WRITE( "CSConFsHandler::GetFileObjectL() : aFileObject->InitFromFileL( pathBufPtr ) ok" );
-
-    CleanupStack::PopAndDestroy( pathBuf );
-
-    LOGGER_WRITE_1( "CSConFsHandler::GetFileObjectL( CObexFileObject*& aFileObject, const TPtrC aPathName, const TPtrC aFileName ) : returned %d", ret );
-    return ret;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFsHandler::SaveFileObjectL( const TPtrC aFullPathName, const TTime aTime,
-// const TPtrC aTempFileName )
-// Stores a file object
-// -----------------------------------------------------------------------------
-//
-TInt CSConFsHandler::SaveFileObjectL( const TPtrC aFullPathName, 
-                        const TTime aTime, const TPtrC aTempFileName )
-    {
-    TRACE_FUNC_ENTRY;
-    LOGGER_WRITE_2( "CSConFsHandler::SaveFileObjectL aFullPathName = %S aTempFileName = %S", &aFullPathName, &aTempFileName );
-
-    TInt ret( KErrNone );
-    
-    if( aFullPathName.Length() == 0 )
-        {
-        iFs.Delete( aTempFileName );
-        return KErrPathNotFound;
-        }
-
-    ret = ValidateFileName( aFullPathName );
-        
-    if( ret == KErrNone )
-        {
-        TUint attr;
-        TInt err = iFs.Att( BaflUtils::DriveAndPathFromFullName(aFullPathName), attr );
-        if ( err == KErrNone && attr & KEntryAttReadOnly )
-            {
-            // folder is read only, permission denied
-            iFs.Delete( aTempFileName );
-            ret = KErrAccessDenied;
-            }
-        else if( !BaflUtils::FileExists( iFs, aFullPathName ) ) 
-            {
-            // file does not exist, rename.
-            ret = iFs.Rename( aTempFileName, aFullPathName );
-
-            if( ret == KErrNone )
-                {
-                ret = iFs.SetModified( aFullPathName, aTime );
-                ret = KErrNone;
-                }
-            else
-                {
-                iFs.Delete( aTempFileName );
-                }
-            }
-        else
-            {
-            LOGGER_WRITE( "CSConFsHandler::SaveFileObjectL() file exists. replace" );
-            // file exists. Replace if not read-only file.
-            TUint attr;
-            ret = iFs.Att( aFullPathName, attr );
-            // Check permissions
-            if( ret == KErrNone && ( attr == KEntryAttNormal || 
-            attr == KEntryAttArchive ) && !(attr & KEntryAttReadOnly) )
-                {
-                ret = iFs.Replace( aTempFileName, aFullPathName );
-                LOGGER_WRITE_1( "CSConFsHandler::SaveFileObjectL() iFs.Replace ret %d", ret);
-                //Set correct time stamp
-                if( ret == KErrNone )
-                    {
-                    ret = iFs.SetModified( aFullPathName, aTime );
-                    ret = KErrNone;
-                    }
-                else
-                    {
-                    iFs.Delete( aTempFileName );
-                    }
-                }
-            else
-                {
-                LOGGER_WRITE( "CSConFsHandler::SaveFileObjectL() no permissions" );
-                iFs.Delete( aTempFileName );
-                ret = KErrAccessDenied;
-                }
-            }   
-        }
-    else
-        {
-        iFs.Delete( aTempFileName );
-        }
-    
-    LOGGER_WRITE_1( "CSConFsHandler::SaveFileObjectL() : returned %d", ret );
-    return ret;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFsHandler::ValidateFileName( const TPtrC aName )
-// Validates the file name
-// -----------------------------------------------------------------------------
-//
-TInt CSConFsHandler::ValidateFileName( const TPtrC aName )
-    {
-    TInt ret( KErrNone );
-
-    if( !iFs.IsValidName( aName ) )
-        {
-        ret = KErrBadName;
-        }
-
-    LOGGER_WRITE_1( "CSConFsHandler::ValidateFileName( const TPtrC aName ) : returned %d", ret  );
-    return ret;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFsHandler::CreateFolderL( const TPtrC aFolderPath )
-// Creates a folder
-// -----------------------------------------------------------------------------
-//
-TInt CSConFsHandler::CreateFolderL( const TPtrC aFolderPath )
-    {
-    TRACE_FUNC_ENTRY;
-    
-    TInt ret( KErrNone );
-    
-    if( aFolderPath.Length() == 0 )
-        {
-        return KErrArgument;
-        }
-    if( aFolderPath.Length() > KMaxPath )
-        {
-        return KErrAbort;
-        }
-    if( BaflUtils::PathExists( iFs, aFolderPath ) )
-        {
-        return KErrAlreadyExists;
-        }
-    // get restore mode
-    TBool restoreInProgress( EFalse );
-    RProperty backupProperty;
-    TInt burState( 0 );
-    TInt burErr = backupProperty.Get( KUidSystemCategory, conn::KUidBackupRestoreKey, burState ); 
-    const conn::TBURPartType partType = 
-        static_cast< conn::TBURPartType >( burState & conn::KBURPartTypeMask );
-    if( burErr == KErrNone &&
-     ( partType == conn::EBURRestorePartial || partType == conn::EBURRestoreFull ) )
-        {
-        // restore mode
-        LOGGER_WRITE( "CSConFsHandler::CreateFolderL() restore mode" );
-        restoreInProgress = ETrue;
-        }
-    
-    // check permissions if not restore mode
-    if ( !restoreInProgress )
-        {
-        if ( IsExludedPath( aFolderPath ) )
-            {
-            // user has no access to this folder
-            LOGGER_WRITE( "CSConFsHandler::CreateFolderL() KErrAccessDenied" );
-            return KErrAccessDenied;
-            }
-        
-        // user can create whole folder path at once and we need to check that
-        // user has permission to create folders. We need to find first folder that 
-        // should be created, and see if parent folder has read-only permission.
-        
-        HBufC* fullPath = HBufC::NewLC( KMaxFileName );
-        TPtr fullPathPtr = fullPath->Des();
-    
-        fullPathPtr.Copy(aFolderPath);
-        TBool parentFound(EFalse);
-        LOGGER_WRITE( "CSConFsHandler::CreateFolder() start loop" );
-        TInt err(KErrNone);
-        while (!parentFound && err==KErrNone)
-            {
-            err = GetParentFolder( fullPathPtr, fullPathPtr );
-            if( err == KErrNone )
-                {
-                if (BaflUtils::PathExists( iFs, fullPathPtr ))
-                    {
-                    parentFound = ETrue;
-                    TUint attr;
-                    ret = iFs.Att( fullPathPtr, attr );
-                    if ( ret == KErrNone &&  (attr & KEntryAttReadOnly || attr & KEntryAttSystem) )
-                        {
-                        // parent folder is read-only
-                        LOGGER_WRITE( "CSConFsHandler::CreateFolderL() KErrAccessDenied" );
-                        err = KErrAccessDenied;
-                        }
-                    }
-                }
-            }
-        
-        CleanupStack::PopAndDestroy( fullPath );
-        if ( err == KErrAccessDenied )
-            {
-            return KErrAccessDenied;
-            }
-        }
-    
-    ret = iFs.MkDirAll( aFolderPath );
-    LOGGER_WRITE_1( "CSConFsHandler::CreateFolderL( const TPtrC aFolderPath ) : returned %d", ret );
-    return ret;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFsHandler::DeleteObjectL( const TPtrC aFullPath )
-// Removes a folder or a file
-// -----------------------------------------------------------------------------
-//
-TInt CSConFsHandler::DeleteObjectL( const TPtrC aFullPath )
-    {
-    TRACE_FUNC_ENTRY;
-    LOGGER_WRITE_1("aFullPath: %S", &aFullPath);
-    TInt ret( KErrNone );
-    
-    if( aFullPath.Length() == 0 )
-        {
-        return KErrArgument;
-        }
-    
-    if( aFullPath.Length() > KMaxFileName )
-        {
-        return KErrAbort;
-        }
-    
-    TUint attr;
-    // get source folder permissions.
-    ret = iFs.Att( BaflUtils::DriveAndPathFromFullName(aFullPath), attr );
-    if ( ret == KErrNone && (attr & KEntryAttReadOnly || attr & KEntryAttSystem ) )
-        {
-        return KErrAccessDenied;
-        }
-    
-    
-    // Check file/folder permissions
-    ret = iFs.Att( aFullPath, attr );
-    if ( ret == KErrNone && ( attr & KEntryAttReadOnly || attr & KEntryAttSystem ) )
-        {
-        return KErrAccessDenied;
-        }
-    
-    TBool isFolder(EFalse);
-    ret = BaflUtils::IsFolder( iFs, aFullPath, isFolder );
-    
-    if( isFolder && ret == KErrNone )
-        {
-        HBufC* fullPath = HBufC::NewLC( KMaxFileName );
-        TPtr fullPathPtr = fullPath->Des();
-        
-        fullPathPtr.Copy( aFullPath );
-        //check if there is a slash at the end
-        if( fullPathPtr.LocateReverse( KPathDelimiter ) != fullPathPtr.Length()-1 )
-            {
-            fullPathPtr.Append( KPathDelimiter );
-            }
-        
-        if ( !IsFolderVisible( fullPathPtr ) )
-            {
-            LOGGER_WRITE("folder was not visible");
-            CleanupStack::PopAndDestroy( fullPath );
-            return KErrNotFound;
-            }
-        else if ( !IsFolderDeletable( fullPathPtr ) )
-            {
-            LOGGER_WRITE("folder was not deletable");
-            CleanupStack::PopAndDestroy( fullPath );
-            return KErrAccessDenied;
-            }
-        
-        ret = iFs.RmDir( fullPathPtr );
-        LOGGER_WRITE_1("iFs.RmDir err: %d", ret);
-        //delete non-empty folder
-        if( ret != KErrNone )
-            {
-            CFileMan* fileMan = CFileMan::NewL( iFs );
-            CleanupStack::PushL( fileMan );
-            // if directory contains read-only files, those files are not deleted
-            // and KErrAccessDenied is returned.
-            ret = fileMan->RmDir( fullPathPtr );
-            LOGGER_WRITE_1("fileMan->RmDir err: %d", ret);
-            CleanupStack::PopAndDestroy( fileMan ); //fileman
-            }
-        if( ret == KErrNone )
-            {
-            // check is delete operation really succesfully completed
-            if( BaflUtils::PathExists( iFs, fullPathPtr ) )
-                {
-                // Folder still exist, return error
-                // KErrBadName mapped to precondition failed error.
-                ret = KErrBadName;
-                }
-            }
-        CleanupStack::PopAndDestroy( fullPath ); //fullPath
-        }
-    else if (ret == KErrNone)
-        {
-        // deleting file
-        if ( IsExludedPath( aFullPath ) )
-            {
-            LOGGER_WRITE("Cannot delete from specified folder, return KErrAccessDenied");
-            ret = KErrAccessDenied;
-            }
-        else
-            {
-            ret = iFs.Delete( aFullPath );
-            }
-        }
-    
-    
-    
-    LOGGER_WRITE_1( "CSConFsHandler::DeleteObjectL() : returned %d", ret );
-    return ret;
-    }
-    
-    
-// -----------------------------------------------------------------------------
-// CSConFsHandler::CopyOrMoveFile()
-// Copy or Move file/folder.
-// -----------------------------------------------------------------------------
-//
-void CSConFsHandler::DoCopyOrMoveFileL( const TDesC& aSource, const TDesC& aTarget,
-                                 const TBool aUseCopyCommand)
-    {
-    TRACE_FUNC_ENTRY;
-    TInt lastError(KErrNone);
-    TBool isFolder;
-    
-    if( !iFs.IsValidName( aSource ) || !iFs.IsValidName( aTarget ) )
-        {
-        LOGGER_WRITE( "CSConFsHandler::DoCopyOrMoveFileL : Not valid name" );
-        User::Leave( KErrBadName );
-        }
-    
-    // will leave if source (file/folder) does not exists.
-    User::LeaveIfError( BaflUtils::IsFolder(iFs, aSource, isFolder ) );
-    
-    // Check source file/folder permissions
-    TUint attr;
-    User::LeaveIfError( iFs.Att( aSource, attr ) );
-    if ( !aUseCopyCommand && (attr & KEntryAttReadOnly || attr & KEntryAttSystem ) )
-        {
-        LOGGER_WRITE( "CSConFsHandler::DoCopyOrMoveFileL : no permissions, abort" );
-        User::Leave(  KErrAccessDenied );
-        }
-    
-    HBufC* sourceFolderBuf = HBufC::NewLC( KMaxFileName );
-    TPtr sourceFolder = sourceFolderBuf->Des();
-    HBufC* targetFolderBuf = HBufC::NewLC( KMaxFileName );
-    TPtr targetFolder = targetFolderBuf->Des();
-    
-    sourceFolder.Copy( BaflUtils::DriveAndPathFromFullName(aSource) );
-    targetFolder.Copy( BaflUtils::DriveAndPathFromFullName(aTarget) );
-    
-    
-    // check disk space
-    TInt driveNumber;
-    
-    User::LeaveIfError( iFs.CharToDrive(targetFolder[0], driveNumber) );
-    
-    TVolumeInfo volumeInfo;
-    TInt err = iFs.Volume(volumeInfo, driveNumber);
-    if( err != KErrNone )
-        {
-        LOGGER_WRITE_1( "CSConFsHandler::DoCopyOrMoveFileL : iFs.Volume err %d", err );
-        User::Leave( KErrNotFound );
-        }
-    
-    if( !isFolder )
-        {
-        // file handling routines
-        if( !IsFolderVisible( aSource ) )
-            {
-            LOGGER_WRITE( "CSConFsHandler::DoCopyOrMoveFileL : Current folder doesn't exist" );
-            User::Leave( KErrNotFound );
-            }
-        else if( !aUseCopyCommand && IsFolderReadOnly( sourceFolder ) )
-            {
-            LOGGER_WRITE( "CSConFsHandler::DoCopyOrMoveFileL : folder read only, abort" );
-            User::Leave( KErrAccessDenied );
-            }
-            
-        // source file is ok, check target
-
-        if( !IsFolderVisible( targetFolder ) )
-            {
-            LOGGER_WRITE( "CSConFsHandler::DoCopyOrMoveFileL : Current target file/folder doesn't exist" );
-            User::Leave( KErrNotFound );
-            }
-        else if( IsFolderReadOnly( targetFolder ) )
-            {
-            LOGGER_WRITE( "CSConFsHandler::DoCopyOrMoveFileL : folder read only, abort" );
-            User::Leave( KErrAccessDenied );
-            }
-        else
-            {
-            TBool diskFull( EFalse );
-            TEntry fileEntry;
-            User::LeaveIfError( iFs.Entry( aSource, fileEntry ) );
-            if ( SysUtil::DiskSpaceBelowCriticalLevelL( &iFs, fileEntry.iSize, driveNumber ) )
-                {
-                diskFull = ETrue;
-                }
-            
-            // target ok, ready to copy or move
-            CFileMan* fileMan=CFileMan::NewL(iFs);
-            CleanupStack::PushL(fileMan);
-            
-            if( aUseCopyCommand )
-                {
-                if( diskFull )
-                    {
-                    LOGGER_WRITE( "CSConFsHandler::DoCopyOrMoveFileL : disk full" );
-                    User::Leave( KErrDiskFull );
-                    }
-                LOGGER_WRITE( "CSConFsHandler::DoCopyOrMoveFileL : Copy file" );
-                User::LeaveIfError( fileMan->Copy( aSource, aTarget, 0 ) );
-                }
-            else
-                {
-                if( aSource.Find( aTarget.Left(2) ) == KErrNone)
-                    {
-                    // same drive
-                    LOGGER_WRITE( "CSConFsHandler::DoCopyOrMoveFileL : Rename file" );
-                    User::LeaveIfError( fileMan->Rename( aSource, aTarget, 0 ) );
-                    }
-                else
-                    {
-                    // different drive
-                    if( diskFull )
-                        {
-                        LOGGER_WRITE( "CSConFsHandler::DoCopyOrMoveFileL : disk full" );
-                        User::Leave( KErrDiskFull );
-                        }
-                    LOGGER_WRITE( "CSConFsHandler::DoCopyOrMoveFileL : copy file" );
-                    User::LeaveIfError( fileMan->Copy( aSource, aTarget, 0 ) );
-
-                    LOGGER_WRITE( "CSConFsHandler::DoCopyOrMoveFileL : delete original" );
-                    User::LeaveIfError( fileMan->Delete( aSource, 0 ) );
-                    }
-                }
-            CleanupStack::PopAndDestroy( fileMan ); // fileMan
-            }
-        }
-    else
-        {
-        // set trailing backslash after the final directory name
-        HBufC* tmpSourceBuf = HBufC::NewLC( KMaxFileName );
-        TPtr tmpSourcePtr = tmpSourceBuf->Des();
-        HBufC* tmpTargetBuf = HBufC::NewLC( KMaxFileName );
-        TPtr tmpTargetPtr = tmpTargetBuf->Des();
-        
-        tmpSourcePtr.Copy( aSource );
-        if( tmpSourcePtr.LocateReverse( KPathDelimiter ) != tmpSourcePtr.Length()-1 )
-            {
-            tmpSourcePtr.Append( KPathDelimiter );
-            }
-
-        tmpTargetPtr.Copy( aTarget );
-        if( tmpTargetPtr.LocateReverse( KPathDelimiter ) != tmpTargetPtr.Length()-1 )
-            {
-            tmpTargetPtr.Append( KPathDelimiter );
-            }
-        
-        if( !IsFolderVisible( tmpSourcePtr ) )
-            {
-            LOGGER_WRITE( "CSConFsHandler::DoCopyOrMoveFileL : Current folder doesn't exist" );
-            User::Leave( KErrNotFound );
-            }
-        else if( !aUseCopyCommand && IsFolderReadOnly( sourceFolder ) )
-            {
-            LOGGER_WRITE( "CSConFsHandler::DoCopyOrMoveFileL : sourcefolder read only, abort" );
-            User::Leave( KErrAccessDenied );
-            }
-        else if( !aUseCopyCommand && !IsFolderDeletable( tmpSourcePtr ) )
-            {
-            LOGGER_WRITE( "CSConFsHandler::DoCopyOrMoveFileL : source folder read only, abort" );
-            User::Leave( KErrAccessDenied );
-            }
-        else if( !IsFolderVisible( targetFolder ) )
-            {
-            LOGGER_WRITE( "CSConFsHandler::DoCopyOrMoveFileL : Current target base-folder doesn't exist" );
-            User::Leave( KErrNotFound );
-            }
-        else if( IsFolderReadOnly( targetFolder) )
-            {
-            LOGGER_WRITE( "CSConFsHandler::DoCopyOrMoveFileL : target folder read only, abort" );
-            User::Leave( KErrAccessDenied );
-            }
-        else if( BaflUtils::FolderExists(iFs, tmpTargetPtr ) )
-            {
-            LOGGER_WRITE( "CSConFsHandler::DoCopyOrMoveFileL : target folder exist, abort" );
-            User::Leave( KErrAlreadyExists );
-            }
-        else if ( tmpTargetPtr.Find( tmpSourcePtr ) == KErrNone )
-            {
-            LOGGER_WRITE( "CSConFsHandler::DoCopyOrMoveFileL : conflict, abort" );
-            User::Leave( KErrInUse );
-            }
-        else
-            {
-            // is folder empty
-            TBool emptyFolder( ETrue );
-            CDir *entryList = 0;
-            CDir *dirList = 0;
-
-            User::LeaveIfError( iFs.GetDir( tmpSourcePtr, KEntryAttNormal, EDirsAnyOrder, 
-            entryList, dirList ) );
-            if( entryList->Count() > 0 || dirList->Count() > 0 )
-                {
-                emptyFolder = EFalse;
-                }
-                
-            delete entryList;
-            delete dirList;
-            
-            // get folder size
-            TBool diskFull( EFalse );
-            if( !emptyFolder )
-                {
-                TInt64 folderSize = GetFolderSizeL(tmpSourcePtr);
-                LOGGER_WRITE_1( "CSConFsHandler::DoCopyOrMoveFileL : folderSize: %d", folderSize );
-                if ( SysUtil::DiskSpaceBelowCriticalLevelL( &iFs, folderSize, driveNumber ) )
-                    {
-                    diskFull = ETrue;
-                    }
-                }
-            
-            
-            CFileMan* fileMan = CFileMan::NewL(iFs);
-            CleanupStack::PushL(fileMan);
-    
-            // ready to copy or move
-            if( aUseCopyCommand )
-                {
-                LOGGER_WRITE( "CSConFsHandler::DoCopyOrMoveFileL : Copy folder" );
-                if( emptyFolder )
-                    {
-                    // folder is empty, can't copy folder. Create new empty folder.
-                    User::LeaveIfError( iFs.MkDir( tmpTargetPtr ) );
-                    }
-                else
-                    {
-                    // folder not empty
-                    if( diskFull )
-                        {
-                        LOGGER_WRITE( "CSConFsHandler::DoCopyOrMoveFileL : disk full" );
-                        User::Leave( KErrDiskFull );
-                        }
-                    
-                    User::LeaveIfError( 
-                     fileMan->Copy( aSource, aTarget, CFileMan::ERecurse ) ); 
-                    if( lastError == KErrNone )
-                        {
-                        lastError = fileMan->GetLastError();
-                        }
-                    }
-                
-                TUint attr;
-                TInt err = iFs.Att( tmpSourcePtr, attr );
-                if ( err == KErrNone && (attr & KEntryAttReadOnly ) )
-                    {
-                    //set read only attribute
-                    err = iFs.SetAtt( tmpTargetPtr, KEntryAttReadOnly, KEntryAttArchive );
-                    if (err != KErrNone)
-                        {
-                        // can't set attribute
-                        LOGGER_WRITE_1( "CSConFsHandler::DoCopyOrMoveFileL : iFs.SetAtt err: %d",err );
-                        }
-                    }
-                }
-            else
-                {
-                if( aSource.FindF( aTarget.Left(2) ) == KErrNone)
-                    {
-                    // same drive
-                    LOGGER_WRITE( "CSConFsHandler::DoCopyOrMoveFileL : Rename folder" );
-                    User::LeaveIfError( fileMan->Rename( aSource, aTarget, 0 ) );
-                    }
-                else
-                    {
-                    // different drive
-                    if( diskFull )
-                        {
-                        LOGGER_WRITE( "CSConFsHandler::DoCopyOrMoveFileL : disk full" );
-                        User::Leave( KErrDiskFull );
-                        }
-                    
-                    LOGGER_WRITE( "CSConFsHandler::DoCopyOrMoveFileL : Copy folder" );
-                    if( emptyFolder )
-                        {
-                        // folder is empty, can't copy empty folder. Create empty folder.
-                        User::LeaveIfError( iFs.MkDir( tmpTargetPtr ) );
-                        }
-                    else
-                        {
-                        User::LeaveIfError( 
-                         fileMan->Copy( aSource, aTarget, CFileMan::ERecurse ) );
-                        }
-                    // copy completed, delete original folder.
-                    LOGGER_WRITE( "CSConFsHandler::DoCopyOrMoveFileL : delete original" );
-                    User::LeaveIfError( fileMan->RmDir( tmpSourcePtr ) );
-                    // check was delete operation succesfully completed
-                    if( BaflUtils::PathExists( iFs, tmpSourcePtr ) )
-                        {
-                        // Folder still exist, return error
-                        lastError = KErrAccessDenied;
-                        }
-                    }
-                }
-            CleanupStack::PopAndDestroy(fileMan); // fileMan
-            }
-        CleanupStack::PopAndDestroy(tmpTargetBuf); // tmpTargetBuf
-        CleanupStack::PopAndDestroy(tmpSourceBuf); // tmpSourceBuf
-        }
-    
-    CleanupStack::PopAndDestroy( targetFolderBuf );
-    CleanupStack::PopAndDestroy( sourceFolderBuf );
-    
-    if( lastError != KErrNone )
-        {
-        LOGGER_WRITE_1( "CSConFTP::DoCopyOrMoveFileL() : lastError: %d", lastError );
-        User::Leave( lastError );
-        }
-    
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFsHandler::IsFolderVisible()
-// Check if folder can be showed
-// -----------------------------------------------------------------------------
-//
-TBool CSConFsHandler::IsFolderVisible( const TDesC& aFullPath )
-    {
-    TRACE_FUNC_ENTRY;
-    LOGGER_WRITE_1( "aFullPath: %S", &aFullPath );
-    TBool visible(EFalse);
-    
-    if( !BaflUtils::FolderExists( iFs, aFullPath ) )
-        {
-        LOGGER_WRITE( "CSConFsHandler::IsFolderVisible() notExist ret EFalse" );
-        return EFalse;
-        }
-    
-    // don't show if folder is exluded
-    visible = !IsExludedPath( aFullPath );
-    LOGGER_WRITE_1( "CSConFsHandler::IsFolderVisible() : end, ret %d", (TInt)visible );
-    return visible;
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConFsHandler::IsFolderReadOnly()
-// Check if folder is read only (system folder)
-// -----------------------------------------------------------------------------
-//
-TBool CSConFsHandler::IsFolderReadOnly( const TDesC& aFullPath ) const
-    {
-    TRACE_FUNC_ENTRY;
-    LOGGER_WRITE_1( "aFullPath: %S", &aFullPath );
-    TBool readOnly(EFalse);
-    
-    // C-drive root is read only, but there are some exceptions
-    
-    readOnly = IsExludedPath( aFullPath );
-    
-    if ( aFullPath.CompareF( K_C_ROOT ) == 0 )
-        {
-        // Root of C-drive is read-only
-		LOGGER_WRITE("Root of C-Drive is read only");
-        readOnly = ETrue;
-        }
-    
-    // Check folder permissions
-    TUint attr;
-    TInt err = iFs.Att( aFullPath, attr );
-    LOGGER_WRITE_1("iFs.Att err: %d", err);
-    if ( err == KErrNone && (attr & KEntryAttReadOnly || attr & KEntryAttSystem ) )
-        {
-        LOGGER_WRITE("Folder is readonly");
-        readOnly = ETrue;
-        }
-    
-    LOGGER_WRITE_1( "CSConFsHandler::IsFolderReadOnly() : end, ret %d", (TInt)readOnly );
-    return readOnly;
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConFsHandler::IsFolderDeletable()
-// Check if folder can be deleted. Localized folders cannot delete.
-// In C-drive folders can be deleted only from under C:\\Data\\
-// -----------------------------------------------------------------------------
-//
-TBool CSConFsHandler::IsFolderDeletable( const TDesC& aFullPath ) const
-    {
-    TRACE_FUNC_ENTRY;
-    LOGGER_WRITE_1( "aFullPath: %S", &aFullPath );
-    TBool deleteAllowed(ETrue);
-    TPath PhoneMem( PathInfo::PhoneMemoryRootPath() ); // "C:\\Data\\"
-
-    if ( aFullPath.CompareF( PhoneMem ) == 0 )
-        {
-        // C:\\Data\\
-        LOGGER_WRITE( "CSConFsHandler::IsFolderDeletable() datapath, ret EFalse" );
-        deleteAllowed = EFalse;
-        }
-    else if ( IsExludedPath( aFullPath ) )
-        {
-        deleteAllowed = EFalse;
-        }
-    
-    iLocalizer->SetFullPath( aFullPath );
-    if ( iLocalizer->IsLocalized() ) // delete disabled
-        {
-        // Cannot delete localized paths (default paths)
-        deleteAllowed = EFalse;
-        }
-    
-    LOGGER_WRITE_1( "CSConFsHandler::IsFolderDeletable() : end, ret %d", (TInt)deleteAllowed );
-    return deleteAllowed;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFsHandler::GetParentFolder( const TPtrC aFullPath, TDes& aParent)
-// Get parent folder
-// -----------------------------------------------------------------------------
-//
-TInt CSConFsHandler::GetParentFolder( const TDesC& aFullPath, TDes& aParent)
-    {
-    TRACE_FUNC_ENTRY;
-    if (aFullPath.LocateReverse(KPathDelimiter) == aFullPath.Length()-1 )
-        {
-        // remove backlash
-        aParent.Copy(aFullPath.Left(aFullPath.Length()-1));
-        }
-    else
-        {
-        aParent.Copy(aFullPath);
-        }
-    
-    TInt pos = aParent.LocateReverse(KPathDelimiter);
-    if (pos != KErrNotFound)
-        {
-        aParent.Copy(aParent.Left(pos+1));
-        LOGGER_WRITE( "CSConFsHandler::GetParentFolder : end KErrNone" );
-        return KErrNone;
-        }
-    else
-        {
-        LOGGER_WRITE_1( "CSConFsHandler::GetParentFolder : end err %d", pos);
-        return pos;
-        }
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConFsHandler::CSConFsHandler()
-// Constructor
-// -----------------------------------------------------------------------------
-//
-CSConFsHandler::CSConFsHandler( RFs& aFs ) : iFs(aFs)
-    {
-    TRACE_FUNC;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFsHandler::ConstructL()
-// Initializes member data
-// -----------------------------------------------------------------------------
-//
-void CSConFsHandler::ConstructL()
-    {
-    TRACE_FUNC_ENTRY;
-    iLocalizer = CDirectoryLocalizer::NewL();
-    
-    GetDataPathNameL();
-    TRACE_FUNC_EXIT;
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConFsHandler::GetDataPathNameL()
-// Updates the name of the data folder from a localized string
-// -----------------------------------------------------------------------------
-//
-void CSConFsHandler::GetDataPathNameL()
-    {
-    TRACE_FUNC_ENTRY;
-    //Read memory string and convert it
-    TFileName file( KSConResourceName );
-    
-    BaflUtils::NearestLanguageFile( iFs, file );
-       
-    CStringResourceReader* reader = CStringResourceReader::NewL( file );
-    CleanupStack::PushL( reader );
-    
-    CnvUtfConverter::ConvertFromUnicodeToUtf8( iDataPathName, 
-        reader->ReadResourceString( R_SECON_DATA_FOLDER ) );
-    
-    CleanupStack::PopAndDestroy( reader );
-    TRACE_FUNC_EXIT;
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConFsHandler::GetFolderSizeL()
-// Get folder (and subfolders) size
-// -----------------------------------------------------------------------------
-//
-TInt64 CSConFsHandler::GetFolderSizeL( const TDesC& aFullPath )
-    {
-    TRACE_FUNC_ENTRY;
-    LOGGER_WRITE_1( "aFullPath: %S", &aFullPath );
-    TInt64 totalSize(0);
-    CDir* dir( NULL );
-    
-    User::LeaveIfError( iFs.GetDir(aFullPath, KEntryAttMatchMask, ESortByName, dir) );
-    CleanupStack::PushL(dir);
-    for( TInt i=0; i<dir->Count(); ++i )
-        {
-        TEntry entry = (*dir)[i];
-        if( !entry.IsDir() )
-            {
-            // file
-            totalSize += entry.iSize;
-            }
-        else
-            {
-            // folder
-            HBufC* subfolderBuf = HBufC::NewLC( KMaxPath );
-            TPtr subfolderPtr = subfolderBuf->Des();
-            
-            subfolderPtr.Copy(aFullPath);
-            subfolderPtr.Append(entry.iName);
-            subfolderPtr.Append( KPathDelimiter );
-            
-            LOGGER_WRITE( "CSConFsHandler::GetFolderSizeL() : get subfolder size" );
-            totalSize += GetFolderSizeL( subfolderPtr );
-            CleanupStack::PopAndDestroy( subfolderBuf );
-            }
-        }
-    CleanupStack::PopAndDestroy(dir);
-    TRACE_FUNC_EXIT;
-    return totalSize;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFsHandler::ReplaceSpecialChars()
-// Replace special characters to xml compliant
-// -----------------------------------------------------------------------------
-//
-void CSConFsHandler::ReplaceSpecialChars( TDes8& aDes )
-    {
-    for( TInt i = 0; i < aDes.Length(); i++ )
-        {
-        switch( aDes[i] )
-            {
-            case '&':
-                aDes.Delete( i, 1 );
-                aDes.Insert( i, KReplace1 );
-                break;
-            case '<':
-                aDes.Delete( i, 1 );
-                aDes.Insert( i, KReplace2 );
-                break;
-            case '>':
-                aDes.Delete( i, 1 );
-                aDes.Insert( i, KReplace3 );
-                break;
-            case '"':
-                aDes.Delete( i, 1 );
-                aDes.Insert( i, KReplace4 );
-                break;
-            case '\'':
-                aDes.Delete( i, 1 );
-                aDes.Insert( i, KReplace5 );
-                break;
-            default:
-                break;
-            }
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFsHandler::IsExludedPath()
-// Some folders are exluded from user access
-// -----------------------------------------------------------------------------
-//
-TBool CSConFsHandler::IsExludedPath( const TDesC& aFullPath ) const
-    {
-    TInt exluded(ETrue);
-    LOGGER_WRITE_1( "aFullPath: %S", &aFullPath );
-    TPath mmcRoot( PathInfo::MemoryCardRootPath() );
-    if ( aFullPath.Length() == KDriveLength )
-        {
-        // root paths not exluded
-        exluded = EFalse;
-        }
-    else if ( aFullPath.FindF( K_C_ROOT ) == 0 )
-        {
-        if ( aFullPath.FindF( PathInfo::PhoneMemoryRootPath() ) == 0 )
-            {
-            // C:\\Data is visible, not exluded
-            exluded = EFalse;
-            }
-        else {
-            // other paths on C-drive are exluded
-            LOGGER_WRITE_1("CSConFsHandler::IsExludedPath() Path '%S' is not visible to user", &aFullPath);
-            exluded = ETrue;
-            }
-        }
-    // hide undesired folders from E: root level
-    else if( aFullPath.CompareF( mmcRoot ) == 0 )
-        {
-        if ( aFullPath.FindF( KSConSys ) == KDriveLength )
-            {
-            LOGGER_WRITE( "hiding mmcRoot KSConSys" );
-            exluded = ETrue;
-            }
-        else if( aFullPath.FindF( KSConResource ) == KDriveLength )
-            {
-            LOGGER_WRITE( "hiding mmcRoot KSConResource" );
-            exluded = ETrue;
-            }
-        else if( aFullPath.FindF( KSConPrivate ) == KDriveLength )
-            {
-            LOGGER_WRITE( "mmcRoot KSConPrivate" );
-            exluded = ETrue;
-            }
-        else if( aFullPath.FindF( KSConSystem ) == KDriveLength )
-            {
-            LOGGER_WRITE( "hiding mmcRoot KSConSystem" );
-            exluded = ETrue;
-            }
-        }
-    // end of E: root level handling
-    else
-        {
-        // don't exlude paths from other drives
-        exluded = EFalse;
-        }
-    return exluded;
-    }
-
-// End of file
-
-
--- a/connectivitymodules/SeCon/services/ftp/src/sconftp.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1591 +0,0 @@
-/*
-* Copyright (c) 2005-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:  File Transfer Controller implementation
-*
-*/
-
-
-// INCLUDE FILES
-
-#include <pathinfo.h>
-#include <stringresourcereader.h>
-#include <bautils.h>
-#include <driveinfo.h>
-#include <sconftp.rsg>
-#include <centralrepository.h>
-#include <sysutildomaincrkeys.h>
-
-#include "debug.h" 
-#include "sconftp.h"
-#include "sconfshandler.h"
-#include "sconinboxhandler.h"
-#include "sconconsts.h"
-
-const TInt KPackageSize = 65536;
-
-// ============================= MEMBER FUNCTIONS ===============================
-
-
-// -----------------------------------------------------------------------------
-// CreateCSConFTPL()
-// Entry to CSConFTP
-// -----------------------------------------------------------------------------
-//
-EXPORT_C CSConFTP* CreateCSConFTPL()
-    {
-    TRACE_FUNC;
-    return CSConFTP::NewL();
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFTP::NewL()
-// Two-phase constructor
-// -----------------------------------------------------------------------------
-//
-CSConFTP* CSConFTP::NewL()
-    {
-    TRACE_FUNC_ENTRY;
-    CSConFTP* self = new (ELeave) CSConFTP();
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop( self );
-    TRACE_FUNC_EXIT;
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFTP::~CSConFTP()
-// Destructor
-// -----------------------------------------------------------------------------
-//
-CSConFTP::~CSConFTP()
-    {
-    TRACE_FUNC_ENTRY;
-    delete iSConInboxHandler;
-    iSConInboxHandler = NULL;
-    delete iSConFsHandler;
-    iSConFsHandler = NULL;
-    delete iBuffer;
-    iBuffer = NULL;
-
-    iFs.Delete( iTempFileName );
-    iFs.Close();
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFTP::GetFolderObjectL( CObexBufObject*& aObjectList )
-// Gets object that contains folder listing from inbox or file system
-// -----------------------------------------------------------------------------
-//
-TInt CSConFTP::GetFolderObjectL( CObexBufObject*& aObjectList )
-    {
-    TRACE_FUNC_ENTRY;
-    
-    TInt ret( KErrNone );
-    TInt offset = 0;
-    TChar driveLetter;
-    TBuf8<KSConDriveNameLength> tmpBuf8;
-    
-    iBuffer->Reset();
-    
-    //default folder list - lists all available drives, inbox
-    if( iPathName.Length() == 0 )
-        {
-        TInt devDriveCount = 0;
-        TInt mmcDriveCount = 0;
-        
-        iBuffer->ResizeL( KSConXmlDocBegin().Length() );
-        iBuffer->Write( offset, KSConXmlDocBegin );
-        offset += KSConXmlDocBegin().Length();
-        
-        //Write all drivers to folderlisting object
-        TDriveList driveList;
-        // Get all drives that are visible to the user.
-        TInt driveCount;
-        User::LeaveIfError( DriveInfo::GetUserVisibleDrives( iFs, driveList, driveCount ) );
-        
-        for( TInt i = EDriveA; i < KMaxDrives; i++ )
-            {
-            if( driveList[i] )
-                {
-                TUint driveStatus;
-                User::LeaveIfError( DriveInfo::GetDriveStatus( iFs, i, driveStatus ) );
-                LOGGER_WRITE_1( "DriveInfo for drive: %d", i);
-
-                if( !(driveStatus & DriveInfo::EDrivePresent )
-                    || driveStatus & DriveInfo::EDriveCorrupt
-                    || (driveStatus & DriveInfo::EDriveRemote) )
-                    {
-                    LOGGER_WRITE_1( "skip drive %d", i);
-                    continue;
-                    }
-                
-                User::LeaveIfError( iFs.DriveToChar( i, driveLetter ) );
-                
-                //Letter to uppercase form.
-                driveLetter.UpperCase();
-                
-                //Folder begin
-                iBuffer->ExpandL( offset, 
-                KSConXmlFolderNameBegin().Length() );
-                iBuffer->Write( offset, KSConXmlFolderNameBegin );
-                offset += KSConXmlFolderNameBegin().Length();
-                
-                iBuffer->ExpandL( offset, KSConDriveCName().Length() );
-                
-                tmpBuf8.Delete( 0, tmpBuf8.Length() );
-                tmpBuf8.Append( driveLetter );
-                tmpBuf8.Append( KDriveDelimiter );
-                
-                iBuffer->Write( offset, tmpBuf8 );
-                offset += KSConDriveNameLength;
-                
-                //permission
-                iBuffer->ExpandL( offset, 
-                KSConXmlUserAttributes().Length() );
-                iBuffer->Write( offset, KSConXmlUserAttributes );
-                offset += KSConXmlUserAttributes().Length();
-                if( driveStatus & DriveInfo::EDriveInternal && devDriveCount==0 )
-                    {
-                    //permission always R for first internal drive
-                    iBuffer->ExpandL( offset, 
-                    KSConXmlUserEntryReadOnly().Length() );
-                    iBuffer->Write( offset, KSConXmlUserEntryReadOnly );
-                    offset += KSConXmlUserEntryReadOnly().Length();
-                    }
-                else
-                    {
-                    //permission always RW
-                    iBuffer->ExpandL( offset, 
-                    KSConXmlUserEntryDrive().Length() );
-                    iBuffer->Write( offset, KSConXmlUserEntryDrive );
-                    offset += KSConXmlUserEntryDrive().Length();
-                    }
-                
-                //memory type
-                iBuffer->ExpandL( offset, 
-                KSConXmlMemoryType().Length() );
-                iBuffer->Write( offset, KSConXmlMemoryType );
-                offset += KSConXmlMemoryType().Length();
-                if( driveStatus & DriveInfo::EDriveInternal )
-                    {
-                    LOGGER_WRITE( "DriveInfo::EDriveInternal" );
-                    // DEV type
-                    devDriveCount++;
-                    if( devDriveCount > 1 )
-                        {
-                        // DEV2
-                        TBuf8<KSConMemTypeMaxLength> memType;
-                        memType.Copy( KSConMemoryTypeDev );
-                        memType.AppendNum(devDriveCount);
-                        iBuffer->ExpandL( offset, memType.Length() );
-                        iBuffer->Write( offset, memType );
-                        offset += memType.Length();
-                        }
-                    else
-                        {
-                        // DEV
-                        iBuffer->ExpandL( offset, 
-                        KSConMemoryTypeDev().Length() );
-                        iBuffer->Write( offset, KSConMemoryTypeDev );
-                        offset += KSConMemoryTypeDev().Length();
-                        }
-                    }
-                if( driveStatus & DriveInfo::EDriveRemovable )
-                    {
-                    LOGGER_WRITE( "DriveInfo::EDriveRemovable" );
-                    // MMC type
-                    mmcDriveCount++;
-                    if( mmcDriveCount > 1 )
-                        {
-                        // MMC2
-                        TBuf8<KSConMemTypeMaxLength> memType;
-                        memType.Copy( KSConMemoryTypeMmc );
-                        memType.AppendNum(mmcDriveCount);
-                        iBuffer->ExpandL( offset, memType.Length() );
-                        iBuffer->Write( offset, memType );
-                        offset += memType.Length();
-                        }
-                    else
-                        {
-                        // MMC
-                        iBuffer->ExpandL( offset, 
-                        KSConMemoryTypeMmc().Length() );
-                        iBuffer->Write( offset, KSConMemoryTypeMmc );
-                        offset += KSConMemoryTypeMmc().Length();
-                        }
-                    }
-                
-                //memory label
-                iBuffer->ExpandL( offset, 
-                KSConXmlMemoryLabel().Length() );
-                iBuffer->Write( offset, KSConXmlMemoryLabel );
-                offset += KSConXmlMemoryLabel().Length();
-                
-                TInt err( KErrNotFound );
-                TBuf8<KMaxFileName> volumeName;
-                if( driveStatus & DriveInfo::EDriveRemovable || devDriveCount == 1 )
-                    {
-                    // get Volume name for C-drive(Phone) and E-drive(MMC)
-                    err = GetVolumeNameL( i, volumeName );
-                    }
-                else
-                    {
-                    // Get localized name for DEV2 (Mass memory)
-                    //Read memory string and convert it
-                    TFileName file( KSConResourceName );
-                    
-                    BaflUtils::NearestLanguageFile( iFs, file );
-                    
-                    CStringResourceReader* reader = CStringResourceReader::NewL( file );
-                    
-                    CnvUtfConverter::ConvertFromUnicodeToUtf8( volumeName, 
-                        reader->ReadResourceString( R_SECON_VALUE_MASS_STORAGE ) );
-                    
-                    delete reader;
-                    err = KErrNone;
-                    }
-                
-                if ( err == KErrNone )
-                    {
-                    iBuffer->ExpandL( offset, 
-                    volumeName.Length() );
-                    iBuffer->Write( offset, volumeName );
-                    offset += volumeName.Length();
-                    }
-                
-                //Write the end of filelist to folderlisting object
-                iBuffer->ExpandL( offset, KSConXmlFileEnd().Length() );
-                iBuffer->Write( offset, KSConXmlFileEnd );
-                offset += KSConXmlFileEnd().Length();
-                }
-            }
-        //Write the end of folderlist to folderlisting object
-        iBuffer->ExpandL( offset, KSConXmlFolderListEnd().Length() );
-        iBuffer->Write( offset, KSConXmlFolderListEnd );
-        iBuffer->Compress();
-        }
-    else
-        {
-        if( IsCurrentVolumeOK() )
-            {
-            ret = iSConFsHandler->ParseFolderListL( iBuffer, iPathName, iCurrentDriveTypeNumber );
-            }
-        else
-            {
-            ret = KErrNotFound;
-            }
-        }
-    
-    //Put data to aObjectList
-    delete aObjectList;
-    aObjectList = NULL;
-    
-    aObjectList = CObexBufObject::NewL( iBuffer );
-    aObjectList->SetTypeL( KSConFolderListType );
-    aObjectList->SetLengthL( iBuffer->Size() );
-    
-    LOGGER_WRITE_1( "CSConFTP::GetFolderObjectL( CObexBufObject*& aObjectList ) : returned %d", ret );
-    return ret;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFTP::GetFileObjectL( CObexFileObject*& aFileObject )
-// Gets object that contains a file from file system
-// -----------------------------------------------------------------------------
-//
-TInt CSConFTP::GetFileObjectL( CObexFileObject*& aFileObject )
-    {
-    TRACE_FUNC_ENTRY;
-    
-    TInt ret( KErrNone );
-    
-    if( aFileObject->Name().Length() == 0 )
-        {
-        return KErrBadName;
-        }
-    
-    // check is current drive ok
-    if( iPathName.Length() > 0 )
-        {
-        TPath path( KSConAllowedPath );
-        path.Append( KPathDelimiter );
-        if( iPathName.CompareF( path ) != 0 )
-            {
-            // was normal path (not KSConAllowedPath)
-            if( !IsCurrentVolumeOK() )
-                {
-                return KErrNotFound;
-                }
-            }
-        }
-    
-    HBufC* nameBuf = HBufC::NewLC( KMaxFileName );
-    TPtr namePtr = nameBuf->Des();
-    namePtr.Append( aFileObject->Name() );
-    
-    if( namePtr.LocateReverse( KPathDelimiter ) == namePtr.Length()-1 )
-        {
-        namePtr.Delete( namePtr.Length()-1, 1 );
-        }
-    
-    ret = iSConFsHandler->GetFileObjectL( aFileObject, iPathName, namePtr );
-    
-    CleanupStack::PopAndDestroy( nameBuf );
-    
-    LOGGER_WRITE_1( "CSConFTP::GetFileObjectL() : returned %d", ret );
-    return ret;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFTP::PutFileObjectInitL( CObexBufObject*& aObject, 
-//                                  CBufFlat*& aBuffer )
-// Initializes the receiving from the client.
-// -----------------------------------------------------------------------------
-//
-TInt CSConFTP::PutFileObjectInitL( CObexBufObject*& aObject, 
-                                    CBufFlat*& aBuffer )
-    {
-    TRACE_FUNC_ENTRY;
-    TInt ret( KErrNone );
-    
-    RFile file;
-    
-    TBool lowMemory = IsCurrentDiskSpaceBelowCritical();
-    
-    //if Inbox then save temp file to default drive
-    if( iPathName.Length() == 0 )
-        {
-        //When proprietary profile (PC Suite), doesn't allow to use Inbox
-        if( iProfile == EProprietary )
-            {
-            LOGGER_WRITE( "CSConFTP::PutFileObjectInitL() : iProfile EProprietary" );
-            ret = file.Temp( iFs, PathInfo::PhoneMemoryRootPath(), iTempFileName,
-            EFileWrite | EFileShareExclusive );
-            file.Close();
-
-            if( ret == KErrNone )
-                {
-                delete aObject;
-                aObject = CObexBufObject::NewL( NULL );
-                        
-                if( aBuffer )
-                    {
-                    aBuffer->Reset();
-                    delete aBuffer;
-                    }
-                
-                aBuffer = CBufFlat::NewL( KSConBufferSize );
-                aBuffer->ResizeL( KSConBufferSize );
-                
-                TObexFilenameBackedBuffer bufferdetails( *aBuffer, iTempFileName, 
-                CObexBufObject::EDoubleBuffering );
-                aObject->SetDataBufL( bufferdetails );
-                }
-            }
-        else
-            {
-            LOGGER_WRITE( "CSConFTP::PutFileObjectInitL() : not EProprietary" );
-            if( lowMemory )
-                {
-                // do not even try to save
-                LOGGER_WRITE( "CSConFTP::PutFileObjectInitL() : disk full" );
-                ret = KErrNoMemory;
-                }
-            else
-                {
-                ret = iSConInboxHandler->CreateInboxAttachmentL( aObject, aBuffer );
-                }
-            }
-        
-        return ret;
-        }
-    else
-        {
-        LOGGER_WRITE_1("iPathName: %S", &iPathName);
-        // check is current drive ok 
-        if( !IsCurrentVolumeOK() )
-            {
-            LOGGER_WRITE( "CSConFTP::PutFileObjectInitL() : drive not visible" );
-            ret = KErrNotFound;
-            }
-        else
-            {
-            ret = file.Temp( iFs, iPathName, iTempFileName, EFileWrite | 
-            EFileShareExclusive );
-            }
-        }
-    
-    file.Close();
-    
-    if( ret == KErrNone )
-        {
-        delete aObject;
-        aObject = CObexBufObject::NewL( NULL );
-                
-        if( aBuffer )
-            {
-            aBuffer->Reset();
-            delete aBuffer;
-            }
-        
-        aBuffer = CBufFlat::NewL( KSConBufferSize );
-        aBuffer->ResizeL( KSConBufferSize );
-        
-        TObexFilenameBackedBuffer bufferdetails( *aBuffer, iTempFileName, 
-        CObexBufObject::EDoubleBuffering );
-        aObject->SetDataBufL( bufferdetails );
-        
-        if( lowMemory )
-            {
-            // return error. it's up to pccon/ftp plugin howto handle it..
-            LOGGER_WRITE( "CSConFTP::PutFileObjectInitL() : low memory" );
-            ret = KErrNoMemory;
-            }
-        }
-    
-    LOGGER_WRITE_1( "CSConFTP::PutFileObjectInitL( CObexBufObject*& aObject, CBufFlat*& aBuffer ) : returned %d", ret );
-    return ret;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFTP::PutFileObjectFinalizeL( CObexBufObject*& aObject )
-// Stores the relayed file object to inbox or file system.
-// -----------------------------------------------------------------------------
-//
-TInt CSConFTP::PutFileObjectFinalizeL( CObexBufObject*& aObject )
-    {
-    TRACE_FUNC_ENTRY;
-    TInt ret( KErrNone );
-    
-    // if iPathName is not defined trying to save to inbox, no need to call IsCurrentVolumeOK()
-    if( iPathName.Length() > 0 && !IsCurrentVolumeOK() )
-        {
-        // Memory card removed
-        LOGGER_WRITE( "CSConFTP::PutFileObjectFinalizeL() : disk err, return KErrNotFound" );
-        return KErrNotFound;
-        }
-    else if ( iPathName.Length() + aObject->Name().Length() > KMaxFileName )
-        {
-        LOGGER_WRITE( "CSConFTP::PutFileObjectFinalizeL() : Too long filename, return KErrBadName");
-        return KErrBadName;
-        }
-        
-    TBool lowMemory = IsCurrentDiskSpaceBelowCritical();
-    if ( lowMemory )
-        {
-        LOGGER_WRITE( "CSConFTP::PutFileObjectFinalizeL() : Low memory, return KErrNoMemory");
-        return KErrNoMemory;
-        }
-    
-    HBufC* fullPathBuf = HBufC::NewLC( KMaxFileName );
-    TPtr fullPathPtr = fullPathBuf->Des();
-    fullPathPtr.Copy( iPathName );
-    fullPathPtr.Append( aObject->Name() );
-    
-    // Save to inbox if path is not set.
-    if( iPathName.Length() == 0 )
-        {
-        LOGGER_WRITE( "CSConFTP::PutFileObjectFinalizeL before SaveObjectToInbox" );
-        ret = iSConInboxHandler->SaveObjToInboxL( aObject );
-        LOGGER_WRITE_1( "CSConFTP::PutFileObjectFinalize SaveObjectToInbox returned %d", ret );
-        }
-    else if( iPathName.CompareF( K_C_ROOT ) == 0 )
-        {
-        // Saving to root of C:\ is not allowed
-        ret = KErrAccessDenied;
-        }
-    //Save to file system
-    else
-        {
-        TTime time = aObject->Time();
-    
-        // UTC offset   
-        time -= User::UTCOffset();      
-        
-        delete aObject;
-        aObject = NULL;
-            
-        ret = iSConFsHandler->SaveFileObjectL( fullPathPtr, time, 
-        iTempFileName );
-        }
-
-    CleanupStack::PopAndDestroy( fullPathBuf );
-    
-    LOGGER_WRITE_1( "CSConFTP::PutFileObjectFinalizeL( CObexBufObject*& aObject ) : returned %d", ret );
-    
-    return ret;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFTP::SetPathL( const TPtrC aPath, const TUint8 aFlags )
-// Changes the current path. The path can point to inbox or file system
-// -----------------------------------------------------------------------------
-//
-TInt CSConFTP::SetPathL( const TPtrC aPath, const TUint8 aFlags )
-    {
-    TRACE_FUNC_ENTRY;
-    LOGGER_WRITE_1( "aPath: %S", &aPath );
-    TInt ret( KErrNone );
-
-    if( ( aPath.Length() > 0 && aFlags != KSConSetPathRoot )  
-        || ( iPathName.Length() == KDriveLength  && aFlags == KSConSetPathBack) ) 
-        {
-        // check is current drive ok
-        if( !IsCurrentVolumeOK() )
-            {
-            LOGGER_WRITE( "CSConFTP::SetPathL() : drive not found" );
-            return KErrNotFound;
-            }
-        }
-    
-    ret = KErrNotFound;
-    
-    //path forward, deny access to forbidden directories and drives
-    if( aPath.Length() > 0 
-        && ( iPathName.Length() + aPath.Length() < KMaxFileName ) 
-        && ( aFlags == KSConSetPathForward || aFlags == KSConSetPathDontCreate ) )
-        {
-        ret = SetPathForwardL( aPath, aFlags );
-        }
-    //path backward
-    else if( aFlags == KSConSetPathBack )
-        {
-        ret = SetPathBackwardL( aPath );
-        }
-    //path root
-    else if( aPath.Length() == 0 && aFlags == KSConSetPathRoot )
-        {
-        LOGGER_WRITE( "CSConFTP::SetPathL() : KSConSetPathRoot" );
-        if( iPathName.Length() > 0 )
-            {
-            iPathName.Delete( 0, iPathName.Length() );
-            }
-        iCurrentDrive = KErrNotFound;
-        ret = KErrNone;
-        }
-    
-    if( ret == KErrNone )
-        {
-        // drive may have changed, update info
-        UpdateDriveTypeInfoL();
-        }
-    
-    LOGGER_WRITE_1( "CSConFTP::CSConFTP::SetPathL( const TPtrC aPath, const TUint8 aFlags ) : returned %d", ret );
-    return ret;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFTP::SetPathForwardL( const TPtrC aPath, const TUint8 aFlags )
-// Set path forward
-// -----------------------------------------------------------------------------
-//
-TInt CSConFTP::SetPathForwardL( const TPtrC aPath, const TUint8 aFlags )
-    {
-    TRACE_FUNC_ENTRY;
-    TInt ret(KErrNone);
-    HBufC* fullPath = HBufC::NewLC( KMaxFileName );
-    TPtr fullPathPtr = fullPath->Des();
-    
-    if( iPathName.Length() == 0 )
-        {
-        fullPathPtr.Copy( aPath );   
-        }
-    else
-        {
-        fullPathPtr.Copy( iPathName );
-        fullPathPtr.Append( aPath );
-        }
-    LOGGER_WRITE_1( "fullPathPtr: %S", &fullPathPtr );
-    // now fullpath is new path
-    // check validity
-    if( fullPathPtr.Length() < 2 || fullPathPtr[1] != KDriveDelimiter )
-        {
-        LOGGER_WRITE( "CSConFTP::SetPathForwardL() : not valid name" );
-        CleanupStack::PopAndDestroy( fullPath );
-        return KErrNotFound;
-        }
-    
-    if( fullPathPtr.CompareF( KSConAllowedPath ) == 0 )
-        {
-        // Always access to PC Suite configuration file on ROM
-        LOGGER_WRITE( "CSConFTP::SetPathForwardL() : KSConAllowedPath" );
-        iPathName.Copy( fullPathPtr );
-        if( iPathName[iPathName.Length()-1] != KPathDelimiter )
-            {
-            iPathName.Append( KPathDelimiter );
-            }
-        
-        CleanupStack::PopAndDestroy( fullPath );
-        return KErrNone;
-        }
-    
-    // check drive
-    TInt driveNumber;
-    TInt err = iFs.CharToDrive( fullPathPtr[0], driveNumber );
-    if( err != KErrNone || !IsDriveVisible( driveNumber ) )
-        {
-        LOGGER_WRITE( "CSConFTP::SetPathForwardL() : drive err" );
-        CleanupStack::PopAndDestroy( fullPath );
-        return KErrNotFound;
-        }
-    
-    // check folder and create it if needed
-    if( fullPathPtr.Length() > 2 )
-        {
-        TBool isFolder = EFalse;
-        err = BaflUtils::IsFolder( iFs, fullPathPtr, isFolder );
-        if( err != KErrNone )
-            {
-            isFolder = EFalse;
-            }
-        LOGGER_WRITE_1( "CSConFTP::SetPathForwardL() IsFolder: %d", (TInt)isFolder );
-        
-        if( !isFolder )
-            {
-            //if "Don't create" is 1
-            if( aFlags & 2 )
-                {
-                ret = KErrNotFound;
-                }
-            else
-                {
-                CreateFolderL( fullPathPtr );
-                ret = KErrNone;
-                }
-            }
-        else
-            {
-            ret = KErrNone;
-            }
-        }
-    else
-        {
-        ret = KErrNone;
-        }
-    
-    if( ret == KErrNone )
-        {
-        iPathName.Copy( fullPathPtr );
-        
-        if( iPathName[iPathName.Length()-1] != KPathDelimiter )
-            {
-            iPathName.Append( KPathDelimiter );
-            }
-        }
-    
-    CleanupStack::PopAndDestroy( fullPath );
-    LOGGER_WRITE_1( "CSConFTP::SetPathForwardL() : end, ret: %d", ret );
-    return ret;
-    
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFTP::SetPathBackwardL( const TPtrC aPath )
-// Set path backward
-// -----------------------------------------------------------------------------
-//
-TInt CSConFTP::SetPathBackwardL( const TPtrC aPath )
-    {
-    TRACE_FUNC_ENTRY;
-    TInt ret(KErrNotFound);
-    if( iPathName.Length() == 0 )
-        {
-        // already in root, exit
-        LOGGER_WRITE( "CSConFTP::SetPathBackwardL() : already in root" );
-        LOGGER_WRITE_1( "CSConFTP::SetPathBackwardL() : end, ret: %d", ret );
-        return ret;
-        }
-    TInt pos;
-    TBool isFolder(EFalse);
-    HBufC* fullPath = HBufC::NewLC( KMaxFileName );
-    TPtr fullPathPtr = fullPath->Des();
-
-    //no directory/folder name
-    if( aPath.Length() == 0 )
-        {
-        LOGGER_WRITE( "CSConFTP::SetPathBackwardL() : no new path, goto parent" );
-        iPathName.Delete( iPathName.Length()-1, 1 );
-        pos = iPathName.LocateReverse( KPathDelimiter );
-        iPathName.Delete( pos+1, iPathName.Length()-pos );
-        ret = KErrNone;
-        }
-    //if folder name
-    else if( aPath.Locate( KDriveDelimiter ) != 1 && iPathName.Length() > KDriveLength  )
-        {
-        LOGGER_WRITE( "CSConFTP::SetPathBackwardL() : goto parent and new path" );                
-        fullPathPtr.Copy( iPathName );
-        fullPathPtr.Delete( fullPathPtr.Length()-1, 1 );
-        pos = fullPathPtr.LocateReverse( KPathDelimiter );
-        fullPathPtr.Delete( pos+1, fullPathPtr.Length()-pos );
-        fullPathPtr.Append( aPath );
-        
-        if( fullPathPtr.CompareF( KSConAllowedPath ) == 0 )
-            {
-            // Always access to PC Suite configuration file on ROM
-            isFolder = ETrue;
-            }
-        else
-            { 
-            TInt driveNumber;
-            TInt err = iFs.CharToDrive(fullPathPtr[0], driveNumber);
-            if( err != KErrNone )
-                {
-                LOGGER_WRITE( "CSConFTP::SetPathForwardL() : drive err" );
-                isFolder = EFalse;
-                }
-            else if( !IsDriveVisible(driveNumber) )
-                {
-                isFolder = EFalse;
-                }
-            else
-                {
-                // drive ok, check folder.
-                err = BaflUtils::IsFolder( iFs, fullPathPtr, isFolder );
-                if( err != KErrNone )
-                    {
-                    isFolder = EFalse;
-                    }
-                }
-            }
-
-        if( isFolder ) 
-            {
-            iPathName.Copy( fullPathPtr );
-
-            if( aPath.LocateReverse( KPathDelimiter ) != aPath.Length()-1 )
-                {
-                iPathName.Append( KPathDelimiter );
-                }
-
-            ret = KErrNone;
-            }
-        else
-            {
-            ret = KErrNotFound;
-            }
-        
-        }
-    //drive
-    else if( aPath.Locate( KDriveDelimiter ) == 1 )
-        {
-        fullPathPtr.Copy( aPath );
-        if( fullPathPtr.LocateReverse( KPathDelimiter ) 
-                    != fullPathPtr.Length()-1 )
-            {
-            fullPathPtr.Append( KPathDelimiter );
-            }
-        
-        TFileName tempPath( KSConAllowedPath );
-        tempPath.Append(KPathDelimiter);
-        if( fullPathPtr.CompareF( tempPath ) == 0 )
-            {
-            // Always access to PC Suite configuration file on ROM
-            isFolder = ETrue;
-            }
-        else
-            {
-            TInt driveNumber;
-            TInt err = iFs.CharToDrive(fullPathPtr[0], driveNumber);
-            if( err != KErrNone )
-                {
-                LOGGER_WRITE( "CSConFTP::SetPathForwardL() : drive err" );
-                isFolder = EFalse;
-                }
-            else if( !IsDriveVisible(driveNumber) )
-                {
-                isFolder = EFalse;
-                }
-            else
-                {
-                // drive ok, check folder.
-                err = BaflUtils::IsFolder( iFs, fullPathPtr, isFolder );
-                if( err != KErrNone )
-                    {
-                    isFolder = EFalse;
-                    }
-                }
-            }
-            
-        if( isFolder ) 
-            {
-            iPathName.Copy( fullPathPtr );
-            
-            if( aPath.LocateReverse( KPathDelimiter ) != aPath.Length()-1 )
-                {
-                iPathName.Append( KPathDelimiter );
-                }
-            
-            ret = KErrNone;
-            }
-        else
-            {
-            ret = KErrNotFound;
-            }               
-        }
-    CleanupStack::PopAndDestroy( fullPath );
-    LOGGER_WRITE_1( "CSConFTP::SetPathBackwardL() : end, ret: %d", ret );
-    return ret;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFTP::CreateFolderL( const TPtrC aFolderName )
-// Creates a new folder to file system
-// -----------------------------------------------------------------------------
-//
-TInt CSConFTP::CreateFolderL( const TPtrC aFolderName )
-    {
-    TRACE_FUNC_ENTRY;
-    LOGGER_WRITE_1( "aFolderName: %S", &aFolderName );
-    TInt ret( KErrNone );
-    if( aFolderName.Length() == 0 )
-        {
-        return KErrArgument;
-        }
-    
-    HBufC*  pathBuf = HBufC::NewLC( KMaxFileName );
-    TPtr pathBufPtr = pathBuf->Des();
-    //absolute folder path
-    if( aFolderName.Length() > 1 && aFolderName[1] == KDriveDelimiter )
-        {
-        if ( iPathName.Length()>0 )
-            {
-            LOGGER_WRITE( "CSConFTP::CreateFolderL() : KErrBadName" );
-            CleanupStack::PopAndDestroy( pathBuf );
-            return KErrBadName;
-            }
-        pathBufPtr.Copy( aFolderName );
-        }
-    else
-        {
-        pathBufPtr.Copy( iPathName );
-        pathBufPtr.Append( aFolderName );
-        }
-    
-    if( !iFs.IsValidName( pathBufPtr ) )
-        {
-        ret = KErrBadName;
-        }
-    else
-        {
-        // check drive
-        TInt driveNumber;
-        ret = iFs.CharToDrive(pathBufPtr[0], driveNumber);
-        if( ret != KErrNone || !IsDriveVisible(driveNumber) )
-            {
-            LOGGER_WRITE( "CSConFTP::CreateFolderL() : drive err" );
-            ret = KErrNotFound;
-            }
-        }
-
-    if ( ret == KErrNone )
-        {
-        if( pathBufPtr.LocateReverse( KPathDelimiter ) != pathBufPtr.Length()-1 )
-            {
-            pathBufPtr.Append( KPathDelimiter );
-            }
-        ret = iSConFsHandler->CreateFolderL( pathBufPtr );
-        }
-    
-    if( ret == KErrNone || ret == KErrAlreadyExists )
-        {
-        ret = SetPathL( aFolderName, KSConSetPathForward );
-        }
-    
-    CleanupStack::PopAndDestroy( pathBuf );
-    
-    LOGGER_WRITE_1( "CSConFTP::CreateFolderL( const TPtrC aFolderName ) : returned %d", ret );
-    
-    return ret;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFTP::DeleteObjectL( const TPtrC aObjectName )
-// Deletes file/folder from inbox or file system
-// -----------------------------------------------------------------------------
-//
-TInt CSConFTP::DeleteObjectL( const TPtrC aObjectName )
-    {
-    TRACE_FUNC_ENTRY;
-    LOGGER_WRITE_1( "aObjectName: %S", &aObjectName );
-    TInt ret( KErrNone );
-    TFileName tmpTarget;
-    HBufC* targetBuf = HBufC::NewLC( KMaxFileName );
-    TPtr target = targetBuf->Des();
-    
-    //absolute folder path
-    if( aObjectName.Length() > 1 && aObjectName[1] == KDriveDelimiter )
-        {
-        if ( iPathName.Length()>0 )
-            {
-            LOGGER_WRITE( "CSConFTP::DeleteObjectL() : KErrBadName" );
-            CleanupStack::PopAndDestroy( targetBuf );
-            return KErrBadName;
-            }
-        target.Copy( aObjectName );
-        }
-    else
-        {
-        target.Copy( iPathName );
-        target.Append( aObjectName );
-        }
-    
-    if( !iFs.IsValidName( target ) )
-        {
-        ret = KErrBadName;
-        }
-    else
-        {
-        TInt driveNumber;
-        ret = iFs.CharToDrive(target[0], driveNumber);
-        if( ret != KErrNone || !IsDriveVisible(driveNumber) )
-            {
-            LOGGER_WRITE( "CSConFTP::DeleteObjectL() : drive err" );
-            ret = KErrNotFound;
-            }
-        }
-    
-
-    if ( ret == KErrNone )
-        {
-        ret = iSConFsHandler->DeleteObjectL( target );
-        }
-    
-    CleanupStack::PopAndDestroy( targetBuf );
-    
-    LOGGER_WRITE_1( "CSConFTP::DeleteObjectL( const TPtrC aObjectName ) : returned %d", ret );
-    return ret;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFTP::GetPath( TDes& aPath )
-// Gets the current path
-// -----------------------------------------------------------------------------
-//
-TInt CSConFTP::GetPath( TDes& aPath )
-    {
-    TRACE_FUNC;
-    aPath.Copy( iPathName );
-    return KErrNone;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFTP::AbortFileTransfer( CObexBufObject*& aObject )
-// Abort file transfer
-// -----------------------------------------------------------------------------
-//
-TInt CSConFTP::AbortFileTransfer( CObexBufObject*& aObject )
-    {
-    TRACE_FUNC_ENTRY;
-    TInt err( KErrNone );
-    
-    if( iPathName.Length() == 0 )
-        {
-        iSConInboxHandler->AbortInboxOperation( aObject );
-        }
-    
-    //aObject has to be deleted, otherwise the temp file is locked
-    delete aObject;
-    aObject = NULL;
-    
-    err = iFs.Delete( iTempFileName );
-    
-    LOGGER_WRITE_1( "CSConFTP::AbortFileTransfer( CObexBufObject*& aObject ) : iFs.Delete() err: %d", err );
-    return err;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFTP::SetProfile( TInt aProfile )
-// Set used transfer profile
-// -----------------------------------------------------------------------------
-//
-void CSConFTP::SetProfile( TSConProfile aProfile )
-    {
-    TRACE_FUNC;
-    iProfile = aProfile;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFTP::SetBackupStarted( TBool aValue )
-// Set backup status
-// -----------------------------------------------------------------------------
-//
-void CSConFTP::SetBackupStarted( TBool aValue )
-    {
-    TRACE_FUNC;
-    iBackupStarted = aValue;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFTP::SetUsedMedia( TSConUsedMedia aMedia )
-// Set the used media information
-// -----------------------------------------------------------------------------
-//  
-void CSConFTP::SetUsedMedia( TSConUsedMedia aMedia )
-    {
-    TRACE_FUNC;
-    iMedia = aMedia;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFTP::IsCurrentDiskSpaceBelowCritical( TUint32 aFilesize )
-// Check is current disk space below critical level.
-// -----------------------------------------------------------------------------
-//
-TBool CSConFTP::IsCurrentDiskSpaceBelowCritical( TUint32 aFilesize )
-    {
-    TRACE_FUNC_ENTRY;
-    LOGGER_WRITE_1( "aFilesize: %d", aFilesize );
-    TInt drive;
-    TInt err;
-    
-    if( iCurrentDrive != KErrNotFound )
-        {
-        drive = iCurrentDrive;
-        }
-    else
-        {
-        LOGGER_WRITE( "CSConFTP::IsCurrentDiskSpaceBelowCritical() : drive not specified, use default drive" );
-        err = DriveInfo::GetDefaultDrive( DriveInfo::EDefaultPhoneMemory, drive );
-        if( err )
-            {
-            LOGGER_WRITE_1( "CSConFTP::IsCurrentDiskSpaceBelowCriticaL() : DriveInfo::GetDefaultDrive err %d", err );
-            return ETrue; //exit
-            }
-        }
-    
-    // check disk space
-    LOGGER_WRITE_1( "drive: %d", drive );
-    TVolumeInfo volumeInfo;
-    err = iFs.Volume(volumeInfo, drive);
-    if( err != KErrNone )
-        {
-        LOGGER_WRITE_1( "CSConFTP::IsCurrentDiskSpaceBelowCritical() : iFs.Volume err %d", err );
-        LOGGER_WRITE( "CSConFTP::IsCurrentDiskSpaceBelowCritical() : End" );
-        return ETrue; //exit
-        }
-    LOGGER_WRITE_1( "volumeInfo.iFree: %Ld", volumeInfo.iFree );
-    TBool diskLevelCritical( EFalse );
-    if ( volumeInfo.iFree - aFilesize <= iCriticalDiskLevel )
-        {
-        // Can not write the data, there's not enough free space on disk.
-        diskLevelCritical = ETrue;
-        }
-
-    LOGGER_WRITE_1( "CSConFTP::IsCurrentDiskSpaceBelowCritical() : ret %d",
-     (TInt)diskLevelCritical );
-    return diskLevelCritical;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFTP::ReadWBXMLDataL( CBufFlat*& aBuffer )
-// Read received ConML protocol packet
-// -----------------------------------------------------------------------------
-//  
-TInt CSConFTP::ReadWBXMLDataL( CBufFlat*& aBuffer )
-    {
-    TRACE_FUNC_ENTRY;
-    TInt ret( KErrNone );
-    
-    RFile file;
-    TInt fileSize;
-    
-    ret = file.Open( iFs, iTempFileName, EFileRead|EFileShareAny );
-    CleanupClosePushL( file );
-    if( ret == KErrNone )
-        {
-        file.Size( fileSize );
-        
-        delete aBuffer;
-        aBuffer = NULL;
-            
-        HBufC8* wbxmlDataBuf = HBufC8::NewLC( fileSize );
-        TPtr8 wbxmlDataPtr = wbxmlDataBuf->Des();
-        
-        file.Read( wbxmlDataPtr );
-        
-        aBuffer = CBufFlat::NewL( KSConBufSize );
-        aBuffer->ExpandL( 0, fileSize );
-        aBuffer->Write( 0, wbxmlDataPtr );
-        
-        CleanupStack::PopAndDestroy( wbxmlDataBuf );
-        }
-    CleanupStack::PopAndDestroy( &file );
-    LOGGER_WRITE_1( "CSConFTP::ReadWBXMLData( CBufFlat*& aBuffer ) : WBXML packet size: %d", fileSize );
-        
-    LOGGER_WRITE_1( "CSConFTP::ReadWBXMLData( CBufFlat*& aBuffer ) : returned %d", ret );
-    return ret;
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConFTP::DeleteTempFile()
-// Delete OBEX stack's temp file
-// -----------------------------------------------------------------------------
-//  
-void CSConFTP::DeleteTempFile()
-    {
-    TRACE_FUNC_ENTRY;
-    iFs.Delete( iTempFileName );
-    TRACE_FUNC_EXIT;
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConFTP::MoveFile()
-// Move file/folder
-// -----------------------------------------------------------------------------
-//
-TInt CSConFTP::MoveFile(const TDesC& aSource, const TDesC& aTarget)
-    {
-    TRACE_FUNC_ENTRY;
-    TInt err;
-    TFileName tmpSource;
-    TFileName tmpTarget;
-    err = GetAbsolutePath( aSource, tmpSource );
-    if( err == KErrNone )
-        {
-        err = GetAbsolutePath( aTarget, tmpTarget );
-        }
-        
-    if( err == KErrNone )
-        {
-        TInt sourceDrive;
-        TInt targetDrive;
-        
-        err = iFs.CharToDrive( tmpSource[0], sourceDrive );
-        TInt err2 = iFs.CharToDrive( tmpTarget[0], targetDrive );
-        
-        if( err != KErrNone || err2 != KErrNone
-            || !IsDriveVisible( sourceDrive )
-            || !IsDriveVisible( targetDrive ) )
-            {
-            // drive not visible to user
-            err = KErrNotFound;
-            }
-        }
-        
-    if( err == KErrNone )
-        {
-        TRAP( err,
-        iSConFsHandler->DoCopyOrMoveFileL( tmpSource, tmpTarget, EFalse ) );
-        }
-    
-    LOGGER_WRITE_1( "CSConFTP::MoveFile() : end, err: %d", err );
-    return err;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFTP::CopyFile()
-// Copy file/folder
-// -----------------------------------------------------------------------------
-//
-TInt CSConFTP::CopyFile(const TDesC& aSource, const TDesC& aTarget)
-    {
-    TRACE_FUNC_ENTRY;
-    TInt err;
-    TFileName tmpSource;
-    TFileName tmpTarget;
-    err = GetAbsolutePath( aSource, tmpSource );
-    if (err == KErrNone)
-        {
-        err = GetAbsolutePath( aTarget, tmpTarget );
-        }
-    
-    if( err == KErrNone )
-        {
-        TInt sourceDrive;
-        TInt targetDrive;
-        
-        err = iFs.CharToDrive( tmpSource[0], sourceDrive );
-        TInt err2 = iFs.CharToDrive( tmpTarget[0], targetDrive );
-        
-        if( err != KErrNone || err2 != KErrNone
-            || !IsDriveVisible( sourceDrive )
-            || !IsDriveVisible( targetDrive ) )
-            {
-            // drive not visible to user
-            err = KErrNotFound;
-            }
-        }
-        
-    if (err == KErrNone)
-        {
-        TRAP( err,
-        iSConFsHandler->DoCopyOrMoveFileL( tmpSource, tmpTarget, ETrue ) );
-        }
-    
-    LOGGER_WRITE_1( "CSConFTP::CopyFile() : end, ret: %d", err );
-    return err;
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConFTP::SetReadOnly()
-// Set read-only permissions to file or folder
-// -----------------------------------------------------------------------------
-//
-TInt CSConFTP::SetReadOnly(const TDesC& aTarget, const TBool aReadOnly)
-    {
-    TRACE_FUNC_ENTRY;
-    TInt err;
-    TFileName tmpTarget;
-    err = GetAbsolutePath( aTarget, tmpTarget );
-    if( err != KErrNone )
-        {
-        return err;
-        }
-    else
-        {
-        TInt targetDrive;
-        err = iFs.CharToDrive( tmpTarget[0], targetDrive );
-        
-        if( err != KErrNone
-            || !IsDriveVisible( targetDrive ) )
-            {
-            // drive not visible to user
-            return KErrNotFound;
-            }
-        }
-    
-    TBool isFolder(EFalse);
-    err = BaflUtils::IsFolder( iFs, tmpTarget, isFolder );
-    if ( err == KErrNone && isFolder )
-        {
-        tmpTarget.Append(KPathDelimiter);
-        }
-    if ( !iSConFsHandler->IsFolderVisible( tmpTarget ) )
-        {
-        // folder is not visible to user
-        err = KErrAccessDenied;
-        }
-    else
-        {
-        if( aReadOnly )
-            {
-            err = iFs.SetAtt( tmpTarget, KEntryAttReadOnly, KEntryAttArchive );
-            }
-        else
-            {
-            err = iFs.SetAtt( tmpTarget, KEntryAttNormal, KEntryAttReadOnly );
-            }
-        }
-        
-    LOGGER_WRITE_1( "CSConFTP::SetReadOnly() : ret: %d", err );
-    return err;
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConFTP::SetHidden()
-// Set hidden permissions to file or folder
-// -----------------------------------------------------------------------------
-//
-TInt CSConFTP::SetHidden( const TDesC& /*aTarget*/, const TBool /*aHidden*/ )
-    {
-	// This is currently not supported.
-    LOGGER_WRITE("CSConFTP::SetHidden return KErrNotSupported");
-    return KErrNotSupported;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFTP::GetAbsolutePath()
-// Get absolute path from relative file/folder
-// -----------------------------------------------------------------------------
-//
-TInt CSConFTP::GetAbsolutePath( const TDesC& aFolderName, TDes &aFullPath )
-    {
-    if (aFolderName.Length() == 0)
-        {
-        return KErrBadName;
-        }
-    //absolute folder path
-    if( aFolderName.Length() > 1 && aFolderName[1] == KDriveDelimiter )
-        {
-        aFullPath.Copy( aFolderName );
-        }
-    // relative to the root folder
-    else if( aFolderName[0] == KPathDelimiter )
-        {
-        if( iPathName.Length() < 2 )
-            {
-            return KErrBadName;
-            }
-        aFullPath.Copy( iPathName.Left(2) );
-        aFullPath.Append( aFolderName );
-        }
-    // relative to the current folder
-    else
-        {
-        aFullPath.Copy( iPathName );
-        if( aFullPath.LocateReverse( KPathDelimiter ) != aFullPath.Length()-1 )
-            {
-            aFullPath.Append( KPathDelimiter );
-            }
-        aFullPath.Append( aFolderName );
-        // no need to check internal root, because iPathName is real target.
-        }
-    
-    return KErrNone;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFTP::CSConFTP()
-// Default constructor
-// -----------------------------------------------------------------------------
-//  
-CSConFTP::CSConFTP() : iProfile( EStandard ), iCurrentDrive( KErrNotFound )
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFTP::ConstructL()
-// Initializes member data
-// -----------------------------------------------------------------------------
-//  
-void CSConFTP::ConstructL()
-    {
-    TRACE_FUNC_ENTRY;
-    
-    iBuffer = CBufFlat::NewL( KSConBufSize );
-    User::LeaveIfError( iFs.Connect() );
-    iSConFsHandler = CSConFsHandler::NewL( iFs );
-    iSConInboxHandler = CSConInboxHandler::NewL();
-    
-    CRepository* repository = CRepository::NewLC( KCRUidDiskLevel );
-    User::LeaveIfError( repository->Get( KDiskCriticalThreshold, iCriticalDiskLevel ) );
-    CleanupStack::PopAndDestroy( repository );
-    // inlcude package size
-    iCriticalDiskLevel += KPackageSize;
-    LOGGER_WRITE_1( "criticalLevel: %d", iCriticalDiskLevel );
-    
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFTP::GetVolumeNameL()
-// Get volume name
-// -----------------------------------------------------------------------------
-//  
-TInt CSConFTP::GetVolumeNameL(const TInt aDriveNumber, TDes8& aVolumeName)
-    {
-    TRACE_FUNC_ENTRY;
-    TVolumeInfo volumeInfo;
-    TInt ret = iFs.Volume( volumeInfo, aDriveNumber );
-    
-    if ( ret == KErrNone)
-        {
-        CnvUtfConverter::ConvertFromUnicodeToUtf8( aVolumeName,
-             volumeInfo.iName );
-        //Replace special characters
-        for( TInt i = 0; i < aVolumeName.Length(); i++ )
-            {
-            switch( aVolumeName[i] )
-                {
-                case '&':
-                    aVolumeName.Delete( i, 1 );
-                    aVolumeName.Insert( i, KReplace1 );
-                    break;
-                case '<':
-                    aVolumeName.Delete( i, 1 );
-                    aVolumeName.Insert( i, KReplace2 );
-                    break;
-                case '>':
-                    aVolumeName.Delete( i, 1 );
-                    aVolumeName.Insert( i, KReplace3 );
-                    break;
-                case '"':
-                    aVolumeName.Delete( i, 1 );
-                    aVolumeName.Insert( i, KReplace4 );
-                    break;
-                case '\'':
-                    aVolumeName.Delete( i, 1 );
-                    aVolumeName.Insert( i, KReplace5 );
-                    break;
-                default:
-                    break;
-                }
-            }
-        
-        //No name
-        if( aVolumeName.Length() == 0 )
-            {
-            LOGGER_WRITE( "Volume has no name, use default localized name" );
-            //Read memory string and convert it
-            TFileName file( KSConResourceName );
-            
-            BaflUtils::NearestLanguageFile( iFs, file );
-            
-            CStringResourceReader* reader = CStringResourceReader::NewL( file );
-            CleanupStack::PushL( reader );
-            TUint driveStatus;
-            User::LeaveIfError( DriveInfo::GetDriveStatus( iFs, aDriveNumber, driveStatus ) );
-            if( driveStatus & DriveInfo::EDriveRemovable )
-                {
-                // read default MMC name
-                CnvUtfConverter::ConvertFromUnicodeToUtf8( aVolumeName, 
-                reader->ReadResourceString( R_SECON_VALUE_MMC ) );
-                }
-            else
-                {
-                // read default DEV name
-                CnvUtfConverter::ConvertFromUnicodeToUtf8( aVolumeName, 
-                reader->ReadResourceString( R_SECON_VALUE_DEVICE ) );
-                }
-            CleanupStack::PopAndDestroy( reader );
-            }
-        }
-    LOGGER_WRITE_1("GetVolumeNameL returned: %d", ret);
-    return ret;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFTP::IsDriveVisible()
-// Check is drive visible for user
-// -----------------------------------------------------------------------------
-//  
-TBool CSConFTP::IsDriveVisible( const TInt aDriveNumber )
-    {
-    TUint driveStatus;
-    TInt err = DriveInfo::GetDriveStatus( iFs, aDriveNumber, driveStatus);
-    if( err )
-        {
-        LOGGER_WRITE_1( "CSConFTP::IsDriveVisible() : DriveInfo::GetDriveStatus err: %d", err );
-        return EFalse;
-        }
-    if( driveStatus & DriveInfo::EDriveRemote )
-        {
-        LOGGER_WRITE( "CSConFTP::IsDriveVisible() : remote drive" );
-        return EFalse;
-        }
-    if( !(driveStatus & DriveInfo::EDriveUserVisible) )
-        {
-        LOGGER_WRITE( "CSConFTP::IsDriveVisible() : not visible" );
-        return EFalse;
-        }
-    if( !(driveStatus & DriveInfo::EDrivePresent ) )
-        {
-        LOGGER_WRITE( "CSConFTP::IsDriveVisible() : not present" );
-        return EFalse;
-        }
-    if( driveStatus & DriveInfo::EDriveCorrupt )
-        {
-        LOGGER_WRITE( "CSConFTP::IsDriveVisible() : corrupted" );
-        return EFalse;
-        }
-    else
-        {
-        return ETrue;
-        }
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConFTP::UpdateDriveTypeInfoL()
-// Test is current volume still ok.
-// -----------------------------------------------------------------------------
-//  
-TBool CSConFTP::IsCurrentVolumeOK()
-    {
-    if( iCurrentDrive == KErrNotFound )
-        {
-        LOGGER_WRITE( "CSConFTP::IsCurrentVolumeOK() : not set" );
-        return EFalse;
-        }
-    
-    TUint driveStatus;
-    TInt err = DriveInfo::GetDriveStatus( iFs, iCurrentDrive, driveStatus);
-    if( err )
-        {
-        LOGGER_WRITE_1( "CSConFTP::IsCurrentVolumeOK() : DriveInfo::GetDriveStatus err: %d", err );
-        return EFalse;
-        }
-    if( !(driveStatus & DriveInfo::EDrivePresent ))
-        {
-        LOGGER_WRITE( "CSConFTP::IsCurrentVolumeOK() : not present" );
-        return EFalse;
-        }
-    if( driveStatus & DriveInfo::EDriveCorrupt )
-        {
-        LOGGER_WRITE( "CSConFTP::IsCurrentVolumeOK() : corrupted" );
-        return EFalse;
-        }   
-    else
-        {
-        return ETrue;
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFTP::UpdateDriveTypeInfoL()
-// Updates drive information (iCurrentDrive and iCurrentDriveTypeNumber)
-// -----------------------------------------------------------------------------
-//  
-void CSConFTP::UpdateDriveTypeInfoL()
-    {
-    TRACE_FUNC_ENTRY;
-    TInt driveNumber;
-    iCurrentDriveTypeNumber = 0;
-    
-    if( iPathName.Length() == 0 )
-        {
-        LOGGER_WRITE( "CSConFTP::UpdateDriveTypeInfoL() : drive not specified" );
-        iCurrentDrive = KErrNotFound;
-        return;
-        }
-    
-    User::LeaveIfError( iFs.CharToDrive(iPathName[0], driveNumber) );
-    iCurrentDrive = driveNumber;
-    
-    TUint driveStatus;
-    User::LeaveIfError( DriveInfo::GetDriveStatus( iFs, iCurrentDrive, driveStatus ) );
-    // if true, search internal drives, else search removable drives
-    TBool searchInternalDrives = (driveStatus & DriveInfo::EDriveInternal);
-    
-    TInt driveCount;
-    TDriveList driveList;
-    
-    User::LeaveIfError( DriveInfo::GetUserVisibleDrives( iFs, driveList, driveCount ) );
-    
-    for( TInt i = EDriveA; i <= iCurrentDrive; i++ )
-        {
-        if( driveList[i] )
-            {
-            TUint driveStatus;
-            User::LeaveIfError( DriveInfo::GetDriveStatus( iFs, i, driveStatus ) );
-
-            if( !(driveStatus & DriveInfo::EDrivePresent )
-                || driveStatus & DriveInfo::EDriveCorrupt )
-                {
-                LOGGER_WRITE( "not present or corrupted" );
-                continue;
-                }
-            
-            if( driveStatus & DriveInfo::EDriveInternal )
-                {
-                if( searchInternalDrives )
-                    {
-                    iCurrentDriveTypeNumber++;
-                    }
-                }
-            else if( driveStatus & DriveInfo::EDriveRemovable )
-                {
-                if( !searchInternalDrives )
-                    {
-                    iCurrentDriveTypeNumber++;
-                    }
-                }
-            }
-        }
-    TRACE_FUNC_EXIT;
-    }
-    
-// End of file
-
--- a/connectivitymodules/SeCon/services/ftp/src/sconftp.rss	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
-/*
-* Copyright (c) 2002-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 file for sconftp.dll
-*
-*/
-
-
-// -----------------------------------------------------------------------------
-//  RESOURCE IDENTIFIER
-// -----------------------------------------------------------------------------
-//
-NAME SFTP
-
-// -----------------------------------------------------------------------------
-//  INCLUDE FILES
-// -----------------------------------------------------------------------------
-//
-#include <eikon.rh>
-#include <eikon.rsg>
-
-#include <sconftp.loc>
-
-
-RESOURCE RSS_SIGNATURE { }
-
-RESOURCE TBUF r_secon_value_device      { buf = qtn_secon_device; }
-RESOURCE TBUF r_secon_value_mmc         { buf = qtn_secon_mmc; }
-RESOURCE TBUF r_secon_value_mass_storage { buf = qtn_secon_mass_storage; }
-RESOURCE TBUF r_secon_data_folder       { buf = qtn_secon_data_folder; }
-RESOURCE TBUF r_secon_unknown_supplier  { buf = qtn_secon_unknown_supplier; }
--- a/connectivitymodules/SeCon/services/ftp/src/sconinboxhandler.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,199 +0,0 @@
-/*
-* Copyright (c) 2005-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:  File Transfer Controller implementation
-*
-*/
-
-
-// INCLUDE FILES
-#include <obexutilsmessagehandler.h>
-#include <btmsgtypeuid.h>    // BT Message Uid
-
-#include "sconinboxhandler.h"
-#include "debug.h"
-#include "sconconsts.h"
-
-
-// ============================= MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CSConInboxHandler::NewL()
-// Two-phase constructor
-// -----------------------------------------------------------------------------
-//
-CSConInboxHandler* CSConInboxHandler::NewL()
-    {
-    TRACE_FUNC_ENTRY;
-    CSConInboxHandler* self = new (ELeave) CSConInboxHandler();
-    
-    TRACE_FUNC_EXIT;
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConInboxHandler::~CSConInboxHandler()
-// Default destructor
-// -----------------------------------------------------------------------------
-//
-CSConInboxHandler::~CSConInboxHandler()
-    {
-    TRACE_FUNC;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConInboxHandler::CreateInboxAttachmentL( CObexBufObject*& aObject,
-//                                              CBufFlat*& aBuffer )
-// Creates an attachment to device's Inbox
-// -----------------------------------------------------------------------------
-//  
-TInt CSConInboxHandler::CreateInboxAttachmentL( CObexBufObject*& aObject,
-                                                CBufFlat*& aBuffer )
-    {
-    TRACE_FUNC_ENTRY;
-    TInt ret( KErrNone );
-    iDrive = GetMessageCenterDriveL();
-    
-    delete aObject;
-    aObject = CObexBufObject::NewL( NULL );
-    
-    iFile = RFile();
-    
-    TRAP( ret, TObexUtilsMessageHandler::CreateInboxAttachmentL( aObject, 
-    KUidMsgTypeBt, iMsvIdParent, iFile ) );
-        
-    if( aBuffer )
-        {
-        aBuffer->Reset();
-        delete aBuffer;
-        }
-        
-    aBuffer = CBufFlat::NewL( KSConBufferSize );
-    aBuffer->ResizeL( KSConBufferSize );
-    
-    TObexRFileBackedBuffer bufferdetails( *aBuffer, iFile, 
-    CObexBufObject::EDoubleBuffering );
-    aObject->SetDataBufL( bufferdetails );
-    LOGGER_WRITE_1( "CSConInboxHandler::CreateInboxAttachmentL() : returned %d", ret );
-    return ret;
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConInboxHandler::SaveObjToInboxL( CObexBufObject*& aObject )
-// Saves the object to the Inbox
-// -----------------------------------------------------------------------------
-//  
-TInt CSConInboxHandler::SaveObjToInboxL( CObexBufObject*& aObject )
-    {
-    TRACE_FUNC_ENTRY;
-    TInt ret( KErrNone );
-    
-    if( iDrive == EDriveE )
-        {
-        ret = TObexUtilsMessageHandler::GetMmcFileSystemStatus();
-        LOGGER_WRITE_1( "GetMmcFileSystemStatus returned %d", ret );
-        }
-    else
-        {
-        ret = TObexUtilsMessageHandler::GetFileSystemStatus();
-        LOGGER_WRITE_1( "GetFileSystemStatus returned %d", ret );
-        }
-       
-    if( ret == KErrNone )
-        {
-        TInt tempDrive = GetMessageCenterDriveL();
-    
-        if( tempDrive == iDrive )
-            {
-            LOGGER_WRITE_1( "before SaveObjToInboxL in SaveObjToInboxL %d", ret );
-            TRAP( ret, TObexUtilsMessageHandler::SaveObjToInboxL( aObject, 
-            iFile, iMsvIdParent ) );
-            LOGGER_WRITE_1( "after SaveObjToInboxL in SaveObjToInboxL %d", ret );
-            }
-        else
-            {
-            ret = KErrGeneral;
-            }   
-            
-        if( ret != KErrNone )
-            {
-            LOGGER_WRITE_1( "before RemoveInboxEntriesL in SaveObjToInboxL %d", ret );
-            TObexUtilsMessageHandler::RemoveInboxEntriesL( aObject, 
-            iMsvIdParent );
-            LOGGER_WRITE_1( "after RemoveInboxEntriesL in SaveObjToInboxL %d", ret );
-            }
-        }
-        
-    LOGGER_WRITE_1( "CSConInboxHandler::SaveObjToInboxL( CObexBufObject* aObject ) : returned %d", ret );
-    return ret;
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConInboxHandler::AbortInboxOperation( CObexBufObject*& aObject )
-// Aborts the storing operation
-// -----------------------------------------------------------------------------
-//  
-TInt CSConInboxHandler::AbortInboxOperation( CObexBufObject*& aObject )
-    {
-    TRACE_FUNC_ENTRY;
-    TInt ret( KErrNone );
-    TRAP( ret, TObexUtilsMessageHandler::RemoveInboxEntriesL( aObject, 
-    iMsvIdParent ) );
-    LOGGER_WRITE_1( "CSConInboxHandler::AbortInboxOperation() returned %d", ret );
-    return ret;
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConInboxHandler::GetMessageCenterDriveL()
-// Returns the current message center drive
-// -----------------------------------------------------------------------------
-//  
-TInt CSConInboxHandler::GetMessageCenterDriveL()
-    {
-    TRACE_FUNC_ENTRY;
-    TInt drive;
-    CMsvSession* msvSession = CMsvSession::OpenSyncL( *this );
-    CleanupStack::PushL( msvSession );
-    TDriveUnit driveUnit = msvSession->CurrentDriveL();
-    drive = driveUnit.operator TInt();
-    CleanupStack::PopAndDestroy( msvSession );
-    LOGGER_WRITE_1( "CSConInboxHandler::GetMessageCenterDriveL() returned %d", drive );
-    return drive;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConInboxHandler::HandleSessionEventL( TMsvSessionEvent aEvent, 
-//                              TAny* aArg1, 
-//                              TAny* aArg2, 
-//                              TAny* aArg3 )
-// Implementation of MMsvSessionObserver::HandleSessionEventL
-// -----------------------------------------------------------------------------
-//      
-void CSConInboxHandler::HandleSessionEventL( TMsvSessionEvent /*aEvent*/, 
-                                TAny* /*aArg1*/, 
-                                TAny* /*aArg2*/, 
-                                TAny* /*aArg3*/ )
-    {
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConInboxHandler::CSConInboxHandler()
-// Default constructor
-// -----------------------------------------------------------------------------
-//  
-CSConInboxHandler::CSConInboxHandler()
-    {
-    }   
-
-// End of file
-
--- a/connectivitymodules/SeCon/services/pcd/bld/bld.inf	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +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 file provides the information required for building the
-*    whole of a SConPCD
-*
-*/
-
-
-
-PRJ_PLATFORMS
-DEFAULT 
-
-PRJ_EXPORTS
-./sbeconfig.xml	/epoc32/data/Z/private/10202D56/sbeconfig.xml
-
-PRJ_MMPFILES
-sconpcd.mmp
-
--- a/connectivitymodules/SeCon/services/pcd/bld/def/bwinscwu.def	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-EXPORTS
-	?CreateCSConPCDL@@YAPAVCSConPCD@@XZ @ 1 NONAME ; class CSConPCD * CreateCSConPCDL(void)
-
--- a/connectivitymodules/SeCon/services/pcd/bld/def/eabiuu.def	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-EXPORTS
-	_Z15CreateCSConPCDLv @ 1 NONAME
-	_ZTI8CSConPCD @ 2 NONAME ; #<TI>#
-	_ZTV8CSConPCD @ 3 NONAME ; #<VT>#
-
--- a/connectivitymodules/SeCon/services/pcd/bld/sbeconfig.xml	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-<?xml version="1.0" standalone="yes"?>
-<sbe_config>
-	<heap size = "131072" max_retries = "5" reduction_factor = "2"/> 
-	<central_repository uid = "0x10202BE9"/>
-	<exclude_drives list = "z"/>
-	<app_close_delay delay = "4000000"/>
-</sbe_config>
\ No newline at end of file
--- a/connectivitymodules/SeCon/services/pcd/bld/sconpcd.mmp	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,88 +0,0 @@
-/*
-* Copyright (c) 2005-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:  PC Connectivity Signaling Module
-*
-*/
-
-
-// To get the MW_LAYER_SYSTEMINCLUDE-definition
-#include <platform_paths.hrh>
-#include <data_caging_paths.hrh>
-
-VENDORID        VID_DEFAULT
-
-CAPABILITY      CAP_GENERAL_DLL
-
-TARGETPATH      sys/bin
-
-TARGET          sconpcd.dll
-TARGETTYPE      DLL
-UID             0x10009D8D 0x101F968B
-
-#if defined(ARMCC)
-DEFFILE	./def/eabiu
-#elif defined(WINSCW) 
-DEFFILE	./def/bwinscw
-#elif defined(WINS)
-DEFFILE	./def/bwins
-#elif defined(ARM)
-DEFFILE	./def/bmarm
-#endif
-
-SOURCEPATH      ../src
-SOURCE          sconpcd.cpp
-SOURCE          sconqueue.cpp
-SOURCE          sconinstqueue.cpp
-SOURCE          sconbrqueue.cpp
-SOURCE          sconinstaller.cpp
-SOURCE          sconbackuprestore.cpp
-SOURCE          sconsbeclient.cpp
-SOURCE          sconpcdutility.cpp
-SOURCE          sconmetadata.cpp
-SOURCE          sconvideoparser.cpp
-SOURCE          cscontimeout.cpp
-
-SOURCEPATH      ../../../common/conmltask/src
-SOURCE          sconconmltask.cpp
-
-USERINCLUDE     ../inc
-USERINCLUDE     ../../../inc
-USERINCLUDE     ../../../common/conmltask/inc
-
-// Default system include paths
-APP_LAYER_SYSTEMINCLUDE
-
-
-LIBRARY         euser.lib 
-LIBRARY         swinstcli.lib
-LIBRARY         sbeclient.lib
-LIBRARY         sisregistryclient.lib
-LIBRARY         javaregistryclient.lib
-LIBRARY         platformenv.lib
-LIBRARY         efsrv.lib
-LIBRARY         sysutil.lib
-LIBRARY         commonengine.lib        // For resource reader
-LIBRARY         WidgetRegistryClient.lib
-LIBRARY         metadatautility.lib
-LIBRARY         exiflib.lib
-LIBRARY         charconv.lib
-LIBRARY         caf.lib                 // for Content Access
-LIBRARY         MediaClientVideo.lib    // for CVideoPlayerUtility
-LIBRARY         ws32.lib                // for RWsSession
-LIBRARY         TNEEngine.lib           // for CTNEVideoClipInfo
-LIBRARY         ImageConversion.lib         // for CImageEncoder
-LIBRARY         MMFControllerFramework.lib  // for CMMFMetaDataEntry
-LIBRARY         bafl.lib                    // for BaflUtils
-DEBUGLIBRARY    flogger.lib
-// End of file
--- a/connectivitymodules/SeCon/services/pcd/inc/cscontimeout.h	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,56 +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:  CSconTimeOut declaration
-*
-*/
-
-
-#ifndef CSCONTIMEOUT_H
-#define CSCONTIMEOUT_H
-
-#include <e32base.h>	// For CActive, link against: euser.lib
-#include <e32std.h>		// For RTimer, link against: euser.lib
-
-class MTimeOutObserver
-    {
-public:
-    virtual void TimeOut() = 0;
-    };
-
-NONSHARABLE_CLASS( CSconTimeOut ) : public CActive
-    {
-public:
-    // Cancel and destroy
-    ~CSconTimeOut();
-    static CSconTimeOut* NewL( MTimeOutObserver& aTimeOutObserver );
-    
-public:
-    // Function for making the timeout request
-    void Start(TTimeIntervalMicroSeconds32 aDelay);
-    
-private:
-    CSconTimeOut( MTimeOutObserver& aTimeOutObserver );
-    void ConstructL();
-    
-private: // From CActive
-    void RunL();
-    void DoCancel();
-    TInt RunError(TInt aError);
-    
-private:
-    RTimer              iTimer; // Provides async timing service
-    MTimeOutObserver&   iTimeOutObserver;
-    };
-
-#endif // CSCONTIMEOUT_H
--- a/connectivitymodules/SeCon/services/pcd/inc/sconbackuprestore.h	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,113 +0,0 @@
-/*
-* Copyright (c) 2005-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:  CSConBackupRestore header file
-*
-*/
-
-
-#ifndef _SCONBACKUPRESTORE_H_
-#define _SCONBACKUPRESTORE_H_
-
-// INCLUDES
-
-#include <e32base.h>
-#include <e32cons.h>
-
-class CSConSBEClient;
-class CSConBackupRestoreQueue;
-class RFs;
-
-//============================================================
-// Class CSConBackupRestore declaration
-//============================================================	
-NONSHARABLE_CLASS( CSConBackupRestore ): public CActive
-	{
-	public:
-		/**
-		 * Two-phase constructor
-		 * @param aQueue The address of CSConBackupRestoreQueue
-		 * @param aMaxObjectSize Max object size
-		 * @param aFs aReference to RFs connection.
-    	 * @return CSConBackupRestore instance
-		 */
-		static CSConBackupRestore* NewL( 
-			CSConBackupRestoreQueue* aQueue, 
-			const TInt aMaxObjectSize, RFs& aFs );
-		/**
-		 * Destructor
-		 * @return none
-		 */
-		~CSConBackupRestore();
-		
-		/**
-		 * Starts backup-restore task
-		 * @param aTaskId The task number
-    	 * @return none
-		 */
-		void StartBackupRestore( TInt aTaskId );
-		/**
-		 * Stops executing backup-restore task
-		 * @param aTaskId
-    	 * @return none
-		 */
-		void StopBackupRestore( TInt aTaskId );
-		/**
-		 * Resets backup
-		 * @return none
-		 */
-		void Reset();
-		
-		/**
-		 * Returns the active status of the backup-restore
-		 * @return ETrue if backup-restore is active, else EFalse
-		 */
-		TBool BackupRestoreActive() const;
-		
-	private:
-		/**
-		 * Constructor
-		 * @param aQueue The address of CSConBackupRestoreQueue
-		 * @param aFs aReference to RFs connection.
-		 * @return none
-		 */
-		CSConBackupRestore( CSConBackupRestoreQueue* aQueue, RFs& aFs );
-		/**
-		 * Initializes member data
-		 * @param aMaxObjectSize Max object size
-		 * @return none
-		 */
-		void ConstructL( const TInt aMaxObjectSize );
-		/**
-		 * Implementation of CActive::DoCancel()
-		 * @return none
-		 */
-		void DoCancel();
-		/**
-		 * Implementation of CActive::RunL()
-		 * @return none
-		 */
-		void RunL();
-		
-	private:
-		CSConBackupRestoreQueue*		iQueue; 
-		CSConSBEClient*					iSBEClient;
-		TInt							iCurrentTask;
-		TInt							iMaxObjectSize;
-		TBool							iBackupRestoreActive;
-		RFs&                            iFs;
-	};
-	
-#endif // _SCONBACKUPRESTORE_H_
-
-// End of file
--- a/connectivitymodules/SeCon/services/pcd/inc/sconbrqueue.h	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,124 +0,0 @@
-/*
-* Copyright (c) 2005-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:  Backup-Restore Queue header file
-*
-*/
-
-
-#ifndef _SCONBRQUEUE_H_
-#define _SCONBRQUEUE_H_
-
-#include "sconqueue.h"
-
-class CSConTaskQueue;
-
-//============================================================
-// Class CSConBackupRestoreQueue declaration
-//============================================================	
-NONSHARABLE_CLASS ( CSConBackupRestoreQueue ) : public CActive, public CSConTaskQueue
-	{
-	public:
-		/**
-		 * Two-phase constructor
-		 * @param aMaxObjectSize Max object size
-		 * @param aFs aReference to RFs connection.
-		 * @return CSConBackupRestoreQueue instance
-		 */
-		static CSConBackupRestoreQueue* NewL( const TInt aMaxObjectSize, RFs& aFs );
-		/**
-		 * Destructor
-		 * @return CSConBackupRestoreQueue instance
-		 */
-		~CSConBackupRestoreQueue();
-		/**
-		 * Adds a new task to queue
-		 * @param aNewTask A new task to be added
-		 * @param aTaskId The task number
-    	 * @return KErrNone if no errors, else system wide error codes
-		 */
-		TInt AddNewTask( CSConTask*& aNewTask, TInt aTaskId );
-		/**
-		 * Cancels a task
-		 * @param aTask The task number
-		 * @param aAllTasks If ETrue => cancel all tasks
-		 * @param aStatus The reply
-    	 * @return none
-		 */	
-		void CancelTask( TInt aTask, TBool aAllTasks );
-		/**
-		 * Resets the queue
-    	 * @return none
-		 */
-		void Reset();
-		/**
-		 * An address pointer to another queue
-		 * @param aTaskQueue The address to another queue
-    	 * @return none
-		 */
-		virtual void QueueAddress( CSConInstallerQueue*& aTaskQueue );
-		/**
-		 * Returns the task type
-		 * @param aTaskId The task number
-    	 * @return task type
-		 */	
-		TSConMethodName GetTaskMethodL( TInt aTaskId );
-		
-	private:
-		/**
-		 * Constructor
-		 * @return none
-		 */
-		CSConBackupRestoreQueue();
-		/**
-		 * Initializes member data
-		 * @param aMaxObjectSize Max object size
-		 * @param aFs aReference to RFs connection.
-		 * @return none
-		 */
-		void ConstructL( const TInt aMaxObjectSize, RFs& aFs );
-		/**
-		 * Polls queue
-		 * @return none
-		 */
-		void PollQueue();
-		/**
-		 * Starts queue polling
-		 * @return none
-		 */
-		void StartQueue();
-		/**
-		 * Stops queue polling
-		 * @return none
-		 */
-		void StopQueue();
-		/**
-		 * Implementation of CActive::DoCancel()
-		 * @return none
-		 */
-		void DoCancel();
-		/**
-		 * Implementation of CActive::RunL()
-		 * @return none
-		 */
-		void RunL();
-		
-	private:
-		CSConBackupRestore*			iBackupRestore;
-		CSConInstallerQueue*		iInstQueueAddress;
-	};
-
-
-#endif
-
-// End of file
--- a/connectivitymodules/SeCon/services/pcd/inc/sconinstaller.h	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,120 +0,0 @@
-/*
-* Copyright (c) 2005-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:  CSConAppInstaller header file
-*
-*/
-
-
-#ifndef _SCONINSTALLER_H_
-#define _SCONINSTALLER_H_
-
-// INCLUDES
-
-#include <e32base.h>
-#include <e32cons.h>
-#include <SWInstApi.h>
-
-#include "sconinstqueue.h"
-
-class CSConUninstall;
-
-//============================================================
-// Class CSConAppInstaller declaration
-//============================================================	
-NONSHARABLE_CLASS ( CSConAppInstaller ): public CActive
-	{
-	public:
-		/**
-		 * Constructor
-		 * @param aQueue The address of CSConInstallerQueu
-    	 * @return none
-		 */
-		CSConAppInstaller( CSConInstallerQueue* aQueue, RFs& aFs );
-		
-		/**
-		 * Destructor
-		 * @return none
-		 */
-		~CSConAppInstaller();
-		
-		/**
-		 * Starts the installer task
-		 * @param aTaskId Task number
-    	 * @return none
-		 */
-		void StartInstaller( TInt& aTaskId );
-		/**
-		 * Stops the installer task
-    	 * @return none
-		 */
-		void StopInstaller( TInt& aTaskId );
-		
-		/**
-		 * Returns the active status of the installer
-		 * @return ETrue if installer is active, else EFalse
-		 */
-		TBool InstallerActive() const;
-		
-	private:
-		/**
-		 * Implementation of CActive::DoCancel()
-		 * @return none
-		 */
-		void DoCancel();
-		/**
-		 * Implementation of CActive::RunL()
-		 * @return none
-		 */
-		void RunL();
-		/**
-		 * Executes ListInstalledApps task
-		 * @return none
-		 */
-		void ProcessListInstalledAppsL();
-		/**
-		 * Execures UnInstall task
-		 * @param CSConUninstall uninstall params
-    	 * @return none
-		 */
-		void ProcessUninstallL( const CSConUninstall& aUninstallParams );
-		
-		void UninstallSisL( const CSConUninstall& aUninstallParams );
-		void UninstallJavaL( const TUid& aUid, const TSConInstallMode aMode );
-		void UninstallWidget( const TUid& aUid, const TSConInstallMode aMode );
-		void DeleteFile( const TDesC& aPath );
-		
-	private:
-	    enum TInstallerState
-	        {
-	        EIdle = 0,
-	        EInstalling,
-	        ESilentInstalling,
-	        EUninstalling,
-	        ESilentUninstalling,
-	        ECustomUninstalling,
-	        ESilentCustomUnistalling,
-	        EListingInstalledApps
-	        };
-	    TInstallerState                 iInstallerState;
-		CSConInstallerQueue*			iQueue; // Not owned
-		SwiUI::RSWInstLauncher			iSWInst;
-		SwiUI::TInstallOptions          iOptions;
-        SwiUI::TInstallOptionsPckg      iOptionsPckg;   
-		TInt							iCurrentTask;
-		RFs&                            iFs;
-	};
-	
-#endif // _SCONINSTALLER_H_
-
-// End of file
--- a/connectivitymodules/SeCon/services/pcd/inc/sconinstqueue.h	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,104 +0,0 @@
-/*
-* Copyright (c) 2005-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:  Installer Queue header file
-*
-*/
-
-
-#ifndef _SCONINSTQUEUE_H_
-#define _SCONINSTQUEUE_H_
-
-#include "sconqueue.h"
-
-
-//============================================================
-// Class CSConInstallerQueue declaration
-//============================================================	
-NONSHARABLE_CLASS ( CSConInstallerQueue ): public CActive, public CSConTaskQueue
-	{
-	public:
-		/**
-		 * Two-phase constructor
-		 * @return CSConInstallerQueue instance
-		 */
-		static CSConInstallerQueue* NewL( RFs& aFs );
-		/**
-		 * Destructor
-		 * @return none
-		 */
-		~CSConInstallerQueue();
-		
-		/**
-		 * Cancels a task
-		 * @param aTask The task number
-		 * @param aAllTasks If ETrue => cancel all tasks
-		 * @param aStatus The reply
-    	 * @return none
-		 */	
-		void CancelTask( TInt aTask, TBool aAllTasks );
-		
-		/**
-		 * An address pointer to another queue
-		 * @param aTaskQueue The address to another queue
-    	 * @return none
-		 */			
-		void QueueAddress( CSConBackupRestoreQueue*& aTaskQueue );
-		
-	private:
-		/**
-		 * Constructor
-		 * @return none
-		 */
-		CSConInstallerQueue( RFs& aFs );
-		/**
-		 * Initializes member data
-		 * @return none
-		 */
-		void ConstructL();
-		/**
-		 * Polls queue
-		 * @return none
-		 */
-		void PollQueue();
-		/**
-		 * Starts queue polling
-		 * @return none
-		 */
-		void StartQueue();
-		/**
-		 * Stops queue polling
-		 * @return none
-		 */
-		void StopQueue();
-		/**
-		 * Implementation of CActive::DoCancel()
-		 * @return none
-		 */
-		void DoCancel();
-		/**
-		 * Implementation of CActive::RunL()
-		 * @return none
-		 */
-		void RunL();
-		
-	private:
-		CSConAppInstaller* 			iInstaller;	
-		CSConBackupRestoreQueue*	iBRQueueAddress;
-		RFs&                        iFs; 
-	};
-
-
-#endif
-
-// End of file
--- a/connectivitymodules/SeCon/services/pcd/inc/sconmetadata.h	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,148 +0,0 @@
-/*
-* Copyright (c) 2007-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:  SConMetadata header file
-*
-*/
-
-
-#ifndef _SCONMETADATA_H_
-#define _SCONMETADATA_H_
-
-#include <MetaDataField.hrh>
-
-class CSConTask;
-class CExifRead;
-class CExifTag;
-//============================================================
-// Class CSConMetadata declaration
-//============================================================  
-NONSHARABLE_CLASS( SConMetadata )
-    {
-    public:
-    
-    /**
-     * Start processing metadata task
-     * @param aTask used task
-     * @param aFs aReference to RFs connection.
-     * @return none
-     */
-    static void ProcessTask( CSConTask& aTask, RFs& aFs );
-    
-    private:
-    
-    /**
-    * Get audio metadata to task
-    * @return none
-    */
-    static void GetAudioMetadataL( CSConTask& aTask );
-    
-    /**
-    * Get video metadata to task
-    * @param aFs aReference to RFs connection.
-    * @return none
-    */
-    static void GetVideoMetadataL( CSConTask& aTask, RFs& aFs );
-    
-    /**
-    * parse exif field
-    * @return HBufC8* parsed data. Leaves if not found
-    */
-    static HBufC8* GetExifTagL( CExifRead* aReader, const TUint8 aTagID ) ;
-    
-    /**
-    * Parse TUint32 value from aData
-    * @return TUint32 value
-    */
-    static TUint32 ReadTUint32( const TDesC8& aData );
-    
-    /**
-     * Read data from file
-     * @param aFs aReference to RFs connection.
-     * @return file data
-     */
-    static HBufC8* GetFileDataLC( const TDesC& aFilename, RFs& aFs );
-    
-    /**
-    * Get exif metadata to task
-    * @param aFs aReference to RFs connection.
-    * @return none
-    */
-    static void ReadExifDataL( CSConTask& aTask, RFs& aFs );
-    
-    /**
-     * Convert latidute/longitude tag to TReal64 value
-     * @return KErrNone if successfully converted
-     */
-    static TInt ConvertRationalTag( const CExifTag& aTag, TDes& aPosDegrees );
-    
-    /**
-     * Get latidute value from Exif
-     * @param aExifRead ExifReader used to read
-     * @param aLatitude readed latidute
-     * @return KErrNone if found
-     */
-    static TInt GetExifGPSLatitudeL( CExifRead& aExifRead, TDes& aLatitude );
-    
-    /**
-     * Get longitude value from Exif
-     * @param aExifRead ExifReader used to read
-     * @param aLongitude readed longitude
-     * @return KErrNone if found
-     */
-    static TInt GetExifGPSLongitudeL( CExifRead& aExifRead, TDes& aLongitude );
-    
-    /**
-     * Get altidute value from Exif
-     * @param aExifRead ExifReader used to read
-     * @param aAltidute readed altidute
-     * @return KErrNone if found
-     */
-    static TInt GetExifGPSAltiduteL( CExifRead& aExifRead, TDes& aAltidute );
-    
-    /**
-    * Appends data field to buffer
-    * @return none
-    */
-    static void AppendUtf8DataFieldL( CBufFlat* aBuffer, const TPtrC aAppendData,
-        const TUint8 aFieldId );
-    
-    /**
-    * Appends data field to buffer
-    * @return none
-    */
-    static void AppendByteDataFieldL( CBufFlat* aBuffer, const TPtrC8 aAppendData,
-        const TUint8 aFieldId );
-    
-    /**
-    * Writes TUint32 value to buffer
-    * @return none
-    */
-    static void WriteTUint32( CBufFlat* aBuffer, TInt offset, TUint32 aValue );
-    
-    /**
-    * Appends data field to buffer
-    * @return none
-    */
-    static void AppendTUintDataFieldL( CBufFlat* aBuffer, TUint32 aValue,
-        const TUint8 aFieldId );
-    
-    /**
-    * Get AudioFieldId
-    * @return TUint8
-    */
-    static TUint8 AudioFieldId( const TMetaDataFieldId fieldId );
-    
-    };
-
-#endif // _SCONMETADATA_H_
--- a/connectivitymodules/SeCon/services/pcd/inc/sconmetadatafielddefs.h	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,128 +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:  Metadata field definitions
-*
-*/
-
-
-#ifndef _SCONMETADATAFIELDDEFS_H_
-#define _SCONMETADATAFIELDDEFS_H_
-
-// Content type header
-const TUint8 KSconMetadataHeaderAudio( 0x01 );
-const TUint8 KSconMetadataHeaderExif ( 0x02 );
-const TUint8 KSconMetadataHeaderVideo( 0x03 );
-
-const TUint8 KSconMetadataHeaderVersion ( 0x02 ); // format version = 2
-
-// fields for audio
-const TUint8 KSconAudioID3Version   ( 0x01 );
-const TUint8 KSconAudioTitle        ( 0x02 );
-const TUint8 KSconAudioArtist       ( 0x03 );
-const TUint8 KSconAudioAlbum        ( 0x04 );
-const TUint8 KSconAudioYear         ( 0x05 );
-const TUint8 KSconAudioComment      ( 0x06 );
-const TUint8 KSconAudioAlbumTrack   ( 0x07 );
-const TUint8 KSconAudioGenre        ( 0x08 );
-const TUint8 KSconAudioComposer     ( 0x09 );
-const TUint8 KSconAudioCopyright    ( 0x0a );
-const TUint8 KSconAudioOriginalArtist( 0x0b );
-const TUint8 KSconAudioUrl          ( 0x0c );
-const TUint8 KSconAudioUserUrl      ( 0x0d );
-const TUint8 KSconAudioJpeg         ( 0x0e );
-const TUint8 KSconAudioVendor       ( 0x0f );
-const TUint8 KSconAudioRating       ( 0x10 );
-const TUint8 KSconAudioUniqueFileIdentifier( 0x11 );
-const TUint8 KSconAudioDuration     ( 0x12 );
-const TUint8 KSconAudioDate         ( 0x13 );
-
-// fields for exif
-const TUint8 KSconExifThumbnail         ( 0x01 );
-const TUint8 KSconExifDescription       ( 0x02 );
-const TUint8 KSconExifMake              ( 0x03 );
-const TUint8 KSconExifModel             ( 0x04 );
-const TUint8 KSconExifDateTime          ( 0x05 );
-const TUint8 KSconExifSoftware          ( 0x06 );
-const TUint8 KSconExifCopyright         ( 0x07 );
-const TUint8 KSconExifOrientation       ( 0x08 );
-const TUint8 KSconExifXResolution1      ( 0x09 );
-const TUint8 KSconExifXResolution2      ( 0x0a );
-const TUint8 KSconExifYResolution1      ( 0x0b );
-const TUint8 KSconExifYResolution2      ( 0x0c );
-const TUint8 KSconExifResolutionUnit    ( 0x0d );
-const TUint8 KSconExifYCbCrPositioning  ( 0x0e );
-const TUint8 KSconExifIsoSpeedRatings   ( 0x0f );
-const TUint8 KSconExifDateTimeOriginal  ( 0x10 );
-const TUint8 KSconExifDateTimeDigitized ( 0x11 );
-const TUint8 KSconExifMakerNote         ( 0x12 );
-const TUint8 KSconExifUserComment       ( 0x13 );
-const TUint8 KSconExifRelatedSoundFile  ( 0x14 );
-const TUint8 KSconExifExposureTime1     ( 0x15 );
-const TUint8 KSconExifExposureTime2     ( 0x16 );
-const TUint8 KSconExifComponentsConfiguration ( 0x17 );
-const TUint8 KSconExifFlash             ( 0x18 );
-const TUint8 KSconExifColorSpace        ( 0x19 );
-const TUint8 KSconExifPixelXDimension   ( 0x1a );
-const TUint8 KSconExifPixelYDimension   ( 0x1b );
-const TUint8 KSconExifExposureMode      ( 0x1c );
-const TUint8 KSconExifWhiteBalance      ( 0x1d );
-const TUint8 KSconExifSceneCaptureType  ( 0x1e );
-const TUint8 KSconExifExposureProgram   ( 0x1f );
-const TUint8 KSconExifApertureValue1    ( 0x20 );
-const TUint8 KSconExifApertureValue2    ( 0x21 );
-const TUint8 KSconExifExposureBiasValue1 ( 0x22 );
-const TUint8 KSconExifExposureBiasValue2 ( 0x23 );
-const TUint8 KSconExifMeteringMode      ( 0x24 );
-const TUint8 KSconExifLightSource       ( 0x25 );
-const TUint8 KSconExifFileSource        ( 0x26 );
-const TUint8 KSconExifDigitalZoomRatio1 ( 0x27 );
-const TUint8 KSconExifDigitalZoomRatio2 ( 0x28 );
-const TUint8 KSconExifContrast          ( 0x29 );
-const TUint8 KSconExifSaturation        ( 0x2a );
-const TUint8 KSconExifSharpness         ( 0x2b );
-const TUint8 KSconExifExifVersion       ( 0x2c );
-const TUint8 KSconExifFlashPixVersion   ( 0x2d );
-const TUint8 KSconExifThumbXResolution1 ( 0x2e );
-const TUint8 KSconExifThumbXResolution2 ( 0x2f );
-const TUint8 KSconExifThumbYResolution1 ( 0x30 );
-const TUint8 KSconExifThumbYResolution2 ( 0x31 );
-const TUint8 KSconExifThumbResolutionUnit   ( 0x32 );
-const TUint8 KSconExifThumbCompression      ( 0x33 );
-const TUint8 KSconExifThumbJpegInterchangeFormat        ( 0x34 );
-const TUint8 KSconExifThumbJpegInterchangeFormatLength  ( 0x35 );
-const TUint8 KSconExifShutterSpeedValue1 ( 0x36 );
-const TUint8 KSconExifShutterSpeedValue2 ( 0x37 );
-const TUint8 KSconExifBrightnessValue1  ( 0x38 );
-const TUint8 KSconExifBrightnessValue2  ( 0x39 );
-const TUint8 KSconExifCustomRendered    ( 0x3a );
-const TUint8 KSconExifGainControl       ( 0x3b );
-const TUint8 KSconExifGpsVersion        ( 0x3c );
-const TUint8 KSconExifGPSLatitude    	( 0x3d );
-const TUint8 KSconExifGPSLongitude      ( 0x3e );
-const TUint8 KSconExifGPSAltitude       ( 0x3f );
-const TUint8 KSconExifBitDepth	        ( 0x40 );
-
-// fields for video
-const TUint8 KSconVideoFormat			( 0x01 );
-const TUint8 KSconVideoFrameRate		( 0x02 );
-const TUint8 KSconVideoFrameSizeWidth	( 0x03 );
-const TUint8 KSconVideoFrameSizeHeight	( 0x04 );
-const TUint8 KSconVideoVideoBitRate		( 0x05 );
-const TUint8 KSconVideoAudioBitRate		( 0x06 );
-const TUint8 KSconVideoDuration			( 0x07 );
-const TUint8 KSconVideoThumbnail		( 0x08 );
-const TUint8 KSconVideoAudioStreamMimetype	( 0x09 );
-const TUint8 KSconVideoVideoStreamMimetype	( 0x0a );
-
-#endif // _SCONMETADATAFIELDDEFS_H_
--- a/connectivitymodules/SeCon/services/pcd/inc/sconpcd.h	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,163 +0,0 @@
-/*
-* Copyright (c) 2005-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:  CSConPCD service header
-*
-*/
-
-
-#ifndef _SCONPCD_H_
-#define _SCONPCD_H_
-
-// INCLUDES
-
-#include <e32base.h>
-#include <e32cons.h>
-
-#include "sconconmltask.h"
-
-class CSConInstallerQueue;
-class CSConBackupRestoreQueue;
-
-enum TSConLastConMLOperation
-    {
-    ENoTask = 0,
-    EPutTask,
-    EGetReply
-    };
-
-//============================================================
-// Class CSConPCD declaration
-//============================================================
-class CSConPCD : public CBase
-    {
-    public:
-        /**
-         * Two-phase constructor
-         * @return CSConPCD instance
-         */
-        static CSConPCD* NewL();
-        /**
-         * Destructor
-         * @return none
-         */
-        ~CSConPCD();
-        /**
-         * Receives a new task
-         * @param aTask A new task
-         * @return KErrNone if no errors, else system wide error codes
-         */
-        virtual TInt PutTaskL( CSConTask*& aTask );
-        /**
-         * Returns a reply to previous PutTaskL operation
-         * @return CSConStatusReply if reply exists, else return NULL
-         */
-        virtual CSConStatusReply* GetReply();
-        /**
-         * Resets the module to the initial state
-         * @return none
-         */
-        virtual void ResetPCD();
-    
-    private:        
-        /**
-         * Collects a status of a specified task / all tasks
-         * @param aTask The number of the specified task
-         * @param aAll If ETrue => receive status of all tasks
-         * @return KErrNone if no errors, else system wide error codes
-         */
-        TInt GetStatusL( TInt aTask, TBool aAll );
-        
-        /**
-         * Cancels a specified task / all tasks
-         * @param aTask The number of the specified task
-         * @param aAll If ETrue => receive status of all tasks
-         * @return KErrNone if no errors, else system wide error codes
-         */
-        TInt CancelL( TInt aTask, TBool aAll );
-        
-        /**
-         * Fills a reply with predefined supported task -information
-         * @param aTask The task
-         * @return KErrNone if no errors, else system wide error codes
-         */
-        TInt SupportedInstTaskL( CSConTask* aTask );
-        
-        /**
-         * Fills a reply with predefined supported task -information
-         * @param aTask The task
-         * @return KErrNone if no errors, else system wide error codes
-         */
-        TInt SupportedBRTaskL( CSConTask* aTask );
-        
-        /**
-         * Fills a reply with predefined Reboot task -information
-         * @param aTask The task
-         * @return KErrNone if no errors, else system wide error codes
-         */
-        TInt RebootTaskL( const CSConTask* aTask );
-        
-        /**
-         * Fills a reply with predefined GetMetadata task -information
-         * @param aTask The task
-         * @return none
-         */
-        void GetMetadataTaskL( CSConTask& aTask );
-        
-        /**
-         * Creates a reply for UpdateDeviceInfo task
-         * @param aMaxObjectSize A max object size to be used
-         * @return none
-         */
-        TInt UpdateDeviceInfoL( TInt aMaxObjectSize );
-        /**
-         * Gets the current max object size
-         * @param aClientObjectSize The object size of the client
-         * @return the max object size
-         */
-        TInt GetMaxObjectSize( TInt aClientObjectSize ) const;
-        
-        /**
-         * Stores a reply
-         * @param aReply The reply to be stored
-         * @return none
-         */
-        void StoreReply( CSConStatusReply*& aReply );
-        
-        /**
-         * Constructor
-         * @return none
-         */
-        CSConPCD();
-        /**
-         * Initializes member data
-         * @return none
-         */
-        virtual void ConstructL();
-        
-    private:
-        CSConInstallerQueue*        iInstallerQueue;
-        CSConBackupRestoreQueue*    iBackupRestoreQueue;
-        CSConStatusReply*           iLatestReply;
-        TInt                        iTaskNumber;
-        TInt                        iMaxObjectSize;
-        TSConLastConMLOperation     iLastOperation;
-        RFs                         iFs;
-    }; 
-    
-    IMPORT_C CSConPCD* CreateCSConPCDL();
-    typedef CSConPCD* (*TSConCreateCSConPCDFunc) (); 
-
-#endif // SCONPCD
-
-// End of file
--- a/connectivitymodules/SeCon/services/pcd/inc/sconpcdconsts.h	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,90 +0,0 @@
-/*
-* Copyright (c) 2005-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:  CSConPCD constants
-*
-*/
-
-
-#ifndef _SCONPCDCONSTS_H
-#define _SCONPCDCONSTS_H
-
-// Timer value used for queue polling
-const TInt KSConTimerValue( 20000 );
-// ConML Status code: Task completed
-const TInt KSConCodeTaskCompleted( 200 );
-// ConML Status code: Task created
-const TInt KSConCodeTaskCreated( 201 );
-// ConML Status code: Task prcosessing started
-const TInt KSConCodeProcessingStarted( 202 );
-// ConML Status code: Task partially completed
-const TInt KSConCodeTaskPartiallyCompleted( 206 );
-// ConML Status code: Not found
-const TInt KSConCodeNotFound( 404 );
-// ConML Status code: Conflict
-const TInt KSConCodeConflict( 409 );
-// ConML Status code: Not supported
-const TInt KSConCodeNotSupported( 501 );
-// ConML Status code: Incompatible version
-const TInt KSConCodeIncompatible( 507 );
-// ConML Status code: Cancelled
-const TInt KSConCodeCancelled( 514 );
-// ConML Status code: No memory
-const TInt KSConCodeNoMemory( 420 );
-
-// ConML Status codes in installer errorcases
-const TInt KSConCodeInstErrUserCancel = KSConCodeCancelled; // User cancelled the operation
-const TInt KSConCodeInstErrFileCorrupted = 600; // File is corrupted
-const TInt KSConCodeInstErrInsufficientMemory = KSConCodeNoMemory; // Insufficient free memory in the drive to perform the operation
-const TInt KSConCodeInstErrPackageNotSupported = KSConCodeIncompatible; // Installation of the package is not supported
-const TInt KSConCodeInstErrSecurityFailure = 601; // Package cannot be installed due to security error
-const TInt KSConCodeInstErrMissingDependency = 602; // Package cannot be installed due to missing dependency
-const TInt KSConCodeInstErrFileInUse = 603; // Mandatory file is in use and prevents the operation
-const TInt KSConCodeInstErrGeneralError = 604; // Unknown error
-const TInt KSConCodeInstErrNoRights = 605; // The package has no rights to perform the operation
-const TInt KSConCodeInstErrNetworkFailure = 606; // Indicates that network failure aborted the operation
-const TInt KSConCodeInstErrBusy = 607; // Installer is busy doing some other operation
-const TInt KSConCodeInstErrAccessDenied = 608;  // Target location of package is not accessible
-const TInt KSConCodeInstUpgradeError = 609;  // The package is an invalid upgrade
-
-struct SDeviceInfo
-	{
-	TSConMethodName method;
-	TBool support;
-	};
-
-// Supported Backup/Restore and Install methods	
-const SDeviceInfo KSupportedMethods[] =
-	{
-	{ EInstall, 			ETrue },
-	{ EUninstall, 			ETrue },
-	{ EListInstalledApps, 	ETrue },
-	{ EListDataOwners,		ETrue },
-	{ ESetBURMode, 			ETrue },
-	{ ESetInstParams,		ETrue },
-	{ EGetDataSize, 		ETrue },
-	{ ERequestData, 		ETrue },
-	{ ESupplyData, 			ETrue },
-	{ EReboot,				EFalse } // reboot not supported anymore (3.2 ->)
-	};
-	
-// Supported ConML version
-_LIT8( KCONMLVERSION, "2.0" );
-// SIS mime type for installer
-_LIT8( KSISMIMEType, "x-epoc/x-sisx-app" );
-// Java mime type for installer
-_LIT8( KMidletMIMEType, "application/java-archive" );
-
-#endif
-
-// End of file
--- a/connectivitymodules/SeCon/services/pcd/inc/sconpcdutility.h	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +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:  SConPcdUtility header file
-*
-*/
-
-
-#ifndef __CSCONPCDUTILITY_H__
-#define __CSCONPCDUTILITY_H__
-
-
-class CSConTask;
-class CSConInstApp;
-class CSConListInstApps;
-//============================================================
-// Class TSConPcdUtility declaration
-//============================================================  
-NONSHARABLE_CLASS ( SConPcdUtility )
-    {
-    public:     // Methods
-        
-		static void ProcessListInstalledAppsL( CSConTask*& aTask );
-        
-    private:    // Methods
-    	static void AppendInstalledSisL( CSConListInstApps& aListInstApps );
-    	static void AppendInstalledJavaL( CSConListInstApps& aListInstApps );
-    	static void AppendInstalledWidgetsL( CSConListInstApps& aListInstApps );
-        
-        /**
-         * Checks if package is installed to selected drive
-         * @param aSelectedDriveList selected drives
-         * @param aInstalledDrives package drivemask
-         * @return ETrue if package is installed to one of the drives on aDriveList
-         */
-        static TBool IsInstalledToSelectedDrive( const TDriveList& aSelectedDriveList, TUint aInstalledDrives );
-        
-    };
-
-#endif      //  __CSCONPCDUTILITY_H__
--- a/connectivitymodules/SeCon/services/pcd/inc/sconqueue.h	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,154 +0,0 @@
-/*
-* Copyright (c) 2005-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:  Queue header file
-*
-*/
-
-
-#ifndef _SCONQUEUE_H_
-#define _SCONQUEUE_H_
-
-// INCLUDES
-
-#include <e32base.h>
-#include <e32cons.h>
-
-#include "sconconmltask.h"
-
-class CSConAppInstaller;
-class CSConBackupRestore;
-class CSConInstallerQueue;
-class CSConBackupRestoreQueue;
-
-//============================================================
-// Class CSConTaskQueue declaration
-//============================================================	
-NONSHARABLE_CLASS ( CSConTaskQueue )
-	{
-	public:
-		/**
-		 * Destructor
-		 * @return none
-		 */
-		virtual ~CSConTaskQueue();
-		/**
-		 * Returns the status of a specified task / all tasks
-		 * @param aTask The task number
-		 * @param aAllTasks If ETrue => Receive status of all tasks
-		 * @param aStatus The reply
-    	 * @return none
-		 */
-		virtual void GetQueueStatusL( TInt aTask, TBool aAllTasks, 
-									CSConStatusReply*& aStatus );
-		/**
-		 * Adds a new task to queue
-		 * @param aNewTask A new task to be added
-		 * @param aTaskId The task number
-    	 * @return KErrNone if no errors, else system wide error codes
-		 */
-		virtual TInt AddNewTask( CSConTask*& aNewTask, TInt aTaskId );
-		/**
-		 * Set the task to completed -mode
-		 * @param aTask The task number
-		 * @param aError The task error code
-    	 * @return none
-		 */
-		virtual void CompleteTask( TInt aTask, TInt aError );
-		/**
-		 * Set the task progress value
-		 * @param aTask The task number
-		 * @param aProgressValue The progress value
-    	 * @return none
-		 */
-		virtual void SetTaskProgress( TInt aTask, TInt aProgressValue );
-		/**
-		 * Receives a specified task
-		 * @param aTaskId The task number
-		 * @param aTask The address to the task
-    	 * @return KErrNone if no errors, else system wide error codes
-		 */
-		virtual TInt GetTask( TInt aTaskId, CSConTask*& aTask );
-		/**
-		 * Removes a task from the queue
-		 * @param aTask The task number
-    	 * @return none
-		 */
-		virtual void RemoveTask( TInt aTask );	
-		/**
-		 * Cancels a task
-		 * @param aTask The task number
-		 * @param aAllTasks If ETrue => cancel all tasks
-    	 * @return none
-		 */	
-		virtual void CancelTask( TInt aTask, TBool aAllTasks );
-		/**
-		 * The status of the process
-    	 * @return ETrue if process active, else EFalse
-		 */
-		virtual TBool QueueProcessActive() const;
-		/**
-		 * Changes the status of the queue process
-    	 * @return none
-		 */
-		virtual void ChangeQueueProcessStatus();
-		/**
-		 * Resets the queue
-    	 * @return none
-		 */
-		virtual void Reset();		
-		/**
-		 * Compares task numbers
-		 * @param aFirst The first task
-		 * @param aSecon The second task
-    	 * @return -1 if the first task number is smaller than the second, 
-    	 * 1 the first task number is greater than the second, 0 if task 
-    	 * numbers are equal
-		 */
-		static TInt Compare( const CSConTask& aFirst, 
-							 const CSConTask& aSecond );
-		/**
-		 * Matches the task numbers
-		 * @param aFirst The first task
-		 * @param aSecon The second task
-    	 * @return ETrue if task numbers match, else EFalse
-		 */
-		static TBool Match( const CSConTask& aFirst, 
-							const CSConTask& aSecond );
-		
-	private:
-		/**
-		 * Pure virtual function for starting the queue observation
-		 * @return none
-		 */
-		virtual void StartQueue() = 0;
-		/**
-		 * Pure virtual function for stoping the queue observation
-		 * @return none
-		 */
-		virtual void StopQueue() = 0;
-		/**
-		 * Pure virtual function for polling the queue
-		 * @return none
-		 */
-		virtual void PollQueue() = 0;
-		
-	protected:
-		RPointerArray<CSConTask>	iQueue;
-		RTimer 						iTimer;
-		TBool						iQueueProcessActive;
-	};
-	
-#endif
-
-// End of file
--- a/connectivitymodules/SeCon/services/pcd/inc/sconsbeclient.h	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,234 +0,0 @@
-/*
-* Copyright (c) 2005-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:  CSConSBEClient header file
-*
-*/
-
-
-#ifndef _SCONSBECLIENT_H_
-#define _SCONSBECLIENT_H_
-
-// INCLUDES
-#include <connect/sbeclient.h>
-#include "sconconmltask.h"
-
-using namespace conn;
-
-//============================================================
-// Class CSConSBEClient declaration
-//============================================================
-NONSHARABLE_CLASS ( CSConSBEClient ) : public CActive
-    {
-    public:
-        /**
-         * Two-phase constructor
-         * @param aMaxObjectSize Max object size
-         * @param aFs aReference to RFs connection.
-         * @return CSConSBEClient instance
-         */
-        static CSConSBEClient* NewL( const TInt aMaxObjectSize, RFs& aFs );
-        /**
-         * Destructor
-         * @return none
-         */
-        ~CSConSBEClient();
-        /**
-         * Set backup/restore mode
-         * @param aStatus TRequestStatus of the request
-         * @param aTask Task parameters
-         * @return none
-         */
-        void SetBURMode( TRequestStatus& aStatus, CSConTask*& aTask );
-        /**
-         * Lists public files from data owners
-         * @param aStatus TRequestStatus of the request
-         * @param aTask Task parameters
-         * @return none
-         */
-        void ListPublicFiles( TRequestStatus& aStatus, CSConTask*& aTask );
-        /**
-         * Lists participant data owners
-         * @param aStatus TRequestStatus of the request
-         * @param aTask Task parameters
-         * @return none
-         */
-        void ListDataOwners( TRequestStatus& aStatus, CSConTask*& aTask );
-        /**
-         * Lists data sizes from data owners
-         * @param aStatus TRequestStatus of the request
-         * @param aTask Task parameters
-         * @return none
-         */
-        void GetDataSize( TRequestStatus& aStatus, CSConTask*& aTask );
-        /**
-         * Request a data from a data owner
-         * @param aStatus TRequestStatus of the request
-         * @param aTask Task parameters
-         * @return none
-         */
-        void RequestData( TRequestStatus& aStatus, CSConTask*& aTask );
-        /**
-         * Lists the status of data owners
-         * @param aStatus TRequestStatus of the request
-         * @param aTask Task parameters
-         * @return none
-         */
-        void GetDataOwnerStatus( TRequestStatus& aStatus, CSConTask*& aTask );
-        /**
-         * Supplies a data to a data owner
-         * @param aStatus TRequestStatus of the request
-         * @param aTask Task parameters
-         * @return none
-         */
-        void SupplyData( TRequestStatus& aStatus, CSConTask*& aTask );
-    
-    private:
-        /**
-         * Constructor
-         * @paran aMaxObjectSize Max object size
-         * @param aFs aReference to RFs connection.
-         * @return none
-         */
-        CSConSBEClient( const TInt aMaxObjectSize, RFs& aFs );
-        
-        /**
-         * Implementation of CActive::DoCancel()
-         * @return none
-         */
-        void DoCancel();
-        /**
-         * Implementation of CActive::RunL()
-         * @return none
-         */
-        void RunL();
-        
-        /**
-         * Executes SetBURMode task
-         * @return none
-         */
-        void ProcessSetBURModeL();
-        /**
-         * Executes ListPublicFiles task
-         * @return none
-         */
-        void ProcessListPublicFilesL();
-        /**
-         * Executes ListDataOwners task
-         * @return none
-         */
-        void ProcessListDataOwnersL();
-        /**
-         * Executes GetDataSize task
-         * @return none
-         */
-        void ProcessGetDataSizeL();
-        /**
-         * Executes RequestData task
-         * @return KErrNone if no erros. Else system wide error codes.
-         */
-        TInt ProcessRequestDataL();
-        /**
-         * Executes GetDataOwnerStatus task
-         * @return none
-         */
-        void ProcessGetDataOwnerStatusL();
-        /**
-         * Executes SupplyData task
-         * @return KErrNone if no errors. Else system wide error codes.
-         */
-        TInt ProcessSupplyDataL();
-        /**
-         * Maps TInt drive number to TDriveNumber
-         * @param aDrive Drive number as TInt
-         * @return drive number as TDriveNumber
-         */
-        TDriveNumber GetDriveNumber( const TInt& aDrive ) const;
-        /**
-         * Filters the drive list
-         * @param aDriveList Drive list to be filtered
-         * @return none
-         */     
-        void FilterDriveList( TDriveList& aDriveList ) const;
-        /**
-         * Matches the uids
-         * @param aFirst The first uid
-         * @param aSecon The second uid
-         * @return ETrue if uids match, else EFalse
-         */
-        static TBool Match( const TUid& aFirst, 
-                            const TUid& aSecond );
-        /**
-         * Handle error received from Secure Backup Engine
-         * @param aErr Error code from Secure Backup Engine
-         * @return none
-         */
-        void HandleSBEErrorL( TInt& aErr );
-        
-        /**
-         * Appends public files to CSConFile array.
-         * @param aFiles source files to append
-         * @param aSconFiles dataowner list where to add
-         * @return none
-         */
-        void AppendFilesToFilelistL( const RFileArray& aFiles, RPointerArray<CSConFile>& aSconFiles );
-        
-        /**
-         * Gets Package dataowner size
-         * @param aPackageId dataowner
-         * @param TDriveList drives to include
-         * @param TPackageDataType package data type 
-         * @return dataowner data size in specified drives
-         */
-        TUint PackageDataSizeL( TUid aPackageId, const TDriveList& aDriveList,
-                TPackageDataType aPackageDataType ) const;
-        
-        /**
-         * Gets Sid dataowner size
-         * @param aSid dataowner
-         * @param TDriveList drives to include
-         * @param TTransferDataType transfer data type 
-         * @return dataowner data size in specified drives
-         */
-        TUint SidDataSizeL( TUid aSid, const TDriveList& aDriveList,
-                TTransferDataType aTransferDataType ) const;
-        
-        /**
-         * Gets Java dataowner size
-         * @param aJavaHash Java hash value
-         * @param TDriveList drives to include
-         * @return dataowner data size in specified drives
-         */
-        TUint JavaDataSizeL( const TDesC& aJavaHash, const TDriveList& aDriveList ) const;
-        
-    private:
-        CSBEClient*                     iSBEClient;
-        TRequestStatus*                 iCallerStatus;
-        TBool                           iProcessComplete;
-        TInt                            iProcessIndex;
-        TInt                            iMaxObjectSize;
-        
-        CSConTask*                      iCurrentTask;
-        TInt                            iDataPos;
-        TBool                           iDataLeft;
-        TPtrC8                          iDataPtr;
-        TBool                           iLastChunk;
-        TBool                           iBURModeNormal;
-        TBool                           iRestoreMode;
-        RFs&                            iFs;
-        TBool                           iAllSnapshotsSuppliedCalled;
-    };
-
-#endif
-
-// End of file
--- a/connectivitymodules/SeCon/services/pcd/inc/sconvideoparser.h	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,162 +0,0 @@
-/*
-* Copyright (c) 2008-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:  CSConVideoParser header file
-*
-*/
-
-
-#ifndef SCONVIDEOPARSER_H
-#define SCONVIDEOPARSER_H
-
-// INCLUDES
-#include <e32std.h>
-#include <e32base.h>
-#include <videoplayer.h>
-#include <TNEVideoClipInfo.h>
-#include "cscontimeout.h"
-
-// FORWARD DECLARATIONS
-class CVideoOperationObserver;
-class CVideoPlayerUtility;
-
-// CLASS DECLARATION
-
-//============================================================
-// Class CSConVideoParser declaration
-//============================================================  
-NONSHARABLE_CLASS( CSConVideoParser ) : public CBase,
-                                        public MVideoPlayerUtilityObserver,
-                                        public MTNEVideoClipInfoObserver,
-                                        public MTNEVideoClipThumbObserver,
-                                        private MTimeOutObserver
-{
-public: // Constructors and destructor
-
-    ~CSConVideoParser();
-    static CSConVideoParser* NewLC();
-    
-    /**
-    * Opens file
-    * @return none
-    */
-    void OpenFileL( const RFs& aFs, const TDesC& aFilename );
-    
-    /**
-    * Get video thumbnail
-    * @return video thumbnail in jpeg format,
-    *  return KNullDesC8 if thumbain could not found
-    */
-    const TDesC8& Thumbnail() const;
-    
-    /**
-    * Get video frame rate
-    * @return video frame rate frames/sec
-    */
-    TReal32 VideoFrameRateL() const;
-    
-    /**
-    * Get video frame size
-    * @return none
-    */
-    void VideoFrameSizeL(TSize& aSize) const;
-    
-    /**
-    * Get video format
-    * @return video format mimetype (example: video/mp4v-es) 
-    */
-    const TDesC8& VideoFormatMimeTypeL() const;
-    
-    /**
-    * Get videostream bitrate
-    * @return video bitrate bits/sec
-    */
-    TInt VideoBitRateL() const;
-    
-    /**
-    * Get audiostream bitrate
-    * @return audio bitrate bits/sec
-    */
-    TInt AudioBitRateL() const;
-    
-    /**
-    * Get video duration
-    * @return video duration in milliseconds.
-    */
-    TInt DurationL() const;
-    
-    /**
-    * Get videostream bitrate
-    * @return videostream mimetype
-    */
-    const TDesC& VideoMimeTypeL();
-    
-    /**
-    * Get audiostream mimetype
-    * @return audiostream mimetype
-    */
-    const TDesC& AudioMimeTypeL();
-    
-protected:  // from base classes
-    /** @see MVideoPlayerUtilityObserver::MvpuoOpenComplete */
-    void MvpuoOpenComplete(TInt aError);
-    
-    /** @see MVideoPlayerUtilityObserver::MvpuoPrepareComplete */
-    void MvpuoPrepareComplete(TInt aError);
-    
-    /** @see MVideoPlayerUtilityObserver::MvpuoFrameReady */
-    void MvpuoFrameReady(CFbsBitmap& aFrame,TInt aError);
-    
-    /** @see MVideoPlayerUtilityObserver::MvpuoPlayComplete */
-    void MvpuoPlayComplete(TInt aError);
-    
-    /** @see MVideoPlayerUtilityObserver::MvpuoEvent */
-    void MvpuoEvent(const TMMFEvent& aEvent);
-    
-    /** @see MTNEVideoClipInfoObserver::NotifyVideoClipInfoReady */
-    void NotifyVideoClipInfoReady(CTNEVideoClipInfo& aInfo, TInt aError);
-    
-    void NotifyVideoClipThumbCompleted(CTNEVideoClipInfo& aInfo, 
-            TInt aError, 
-            CFbsBitmap* aThumb);
-    
-    /** @see MTimeOutObserver::TimeOut */
-    void TimeOut();
-    
-private:
-    
-    CSConVideoParser();
-    void ConstructL();
-    
-private: // data
-    CVideoPlayerUtility* iVideoUtil;
-    CTNEVideoClipInfo*   iVideoClip;
-
-    RWsSession          iWsSession;
-    CWsScreenDevice*    iScreen;
-    TRequestStatus*     iCallerStatus;
-    CActiveSchedulerWait iWait;
-    CSconTimeOut*       iTimeOut;
-    
-    HBufC8* iThumbnail;
-    HBufC*  iVideoMimeType;
-    HBufC*  iAudioMimeType;
-    
-    TBool iVideoUtilReady;
-    TBool iVideoClipReady;
-    TInt iVideoUtilErr;
-    TInt iVideoClipErr;
-};
-
-#endif // SCONVIDEOPARSER_H
-
--- a/connectivitymodules/SeCon/services/pcd/src/cscontimeout.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,69 +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:  CSconTimeOut implementation
-*
-*/
-
-
-#include "cscontimeout.h"
-
-CSconTimeOut::CSconTimeOut( MTimeOutObserver& aTimeOutObserver ) :
-    CActive(EPriorityStandard), // Standard priority
-    iTimeOutObserver(aTimeOutObserver)
-    {
-    }
-
-
-CSconTimeOut* CSconTimeOut::NewL( MTimeOutObserver& aTimeOutObserver )
-    {
-    CSconTimeOut* self = new (ELeave) CSconTimeOut( aTimeOutObserver );
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop( self );
-    return self;
-    }
-
-void CSconTimeOut::ConstructL()
-    {
-    User::LeaveIfError(iTimer.CreateLocal()); // Initialize timer
-    CActiveScheduler::Add(this); // Add to scheduler
-    }
-
-CSconTimeOut::~CSconTimeOut()
-    {
-    Cancel(); // Cancel any request, if outstanding
-    iTimer.Close(); // Destroy the RTimer object
-    }
-
-void CSconTimeOut::DoCancel()
-    {
-    iTimer.Cancel();
-    }
-
-void CSconTimeOut::Start(TTimeIntervalMicroSeconds32 aDelay)
-    {
-    Cancel(); // Cancel any request, just to be sure
-    iTimer.After(iStatus, aDelay); // Set for later
-    SetActive(); // Tell scheduler a request is active
-    }
-
-void CSconTimeOut::RunL()
-    {
-    iTimeOutObserver.TimeOut();
-    }
-
-TInt CSconTimeOut::RunError(TInt aError)
-    {
-    return aError;
-    }
--- a/connectivitymodules/SeCon/services/pcd/src/sconbackuprestore.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,222 +0,0 @@
-/*
-* Copyright (c) 2005-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:  CSConBackupRestore implementation
-*
-*/
-
-
-// INCLUDE FILES
-#include <pathinfo.h>
-
-#include "sconbackuprestore.h"
-#include "sconsbeclient.h"
-#include "sconbrqueue.h"
-#include "sconpcdconsts.h"
-
-#include "debug.h"
-
-// ============================= MEMBER FUNCTIONS ===============================
-
-
-// -----------------------------------------------------------------------------
-// CSConBackupRestore* CSConBackupRestore::NewL( CSConBackupRestoreQueue* aQueue,
-//                                          cost TInt& aMaxObjectSize )
-// Two-phase constructor
-// -----------------------------------------------------------------------------
-//
-CSConBackupRestore* CSConBackupRestore::NewL( CSConBackupRestoreQueue* aQueue,
-                                            const TInt aMaxObjectSize, RFs& aFs )
-    {
-    TRACE_FUNC_ENTRY;
-    CSConBackupRestore* self = new (ELeave) CSConBackupRestore( aQueue, aFs );
-    CleanupStack::PushL( self );
-    self->ConstructL( aMaxObjectSize );
-    CleanupStack::Pop( self );
-    TRACE_FUNC_EXIT;
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConBackupRestore::CSConBackupRestore( CSConBackupRestoreQueue* aQueue )
-// Constructor
-// -----------------------------------------------------------------------------
-//
-CSConBackupRestore::CSConBackupRestore( CSConBackupRestoreQueue* aQueue, RFs& aFs ) : 
-            CActive( EPriorityStandard ), iQueue( aQueue ), iFs( aFs )
-    {
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConBackupRestore::ConstructL( const TInt aMaxObjectSize )
-// Initializes member data
-// -----------------------------------------------------------------------------
-//
-void CSConBackupRestore::ConstructL( const TInt aMaxObjectSize )
-    {
-    iMaxObjectSize = aMaxObjectSize;
-    iSBEClient = CSConSBEClient::NewL( aMaxObjectSize, iFs );
-    CActiveScheduler::Add( iSBEClient );
-    }   
-    
-// -----------------------------------------------------------------------------
-// CSConBackupRestore::~CSConBackupRestore()
-// Destructor
-// -----------------------------------------------------------------------------
-//
-CSConBackupRestore::~CSConBackupRestore()
-    {
-    TRACE_FUNC_ENTRY;
-    if( iSBEClient )
-        {
-        if( iSBEClient->IsActive() )
-            {
-            iSBEClient->Cancel();
-            }
-        
-        delete iSBEClient;
-        iSBEClient = NULL;
-        }
-    TRACE_FUNC_EXIT;
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConBackupRestore::StartBackupRestore( TInt aTaskId )
-// Starts backup-restore task
-// -----------------------------------------------------------------------------
-//
-void CSConBackupRestore::StartBackupRestore( TInt aTaskId )
-    {
-    iBackupRestoreActive = ETrue;
-    CSConTask* task = NULL;
-    
-    TInt ret = iQueue->GetTask( aTaskId, task );
-
-    if( aTaskId > 0 && ret != KErrNotFound )
-        {
-        iCurrentTask = aTaskId;
-        iQueue->SetTaskProgress( aTaskId, KSConCodeProcessingStarted );
-        }
-    
-    switch( task->GetServiceId() )
-        {
-        case ESetBURMode :
-            iQueue->ChangeQueueProcessStatus();
-            iSBEClient->SetBURMode( iStatus, task );
-            break;
-        case EListPublicFiles :
-            iSBEClient->ListPublicFiles( iStatus, task );
-            break;
-        case EListDataOwners :
-            iSBEClient->ListDataOwners( iStatus, task );
-            break;
-        case EGetDataSize :
-            iSBEClient->GetDataSize( iStatus, task );
-            break;
-        case ERequestData :
-            iSBEClient->RequestData( iStatus, task );
-            break;
-        case EGetDataOwnerStatus :
-            iSBEClient->GetDataOwnerStatus( iStatus, task );
-            break;
-        case ESupplyData :
-            iSBEClient->SupplyData( iStatus, task );
-            break;      
-        default :
-            break;
-        }
-    
-    SetActive();    
-    }
-
-// -----------------------------------------------------------------------------
-// CSConBackupRestore::StopBackupRestore( TInt aTaskId )
-// Stops executing backup-restore task
-// -----------------------------------------------------------------------------
-//
-void CSConBackupRestore::StopBackupRestore( TInt aTaskId )
-    {
-    TRACE_FUNC_ENTRY;
-     //if the task is active, do cancel
-     if( iCurrentTask == aTaskId )
-        {
-        iBackupRestoreActive = EFalse;
-        iSBEClient->Cancel();
-        }
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConBackupRestore::Reset()
-// Resets backup
-// -----------------------------------------------------------------------------
-//  
-void CSConBackupRestore::Reset()
-    {
-    TRACE_FUNC_ENTRY;
-    if( iSBEClient )
-        {
-        if( iSBEClient->IsActive() )
-            {
-            iSBEClient->Cancel();
-            }
-        
-        delete iSBEClient;
-        iSBEClient = NULL;
-        }
-        
-    TRAPD( err, iSBEClient = CSConSBEClient::NewL( iMaxObjectSize, iFs ) );
-    
-    if( err == KErrNone )
-        {
-        CActiveScheduler::Add( iSBEClient );
-        }
-    
-    iBackupRestoreActive = EFalse;
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConBackupRestore::BackupRestoreActive()
-// returns backup-restore activity status
-// -----------------------------------------------------------------------------
-//
-TBool CSConBackupRestore::BackupRestoreActive() const
-	{
-	return iBackupRestoreActive;
-	}
-// -----------------------------------------------------------------------------
-// CSConBackupRestore::DoCancel()
-// Implementation of CActive::DoCancel()
-// -----------------------------------------------------------------------------
-//  
-void CSConBackupRestore::DoCancel()
-    {
-    TRACE_FUNC;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConBackupRestore::RunL()
-// Implementation of CActive::RunL()
-// -----------------------------------------------------------------------------
-//          
-void CSConBackupRestore::RunL()
-    {
-    TRACE_FUNC_ENTRY;
-    
-    iQueue->CompleteTask( iCurrentTask, iStatus.Int() );
-    iBackupRestoreActive = EFalse;
-    TRACE_FUNC_EXIT;
-    }
-    
-// End of file
--- a/connectivitymodules/SeCon/services/pcd/src/sconbrqueue.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,266 +0,0 @@
-/*
-* Copyright (c) 2005-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:  Backup-Restore Queue implementation
-*
-*/
-
-
-// INCLUDE FILES
-#include "sconbrqueue.h"
-#include "sconbackuprestore.h"
-#include "sconpcdconsts.h"
-#include "sconinstqueue.h"
-#include "debug.h"
-
-// -----------------------------------------------------------------------------
-// CSConBackupRestoreQueue::NewL( const TInt aMaxObjectSize )
-// Two-phase constructor
-// -----------------------------------------------------------------------------
-//
-CSConBackupRestoreQueue* CSConBackupRestoreQueue::NewL( const TInt aMaxObjectSize, RFs& aFs )
-	{
-	TRACE_FUNC_ENTRY;
-	CSConBackupRestoreQueue* self = new (ELeave) CSConBackupRestoreQueue();
-	CleanupStack::PushL( self );
-	self->ConstructL( aMaxObjectSize, aFs );
-	CleanupStack::Pop( self );
-	TRACE_FUNC_EXIT;
-    return self;
-	}
-	
-// -----------------------------------------------------------------------------
-// CSConBackupRestoreQueue::CSConBackupRestoreQueue()
-// Destructor
-// -----------------------------------------------------------------------------
-//
-CSConBackupRestoreQueue::CSConBackupRestoreQueue() : 
-					CActive( EPriorityStandard )
-	{
-	}
-	
-// -----------------------------------------------------------------------------
-// CSConBackupRestoreQueue::ConstructL( const TInt aMaxObjectSize )
-// Initializes member data
-// -----------------------------------------------------------------------------
-//
-void CSConBackupRestoreQueue::ConstructL( const TInt aMaxObjectSize, RFs& aFs )
-	{
-	TRACE_FUNC_ENTRY;
-	iBackupRestore = CSConBackupRestore::NewL( this, aMaxObjectSize, aFs );
-	CActiveScheduler::Add( iBackupRestore );
-	User::LeaveIfError( iTimer.CreateLocal() );
-	TRACE_FUNC_EXIT;
-	}
-	
-// -----------------------------------------------------------------------------
-// CSConBackupRestoreQueue::~CSConBackupRestoreQueue()
-// Destructor
-// -----------------------------------------------------------------------------
-//
-CSConBackupRestoreQueue::~CSConBackupRestoreQueue()
-	{
-	TRACE_FUNC_ENTRY;
-	Cancel();
-	if( iBackupRestore )
-		{
-		delete iBackupRestore;
-		iBackupRestore = NULL;
-		}
-	
-	TRACE_FUNC_EXIT;
-	}
-	
-// -----------------------------------------------------------------------------
-// CSConBackupRestoreQueue::StartQueue()
-// Starts queue polling
-// -----------------------------------------------------------------------------
-//
-void CSConBackupRestoreQueue::StartQueue()	
-	{
-	TRACE_FUNC_ENTRY;
-	if( IsActive() )
-		{
-		Cancel();
-		}
-		
-	iTimer.After( iStatus, KSConTimerValue );
-	SetActive();
-	TRACE_FUNC_EXIT;
-	}
-	
-// -----------------------------------------------------------------------------
-// CSConBackupRestoreQueue::StopQueue()
-// Stops queue polling
-// -----------------------------------------------------------------------------
-//
-void CSConBackupRestoreQueue::StopQueue()	
-	{
-	TRACE_FUNC_ENTRY;
-	iTimer.Cancel();
-	TRACE_FUNC_EXIT;
-	}
-
-// -----------------------------------------------------------------------------
-// CSConBackupRestoreQueue::AddNewTask( CSConTask*& aNewTask, TInt aTaskId )
-// Adds a new task to queue
-// -----------------------------------------------------------------------------
-//
-TInt CSConBackupRestoreQueue::AddNewTask( CSConTask*& aNewTask, TInt aTaskId )
-	{
-	LOGGER_WRITE_1( "CSConBackupRestoreQueue::AddNewTask aTaskId: %d", aTaskId );
-	TInt ret( KErrNone );
-	
-	aNewTask->iTaskId = aTaskId;
-	
-	//Set progress value "task accepted for execution"
-	aNewTask->SetProgressValue( KSConCodeTaskCreated );
-	aNewTask->SetCompleteValue( EFalse );
-	
-	//For RequestData and SupplyData
-	if( iQueue.Find( aNewTask, CSConTaskQueue::Match ) != KErrNotFound )
-		{
-		RemoveTask( aTaskId );
-		}
-	
-	if( iQueue.Count() == 0 )
-		{
-		StartQueue();
-		}
-
-	ret = iQueue.InsertInOrder( aNewTask, CSConTaskQueue::Compare );
-	LOGGER_WRITE_1( "CSConBackupRestoreQueue::AddNewTask() : returned %d", ret );
-	return ret;
-	}
-
-// -----------------------------------------------------------------------------
-// CSConBackupRestoreQueue::CancelTask( TInt aTask, TBool aAllTasks )
-// Cancels a task
-// -----------------------------------------------------------------------------
-//
-void CSConBackupRestoreQueue::CancelTask( TInt aTask, TBool aAllTasks )
-	{
-	TRACE_FUNC_ENTRY;
-	//Stop backup/restore
-	if( aTask && !aAllTasks )
-		{
-		LOGGER_WRITE_1("CSConBackupRestoreQueue::CancelTask - Cancel task: %d", aTask);
-		iBackupRestore->StopBackupRestore( aTask );
-		}
-	
-	if( aAllTasks )
-		{
-		LOGGER_WRITE("CSConBackupRestoreQueue::CancelTask - Cancel All");
-		iBackupRestore->Cancel();
-		iBackupRestore->Reset();
-		}
-		
-	CSConTaskQueue::CancelTask( aTask, aAllTasks );
-	TRACE_FUNC_EXIT;
-	}
-
-// -----------------------------------------------------------------------------
-// CSConBackupRestoreQueue::Reset()
-// Resets the queue
-// -----------------------------------------------------------------------------
-//
-void CSConBackupRestoreQueue::Reset()
-	{
-	TRACE_FUNC_ENTRY;
-	CSConTaskQueue::Reset();
-	iBackupRestore->Reset();
-	TRACE_FUNC_EXIT;
-	}
-	
-// -----------------------------------------------------------------------------
-// CSConBackupRestoreQueue::QueueAddress( CSConInstallerQueue*& aTaskQueue )
-// An address pointer to another queue
-// -----------------------------------------------------------------------------
-//
-void CSConBackupRestoreQueue::QueueAddress( CSConInstallerQueue*& aTaskQueue )
-	{
-	TRACE_FUNC;
-	iInstQueueAddress = aTaskQueue;
-	}
-
-// -----------------------------------------------------------------------------
-// CSConBackupRestoreQueue::GetTaskMethod( TInt& aTaskId )
-// Returns the task type
-// -----------------------------------------------------------------------------
-//		
-TSConMethodName CSConBackupRestoreQueue::GetTaskMethodL( TInt aTaskId )
-	{
-	TRACE_FUNC_ENTRY;
-	CSConTask* task = NULL;
-	CSConTaskQueue::GetTask( aTaskId, task );
-	LOGGER_WRITE_1( "CSConBackupRestoreQueue::GetTaskMethodL( TInt aTaskId ) : returned %d",
-        task->GetServiceId() );
-	return task->GetServiceId();
-	}
-	
-// -----------------------------------------------------------------------------
-// CSConBackupRestoreQueue::PollQueue()
-// Polls queue
-// -----------------------------------------------------------------------------
-//
-void CSConBackupRestoreQueue::PollQueue()
-	{
-	// find and start next task if BR and installer is inactive
-	if( !iBackupRestore->BackupRestoreActive()
-		&& !iInstQueueAddress->QueueProcessActive() )
-		{
-		//find next task
-		for( TInt i = 0; i < iQueue.Count(); i++ )
-			{
-			TBool complete = iQueue[i]->GetCompleteValue();
-			
-			if( complete == EFalse )
-				{
-				iBackupRestore->StartBackupRestore( 
-				iQueue[i]->iTaskId );
-				i = iQueue.Count() + 1; // jump out from loop
-				}
-			}
-		}
-	}
-
-// -----------------------------------------------------------------------------
-// Implementation of CActive::DoCancel()
-// Entry to CSConPCD
-// -----------------------------------------------------------------------------
-//
-void CSConBackupRestoreQueue::DoCancel()
-	{
-	TRACE_FUNC_ENTRY;
-	iTimer.Cancel();
-	TRACE_FUNC_EXIT;
-	}
-	
-// -----------------------------------------------------------------------------
-// Implementation of CActive::RunL()
-// Entry to CSConPCD
-// -----------------------------------------------------------------------------
-//
-void CSConBackupRestoreQueue::RunL()
-	{
-	TRACE_FUNC_ENTRY;
-	LOGGER_WRITE_1( "There are still %d tasks in this queue", iQueue.Count() );
-	if( iQueue.Count() > 0 )
-		{
-		PollQueue();
-		StartQueue();
-		}
-	TRACE_FUNC_EXIT;
-	}
-
-// End of file
--- a/connectivitymodules/SeCon/services/pcd/src/sconinstaller.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,528 +0,0 @@
-/*
-* Copyright (c) 2005-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:  CSConAppInstaller implementation
-*
-*/
-
-
-// INCLUDE FILES
-
-#include <pathinfo.h>
-#include <swi/sisregistryentry.h>
-#include <swi/sisregistrypackage.h>
-#include <swi/sisregistrysession.h>
-#include <SWInstDefs.h>
-#include <mmf/common/mmfcontrollerpluginresolver.h>
-#include <javaregistry.h>
-
-using namespace Java;
-
-#include "debug.h"
-#include "sconinstaller.h"
-#include "sconpcdconsts.h"
-#include "sconpcdutility.h"
-
-_LIT8( KWidgetMimeType, "application/x-nokia-widget");
-
-const TInt KSConSeConUidValue = 0x101f99f6;
-const TUid KSConSeConUid = {KSConSeConUidValue};
-
-// ============================= MEMBER FUNCTIONS ===============================
-
-
-// -----------------------------------------------------------------------------
-// CSConAppInstaller::CSConAppInstaller( CSConInstallerQueue* aQueue )
-// Constructor
-// -----------------------------------------------------------------------------
-//
-CSConAppInstaller::CSConAppInstaller( CSConInstallerQueue* aQueue, RFs& aFs ) :
-    CActive( EPriorityStandard ), iQueue( aQueue ), iFs( aFs )
-    {
-    TRACE_FUNC;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConAppInstaller::~CSConAppInstaller()
-// Destructor
-// -----------------------------------------------------------------------------
-//
-CSConAppInstaller::~CSConAppInstaller()
-    {
-    TRACE_FUNC;
-    iSWInst.Close();
-    }
-
-// -----------------------------------------------------------------------------
-// CSConAppInstaller::StartInstaller( TInt& aTaskId )
-// Starts the installer task
-// -----------------------------------------------------------------------------
-//
-void CSConAppInstaller::StartInstaller( TInt& aTaskId )
-    {
-    TRACE_FUNC_ENTRY;
-    CSConTask* task = NULL;
-    TRequestStatus* status = NULL;
-    TInt err( KErrNone );
-    
-    TInt ret = iQueue->GetTask( aTaskId, task );
-    
-    if( aTaskId > 0 && ret != KErrNotFound )
-        {
-        if ( iInstallerState != EIdle || IsActive() )
-            {
-            LOGGER_WRITE("WARNING! SConAppInstaller was not on idle state!");
-            iQueue->CompleteTask( aTaskId, KErrInUse );
-            TRACE_FUNC_EXIT;
-            return;
-            }
-        
-        
-        iCurrentTask = aTaskId;
-        iQueue->SetTaskProgress( aTaskId, KSConCodeProcessingStarted );
-        
-        switch( task->GetServiceId() )
-            {
-            case EInstall :
-                iQueue->ChangeQueueProcessStatus();
-                err = iSWInst.Connect();
-                
-                if( err == KErrNone )
-                    {
-                    if ( task->iInstallParams->iMode == ESilentInstall )
-                    	{
-                    	LOGGER_WRITE( "Begin silent installation.. " );
-                    	iOptions.iUntrusted = SwiUI::EPolicyNotAllowed;
-                        iOptions.iOCSP = SwiUI::EPolicyNotAllowed;
-                        iOptionsPckg = iOptions;
-                        iInstallerState = ESilentInstalling;
-                    	iSWInst.SilentInstall( iStatus, task->iInstallParams->iPath, iOptionsPckg );
-                    	}
-                    else
-                    	{
-                    	LOGGER_WRITE( "Begin to install.. " );
-                    	iInstallerState = EInstalling;
-                        iSWInst.Install( iStatus, task->iInstallParams->iPath );
-                    	}
-                    }
-                
-                break;
-            case EUninstall :
-                iQueue->ChangeQueueProcessStatus();
-                err = iSWInst.Connect();
-                
-                if( err == KErrNone )
-                    {
-                    LOGGER_WRITE( "Begin to uninstall.. " );
-                    
-                    TRAP( err, ProcessUninstallL( *task->iUninstallParams ) );
-                    if( err != KErrNone )
-                        {
-                        LOGGER_WRITE_1( "StartInstaller ProcessUninstallL err: %d", err );
-                        status = &iStatus;
-                        User::RequestComplete( status, err );
-                        }
-                    }
-                
-                break;
-            case EListInstalledApps :
-                iQueue->ChangeQueueProcessStatus();
-                iInstallerState = EListingInstalledApps;
-                TRAP( err, ProcessListInstalledAppsL() );
-                status = &iStatus;
-                User::RequestComplete( status, err );
-                break;
-            default :
-                break;
-            }
-
-        SetActive();
-        }
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConAppInstaller::StopInstaller( TInt& aTaskId )
-// Stops the installer task
-// -----------------------------------------------------------------------------
-//
-void CSConAppInstaller::StopInstaller( TInt& aTaskId )
-    {
-    TRACE_FUNC_ENTRY;
-    //If the task is the current task, cancel it first
-    if( iCurrentTask == aTaskId )
-        {
-        Cancel();
-        iSWInst.Close();
-        }
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// TBool CSConAppInstaller::InstallerActive()
-// returns installer activity status
-// -----------------------------------------------------------------------------
-//
-TBool CSConAppInstaller::InstallerActive() const
-    {
-    if ( iInstallerState == EIdle )
-        {
-        return EFalse;
-        }
-    else
-        {
-        return ETrue;
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CSConAppInstaller::DoCancel()
-// Implementation of CActive::DoCancel()
-// -----------------------------------------------------------------------------
-//
-void CSConAppInstaller::DoCancel()
-    {
-    TRACE_FUNC_ENTRY;
-    
-    switch (iInstallerState)
-        {
-        case EInstalling:
-            LOGGER_WRITE("Cancel normal install");
-            iSWInst.CancelAsyncRequest( SwiUI::ERequestInstall );
-            break;
-        case ESilentInstalling:
-            LOGGER_WRITE("Cancel silent install");
-            iSWInst.CancelAsyncRequest( SwiUI::ERequestSilentInstall );
-            break;
-        case EUninstalling:
-            LOGGER_WRITE("Cancel normal uninstall");
-            iSWInst.CancelAsyncRequest( SwiUI::ERequestUninstall );
-            break;
-        case ESilentUninstalling:
-            LOGGER_WRITE("Cancel silent uninstall");
-            iSWInst.CancelAsyncRequest( SwiUI::ERequestSilentUninstall );
-            break;
-        case ECustomUninstalling: 
-            LOGGER_WRITE("Cancel custom uninstall");
-            iSWInst.CancelAsyncRequest( SwiUI::ERequestCustomUninstall );
-            break;
-        case ESilentCustomUnistalling:
-            LOGGER_WRITE("Cancel silent custom uninstall");
-            iSWInst.CancelAsyncRequest( SwiUI::ERequestSilentCustomUninstall );
-            break;
-        default:
-            LOGGER_WRITE("WARNING! Unknown state");
-            break;
-        }
-    iInstallerState = EIdle;
-    
-    // find and complete current task
-    CSConTask* task = NULL;
-    TInt ret = iQueue->GetTask( iCurrentTask, task );
-
-    if ( iCurrentTask > 0 && ret != KErrNotFound )
-        {
-
-        switch( task->GetServiceId() )
-            {
-            case EInstall :
-                iQueue->CompleteTask( iCurrentTask, KErrCancel );
-                break;
-            case EUninstall :
-                iQueue->CompleteTask( iCurrentTask, KErrCancel );
-                break;
-            default :
-                break;
-            }
-        }
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConAppInstaller::RunL()
-// Implementation of CActive::RunL()
-// -----------------------------------------------------------------------------
-//
-void CSConAppInstaller::RunL()
-    {
-    TRACE_FUNC_ENTRY;
-    iInstallerState = EIdle;
-    iSWInst.Close();
-    iQueue->ChangeQueueProcessStatus();
-    TInt err( iStatus.Int() );
-    LOGGER_WRITE_1( "CSConAppInstaller::RunL() iStatus.Int() : returned %d", err );
-    
-    CSConTask* task = NULL;
-    TInt taskErr = iQueue->GetTask( iCurrentTask, task );
-    
-    LOGGER_WRITE_1( "CSConAppInstaller::RunL() GetTask %d", taskErr );
-        
-    if( taskErr == KErrNone )
-        {
-        if( task->GetServiceId() == EInstall && err == KErrNone )
-            {
-            LOGGER_WRITE( "CSConAppInstaller::RunL() : before DeleteFile" );
-            //delete sis after succesfull install
-            DeleteFile( task->iInstallParams->iPath );
-            }
-        }
-    
-    iQueue->CompleteTask( iCurrentTask, err );
-    TRACE_FUNC_EXIT;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CSConAppInstaller::ProcessUninstallL( const CSConUninstall& aUninstallParams )
-// Execures UnInstall task
-// -----------------------------------------------------------------------------
-//
-void CSConAppInstaller::ProcessUninstallL( const CSConUninstall& aUninstallParams )
-    {
-    TRACE_FUNC_ENTRY;
-    LOGGER_WRITE_1( "aUid: 0x%08x", aUninstallParams.iUid.iUid );
-    LOGGER_WRITE_1( "aName: %S", &aUninstallParams.iName );
-    LOGGER_WRITE_1( "aVendor: %S", &aUninstallParams.iVendor );
-    LOGGER_WRITE_1( "aType: %d", aUninstallParams.iType );
-    LOGGER_WRITE_1( "aMode: %d", aUninstallParams.iMode );
-    switch ( aUninstallParams.iType )
-	    {
-	    case ESisApplication:
-	    case ESisAugmentation:
-	    	UninstallSisL( aUninstallParams );
-	    	break;
-	    case EJavaApplication:
-	    	UninstallJavaL( aUninstallParams.iUid,
-    			aUninstallParams.iMode);
-	    	break;
-	    case EWidgetApplication:
-	    	UninstallWidget( aUninstallParams.iUid,
-	    		aUninstallParams.iMode );
-	    	break;
-	    default:
-	    	User::Leave( KErrNotSupported );
-	    }
-    
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConAppInstaller::UninstallSisL( const CSConUninstall& aUninstallParams )
-// Uninstall sis package or augmentation
-// -----------------------------------------------------------------------------
-//
-void CSConAppInstaller::UninstallSisL( const CSConUninstall& aUninstallParams )
-	{
-	TRACE_FUNC_ENTRY;
-
-	if ( aUninstallParams.iUid == KSConSeConUid )
-	    {
-	    LOGGER_WRITE("Cannot uninstall itself, leave");
-	    // cannot uninstall itself
-	    User::Leave( SwiUI::KSWInstErrFileInUse );
-	    }
-	
-	Swi::RSisRegistrySession sisRegistry;
-    User::LeaveIfError( sisRegistry.Connect() );
-    CleanupClosePushL( sisRegistry );
-    //Check if uid belongs to SIS package
-    if( !sisRegistry.IsInstalledL( aUninstallParams.iUid ) )
-        {
-        CleanupStack::PopAndDestroy( &sisRegistry );
-        User::Leave( KErrNotFound );
-        }
-    
-    Swi::RSisRegistryEntry entry;
-    CleanupClosePushL(entry);
-    User::LeaveIfError( entry.Open( sisRegistry, aUninstallParams.iUid ) );
-    if ( aUninstallParams.iType == ESisAugmentation )
-        {
-        // augmentation pkg
-        LOGGER_WRITE( "CSConAppInstaller::ProcessUninstallL ESisAugmentation" );
-        
-        TBool augmentationFound(EFalse);
-        // Get possible augmentations
-        RPointerArray<Swi::CSisRegistryPackage> augPackages;
-        CleanupResetAndDestroyPushL( augPackages );
-        entry.AugmentationsL( augPackages );
-        for ( TInt j( 0 ); j < augPackages.Count() && !augmentationFound; j++ )
-            {
-            Swi::RSisRegistryEntry augmentationEntry;
-            CleanupClosePushL( augmentationEntry );
-            augmentationEntry.OpenL( sisRegistry, *augPackages[j] );
-            
-            HBufC* augPackageName = augmentationEntry.PackageNameL();
-            CleanupStack::PushL( augPackageName );
-            HBufC* augUniqueVendorName = augmentationEntry.UniqueVendorNameL();
-            CleanupStack::PushL( augUniqueVendorName );
-            
-            if ( !augmentationEntry.IsInRomL() 
-                && augmentationEntry.IsPresentL()
-                && aUninstallParams.iName.Compare( *augPackageName ) == 0
-                && aUninstallParams.iVendor.Compare( *augUniqueVendorName ) == 0 )
-                {
-                // Correct augmentation found, uninstall it.
-                augmentationFound = ETrue;
-                TInt augmentationIndex = augPackages[j]->Index();
-                LOGGER_WRITE_1( "CSConAppInstaller::ProcessUninstallL augmentationIndex %d", augmentationIndex );
-        
-                SwiUI::TOpUninstallIndexParam params;
-                params.iUid = aUninstallParams.iUid;
-                params.iIndex = augmentationIndex;
-                SwiUI::TOpUninstallIndexParamPckg pckg( params );
-                SwiUI::TOperation operation( SwiUI::EOperationUninstallIndex );
-                if( aUninstallParams.iMode == ESilentInstall )
-                    {
-                    LOGGER_WRITE( "CSConAppInstaller::ProcessUninstallL : silent aug-sis-uninstall" );
-                    SwiUI::TUninstallOptionsPckg options;
-                    iInstallerState = ESilentCustomUnistalling;
-                    iSWInst.SilentCustomUninstall( iStatus, operation, options, pckg, KSISMIMEType );
-                    }
-                else
-                    {
-                    LOGGER_WRITE( "CSConAppInstaller::ProcessUninstallL : unsilent aug-sis-uninstall" )
-                    iInstallerState = ECustomUninstalling;
-                    iSWInst.CustomUninstall( iStatus, operation, pckg, KSISMIMEType );
-                    }
-                }
-            CleanupStack::PopAndDestroy( augUniqueVendorName );
-            CleanupStack::PopAndDestroy( augPackageName );
-            CleanupStack::PopAndDestroy( &augmentationEntry );
-            }  
-        CleanupStack::PopAndDestroy( &augPackages );
-        
-        if ( !augmentationFound )
-            {
-            LOGGER_WRITE( "CSConAppInstaller::ProcessUninstallL augmentation not found -> Leave" );
-            User::Leave( KErrNotFound );
-            }
-        }
-    else
-        {
-        // Only uninstall if not in rom and is present
-        if ( !entry.IsInRomL() && entry.IsPresentL() )
-            { 
-            if ( aUninstallParams.iMode == ESilentInstall )
-                {
-                LOGGER_WRITE( "CSConAppInstaller::ProcessUninstallL : silent sis-uninstall" );
-                SwiUI::TUninstallOptionsPckg options;
-                iInstallerState = ESilentUninstalling;
-                iSWInst.SilentUninstall( iStatus, aUninstallParams.iUid, options, KSISMIMEType );
-                }
-            else
-                {
-                LOGGER_WRITE( "CSConAppInstaller::ProcessUninstallL : unsilent sis-uninstall" )
-                iInstallerState = EUninstalling;
-                iSWInst.Uninstall( iStatus, aUninstallParams.iUid, KSISMIMEType );
-                }
-            }
-        else
-            {
-            LOGGER_WRITE( "CSConAppInstaller::ProcessUninstallL sis not present -> Leave" );
-            User::Leave( KErrNotFound );
-            }
-        }
-    
-    CleanupStack::PopAndDestroy( &entry );
-	CleanupStack::PopAndDestroy( &sisRegistry );
-	TRACE_FUNC_EXIT;
-	}
-
-// -----------------------------------------------------------------------------
-// CSConAppInstaller::UninstallJavaL( const TUid& aUid, const TSConInstallMode aMode )
-// Uninstall java package
-// -----------------------------------------------------------------------------
-//
-void CSConAppInstaller::UninstallJavaL( const TUid& aUid, const TSConInstallMode aMode )
-	{
-	TRACE_FUNC_ENTRY;
-	CJavaRegistry* javaRegistry = CJavaRegistry::NewLC( );
-	TBool entryExist = javaRegistry->RegistryEntryExistsL( aUid );
-	CleanupStack::PopAndDestroy( javaRegistry ); 
-	
-    if( entryExist )
-        {
-        if( aMode == ESilentInstall )
-            {
-            LOGGER_WRITE( "CSConAppInstaller::UninstallJavaL : silent midlet-uninstall" )
-            SwiUI::TUninstallOptionsPckg options;
-            iInstallerState = ESilentUninstalling;
-            iSWInst.SilentUninstall( iStatus, aUid, options, KMidletMIMEType );
-            }
-        else
-            {
-            LOGGER_WRITE( "CSConAppInstaller::UninstallJavaL : unsilent midlet-uninstall" )
-            iInstallerState = EUninstalling;
-            iSWInst.Uninstall( iStatus, aUid, KMidletMIMEType );
-            }
-        }
-    else
-        {
-        LOGGER_WRITE( "CSConAppInstaller::UninstallJavaL java entry does not exist -> Leave" )
-        User::Leave( KErrNotFound );
-        }
-    TRACE_FUNC_EXIT;
-	}
-
-// -----------------------------------------------------------------------------
-// CSConAppInstaller::UninstallWidget( const TUid& aUid, const TSConInstallMode aMode )
-// Uninstall widget
-// -----------------------------------------------------------------------------
-//
-void CSConAppInstaller::UninstallWidget( const TUid& aUid, const TSConInstallMode aMode )
-	{
-	TRACE_FUNC_ENTRY;
-	if( aMode == ESilentInstall )
-        {
-        LOGGER_WRITE( "CSConAppInstaller::UninstallWidget : silent uninstall" )
-        SwiUI::TUninstallOptionsPckg options;
-        iInstallerState = ESilentUninstalling;
-        iSWInst.SilentUninstall( iStatus, aUid, options, KWidgetMimeType );
-        }
-    else
-        {
-        LOGGER_WRITE( "CSConAppInstaller::UninstallWidget : unsilent uninstall" )
-        iInstallerState = EUninstalling;
-        iSWInst.Uninstall( iStatus, aUid, KWidgetMimeType );
-        }
-	TRACE_FUNC_EXIT;
-	}
-
-    
-//--------------------------------------------------------------------------------
-//void CSConAppInstaller::ProcessListInstalledAppsL()
-//--------------------------------------------------------------------------------
-//
-void CSConAppInstaller::ProcessListInstalledAppsL()
-    {
-    TRACE_FUNC_ENTRY;
-    
-    CSConTask* task = NULL;
-    User::LeaveIfError( iQueue->GetTask( iCurrentTask, task ) );
-    
-    SConPcdUtility::ProcessListInstalledAppsL( task );
-    
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConAppInstaller::DeleteFile( const TDesC& aPath )
-// Deletes a file 
-// -----------------------------------------------------------------------------
-//  
-void CSConAppInstaller::DeleteFile( const TDesC& aPath )    
-    {
-    TRACE_FUNC;
-    iFs.Delete( aPath );
-    }
-// End of file
--- a/connectivitymodules/SeCon/services/pcd/src/sconinstqueue.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,202 +0,0 @@
-/*
-* Copyright (c) 2005-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:  Installer Queue implementation
-*
-*/
-
-
-// INCLUDE FILES
-#include "sconinstqueue.h"
-#include "sconbrqueue.h"
-#include "sconinstaller.h"
-#include "sconpcdconsts.h"
-#include "debug.h"
-
-// ============================= MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CCSConInstallerQueue* CSConInstallerQueue::NewL()
-// Two-phase constructor
-// -----------------------------------------------------------------------------
-//
-CSConInstallerQueue* CSConInstallerQueue::NewL( RFs& aFs )
-	{
-	TRACE_FUNC_ENTRY;
-	CSConInstallerQueue* self = new (ELeave) CSConInstallerQueue( aFs );
-	CleanupStack::PushL( self );
-	self->ConstructL();
-	CleanupStack::Pop( self );
-	TRACE_FUNC_EXIT;
-    return self;
-	}
-	
-// -----------------------------------------------------------------------------
-// CSConInstallerQueue::CSConInstallerQueue()
-// Constructor
-// -----------------------------------------------------------------------------
-//
-CSConInstallerQueue::CSConInstallerQueue( RFs& aFs ) : CActive( EPriorityStandard ), iFs( aFs )
-	{
-	}
-	
-// -----------------------------------------------------------------------------
-// CSConInstallerQueue::ConstructL()
-// Initializes member data
-// -----------------------------------------------------------------------------
-//
-void CSConInstallerQueue::ConstructL()
-	{
-	TRACE_FUNC_ENTRY;
-	iInstaller = new (ELeave) CSConAppInstaller( this, iFs );
-	CActiveScheduler::Add( iInstaller );
-	User::LeaveIfError( iTimer.CreateLocal() );
-	TRACE_FUNC_EXIT;
-	}
-	
-// -----------------------------------------------------------------------------
-// CSConInstallerQueue::~CSConInstallerQueue()
-// Destructor
-// -----------------------------------------------------------------------------
-//
-CSConInstallerQueue::~CSConInstallerQueue()
-	{
-	TRACE_FUNC_ENTRY;
-	Cancel();
-	if( iInstaller )
-		{
-		iInstaller->Cancel();
-		delete iInstaller;
-		iInstaller = NULL;
-		}
-	TRACE_FUNC_EXIT;
-	}
-	
-// -----------------------------------------------------------------------------
-// CSConInstallerQueue::StartQueue()
-// Starts queue polling
-// -----------------------------------------------------------------------------
-//
-void CSConInstallerQueue::StartQueue()
-	{
-	TRACE_FUNC;
-	if( IsActive() )
-		{
-		Cancel();
-		}
-		
-	iTimer.After( iStatus, KSConTimerValue );
-	SetActive();
-	}
-	
-// -----------------------------------------------------------------------------
-// CSConInstallerQueue::StartQueue()
-// Stops queue polling
-// -----------------------------------------------------------------------------
-//
-void CSConInstallerQueue::StopQueue()	
-	{
-	TRACE_FUNC_ENTRY;
-	iTimer.Cancel();
-	TRACE_FUNC_EXIT;
-	}
-
-// -----------------------------------------------------------------------------
-// CSConInstallerQueue::CancelTask( TInt aTask, TBool aAllTasks )
-// Cancels a task
-// -----------------------------------------------------------------------------
-//
-void CSConInstallerQueue::CancelTask( TInt aTask, TBool aAllTasks )
-	{
-	TRACE_FUNC_ENTRY;
-	//Stop the installer
-	if( aTask && !aAllTasks )
-		{
-		iInstaller->StopInstaller( aTask );
-		}
-	
-	if( aAllTasks )
-		{
-		iInstaller->Cancel();
-		}
-	CSConTaskQueue::CancelTask( aTask, aAllTasks );
-	TRACE_FUNC_EXIT;
-	}
-
-// -----------------------------------------------------------------------------
-// CSConInstallerQueue::QueueAddress( CSConBackupRestoreQueue*& aTaskQueue )
-// An address pointer to another queue
-// -----------------------------------------------------------------------------
-//
-void CSConInstallerQueue::QueueAddress( CSConBackupRestoreQueue*& aTaskQueue )
-	{
-	TRACE_FUNC;
-	iBRQueueAddress = aTaskQueue;
-	}
-
-// -----------------------------------------------------------------------------
-// CSConInstallerQueue::PollQueue()
-// Polls queue
-// -----------------------------------------------------------------------------
-//
-void CSConInstallerQueue::PollQueue()
-	{
-	TRACE_FUNC_ENTRY;
-	// find and start next task if installer and BR is inactive
-	if( !iInstaller->InstallerActive()
-		&& !iBRQueueAddress->QueueProcessActive() )
-		{
-		//find next task
-		for( TInt i = 0; i < iQueue.Count(); i++ )
-			{
-			TBool complete = iQueue[i]->GetCompleteValue();
-			
-			if( complete == EFalse )
-				{
-				iInstaller->StartInstaller( iQueue[i]->iTaskId );
-				i = iQueue.Count() + 1; // jump out from loop
-				}
-			}
-		}
-	TRACE_FUNC_EXIT;
-	}
-
-// -----------------------------------------------------------------------------
-// CSConInstallerQueue::DoCancel()
-// Implementation of CActive::DoCancel()
-// -----------------------------------------------------------------------------
-//
-void CSConInstallerQueue::DoCancel()
-	{
-	TRACE_FUNC;
-	iTimer.Cancel();
-	}
-
-// -----------------------------------------------------------------------------
-// CSConInstallerQueue::RunL()
-// Implementation of CActive::RunL()
-// -----------------------------------------------------------------------------
-//
-void CSConInstallerQueue::RunL()
-	{
-	TRACE_FUNC_ENTRY;
-	LOGGER_WRITE_1( "There are still %d tasks in this queue", iQueue.Count() );
-	if( iQueue.Count() > 0 )
-		{
-		PollQueue();
-		StartQueue();
-		}
-	TRACE_FUNC_EXIT;
-	}
-
-// End of file
--- a/connectivitymodules/SeCon/services/pcd/src/sconmetadata.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1351 +0,0 @@
-/*
-* Copyright (c) 2007-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:  SConMetadata implementation
-*
-*/
-
-
-// INCLUDE FILES
-
-#include <utf.h>  // for CnvUtfConverter
-#include <MetaDataUtility.h>
-#include <MetaDataFieldContainer.h>
-#include <MetaDataField.hrh>
-#include <caf/content.h>
-#include <caf/data.h>
-#include <ExifRead.h>
-#include <ExifTag.h>
-
-#include "sconmetadata.h"
-#include "sconconmltask.h"
-#include "sconpcdconsts.h"
-#include "sconvideoparser.h"
-#include "debug.h"
-#include "sconmetadatafielddefs.h"
-
-
-
-const TInt KBufferSize(1024);
-// Size of buffer to load from file start to get EXIF thumbnail
-const TInt KJpegLoadBufferSize = 65536; // 64k
-
-
-const TUint32 KFieldMaxLength = 0xFFFFFFFF; // four bytes reserved for "length" information
-
-// GPS related Exif IDs
-const TUint16 KGPSLatitudeRef	= 0x01;
-const TUint16 KGPSLatitude 	 	= 0x02;
-const TUint16 KGPSLongitudeRef	= 0x03;
-const TUint16 KGPSLongitude		= 0x04;
-const TUint16 KGPSAltitudeRef	= 0x05;
-const TUint16 KGPSAltitude		= 0x06;
-
-
-// extensions for exif parser
-_LIT(KJpgExt, ".jpg");
-_LIT(KJpegExt, ".jpeg");
-// extensions for audio metadata parser
-_LIT(KAacExt, ".aac");
-_LIT(KMp3Ext, ".mp3");
-_LIT(KMp4Ext, ".mp4");
-_LIT(KWmaExt, ".wma");
-// extensions for video metadata parser
-_LIT(KM4aExt, ".m4a");
-_LIT(K3gpExt, ".3gp");
-
-
-// ============================= MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// SConMetadata::ProcessTask()
-// ProcessTask
-// -----------------------------------------------------------------------------
-//
-void SConMetadata::ProcessTask( CSConTask& aTask, RFs& aFs )
-    {
-    TRACE_FUNC_ENTRY;
-    TInt err(KErrNone);
-    if ( aTask.GetServiceId() == EGetMetadata )
-        {
-        LOGGER_WRITE_1( "SConMetadata::ProcessTask() : file %S",
-            &aTask.iGetMetadataParams->iFilename );
-        
-#ifdef _DEBUG
-        LOGGER_WRITE( "start.. " );
-        TTimeIntervalMicroSeconds sec;
-        TTime start;
-        TTime end;
-        start.HomeTime();
-#endif
-        
-        TParsePtrC filename( aTask.iGetMetadataParams->iFilename );
-        
-        if ( filename.Ext().CompareF( KJpgExt ) == 0
-            || filename.Ext().CompareF( KJpegExt ) == 0 )
-            {
-            // jpg file, try to read exif
-            LOGGER_WRITE( "jpg file, Try to read exif" );
-            TRAP( err, ReadExifDataL( aTask, aFs ) );
-            }
-        else if ( filename.Ext().CompareF( KMp4Ext ) == 0
-            || filename.Ext().CompareF( K3gpExt ) == 0 )
-        	{
-        	LOGGER_WRITE( "Try to read video" );
-        	TRAP( err, GetVideoMetadataL( aTask, aFs ) );
-        	}
-        else if ( filename.Ext().CompareF( KAacExt ) == 0
-            || filename.Ext().CompareF( KM4aExt ) == 0
-            || filename.Ext().CompareF( KMp3Ext ) == 0
-            || filename.Ext().CompareF( KWmaExt ) == 0 )
-            {
-
-            // audio file, try to read audio
-            LOGGER_WRITE( "Try to read audio" );
-            TRAP( err, GetAudioMetadataL( aTask ) );
-            }
-        else
-            {
-            LOGGER_WRITE( "File extension not supported" );
-            err = KErrNotSupported;
-            }
-        
-#ifdef _DEBUG
-        end.HomeTime();
-        sec = end.MicroSecondsFrom( start );
-        
-        LOGGER_WRITE_1( "trapErr %d", err );
-        LOGGER_WRITE_1( "duration: %Ld", sec.Int64() );
-#endif
-        }
-    else
-        {
-        LOGGER_WRITE( "SConMetadata::ProcessTask() : not supported" );
-        err = KErrNotSupported;
-        }
-    
-    LOGGER_WRITE( "SConMetadata::ProcessTask() : CompleteTask" );
-    
-    TInt progress( KSConCodeTaskCompleted );        
-    TBool complete ( ETrue );
-    switch( err )
-        {
-        case KErrNone :
-            progress =  KSConCodeTaskCompleted;
-            break;
-        case KErrNotFound :
-        case KErrBadName :
-            progress =  KSConCodeNotFound;
-            break;
-        default :
-            progress = KSConCodeConflict;
-            break;
-        }
-        
-    aTask.SetCompleteValue( complete );
-    aTask.SetProgressValue( progress );
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// SConMetadata::GetAudioMetadataL()
-// Read audio metadata
-// -----------------------------------------------------------------------------
-//
-void SConMetadata::GetAudioMetadataL( CSConTask& aTask )
-    {
-    TRACE_FUNC_ENTRY;
-    CMetaDataUtility* metadataUtil = CMetaDataUtility::NewL();
-    CleanupStack::PushL( metadataUtil );
-    
-    LOGGER_WRITE( "SConMetadata::GetAudioMetadataL() : OpenFileL" );
-    metadataUtil->OpenFileL( aTask.iGetMetadataParams->iFilename );
-    
-    TInt count = metadataUtil->MetaDataCount();
-    LOGGER_WRITE_1( "SConMetadata::GetAudioMetadataL() : MetaDataCount %d", count );
-    if ( count > 0 )
-        {
-        const CMetaDataFieldContainer& fields = metadataUtil->MetaDataFieldsL();
-        count = fields.Count();
-        
-        CBufFlat* buffer = CBufFlat::NewL( KBufferSize );
-        CleanupStack::PushL( buffer );
-        buffer->Reset();
-        
-        
-        TInt offset(0);
-        // write object header
-        // Item type (1 byte) + Version (1 byte) = 2 bytes
-        buffer->ExpandL( offset, 2 );
-    
-        // header id
-        TUint8 value( KSconMetadataHeaderAudio );
-        buffer->Write( offset, TPtrC8(&value, 1) );
-        offset++;
-        
-        // header version
-        value = KSconMetadataHeaderVersion;
-        buffer->Write( offset, TPtrC8(&value, 1) );
-        offset++;
-        
-        // Add ID3 field
-        value = metadataUtil->ID3Version();
-        AppendTUintDataFieldL( buffer, value, KSconAudioID3Version );
-        
-        TMetaDataFieldId fieldId;
-        TPtrC fieldData;
-        
-        for ( TInt i = 0; i < count; i++ )
-            {
-            // get field id
-            fields.FieldIdAt( i , fieldId );
-            LOGGER_WRITE_2( "AudioFieldId( %d ): 0x%02x", i, fieldId );
-            
-            if ( fieldId == EMetaDataJpeg )
-                {
-                TPtrC8 field8( fields.Field8( fieldId ) );
-                AppendByteDataFieldL(
-                    buffer,
-                    field8,
-                    AudioFieldId( fieldId ) );
-                }
-            else
-                {
-                // get field data and add UTF-8 formatted text to buffer
-                fieldData.Set( fields.At( i , fieldId ) );
-                AppendUtf8DataFieldL( buffer, fieldData, AudioFieldId( fieldId ) );
-                }
-            
-            }
-        
-        if ( buffer->Size() > 0 )
-            {
-            LOGGER_WRITE_1( "SConMetadata::GetAudioMetadataL() : buffer->Size() %d", buffer->Size() );
-            if ( aTask.iGetMetadataParams->iData )
-                {
-                delete aTask.iGetMetadataParams->iData;
-                aTask.iGetMetadataParams->iData = NULL;
-                }
-            //Initialize the task data buffer
-            aTask.iGetMetadataParams->iData = HBufC8::NewL( buffer->Size() );
-            TPtr8 dataPtr = aTask.iGetMetadataParams->iData->Des();
-            
-            buffer->Read( 0, dataPtr, buffer->Size() );
-            LOGGER_WRITE_1( "SConMetadata::GetAudioMetadataL() dataPtr len: %d", dataPtr.Length());
-            }
-        CleanupStack::PopAndDestroy( buffer );
-        }
-    
-    CleanupStack::PopAndDestroy( metadataUtil );
-    
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// SConMetadata::GetVideoMetadataL()
-// Read video metadata
-// -----------------------------------------------------------------------------
-//
-void SConMetadata::GetVideoMetadataL( CSConTask& aTask, RFs& aFs )
-	{
-	TRACE_FUNC_ENTRY;
-	CBufFlat* buffer = CBufFlat::NewL( KBufferSize );
-    CleanupStack::PushL( buffer );
-    buffer->Reset();
-    
-    TInt offset(0);
-    // write object header
-    // Item type (1 byte) + Version (1 byte) = 2 bytes
-    buffer->ExpandL( offset, 2 );
-
-    // header id
-    TUint8 value( KSconMetadataHeaderVideo );
-    buffer->Write( offset, TPtrC8(&value, 1) );
-    offset++;
-    
-    // header version
-    value = KSconMetadataHeaderVersion;
-    buffer->Write( offset, TPtrC8(&value, 1) );
-    offset++;
-    
-	
-	CSConVideoParser* videoParser = CSConVideoParser::NewLC();
-	
-	videoParser->OpenFileL( aFs, aTask.iGetMetadataParams->iFilename );
-	LOGGER_WRITE( "Open completed" );
-	
-	const TUint KFormatMaxLength = 100;
-	TBuf<KFormatMaxLength> formatMimeType;
-    formatMimeType.Copy( videoParser->VideoFormatMimeTypeL() );
-    LOGGER_WRITE_1( "formatMimeType: %S", &formatMimeType);
-    AppendUtf8DataFieldL( buffer, formatMimeType, KSconVideoFormat );
-	
-    // we can't use TReal format, so convert frame rate to frames/ms (or 1000 frames/s)
-	TReal32 frameRate = videoParser->VideoFrameRateL();
-	const TUint KFrameRateMultiplier = 1000;
-    TInt frm = frameRate * KFrameRateMultiplier; 
-    LOGGER_WRITE_1( "frameRate: %f", frameRate );
-    LOGGER_WRITE_1( "frm: %d", frm );
-    AppendTUintDataFieldL( buffer, frm, KSconVideoFrameRate );
-    
-    TSize size;
-    videoParser->VideoFrameSizeL( size );
-    LOGGER_WRITE_2( "VideoFrameSizeL: %d, %d", size.iWidth, size.iHeight);
-    AppendTUintDataFieldL( buffer, size.iWidth, KSconVideoFrameSizeWidth );
-    AppendTUintDataFieldL( buffer, size.iHeight, KSconVideoFrameSizeHeight );
-    
-
-
-    const TUint8 KSconVideoAudioStreamMimetype	( 0x09 );
-    const TUint8 KSconVideoVideoStreamMimetype	( 0x0a );
-    
-    TInt videoBitRate =  videoParser->VideoBitRateL();
-    LOGGER_WRITE_1( "videoBitRate: %d", videoBitRate);
-    AppendTUintDataFieldL( buffer, videoBitRate, KSconVideoVideoBitRate );
-    
-	TInt audioBitRate = videoParser->AudioBitRateL();
-	LOGGER_WRITE_1( "audioBitRate: %d", audioBitRate);
-	AppendTUintDataFieldL( buffer, audioBitRate, KSconVideoAudioBitRate );
-
-	TInt durationMs = videoParser->DurationL();
-	LOGGER_WRITE_1( "duration ms: %d", durationMs);
-	AppendTUintDataFieldL( buffer, durationMs, KSconVideoDuration );
-	
-	TPtrC8 thumbnail = videoParser->Thumbnail();
-	if ( thumbnail.Length() > 0 )
-	    {
-	    AppendByteDataFieldL( buffer, thumbnail, KSconVideoThumbnail );
-	    }
-	
-	TPtrC audioMimeType = videoParser->AudioMimeTypeL();
-	if ( audioMimeType.Length() > 0 )
-		{
-		AppendUtf8DataFieldL( buffer, audioMimeType, KSconVideoAudioStreamMimetype );
-		}
-	
-	TPtrC videoMimeType = videoParser->VideoMimeTypeL();
-	if ( videoMimeType.Length() > 0 )
-		{
-		AppendUtf8DataFieldL( buffer, formatMimeType, KSconVideoVideoStreamMimetype );
-		}
-	
-	CleanupStack::PopAndDestroy( videoParser );
-	LOGGER_WRITE( "videoParser deleted" );
-	
-	
-	if ( buffer->Size() > 0 )
-        {
-        if ( aTask.iGetMetadataParams->iData )
-            {
-            delete aTask.iGetMetadataParams->iData;
-            aTask.iGetMetadataParams->iData = NULL;
-            }
-        //Initialize the task data buffer
-        aTask.iGetMetadataParams->iData = HBufC8::NewL( buffer->Size() );
-        TPtr8 dataPtr = aTask.iGetMetadataParams->iData->Des();
-        
-        buffer->Read( 0, dataPtr, buffer->Size() );
-        }
-    CleanupStack::PopAndDestroy( buffer );
-	
-	
-    TRACE_FUNC_EXIT;
-	}
-
-// -----------------------------------------------------------------------------
-// SConMetadata::AudioFieldId()
-// Map TMetaDataFieldId to KSconAudio field id
-// -----------------------------------------------------------------------------
-//
-TUint8 SConMetadata::AudioFieldId( const TMetaDataFieldId fieldId )
-    {
-    TUint8 ret(NULL);
-    switch( fieldId )
-        {
-        case EMetaDataSongTitle :
-            ret = KSconAudioTitle;
-            break;
-        case EMetaDataArtist :
-            ret = KSconAudioArtist;
-            break;
-        case EMetaDataAlbum :
-            ret = KSconAudioAlbum;
-            break;
-        case EMetaDataYear :
-            ret = KSconAudioYear;
-            break;
-        case EMetaDataComment :
-            ret = KSconAudioComment;
-            break;
-        case EMetaDataAlbumTrack :
-            ret = KSconAudioAlbumTrack;
-            break;
-        case EMetaDataGenre :
-            ret = KSconAudioGenre;
-            break;
-        case EMetaDataComposer :
-            ret = KSconAudioComposer;
-            break;
-        case EMetaDataCopyright :
-            ret = KSconAudioCopyright;
-            break;
-        case EMetaDataOriginalArtist :
-            ret = KSconAudioOriginalArtist;
-            break;
-        case EMetaDataUrl :
-            ret = KSconAudioUrl;
-            break;
-        case EMetaDataUserUrl :
-            ret = KSconAudioUserUrl;
-            break;
-        case EMetaDataJpeg :
-            ret = KSconAudioJpeg;
-            break;
-        case EMetaDataVendor :
-            ret = KSconAudioVendor;
-            break;
-        case EMetaDataRating :
-            ret = KSconAudioRating;
-            break;
-        case EMetaDataUniqueFileIdentifier :
-            ret = KSconAudioUniqueFileIdentifier;
-            break;
-        case EMetaDataDuration :
-            ret = KSconAudioDuration;
-            break;
-        case EMetaDataDate :
-            ret = KSconAudioDate;
-            break;
-        default :
-            LOGGER_WRITE( "SConMetadata::AudioFieldId : ERR field not defined!" );
-            break;
-        }
-    return ret;
-    }
-
-
-// -----------------------------------------------------------------------------
-// SConMetadata::GetExifTagL( CExifRead* aReader, const TUint8 aTagID )
-// This function is used to read exif data that might leave.
-// -----------------------------------------------------------------------------
-//
-HBufC8* SConMetadata::GetExifTagL( CExifRead* aReader, const TUint8 aTagID )
-    {
-    TRACE_FUNC_ENTRY;
-    LOGGER_WRITE_1( " aTagID: 0x%02x", aTagID );
-    HBufC8* tempBuf( NULL );
-    
-    switch( aTagID )
-        {
-        case KSconExifThumbnail:
-            tempBuf = aReader->GetThumbnailL();
-            break;
-        case KSconExifDescription:
-            tempBuf = aReader->GetImageDescriptionL();
-            break;
-        case KSconExifMake:
-            tempBuf = aReader->GetMakeL();
-            break;
-        case KSconExifModel:
-            tempBuf = aReader->GetModelL();
-            break;
-        case KSconExifDateTime:
-            tempBuf = aReader->GetDateTimeL();
-            break;
-        case KSconExifSoftware:
-            tempBuf = aReader->GetSoftwareL();
-            break;
-        case KSconExifCopyright:
-            tempBuf = aReader->GetCopyrightL();
-            break;
-        case KSconExifIsoSpeedRatings:
-            tempBuf = aReader->GetIsoSpeedRatingsL();
-            if ( tempBuf )
-                {
-                TInt isoSpeed = ReadTUint32( tempBuf->Des() );
-                LOGGER_WRITE_1(" isoSpeed: %d", isoSpeed);
-                delete tempBuf;
-                
-                const TInt maxLength(5);
-                // no need to push on cleanupstack as leave cannot
-                // happen before returning tempBuf.
-                tempBuf = HBufC8::NewL(maxLength);
-                TPtr8 temp = tempBuf->Des();
-                temp.Num( isoSpeed );
-                }
-            break;
-        case KSconExifDateTimeOriginal:
-            tempBuf = aReader->GetDateTimeOriginalL();
-            break;
-        case KSconExifDateTimeDigitized:
-            tempBuf = aReader->GetDateTimeDigitizedL();
-            break;
-        case KSconExifMakerNote:
-            // makernote contents are up to the manufacturer
-            // not needed.
-            User::Leave( KErrNotSupported );
-            break;
-        case KSconExifUserComment:
-            tempBuf = aReader->GetUserCommentL();
-            break;
-        case KSconExifRelatedSoundFile:
-            tempBuf = aReader->GetRelatedSoundFileL();
-            break;
-        default:
-            User::Leave( KErrNotSupported );
-        }
-    TRACE_FUNC_EXIT;
-    return tempBuf;
-    }
-
-// -----------------------------------------------------------------------------
-// SConMetadata::ReadTUint32()
-// Convert 8-bit binary data to unsigned integer 
-// -----------------------------------------------------------------------------
-//
-TUint32 SConMetadata::ReadTUint32( const TDesC8& aData )
-    {
-    TRACE_FUNC_ENTRY;
-    TUint32 result = 0;
-    TUint8 c;
-    
-    for (TInt i=aData.Length()-1; i>=0; i--)
-        {
-        c = aData[i];
-        result = (result << 8) | c;
-        }
-    
-    LOGGER_WRITE_1( "SConMetadata::ReadTUint32() : returned %d ", result );
-    return result;
-    }
-
-// -----------------------------------------------------------------------------
-// SConMetadata::GetFileDataLC()
-// Read data from file
-// -----------------------------------------------------------------------------
-//
-HBufC8* SConMetadata::GetFileDataLC( const TDesC& aFilename, RFs& aFs )
-	{
-	TRACE_FUNC_ENTRY;
-    RFile file;
-    
-    User::LeaveIfError( file.Open( aFs, aFilename,
-        EFileRead | EFileShareReadersOnly ) );
-    CleanupClosePushL( file );
-    
-    LOGGER_WRITE( "SConMetadata::GetFileDataLC() : file opened" );
-    
-    TInt dataSize(0);
-    ContentAccess::CContent* content;
-    content = ContentAccess::CContent::NewLC( file );
-    ContentAccess::CData* data = content->OpenContentLC( ContentAccess::EPeek );
-    data->DataSizeL(dataSize);
-    
-    LOGGER_WRITE( "SConMetadata::GetFileDataLC() : content opened" );
-    // Read 64k from the beginning of the file
-    if ( dataSize > KJpegLoadBufferSize )
-        {
-        dataSize = KJpegLoadBufferSize;
-        }
-    HBufC8* readBuffer = HBufC8::NewLC( dataSize );
-    TPtr8 readPtr = readBuffer->Des();
-    User::LeaveIfError( data->Read( readPtr, dataSize ) );
-    
-    LOGGER_WRITE( "SConMetadata::GetFileDataLC() : data readed" );
-    CleanupStack::Pop( readBuffer );
-    CleanupStack::PopAndDestroy( data );
-    CleanupStack::PopAndDestroy( content );
-    CleanupStack::PopAndDestroy( &file );
-    
-    CleanupStack::PushL( readBuffer );
-    
-    return readBuffer;
-	}
-
-// -----------------------------------------------------------------------------
-// SConMetadata::ReadExifDataL()
-// Read Exif data
-// -----------------------------------------------------------------------------
-//
-void SConMetadata::ReadExifDataL( CSConTask& aTask, RFs& aFs )
-    {
-    TRACE_FUNC_ENTRY;
-    
-    // read data from file
-    HBufC8* jpegReadBuffer = GetFileDataLC( aTask.iGetMetadataParams->iFilename, aFs );
-    
-    CExifRead* reader = CExifRead::NewL(
-        *jpegReadBuffer, CExifRead::ENoJpeg | CExifRead::ENoTagChecking );
-    
-    LOGGER_WRITE( "SConMetadata::ReadExifDataL() : reader created" );
-    CleanupStack::PopAndDestroy( jpegReadBuffer );
-    CleanupStack::PushL( reader );
-    
-
-    CBufFlat* buffer = CBufFlat::NewL( KBufferSize );
-    CleanupStack::PushL( buffer );
-    buffer->Reset();
-    
-    
-    TInt offset(0);
-    // header id (1 byte) + head.version (1 byte) = 2 bytes
-    
-    buffer->ExpandL( offset, 2 );
-    
-    // header id
-    TUint8 value( KSconMetadataHeaderExif );
-    buffer->Write( offset, TPtrC8(&value, 1) );
-    offset++;
-    
-    // header version
-    value = KSconMetadataHeaderVersion;
-    buffer->Write( offset, TPtrC8(&value, 1) );
-    offset++;
-    
-    
-    HBufC8* tempBuf(NULL);
-    
-    TInt err;
-    
-    for ( TInt tagID = KSconExifThumbnail; tagID < KSconExifGpsVersion; tagID++ )
-        {
-        // GetExifTagL function is used only to tags that leaves if data is not found
-        TRAP( err, tempBuf = GetExifTagL( reader, tagID ) );
-        if ( !err )
-            {
-            LOGGER_WRITE("write to buffer");
-            CleanupStack::PushL( tempBuf );
-            AppendByteDataFieldL( buffer, tempBuf->Des(), tagID );
-            CleanupStack::PopAndDestroy( tempBuf );
-            tempBuf = NULL;
-            }
-        else
-            {
-            LOGGER_WRITE_1( "GetExifTagL Leave code %d", err );
-            }
-        }
-    
-    
-    TUint16 value16a;
-    TUint32 value32a;
-    TUint32 value32b;
-    TInt32 val32a;
-    TInt32 val32b;
-    
-    // Orientation
-    err = reader->GetOrientation( value16a );
-    if ( !err )
-        {
-        AppendTUintDataFieldL( buffer, value16a, KSconExifOrientation );
-        }
-    
-    // XResolution
-    err = reader->GetXResolution( value32a, value32b );
-    if ( !err )
-        {
-        AppendTUintDataFieldL( buffer, value32a, KSconExifXResolution1 );
-        AppendTUintDataFieldL( buffer, value32b, KSconExifXResolution2 );
-        }
-    
-    // YResolution
-    err = reader->GetYResolution( value32a, value32b );
-    if ( !err )
-        {
-        AppendTUintDataFieldL( buffer, value32a, KSconExifYResolution1 );
-        AppendTUintDataFieldL( buffer, value32b, KSconExifYResolution2 );
-        }
-    
-    // ResolutionUnit
-    err = reader->GetResolutionUnit( value16a );
-    if ( !err )
-        {
-        AppendTUintDataFieldL( buffer, value16a, KSconExifResolutionUnit );
-        }
-    
-    // YCbCrPositioning
-    err = reader->GetYCbCrPositioning( value16a );
-    if ( !err )
-        {
-        AppendTUintDataFieldL( buffer, value16a, KSconExifYCbCrPositioning );
-        }
-    
-    // YCbCrPositioning
-    err = reader->GetYCbCrPositioning( value16a );
-    if ( !err )
-        {
-        AppendTUintDataFieldL( buffer, value16a, KSconExifYCbCrPositioning );
-        }
-    
-    
-    // ExposureTime
-    err = reader->GetExposureTime( value32a, value32b );
-    if ( !err )
-        {
-        AppendTUintDataFieldL( buffer, value32a, KSconExifExposureTime1 );
-        AppendTUintDataFieldL( buffer, value32b, KSconExifExposureTime2 );
-        }
-    
-    // ComponentsConfiguration
-    TUint8 value8a;
-    TUint8 value8b;
-    TUint8 value8c;
-    TUint8 value8d;
-    err = reader->GetComponentsConfiguration( value8a, value8b, value8c, value8d );
-    if ( !err )
-        {
-        TInt offset;
-        offset = buffer->Size();
-        
-        // field ID (1 byte) + field lenght (4 bytes) + field data (4bytes) = 9 bytes
-        buffer->ExpandL( offset, 9 );
-        
-        // field id (one byte)
-        TUint8 fieldId( KSconExifComponentsConfiguration );
-        buffer->Write( offset, TPtrC8( &fieldId, 1 ) );
-        offset++;
-        
-        // field lenght
-        WriteTUint32( buffer, offset, 4);
-        offset += 4;
-        
-        buffer->Write( offset, TPtrC8(&value8a, 1) );
-        offset++;
-        buffer->Write( offset, TPtrC8(&value8b, 1) );
-        offset++;
-        buffer->Write( offset, TPtrC8(&value8c, 1) );
-        offset++;
-        buffer->Write( offset, TPtrC8(&value8d, 1) );
-        offset++;
-        }
-    
-    // Flash
-    err = reader->GetFlash( value16a );
-    if ( !err )
-        {
-        AppendTUintDataFieldL( buffer, value16a, KSconExifFlash );
-        }
-    
-    // ColorSpace
-    err = reader->GetColorSpace( value16a );
-    if ( !err )
-        {
-        AppendTUintDataFieldL( buffer, value16a, KSconExifColorSpace );
-        }
-    
-    // PixelXDimension
-    err = reader->GetPixelXDimension( value32a );
-    if ( !err )
-        {
-        AppendTUintDataFieldL( buffer, value32a, KSconExifPixelXDimension );
-        }
-    
-    // PixelYDimension
-    err = reader->GetPixelYDimension( value32a );
-    if ( !err )
-        {
-        AppendTUintDataFieldL( buffer, value32a, KSconExifPixelYDimension );
-        }
-    
-    // ExposureMode
-    err = reader->GetExposureMode( value16a );
-    if ( !err )
-        {
-        AppendTUintDataFieldL( buffer, value16a, KSconExifExposureMode );
-        }
-    
-    // WhiteBalance
-    err = reader->GetWhiteBalance( value16a );
-    if ( !err )
-        {
-        AppendTUintDataFieldL( buffer, value16a, KSconExifWhiteBalance );
-        }
-    
-    // SceneCaptureType
-    err = reader->GetSceneCaptureType( value16a );
-    if ( !err )
-        {
-        AppendTUintDataFieldL( buffer, value16a, KSconExifSceneCaptureType );
-        }
-    
-    // ExposureProgram
-    err = reader->GetExposureProgram( value16a );
-    if ( !err )
-        {
-        AppendTUintDataFieldL( buffer, value16a, KSconExifExposureProgram );
-        }
-    
-    // GetApertureValue
-    err = reader->GetApertureValue( value32a, value32b );
-    if ( !err )
-        {
-        AppendTUintDataFieldL( buffer, value32a, KSconExifApertureValue1 );
-        AppendTUintDataFieldL( buffer, value32b, KSconExifApertureValue2 );
-        }
-    
-    // GetExposureBiasValue
-    err = reader->GetExposureBiasValue( val32a, val32b );
-    if ( !err )
-        {
-        value32a = val32a;
-        value32b = val32b;
-        AppendTUintDataFieldL( buffer, value32a, KSconExifExposureBiasValue1 );
-        AppendTUintDataFieldL( buffer, value32b, KSconExifExposureBiasValue2 );
-        }
-    
-    // GetMeteringMode
-    err = reader->GetMeteringMode( value16a );
-    if ( !err )
-        {
-        AppendTUintDataFieldL( buffer, value16a, KSconExifMeteringMode );
-        }
-    
-    // GetLightSource
-    err = reader->GetLightSource( value16a );
-    if ( !err )
-        {
-        AppendTUintDataFieldL( buffer, value16a, KSconExifLightSource );
-        }
-    
-    // GetFileSource
-    TInt8 val8;
-    err = reader->GetFileSource( val8 );
-    if ( !err )
-        {
-        value8a = val8;
-        AppendTUintDataFieldL( buffer, value8a, KSconExifFileSource );
-        }
-    
-    // GetDigitalZoomRatio
-    err = reader->GetDigitalZoomRatio( value32a, value32b );
-    if ( !err )
-        {
-        AppendTUintDataFieldL( buffer, value32a, KSconExifDigitalZoomRatio1 );
-        AppendTUintDataFieldL( buffer, value32b, KSconExifDigitalZoomRatio2 );
-        }
-    
-    // GetContrast
-    err = reader->GetContrast( value16a );
-    if ( !err )
-        {
-        AppendTUintDataFieldL( buffer, value16a, KSconExifContrast );
-        }
-    
-    // GetSaturation
-    err = reader->GetSaturation( value16a );
-    if ( !err )
-        {
-        AppendTUintDataFieldL( buffer, value16a, KSconExifSaturation );
-        }
-    
-    // GetSharpness
-    err = reader->GetSharpness( value16a );
-    if ( !err )
-        {
-        AppendTUintDataFieldL( buffer, value16a, KSconExifSharpness );
-        }
-    
-    // GetExifVersion
-    err = reader->GetExifVersion( value32a );
-    if ( !err )
-        {
-        AppendTUintDataFieldL( buffer, value32a, KSconExifExifVersion );
-        }
-    
-    // GetFlashPixVersion
-    err = reader->GetFlashPixVersion( value32a );
-    if ( !err )
-        {
-        AppendTUintDataFieldL( buffer, value32a, KSconExifFlashPixVersion );
-        }
-    
-    // GetThumbnailXResolution
-    err = reader->GetThumbnailXResolution( value32a, value32b );
-    if ( !err )
-        {
-        AppendTUintDataFieldL( buffer, value32a, KSconExifThumbXResolution1 );
-        AppendTUintDataFieldL( buffer, value32b, KSconExifThumbXResolution2 );
-        }
-    
-    // GetThumbnailYResolution
-    err = reader->GetThumbnailYResolution( value32a, value32b );
-    if ( !err )
-        {
-        AppendTUintDataFieldL( buffer, value32a, KSconExifThumbYResolution1 );
-        AppendTUintDataFieldL( buffer, value32b, KSconExifThumbYResolution2 );
-        }
-    
-    // GetThumbnailResolutionUnit
-    err = reader->GetThumbnailResolutionUnit( value16a );
-    if ( !err )
-        {
-        AppendTUintDataFieldL( buffer, value16a, KSconExifThumbResolutionUnit );
-        }
-    
-    // GetThumbnailCompression
-    err = reader->GetThumbnailCompression( value16a );
-    if ( !err )
-        {
-        AppendTUintDataFieldL( buffer, value16a, KSconExifThumbCompression );
-        }
-    
-    // GetJpegInterchangeFormat
-    err = reader->GetJpegInterchangeFormat( value32a );
-    if ( !err )
-        {
-        AppendTUintDataFieldL( buffer, value32a, KSconExifThumbJpegInterchangeFormat );
-        }
-    
-    // GetJpegInterchangeFormatLength
-    err = reader->GetJpegInterchangeFormatLength( value32a );
-    if ( !err )
-        {
-        AppendTUintDataFieldL( buffer, value32a, KSconExifThumbJpegInterchangeFormatLength );
-        }
-    
-    // GetShutterSpeedValue
-    err = reader->GetShutterSpeedValue( val32a, val32b );
-    if ( !err )
-        {
-        value32a = val32a;
-        value32b = val32b;
-        AppendTUintDataFieldL( buffer, value32a, KSconExifShutterSpeedValue1 );
-        AppendTUintDataFieldL( buffer, value32b, KSconExifShutterSpeedValue2 );
-        }
-    
-    // GetBrightnessValue
-    err = reader->GetBrightnessValue( val32a, val32b );
-    if ( !err )
-        {
-        value32a = val32a;
-        value32b = val32b;
-        AppendTUintDataFieldL( buffer, value32a, KSconExifBrightnessValue1 );
-        AppendTUintDataFieldL( buffer, value32b, KSconExifBrightnessValue2 );
-        }
-    
-    // GetCustomRendered
-    err = reader->GetCustomRendered( value16a );
-    if ( !err )
-        {
-        AppendTUintDataFieldL( buffer, value16a, KSconExifCustomRendered );
-        }
-    
-    // GetGainControl
-    err = reader->GetGainControl( value16a );
-    if ( !err )
-        {
-        AppendTUintDataFieldL( buffer, value16a, KSconExifGainControl );
-        }
-    
-    // GetGpsVersion
-    err = reader->GetGpsVersion( value32a );
-    if ( !err )
-        {
-        AppendTUintDataFieldL( buffer, value32a, KSconExifGpsVersion );
-        }
-    
-    // Get GPS coordinates
-    const TUint KCoordinatesMaxLength = 50;
-    TBuf<KCoordinatesMaxLength> gpsInfo;
-    // Latidute
-    err = GetExifGPSLatitudeL( *reader, gpsInfo );
-    if ( !err )
-    	{
-    	AppendUtf8DataFieldL( buffer, gpsInfo ,KSconExifGPSLatitude );
-    	}
-    
-    // Longitude
-    err = GetExifGPSLongitudeL( *reader, gpsInfo );
-    if ( !err )
-    	{
-    	AppendUtf8DataFieldL( buffer, gpsInfo ,KSconExifGPSLongitude );
-    	}
-    
-    // Altidute
-    err = GetExifGPSAltiduteL( *reader, gpsInfo );
-    if ( !err )
-    	{
-    	AppendUtf8DataFieldL( buffer, gpsInfo ,KSconExifGPSAltitude );
-    	}
-    
-    LOGGER_WRITE( "SConMetadata::ReadExifDataL() : All data collected" );
-    
-    if ( buffer->Size() > 0 )
-        {
-        LOGGER_WRITE_1( "SConMetadata::ReadExifDataL() : buffer->Size() %d", buffer->Size() );
-        if ( aTask.iGetMetadataParams->iData )
-            {
-            delete aTask.iGetMetadataParams->iData;
-            aTask.iGetMetadataParams->iData = NULL;
-            }
-        //Initialize the task data buffer
-        aTask.iGetMetadataParams->iData = HBufC8::NewL( buffer->Size() );
-        TPtr8 dataPtr = aTask.iGetMetadataParams->iData->Des();
-        
-        buffer->Read( 0, dataPtr, buffer->Size() );
-        LOGGER_WRITE_1( "SConMetadata::ReadExifDataL() dataPtr len: %d", dataPtr.Length());
-        }
-    CleanupStack::PopAndDestroy( buffer );
-    
-    LOGGER_WRITE( "SConMetadata::ReadExifDataL() : task updated" );
-    
-    CleanupStack::PopAndDestroy( reader );
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// void SConMetadata::ConvertRationalTag( const CExifTag& aTag, TDes& aPosDegrees )
-// parses degrees, minutes and seconds from CExifTag and converts it to string format
-// -----------------------------------------------------------------------------
-//
-TInt SConMetadata::ConvertRationalTag( const CExifTag& aTag, TDes& aPosDegrees )
-	{
-	TRACE_FUNC_ENTRY;
-	TInt numer(0);
-	TInt denom(0);
-	TReal64 degrees(0);
-	TReal64 minutes(0);
-	TReal64 seconds(0);
-	
-	const TUint8* ratData = aTag.Data().Ptr();
-	for ( TUint y=0; y < aTag.TagInfo().iDataCount; y++ )
-		{
-		numer = 0;
-		denom = 0;
-		Mem::Copy(&numer, ratData + ((y * 2) * sizeof(numer)), sizeof(numer));
-		Mem::Copy(&denom, ratData + (((y * 2) + 1) * sizeof(numer)), sizeof(denom));	
-		
-		if ( y == 0 )// degrees
-			{
-			degrees = numer/denom;
-			}
-		else if ( y == 1 )// minutes
-			{
-			minutes = numer/denom;
-			}
-		else if ( y == 2 )// seconds
-			{
-			seconds = numer/denom;
-			}
-		}
-	_LIT(KFormat, "%.0f°%.0f'%.2f\"" );
-	aPosDegrees.Format( KFormat, degrees, minutes, seconds );
-	TRACE_FUNC_EXIT;
-	return KErrNone;
-	}
-
-// -----------------------------------------------------------------------------
-// void SConMetadata::GetExifGPSLatitudeL( CExifRead& aExifRead, TDes& aLatitude )
-// Read latidute from ExifReader 
-// -----------------------------------------------------------------------------
-//
-TInt SConMetadata::GetExifGPSLatitudeL( CExifRead& aExifRead, TDes& aLatitude )
-	{
-	TRACE_FUNC_ENTRY;
-	TInt ret(KErrNone);
-	if ( aExifRead.TagExists( KGPSLatitudeRef, EIfdGps )
-		&& aExifRead.TagExists( KGPSLatitude, EIfdGps) )
-		{
-		// get latidute
-		const CExifTag* lat = aExifRead.GetTagL( 
-				EIfdGps, 
-				KGPSLatitude );
-		User::LeaveIfError( ConvertRationalTag( *lat, aLatitude ) );
-		if ( aLatitude.Length()+2 > aLatitude.MaxLength() )
-			{
-			User::Leave( KErrTooBig );
-			}
-		
-		// south or north
-		const CExifTag* latRef = aExifRead.GetTagL( 
-				EIfdGps, 
-				KGPSLatitudeRef );
-		_LIT8( KNorthTagDef8, "N" );
-		_LIT( KNorth, "N " );
-		_LIT( KSouth, "S " );
-		if ( latRef->Data().Find( KNorthTagDef8 ) != KErrNotFound )
-			{
-			aLatitude.Insert( 0, KNorth );
-			}
-		else
-			{
-			aLatitude.Insert( 0, KSouth );
-			}
-		}
-	else
-		{
-		ret=KErrNotFound;
-		}
-	TRACE_FUNC_EXIT;
-	return ret;
-	}
-
-// -----------------------------------------------------------------------------
-// void SConMetadata::GetExifGPSLongitudeL( CExifRead& aExifRead, TDes& aLongitude )
-// Read longitude from ExifReader 
-// -----------------------------------------------------------------------------
-//
-TInt SConMetadata::GetExifGPSLongitudeL( CExifRead& aExifRead, TDes& aLongitude )
-	{
-	TRACE_FUNC_ENTRY;
-	TInt ret(KErrNone);
-	if ( aExifRead.TagExists( KGPSLongitudeRef, EIfdGps )
-		&& aExifRead.TagExists( KGPSLongitude, EIfdGps) )
-		{
-		// get longitude
-		const CExifTag* lon = aExifRead.GetTagL( 
-				EIfdGps, 
-				KGPSLongitude );
-		User::LeaveIfError( ConvertRationalTag( *lon, aLongitude ) );
-		if ( aLongitude.Length()+2 > aLongitude.MaxLength() )
-			{
-			User::Leave( KErrTooBig );
-			}
-		
-		// east or west
-		const CExifTag* lonref = aExifRead.GetTagL( 
-				EIfdGps, 
-				KGPSLongitudeRef );
-		_LIT8( KEastTagDef8, "E" );
-		_LIT( KEast, "E " );
-		_LIT( KWest, "W " );
-		if ( lonref->Data().Find( KEastTagDef8 ) != KErrNotFound )
-			{
-			aLongitude.Insert( 0, KEast );
-			}
-		else
-			{
-			aLongitude.Insert( 0, KWest );
-			}
-		}
-	else
-		{
-		ret = KErrNotFound;
-		}
-	TRACE_FUNC_EXIT;
-	return ret;
-	}
-
-// -----------------------------------------------------------------------------
-// void SConMetadata::GetExifGPSAltiduteL( CExifRead& aExifRead, TDes& aAltidute )
-// Read altidute from ExifReader 
-// -----------------------------------------------------------------------------
-//
-TInt SConMetadata::GetExifGPSAltiduteL( CExifRead& aExifRead, TDes& aAltidute )
-	{
-	TRACE_FUNC_ENTRY;
-	
-	TInt ret(KErrNone);
-	if ( aExifRead.TagExists( KGPSAltitudeRef, EIfdGps )
-		&& aExifRead.TagExists( KGPSAltitude, EIfdGps) )
-		{
-		if ( aAltidute.MaxLength() < 5 )
-			{
-			User::Leave( KErrTooBig );
-			}
-		
-		// get altidute
-		const CExifTag* alt = aExifRead.GetTagL( 
-				EIfdGps, 
-				KGPSAltitude );
-		const TUint8* ratData = alt->Data().Ptr();
-		
-		TInt numer;
-		TInt denom;
-		Mem::Copy(&numer, ratData , sizeof(numer));
-		Mem::Copy(&denom, ratData + (sizeof(numer)), sizeof(denom));
-		
-		TReal32 tmp = numer / denom;
-		
-		// sea level
-		const CExifTag* altref = aExifRead.GetTagL( 
-				EIfdGps, 
-				KGPSAltitudeRef );
-		_LIT8( KAltSealevelDef8, "1" );
-		if ( altref->Data().Find( KAltSealevelDef8 ) != KErrNotFound )
-			{
-			// seaLevelReference -> negative value
-			tmp *= -1;
-			}
-		TRealFormat format;
-		format.iType = KRealFormatFixed;
-		format.iPlaces=1;
-		User::LeaveIfError( aAltidute.Num( tmp, format ) );
-		}
-	else
-		{
-		ret = KErrNotFound;
-		}
-	TRACE_FUNC_EXIT;
-	return ret;
-	}
-
-// -----------------------------------------------------------------------------
-// void SConMetadata::AppendUtf8DataFieldL( CBufFlat* aBuffer,
-//     const TPtrC aAppendData, const TUint8 aFieldId )
-// Write 8bit field id value, data length (32bit) and UTF8 data to buffer 
-// -----------------------------------------------------------------------------
-//
-void SConMetadata::AppendUtf8DataFieldL( CBufFlat* aBuffer,
-    const TPtrC aAppendData, const TUint8 aFieldId )
-    {
-    TRACE_FUNC_ENTRY;
-    LOGGER_WRITE_1( "aFieldId: 0x%02x", aFieldId);
-    HBufC8* tempBuf = HBufC8::NewLC( aAppendData.Size() );
-    TPtr8 temp = tempBuf->Des();
-    
-    CnvUtfConverter::ConvertFromUnicodeToUtf8( temp, aAppendData );
-    LOGGER_WRITE_1( "lenght: %d", temp.Length() );
-    
-    if ( temp.Length() > KFieldMaxLength )
-        {
-        LOGGER_WRITE("Data length is too big, field skipped");
-        CleanupStack::PopAndDestroy( tempBuf );
-        return;
-        }
-    
-    TInt offset;
-    offset = aBuffer->Size();
-    // field ID (1 byte) + field lenght (4 bytes) + field data
-    aBuffer->ExpandL( offset, temp.Length() + 5 );
-    
-    // field id (one byte)
-    aBuffer->Write( offset, TPtrC8(&aFieldId, 1) );
-    offset++;
-    
-    WriteTUint32( aBuffer, offset, temp.Length());
-    offset += 4;
-    
-    // field data
-    aBuffer->Write( offset, temp, temp.Length() );
-    offset += temp.Length();
-    
-    CleanupStack::PopAndDestroy( tempBuf );
-    
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// void SConMetadata::AppendByteDataFieldL( CBufFlat* aBuffer,
-//     const TPtrC8 aAppendData, const TUint8 aFieldId )
-// Write 8bit field id value, data length (32bit) and n*8bit data to buffer 
-// -----------------------------------------------------------------------------
-//
-void SConMetadata::AppendByteDataFieldL( CBufFlat* aBuffer,
-    const TPtrC8 aAppendData, const TUint8 aFieldId )
-    {
-    TRACE_FUNC_ENTRY;
-    LOGGER_WRITE_1( "aFieldId: 0x%02x", aFieldId);
-    LOGGER_WRITE_1( "lenght: %d", aAppendData.Length() );
-    if ( aAppendData.Length() > KFieldMaxLength )
-        {
-        LOGGER_WRITE("Data length is too big, field skipped");
-        return;
-        }
-    TInt offset;
-    offset = aBuffer->Size();
-    
-    // field id (1) + field len (4) + datalen = 5 + datalen
-    aBuffer->ExpandL( offset, aAppendData.Length() + 5 );
-    
-    // field id (one byte)
-    aBuffer->Write( offset, TPtrC8(&aFieldId, 1) );
-    offset++;
-    
-    // field data length (32bit unsigned integer, two byte)
-    WriteTUint32( aBuffer, offset, aAppendData.Length() );
-    offset += 4;
-    
-    // field data
-    aBuffer->Write( offset, aAppendData );
-    offset += aAppendData.Length();
-    
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// void SConMetadata::AppendTUintDataFieldL( CBufFlat* aBuffer,
-//     const TUint32 aValue, const TUint8 aFieldId )
-// Write 8bit field id value, data length (16bit) and n*8bit data to buffer 
-// -----------------------------------------------------------------------------
-//
-void SConMetadata::AppendTUintDataFieldL( CBufFlat* aBuffer,
-    TUint32 aValue, const TUint8 aFieldId )
-    {
-    TRACE_FUNC_ENTRY;
-    LOGGER_WRITE_1( "aFieldId: 0x%02x", aFieldId);
-    LOGGER_WRITE_1( "aValue dec: %u", aValue);
-    TInt offset;
-    offset = aBuffer->Size();
-    TInt dataLen(1);
-    TUint8 temp[4];
-    TInt i(0);
-    
-    temp[i] = aValue & 0xFF;
-    
-    aValue >>= 8;
-    while( aValue > 0 )
-        {
-        i++;
-        temp[i] = aValue & 0xFF;
-        aValue >>= 8;
-        dataLen++;
-        }
-    // field id (1) + field len (4) + datalen = 5 + datalen
-    aBuffer->ExpandL( offset, 5 + dataLen );
-    
-    // field id (one byte)
-    aBuffer->Write( offset, TPtrC8(&aFieldId, 1) );
-    offset++;
-    
-    // field data length (32bit unsigned integer, two byte)
-    WriteTUint32( aBuffer, offset, dataLen );
-    offset += 4;
-    
-    // field data
-    for( TInt i = dataLen-1; i>=0; i-- )
-        {
-        aBuffer->Write( offset, TPtrC8(&temp[i], 1) );
-        offset++;
-        }
-    
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// void SConMetadata::WriteTUint32( CBufFlat* aBuffer, TInt offset, TUint32 aValue )
-// Write 32bit unsigned integer value to buffer.
-// -----------------------------------------------------------------------------
-//
-void SConMetadata::WriteTUint32( CBufFlat* aBuffer, TInt offset, TUint32 aValue )
-    {
-    TUint8 temp[4];
-    TInt i(0);
-    
-    temp[i] = aValue & 0xFF;
-    
-    aValue >>= 8;
-    for ( TInt i=1; i<4; i++ )
-        {
-        temp[i] = aValue & 0xFF;
-        aValue >>= 8;
-        }
-    
-    // high to low
-    for ( TInt i=3; i>=0; i-- )
-        {
-        aBuffer->Write( offset, TPtrC8(&temp[i], 1) );
-        offset++;
-        }
-    }
-
-// End of file
--- a/connectivitymodules/SeCon/services/pcd/src/sconpcd.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,586 +0,0 @@
-/*
-* Copyright (c) 2005-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:  CSConPCD implementation
-*
-*/
-
-
-// INCLUDE FILES
-
-#include "sconpcd.h"
-#include "sconpcdconsts.h"
-#include "sconinstqueue.h"
-#include "sconbrqueue.h"
-#include "sconmetadata.h"
-#include "debug.h"
-
-// ============================= MEMBER FUNCTIONS ===============================
-
-
-// -----------------------------------------------------------------------------
-// CreateCSConPCDL()
-// Entry to CSConPCD
-// -----------------------------------------------------------------------------
-//
-EXPORT_C CSConPCD* CreateCSConPCDL()
-    {
-    TRACE_FUNC;
-    return CSConPCD::NewL();
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConPCD::NewL()
-// Two-phase constructor
-// -----------------------------------------------------------------------------
-//
-CSConPCD* CSConPCD::NewL()
-    {
-    TRACE_FUNC_ENTRY;
-    CSConPCD* self = new (ELeave) CSConPCD();
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop( self );
-    TRACE_FUNC_EXIT;
-    return self;
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConPCD::CSConPCD()
-// Constructor
-// -----------------------------------------------------------------------------
-//
-CSConPCD::CSConPCD() : iInstallerQueue( NULL ), iBackupRestoreQueue( NULL ), 
-    iLatestReply(NULL), iTaskNumber( 0 ), iMaxObjectSize( 65536 ), 
-    iLastOperation( ENoTask )
-    {
-    TRACE_FUNC;
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConPCD::ConstructL()
-// Initializes member data
-// -----------------------------------------------------------------------------
-//
-void CSConPCD::ConstructL()
-    {
-    TRACE_FUNC_ENTRY;
-    User::LeaveIfError( iFs.Connect() );
-    iInstallerQueue = CSConInstallerQueue::NewL( iFs );
-    iBackupRestoreQueue = CSConBackupRestoreQueue::NewL( iMaxObjectSize, iFs );
-    iInstallerQueue->QueueAddress( iBackupRestoreQueue );
-    iBackupRestoreQueue->QueueAddress( iInstallerQueue );
-    
-    if ( !CActiveScheduler::Current() )
-        {
-        CActiveScheduler* scheduler = new (ELeave) CActiveScheduler();
-        CActiveScheduler::Install( scheduler );
-        }
-    CActiveScheduler::Add( iInstallerQueue );
-    CActiveScheduler::Add( iBackupRestoreQueue );
-    TRACE_FUNC_EXIT;
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConPCD::~CSConPCD()
-// Destructor
-// -----------------------------------------------------------------------------
-//
-CSConPCD::~CSConPCD()
-    {
-    TRACE_FUNC_ENTRY;
-    if ( iInstallerQueue )
-        {
-        iInstallerQueue->Cancel();
-        delete iInstallerQueue;
-        iInstallerQueue = NULL;
-        }
-        
-    if ( iBackupRestoreQueue )
-        {
-        iBackupRestoreQueue->Cancel();
-        delete iBackupRestoreQueue;
-        iBackupRestoreQueue = NULL;
-        }
-    
-    if ( iLatestReply )
-        {
-        delete iLatestReply;
-        iLatestReply = NULL;
-        }
-    
-    iFs.Close();
-    TRACE_FUNC_EXIT;
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConPCD::PutTaskL( CSConTask* aTask )
-// Receives a new task
-// -----------------------------------------------------------------------------
-//
-TInt CSConPCD::PutTaskL( CSConTask*& aTask )
-    {
-    TRACE_FUNC_ENTRY;
-    TInt ret( KErrNone );
-    TInt maxObjectSize( 0 );
-    
-    if ( iLastOperation == EPutTask )
-        {
-        LOGGER_WRITE( "CSConPCD::PutTaskL() : Two Puts in a row -> Reset()" );
-        ResetPCD();
-        }
-    else
-        {
-        LOGGER_WRITE( "CSConPCD::PutTaskL() : Protocol procedure ok" );
-        iLastOperation = EPutTask;
-        }
-    
-    switch( aTask->GetServiceId() )
-        {
-        case ECancel :
-            ret = CancelL( aTask->iCancelTaskId, aTask->iCancelTaskAll );
-            delete aTask;
-            break;
-        case EGetDataOwnerStatus :
-            ret = SupportedBRTaskL( aTask );
-            break;
-        case EGetDataSize :
-            ret = SupportedBRTaskL( aTask );
-            break;
-        case EGetStatus :
-            ret = GetStatusL( aTask->iGetStatusParams->iTaskId, 
-            		aTask->iGetStatusParams->iAll );
-            delete aTask;
-            break;
-        case EInstall :
-            ret = SupportedInstTaskL( aTask );
-            break;
-        case EListDataOwners :
-            ret = SupportedBRTaskL( aTask );
-            break;
-        case EListInstalledApps :
-            ret = SupportedInstTaskL( aTask );
-            break;
-        case EListPublicFiles :
-            ret = SupportedBRTaskL( aTask );          
-            break;
-        case ERequestData :
-            ret = SupportedBRTaskL( aTask );
-            break;
-        case ESetBURMode :
-            ret = SupportedBRTaskL( aTask );
-            break;
-        case ESetInstParams :
-            ret = SupportedInstTaskL( aTask );
-            break;
-        case ESupplyData :
-            ret = SupportedBRTaskL( aTask );
-            break;
-        case EUninstall :
-            ret = SupportedInstTaskL( aTask );
-            break;
-        case EUpdateDeviceInfo :
-            maxObjectSize = aTask->iDevInfoParams->iMaxObjectSize;
-            ret = UpdateDeviceInfoL( maxObjectSize );
-            iTaskNumber++;
-            delete aTask;
-            break;
-        case EReboot :
-            RebootTaskL( aTask );
-            delete aTask;
-            break;
-        case EGetMetadata :
-        	ret = KErrNone;
-            GetMetadataTaskL( *aTask );
-            delete aTask;
-            break;
-        default :
-            break;
-        }
-    LOGGER_WRITE_1( "CSConPCD::PutTaskL() : returned %d", ret );
-    return ret;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConPCD::GetReply()
-// Returns a reply to previous PutTaskL operation
-// -----------------------------------------------------------------------------
-//
-CSConStatusReply* CSConPCD::GetReply()
-    {
-    TRACE_FUNC_ENTRY;
-    
-    if ( iLastOperation == EGetReply )
-        {
-        LOGGER_WRITE( "CSConPCD::GetReply() : Two Gets in a row -> Reset()" );
-        ResetPCD();
-        }
-    else
-        {
-        LOGGER_WRITE( "CSConPCD::GetReply() : Protocol procedure ok" );
-        iLastOperation = EGetReply;
-        }
-    CSConStatusReply* reply = iLatestReply;
-    iLatestReply = NULL;
-    TRACE_FUNC_EXIT;
-    return reply;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConPCD::ResetPCD()
-// Resets the module to the initial state
-// -----------------------------------------------------------------------------
-//
-void CSConPCD::ResetPCD()
-    {
-    TRACE_FUNC_ENTRY;
-    if ( iInstallerQueue )
-        {
-        LOGGER_WRITE( "CSConPCD::ResetPCD() : Reseting installer queue" );
-        iInstallerQueue->Reset();
-        }
-        
-    if ( iBackupRestoreQueue )
-        {
-        LOGGER_WRITE( "CSConPCD::ResetPCD() : Reseting backup queue" );
-        iBackupRestoreQueue->Reset();
-        }
-    
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConPCD::SupportedInstTaskL( CSConTask* aTask )
-// Fills a reply with predefined supported task -information
-// -----------------------------------------------------------------------------
-//  
-TInt CSConPCD::SupportedInstTaskL( CSConTask* aTask )
-    {
-    TRACE_FUNC_ENTRY;
-    TInt ret( KErrNone );
-    iTaskNumber++;
-    ret = iInstallerQueue->AddNewTask( aTask, iTaskNumber );
-    
-    //Get status for this task
-    TBool all( EFalse );
-    CSConStatusReply* reply = new (ELeave) CSConStatusReply();
-    CleanupStack::PushL( reply );
-    iInstallerQueue->GetQueueStatusL( iTaskNumber, all, reply );
-    CleanupStack::Pop( reply );
-    
-    StoreReply( reply );    
-        
-    LOGGER_WRITE_1( "CSConPCD::SupportedInstTaskL() : returned %d", ret );
-    return ret;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConPCD::SupportedBRTask( CSConTask* aTask )
-// Fills a reply with predefined supported task -information
-// -----------------------------------------------------------------------------
-//
-TInt CSConPCD::SupportedBRTaskL( CSConTask* aTask )
-    {
-    TRACE_FUNC_ENTRY;
-    TInt ret( KErrNone );
-    
-    TInt taskId;
-    
-    taskId = ++iTaskNumber;
-        
-    ret = iBackupRestoreQueue->AddNewTask( aTask, taskId );
-    LOGGER_WRITE_1( "iBackupRestoreQueue->AddNewTask : ret %d", ret );
-    //Get status for this task
-    TBool all( EFalse );
-    CSConStatusReply* reply = new (ELeave) CSConStatusReply();
-    CleanupStack::PushL( reply );
-    iBackupRestoreQueue->GetQueueStatusL( iTaskNumber, all, reply );
-    CleanupStack::Pop( reply );
-    
-    StoreReply( reply );    
-    
-    TRACE_FUNC_EXIT;
-    return ret;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CSConPCD::RebootTask( const CSConTask* aTask )
-// Fills a reply with predefined unsupported task -information
-// -----------------------------------------------------------------------------
-//  
-TInt CSConPCD::RebootTaskL( const CSConTask* aTask )
-    {
-    TRACE_FUNC_ENTRY;
-    TInt ret( KErrNotSupported );
-    iTaskNumber++;
-    TSConMethodName method( aTask->GetServiceId() );
-    CSConStatusReply* reply = new (ELeave) CSConStatusReply();
-    CleanupStack::PushL( reply );
-    CSConTaskReply* taskReply = new (ELeave) CSConTaskReply();
-    CleanupStack::PushL( taskReply );
-    
-    TBool complete( ETrue );
-    taskReply->InitializeL( method, KSConCodeNotSupported, complete );
-    taskReply->iTaskId = iTaskNumber;
-    
-    reply->iNoTasks = EFalse;
-    User::LeaveIfError( reply->iTasks.Append( taskReply ) );
-    CleanupStack::Pop( taskReply );
-    
-    StoreReply( reply );
-    CleanupStack::Pop( reply );
-        
-    LOGGER_WRITE_1( "CSConPCD::RebootTask() : returned %d", ret );
-    return ret;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConPCD::GetMetadataTask( const CSConTask* aTask )
-// Fills a reply with predefined GetMetadata task -information
-// -----------------------------------------------------------------------------
-//
-void CSConPCD::GetMetadataTaskL( CSConTask& aTask )
-    {
-    TRACE_FUNC_ENTRY;
-    
-    aTask.iTaskId = ++iTaskNumber;
-    
-    //Set progress value "task accepted for execution"
-    aTask.SetProgressValue( KSConCodeTaskCreated );
-    aTask.SetCompleteValue( EFalse );
-    
-    SConMetadata::ProcessTask( aTask, iFs );
-    
-    //Get status for this task
- 
-    CSConStatusReply* reply = new (ELeave) CSConStatusReply();
-    CleanupStack::PushL( reply );
-    CSConTaskReply* taskReply = new (ELeave) CSConTaskReply();
-    CleanupStack::PushL( taskReply );
-    taskReply->InitializeL( aTask );
-    User::LeaveIfError( reply->iTasks.Append( taskReply ) );
-    CleanupStack::Pop( taskReply );
-    
-    if ( !aTask.GetComplete() )
-        {
-        // clean all unneccessary data from the reply packet
-        taskReply->CleanTaskData();
-        }
-    
-    
-    StoreReply( reply );
-    CleanupStack::Pop( reply ); 
- 
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConPCD::GetStatus( TInt aTask, TBool aAll )
-// Collects a status of a specified task / all tasks
-// -----------------------------------------------------------------------------
-//
-TInt CSConPCD::GetStatusL( TInt aTask, TBool aAll )
-    {
-    TRACE_FUNC_ENTRY;
-    TInt ret( KErrNone );
-    
-    // create mergeReply object. Store installer and br replys here.
-    CSConStatusReply* mergeReply = new (ELeave) CSConStatusReply();
-    CleanupStack::PushL( mergeReply );
-            
-    
-    CSConStatusReply* brReply = new (ELeave) CSConStatusReply();
-    CleanupStack::PushL( brReply );
-    iBackupRestoreQueue->GetQueueStatusL( aTask, aAll, brReply );
-    
-    
-    // Create installerReply and populate it
-    CSConStatusReply* installerReply = new (ELeave) CSConStatusReply();
-    CleanupStack::PushL( installerReply );
-    iInstallerQueue->GetQueueStatusL( aTask, aAll, installerReply );
-    
-    if ( !installerReply->iNoTasks || !brReply->iNoTasks )
-        {
-        mergeReply->iNoTasks = EFalse;
-        }
-    else
-        {
-        mergeReply->iNoTasks = ETrue;
-        }
-        
-    for ( TInt i = 0; i < installerReply->iTasks.Count(); i++ )
-        {
-        mergeReply->iTasks.Append( installerReply->iTasks[i]->CopyAndFreeL() );
-        }
-    
-    // installer replys are copied to mergereply, delete installerReply
-    CleanupStack::PopAndDestroy( installerReply );
-    
-    // do same for br reply
-    for ( TInt j = 0; j < brReply->iTasks.Count(); j++ )
-        {
-        mergeReply->iTasks.Append( brReply->iTasks[j]->CopyAndFreeL() );
-        }
-    
-    CleanupStack::PopAndDestroy( brReply );
-    
-    CleanupStack::Pop( mergeReply );
-    // store reply
-    StoreReply( mergeReply );
-    
-    LOGGER_WRITE_1( "CSConPCD::GetStatus() : returned %d", ret );
-    return ret;
-    }
-        
-// -----------------------------------------------------------------------------
-// CSConPCD::Cancel( TInt aTask, TBool aAll )
-// Cancels a specified task / all tasks
-// -----------------------------------------------------------------------------
-//
-TInt CSConPCD::CancelL( TInt aTask, TBool aAll )
-    {
-    TRACE_FUNC_ENTRY;
-    TInt ret( KErrNone );
-    
-    CSConStatusReply* reply = new (ELeave) CSConStatusReply();
-    iInstallerQueue->CancelTask( aTask, aAll );
-    iBackupRestoreQueue->CancelTask( aTask, aAll );
-    
-    reply->iNoTasks = ETrue;
-    
-    StoreReply( reply );
-    
-    LOGGER_WRITE_1( "CSConPCD::CancelL() : returned %d", ret );
-    return ret;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConPCD::StoreReply( CSConStatusReply*& aReply )
-// Stores a reply
-// -----------------------------------------------------------------------------
-//
-void CSConPCD::StoreReply( CSConStatusReply*& aReply )  
-    {
-    TRACE_FUNC_ENTRY;
-    if ( iLatestReply )
-        {
-        delete iLatestReply;
-        iLatestReply = NULL;
-        }
-        
-    iLatestReply = aReply;
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConPCD::UpdateDeviceInfo( TInt aMaxObjectSize )
-// Creates a reply for UpdateDeviceInfo task
-// -----------------------------------------------------------------------------
-//
-TInt CSConPCD::UpdateDeviceInfoL( TInt aMaxObjectSize )
-    {
-    TRACE_FUNC_ENTRY;
-    TInt ret( KErrNone );
-    TSConMethodName method( EUpdateDeviceInfo );
-    
-    CSConStatusReply* reply = new (ELeave) CSConStatusReply();
-    CleanupStack::PushL( reply );
-    CSConTaskReply* taskReply = new (ELeave) CSConTaskReply();
-    CleanupStack::PushL( taskReply );
-    
-    
-    TBool complete( ETrue );
-    TInt progress( KSConCodeTaskCompleted );
-    
-    taskReply->InitializeL( method, progress, complete );
-    taskReply->iTaskId = iTaskNumber;
-        
-    TInt arrayLength = sizeof KSupportedMethods / sizeof KSupportedMethods[0];
-    
-    for ( TInt i = 0; i < arrayLength; i++ )
-        {
-        switch( KSupportedMethods[i].method )
-            {
-            case EGetDataSize :
-                taskReply->iDevInfoParams->iGetSizeSupp = 
-                KSupportedMethods[i].support;
-                break;
-            case EInstall :
-                taskReply->iDevInfoParams->iInstallSupp = 
-                KSupportedMethods[i].support;
-                break;
-            case EListDataOwners :
-                taskReply->iDevInfoParams->iDataOwnersSupp = 
-                KSupportedMethods[i].support;
-                break;
-            case EListInstalledApps :
-                taskReply->iDevInfoParams->iInstAppsSupp = 
-                KSupportedMethods[i].support;
-                break;
-            case ERequestData :
-                taskReply->iDevInfoParams->iReqDataSupp = 
-                KSupportedMethods[i].support;
-                break;
-            case ESetBURMode :
-                taskReply->iDevInfoParams->iSetBURModeSupp = 
-                KSupportedMethods[i].support;
-                break;
-            case ESetInstParams :
-                taskReply->iDevInfoParams->iInstParamsSupp = 
-                KSupportedMethods[i].support;
-                break;
-            case ESupplyData :
-                taskReply->iDevInfoParams->iSupplyDataSupp = 
-                KSupportedMethods[i].support;
-                break;
-            case EUninstall :
-                taskReply->iDevInfoParams->iUninstallSupp = 
-                KSupportedMethods[i].support;
-                break;
-            case EReboot :
-                taskReply->iDevInfoParams->iRebootSupp = 
-                KSupportedMethods[i].support;
-                break;
-            default :
-                break;
-            }
-        }
-    
-    taskReply->iDevInfoParams->iVersion.Copy( KCONMLVERSION );
-    taskReply->iDevInfoParams->iMaxObjectSize = 
-        GetMaxObjectSize( aMaxObjectSize );
-    
-    reply->iNoTasks = EFalse;
-
-    User::LeaveIfError( reply->iTasks.Append( taskReply ) );
-    StoreReply( reply );
-    
-    CleanupStack::Pop( taskReply );
-    CleanupStack::Pop( reply );
-    LOGGER_WRITE_1( "CSConPCD::UpdateDeviceInfo() : returned %d", ret );
-    return ret;
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConPCD::GetMaxObjectSize( TInt /*aClientObjectSize*/ ) const
-// Gets the current max object size
-// -----------------------------------------------------------------------------
-//
-TInt CSConPCD::GetMaxObjectSize( TInt /*aClientObjectSize*/ ) const
-    {
-    LOGGER_WRITE_1( "CSConPCD::GetMaxObjectSize() : returned %d", iMaxObjectSize );
-    return iMaxObjectSize;
-    }
-
-// End of file
--- a/connectivitymodules/SeCon/services/pcd/src/sconpcdutility.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,411 +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:  SConPcdUtility implementation
-*
-*/
-
-
-//  CLASS HEADER
-#include <swi/sisregistryentry.h>
-#include <swi/sisregistrysession.h>
-#include <swi/sisregistrypackage.h>
-#include <stringresourcereader.h>
-#include <WidgetRegistryClient.h>
-#include <javaregistryincludes.h>
-#include <appversion.h>
-#include <mmf/common/mmfcontrollerpluginresolver.h>
-#include <sconftp.rsg>              // Resource to be read header 
-
-using namespace Java;
-
-#include "debug.h"
-#include "sconpcdutility.h"
-#include "sconconmltask.h"
-
-// localized "unknown vendor".
-_LIT( KSConResourceName, "z:\\Resource\\sconftp.rsc" );
-
-
-
-//  METHODS
-//----------------------------------------------------------------------------
-// void SConPcdUtility::ProcessListInstalledAppsL( CSConTask*& aTask )
-//----------------------------------------------------------------------------
-//
-void SConPcdUtility::ProcessListInstalledAppsL( CSConTask*& aTask )
-    {
-    TRACE_FUNC_ENTRY;
-    
-    LOGGER_WRITE_1("iAllApps: %d",(TInt)aTask->iListAppsParams->iAllApps);
-    LOGGER_WRITE8_1("driveList: %S", &aTask->iListAppsParams->iDriveList);
-    
-    AppendInstalledSisL( *aTask->iListAppsParams );
-    AppendInstalledJavaL( *aTask->iListAppsParams );
-    AppendInstalledWidgetsL( *aTask->iListAppsParams );
-    
-    TRACE_FUNC_EXIT;
-    }
-
-//----------------------------------------------------------------------------
-// void SConPcdUtility::AppendInstalledSisL( RPointerArray<CSConInstApp> &aApps )
-// Appends installed sis packages and augmentations to aApps array.
-//----------------------------------------------------------------------------
-//
-void SConPcdUtility::AppendInstalledSisL( CSConListInstApps& aListInstApps )
-    {
-    TRACE_FUNC_ENTRY;
-    // Get installed applications from sis registry
-    Swi::RSisRegistrySession sisRegistry;
-    CleanupClosePushL( sisRegistry );
-    User::LeaveIfError( sisRegistry.Connect() );
-    
-    RArray<TUid> uids;
-    CleanupClosePushL(uids);
-    sisRegistry.InstalledUidsL( uids );
-    
-    
-    //Read package information
-    for( TInt i = 0; i < uids.Count(); i++ )
-        {
-        Swi::RSisRegistryEntry entry;
-        CleanupClosePushL(entry);
-        User::LeaveIfError( entry.Open( sisRegistry, uids[i] ) );
-        
-        TBool showIt( EFalse );
-        if ( aListInstApps.iAllApps )
-            {
-            // show all apps -param defined, exlude stubs on ROM
-            if ( !entry.IsInRomL() )
-                {
-                showIt = ETrue;
-                }
-            }
-        else
-            {
-            // show if installed one of the specified drives
-            // don't exlude stubs on ROM
-            showIt = IsInstalledToSelectedDrive( aListInstApps.iDriveList,
-                                                 entry.InstalledDrivesL() );
-            }
-        
-        // Only show if not in rom
-        if ( showIt && entry.IsPresentL() )
-            {    
-            // Add the created object to the list
-            LOGGER_WRITE_1( "SConPcdUtility::ProcessListInstalledAppsL : add pkg, index %d", i );
-            CSConInstApp* app = new (ELeave) CSConInstApp();
-            CleanupStack::PushL( app );
-            
-            HBufC* temp = entry.PackageNameL();
-            TPtrC tempPtr = temp->Des();
-            LOGGER_WRITE_1("PackageNameL: %S", &tempPtr);
-            CleanupStack::PushL( temp );
-            if ( temp->Length() > app->iName.MaxLength() )
-            	{
-            	User::Leave( KErrTooBig );
-            	}
-            app->iName.Copy( *temp );
-            CleanupStack::PopAndDestroy( temp );
-            temp = NULL;
-            
-            temp = entry.UniqueVendorNameL();
-            CleanupStack::PushL( temp );
-            if ( temp->Length() > app->iVendor.MaxLength() )
-            	{
-            	User::Leave( KErrTooBig );
-            	}
-            app->iVendor.Copy( *temp );
-            CleanupStack::PopAndDestroy( temp );
-            temp = NULL;
-            
-            app->iVersion.Copy( entry.VersionL().Name() );
-            app->iType = ESisApplication;
-            app->iSize = entry.SizeL();
-            app->iUid = entry.UidL();
-            
-            User::LeaveIfError( aListInstApps.iApps.Append( app ) );
-            CleanupStack::Pop( app );
-            }
-        
-        // Get possible augmentations
-        RPointerArray<Swi::CSisRegistryPackage> augPackages;
-        CleanupResetAndDestroyPushL( augPackages );
-        entry.AugmentationsL( augPackages );
-        for ( TInt j( 0 ); j < augPackages.Count(); j++ )
-            {
-            Swi::RSisRegistryEntry augmentationEntry;
-            CleanupClosePushL( augmentationEntry );
-            augmentationEntry.OpenL( sisRegistry, *augPackages[j] );
-            
-            TBool showIt( EFalse );
-            if ( aListInstApps.iAllApps )
-                {
-                // show all apps -param defined, exlude stubs on ROM
-                if ( !augmentationEntry.IsInRomL() )
-                    {
-                    showIt = ETrue;
-                    }
-                }
-            else
-                {
-                // show if installed one of the specified drives
-                // don't exlude stubs on ROM
-                showIt = IsInstalledToSelectedDrive( aListInstApps.iDriveList,
-                                        augmentationEntry.InstalledDrivesL() );
-                }
-            
-            // Only show if not in rom
-            if ( showIt && augmentationEntry.IsPresentL() )
-                {
-                CSConInstApp* augApp = new (ELeave) CSConInstApp();
-                CleanupStack::PushL( augApp );
-                augApp->iName.Copy( augPackages[j]->Name() );
-                
-                HBufC* temp = entry.PackageNameL();
-                CleanupStack::PushL( temp );
-                if ( temp->Length() > augApp->iParentName.MaxLength() )
-                	{
-                	User::Leave( KErrTooBig );
-                	}
-                augApp->iParentName.Copy( *temp );
-                CleanupStack::PopAndDestroy( temp );
-                temp = NULL;
-                
-                augApp->iVendor.Copy( augPackages[j]->Vendor() );
-                augApp->iVersion.Copy( augmentationEntry.VersionL().Name() );
-                augApp->iType = ESisAugmentation;
-                augApp->iSize = augmentationEntry.SizeL();
-                augApp->iUid = augmentationEntry.UidL();
-                
-                LOGGER_WRITE_1( "SConPcdUtility::ProcessListInstalledAppsL : add augmentation, index: %d", j );
-                LOGGER_WRITE_1( "SConPcdUtility::ProcessListInstalledAppsL : add augmentation, basepkg: %d", i );
-                TInt augindex = augPackages[j]->Index();
-                LOGGER_WRITE_1( "SConPcdUtility::ProcessListInstalledAppsL : augindex: %d",augindex );
-                User::LeaveIfError( aListInstApps.iApps.Append( augApp ) );
-                CleanupStack::Pop( augApp );   
-                }
-            CleanupStack::PopAndDestroy( &augmentationEntry );
-            }  
-        CleanupStack::PopAndDestroy( &augPackages ); 
-        CleanupStack::PopAndDestroy( &entry );
-        }
-    
-    CleanupStack::PopAndDestroy(&uids);
-    CleanupStack::PopAndDestroy(&sisRegistry);
-    TRACE_FUNC_EXIT;
-    }
-
-//----------------------------------------------------------------------------
-// void SConPcdUtility::AppendInstalledJavaL( RPointerArray<CSConInstApp> &aApps )
-// Appends installed java packages to aApps array.
-//----------------------------------------------------------------------------
-//
-void SConPcdUtility::AppendInstalledJavaL( CSConListInstApps& aListInstApps )
-    {
-    TRACE_FUNC_ENTRY;
-    CJavaRegistry* javaRegistry = CJavaRegistry::NewLC( );
-    RArray<TUid> packageUids;
-    CleanupClosePushL( packageUids );
-    javaRegistry->GetRegistryEntryUidsL( /*EGeneralPackage,*/ packageUids );
-    LOGGER_WRITE_1("packageUids.Count(): %d", packageUids.Count());
-    for (TInt i=0; i<packageUids.Count(); i++ )
-        {
-        LOGGER_WRITE_1("RegistryEntryL: %d",i);
-        LOGGER_WRITE_1("handle entry uid: 0x%08X",packageUids[i].iUid);
-        CJavaRegistryEntry* entry = javaRegistry->RegistryEntryL( packageUids[i] );
-        if ( entry )
-            {
-            CleanupStack::PushL( entry );
-            if ( entry->Type() >= EGeneralPackage && entry->Type() < EGeneralApplication )
-                {
-                // entry was correct type
-                CJavaRegistryPackageEntry* packageEntry = ( CJavaRegistryPackageEntry* ) entry;
-                
-                // check do we need to filter it out
-                TBool showIt( EFalse );
-                if ( aListInstApps.iAllApps )
-                    {
-                    showIt = ETrue;
-                    }
-                else
-                    {
-                    TDriveNumber drive = packageEntry->Drive();
-                    if ( aListInstApps.iDriveList.Length() > drive
-                            && aListInstApps.iDriveList[ drive ] )
-                        {
-                        showIt = ETrue;
-                        }
-                    }
-                
-                if ( showIt )
-                    {
-                    CSConInstApp* app = new (ELeave) CSConInstApp();
-                    CleanupStack::PushL( app );
-                    // Get Uid, name, type, vendor
-                    app->iUid =  packageEntry->Uid();
-                    app->iName.Copy ( packageEntry->Name() );
-                    LOGGER_WRITE_1( "Name: %S", &app->iName );
-                    app->iType = EJavaApplication;
-                    
-                    // Get version
-                    TAppVersion midletVersion( packageEntry->Version() );
-                    TVersion verType(midletVersion.iMajor, midletVersion.iMinor, midletVersion.iBuild);    
-                    app->iVersion.Copy( verType.Name() );
-                    
-                    // Get vendor
-                    if ( entry->NumberOfCertificateChains() > 0 && packageEntry->Vendor().Length() > 0 )
-                        {
-                        app->iVendor.Copy( packageEntry->Vendor() );
-                        }
-                    else
-                        {
-                        // untrusted applications do not have certificates.
-                        // if the application has a certificate, it is installed either as 
-                        // trusted or not installed at all.
-                        
-                        // unknown vendor
-                        TFileName myFileName( KSConResourceName );
-                        CStringResourceReader* resReader = CStringResourceReader::NewL( myFileName );
-                        TPtrC bufUnknownSuplier;
-                        bufUnknownSuplier.Set( resReader->ReadResourceString( R_SECON_UNKNOWN_SUPPLIER ) );
-                        
-                        app->iVendor.Copy( bufUnknownSuplier );
-                        
-                        delete resReader;
-                        }
-                    
-                    // Get size
-                    app->iSize = packageEntry->UsedUserDiskSpace();
-                    
-                    User::LeaveIfError( aListInstApps.iApps.Append( app ) );
-                    CleanupStack::Pop( app );
-                    }
-                }
-            CleanupStack::PopAndDestroy( entry );
-            }
-        }
-    
-    CleanupStack::PopAndDestroy( &packageUids );
-    CleanupStack::PopAndDestroy( javaRegistry );
-    TRACE_FUNC_EXIT;
-    }
-
-//----------------------------------------------------------------------------
-// void SConPcdUtility::AppendInstalledWidgetsL( RPointerArray<CSConInstApp> &aApps )
-// Appends installed widgets to aApps array.
-//----------------------------------------------------------------------------
-//
-void SConPcdUtility::AppendInstalledWidgetsL( CSConListInstApps& aListInstApps )
-    {
-    TRACE_FUNC_ENTRY;
-    RWidgetRegistryClientSession widgetSession;
-    CleanupClosePushL( widgetSession );
-    User::LeaveIfError( widgetSession.Connect() );
-    
-    // Get the list of installed widgets
-    RWidgetInfoArray widgetInfoArr;
-    CleanupClosePushL( widgetInfoArr );
-    widgetSession.InstalledWidgetsL( widgetInfoArr );
-    
-    for ( TInt i = 0; i < widgetInfoArr.Count(); i++ )
-        {
-        CWidgetInfo *item = widgetInfoArr[i];
-        CleanupStack::PushL( item );
-        
-        
-        TBool showIt( EFalse );
-        if ( aListInstApps.iAllApps )
-            {
-            // show all apps -param defined
-            showIt = ETrue;
-            }
-        else
-            {
-            TDriveUnit locationDrive = item->iDriveName->Des();
-            // show if installed one of the specified drives
-            if (  aListInstApps.iDriveList.Length() > locationDrive
-                    && aListInstApps.iDriveList[locationDrive] )
-                {
-                showIt = ETrue;
-                }
-            }
-        
-        if ( showIt )
-            {
-            
-            CSConInstApp* app = new (ELeave) CSConInstApp();
-            CleanupStack::PushL( app );
-            app->iName.Copy( *(item->iBundleName) );
-            app->iType = EWidgetApplication;
-            app->iSize = item->iFileSize;
-            app->iUid = item->iUid;
-            
-            CWidgetPropertyValue* propValue = widgetSession.GetWidgetPropertyValueL(
-                    item->iUid, EBundleVersion );
-            if ( propValue && propValue->iType == EWidgetPropTypeString )
-                {
-                app->iVersion.Copy( *(propValue->iValue.s) );
-                }
-            delete propValue;
-            propValue = NULL;
-            
-            User::LeaveIfError( aListInstApps.iApps.Append( app ) );
-            CleanupStack::Pop( app ); // ownership transferred, do not delete
-            }
-        CleanupStack::PopAndDestroy( item );
-        }
-    User::LeaveIfError( widgetSession.Disconnect() );
-    
-    CleanupStack::PopAndDestroy( &widgetInfoArr );
-    CleanupStack::PopAndDestroy( &widgetSession );
-    TRACE_FUNC_EXIT;
-    }
-
-// ---------------------------------------------------------
-// SConPcdUtility::IsInstalledToSelectedDrive
-// Solve highest drive from aInstalledDrives and check
-// if that drive is selected
-// ---------------------------------------------------------
-//
-TBool SConPcdUtility::IsInstalledToSelectedDrive( const TDriveList& aSelectedDriveList, TUint aInstalledDrives )
-    {
-    TInt locationDrive;
-    if( aInstalledDrives )
-         {
-         // Select the highest drive as location drive
-         TInt drive = EDriveA;
-         while( aInstalledDrives >>= 1 )
-             {
-             drive++;
-             }
-         locationDrive = drive;
-         }
-     else
-         {
-         // No installed files, select C: as location drive
-         locationDrive = EDriveC;
-         }
-    
-    if ( aSelectedDriveList.Length() > locationDrive && aSelectedDriveList[locationDrive] )
-        {
-        LOGGER_WRITE("SConPcdUtility::IsInstalledToSelectedDrive : return ETrue");
-        return ETrue;
-        }
-    else
-        {
-        LOGGER_WRITE("SConPcdUtility::IsInstalledToSelectedDrive : return EFalse");
-        return EFalse;
-        }
-    }
-//  END OF FILE
--- a/connectivitymodules/SeCon/services/pcd/src/sconqueue.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,442 +0,0 @@
-/*
-* Copyright (c) 2005-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:  Queue implementation
-*
-*/
-
-
-// INCLUDE FILES
-
-#include "sconqueue.h"
-#include "sconpcdconsts.h"
-#include "debug.h"
-#include <SWInstDefs.h> // installer errors
-
-// ============================= MEMBER FUNCTIONS ===============================
-
-
-// -----------------------------------------------------------------------------
-// CSConTaskQueue::~CSConTaskQueue()
-// Destructor
-// -----------------------------------------------------------------------------
-//
-CSConTaskQueue::~CSConTaskQueue()
-    {
-    TRACE_FUNC;
-    iQueue.ResetAndDestroy();
-    iQueue.Close(); 
-    iTimer.Close();
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConTaskQueue::GetQueueStatus( TInt aTask, TBool aAllTasks, 
-//                                  CSConStatusReply*& aStatus )
-// Returns the status of a specified task / all tasks
-// -----------------------------------------------------------------------------
-//
-void CSConTaskQueue::GetQueueStatusL( TInt aTask, TBool aAllTasks, 
-                                    CSConStatusReply*& aStatus )
-    {
-    RArray<TInt> completedTasks;
-    CleanupClosePushL( completedTasks );
-    if ( aAllTasks )
-        {
-        //if there are tasks
-        if ( iQueue.Count() > 0 )
-            {
-            //set iNoTasks as EFalse
-            aStatus->iNoTasks = EFalse;
-            for ( TInt i = 0; i < iQueue.Count(); i++ )
-                {
-                //Fill reply object
-                CSConTaskReply* taskReply = new (ELeave) CSConTaskReply();
-                CleanupStack::PushL( taskReply );
-                taskReply->InitializeL( *iQueue[i] );
-                User::LeaveIfError( aStatus->iTasks.Append( taskReply ) );
-                CleanupStack::Pop( taskReply );
-                TBool complete = iQueue[i]->GetComplete();
-
-                //Collect completed task numbers to array for deleting
-                if ( complete )
-                    {
-                    completedTasks.Append( iQueue[i]->iTaskId );
-                    }
-                //Otherwise clean all unneccessary data from the reply packet
-                else
-                    {
-                    taskReply->CleanTaskData(); 
-                    }
-                }
-            }
-        else
-            {
-            //no task in the queue
-            aStatus->iNoTasks = ETrue;
-            }
-
-        //Remove completed tasks from queue
-        for ( TInt j = 0; j < completedTasks.Count(); j++ )
-            {
-            RemoveTask( completedTasks[j] );
-            }
-        }
-    else if ( aTask > 0 )
-        {
-        CSConTask* temp = new (ELeave) CSConTask();
-        temp->iTaskId = aTask;
-        TInt index = iQueue.Find( temp, CSConTaskQueue::Match );
-        delete temp;
-        
-        TBool complete = EFalse;
-        CSConTaskReply* taskReply(NULL);
-
-        if ( index != KErrNotFound )
-            {
-            aStatus->iNoTasks = EFalse;
-            //Fill reply object
-            taskReply = new (ELeave) CSConTaskReply();
-            CleanupStack::PushL( taskReply );
-            taskReply->InitializeL( *iQueue[index] );
-            User::LeaveIfError( aStatus->iTasks.Append( taskReply ) );
-            CleanupStack::Pop( taskReply );
-            complete = iQueue[index]->GetComplete();
-            }
-        else
-            {
-            //no task in the queue
-            aStatus->iNoTasks = ETrue;
-            }        
-        
-        //Delete completed tasks from queue
-        if ( complete )
-            {
-            RemoveTask( aTask );
-            }
-        //Otherwise clean all unneccessary data from the reply packet
-        else if ( taskReply )
-            {
-            taskReply->CleanTaskData(); 
-            }
-        }
-    else
-        {
-        //no task in the queue
-        aStatus->iNoTasks = ETrue;
-        }
-    CleanupStack::PopAndDestroy( &completedTasks ); // close
-    }   
-    
-// -----------------------------------------------------------------------------
-// CSConTaskQueue::AddNewTask( CSConTask*& aNewTask, TInt aTaskId )
-// Adds a new task to queue
-// -----------------------------------------------------------------------------
-//
-TInt CSConTaskQueue::AddNewTask( CSConTask*& aNewTask, TInt aTaskId )
-    {
-    TInt ret( KErrNone );
-    
-    aNewTask->iTaskId = aTaskId;
-    
-    //Set progress value "task accepted for execution"
-    aNewTask->SetProgressValue( KSConCodeTaskCreated );
-    aNewTask->SetCompleteValue( EFalse );
-    
-    if ( iQueue.Count() == 0 )
-        {
-        StartQueue();
-        }
-    ret = iQueue.InsertInOrder( aNewTask, CSConTaskQueue::Compare );
-    return ret;
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConTaskQueue::CompleteTask( TInt aTask, TInt aError )
-// Set the task to completed -mode
-// -----------------------------------------------------------------------------
-//
-void CSConTaskQueue::CompleteTask( TInt aTask, TInt aError )
-    {
-    LOGGER_WRITE_1( "CSConTaskQueue::CompleteTask aError: %d", aError );
-    TInt index( KErrNotFound );
-    
-    CSConTask* temp = new CSConTask();
-    temp->iTaskId = aTask;
-    index = iQueue.Find( temp, CSConTaskQueue::Match );
-    delete temp;
-    
-    if ( index != KErrNotFound )
-        {
-        TBool complete( ETrue );
-        TBool notComplete( EFalse );
-        TInt progress( KSConCodeTaskCompleted );        
-        
-        switch( aError )
-            {
-            case KErrNone :
-                iQueue[index]->SetCompleteValue( complete );
-                progress =  KSConCodeTaskCompleted;
-                break;
-            case KErrNotFound :
-                iQueue[index]->SetCompleteValue( complete );
-                progress =  KSConCodeNotFound;
-                break;
-            case KErrCompletion :
-                iQueue[index]->SetCompleteValue( notComplete );
-                progress = KSConCodeTaskPartiallyCompleted;
-                break;
-
-            // installer specific errors
-            case SwiUI::KSWInstErrUserCancel:
-            	LOGGER_WRITE("User cancelled the operation");
-            	iQueue[index]->SetCompleteValue( complete );
-            	progress = KSConCodeInstErrUserCancel;
-            	break;
-            case SwiUI::KSWInstErrFileCorrupted:
-            	LOGGER_WRITE("File is corrupted");
-            	iQueue[index]->SetCompleteValue( complete );
-            	progress = KSConCodeInstErrFileCorrupted;
-            	break;
-            case SwiUI::KSWInstErrInsufficientMemory:
-            	LOGGER_WRITE("Insufficient free memory in the drive to perform the operation");
-	            iQueue[index]->SetCompleteValue( complete );
-	            progress = KSConCodeInstErrInsufficientMemory;	
-	            break;
-            case SwiUI::KSWInstErrPackageNotSupported:
-            	LOGGER_WRITE("Installation of the package is not supported");
-            	iQueue[index]->SetCompleteValue( complete );
-            	progress = KSConCodeInstErrPackageNotSupported;
-            	break;
-            case SwiUI::KSWInstErrSecurityFailure:
-            	LOGGER_WRITE("Package cannot be installed due to security error");
-            	iQueue[index]->SetCompleteValue( complete );
-            	progress = KSConCodeInstErrSecurityFailure;
-            	break;
-            case SwiUI::KSWInstErrMissingDependency:
-            	LOGGER_WRITE("Package cannot be installed due to missing dependency");
-            	iQueue[index]->SetCompleteValue( complete );
-            	progress = KSConCodeInstErrMissingDependency;
-            	break;
-            case SwiUI::KSWInstErrFileInUse:
-            	LOGGER_WRITE("Mandatory file is in use and prevents the operation");
-            	iQueue[index]->SetCompleteValue( complete );
-            	progress = KSConCodeInstErrFileInUse;
-            	break;
-            case SwiUI::KSWInstErrGeneralError:
-            	LOGGER_WRITE("Unknown error");
-            	iQueue[index]->SetCompleteValue( complete );
-            	progress = KSConCodeInstErrGeneralError;
-            	break;
-            case SwiUI::KSWInstErrNoRights:
-            	LOGGER_WRITE("The package has no rights to perform the operation");
-            	iQueue[index]->SetCompleteValue( complete );
-            	progress = KSConCodeInstErrNoRights;
-            	break;
-            case SwiUI::KSWInstErrNetworkFailure:
-            	LOGGER_WRITE("Indicates that network failure aborted the operation");
-            	iQueue[index]->SetCompleteValue( complete );
-            	progress = KSConCodeInstErrNetworkFailure;
-            	break;
-            case SwiUI::KSWInstErrBusy:
-            	LOGGER_WRITE("Installer is busy doing some other operation");
-            	iQueue[index]->SetCompleteValue( complete );
-        		progress = KSConCodeInstErrBusy;
-            	break;
-            case SwiUI::KSWInstErrAccessDenied:
-            	LOGGER_WRITE("Target location of package is not accessible");
-            	iQueue[index]->SetCompleteValue( complete );
-            	progress = KSConCodeInstErrAccessDenied;
-            	break;
-            case SwiUI::KSWInstUpgradeError:
-            	LOGGER_WRITE("The package is an invalid upgrade");
-            	iQueue[index]->SetCompleteValue( complete );
-            	progress = KSConCodeInstUpgradeError;
-            	break;
-            
-            default :
-                iQueue[index]->SetCompleteValue( complete );
-                progress = KSConCodeConflict;
-                break;
-            }
-            
-        iQueue[index]->SetProgressValue( progress );
-        }
-    StartQueue();
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConTaskQueue::SetTaskProgress( TInt aTask, TInt aProgressValue )
-// Set the task progress value
-// -----------------------------------------------------------------------------
-//
-void CSConTaskQueue::SetTaskProgress( TInt aTask, TInt aProgressValue )
-    {
-    TInt index( KErrNotFound );
-
-    CSConTask* temp = new CSConTask();
-    temp->iTaskId = aTask;
-    index = iQueue.Find( temp, CSConTaskQueue::Match );
-    delete temp;
-    
-    if ( index != KErrNotFound )
-        {
-        iQueue[index]->SetProgressValue( aProgressValue );
-        }
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConTaskQueue::GetTask( TInt aTaskId, CSConTask*& aTask )
-// Receives a specified task
-// -----------------------------------------------------------------------------
-//
-TInt CSConTaskQueue::GetTask( TInt aTaskId, CSConTask*& aTask )
-    {
-    TInt ret( KErrNone );
-    TInt index;
-    
-    CSConTask* temp = new CSConTask();
-    temp->iTaskId = aTaskId;
-    index = iQueue.Find( temp, CSConTaskQueue::Match );
-    delete temp;
-
-    if ( index != KErrNotFound )
-        {
-        aTask = iQueue[index];
-        }
-    else
-        {
-        ret = KErrNotFound;
-        }
-    return ret;
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConTaskQueue::RemoveTask( TInt aTask )
-// Removes a task from the queue
-// -----------------------------------------------------------------------------
-//
-void CSConTaskQueue::RemoveTask( TInt aTask )
-    {
-    TInt index( KErrNotFound );
-    
-    CSConTask* temp = new CSConTask();
-    temp->iTaskId = aTask;
-    index = iQueue.Find( temp, CSConTaskQueue::Match );
-    delete temp;
-    
-    if ( index != KErrNotFound ) 
-        {
-        delete iQueue[index];
-        iQueue.Remove( index );
-        iQueue.Compress();
-        }
-    
-    if ( iQueue.Count() == 0 )
-        {
-        StopQueue();
-        iQueue.Reset();
-        }
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConTaskQueue::CancelTask( TInt aTask, TBool aAllTasks )
-// Cancels a task
-// -----------------------------------------------------------------------------
-//
-void CSConTaskQueue::CancelTask( TInt aTask, TBool aAllTasks )
-    {
-    TRACE_FUNC_ENTRY;
-    
-    //Remove the task from the queue
-    if ( aTask > 0 && !aAllTasks )
-        {
-        RemoveTask( aTask );
-        }
-        
-    //Remove all tasks from the queue
-    if ( aAllTasks )
-        {
-        iQueue.ResetAndDestroy();
-        }
-    
-    TRACE_FUNC_EXIT;
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConTaskQueue::QueueProcessActive()
-// The status of the process
-// -----------------------------------------------------------------------------
-//  
-TBool CSConTaskQueue::QueueProcessActive() const
-    {
-    return iQueueProcessActive;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConTaskQueue::ChangeQueueProcessStatus()
-// Changes the status of the queue process
-// -----------------------------------------------------------------------------
-//  
-void CSConTaskQueue::ChangeQueueProcessStatus()
-    {
-    iQueueProcessActive = !iQueueProcessActive;
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConTaskQueue::Reset()
-// Resets the queue
-// -----------------------------------------------------------------------------
-//
-void CSConTaskQueue::Reset()
-    {
-    TRACE_FUNC_ENTRY;
-    iTimer.Cancel();
-    iQueue.ResetAndDestroy();
-    TRACE_FUNC_EXIT;
-    }
-
-// ---------------------------------------------------------
-// CSConTaskQueue::Compare( const CSConTask& aFirst, 
-//                          const CSConTask& aSecond )
-// Compares task numbers
-// ---------------------------------------------------------    
-TInt CSConTaskQueue::Compare( const CSConTask& aFirst, 
-                            const CSConTask& aSecond )
-    {
-    if ( aFirst.iTaskId < aSecond.iTaskId )
-        {
-        return -1;
-        }
-    else if ( aFirst.iTaskId > aSecond.iTaskId )
-        {
-        return 1;
-        }
-    
-    return 0;
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConTaskQueue::Match( const CSConTask& aFirst, const CSConTask& aSecond )
-// Matches the task numbers
-// -----------------------------------------------------------------------------
-//
-TInt CSConTaskQueue::Match( const CSConTask& aFirst, const CSConTask& aSecond )
-    {
-    if ( aFirst.iTaskId == aSecond.iTaskId )
-        {
-        return ETrue;
-        }
-        
-    return EFalse;
-    }
-// End of file
--- a/connectivitymodules/SeCon/services/pcd/src/sconsbeclient.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1725 +0,0 @@
-/*
-* Copyright (c) 2005-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:  CSConSBEClient implementation
-*
-*/
-
-
-// INCLUDE FILES
-
-#include <pathinfo.h>
-#include <mmf/common/mmfcontrollerpluginresolver.h>
-
-#include "sconsbeclient.h"
-#include "debug.h"
-
-
-_LIT( KSConNoDrive, "\x0" );
-_LIT( KSConDriveExists, "\x1" );
-// ============================= MEMBER FUNCTIONS ==============================
-
-// -----------------------------------------------------------------------------
-// CSConSBEClient::NewL( cosnt TInt aMaxObjectSize )
-// Two-phase constructor
-// -----------------------------------------------------------------------------
-//  
-CSConSBEClient* CSConSBEClient::NewL( const TInt aMaxObjectSize, RFs& aFs )
-    {
-    TRACE_FUNC;
-    CSConSBEClient* self = new (ELeave) CSConSBEClient( aMaxObjectSize, aFs );
-    return self;
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConSBEClient::CSConSBEClient( const TInt aMaxObjectSize )
-// Constructor
-// -----------------------------------------------------------------------------
-//
-CSConSBEClient::CSConSBEClient( const TInt aMaxObjectSize, RFs& aFs ) : 
-        CActive( EPriorityStandard ), iSBEClient(NULL), 
-        iProcessComplete(EFalse), iProcessIndex( 0 ), iDataPos( 0 ),
-        iDataLeft( EFalse ), iBURModeNormal( ETrue ),
-        iRestoreMode( EFalse ), iFs( aFs )
-    {
-    iMaxObjectSize = aMaxObjectSize;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConSBEClient::~CSConSBEClient()
-// Initializes member data
-// -----------------------------------------------------------------------------
-//  
-CSConSBEClient::~CSConSBEClient()
-    {
-    TRACE_FUNC_ENTRY;
-    TInt err( KErrNone );
-    
-    if( !iBURModeNormal && iSBEClient )
-        {
-        TDriveList driveList;
-        
-        for( TInt i = 0; i<KMaxDrives; i++ )
-            {
-            if( i == EDriveC || i == EDriveE )
-                {
-                driveList.Append( KSConDriveExists );
-                }
-            else
-                {
-                driveList.Append( KSConNoDrive );
-                }
-            }
-        
-        TRAP( err, iSBEClient->SetBURModeL( driveList, EBURNormal, ENoBackup ) );
-        }
-    
-    if( iSBEClient )
-        {
-        delete iSBEClient;
-        iSBEClient = NULL;
-        }
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConSBEClient::SetBURMode( TRequestStatus& aStatus, CSConTask*& aTask )
-// Set backup/restore mode
-// -----------------------------------------------------------------------------
-//  
-void CSConSBEClient::SetBURMode( TRequestStatus& aStatus, CSConTask*& aTask )
-    {
-    TRACE_FUNC_ENTRY;
-    iCallerStatus = &aStatus;
-    *iCallerStatus = KRequestPending;
-    
-    iCurrentTask = aTask;
-
-    TRequestStatus* status = &iStatus; 
-    User::RequestComplete( status, KErrNone ); 
-    SetActive();
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConSBEClient::ListPublicFiles( TRequestStatus& aStatus, 
-//                                  CSConTask*& aTask )
-// Lists public files from data owners
-// -----------------------------------------------------------------------------
-//  
-void CSConSBEClient::ListPublicFiles( TRequestStatus& aStatus, 
-                                    CSConTask*& aTask )
-    {
-    TRACE_FUNC_ENTRY;
-    iCallerStatus = &aStatus;
-    *iCallerStatus = KRequestPending;
-    
-    iCurrentTask = aTask;
-    
-    TRequestStatus* status = &iStatus; 
-    User::RequestComplete( status, KErrNone ); 
-    SetActive();    
-    TRACE_FUNC_EXIT;
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConSBEClient::ListDataOwners( TRequestStatus& aStatus, CSConTask*& aTask )
-// Lists participant data owners
-// -----------------------------------------------------------------------------
-//  
-void CSConSBEClient::ListDataOwners( TRequestStatus& aStatus, CSConTask*& aTask )
-    {
-    TRACE_FUNC_ENTRY;
-    iCallerStatus = &aStatus;
-    *iCallerStatus = KRequestPending;
-    
-    iCurrentTask = aTask;
-    
-    TRequestStatus* status = &iStatus; 
-    User::RequestComplete( status, KErrNone ); 
-    SetActive();
-    TRACE_FUNC_EXIT;
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConSBEClient::GetDataSize( TRequestStatus& aStatus, CSConTask*& aTask )
-// Lists data sizes from data owners
-// -----------------------------------------------------------------------------
-//  
-void CSConSBEClient::GetDataSize( TRequestStatus& aStatus, CSConTask*& aTask )
-    {
-    TRACE_FUNC_ENTRY;
-    iCallerStatus = &aStatus;
-    *iCallerStatus = KRequestPending;
-    
-    iCurrentTask = aTask;
-    
-    TRequestStatus* status = &iStatus; 
-    User::RequestComplete( status, KErrNone ); 
-    SetActive();
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConSBEClient::RequestData( TRequestStatus& aStatus, CSConTask*& aTask )
-// Request a data from a data owner
-// -----------------------------------------------------------------------------
-//  
-void CSConSBEClient::RequestData( TRequestStatus& aStatus, CSConTask*& aTask )
-    {
-    TRACE_FUNC_ENTRY;
-    iCallerStatus = &aStatus;
-    *iCallerStatus = KRequestPending;
-    
-    iCurrentTask = aTask;
-    
-    TRequestStatus* status = &iStatus;
-    User::RequestComplete( status, KErrNone );          
-    SetActive();    
-    TRACE_FUNC_EXIT;
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConSBEClient::GetDataOwnerStatus( TRequestStatus& aStatus, 
-//                                      CSConTask*& aTask )
-// Lists the status of data owners
-// -----------------------------------------------------------------------------
-//  
-void CSConSBEClient::GetDataOwnerStatus( TRequestStatus& aStatus, 
-                                        CSConTask*& aTask )
-    {
-    TRACE_FUNC_ENTRY;
-    iCallerStatus = &aStatus;
-    *iCallerStatus = KRequestPending;
-    
-    iCurrentTask = aTask;
-    
-    TRequestStatus* status = &iStatus; 
-    User::RequestComplete( status, KErrNone ); 
-    SetActive();
-        
-    TRACE_FUNC_EXIT;
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConSBEClient::SupplyData( TRequestStatus& aStatus, CSConTask*& aTask )
-// Supplies a data to a data owner
-// -----------------------------------------------------------------------------
-//  
-void CSConSBEClient::SupplyData( TRequestStatus& aStatus, CSConTask*& aTask )
-    {
-    TRACE_FUNC_ENTRY;
-    iCallerStatus = &aStatus;
-    *iCallerStatus = KRequestPending;
-    
-    iCurrentTask = aTask;
-    
-    TRequestStatus* status = &iStatus; 
-    User::RequestComplete( status, KErrNone ); 
-    SetActive();    
-    TRACE_FUNC_EXIT;
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConSBEClient::DoCancel()
-// Implementation of CActive::DoCancel()
-// -----------------------------------------------------------------------------
-//          
-void CSConSBEClient::DoCancel()
-    {
-    TRACE_FUNC;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConSBEClient::RunL()
-// Implementation of CActive::RunL()
-// -----------------------------------------------------------------------------
-//              
-void CSConSBEClient::RunL()
-    {
-    TRACE_FUNC_ENTRY;
-    TInt err( KErrNone );
-    TInt ret( KErrNone );
-    
-    //Initialize a connection to the backup server
-    if( !iSBEClient )
-        {
-        iSBEClient = CSBEClient::NewL();
-        }   
-    
-    switch( iCurrentTask->GetServiceId() )
-        {
-        case ESetBURMode :
-            LOGGER_WRITE( "CSConSBEClient::RunL() : ESetBURMode" );
-            TRAP( err, ProcessSetBURModeL() );
-            LOGGER_WRITE_1( "CSConSBEClient::RunL() : ProcessSetBURModeL() : returned %d", err );
-            HandleSBEErrorL( err );
-            User::RequestComplete( iCallerStatus, err );
-            break;
-        case EListPublicFiles :
-            LOGGER_WRITE( "CSConSBEClient::RunL() : EListPublicFiles" );
-            TRAP( err, ProcessListPublicFilesL() );
-            LOGGER_WRITE_1( "CSConSBEClient::RunL() : ProcessListPublicFilesL() : returned %d", err );
-            HandleSBEErrorL( err );
-            User::RequestComplete( iCallerStatus, err );
-            break;
-        case EListDataOwners :
-            LOGGER_WRITE( "CSConSBEClient::RunL() : EListDataOwners" ); 
-            TRAP( err, ProcessListDataOwnersL() );
-            LOGGER_WRITE_1( "CSConSBEClient::RunL() : ProcessListDataOwnersL() : returned %d", err );
-            HandleSBEErrorL( err );
-            User::RequestComplete( iCallerStatus, err );
-            break;
-        case EGetDataSize :
-            LOGGER_WRITE( "CSConSBEClient::RunL() : EGetDataSize" );    
-            TRAP( err, ProcessGetDataSizeL() );
-            LOGGER_WRITE_1( "CSConSBEClient::RunL() : ProcessGetDataSizeL() : returned %d", err );
-            HandleSBEErrorL( err );
-            User::RequestComplete( iCallerStatus, err );
-            break;
-        case ERequestData :
-            LOGGER_WRITE( "CSConSBEClient::RunL() : ERequestData" );
-            TRAP( err, ret = ProcessRequestDataL() );
-            LOGGER_WRITE_1( "CSConSBEClient::RunL() : ProcessRequestDataL() : returned %d", err );
-            HandleSBEErrorL( err );
-            
-            if( err == KErrNone )
-                {
-                err = ret;
-                }
-            
-            User::RequestComplete( iCallerStatus, err );
-            break;  
-        case EGetDataOwnerStatus :
-            LOGGER_WRITE( "CSConSBEClient::RunL() : EGetDataOwnerStatus" );
-            TRAP( err, ProcessGetDataOwnerStatusL() );
-            LOGGER_WRITE_1( "CSConSBEClient::RunL() : ProcessGetDataOwnerStatusL() : returned %d", err );
-            HandleSBEErrorL( err );
-            User::RequestComplete( iCallerStatus, err );
-            break;
-        case ESupplyData :
-            LOGGER_WRITE( "CSConSBEClient::RunL() : ESupplyData" ); 
-            TRAP( err, ret = ProcessSupplyDataL() );
-            LOGGER_WRITE_1( "CSConSBEClient::RunL() : SupplyDataL() : returned %d", err );
-            HandleSBEErrorL( err );
-            
-            if( err == KErrNone )
-                {
-                err = ret;
-                }
-            
-            User::RequestComplete( iCallerStatus, err );
-            break;
-        default :
-            LOGGER_WRITE( "CSConSBEClient::RunL() : ERROR! Unknown!" ); 
-            break;
-        }
-            
-    TRACE_FUNC_EXIT;
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConSBEClient::ProcessSetBURModeL()
-// Executes SetBURMode task
-// -----------------------------------------------------------------------------
-//  
-void CSConSBEClient::ProcessSetBURModeL()
-    {
-    TRACE_FUNC_ENTRY;
-    
-    iAllSnapshotsSuppliedCalled = EFalse;
-    
-    TDriveList driveList = iCurrentTask->iBURModeParams->iDriveList;
-    
-    TBURPartType partialType = EBURUnset;
-    iRestoreMode = EFalse;
-    
-    switch( iCurrentTask->iBURModeParams->iPartialType )
-        {
-        case ESConBurNormal :
-            partialType = EBURNormal;
-            break;
-        case ESConBurBackupFull :
-            partialType = EBURBackupFull;
-            break;
-        case ESConBurBackupPartial :
-            partialType = EBURBackupPartial;
-            break;
-        case ESConBurRestoreFull :
-            partialType = EBURRestoreFull;
-            iRestoreMode = ETrue;
-            break;
-        case ESConBurRestorePartial :
-            partialType = EBURRestorePartial;
-            iRestoreMode = ETrue;
-            break;
-        default :
-            partialType = EBURUnset;
-            break;
-        }
-    
-    TBackupIncType incType = ENoBackup;
-    
-    switch( iCurrentTask->iBURModeParams->iIncType )    
-        {
-        case ESConNoBackup :
-            incType = ENoBackup;
-            break;
-        case ESConBackupBase :
-            incType = EBackupBase;
-            break;
-        case ESConBackupIncrement :
-            incType = EBackupIncrement;
-            break;
-        default :
-            incType = ENoBackup;
-            break;
-        }
-    
-    iSBEClient->SetBURModeL( driveList, partialType, incType );
-    
-    if( partialType != EBURNormal )
-        {
-        iBURModeNormal = EFalse;
-        }
-    else
-        {
-        iBURModeNormal = ETrue;
-        }
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConSBEClient::ProcessListPublicFilesL()
-// Executes ListPublicFiles task
-// -----------------------------------------------------------------------------
-//
-void CSConSBEClient::ProcessListPublicFilesL()
-    {
-    TRACE_FUNC_ENTRY;
-    //Get the secure id
-    TSecureId sid = iCurrentTask->iPubFilesParams->iDataOwners[0]->iUid;
-    TSecureId packageSid;
-    LOGGER_WRITE_1("DO: 0x%08x", sid.iId);
-    TPtrC packageName(KNullDesC);
-    const TUint KSConUidLength = 8; // 8 digits (hex)
-    const TUint KSConUidPrefixLength = 3; // prefix is '#0x'
-    
-    TInt packageNameLength = iCurrentTask->iPubFilesParams->iDataOwners[0]->iPackageName.Length();
-    
-    if ( packageNameLength > KSConUidLength )
-        {
-        // remove uid from package name
-        packageName.Set( 
-                iCurrentTask->iPubFilesParams->iDataOwners[0]->
-                iPackageName.Left( packageNameLength - (KSConUidLength + KSConUidPrefixLength) ) );
-        LOGGER_WRITE_1("PackageName: %S", &packageName );
-        
-        TPtrC sidPtr( iCurrentTask->iPubFilesParams->iDataOwners[0]->
-                iPackageName.Right( KSConUidLength ) );
-        TLex lex(sidPtr);
-        TInt err = lex.Val( packageSid.iId, EHex );
-        if ( err )
-            {
-            LOGGER_WRITE_1("lex.Val error: %d", err);
-            packageName.Set( KNullDesC );
-            packageSid.iId = 0;
-            }
-        LOGGER_WRITE_1("packageSid: 0x%08x", packageSid.iId );
-        }
-    
-    //Get the drive list
-    TDriveList driveList = 
-    iCurrentTask->iPubFilesParams->iDataOwners[0]->iDriveList;
-    
-    RFileArray files;
-    CleanupClosePushL( files );
-    //Go through all the drives in the list
-    for( TInt i = 0; i < KMaxDrives; i++ )
-        {
-        if( driveList[i] )
-            {
-            //Get files from the drive
-            TDriveNumber driveNumber = GetDriveNumber( i );
-            LOGGER_WRITE_1("driveNumber: %d", driveNumber);
-            
-            LOGGER_WRITE("List public files using CSBSecureId");
-            CSBSecureId* secureId = CSBSecureId::NewL( sid );
-            CleanupStack::PushL( secureId );
-            
-            TRAPD( err, iSBEClient->PublicFileListL( driveNumber, *secureId, files ) );
-            
-            if( err != KErrNone && err != KErrNotFound )
-                {
-                LOGGER_WRITE_1("iSBEClient->PublicFileListL leaved: %d", err);
-                User::LeaveIfError( err );
-                }
-            
-            CleanupStack::PopAndDestroy( secureId );
-            LOGGER_WRITE_1("public files: %d", files.Count());
-            AppendFilesToFilelistL( files, iCurrentTask->iPubFilesParams->iFiles) ;
-            
-            if ( packageName.Length() > 0 )
-                {
-                LOGGER_WRITE("Append files registered to packages. Using CSBPackageId");
-                
-                CSBPackageId* packageId = CSBPackageId::NewL(
-                        iCurrentTask->iPubFilesParams->iDataOwners[0]->iUid,
-                        packageSid,
-                        packageName );
-                CleanupStack::PushL( packageId );
-                
-                TRAPD( err, iSBEClient->PublicFileListL( driveNumber, *packageId, files ) );
-                if( err != KErrNone && err != KErrNotFound )
-                    {
-                    LOGGER_WRITE_1("iSBEClient->PublicFileListL leaved: %d", err);
-                    User::LeaveIfError( err );
-                    }
-                CleanupStack::PopAndDestroy( packageId );
-                
-                LOGGER_WRITE_1("public files: %d", files.Count());
-                AppendFilesToFilelistL( files, iCurrentTask->iPubFilesParams->iFiles) ;
-                }
-            
-            files.Reset();
-            }
-        }
-    CleanupStack::PopAndDestroy( &files );
-    TRACE_FUNC_EXIT;
-    }
-
-    
-// -----------------------------------------------------------------------------
-// CSConSBEClient::ProcessListDataOwnersL()
-// Executes ListDataOwners task
-// -----------------------------------------------------------------------------
-//
-void CSConSBEClient::ProcessListDataOwnersL()
-    {
-    TRACE_FUNC_ENTRY;
-    TBool includeToList( ETrue );
-    RPointerArray<CDataOwnerInfo> dataOwners;
-    RArray<TUid> packageArray;
-    CleanupResetAndDestroyPushL( dataOwners );
-    CleanupClosePushL( packageArray );
-    
-    iSBEClient->ListOfDataOwnersL( dataOwners );
-    LOGGER_WRITE_1( "dataOwners count: %d", dataOwners.Count() );
-    
-    
-    for( TInt i = 0; i < dataOwners.Count(); i++ )
-        {
-        LOGGER_WRITE_2("handling do: %d, count: %d", i, dataOwners.Count());
-        CSConDataOwner* dataOwner = new (ELeave) CSConDataOwner();
-        // default values
-        TSecureId sid( 0 );
-        includeToList = ETrue;
-        
-        TCommonBURSettings commonOptions = dataOwners[i]->CommonSettings();
-        TPassiveBURSettings passiveOptions = dataOwners[i]->PassiveSettings();
-        TActiveBURSettings activeOptions = dataOwners[i]->ActiveSettings();
-        
-        //active, passive or hybrid? (common)
-        if( commonOptions & EActiveBUR && commonOptions & EPassiveBUR )
-            {
-            dataOwner->iType = EHybridDataOwner;
-            }       
-        else if( commonOptions & EActiveBUR )
-            {
-            dataOwner->iType = EActiveDataOwner;
-            }
-        else if( commonOptions & EPassiveBUR )
-            {
-            dataOwner->iType = EPassiveDataOwner;
-            }
-                
-        //requires reboot? (common)
-        if( commonOptions & ERequiresReboot )
-            {
-            dataOwner->iReqReboot = ETrue;
-            }
-        else
-            {
-            dataOwner->iReqReboot = EFalse;
-            }
-            
-        //has system files? (common)
-        if( commonOptions & EHasSystemFiles )
-            {
-            dataOwner->iHasFiles = ESystemFiles;
-            }
-            
-        //supports selective? (common)
-        if( commonOptions & ESupportsSelective )
-            {
-            dataOwner->iSupportsSel = ETrue;
-            }
-        else
-            {
-            dataOwner->iSupportsSel = EFalse;
-            }
-            
-        //has public files? (passive)
-        if( passiveOptions & EHasPublicFiles )
-            {
-            if( dataOwner->iHasFiles == ESystemFiles )
-                {
-                dataOwner->iHasFiles = EPublicSystemFiles;
-                }
-            else
-                {
-                dataOwner->iHasFiles = EPublicFiles;    
-                }
-            }
-            
-        //supports incremental? (active and passive)
-        if( activeOptions & EActiveSupportsInc || 
-                passiveOptions & EPassiveSupportsInc  )
-            {
-            dataOwner->iSupportsInc = ETrue;
-            }
-        else
-            {
-            dataOwner->iSupportsInc = EFalse;
-            }
-            
-        //delay to prepare data? (active)
-        if( activeOptions & EDelayToPrepareData )
-            {
-            dataOwner->iDelayToPrep = ETrue;
-            }
-        else
-            {
-            dataOwner->iDelayToPrep = EFalse;
-            }
-            
-        //fill drivelist
-        dataOwner->iDriveList = dataOwners[i]->DriveList();
-        //filter the drive list
-        FilterDriveList( dataOwner->iDriveList );
-                        
-        CSBGenericDataType* genericData = &( dataOwners[i]->Identifier() );
-        TSBDerivedType derived = genericData->DerivedTypeL();
-        
-        if( derived == ESIDDerivedType )
-            {
-            //Uif of the data owner
-            CSBSecureId* secureId = CSBSecureId::NewL( genericData );
-            CleanupStack::PushL( secureId );
-            sid = secureId->SecureIdL();
-        
-            dataOwner->iUid.iUid = (TInt32)sid.iId;
-            LOGGER_WRITE_1("ESIDDerivedType, sid: 0x%08x", dataOwner->iUid.iUid );
-        
-            CleanupStack::PopAndDestroy( secureId );
-            }
-        else if( derived == EPackageDerivedType )
-            {
-            //Package name and uid of the data owner
-            CSBPackageId* packageId = CSBPackageId::NewL( genericData );
-            CleanupStack::PushL( packageId );
-        
-            dataOwner->iPackageName = packageId->PackageNameL();
-            dataOwner->iUid.iUid = packageId->PackageIdL().iUid;
-            LOGGER_WRITE_1("EPackageDerivedType, uid: 0x%08x", dataOwner->iUid.iUid );
-            sid = packageId->SecureIdL();
-            LOGGER_WRITE_1("sid: 0x%08x", sid.iId );
-            
-            // owerload the package name, also add sid information.
-            _LIT(KSidFormat, "#0x%08x");
-            const TInt KSidFormatLength = 11;
-            TBuf<KSidFormatLength> sidFormat;
-            sidFormat.Format( KSidFormat, sid.iId );
-            if ( dataOwner->iPackageName.Length() + sidFormat.Length()
-                <= dataOwner->iPackageName.MaxLength() )
-                {
-                dataOwner->iPackageName.Append( sidFormat );
-                }
-            else
-                {
-                LOGGER_WRITE("WARNING: Package name too long, sid not included.");
-                }
-            
-            LOGGER_WRITE_1("Package name: %S", &dataOwner->iPackageName );
-            if( sid )
-                {
-                //Find if the package is already included to dataowner list
-                if( packageArray.Find( packageId->PackageIdL(), 
-                                        CSConSBEClient::Match ) != KErrNotFound )
-                    {
-                    LOGGER_WRITE("dataowner was already included to list");
-                    //Don't include dataowner to list again
-                    includeToList = EFalse;
-                    }
-                else
-                    {
-                    //Store package's id for filtering
-                    LOGGER_WRITE_1( "Storing package id for filtering, uid: 0x%08x", dataOwner->iUid.iUid );
-                    packageArray.Append( dataOwner->iUid ); 
-                    }
-                }
-            
-            CleanupStack::PopAndDestroy( packageId );
-            }
-        else if( derived == EJavaDerivedType )
-            {
-            //Hash
-            CSBJavaId* javaId = CSBJavaId::NewL( genericData );
-            CleanupStack::PushL( javaId );
-            
-            //Initialize with hash data length and copy hash
-            dataOwner->iJavaHash = HBufC::NewL( javaId->SuiteHashL().Length() );
-            dataOwner->iJavaHash->Des().Copy( javaId->SuiteHashL() );
-            
-            //For ConML: set as passive package
-            dataOwner->iType = EPassiveDataOwner;
-            dataOwner->iPackageName.Copy( javaId->SuiteNameL() );
-            
-#ifdef _DEBUG
-            LOGGER_WRITE("EJavaDerivedType" );
-            LOGGER_WRITE_1("Package name: %S", &dataOwner->iPackageName );
-            TPtrC hash( dataOwner->iJavaHash->Des() );
-            LOGGER_WRITE_1("JavaHash: %S", &hash );
-#endif
-            
-            CleanupStack::PopAndDestroy( javaId );
-            }
-        else
-            {
-            LOGGER_WRITE("Unknown type, ignored from list" );
-            //Unknown type => ignore from list
-            includeToList = EFalse;
-            }
-        
-        if( includeToList ) 
-            {
-            LOGGER_WRITE_1( "Appending to list, uid: 0x%08x", dataOwner->iUid.iUid );
-            iCurrentTask->iListDataOwnersParams->iDataOwners.Append( dataOwner );
-            }
-        
-        if( sid )
-            {
-            LOGGER_WRITE_1( "Appending package sid to list, sid: 0x%08x", sid.iId );
-            CSConDataOwner* packageDataOwner = dataOwner->CopyL();
-            //Clear package name
-            packageDataOwner->iPackageName = KNullDesC();
-            //Add sid
-            packageDataOwner->iUid.iUid = sid.iId;
-            iCurrentTask->iListDataOwnersParams->iDataOwners.Append( packageDataOwner );
-            }
-        
-        if( !includeToList )
-            {
-            //Not included to list => delete memory allocation
-            delete dataOwner;
-            }
-        }
-        
-    packageArray.Reset();
-    CleanupStack::PopAndDestroy( &packageArray );
-    CleanupStack::PopAndDestroy( &dataOwners );
-    TRACE_FUNC_EXIT;
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConSBEClient::ProcessGetDataSizeL()
-// Executes GetDataSize task
-// -----------------------------------------------------------------------------
-//  
-void CSConSBEClient::ProcessGetDataSizeL()
-    {
-    TRACE_FUNC_ENTRY;
-    
-    if ( !iAllSnapshotsSuppliedCalled )
-        {
-        TInt err(KErrNone);
-        // we have to call AllSnapshotsSupplied() to inform active
-        // data owners to start prepare their base data.
-        TRAP( err, iSBEClient->AllSnapshotsSuppliedL() );
-        LOGGER_WRITE_1( "AllSnapshotsSuppliedL() leaved: %d", err );
-        iAllSnapshotsSuppliedCalled = ETrue;
-        }
-    
-    
-    TBool packageData( EFalse );
-    
-    //Calculate data size for every data owner received from the task
-    for( TInt i = 0; i < iCurrentTask->iGetDataSizeParams->iDataOwners.Count();
-        i++ )
-        {
-        packageData = EFalse;
-        CSConDataOwner* dataOwner = 
-            iCurrentTask->iGetDataSizeParams->iDataOwners[i];
-            
-        TTransferDataType tdt( ERegistrationData );
-        TPackageDataType pdt( ESystemData );
-        
-        LOGGER_WRITE_2( "ProcessGetDataSizeL DO %d of %d", i, iCurrentTask->iGetDataSizeParams->iDataOwners.Count() );
-        LOGGER_WRITE_1( "ProcessGetDataSizeL SID 0x%08x", dataOwner->iUid );
-        switch( dataOwner->iTransDataType )
-            {
-            case ESConRegistrationData :
-                LOGGER_WRITE( "CSConSBEClient::ProcessGetDataSize() : ERegistrationData" );
-                tdt = ERegistrationData;
-                break;
-            case ESConPassiveSnapshotData :
-                LOGGER_WRITE( "CSConSBEClient::ProcessGetDataSize() : EPassiveSnapshotData" );
-                tdt = EPassiveSnapshotData;
-                break;
-            case ESConPassiveBaseData :
-                LOGGER_WRITE( "CSConSBEClient::ProcessGetDataSize() : EPassiveBaseData" );
-                tdt = EPassiveBaseData;
-                break;
-            case ESConPassiveIncrementalData :
-                LOGGER_WRITE( "CSConSBEClient::ProcessGetDataSize() : EPassiveIncrementalData" );
-                tdt = EPassiveIncrementalData;
-                break;
-            case ESConActiveSnapshotData :
-                LOGGER_WRITE( "CSConSBEClient::ProcessGetDataSize() : EActiveSnapshotData" );
-                tdt = EActiveSnapshotData;
-                break;
-            case ESConActiveBaseData :
-                LOGGER_WRITE( "CSConSBEClient::ProcessGetDataSize() : EActiveBaseData" );
-                tdt = EActiveBaseData;
-                break;
-            case ESConActiveIncrementalData :
-                LOGGER_WRITE( "CSConSBEClient::ProcessGetDataSize() : EActiveIncrementalData" );
-                tdt = EActiveIncrementalData;
-                break;
-            case ESConSystemData :
-                LOGGER_WRITE( "CSConSBEClient::ProcessGetDataSize() : ESystemData" );
-                pdt = ESystemData;
-                packageData = ETrue;
-                break;
-            case ESConSystemSnapshotData :
-                LOGGER_WRITE( "CSConSBEClient::ProcessGetDataSize() : ESystemSnapshotData" );
-                pdt = ESystemSnapshotData;
-                packageData = ETrue;
-                break;
-            default :
-                break;
-            }
-        
-        if( packageData && !dataOwner->iJavaHash )
-            {
-            dataOwner->iSize = PackageDataSizeL( dataOwner->iUid, dataOwner->iDriveList, pdt );
-            }
-        else if( !dataOwner->iJavaHash )
-            {
-            dataOwner->iSize = SidDataSizeL( dataOwner->iUid, dataOwner->iDriveList, tdt );
-            }
-        else
-            {
-            dataOwner->iSize = JavaDataSizeL( dataOwner->iJavaHash->Des(),
-                    dataOwner->iDriveList );
-            }
-        }
-    
-    TRACE_FUNC_EXIT;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CSConSBEClient::ProcessRequestDataL()
-// Executes RequestData task
-// -----------------------------------------------------------------------------
-//      
-TInt CSConSBEClient::ProcessRequestDataL()
-    {
-    TRACE_FUNC_ENTRY;
-    TInt ret( KErrNone );
-    
-    if( iMaxObjectSize <= 1 )
-        {
-        User::Leave( KErrGeneral );
-        }
-        
-    TBool packageData = EFalse;
-    TTransferDataType transferDataType( ERegistrationData );
-    TPackageDataType packageDataType( ESystemSnapshotData );    
-    LOGGER_WRITE_1("CSConSBEClient::ProcessRequestDataL() iTransDataType: %d",
-        (TInt)iCurrentTask->iRequestDataParams->iDataOwner->iTransDataType);
-    
-    switch( iCurrentTask->iRequestDataParams->iDataOwner->iTransDataType )
-        {
-        case ESConRegistrationData :
-            transferDataType = ERegistrationData;
-            break;
-        case ESConPassiveSnapshotData :
-            transferDataType = EPassiveSnapshotData;
-            break;
-        case ESConPassiveBaseData :
-            transferDataType = EPassiveBaseData;
-            break;
-        case ESConPassiveIncrementalData :
-            transferDataType = EPassiveIncrementalData;
-            break;
-        case ESConActiveSnapshotData :
-            transferDataType = EActiveSnapshotData;
-            break;
-        case ESConActiveBaseData :
-            transferDataType = EActiveBaseData;
-            break;
-        case ESConActiveIncrementalData :
-            transferDataType = EActiveIncrementalData;
-            break;
-        case ESConSystemData :
-            packageDataType = ESystemData;
-            packageData = ETrue;
-            break;
-        case ESConSystemSnapshotData:
-            packageDataType = ESystemSnapshotData;
-            packageData = ETrue;
-            break;
-        default :
-            break;
-        }
-        
-    
-    //Get the drive number  
-    TDriveNumber driveNumber = EDriveC;
-    TDriveList driveList = iCurrentTask->iRequestDataParams->
-        iDataOwner->iDriveList;
-    
-    for( TInt i = 0; i < KMaxDrives; i++ )
-        {
-        if( driveList[i] )
-            {
-            driveNumber = GetDriveNumber( i );
-            break;
-            }
-        }
-        
-    //Get UID, SID or Java hash
-    TUid uid;
-    TSecureId sid;
-            
-    uid.iUid = 0;
-    sid.iId = 0;
-    
-    if( packageData && !iCurrentTask->iRequestDataParams->iDataOwner->iJavaHash )
-        {
-        uid = iCurrentTask->iRequestDataParams->iDataOwner->iUid;
-        LOGGER_WRITE_1("CSConSBEClient::ProcessRequestDataL() uid: 0x%08x", uid.iUid);
-        }
-    else if( !iCurrentTask->iRequestDataParams->iDataOwner->iJavaHash )
-        {
-        sid = iCurrentTask->iRequestDataParams->iDataOwner->iUid;
-        LOGGER_WRITE_1("CSConSBEClient::ProcessRequestDataL() sid: 0x%08x", sid.iId);
-        }
-            
-    CSBPackageTransferType* ptt( NULL );
-    CSBSIDTransferType* stt( NULL );
-    CSBJavaTransferType* jtt( NULL );
-    
-    LOGGER_WRITE_1( "CSConSBEClient::ProcessRequestDataL() : \
-    Begin - Data left: %d", iDataLeft );
-    LOGGER_WRITE_1( "CSConSBEClient::ProcessRequestDataL() : \
-    Begin - Package data: %d", packageData );
-    LOGGER_WRITE_1( "CSConSBEClient::ProcessRequestDataL() : \
-    Begin - iDataPos: %d", iDataPos );
-        
-    //Are there old data left to be transfered?
-    if( !iDataLeft ) 
-        {
-        //No data left, request more from the server
-        if( packageData && !iCurrentTask->iRequestDataParams->iDataOwner->iJavaHash )
-            {
-            ptt = CSBPackageTransferType::NewL( uid, driveNumber, 
-                packageDataType );
-            CleanupStack::PushL( ptt );
-            LOGGER_WRITE( "iSBEClient->RequestDataL( ptt ) : start" );
-            TRequestStatus status;
-            iSBEClient->RequestDataL( *ptt, status );
-            User::WaitForRequest( status );
-            LOGGER_WRITE( "iSBEClint->RequestDataL( ptt ) : stop" );
-            
-            LOGGER_WRITE_1( "CSConSBEClient::ProcessRequestDataL() : status.Int() %d", status.Int() );
-            User::LeaveIfError( status.Int() );
-                                    
-            //Get the data and store the handle
-            CSBGenericTransferType* gtt = NULL;
-            LOGGER_WRITE( "iDataPtr.Set( iSBEClient->TransferDataInfoL( gtt, iSBEDataLeft ) : start" );
-            iDataPtr.Set( iSBEClient->TransferDataInfoL( gtt, iLastChunk ) );
-            LOGGER_WRITE( "iDataPtr.Set( iSBEClient->TransferDataInfoL( gtt, iSBEDataLeft ) : stop" );
-            LOGGER_WRITE_1( "CSConSBEClient::ProcessRequestDataL() :\
-             Received data size %d", iDataPtr.Length() );
-            LOGGER_WRITE_1( "CSConSBEClient::ProcessRequestDataL() :\
-             Received from DO 0x%08x", uid );
-            LOGGER_WRITE_1( "CSConSBEClient::ProcessRequestDataL() :\
-             Is last chunk %d", iLastChunk );
-            LOGGER_WRITE_1( "CSConSBEClient::ProcessRequestDataL() :\
-             Transfertype %d", iCurrentTask->iRequestDataParams->iDataOwner->iTransDataType );
-             
-             if( gtt )
-                {
-                delete gtt;
-                }
-             
-            CleanupStack::PopAndDestroy( ptt );
-            }
-        else if( !iCurrentTask->iRequestDataParams->iDataOwner->iJavaHash )
-            {
-            stt = CSBSIDTransferType::NewL( sid, driveNumber, transferDataType );
-            CleanupStack::PushL( stt );
-            LOGGER_WRITE( "iSBEClient->RequestDataL( stt ) : start" );
-            TRequestStatus status;
-            iSBEClient->RequestDataL( *stt, status );
-            User::WaitForRequest( status );
-            LOGGER_WRITE( "iSBEClient->RequestDataL( stt ) : stop" );
-            
-            LOGGER_WRITE_1( "CSConSBEClient::ProcessRequestDataL() :\
-             status.Int() %d", status.Int() );
-            User::LeaveIfError( status.Int() );
-                        
-            //Get the data and store the handle
-            CSBGenericTransferType* gtt = NULL;
-            LOGGER_WRITE( "iDataPtr.Set( iSBEClient->TransferDataInfoL( gtt, iSBEDataLeft ) : start" );
-            iDataPtr.Set( iSBEClient->TransferDataInfoL( gtt, iLastChunk ) );
-            LOGGER_WRITE( "iDataPtr.Set( iSBEClient->TransferDataInfoL( gtt, iSBEDataLeft ) : stop" );
-            LOGGER_WRITE_1( "CSConSBEClient::ProcessRequestDataL() :\
-             Received data size %d", iDataPtr.Length() );
-            LOGGER_WRITE_1( "CSConSBEClient::ProcessRequestDataL() :\
-             Is last chunk %d", iLastChunk );
-            LOGGER_WRITE_1( "CSConSBEClient::ProcessRequestDataL() :\
-             Transfertype %d", 
-             iCurrentTask->iRequestDataParams->iDataOwner->iTransDataType );
-             
-            if( gtt )
-                {
-                delete gtt;
-                }
-             
-            CleanupStack::PopAndDestroy( stt );
-            }
-        else
-            {
-            TPtr javaHashPtr = iCurrentTask->iRequestDataParams->iDataOwner->iJavaHash->Des();
-            
-            //When ESystemData is requested, request EJavaMIDlet
-            if( packageDataType == ESystemData )
-                {
-                jtt = CSBJavaTransferType::NewL( javaHashPtr, driveNumber, EJavaMIDlet );
-                }
-            //When EPassiveBaseData is requested, request EJavaMIDletData
-            else if( transferDataType == EPassiveBaseData )
-                {
-                jtt = CSBJavaTransferType::NewL( javaHashPtr, driveNumber, EJavaMIDletData );
-                }
-                        
-            if( packageDataType == ESystemData || transferDataType == EPassiveBaseData )
-                {
-                CleanupStack::PushL( jtt );
-                LOGGER_WRITE( "iSBEClient->RequestDataL( jtt ) : start" );
-                TRequestStatus status;
-                iSBEClient->RequestDataL( *jtt, status );
-                User::WaitForRequest( status );
-                LOGGER_WRITE( "iSBEClient->RequestDataL( jtt ) : stop" );
-                
-                LOGGER_WRITE_1( "CSConSBEClient::ProcessRequestDataL() :\
-                 status.Int() %d", status.Int() );
-                User::LeaveIfError( status.Int() );
-                            
-                //Get the data and store the handle
-                CSBGenericTransferType* gtt = NULL;
-                LOGGER_WRITE( "iDataPtr.Set( iSBEClient->TransferDataInfoL( gtt, iSBEDataLeft ) : start" );
-                iDataPtr.Set( iSBEClient->TransferDataInfoL( gtt, iLastChunk ) );
-                LOGGER_WRITE( "iDataPtr.Set( iSBEClient->TransferDataInfoL( gtt, iSBEDataLeft ): stop" );
-                LOGGER_WRITE_1( "CSConSBEClient::ProcessRequestDataL() :\
-                 Received data size %d", iDataPtr.Length() );
-                LOGGER_WRITE_1( "CSConSBEClient::ProcessRequestDataL() :\
-                 Is last chunk %d", iLastChunk );
-                LOGGER_WRITE_1( "CSConSBEClient::ProcessRequestDataL() :\
-                 Transfertype %d", 
-                 iCurrentTask->iRequestDataParams->iDataOwner->iTransDataType );
-                 
-                if( gtt )
-                    {
-                    delete gtt;
-                    }
-                 
-                CleanupStack::PopAndDestroy( jtt );   
-                }
-            else
-                {
-                //No data
-                iDataPtr.Set( KNullDesC8 );
-                iLastChunk = ETrue;
-                }
-            }
-        }   
-        
-    TInt dataBufLength = iDataPtr.Length();
-    LOGGER_WRITE_1( "CSConSBEClient::ProcessRequestDataL() : \
-    Data received: %d", dataBufLength );
-    
-    TInt maxLength = iMaxObjectSize - 1024;
-    LOGGER_WRITE_1( "CSConSBEClient::ProcessRequestDataL() : \
-    Max length: %d", maxLength );
-    
-    if( iCurrentTask->iRequestDataParams->iBackupData )
-        {
-        delete iCurrentTask->iRequestDataParams->iBackupData;
-        iCurrentTask->iRequestDataParams->iBackupData = NULL;
-        }
-    
-    //Initialize the task data buffer
-    iCurrentTask->iRequestDataParams->iBackupData = HBufC8::NewL( maxLength );
-    //Get descriptor task's buffer
-    TPtr8 backupDataPtr = iCurrentTask->iRequestDataParams->iBackupData->Des();
-    
-    TInt copyPos = 0;
-    
-    //Copy data to task buffer
-    for( ; iDataPos < dataBufLength && copyPos < maxLength;
-     iDataPos++ )
-        {
-        backupDataPtr.Append( iDataPtr[iDataPos] );
-        copyPos++;
-        }
-        
-    LOGGER_WRITE_1( "CSConSBEClient::ProcessRequestDataL() : \
-    End - copyPos: %d", copyPos );
-    LOGGER_WRITE_1( "CSConSBEClient::ProcessRequestDataL() : \
-    End - iDataPos: %d", iDataPos );
-            
-    //Are there more data left in the buffer
-    if( iDataPos < dataBufLength )
-        {
-        LOGGER_WRITE( "iSBEClient->RequestDataL( stt ) : There is more data in buffer" );
-        iDataLeft = ETrue;
-        iCurrentTask->iRequestDataParams->iMoreData = ETrue;
-        //Another task is needed to transfer the data to the client
-        ret = KErrCompletion;
-        }
-    else
-        {
-        //Check if the backup server has more data from the dataowner
-        if( !iLastChunk )
-            {
-            iCurrentTask->iRequestDataParams->iMoreData = ETrue; 
-            //Another task is needed to transfer the data to the client
-            ret = KErrCompletion;
-            LOGGER_WRITE( "iSBEClient->RequestDataL( stt ) : There are more data available from SBE" );
-            }
-        else
-            {
-            iCurrentTask->iRequestDataParams->iMoreData = EFalse;
-            }
-            
-        iDataPos = 0;   
-        iDataLeft = EFalse; 
-        }
-        
-    LOGGER_WRITE_1( "CSConSBEClient::ProcessRequestDataL() :  returned %d", ret );
-    return ret;
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConSBEClient::ProcessGetDataOwnerStatusL()
-// Executes GetDataOwnerStatus task
-// -----------------------------------------------------------------------------
-//  
-void CSConSBEClient::ProcessGetDataOwnerStatusL()
-    {
-    TRACE_FUNC_ENTRY;
-    
-    //If restore-mode, call AllSystemFilesRestored()
-    if( iRestoreMode )
-        {
-        LOGGER_WRITE( "CSConSBEClient::ProcessGetDataOwnerStatusL() : iSBEClient->AllSystemFilesRestored() start" );
-        iSBEClient->AllSystemFilesRestored();
-        LOGGER_WRITE( "CSConSBEClient::ProcessGetDataOwnerStatusL() : iSBEClient->AllSystemFilesRestored() end" );
-        }
-    
-    RSIDStatusArray sidStatus;
-    CleanupClosePushL(sidStatus);
-        
-    for( TInt i = 0; i < iCurrentTask->iGetDataOwnerParams->iDataOwners.Count();
-     i++ )
-        {
-        CSConDataOwner* dataOwner = 
-            iCurrentTask->iGetDataOwnerParams->iDataOwners[i];
-        TSecureId sid( dataOwner->iUid );
-        TDataOwnerStatus dataOwnerStatus = EUnset;
-        TInt dataOwnerError = 0;
-        
-        TDataOwnerAndStatus dataOwnerAndStatus( sid, dataOwnerStatus, 
-            dataOwnerError );
-                
-        sidStatus.Append( dataOwnerAndStatus );
-        }
-    
-    iSBEClient->SIDStatusL( sidStatus );
-    
-    for( TInt j = 0; j < sidStatus.Count(); j++ )
-        {
-        switch( sidStatus[j].iStatus )
-            {
-            case EUnset :
-                iCurrentTask->iGetDataOwnerParams->iDataOwners[j]->
-                iDataOwnStatus = ESConUnset;
-                break;
-            case EDataOwnerNotFound :
-                iCurrentTask->iGetDataOwnerParams->iDataOwners[j]->
-                iDataOwnStatus = ESConNotFound;
-                break;
-            case EDataOwnerReady :
-                iCurrentTask->iGetDataOwnerParams->iDataOwners[j]->
-                iDataOwnStatus = ESConReady;
-                break;
-            case EDataOwnerNotReady :
-                iCurrentTask->iGetDataOwnerParams->iDataOwners[j]->
-                iDataOwnStatus = ESConNotReady;
-                break;
-            case EDataOwnerFailed :
-                iCurrentTask->iGetDataOwnerParams->iDataOwners[j]->
-                iDataOwnStatus = ESConFailed;
-                break;
-            case EDataOwnerNotConnected :
-                iCurrentTask->iGetDataOwnerParams->iDataOwners[j]->
-                iDataOwnStatus = ESConNotConnected;
-                break;
-            case EDataOwnerReadyNoImpl :
-                iCurrentTask->iGetDataOwnerParams->iDataOwners[j]->
-                iDataOwnStatus = ESConNotImplemented;
-                break;
-            default :
-                break;
-            }
-        }
-    sidStatus.Reset();  
-    CleanupStack::PopAndDestroy( &sidStatus );
-
-    TRACE_FUNC_EXIT;
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConSBEClient::ProcessSupplyDataL()
-// Executes SupplyData task
-// -----------------------------------------------------------------------------
-//  
-TInt CSConSBEClient::ProcessSupplyDataL()
-    {
-    TRACE_FUNC_ENTRY;
-    TBool packageData = EFalse;
-    TBool lastChunk = ETrue;
-    TTransferDataType transferDataType( ERegistrationData );
-    TPackageDataType packageDataType( ESystemSnapshotData );    
-    LOGGER_WRITE_1("CSConSBEClient::ProcessSupplyDataL() iTransDataType: %d",
-        (TInt)iCurrentTask->iSupplyDataParams->iDataOwner->iTransDataType);
-    switch( iCurrentTask->iSupplyDataParams->iDataOwner->iTransDataType )
-        {
-        case ESConRegistrationData :
-            transferDataType = ERegistrationData;
-            break;
-        case ESConPassiveSnapshotData :
-            transferDataType = EPassiveSnapshotData;
-            break;
-        case ESConPassiveBaseData :
-            transferDataType = EPassiveBaseData;
-            break;
-        case ESConPassiveIncrementalData :
-            transferDataType = EPassiveIncrementalData;
-            break;
-        case ESConActiveSnapshotData :
-            transferDataType = EActiveSnapshotData;
-            break;
-        case ESConActiveBaseData :
-            transferDataType = EActiveBaseData;
-            break;
-        case ESConActiveIncrementalData :
-            transferDataType = EActiveIncrementalData;
-            break;
-        case ESConSystemData :
-            packageDataType = ESystemData;
-            packageData = ETrue;
-            break;
-        case ESConSystemSnapshotData:
-            packageDataType = ESystemSnapshotData;
-            packageData = ETrue;
-            break;
-        default :
-            break;
-        }
-        
-    //Get the drive number  
-    TDriveNumber driveNumber = EDriveC;
-    TDriveList driveList = iCurrentTask->iSupplyDataParams->iDataOwner->
-        iDriveList;
-    
-    for( TInt i = 0; i < KMaxDrives; i++ )
-        {
-        if( driveList[i] )
-            {
-            driveNumber = GetDriveNumber( i );
-            break;
-            }
-        }
-        
-    //Get UID or SID
-    TUid uid;
-    TSecureId sid;  
-    
-    uid.iUid = 0;
-    sid.iId = 0;
-    
-    if( packageData && !iCurrentTask->iSupplyDataParams->iDataOwner->iJavaHash )
-        {
-        uid = iCurrentTask->iSupplyDataParams->iDataOwner->iUid;
-        LOGGER_WRITE_1( "CSConSBEClient::ProcessSupplyDataL() uid: 0x%08x", uid.iUid );
-        }
-    else if( !iCurrentTask->iSupplyDataParams->iDataOwner->iJavaHash )
-        {
-        sid = iCurrentTask->iSupplyDataParams->iDataOwner->iUid;
-        LOGGER_WRITE_1( "CSConSBEClient::ProcessSupplyDataL() sid: 0x%08x", sid.iId );
-        }
-    
-    
-    if( packageData && !iCurrentTask->iSupplyDataParams->iDataOwner->iJavaHash )
-        {
-        CSBPackageTransferType* ptt = CSBPackageTransferType::NewL( uid, driveNumber, 
-            packageDataType );
-        CleanupStack::PushL( ptt );
-        
-        //Write restore data to chunk
-        LOGGER_WRITE( "iSBEClient->TransferDataAddressL().Copy() : start" );
-        LOGGER_WRITE_1( "CSConSBEClient::ProcessSupplyDataL() :\
-         Received data length: %d", iCurrentTask->iSupplyDataParams->iRestoreData->Length() );
-        iSBEClient->TransferDataAddressL().Copy( iCurrentTask->
-        iSupplyDataParams->iRestoreData->Des() );
-        LOGGER_WRITE( "iSBEClient->TransferDataAddressL().Copy()" );
-        
-        delete iCurrentTask->iSupplyDataParams->iRestoreData;
-        iCurrentTask->iSupplyDataParams->iRestoreData = NULL;
-        
-        //Supply data
-        lastChunk = !( iCurrentTask->iSupplyDataParams->iMoreData );
-        LOGGER_WRITE( "iSBEClient->SupplyDataL( ptt, lastChunk ) : start" );
-        TRequestStatus status;
-        iSBEClient->SupplyDataL( *ptt, lastChunk, status );
-        User::WaitForRequest( status );
-        LOGGER_WRITE( "iSBEClient->SupplyDataL( ptt, lastChunk ) : stop" );
-        
-        User::LeaveIfError( status.Int() );
-        
-        CleanupStack::PopAndDestroy( ptt );
-        }
-    else if( !iCurrentTask->iSupplyDataParams->iDataOwner->iJavaHash )
-        {
-        CSBSIDTransferType* stt = CSBSIDTransferType::NewL( sid, driveNumber, transferDataType );
-        CleanupStack::PushL( stt );
-        
-        //Write restore data to chunk
-        LOGGER_WRITE( "iSBEClient->TransferDataAddressL().Copy() : start" );
-        LOGGER_WRITE_1( "CSConSBEClient::ProcessSupplyDataL() : Received data length: %d",
-         iCurrentTask->iSupplyDataParams->iRestoreData->Length() );
-        iSBEClient->TransferDataAddressL().Copy( iCurrentTask->
-        iSupplyDataParams->iRestoreData->Des() );
-        LOGGER_WRITE( "iSBEClient->TransferDataAddressL().Copy()" );
-        
-        delete iCurrentTask->iSupplyDataParams->iRestoreData;
-        iCurrentTask->iSupplyDataParams->iRestoreData = NULL;
-        
-        //Supply data
-        lastChunk = !( iCurrentTask->iSupplyDataParams->iMoreData );
-        LOGGER_WRITE( "iSBEClient->SupplyDataL( stt, lastChunk ) : start" );
-        TRequestStatus status;
-        iSBEClient->SupplyDataL( *stt, lastChunk, status );
-        User::WaitForRequest( status );
-        LOGGER_WRITE( "iSBEClient->SupplyDataL( stt, lastChunk ) : stop" );
-        
-        User::LeaveIfError( status.Int() );
-        
-        CleanupStack::PopAndDestroy( stt );
-        }
-    else
-        {
-        TPtr javaHashPtr = iCurrentTask->iSupplyDataParams->iDataOwner->iJavaHash->Des();
-        CSBJavaTransferType* jtt( NULL );
-        if( packageDataType == ESystemData )
-            {
-            LOGGER_WRITE( "iSBEClient->SupplyDataL java ESystemData" );
-            jtt = CSBJavaTransferType::NewL( javaHashPtr, driveNumber, EJavaMIDlet );
-            }
-        else if( transferDataType == EPassiveBaseData )
-            {
-            LOGGER_WRITE( "iSBEClient->SupplyDataL java EPassiveBaseData" );
-            jtt = CSBJavaTransferType::NewL( javaHashPtr, driveNumber, EJavaMIDletData );
-            }
-                
-        if( packageDataType == ESystemData || transferDataType == EPassiveBaseData )
-            {
-            CleanupStack::PushL( jtt );
-            //Write restore data to chunk
-            LOGGER_WRITE( "iSBEClient->TransferDataAddressL().Copy() : start" );
-            LOGGER_WRITE_1( "CSConSBEClient::ProcessSupplyDataL() : Received data length: %d",
-             iCurrentTask->iSupplyDataParams->iRestoreData->Length() );
-            iSBEClient->TransferDataAddressL().Copy( iCurrentTask->
-            iSupplyDataParams->iRestoreData->Des() );
-            LOGGER_WRITE( "iSBEClient->TransferDataAddressL().Copy()" );
-            
-            delete iCurrentTask->iSupplyDataParams->iRestoreData;
-            iCurrentTask->iSupplyDataParams->iRestoreData = NULL;
-            
-            //Supply data
-            lastChunk = !( iCurrentTask->iSupplyDataParams->iMoreData );
-            LOGGER_WRITE( "iSBEClient->SupplyDataL( jtt, lastChunk ) : start" );
-            TRequestStatus status;
-            iSBEClient->SupplyDataL( *jtt, lastChunk, status );
-            User::WaitForRequest( status );
-            LOGGER_WRITE( "iSBEClient->SupplyDataL( jtt, lastChunk ) : stop" );
-            
-            User::LeaveIfError( status.Int() );
-            
-            CleanupStack::PopAndDestroy( jtt );
-            }
-        }
-    
-    TInt ret( KErrNone );
-        
-    if( !lastChunk )
-        {
-        ret = KErrCompletion;
-        }
-    
-    LOGGER_WRITE_1( "CSConSBEClient::ProcessSupplyDataL() : returned %d", ret );
-    return ret;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConSBEClient::GetDriveNumber( const TInt& aDrive ) const
-// Maps TInt drive number to TDriveNumber
-// -----------------------------------------------------------------------------
-//  
-TDriveNumber CSConSBEClient::GetDriveNumber( const TInt& aDrive ) const
-    {
-    TDriveNumber driveNumber;
-    switch( aDrive )
-        {
-        case 0 :
-            driveNumber = EDriveA;
-            break;
-        case 1 :
-            driveNumber = EDriveB;
-            break;
-        case 2 : 
-            driveNumber = EDriveC;
-            break;
-        case 3 :
-            driveNumber = EDriveD;
-            break;
-        case 4 : 
-            driveNumber = EDriveE;
-            break;
-        case 5 :
-            driveNumber = EDriveF;
-            break;
-        case 6 :
-            driveNumber = EDriveG;
-            break;
-        case 7 :
-            driveNumber = EDriveH;
-            break;
-        case 8 :
-            driveNumber = EDriveI;
-            break;
-        case 9 :
-            driveNumber = EDriveJ;
-            break;
-        case 10 :
-            driveNumber = EDriveK;
-            break;
-        case 11 :
-            driveNumber = EDriveL;
-            break;
-        case 12 :
-            driveNumber = EDriveM;
-            break;
-        case 13 :
-            driveNumber = EDriveN;
-            break;
-        case 14 :
-            driveNumber = EDriveO;
-            break;
-        case 15 :
-            driveNumber = EDriveP;
-            break;
-        case 16 :
-            driveNumber = EDriveQ;
-            break;
-        case 17 :
-            driveNumber = EDriveR;
-            break;
-        case 18 :
-            driveNumber = EDriveS;
-            break;
-        case 19 :
-            driveNumber = EDriveT;
-            break;
-        case 20 :
-            driveNumber = EDriveU;
-            break;
-        case 21 :
-            driveNumber = EDriveV;
-            break;
-        case 22 :
-            driveNumber = EDriveW;
-            break;
-        case 23 :
-            driveNumber = EDriveX;
-            break;
-        case 24 :
-            driveNumber = EDriveY;
-            break;
-        case 25 :
-            driveNumber = EDriveZ;
-            break;
-        default :
-            driveNumber = EDriveC;
-            break;
-        }
-        
-    return driveNumber;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConSBEClient::FilterDriveList( TDriveList& aDriveList ) const
-// Filters the drive list
-// -----------------------------------------------------------------------------
-//  
-void CSConSBEClient::FilterDriveList( TDriveList& aDriveList ) const
-    {
-    TDriveInfo info;
-    
-    for ( TInt i = 0; i < aDriveList.Length(); i++ )
-        {
-        if ( aDriveList[i] )
-            {
-            iFs.Drive( info, i );
-#ifdef __WINS__
-            if ( i == EDriveD )
-                {
-                LOGGER_WRITE( "EDriveD skipped on WINS build" );
-                aDriveList[i] = '\x0';
-                }
-#else
-            if ( info.iType == EMediaRam )
-                {
-                aDriveList[i] = '\x0';
-                }
-#endif
-            }
-        }
-    
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConSBEClient::Match( const CSConTask& aFirst, const CSConTask& aSecond )
-// Matches the uids
-// -----------------------------------------------------------------------------
-//
-TInt CSConSBEClient::Match( const TUid& aFirst, const TUid& aSecond )
-    {
-    if( aFirst == aSecond )
-        {
-        return ETrue;
-        }
-        
-    return EFalse;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConSBEClient::HandleSBEErrorL( TInt& aErr )
-// Handle error received from Secure Backup Engine
-// -----------------------------------------------------------------------------
-//  
-void CSConSBEClient::HandleSBEErrorL( TInt& aErr )
-    {
-    TRACE_FUNC_ENTRY;
-    LOGGER_WRITE_1( " aErr: %d", aErr );
-    if( aErr == KErrServerTerminated )
-        {
-        LOGGER_WRITE( "Re-connecting to SBE..." );
-        //Session has been terminated, recreate it..
-        delete iSBEClient;
-        iSBEClient = NULL;
-        iSBEClient = CSBEClient::NewL();
-        }
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConSBEClient::AppendFilesToFilelistL()
-// Appends files from RFileArray to RPointerArray<CSConFile>
-// -----------------------------------------------------------------------------
-//
-void CSConSBEClient::AppendFilesToFilelistL( const RFileArray& aFiles, RPointerArray<CSConFile>& aSconFiles )
-    {
-    TRACE_FUNC_ENTRY;
-    _LIT( KSConXmlDate, "%F%Y%M%DT%H%T%SZ" );
-    for( TInt j = 0; j < aFiles.Count(); j++ )
-        {
-        CSConFile* fileInfo = new (ELeave) CSConFile();
-        CleanupStack::PushL( fileInfo );
-        fileInfo->iPath = aFiles[j].iName;
-        LOGGER_WRITE_1("file: %S", &fileInfo->iPath );                    
-        
-        fileInfo->iSize = aFiles[j].iSize;
-        
-        switch( aFiles[j].iAtt )
-            {
-            case KEntryAttNormal :
-                fileInfo->iUserPerm = EPermNormal;
-                break;
-            case KEntryAttReadOnly :
-                fileInfo->iUserPerm = EPermReadOnly;
-                break;
-            default :
-                fileInfo->iUserPerm = EPermNormal;
-                break;
-            }
-                        
-        TTime time( aFiles[j].iModified );
-        HBufC* timeBuf = HBufC::NewLC( KMaxTimeFormatSpec );
-        TPtr timePtr = timeBuf->Des();
-        time.FormatL( timePtr, KSConXmlDate );
-
-        fileInfo->iModified.Copy( timePtr );
-
-        CleanupStack::PopAndDestroy( timeBuf );    
-
-        aSconFiles.Append( fileInfo );
-        CleanupStack::Pop( fileInfo );
-        }
-    TRACE_FUNC_EXIT;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CSConSBEClient::PackageDataSizeL()
-// Gets Package dataowner size
-// -----------------------------------------------------------------------------
-//
-TUint CSConSBEClient::PackageDataSizeL( TUid aPackageId, const TDriveList& aDriveList,
-        TPackageDataType aPackageDataType ) const
-    {
-    TUint dataSize(0);
-    //Ask data size from every drive
-    for( TInt j = 0; j < KMaxDrives; j++ )
-        {
-        if( aDriveList[j] )
-            {
-            CSBPackageTransferType* ptt( NULL );
-            TDriveNumber driveNumber = GetDriveNumber( j );
-            LOGGER_WRITE_1( "Drive %d", driveNumber );
-            ptt = CSBPackageTransferType::NewL( aPackageId, driveNumber, aPackageDataType );
-            CleanupStack::PushL( ptt );
-            //Get the size and store it to a variable
-            TRAPD( err, dataSize += iSBEClient->ExpectedDataSizeL( *ptt ) );
-            CleanupStack::PopAndDestroy( ptt );
-            LOGGER_WRITE_1( "ExpectedDataSizeL returned for package %d", err );
-            if( err != KErrNone && err != KErrNotFound )
-                {
-                LOGGER_WRITE_1( "ExpectedDataSizeL LEAVE %d", err );
-                User::Leave( err );
-                }
-            }
-        }
-    return dataSize;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConSBEClient::SidDataSizeL()
-// Gets Sid (SecureId) dataowner size
-// -----------------------------------------------------------------------------
-//
-TUint CSConSBEClient::SidDataSizeL( TUid aSid, const TDriveList& aDriveList,
-        TTransferDataType aTransferDataType ) const
-    {
-    TUint dataSize(0);
-    //Ask data size from every drive
-    for( TInt j = 0; j < KMaxDrives; j++ )
-        {
-        if( aDriveList[j] )
-            {
-            CSBSIDTransferType* stt( NULL );
-            TDriveNumber driveNumber = GetDriveNumber( j );
-            LOGGER_WRITE_1( "Drive %d", driveNumber );
-            stt = CSBSIDTransferType::NewL( aSid, driveNumber, aTransferDataType );
-            CleanupStack::PushL( stt );
-            //Get the size and store it to a variable
-            TRAPD( err, dataSize += iSBEClient->ExpectedDataSizeL( *stt ) ); 
-            CleanupStack::PopAndDestroy( stt );
-            LOGGER_WRITE_1( "ExpectedDataSizeL returned for DO %d", err );
-            if( err != KErrNone && err != KErrNotFound )
-                {
-                LOGGER_WRITE_1( "ExpectedDataSizeL LEAVE %d", err );
-                User::Leave( err );
-                }
-            }
-        }
-    return dataSize;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConSBEClient::JavaDataSizeL()
-// Gets Java dataowner size
-// -----------------------------------------------------------------------------
-//
-TUint CSConSBEClient::JavaDataSizeL( const TDesC& aJavaHash, const TDriveList& aDriveList ) const
-    {
-    TUint dataSize(0);
-    //Ask data size from every drive
-    for( TInt j = 0; j < KMaxDrives; j++ )
-        {
-        if( aDriveList[j] )
-            {
-            CSBJavaTransferType* jtt( NULL );
-            
-            TDriveNumber driveNumber = GetDriveNumber( j );
-            LOGGER_WRITE_1( "Drive %d", driveNumber );
-            jtt = CSBJavaTransferType::NewL( aJavaHash, 
-                                            driveNumber, 
-                                            EJavaMIDlet );
-            CleanupStack::PushL( jtt );
-            //Get the size and store it to a variable
-            TRAPD( err, dataSize += iSBEClient->ExpectedDataSizeL( *jtt ) ); 
-            CleanupStack::PopAndDestroy( jtt );
-            LOGGER_WRITE_1( "ExpectedDataSizeL returned for Java(EJavaMIDlet) DO %d", err );
-            if( err != KErrNone && err != KErrNotFound )
-                {
-                LOGGER_WRITE_1( "ExpectedDataSizeL LEAVE %d", err );
-                User::Leave( err );
-                }
-            
-            jtt = NULL;
-            jtt = CSBJavaTransferType::NewL( aJavaHash, 
-                                            driveNumber, 
-                                            EJavaMIDletData );
-            CleanupStack::PushL( jtt );
-            //Get the size and store it to a variable
-            TRAP( err, dataSize += iSBEClient->ExpectedDataSizeL( *jtt ) ); 
-            CleanupStack::PopAndDestroy( jtt );
-            LOGGER_WRITE_1( "ExpectedDataSizeL returned for Java(EJavaMIDletData) DO %d", err );
-            if( err != KErrNone && err != KErrNotFound )
-                {
-                LOGGER_WRITE_1( "ExpectedDataSizeL LEAVE %d", err );
-                User::Leave( err );
-                }
-            }
-        }
-    
-    return dataSize;
-    }
-// End of file
--- a/connectivitymodules/SeCon/services/pcd/src/sconvideoparser.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,534 +0,0 @@
-/*
-* Copyright (c) 2008-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:  CSConVideoParser implementation
-*
-*/
-
-
-#include <coedef.h> 
-#include <bautils.h>
-#include <imageconversion.h>
-#include "sconvideoparser.h"
-#include "debug.h"
-
-_LIT( KMimeType, "MimeType" );
-_LIT8( KImageEncoderMimeType, "image/jpeg" );
-_LIT( KMimeTypeAudio, "audio/*" );
-_LIT( KMimeTypeVideo, "video/*" );
-
-const TInt KVideoClipTimeout( 10000000 ); // 10 sec.
-
-// -----------------------------------------------------------------------------
-// CSConVideoParser::CSConVideoParser()
-// -----------------------------------------------------------------------------
-//
-CSConVideoParser::CSConVideoParser()
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CSConVideoParser::~CSConVideoParser()
-// Destructor
-// -----------------------------------------------------------------------------
-//
-CSConVideoParser::~CSConVideoParser()
-    {
-    TRACE_FUNC_ENTRY;
-    delete iTimeOut;
-    if ( iVideoClip )
-        {
-        iVideoClip->CancelThumb();
-        }
-    delete iVideoClip;
-    
-    if ( iVideoUtil )
-        {
-        iVideoUtil->Close();
-        }
-    delete iVideoUtil;
-    delete iScreen;
-    iWsSession.Close();
-    
-    delete iThumbnail;
-    delete iVideoMimeType;
-    delete iAudioMimeType;
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConVideoParser::NewLC()
-// -----------------------------------------------------------------------------
-//
-CSConVideoParser* CSConVideoParser::NewLC()
-    {
-    CSConVideoParser* self = new (ELeave)CSConVideoParser();
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConVideoParser::ConstructL()
-// Constructor
-// -----------------------------------------------------------------------------
-//
-void CSConVideoParser::ConstructL()
-    {
-    TRACE_FUNC_ENTRY;
-    
-    User::LeaveIfError( iWsSession.Connect() );
-    
-    iScreen = new(ELeave) CWsScreenDevice( iWsSession );
-    iScreen->Construct();
-    
-    RWindowGroup wg( iWsSession );
-    User::LeaveIfError( wg.Construct(reinterpret_cast<TUint32>(&wg), EFalse) );
-    CleanupClosePushL( wg );
-    
-    CWindowGc* gc;
-    User::LeaveIfError( iScreen->CreateContext(gc) );
-    CleanupStack::PushL(gc);
-    
-    RWindow window( iWsSession );
-    User::LeaveIfError( window.Construct(wg, reinterpret_cast<TUint32>(&wg) + 1) );
-    CleanupClosePushL( window );
-    
-    TRect temp(0,0,320,240); // dummy parameter
-    iVideoUtil = CVideoPlayerUtility::NewL(*this, EMdaPriorityNormal, EMdaPriorityPreferenceNone, iWsSession, *(iScreen), window, temp, temp);
-    
-    CleanupStack::PopAndDestroy( &window );
-    CleanupStack::PopAndDestroy( gc );
-    CleanupStack::PopAndDestroy( &wg );
-    
-    iTimeOut = CSconTimeOut::NewL( *this );
-    
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConVideoParser::OpenFileL( const RFs& aFs, const TDesC& aFileName )
-// Opens video file
-// -----------------------------------------------------------------------------
-//
-void CSConVideoParser::OpenFileL( const RFs& aFs, const TDesC& aFileName )
-    {
-    TRACE_FUNC_ENTRY;
-    
-    iVideoUtilReady = EFalse;
-    iVideoClipReady = EFalse;
-    iVideoUtilErr = KErrNone;
-    iVideoClipErr = KErrNone;
-    
-    delete iThumbnail;
-    iThumbnail = NULL;
-    delete iVideoMimeType;
-    iVideoMimeType=NULL;
-    delete iAudioMimeType;
-    iAudioMimeType=NULL;
-    
-    if ( iVideoClip )
-        {
-        iVideoClip->CancelThumb();
-        delete iVideoClip;
-        iVideoClip = NULL;
-        }
-    if ( iVideoUtil )
-        {
-        iVideoUtil->Close();
-        }
-    
-    TBool fileExist = BaflUtils::FileExists( aFs, aFileName );
-    if ( !fileExist )
-        {
-        User::Leave( KErrNotFound );
-        }
-    
-    iVideoClip = CTNEVideoClipInfo::NewL( aFileName, *this );
-    
-    iVideoUtil->OpenFileL( aFileName );
-    
-    
-    LOGGER_WRITE("iWait.Start()");
-    iWait.Start();
-    
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConVideoParser::Thumbnail()
-// returns video thumbnail in jpg format
-// -----------------------------------------------------------------------------
-//
-const TDesC8& CSConVideoParser::Thumbnail() const
-    {
-    TRACE_FUNC;
-    if ( !iThumbnail )
-        {
-        return KNullDesC8;
-        }
-    return *iThumbnail;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConVideoParser::VideoFrameRateL()
-// returns video frame rate
-// -----------------------------------------------------------------------------
-//
-TReal32 CSConVideoParser::VideoFrameRateL() const
-    {
-    TRACE_FUNC;
-    if ( !iVideoUtil )
-        {
-        User::Leave( KErrNotReady );
-        }
-    return iVideoUtil->VideoFrameRateL();
-    }
-
-// -----------------------------------------------------------------------------
-// CSConVideoParser::VideoFrameSizeL()
-// returns video frame size
-// -----------------------------------------------------------------------------
-//
-void CSConVideoParser::VideoFrameSizeL(TSize& aSize) const
-    {
-    TRACE_FUNC;
-    if ( !iVideoUtil )
-        {
-        User::Leave( KErrNotReady );
-        }
-    return iVideoUtil->VideoFrameSizeL( aSize );
-    }
-
-// -----------------------------------------------------------------------------
-// CSConVideoParser::VideoFormatMimeTypeL()
-// returns video format
-// -----------------------------------------------------------------------------
-//
-const TDesC8& CSConVideoParser::VideoFormatMimeTypeL() const 
-    {
-    TRACE_FUNC;
-    if ( !iVideoUtil )
-        {
-        User::Leave( KErrNotReady );
-        }
-    return iVideoUtil->VideoFormatMimeType();
-    }
-
-// -----------------------------------------------------------------------------
-// CSConVideoParser::VideoBitRateL()
-// returns videostream bitrate
-// -----------------------------------------------------------------------------
-//
-TInt CSConVideoParser::VideoBitRateL() const
-    {
-    TRACE_FUNC;
-    if ( !iVideoUtil )
-        {
-        User::Leave( KErrNotReady );
-        }
-    return iVideoUtil->VideoBitRateL();
-    }
-
-// -----------------------------------------------------------------------------
-// CSConVideoParser::AudioBitRateL()
-// returns audiostream bitrate
-// -----------------------------------------------------------------------------
-//
-TInt CSConVideoParser::AudioBitRateL() const
-    {
-    TRACE_FUNC;
-    if ( !iVideoUtil )
-        {
-        User::Leave( KErrNotReady );
-        }
-    return iVideoUtil->AudioBitRateL();
-    }
-
-// -----------------------------------------------------------------------------
-// CSConVideoParser::DurationL()
-// returns video duration in milliseconds
-// -----------------------------------------------------------------------------
-//
-TInt CSConVideoParser::DurationL() const
-    {
-    TRACE_FUNC;
-    if ( !iVideoUtil )
-        {
-        User::Leave( KErrNotReady );
-        }
-    return iVideoUtil->DurationL().Int64()/1000;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConVideoParser::VideoMimeTypeL()
-// returns video mime type
-// -----------------------------------------------------------------------------
-//
-const TDesC& CSConVideoParser::VideoMimeTypeL()
-    {
-    TRACE_FUNC;
-    if ( !iVideoUtil )
-        {
-        User::Leave( KErrNotReady );
-        }
-    delete iVideoMimeType;
-    iVideoMimeType = NULL;
-    
-    TInt metadataEntries = iVideoUtil->NumberOfMetaDataEntriesL();
-    LOGGER_WRITE_1( "metadataEntries: %d", metadataEntries);
-    
-    for (TInt i=0; i < metadataEntries ; i++)
-        {
-        CMMFMetaDataEntry* entry = iVideoUtil->MetaDataEntryL(i);
-        CleanupStack::PushL( entry );
-        if ( entry->Name().Compare( KMimeType ) == 0 )
-            {
-            if ( entry->Value().MatchF( KMimeTypeVideo ) == 0 )
-                {
-                LOGGER_WRITE_1( "video mimetype found: %S", &entry->Value());
-                iVideoMimeType = HBufC::NewL(entry->Value().Length());
-                TPtr videoMimeTypePtr = iVideoMimeType->Des();
-                videoMimeTypePtr.Copy( entry->Value() );
-                CleanupStack::PopAndDestroy( entry );
-                return *iVideoMimeType;
-                }
-            }
-        CleanupStack::PopAndDestroy( entry );
-        }
-    return KNullDesC;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConVideoParser::AudioMimeTypeL()
-// returns audio mime type
-// -----------------------------------------------------------------------------
-//
-const TDesC& CSConVideoParser::AudioMimeTypeL()
-    {
-    TRACE_FUNC;
-    if ( !iVideoUtil )
-        {
-        User::Leave( KErrNotReady );
-        }
-    delete iAudioMimeType;
-    iAudioMimeType = NULL;
-    TInt metadataEntries = iVideoUtil->NumberOfMetaDataEntriesL();
-    LOGGER_WRITE_1( "metadataEntries: %d", metadataEntries);
-    
-    for (TInt i=0; i < metadataEntries ; i++)
-        {
-        CMMFMetaDataEntry* entry = iVideoUtil->MetaDataEntryL(i);
-        CleanupStack::PushL( entry );
-        
-        if ( entry->Name().Compare( KMimeType ) == 0 )
-            {
-            if ( entry->Value().MatchF( KMimeTypeAudio ) == 0 )
-                {
-                LOGGER_WRITE_1( "video mimetype found: %S", &entry->Value());
-                iAudioMimeType = HBufC::NewL(entry->Value().Length());
-                TPtr audioMimeTypePtr = iAudioMimeType->Des();
-                audioMimeTypePtr.Copy( entry->Value() );
-                CleanupStack::PopAndDestroy( entry );
-                return *iAudioMimeType;
-                }
-            }
-        CleanupStack::PopAndDestroy( entry );
-        }
-    return KNullDesC;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConVideoParser::MvpuoOpenComplete( TInt aError )
-// MVideoPlayerUtilityObserver implementation
-// -----------------------------------------------------------------------------
-//
-void CSConVideoParser::MvpuoOpenComplete( TInt aError )
-    {
-    TRACE_FUNC_ENTRY;
-    LOGGER_WRITE_1( "aError: %d", aError );
-    if ( aError == KErrNone )
-        {
-        iVideoUtil->Prepare();
-        }
-    else
-        {
-        iVideoUtilReady = ETrue;
-        iVideoUtilErr = aError;
-        }
-    
-    if ( iVideoUtilReady && iVideoClipReady )
-        {
-        LOGGER_WRITE("AsyncStop");
-        iWait.AsyncStop();
-        }
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConVideoParser::MvpuoPrepareComplete( TInt aError )
-// MVideoPlayerUtilityObserver implementation
-// -----------------------------------------------------------------------------
-//
-void CSConVideoParser::MvpuoPrepareComplete( TInt aError )
-    {
-    TRACE_FUNC_ENTRY;
-    LOGGER_WRITE_1( "aError: %d", aError );
-    
-    iVideoUtilReady = ETrue;
-    iVideoUtilErr = aError;
-    
-    if ( iVideoUtilReady && iVideoClipReady )
-        {
-        LOGGER_WRITE("AsyncStop");
-        iWait.AsyncStop();
-        }
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConVideoParser::MvpuoFrameReady()
-// MVideoPlayerUtilityObserver implementation
-// -----------------------------------------------------------------------------
-//
-void CSConVideoParser::MvpuoFrameReady( CFbsBitmap& /*aFrame*/,TInt /*aError*/ )
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CSConVideoParser::MvpuoPlayComplete()
-// MVideoPlayerUtilityObserver implementation
-// -----------------------------------------------------------------------------
-//
-void CSConVideoParser::MvpuoPlayComplete( TInt /*aError*/ )
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CSConVideoParser::MvpuoEvent()
-// MVideoPlayerUtilityObserver implementation
-// -----------------------------------------------------------------------------
-//
-void CSConVideoParser::MvpuoEvent( const TMMFEvent& /*aEvent*/ )
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CSConVideoParser::NotifyVideoClipInfoReady(CTNEVideoClipInfo& aInfo, TInt aError)
-// MTNEVideoClipInfoObserver implementation
-// -----------------------------------------------------------------------------
-//
-void CSConVideoParser::NotifyVideoClipInfoReady(CTNEVideoClipInfo& aInfo, TInt aError)
-    {
-    TRACE_FUNC_ENTRY;
-    LOGGER_WRITE_1("aError: %d", aError);
-    if ( aError == KErrNone )
-        {
-        TSize resolution(320,240);
-        TRAPD( err, aInfo.GetThumbL(*this,KBestThumbIndex, &resolution ) );
-        
-        if ( err )
-            {
-            LOGGER_WRITE_1("aInfo.GetThumbL err: %d", err);
-            iVideoClipReady = ETrue;
-            iVideoClipErr = err;
-            }
-        else
-            {
-            LOGGER_WRITE("Start timeout");
-            iTimeOut->Start( KVideoClipTimeout );
-            }
-        }
-    else
-        {
-        iVideoClipReady = ETrue;
-        iVideoClipErr = aError;
-        }
-    
-    if ( iVideoUtilReady && iVideoClipReady )
-        {
-        LOGGER_WRITE("AsyncStop");
-        iWait.AsyncStop();
-        }
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConVideoParser::NotifyVideoClipThumbCompleted()
-// MTNEVideoClipInfoObserver implementation
-// -----------------------------------------------------------------------------
-//
-void CSConVideoParser::NotifyVideoClipThumbCompleted(CTNEVideoClipInfo& /*aInfo*/, 
-        TInt aError, 
-        CFbsBitmap* aThumb)
-    {
-    TRACE_FUNC_ENTRY;
-    LOGGER_WRITE_1("aError: %d", aError);
-    iTimeOut->Cancel();
-    if ( aError == KErrNone)
-        {
-        delete iThumbnail;
-        iThumbnail = NULL;
-        LOGGER_WRITE("create CImageEncoder");
-        CImageEncoder* encoder = NULL;
-        TRAPD( err, encoder = CImageEncoder::DataNewL( iThumbnail, KImageEncoderMimeType, CImageEncoder::EOptionAlwaysThread ) );
-        LOGGER_WRITE_1("err: %d", err );
-        if ( err == KErrNone )
-            {
-            LOGGER_WRITE("Start Convert");
-            TRequestStatus status;
-            encoder->Convert( &status, *aThumb, NULL );
-            
-            User::WaitForRequest( status );
-            LOGGER_WRITE_1("Convert status: %d", status.Int());
-            LOGGER_WRITE_1("buf Length: %d", iThumbnail->Length());
-            err = status.Int();
-            }
-        delete encoder;
-        }
-    delete aThumb;
-    iVideoClipReady = ETrue;
-    iVideoClipErr = aError;
-    
-    if ( iVideoUtilReady && iVideoClipReady )
-        {
-        LOGGER_WRITE("AsyncStop");
-        iWait.AsyncStop();
-        }
-    
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConVideoParser::TimeOut()
-// Called when timeout has occured, cancels videoclip generation
-// -----------------------------------------------------------------------------
-//
-void CSConVideoParser::TimeOut()
-    {
-    TRACE_FUNC_ENTRY;
-    if ( !iVideoClipReady )
-        {
-        iVideoClip->CancelThumb();
-        LOGGER_WRITE("videoclip cancelled");
-        iVideoClipReady = ETrue;
-        iVideoClipErr = KErrCancel;
-        }
-    
-    if ( iVideoUtilReady && iVideoClipReady )
-        {
-        LOGGER_WRITE("AsyncStop");
-        iWait.AsyncStop();
-        }
-    TRACE_FUNC_EXIT;
-    }
--- a/connectivitymodules/SeCon/wbxml/conmlhandler/bld/bld.inf	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +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:  ConML parser and generator
-*	 This file provides the information required for building the
-*    whole of a SConConMLHandler
-*
-*/
-
-
-
-PRJ_PLATFORMS
-DEFAULT 
-
-PRJ_MMPFILES
-sconconmlhandler.mmp
-
--- a/connectivitymodules/SeCon/wbxml/conmlhandler/bld/def/bwinscwu.def	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-EXPORTS
-	?CreateCSConConMLHandlerL@@YAPAVCSConConMLHandler@@XZ @ 1 NONAME ; class CSConConMLHandler * CreateCSConConMLHandlerL(void)
-
--- a/connectivitymodules/SeCon/wbxml/conmlhandler/bld/def/eabiu.def	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-EXPORTS
-	_Z24CreateCSConConMLHandlerLv @ 1 NONAME
-	_ZTI13CXMLWorkspace @ 2 NONAME ; #<TI>#
-	_ZTI17CSConConMLHandler @ 3 NONAME ; #<TI>#
-	_ZTV13CXMLWorkspace @ 4 NONAME ; #<VT>#
-	_ZTV17CSConConMLHandler @ 5 NONAME ; #<VT>#
-
--- a/connectivitymodules/SeCon/wbxml/conmlhandler/bld/sconconmlhandler.mmp	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,59 +0,0 @@
-/*
-* Copyright (c) 2002-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:  ConML Parser and generator
-*
-*/
-
-
-// To get the MW_LAYER_SYSTEMINCLUDE-definition
-#include <platform_paths.hrh>
-
-VENDORID        VID_DEFAULT
-CAPABILITY      CAP_GENERAL_DLL
-
-TARGETPATH      sys/bin
-
-TARGET          sconconmlhandler.dll
-TARGETTYPE      DLL
-UID             0x10009D8D 0x101F99FA
-
-#if defined(ARMCC)
-DEFFILE	./def/eabi
-#elif defined(WINSCW) 
-DEFFILE	./def/bwinscw
-#elif defined(WINS)
-DEFFILE	./def/bwins
-#elif defined(ARM)
-DEFFILE	./def/bmarm
-#endif
-
-SOURCEPATH      ../src
-SOURCE          sconconmlhandler.cpp
-SOURCE          sconxmlelement.cpp
-SOURCE          sconconmlgenerator.cpp
-SOURCE          sconconmldtd.cpp
-SOURCE          sconxmlworkspace.cpp
-
-USERINCLUDE     ../inc
-USERINCLUDE     ../../../inc
-
-// Default system include paths for middleware layer modules.
-MW_LAYER_SYSTEMINCLUDE
-SYSTEMINCLUDE   /epoc32/include/libc 
-
-LANG            SC
-
-LIBRARY         euser.lib
-LIBRARY         estor.lib
-DEBUGLIBRARY    flogger.lib
--- a/connectivitymodules/SeCon/wbxml/conmlhandler/inc/sconconmldtd.h	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,750 +0,0 @@
-/*
-* Copyright (c) 2005-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:  ConML parser/generator
-*
-*/
-
-
-#ifndef __SCONCONMLDTD_H__
-#define __SCONCONMLDTD_H__
-
-#include "sconxmlelement.h"
-
-typedef void *voidPtr_t;
-typedef long memSize_t;
-
-typedef enum 
-    {
-    SML_PCDATA_UNDEFINED = 0,
-    SML_PCDATA_STRING,                   // String type
-    SML_PCDATA_OPAQUE,                   // Opaque type
-    SML_PCDATA_EXTENSION,                // Extention type
-    SML_PCDATA_CDATA                     // XML CDATA type   
-    } pcdataType_t;
-
-typedef enum 
-    {
-    SML_EXT_UNDEFINED = 0,
-    } pcdataExtension_t;
-
-// -----------------------------------------------------------------------------
-// GenericListAddL
-// -----------------------------------------------------------------------------
-template<class T>
-void GenericListAddL( T* aList, T aNewItem )
-    {
-    if( *aList == 0 )
-        {
-        *aList = aNewItem;
-        }
-    else
-        {
-        T c;
-        for( c = *aList; c->next; c = c->next )
-            {}; 
-        c->next = aNewItem;
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// pcdata_s
-// -----------------------------------------------------------------------------
-typedef NONSHARABLE_STRUCT( pcdata_s ) : public CXMLElement
-    {
-public:
-    pcdataType_t      contentType;   // The type of data 
-    pcdataExtension_t  extension;     // PCData Extension type
-    memSize_t             length;        // length of the data 
-    voidPtr_t             content;       // Pointer to the data itself
-public:
-    pcdata_s();
-    ~pcdata_s();
-    pcdata_s( const pcdataType_t aType, 
-        const pcdataExtension_t aExt =  SML_EXT_UNDEFINED );
-    void FreeContent();
-    void SetDataL( const TDesC8& aData );
-    TPtrC8 Data() const;
-    void TruncateL( TInt aConsumed );
-    } *pcdataPtr_t, pcdata_t;
-
-// -----------------------------------------------------------------------------
-// pcdata_list_s
-// -----------------------------------------------------------------------------
-typedef NONSHARABLE_STRUCT( pcdata_list_s ) : public CBase
-    {
-    pcdataPtr_t data;
-    struct pcdata_list_s *next;
-
-    pcdata_list_s();
-    ~pcdata_list_s();
-    } *pcdataListPtr_t, pcdataList_t;
-
-// -----------------------------------------------------------------------------
-// ConML_Param_s
-// -----------------------------------------------------------------------------    
-typedef NONSHARABLE_STRUCT( ConML_Param_s ) : public CXMLElement
-    {
-public:
-    pcdataPtr_t name;
-    pcdataPtr_t value;
-public:
-    ConML_Param_s();
-    ~ConML_Param_s();
-    CXMLElement* BeginElementL
-        ( TUint8 aTag, const TXMLElementParams& aParams = TXMLElementParams() );    
-    }*ConML_ParamPtr_t, ConML_Param_t;
-
-// -----------------------------------------------------------------------------
-// ConML_ParamList_s
-// -----------------------------------------------------------------------------    
-typedef NONSHARABLE_STRUCT( ConML_ParamList_s ) : public CBase
-    {
-public:
-    ConML_ParamPtr_t data;
-    struct ConML_ParamList_s *next;
-public:
-    ConML_ParamList_s();
-    ~ConML_ParamList_s();
-    }*ConML_ParamListPtr_t, ConML_ParamList_t;  
-    
-// -----------------------------------------------------------------------------
-// ConML_InstParams_s
-// -----------------------------------------------------------------------------    
-typedef NONSHARABLE_STRUCT( ConML_InstParams_s ) : public CXMLElement
-    {
-public:
-    ConML_ParamListPtr_t param;
-public:
-    ConML_InstParams_s();
-    ~ConML_InstParams_s();
-    CXMLElement* BeginElementL
-        ( TUint8 aTag, const TXMLElementParams& aParams = TXMLElementParams() );
-    }*ConML_InstParamsPtr_t, ConML_InstParams_t;
-
-// -----------------------------------------------------------------------------
-// ConML_Progress_s
-// -----------------------------------------------------------------------------    
-typedef NONSHARABLE_STRUCT( ConML_Progress_s ) : public CXMLElement
-    {
-public:
-    pcdataPtr_t value;
-public:
-    ConML_Progress_s();
-    ~ConML_Progress_s();
-    CXMLElement* BeginElementL
-        ( TUint8 aTag, const TXMLElementParams& aParams = TXMLElementParams() );    
-    }*ConML_ProgressPtr_t, ConML_Progress_t;
-
-// -----------------------------------------------------------------------------
-// ConML_Application_s
-// -----------------------------------------------------------------------------        
-typedef NONSHARABLE_STRUCT( ConML_Application_s ) : public CXMLElement
-    {
-public:
-    pcdataPtr_t name;
-    pcdataPtr_t uid;
-public:
-    ConML_Application_s();
-    ~ConML_Application_s();
-    CXMLElement* BeginElementL
-        ( TUint8 aTag, const TXMLElementParams& aParams = TXMLElementParams() );
-    }*ConML_ApplicationPtr_t, ConML_Application_t;
-
-// -----------------------------------------------------------------------------
-// ConML_ApplicationList_s
-// -----------------------------------------------------------------------------        
-    
-typedef NONSHARABLE_STRUCT( ConML_ApplicationList_s ) : public CBase
-    {
-public:
-    ConML_ApplicationPtr_t data;
-    struct ConML_ApplicationList_s *next;
-public:
-    ConML_ApplicationList_s();
-    ~ConML_ApplicationList_s();
-    }*ConML_ApplicationListPtr_t, ConML_ApplicationList_t;
-
-// -----------------------------------------------------------------------------
-// ConML_Applications_s
-// -----------------------------------------------------------------------------    
-typedef NONSHARABLE_STRUCT( ConML_Applications_s ) : public CXMLElement
-    {
-public:
-    ConML_ApplicationListPtr_t application;
-    
-public:
-    ConML_Applications_s();
-    ~ConML_Applications_s();
-    CXMLElement* BeginElementL
-        ( TUint8 aTag, const TXMLElementParams& aParams = TXMLElementParams() );
-    }*ConML_ApplicationsPtr_t, ConML_Applications_t;
-
-// -----------------------------------------------------------------------------
-// ConML_Drive_s
-// -----------------------------------------------------------------------------    
-typedef NONSHARABLE_STRUCT( ConML_Drive_s ) : public CXMLElement
-    {
-public:
-    pcdataPtr_t name;
-public:
-    ConML_Drive_s();
-    ~ConML_Drive_s();
-    CXMLElement* BeginElementL
-        ( TUint8 aTag, const TXMLElementParams& aParams = TXMLElementParams() );
-    }*ConML_DrivePtr_t, ConML_Drive_t;
-
-// -----------------------------------------------------------------------------
-// ConML_DriveList_s
-// -----------------------------------------------------------------------------    
-typedef NONSHARABLE_STRUCT( ConML_DriveList_s ) : public CBase
-    {
-public:
-    ConML_DrivePtr_t data;
-    struct ConML_DriveList_s *next;
-public:
-    ConML_DriveList_s();
-    ~ConML_DriveList_s();
-    }*ConML_DriveListPtr_t, ConML_DriveList_t;
-    
-// -----------------------------------------------------------------------------
-// ConML_Drives_s
-// -----------------------------------------------------------------------------        
-typedef NONSHARABLE_STRUCT( ConML_Drives_s ) : public CXMLElement
-    {
-public:
-    ConML_DriveListPtr_t drive;
-public:
-    ConML_Drives_s();
-    ~ConML_Drives_s();
-    CXMLElement* BeginElementL
-        ( TUint8 aTag, const TXMLElementParams& aParams = TXMLElementParams() );
-    }*ConML_DrivesPtr_t, ConML_Drives_t;
-
-// -----------------------------------------------------------------------------
-// ConML_BUROptions_s
-// -----------------------------------------------------------------------------    
-typedef NONSHARABLE_STRUCT( ConML_BUROptions_s ) : public CXMLElement
-    {
-public:
-    pcdataPtr_t requiresReboot;
-    pcdataPtr_t hasFiles;
-    pcdataPtr_t supportsInc;
-    pcdataPtr_t delayToPrepareData;
-public:
-    ConML_BUROptions_s();
-    ~ConML_BUROptions_s();
-    CXMLElement* BeginElementL
-        ( TUint8 aTag, const TXMLElementParams& aParams = TXMLElementParams() );
-    }*ConML_BUROptionsPtr_t, ConML_BUROptions_t;
-
-// -----------------------------------------------------------------------------
-// ConML_PackageInfo_s
-// -----------------------------------------------------------------------------    
-typedef NONSHARABLE_STRUCT( ConML_PackageInfo_s ) : public CXMLElement
-    {
-public:
-    pcdataPtr_t name;
-public:
-    ConML_PackageInfo_s();
-    ~ConML_PackageInfo_s();
-    CXMLElement* BeginElementL
-        ( TUint8 aTag, const TXMLElementParams& aParams = TXMLElementParams() );
-    }*ConML_PackageInfoPtr_t, ConML_PackageInfo_t;
-
-// -----------------------------------------------------------------------------
-// ConML_SID_s
-// -----------------------------------------------------------------------------    
-typedef NONSHARABLE_STRUCT( ConML_SID_s ) : public CXMLElement
-    {
-public:
-    pcdataPtr_t type;
-    pcdataPtr_t uid;
-    ConML_DrivesPtr_t drives;
-    ConML_PackageInfoPtr_t packageInfo;
-    ConML_BUROptionsPtr_t burOptions;
-    pcdataPtr_t size;
-    pcdataPtr_t transferDataType;
-    pcdataPtr_t data;
-    pcdataPtr_t moreData;
-    pcdataPtr_t dataOwnerStatus;
-    
-public:
-    ConML_SID_s();
-    ~ConML_SID_s();
-    CXMLElement* BeginElementL
-        ( TUint8 aTag, const TXMLElementParams& aParams = TXMLElementParams() );    
-    }*ConML_SIDPtr_t, ConML_SID_t;
-
-// -----------------------------------------------------------------------------
-// ConML_SIDList_s
-// -----------------------------------------------------------------------------
-typedef NONSHARABLE_STRUCT( ConML_SIDList_s ) : public CBase
-    {
-public:
-    ConML_SIDPtr_t data;
-    struct ConML_SIDList_s *next;
-public:
-    ConML_SIDList_s();
-    ~ConML_SIDList_s();
-    }*ConML_SIDListPtr_t, ConML_SIDList_t;
-    
-// -----------------------------------------------------------------------------
-// ConML_SupportedMethods_s
-// -----------------------------------------------------------------------------    
-typedef NONSHARABLE_STRUCT( ConML_SupportedMethods_s ) : public CXMLElement
-    {
-public:
-    pcdataPtr_t install;
-    pcdataPtr_t unInstall;
-    pcdataPtr_t setInstParams;
-    pcdataPtr_t listInstalledApps;
-    pcdataPtr_t listDataOwners;
-    pcdataPtr_t setBurMode;
-    pcdataPtr_t getDataSize;
-    pcdataPtr_t requestData;
-    pcdataPtr_t supplyData;
-    pcdataPtr_t reboot;
-public:
-    ConML_SupportedMethods_s();
-    ~ConML_SupportedMethods_s();
-    CXMLElement* BeginElementL
-        ( TUint8 aTag, const TXMLElementParams& aParams = TXMLElementParams() );
-    }*ConML_SupportedMethodsPtr_t, ConML_SupportedMethods_t;
-    
-// -----------------------------------------------------------------------------
-// ConML_DeviceInfo_s
-// -----------------------------------------------------------------------------    
-typedef NONSHARABLE_STRUCT( ConML_DeviceInfo_s ) : public CXMLElement
-        {
-public:
-    pcdataPtr_t version;
-    ConML_SupportedMethodsPtr_t supportedMethods;
-    pcdataPtr_t maxObjectSize;
-public:
-    ConML_DeviceInfo_s();
-    ~ConML_DeviceInfo_s();
-    CXMLElement* BeginElementL
-        ( TUint8 aTag, const TXMLElementParams& aParams = TXMLElementParams() );    
-    }*ConML_DeviceInfoPtr_t, ConML_DeviceInfo_t;
-
-// -----------------------------------------------------------------------------
-// ConML_File_s
-// -----------------------------------------------------------------------------    
-typedef NONSHARABLE_STRUCT( ConML_File_s ) : public CXMLElement
-    {
-public:
-    pcdataPtr_t name;
-    pcdataPtr_t modified;
-    pcdataPtr_t size;
-    pcdataPtr_t userPerm;
-public:
-    ConML_File_s();
-    ~ConML_File_s();
-    CXMLElement* BeginElementL
-        ( TUint8 aTag, const TXMLElementParams& aParams = TXMLElementParams() );    
-    }*ConML_FilePtr_t, ConML_File_t;
-
-// -----------------------------------------------------------------------------
-// ConML_FileList_s
-// -----------------------------------------------------------------------------    
-typedef NONSHARABLE_STRUCT( ConML_FileList_s ) : public CBase
-    {
-public:
-    ConML_FilePtr_t data;
-    struct ConML_FileList_s *next;
-public:
-    ConML_FileList_s();
-    ~ConML_FileList_s();
-    }*ConML_FileListPtr_t, ConML_FileList_t;
-
-// -----------------------------------------------------------------------------
-// ConML_Files_s
-// -----------------------------------------------------------------------------    
-typedef NONSHARABLE_STRUCT( ConML_Files_s ) : public CXMLElement
-    {
-public:
-    ConML_FileListPtr_t  file;
-public:
-    ConML_Files_s();
-    ~ConML_Files_s();
-    CXMLElement* BeginElementL
-        ( TUint8 aTag, const TXMLElementParams& aParams = TXMLElementParams() );
-    }*ConML_FilesPtr_t, ConML_Files_t;
-    
-// -----------------------------------------------------------------------------
-// ConML_DataOwners_s
-// -----------------------------------------------------------------------------    
-typedef NONSHARABLE_STRUCT( ConML_DataOwners_s ) : public CXMLElement
-    {
-public:
-    ConML_SIDListPtr_t sid;
-public:
-    ConML_DataOwners_s();
-    ~ConML_DataOwners_s();
-    CXMLElement* BeginElementL
-        ( TUint8 aTag, const TXMLElementParams& aParams = TXMLElementParams() );    
-    }*ConML_DataOwnersPtr_t, ConML_DataOwners_t;
-
-// -----------------------------------------------------------------------------
-// ConML_Results_s
-// -----------------------------------------------------------------------------    
-typedef NONSHARABLE_STRUCT( ConML_Results_s ) : public CXMLElement
-    {
-public:
-    pcdataPtr_t complete;
-    ConML_ProgressPtr_t  progress;
-    ConML_ApplicationsPtr_t applications;
-    ConML_DataOwnersPtr_t dataOwners;
-    pcdataPtr_t filename;
-    pcdataPtr_t moreData;
-    pcdataPtr_t data;
-    ConML_DeviceInfoPtr_t deviceInfo;
-    ConML_FilesPtr_t files; 
-public:
-    ConML_Results_s();
-    ~ConML_Results_s();
-    CXMLElement* BeginElementL
-        ( TUint8 aTag, const TXMLElementParams& aParams = TXMLElementParams() );    
-    }*ConML_ResultsPtr_t, ConML_Results_t;
-
-// -----------------------------------------------------------------------------
-// ConML_Install_s
-// -----------------------------------------------------------------------------    
-typedef NONSHARABLE_STRUCT( ConML_Install_s ) : public CXMLElement
-    {
-public:
-    pcdataPtr_t name;
-    ConML_InstParamsPtr_t  instParams;
-    ConML_ResultsPtr_t results; 
-public:
-    ConML_Install_s();
-    ~ConML_Install_s();
-    CXMLElement* BeginElementL
-        ( TUint8 aTag, const TXMLElementParams& aParams = TXMLElementParams() );
-    }*ConML_InstallPtr_t, ConML_Install_t;
-
-// -----------------------------------------------------------------------------
-// ConML_UnInstall_s
-// -----------------------------------------------------------------------------    
-typedef NONSHARABLE_STRUCT( ConML_UnInstall_s ) : public CXMLElement
-    {
-public:
-    ConML_ApplicationsPtr_t applications;
-    ConML_InstParamsPtr_t instParams;
-    ConML_ResultsPtr_t results;
-public:
-    ConML_UnInstall_s();
-    ~ConML_UnInstall_s();
-    CXMLElement* BeginElementL
-        ( TUint8 aTag, const TXMLElementParams& aParams = TXMLElementParams() );
-    }*ConML_UnInstallPtr_t, ConML_UnInstall_t;
-
-// -----------------------------------------------------------------------------
-// ConML_ListInstalledApps_s
-// -----------------------------------------------------------------------------    
-typedef NONSHARABLE_STRUCT( ConML_ListInstalledApps_s ) : public CXMLElement
-    {
-public:
-    ConML_DrivesPtr_t drives;
-    pcdataPtr_t all;
-    ConML_ResultsPtr_t results;
-public:
-    ConML_ListInstalledApps_s();
-    ~ConML_ListInstalledApps_s();
-    CXMLElement* BeginElementL
-        ( TUint8 aTag, const TXMLElementParams& aParams = TXMLElementParams() );
-    }*ConML_ListInstalledAppsPtr_t, ConML_ListInstalledApps_t;
-    
-// -----------------------------------------------------------------------------
-// ConML_ListDataOwners_s
-// -----------------------------------------------------------------------------    
-typedef NONSHARABLE_STRUCT( ConML_ListDataOwners_s ) : public CXMLElement
-    {
-public:
-    ConML_ResultsPtr_t results;
-public:
-    ConML_ListDataOwners_s();
-    ~ConML_ListDataOwners_s();
-    CXMLElement* BeginElementL
-        ( TUint8 aTag, const TXMLElementParams& aParams = TXMLElementParams() );
-    }*ConML_ListDataOwnersPtr_t, ConML_ListDataOwners_t;
-
-// -----------------------------------------------------------------------------
-// ConML_SetBURMode_s
-// -----------------------------------------------------------------------------    
-typedef NONSHARABLE_STRUCT( ConML_SetBURMode_s ) : public CXMLElement
-    {
-public:
-    ConML_DrivesPtr_t drives;
-    pcdataPtr_t partialType;
-    pcdataPtr_t incType;
-    ConML_ResultsPtr_t results;
-public:
-    ConML_SetBURMode_s();
-    ~ConML_SetBURMode_s();
-    CXMLElement* BeginElementL
-        ( TUint8 aTag, const TXMLElementParams& aParams = TXMLElementParams() );
-    }*ConML_SetBURModePtr_t, ConML_SetBURMode_t;
-
-// -----------------------------------------------------------------------------
-// ConML_GetDataSize_s
-// -----------------------------------------------------------------------------    
-typedef NONSHARABLE_STRUCT( ConML_GetDataSize_s ) : public CXMLElement
-    {
-public:
-    ConML_DataOwnersPtr_t dataOwners;
-    ConML_ResultsPtr_t results;
-public:
-    ConML_GetDataSize_s();
-    ~ConML_GetDataSize_s();
-    CXMLElement* BeginElementL
-        ( TUint8 aTag, const TXMLElementParams& aParams = TXMLElementParams() );
-    }*ConML_GetDataSizePtr_t, ConML_GetDataSize_t;
-
-// -----------------------------------------------------------------------------
-// ConML_RequestData_s
-// -----------------------------------------------------------------------------    
-typedef NONSHARABLE_STRUCT( ConML_RequestData_s ) : public CXMLElement
-    {
-public:
-    ConML_SIDListPtr_t sid;
-    ConML_ResultsPtr_t results;
-public:
-    ConML_RequestData_s();
-    ~ConML_RequestData_s();
-    CXMLElement* BeginElementL
-        ( TUint8 aTag, const TXMLElementParams& aParams = TXMLElementParams() );
-    }*ConML_RequestDataPtr_t, ConML_RequestData_t;
-
-// -----------------------------------------------------------------------------
-// ConML_UpdateDeviceInfo_s
-// -----------------------------------------------------------------------------    
-typedef NONSHARABLE_STRUCT( ConML_UpdateDeviceInfo_s ) : public CXMLElement
-    {
-public:
-    ConML_DeviceInfoPtr_t deviceInfo;
-    ConML_ResultsPtr_t results;
-public:
-    ConML_UpdateDeviceInfo_s();
-    ~ConML_UpdateDeviceInfo_s();
-    CXMLElement* BeginElementL
-        ( TUint8 aTag, const TXMLElementParams& aParams = TXMLElementParams() );    
-    }*ConML_UpdateDeviceInfoPtr_t, ConML_UpdateDeviceInfo_t;
-
-// -----------------------------------------------------------------------------
-// ConML_ListPublicFiles_s
-// -----------------------------------------------------------------------------    
-typedef NONSHARABLE_STRUCT( ConML_ListPublicFiles_s ) : public CXMLElement
-    {
-public:
-    ConML_ResultsPtr_t results;
-    ConML_SIDListPtr_t sid;
-public:
-    ConML_ListPublicFiles_s();
-    ~ConML_ListPublicFiles_s();
-    CXMLElement* BeginElementL
-        ( TUint8 aTag, const TXMLElementParams& aParams = TXMLElementParams() );    
-    }*ConML_ListPublicFilesPtr_t, ConML_ListPublicFiles_t;
-
-// -----------------------------------------------------------------------------
-// ConML_SupplyData_s
-// -----------------------------------------------------------------------------    
-typedef NONSHARABLE_STRUCT( ConML_SupplyData_s ) : public CXMLElement
-    {
-public:
-    ConML_SIDListPtr_t sid;
-    ConML_ResultsPtr_t results;
-public:
-    ConML_SupplyData_s();
-    ~ConML_SupplyData_s();
-    CXMLElement* BeginElementL
-        ( TUint8 aTag, const TXMLElementParams& aParams = TXMLElementParams() );
-    }*ConML_SupplyDataPtr_t, ConML_SupplyData_t;
-
-// -----------------------------------------------------------------------------
-// ConML_GetDataOwnerStatus_s
-// -----------------------------------------------------------------------------        
-typedef NONSHARABLE_STRUCT( ConML_GetDataOwnerStatus_s ) : public CXMLElement
-    {
-public:
-    ConML_DataOwnersPtr_t dataOwners;
-    ConML_ResultsPtr_t results;
-public:
-    ConML_GetDataOwnerStatus_s();
-    ~ConML_GetDataOwnerStatus_s();
-    CXMLElement* BeginElementL
-        ( TUint8 aTag, const TXMLElementParams& aParams = TXMLElementParams() );
-    }*ConML_GetDataOwnerStatusPtr_t, ConML_GetDataOwnerStatus_t;
-
-// -----------------------------------------------------------------------------
-// ConML_GetMetadata_s
-// -----------------------------------------------------------------------------
-typedef NONSHARABLE_STRUCT( ConML_GetMetadata_s ) : public CXMLElement
-    {
-public:
-    pcdataPtr_t filename;
-    ConML_ResultsPtr_t results;
-public:
-    ConML_GetMetadata_s();
-    ~ConML_GetMetadata_s();
-    CXMLElement* BeginElementL
-        ( TUint8 aTag, const TXMLElementParams& aParams = TXMLElementParams() );
-    }*ConML_GetMetadataPtr_t, ConML_GetMetadata_t;
-
-// -----------------------------------------------------------------------------
-// ConML_Execute_s
-// -----------------------------------------------------------------------------    
-typedef NONSHARABLE_STRUCT( ConML_Execute_s ) : public CXMLElement
-    {
-public:
-    pcdataPtr_t id;
-    ConML_InstallPtr_t install;
-    ConML_UnInstallPtr_t  unInstall;
-    ConML_ListInstalledAppsPtr_t listInstalledApps;
-    ConML_ListDataOwnersPtr_t listDataOwners;
-    ConML_SetBURModePtr_t setBurMode;
-    ConML_GetDataSizePtr_t getDataSize;
-    ConML_RequestDataPtr_t requestData;
-    ConML_UpdateDeviceInfoPtr_t updateDeviceInfo;
-    ConML_ListPublicFilesPtr_t listPublicFiles;
-    ConML_SupplyDataPtr_t supplyData;
-    pcdataPtr_t reboot;
-    ConML_GetDataOwnerStatusPtr_t getDataOwnerStatus;
-    ConML_GetMetadataPtr_t getMetadata;
-public:
-    ConML_Execute_s();
-    ~ConML_Execute_s();
-    CXMLElement* BeginElementL
-        ( TUint8 aTag, const TXMLElementParams& aParams = TXMLElementParams() );
-    }*ConML_ExecutePtr_t, ConML_Execute_t;
-    
-// -----------------------------------------------------------------------------
-// ConML_GetStatus_s
-// -----------------------------------------------------------------------------    
-typedef NONSHARABLE_STRUCT( ConML_GetStatus_s ) : public CXMLElement
-    {
-public:
-    pcdataPtr_t id;
-    pcdataPtr_t all;
-public:
-    ConML_GetStatus_s();
-    ~ConML_GetStatus_s();
-    CXMLElement* BeginElementL
-        ( TUint8 aTag, const TXMLElementParams& aParams = TXMLElementParams() );
-    }*ConML_GetStatusPtr_t, ConML_GetStatus_t;
-
-// -----------------------------------------------------------------------------
-// ConML_Cancel_s
-// -----------------------------------------------------------------------------    
-typedef NONSHARABLE_STRUCT( ConML_Cancel_s ) : public CXMLElement
-    {
-public:
-    pcdataPtr_t id;
-    pcdataPtr_t all;
-public:
-    ConML_Cancel_s();
-    ~ConML_Cancel_s();
-    CXMLElement* BeginElementL
-        ( TUint8 aTag, const TXMLElementParams& aParams = TXMLElementParams() );
-    }*ConML_CancelPtr_t, ConML_Cancel_t;
-
-// -----------------------------------------------------------------------------
-// ConML_Reboot_s
-// -----------------------------------------------------------------------------    
-typedef NONSHARABLE_STRUCT( ConML_Reboot_s ) : public CXMLElement
-    {
-public:
-    ConML_ResultsPtr_t results;
-public:
-    ConML_Reboot_s();
-    ~ConML_Reboot_s();
-    CXMLElement* BeginElementL
-        ( TUint8 aTag, const TXMLElementParams& aParams = TXMLElementParams() );
-    }*ConML_RebootPtr_t, ConML_Reboot_t;
-    
-// -----------------------------------------------------------------------------
-// ConML_Task_s
-// -----------------------------------------------------------------------------    
-typedef NONSHARABLE_STRUCT( ConML_Task_s ) : public CXMLElement
-    {
-public:
-    pcdataPtr_t id;
-    ConML_InstallPtr_t install;
-    ConML_UnInstallPtr_t unInstall;
-    ConML_ListInstalledAppsPtr_t listInstalledApps;
-    ConML_ListDataOwnersPtr_t listDataOwners;
-    ConML_SetBURModePtr_t setBurMode;
-    ConML_GetDataSizePtr_t getDataSize;
-    ConML_RequestDataPtr_t requestData;
-    ConML_UpdateDeviceInfoPtr_t updateDeviceInfo;
-    ConML_ListPublicFilesPtr_t listPublicFiles;
-    ConML_GetDataOwnerStatusPtr_t getDataOwnerStatus;
-    ConML_SupplyDataPtr_t supplyData;
-    ConML_RebootPtr_t reboot;
-    ConML_GetMetadataPtr_t getMetadata;
-public:
-    ConML_Task_s();
-    ~ConML_Task_s();
-    CXMLElement* BeginElementL
-        ( TUint8 aTag, const TXMLElementParams& aParams = TXMLElementParams() );    
-    }*ConML_TaskPtr_t, ConML_Task_t;
-
-// -----------------------------------------------------------------------------
-// ConML_TaskList_s
-// -----------------------------------------------------------------------------    
-typedef NONSHARABLE_STRUCT( ConML_TaskList_s ) : public CBase
-    {
-public:
-    ConML_TaskPtr_t data;
-    struct ConML_TaskList_s *next;
-public:
-    ConML_TaskList_s();
-    ~ConML_TaskList_s();
-    }*ConML_TaskListPtr_t, ConML_TaskList_t;
-
-// -----------------------------------------------------------------------------
-// ConML_Status_s
-// -----------------------------------------------------------------------------    
-typedef NONSHARABLE_STRUCT( ConML_Status_s ) : public CXMLElement
-    {
-public:
-    ConML_TaskListPtr_t task;
-public:
-    ConML_Status_s();
-    ~ConML_Status_s();
-    CXMLElement* BeginElementL
-        ( TUint8 aTag, const TXMLElementParams& aParams = TXMLElementParams() );    
-    }*ConML_StatusPtr_t, ConML_Status_t;
-
-// -----------------------------------------------------------------------------
-// ConML_ConML_s
-// -----------------------------------------------------------------------------    
-typedef NONSHARABLE_STRUCT( ConML_ConML_s ) : public CXMLElement
-    {
-public:
-    ConML_ExecutePtr_t execute;
-    ConML_GetStatusPtr_t getStatus;
-    ConML_CancelPtr_t cancel;
-    ConML_StatusPtr_t status;   
-        
-public:
-    ConML_ConML_s();
-    ~ConML_ConML_s();
-    TBool NeedsCleanup() const;
-    CXMLElement* BeginElementL
-        ( TUint8 aTag, const TXMLElementParams& aParams = TXMLElementParams() );
-    CXMLElement::TAction EndElementL( TAny* aCallbacks, TUint8 aTag );
-    } *ConML_ConMLPtr_t, ConML_ConML_t;
-                                                                                    
-#endif // __SCONCONMLDTD_H__
--- a/connectivitymodules/SeCon/wbxml/conmlhandler/inc/sconconmlgenerator.h	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,232 +0,0 @@
-/*
-* Copyright (c) 2005-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:  ConML parser/generator
-*
-*/
-
-
-#ifndef __SCONCONMLGENERATOR_H__
-#define __SCONCONMLGENERATOR_H__
-
-// -----------------------------------------------------------------------------
-// Includes
-// -----------------------------------------------------------------------------
-#include "sconxmlelement.h"
-#include "sconconmldtd.h"
-#include "sconconmltags.h"
-#include "sconwbxmldefs.h"
-#include "sconxmlworkspace.h"
-
-// -----------------------------------------------------------------------------
-// MWBXMLConMLCallback - Call back for parsed data
-// -----------------------------------------------------------------------------
-class MWBXMLConMLCallback
-    {
-public:
-     /**
-    * Call back function for delivering the parsed data
-    * @param aContent contains the parsed data
-    * @return none
-    */
-
-    virtual void ConMLL( ConML_ConMLPtr_t aContent ) = 0;
-    };
-
-// -----------------------------------------------------------------------------
-// TWBXMLContentFormat
-// -----------------------------------------------------------------------------
-enum TWBXMLContentFormat
-    {
-    EWBXMLContentFormatOpaque,
-    EWBXMLContentFormatInlineString
-    };
-    
-// -----------------------------------------------------------------------------
-// CSConConMLGenerator - Generates XBXML and XML documents
-// -----------------------------------------------------------------------------
-NONSHARABLE_CLASS( CSConConMLGenerator ) : public CBase
-    {
-public:
-
-    static CSConConMLGenerator* NewL();
-    ~CSConConMLGenerator();
-        
-    /**
-    * Returns the generated WBXML document
-    * @param none 
-    * @return the document as TPtrC8
-    */
-    TPtrC8 WBXMLDocument();
-
-    /**
-    * Returns the generated XML document
-    * @param none 
-    * @return the document as TPtrC8
-    */
-    TPtrC8 XMLDocument();
-    
-    
-    // WBXML Parser
-    
-    /**
-    * Sets the callback function to call after parsing
-    * @param aCallback callback function to call when parsing finished
-    * @return none
-    */
-    void SetCallback ( MWBXMLConMLCallback* aCallbakc );
-    
-    /**
-    * Starts the document after header has been parsed 
-    * @param aVersion - version of WBXML document
-    * @param aPublicId - public ID of WBXML document as known public ID
-    * @param aCharset - Character set of WBXML document
-    * @return none
-    */
-    void StartDocument( TUint8 aVersion, TInt32 aPublicId, TUint32 aCharset );
-
-    /**
-    * Starts the document after header has been parsed 
-    * @param aVersion - version of WBXML document
-    * @param aPublicIdStr - public ID of WBXML document as a inline string 
-    * @param aCharset - Character set of WBXML document
-    * @return none
-    */
-    void StartDocument( 
-        TUint8 aVersion, const TDesC8& aPublicIdStr, TUint32 aCharset );
-    
-    /**
-    * Starts a new element in the document
-    * @param aTag - Tag of the element
-    * @return none
-    */
-    void StartElementL( TWBXMLTag aTag );
-
-    /**
-    * Starts a character data in the document
-    * @param aBuffer - Character data
-    * @return none
-    */
-    void CharactersL( const TDesC8& aBuffer );
-
-    /**
-    * Document has been parsed - the end of document
-    * @param none
-    * @return none
-    */
-    void EndDocument();
-        
-    /**
-    * End tag of an element has been found
-    * @param aTag - tag of the element to be closed 
-    * @return none
-    */
-    void EndElementL( TWBXMLTag aTag );
-    
-    // Generator
-    
-    /**
-    * Starts the generation of a document
-    * @param aContent - data for the document
-    * @return none
-    */
-    TInt GenerateConMLDocument ( ConML_ConMLPtr_t aContent );
-
-private:
-
-    // WBXML Generator
-    void WriteMUint32L( TUint32 aValue );
-    void WriteOpaqueDataL( const TDesC8& aData );
-    void WriteInlineStringL( const TDesC8& aData );
-    
-    // XML Generator
-    void IndentL();
-    TPtrC8 TranslateElement( TUint8 aElement );
-
-    // WBXML / XML Generator
-    void BeginDocumentL( TUint8 aVersion, TInt32 aPublicId, TUint32 aCharset, 
-        const TDesC8& aStringTbl = TPtrC8() );
-    void BeginElementL( TUint8 aElement, TBool aHasContent = EFalse, 
-        TBool aHasAttributes = EFalse );
-    void EndElementL();
-    void AddElementL( 
-        TUint8 aElement, const TDesC8& aContent, 
-        const TWBXMLContentFormat aFormat = EWBXMLContentFormatOpaque );
-    void AppendPCDataL( TUint8 aElement, pcdataPtr_t aContent );
-    void AppendConMLL( ConML_ConMLPtr_t aContent );
-    void AppendExecuteL( ConML_ExecutePtr_t aContent );
-    void AppendSupplyDataL( ConML_SupplyDataPtr_t aContent );
-    void AppendInstallL( ConML_InstallPtr_t aContent );
-    void AppendCancelL ( ConML_CancelPtr_t aContent );
-    void AppendStatusL ( ConML_StatusPtr_t aContent );
-    void AppendGetStatusL( ConML_GetStatusPtr_t aContent );
-    void AppendRebootL( ConML_RebootPtr_t aContent );
-    void AppendTaskL( ConML_TaskPtr_t aContent );
-    void AppendTaskListL( ConML_TaskListPtr_t aContent );
-    void AppendUnInstallL( ConML_UnInstallPtr_t aContent );
-    void AppendListInstalledAppsL ( ConML_ListInstalledAppsPtr_t aContent );
-    void AppendListDataOwnersL ( ConML_ListDataOwnersPtr_t aContent );
-    void AppendBUROptionsL( ConML_BUROptionsPtr_t aContent );
-    void AppendSetBURModeL( ConML_SetBURModePtr_t aContent );
-    void AppendGetDataSizeL( ConML_GetDataSizePtr_t aContent );
-    void AppendRequestDataL( ConML_RequestDataPtr_t aContent );
-    void AppendUpdateDeviceInfoL( ConML_UpdateDeviceInfoPtr_t aContent );
-    void AppendListPublicFilesL( ConML_ListPublicFilesPtr_t aContent );
-    void AppendApplicationL( ConML_ApplicationPtr_t aContent );
-    void AppendApplicationListL( ConML_ApplicationListPtr_t aContent );
-    void AppendApplicationsL( ConML_ApplicationsPtr_t aContent );
-    void AppendParamL( ConML_ParamPtr_t aContent );
-    void AppendParamListL( ConML_ParamListPtr_t aContent );
-    void AppendInstParamsL( ConML_InstParamsPtr_t aContent );
-    void AppendProgressL( ConML_ProgressPtr_t aContent );
-    void AppendResultsL( ConML_ResultsPtr_t aContent );
-    void AppendDriveL( ConML_DrivePtr_t aContent );
-    void AppendDriveListL( ConML_DriveListPtr_t aContent );
-    void AppendDrivesL( ConML_DrivesPtr_t aContent );
-    void AppendDataOwnersL( ConML_DataOwnersPtr_t aContent );
-    void AppendPackageInfoL ( ConML_PackageInfoPtr_t aContent );
-    void AppendSIDL( ConML_SIDPtr_t aContent );
-    void AppendSIDListL( ConML_SIDListPtr_t aContent );
-    void AppendDeviceInfoL( ConML_DeviceInfoPtr_t aContent );
-    void AppendFilesL( ConML_FilesPtr_t aContent );
-    void AppendSupportedMethodsL( ConML_SupportedMethodsPtr_t aContent );
-    void AppendFileListL( ConML_FileListPtr_t  aContent );
-    void AppendFileL( ConML_FilePtr_t aContent );
-    void AppendGetDataOwnerStatusL( ConML_GetDataOwnerStatusPtr_t aContent );
-    void AppendGetMetadataL( ConML_GetMetadataPtr_t aContent );
-    
-    TInt HandleResult( TInt aResult, TInt aTreshold = 0 );
-    
-private:
-    void ConstructL();
-    CSConConMLGenerator();
-    void AddElement( CXMLElement* aElement );
-
-private:
-    // Parser
-    CXMLStack<CXMLElement>* iCmdStack;
-    CXMLStack<CXMLElement>* iCleanupStack;
-    MWBXMLConMLCallback* iCallback;
-
-    // Generator workspaces 
-    CXMLWorkspace* iWBXMLWorkspace;
-    CXMLWorkspace* iXMLWorkspace;
-
-    // XML
-    RArray<TUint8> iElemStack;
-    TInt iInitialIndentLevel;
-    TBool iDontNewLine;
-    TBool iDontIndent;
-    }; 
-
-#endif // __SCONCONMLGENERATOR_H__
--- a/connectivitymodules/SeCon/wbxml/conmlhandler/inc/sconconmlhandler.h	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,123 +0,0 @@
-/*
-* Copyright (c) 2005-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:  ConML parser/generator
-*
-*/
-
-
-#ifndef _SCONCONMLHANDLER_H
-#define _SCONCONMLHANDLER_H
-
-// -----------------------------------------------------------------------------
-// Includes
-// -----------------------------------------------------------------------------
-#include "sconconmlgenerator.h"
-#include "sconwbxmldefs.h"
-#include "sconconmlhandlererror.h"
-#include "sconconmldtd.h"
-
-// -----------------------------------------------------------------------------
-// Definitions and constants
-// -----------------------------------------------------------------------------
-
-_LIT8(KWBXMLNull, "\x00");
-
-const TInt KSConBufferGranularity( 32 );
-const TInt KSConDefaultDocumentSize( 2048 );
-
-// -----------------------------------------------------------------------------
-// TWBXMLStackItem
-// -----------------------------------------------------------------------------
-NONSHARABLE_STRUCT( TWBXMLStackItem )
-    {
-public:
-    inline TWBXMLStackItem( TUint8 aTag );
-    inline TUint8 Tag() const;
-
-private:
-    TUint8 iTag;
-    };
-
-#include "sconwbxmlparser.inl"
-
-// -----------------------------------------------------------------------------
-// CSConConMLHandler - WBXML parsing
-// -----------------------------------------------------------------------------
-class CSConConMLHandler : public CBase
-    {
-public:
-    static CSConConMLHandler* NewL();
-    ~CSConConMLHandler();
-    
-    /**
-    * Starts the parsing of a WBXML document
-    * @param aInput - the WBXML document to be parsed
-    * @param aCallback - Call back function to call 
-    * after the document is parsed
-    * @return An error code
-    */
-    virtual TInt ParseDocumentL( CBufFlat& aInput,  
-        MWBXMLConMLCallback* aCallback  );
-    
-    /**
-    * Starts the generating of a WBXML and XML document
-    * @param aContent - the data to be generated into the document
-    * @return An error code
-    */
-    virtual TInt GenerateDocument( ConML_ConMLPtr_t aContent );
-    
-    /**
-    * Returns the generated document in XML -format
-    * @param none
-    * @return The document as TPtrC8
-    */
-    virtual TPtrC8 XMLDocument();
-    
-    /**
-    * Returns the generated document in WBXML -format
-    * @param none
-    * @return The document as TPtrC8
-    */
-    virtual TPtrC8 WBXMLDocument();
-    
-private:
-    CSConConMLHandler();
-    void ConstructL();
-    
-    TInt ParseL();
-    TConMLParserError DoParseDocumentHeaderL();
-    TConMLParserError DoParseDocumentBodyL();
-    TUint8 ReadUint8L();
-    TUint32 ReadMUint32L();
-    TPtrC8 ReadStrIL();
-    TPtrC8 StringTableString( TUint32 aIndex );
-    void ReadStringTableL();    
-    TPtrC8 ReadOpaqueL();
-    void HandleElementL( TUint8 aId );
-    
-private:
-    CSConConMLGenerator* iGenerator;
-    HBufC8* iStringTable;
-    CBufBase* iBuffer;
-    TBool iHeaderParsed;
-    RArray< TUint > iElemStack;
-    TInt iPos;
-    CBufFlat* iParseBuffer;
-    MWBXMLConMLCallback* iCallback;
-    };
-
-    IMPORT_C CSConConMLHandler* CreateCSConConMLHandlerL();
-    typedef CSConConMLHandler* (*TSConCreateCSConConMLHandlerFunc) (); 
-    
-#endif
--- a/connectivitymodules/SeCon/wbxml/conmlhandler/inc/sconconmlhandlererror.h	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,47 +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:  ConML parser/generator
-*
-*/
-
-
-#ifndef __SCONCONMLHANDLERERROR_H__
-#define __SCONCONMLHANDLERERROR_H__
-
-// -----------------------------------------------------------------------------
-// Parser error base
-// -----------------------------------------------------------------------------
-
-#define PERRBASE 0x2000
-
-enum TConMLParserError
-	{
-	KWBXMLParserErrorOk = 0,
-	KWBXMLParserErrorEof = PERRBASE,
-	KWBXMLParserErrorEofTooEarly,
-	KWBXMLParserErrorInvalidTag,
-	KWBXMLParserErrorWrongWBXMLVersion,
-	KWBXMLParserErrorWrongPublicId,
-	KWBXMLParserErrorinvalidDocument
-	};
-
-#define GERRBASE 0x3000
-
-enum TWBXMLGeneratorError
-	{
-	KWBXMLGeneratorOk = 0,
-	KWBXMLGeneratorBufferFull = GERRBASE
-	};
-	
-#endif // __SCONCONMLHANDLERERROR_H__
\ No newline at end of file
--- a/connectivitymodules/SeCon/wbxml/conmlhandler/inc/sconconmltags.h	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,120 +0,0 @@
-/*
-* Copyright (c) 2005-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:  ConML parser/generator
-*
-*/
-
-
-
-#ifndef __SCONCONMLTAGS_H__
-#define __SCONCONMLTAGS_H__
-
-// -----------------------------------------------------------------------------
-// Constants
-// -----------------------------------------------------------------------------
-const TInt32 KSConConMLPublicId = 0x8F;
-const TUint8 KSConConMLVersion = 0x02;
-const TUint32 KSConConMLUTF8 = 0x6a;
-
-_LIT8(KSConConMLPublicIdStr, "-//CONML//DTD ConML 1.0//EN");
-
-// -----------------------------------------------------------------------------
-// TConMLTags
-// -----------------------------------------------------------------------------
-enum TConMLTags
-    {
-        EConMLAll = 5,
-        EConMLApplication,
-        EConMLApplications,
-        EConMLBUROptions,
-        EConMLCancel,
-        EConMLComplete,
-        EConML,
-        EConMLData,
-        EConMLDataOwners,
-        EConMLDataOwnerStatus,
-        EConMLDelayToPrepareData,
-        EConMLDeviceInfo,
-        EConMLDrive,
-        EConMLDrives,
-        EConMLExecute,
-        EConMLFile,
-        EConMLFiles,
-        EConMLGetDataOwnerStatus,
-        EConMLGetDataSize,
-        EConMLGetStatus,
-        EConMLHasFiles,
-        EConMLID,
-        EConMLIncType,
-        EConMLInstall,
-        EConMLInstParams,
-        EConMLListDataOwners,
-        EConMLListInstalledApps,
-        EConMLListPublicFiles,
-        EConMLMaxObjectSize,
-        EConMLModified,
-        EConMLMoreData,
-        EConMLName,
-        EConMLPackageInfo,
-        EConMLParam,
-        EConMLPartialType,
-        EConMLProgress,
-        EConMLReboot,
-        EConMLRequestData,
-        EConMLRequiresReboot,
-        EConMLResults,
-        EConMLSetBURMode,
-        EConMLSetInstParams,
-        EConMLSID,
-        EConMLSize,
-        EConMLStatus,
-        EConMLSupplyData,
-        EConMLSupportedMethods,
-        EConMLSupportsInc,
-        EConMLTask,
-        EConMLTransferDataType,
-        EConMLType,
-        EConMLUID,
-        EConMLUnInstall,
-        EConMLUpdateDeviceInfo,
-        EConMLUserPerm,
-        EConMLValue,
-        EConMLVersion,
-        EConMLGetMetadata,
-        EConMLFilename
-        };
-// -----------------------------------------------------------------------------
-_LIT8( KConMLElements, 
-       "<0>|<1>|<2>|<3>|<4>|All|Application|Applications|BUROptions|Cancel"
-       "|Complete|ConML|Data|DataOwners|DataOwnerStatus|DelayToPrepareData"
-       "|DeviceInfo|Drive|Drives|Execute|File|Files|GetDataOwnerStatus"
-       "|GetDataSize|GetStatus|HasFiles|ID|IncType|Install|InstParams"
-       "|ListDataOwners|ListInstalledApps|ListPublicFiles|MaxObjectSize|"
-       "Modified|MoreData|Name|PackageInfo|Param|PartialType|Progress|"
-       "Reboot|RequestData|RequiresReboot|Results|SetBURMode|SetInstParams|SID|"
-       "Size|Status|SupplyData|SupportedMethods|SupportsInc|Task|"
-       "TransferDataType|Type|UID|UnInstall|UpdateDeviceInfo|UserPerm|"
-       "Value|Version|GetMetadata|Filename" );
-       
-_LIT8(KXMLTagStart, "<");
-_LIT8(KXMLTagStartEndTag, "</");
-_LIT8(KXMLTagEndNoContent, "/>");
-_LIT8(KXMLTagEnd, ">");
-_LIT8(KXMLElemenentSeparator, "|");
-_LIT8(KXMLNamespaceBegin, " xmlns='");
-_LIT8(KXMLNamespaceEnd, "'");
-_LIT8(KXMLIndent, "   ");
-_LIT8(KXMLNewLine, "\r\n");
-
-#endif
\ No newline at end of file
--- a/connectivitymodules/SeCon/wbxml/conmlhandler/inc/sconwbxmldefs.h	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +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:  ConML parser/generator
-*
-*/
-
-
-#ifndef __SCONWBXMLDEFS_H__
-#define __SCONWBXMLDEFS_H__
-
-// -----------------------------------------------------------------------------
-// Typedefs
-// -----------------------------------------------------------------------------
-typedef TUint8 TWBXMLTag;
-
-// -----------------------------------------------------------------------------
-// Constants
-// -----------------------------------------------------------------------------
-const TWBXMLTag SWITCH_PAGE = 0;
-const TWBXMLTag END = 1;
-const TWBXMLTag ENTITY = 2;
-const TWBXMLTag STR_I = 3;
-const TWBXMLTag LITERAL = 4;
-const TWBXMLTag OPAQUE = 0xc3; 
-
-const TUint8 KWBXMLHasAttributes = (1<<7);
-const TUint8 KWBXMLHasContent = (1<<6);
-
-
-#endif // __SCONWBXMLDEFS_H__
\ No newline at end of file
--- a/connectivitymodules/SeCon/wbxml/conmlhandler/inc/sconwbxmlparser.inl	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +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:  ConML parser/generator
-*
-*/
-
-
-#ifndef __SCONWBXMLPARSER_INL__
-#define __SCONWBXMLPARSER_INL__
-
-
-inline TWBXMLStackItem::TWBXMLStackItem( TUint8 aTag )  : iTag(aTag)
-	{
-	}
-
-inline TUint8 TWBXMLStackItem::Tag() const
-	{
-	return iTag;
-	}
-
-#endif // __SCONWBXMLPARSER_INL__
--- a/connectivitymodules/SeCon/wbxml/conmlhandler/inc/sconxmlelement.h	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,137 +0,0 @@
-/*
-* Copyright (c) 2005-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:  ConML parser/generator
-*
-*/
-
-
-#ifndef __SCONXMLELEMENT_H__
-#define __SCONXMLELEMENT_H__
-
-// -----------------------------------------------------------------------------
-// Includes
-// -----------------------------------------------------------------------------
-
-#include <e32base.h>
-#include "sconxmlstack.h"
-
-// -----------------------------------------------------------------------------
-// Class forwards
-// -----------------------------------------------------------------------------
-class MWBXMLConMLCallback;
-struct TXMLElementParams;
-
-// -----------------------------------------------------------------------------
-// CXMLElement - Base class for XML -elements
-// -----------------------------------------------------------------------------
-NONSHARABLE_CLASS( CXMLElement ) : public CBase
-    {
-public:
-    enum TAction 
-        {
-        ENone,
-        EPop,
-        EPopAndDestroy // Pop from stack, callback, delete
-        };
-
-    /**
-    * Sets the data of an element
-    * @param aData - Data of the element
-    * @return none
-    */
-    virtual void SetDataL( const TDesC8& aData );
-    
-    /**
-    * Returns data of an element
-    * @param none
-    * @return Data of the element as TPtrC8
-    */
-    virtual TPtrC8 Data() const;
-        
-    /**
-    * Validates an element's instance 
-    * @param none
-    * @return ETrue if element current instance is valid, 
-    * EFalse if not 
-    */
-    virtual TBool Validate();
-    
-    /**
-    * Checks if instance needs cleanup
-    * @param none
-    * @return ETrue if instance pushed into 
-    * parser's cleanupstack , EFalse if not
-    */
-    virtual TBool NeedsCleanup() const;
-    
-    /**
-    * Offers a new element to this element
-    * @param aTag - tag of the element to be started 
-    * @param aParams - Element parameters
-    * @return new Element instance as CXMLElement
-    */
-    virtual CXMLElement* BeginElementL( 
-        TUint8 aTag, const TXMLElementParams& aParams );
-
-    /**
-    * Offers a new element to this element
-    * @param aTag - tag of the element to be started 
-    * @param aParams - Element parameters
-    * @return new Element instance as CXMLElement
-    */
-    virtual TAction EndElementL( TAny* aCallbacks, TUint8 aTag );
-    };
-
-// -----------------------------------------------------------------------------
-// TElementParams
-// -----------------------------------------------------------------------------
-NONSHARABLE_STRUCT( TXMLElementParams )
-    {
-public:
-    inline TXMLElementParams();
-    TXMLElementParams( 
-        TAny* aCallbacks, 
-        CXMLStack<CXMLElement>* aCmdStack = 0, 
-        CXMLStack<CXMLElement>* aCleanupStack = 0 );
-        
-    /**
-    * Returns the call back function of parameters
-    * @param nonoe
-    * @return call back function as TAny
-    */
-    inline TAny* Callbacks() const;
-    
-    /**
-    * Returns the command stack of the parameters
-    * @param none
-    * @return command stack as CXMLStack
-    */
-    inline CXMLStack<CXMLElement>* CmdStack() const;
-
-    /**
-    * Returns the clean up stack of the parameters
-    * @param none
-    * @return clean up stack as CXMLStack
-    */
-    inline CXMLStack<CXMLElement>* CleanupStack() const;
-
-private:
-    TAny* iCallbacks;
-    CXMLStack<CXMLElement>* iCmdStack;
-    CXMLStack<CXMLElement>* iCleanupStack;
-    };
-
-#include "sconxmlelement.inl"
-
-#endif // __SCONXMLELEMENT_H__
\ No newline at end of file
--- a/connectivitymodules/SeCon/wbxml/conmlhandler/inc/sconxmlelement.inl	Tue Feb 02 01:11:40 2010 +0200
+++ /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:  ConML parser/generator
-*
-*/
-
-
-#ifndef __SCONXMLELEMENT_INL__
-#define __SCONXMLELEMENT_INL__
-
-// ------------------------------------------------------------------------------------------------
-inline TXMLElementParams::TXMLElementParams() : iCallbacks(0), iCmdStack(0), iCleanupStack(0)
-	{
-	}
-
-// ------------------------------------------------------------------------------------------------
-inline TAny* TXMLElementParams::Callbacks() const
-	{
-	return iCallbacks;
-	}
-
-// ------------------------------------------------------------------------------------------------
-inline CXMLStack<CXMLElement>* TXMLElementParams::CmdStack() const
-	{
-	return iCmdStack;
-	}
-
-// ------------------------------------------------------------------------------------------------
-inline CXMLStack<CXMLElement>* TXMLElementParams::CleanupStack() const
-	{
-	return iCleanupStack;
-	}
-
-#endif // __SCONXMLELEMENT_INL__
\ No newline at end of file
--- a/connectivitymodules/SeCon/wbxml/conmlhandler/inc/sconxmlstack.h	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,85 +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:  ConML parser/generator
-*
-*/
-
-
-#ifndef __SCONXMLSTACK_H__
-#define __SCONXMLSTACK_H__
-
-// -----------------------------------------------------------------------------
-// CNSmlStack - Stack for WBXML / XML elements
-// ----------------------------------------------------------------------------
-
-template <class T>
-class CXMLStack  : public CBase
-	{
-public:
-	static inline CXMLStack* NewL();
-	inline ~CXMLStack();
-        
-        /**
-        *  Removes latest item from the stack
-        * @param none
-        * @return none
-        */
-	inline T* Pop();
-	
-	/**
-        *  Return the latest item from the stack
-        * @param none
-        * @return the item
-        */
-	inline T* Top();
-	
-	/**
-        *  Adds an item to the stack
-        * @param none
-        * @return none
-        */
-	inline void Push( T* aItem );
-	
-	/**
-        * Returns the number of items in the stack
-        * @param none
-        * @return number of items as TInt
-        */
-	inline TInt Count();
-	
-	/**
-        *  Resets the stack
-        * @param none
-        * @return none
-        */
-	inline void Reset();
-	
-	/**
-        *  Resets and destroys the stack
-        * @param none
-        * @return none
-        */
-	inline void ResetAndDestroy();
-
-
-protected:
-	inline CXMLStack<T>();
-
-private:
-	RPointerArray<T>* iStack;
-	};
-
-#include "sconxmlstack.inl"
-
-#endif // __SCONXMLSTACK_H__
\ No newline at end of file
--- a/connectivitymodules/SeCon/wbxml/conmlhandler/inc/sconxmlstack.inl	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,99 +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:  ConML parser/generator
-*
-*/
-
-
-#ifndef __SCONXMLSTACK_INL__
-#define __SCONXMLSTACK_INL__
-
-
-// ------------------------------------------------------------------------------------------------
-// CXMLStack
-// ------------------------------------------------------------------------------------------------
-template<class T>
-inline CXMLStack<T>::CXMLStack()
-	{
-	}
-
-// ------------------------------------------------------------------------------------------------
-template<class T>
-inline CXMLStack<T>::~CXMLStack()
-	{
-	iStack->ResetAndDestroy();
-	delete iStack;
-	}
-
-// ------------------------------------------------------------------------------------------------
-template<class T>
-inline CXMLStack<T>* CXMLStack<T>::NewL()
-	{
-	CXMLStack<T>* self = new (ELeave) CXMLStack<T>();
-	CleanupStack::PushL(self);
-	self->iStack = new (ELeave) RPointerArray<T>();
-	CleanupStack::Pop(); // self
-	return self;
-	}
-
-// ------------------------------------------------------------------------------------------------
-template<class T>
-inline T* CXMLStack<T>::Pop()
-	{
-	T* temp = iStack->operator[](iStack->Count() - 1);
-	iStack->Remove(iStack->Count() - 1);
-	return temp;
-	}
-
-// ------------------------------------------------------------------------------------------------
-template<class T>
-inline T* CXMLStack<T>::Top()
-	{
-	if( Count() > 0 )
-		{
-		return iStack->operator[](iStack->Count() - 1);
-		}
-	return 0;
-	}
-
-// ------------------------------------------------------------------------------------------------
-template<class T>
-inline void CXMLStack<T>::Push( T* aItem )
-	{
-	iStack->Append(aItem);
-	}
-
-// ------------------------------------------------------------------------------------------------
-template<class T>
-inline TInt CXMLStack<T>::Count()
-	{
-	return iStack->Count();
-	}
-
-// ------------------------------------------------------------------------------------------------
-template<class T>
-inline void CXMLStack<T>::Reset()
-	{
-	iStack->Reset();
-	}
-
-// ------------------------------------------------------------------------------------------------
-template<class T>
-inline void CXMLStack<T>::ResetAndDestroy()
-	{
-	iStack->ResetAndDestroy();
-	}
-
-#endif  // __SCONXMLSTACK_INL__
-
--- a/connectivitymodules/SeCon/wbxml/conmlhandler/inc/sconxmlworkspace.h	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,120 +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:  ConML parser/generator
-*
-*/
-
-
-#ifndef __SCONXMLWORKSPACE_H__
-#define __SCONXMLWORKSPACE_H__
-
-// -----------------------------------------------------------------------------
-// Includes
-// -----------------------------------------------------------------------------
-#include <e32base.h>
-
-// -----------------------------------------------------------------------------
-// CXMLWorkspace - workspace for WBXML / XML -documents
-// -----------------------------------------------------------------------------
-class CXMLWorkspace : public CBase
-	{
-public:
-	~CXMLWorkspace();
-	static CXMLWorkspace* NewL();
-
-	// transaction handling
-	/**
-        * Function to Begin transaction
-        * @param none
-        * @return none
-        */
-	void BeginTransaction();
-	
-	/**
-        * Commits the transactions done
-        * @param none
-        * @return none
-        */
-	void CommitAll();
-	
-	/**
-        *  Commits the latest transacion done
-        * @param none
-        * @return KErrNone or an error code
-        */
-	TInt Commit();
-	
-	/**
-        *  Deletes the latest transacion done
-        * @param none
-        * @return KErrNone or an error code
-        */
-	TInt Rollback();
-
-        /**
-        *  Resets the buffer
-        * @param none
-        * @return KErrNone or an error code
-        */
-	void Reset();
-	
-	/**
-        *  Writes to the buffer
-        * @param none
-        * @return none
-        */
-	void WriteL( const TDesC8& aData );
-	void WriteL( const TUint8 aData );
-	
-	/**
-        * Returns the buffer
-        * @param none
-        * @return the buffer
-        */
-	TPtrC8 Buffer();
-        
-        /**
-        *  Returns the free space left in the buffer
-        * @param none
-        * @return free space of the buffer
-        */
-	TInt FreeSize();
-	
-	/**
-        *  Returns the maximum size of the buffer
-        * @param none
-        * @return Buffer maximum size
-        */
-	TInt MaxSize();
-	
-	/**
-        *  Returns the size of the buffer space used
-        * @param none
-        * @return Size of the buffer used
-        */
-	TInt Size();
-
-protected:
-	void ConstructL();
-
-private:
-	void Delete( TInt aPos, TInt aLength );
-	CXMLWorkspace();
-private:
-	CBufFlat* iBuffer;
-	RArray<TUint>* iTransactions;
-	};
-
-#endif // __SCONXMLWORKSPACE_H__
-	
--- a/connectivitymodules/SeCon/wbxml/conmlhandler/src/sconconmldtd.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1783 +0,0 @@
-/*
-* Copyright (c) 2005-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:  ConML parser/generator
-*
-*/
-
-
-#include "sconconmldtd.h"
-#include "sconconmltags.h"
-#include "sconconmlhandler.h"
-#include "sconconmlhandlererror.h"
-#include "debug.h"
-
-// -----------------------------------------------------------------------------
-// Macros
-// -----------------------------------------------------------------------------
-#define CHECK_NO_DUPLICATE(a) if( a ) { User::Leave( KWBXMLParserErrorinvalidDocument ); }
-
-// -----------------------------------------------------------------------------
-// pcdata_s
-// -----------------------------------------------------------------------------
-pcdata_s::pcdata_s( const pcdataType_t aType, const pcdataExtension_t aExt )
-	: contentType(aType), extension(aExt)
-    {
-    }
-
-pcdata_s::pcdata_s() : contentType(SML_PCDATA_OPAQUE), 
-                       extension(SML_EXT_UNDEFINED)
-    {
-    }
-
-pcdata_s::~pcdata_s()
-    {
-    FreeContent();
-    }
-
-void pcdata_s::FreeContent()
-    {
-    User::Free(content);
-    content = 0;
-    }
-
-void pcdata_s::SetDataL( const TDesC8& aData )
-    {
-    FreeContent();
-    length = aData.Length();
-    content = User::AllocL(length);
-    Mem::Copy(content, aData.Ptr(), length);
-    }
-
-TPtrC8 pcdata_s::Data() const
-    {
-    return TPtrC8((TUint8*)content, length);
-    }
-
-void pcdata_s::TruncateL( TInt aConsumed )
-    {
-    HBufC8* buffer = TPtrC8((TUint8*)content + aConsumed, 
-                             length - aConsumed).AllocLC();
-    SetDataL(*buffer);
-    CleanupStack::PopAndDestroy(); // buffer
-    }
-
-pcdata_list_s::pcdata_list_s()
-    {
-    }
-
-pcdata_list_s::~pcdata_list_s()
-    {
-    delete data;
-    delete next;
-    }
-
-// -----------------------------------------------------------------------------
-// AddDriveL
-// -----------------------------------------------------------------------------
-CXMLElement* AddDriveL(  ConML_DriveListPtr_t* aList )
-    {
-    ConML_DriveListPtr_t itemL = new ( ELeave ) ConML_DriveList_t();
-    CleanupStack::PushL( itemL );
-    itemL->data = new ( ELeave ) ConML_Drive_t();
-    GenericListAddL(aList, itemL);
-    CleanupStack::Pop(); // itemL
-    return itemL->data;
-    }
-
-// -----------------------------------------------------------------------------
-// AddSIDL
-// -----------------------------------------------------------------------------
-CXMLElement* AddSIDL( ConML_SIDListPtr_t * aList )
-    {
-    ConML_SIDListPtr_t itemL = new ( ELeave ) ConML_SIDList_t();
-    CleanupStack::PushL( itemL );
-    itemL->data = new ( ELeave ) ConML_SID_t();
-    GenericListAddL(aList, itemL);
-    CleanupStack::Pop(); // itemL
-    return itemL->data;
-    }
-		
-// -----------------------------------------------------------------------------
-// AddFileL
-// -----------------------------------------------------------------------------
-CXMLElement* AddFileL( ConML_FileListPtr_t * aList )
-    {
-    ConML_FileListPtr_t itemL = new ( ELeave ) ConML_FileList_t();
-    CleanupStack::PushL( itemL );
-    itemL->data = new ( ELeave ) ConML_File_t();
-    GenericListAddL(aList, itemL);
-    CleanupStack::Pop(); // itemL
-    return itemL->data;
-    }
-
-// -----------------------------------------------------------------------------
-// AddApplicationL
-// -----------------------------------------------------------------------------
-CXMLElement* AddApplicationL( ConML_ApplicationListPtr_t * aList )
-    {   
-    ConML_ApplicationListPtr_t itemL = new ( ELeave ) ConML_ApplicationList_t();
-    CleanupStack::PushL( itemL );
-    itemL->data = new ( ELeave ) ConML_Application_t();
-    GenericListAddL(aList, itemL);
-    CleanupStack::Pop(); // itemL
-    return itemL->data;
-    }
-
-// -----------------------------------------------------------------------------
-// AddTaskL
-// -----------------------------------------------------------------------------
-CXMLElement* AddTaskL( ConML_TaskListPtr_t * aList )
-    {
-    ConML_TaskListPtr_t itemL = new ( ELeave ) ConML_TaskList_t();
-    CleanupStack::PushL( itemL );
-    itemL->data = new ( ELeave ) ConML_Task_t();
-    GenericListAddL(aList, itemL);
-    CleanupStack::Pop(); // itemL
-    return itemL->data;
-    }
-	
-// -----------------------------------------------------------------------------
-// AddParamL
-// -----------------------------------------------------------------------------
-CXMLElement* AddParamL( ConML_ParamListPtr_t * aList )
-    {
-    ConML_ParamListPtr_t itemL = new ( ELeave ) ConML_ParamList_t();
-    CleanupStack::PushL( itemL );
-    itemL->data = new ( ELeave ) ConML_Param_t();
-    GenericListAddL(aList, itemL);
-    CleanupStack::Pop(); // itemL
-    return itemL->data;
-    }
-	
-// -----------------------------------------------------------------------------
-// ConML_Drive_s
-// -----------------------------------------------------------------------------
-ConML_Drive_s::ConML_Drive_s()
-    {
-    }
-
-ConML_Drive_s::~ConML_Drive_s()
-    {
-    delete name;
-    }
-
-CXMLElement* ConML_Drive_s::BeginElementL( 
-    TUint8 aTag, const TXMLElementParams& /*aParams*/ )
-    {
-    switch ( aTag )
-        {
-        case EConMLName:
-            CHECK_NO_DUPLICATE ( name );
-            name = new ( ELeave ) pcdata_t();
-            return name;
-				
-        default:
-            LOGGER_WRITE_1( "ConML_Drive_s::BeginElement() : Unknown element  %02x", aTag );
-            User::Leave( KWBXMLParserErrorInvalidTag );
-        }
-    return KErrNone;
-    }
-
-// -----------------------------------------------------------------------------
-// ConML_DriveList_s
-// -----------------------------------------------------------------------------
-ConML_DriveList_s::ConML_DriveList_s()	
-    {
-    }
-
-ConML_DriveList_s::~ConML_DriveList_s()	
-    {
-    delete data;
-    delete next;
-    }
-
-// -----------------------------------------------------------------------------
-// ConML_Drives_s
-// -----------------------------------------------------------------------------
-ConML_Drives_s::ConML_Drives_s()
-    {
-    }
-	
-ConML_Drives_s::~ConML_Drives_s()
-    {
-    delete drive;
-    }
-	
-CXMLElement* ConML_Drives_s::BeginElementL( 
-    TUint8 aTag, const TXMLElementParams& /*aParams*/ )
-    {
-    switch ( aTag )
-        {
-        case EConMLDrive:
-            return AddDriveL ( &drive );
-	
-        default:
-            LOGGER_WRITE_1( "ConML_Drives_s::BeginElement()\
-             : Unknown element  %02x ", aTag );
-            User::Leave( KWBXMLParserErrorInvalidTag );
-        }
-    return KErrNone;
-    }
-	
-// -----------------------------------------------------------------------------
-// ConML_BUROptions_s
-// -----------------------------------------------------------------------------
-ConML_BUROptions_s::ConML_BUROptions_s()
-    {
-    }
-
-ConML_BUROptions_s::~ConML_BUROptions_s()
-    {
-    delete requiresReboot;
-    delete hasFiles;
-    delete supportsInc;
-    delete delayToPrepareData;
-    }
-
-CXMLElement* ConML_BUROptions_s::BeginElementL ( 
-        TUint8 aTag, const TXMLElementParams& /*aParams*/ )
-    {
-    switch ( aTag )
-        {
-        case EConMLRequiresReboot:
-            CHECK_NO_DUPLICATE ( requiresReboot );
-            requiresReboot = new ( ELeave ) pcdata_t();
-            return requiresReboot;
-		
-        case EConMLHasFiles:
-            CHECK_NO_DUPLICATE ( hasFiles );
-            hasFiles = new ( ELeave ) pcdata_t();
-            return hasFiles;
-			
-        case EConMLSupportsInc:
-            CHECK_NO_DUPLICATE ( supportsInc );
-            supportsInc = new ( ELeave ) pcdata_t();
-            return supportsInc;
-		
-        case EConMLDelayToPrepareData:
-            CHECK_NO_DUPLICATE ( delayToPrepareData );
-            delayToPrepareData = new ( ELeave ) pcdata_t();
-            return delayToPrepareData;
-				
-        default:
-            LOGGER_WRITE_1( "ConML_BUROptions_s::BeginElement()\
-             : Unknown element  %02x ", aTag );
-            User::Leave( KWBXMLParserErrorInvalidTag );
-        }
-    return KErrNone;
-    }
-
-// -----------------------------------------------------------------------------
-// ConML_PackageInfo_s
-// -----------------------------------------------------------------------------
-ConML_PackageInfo_s::ConML_PackageInfo_s()
-    {
-    }
-
-ConML_PackageInfo_s::~ConML_PackageInfo_s()
-    {
-    delete name;
-    }
-
-CXMLElement* ConML_PackageInfo_s::BeginElementL( 
-    TUint8 aTag, const TXMLElementParams& /*aParams*/ )	
-    {
-    switch ( aTag )
-        {
-        case EConMLName:
-            CHECK_NO_DUPLICATE ( name )
-            name = new ( ELeave ) pcdata_t();
-            return name;
-								
-        default:
-            LOGGER_WRITE_1( "ConML_PackageInfo_s::BeginElement()\
-             : Unknown element  %02x ", aTag );
-            User::Leave( KWBXMLParserErrorInvalidTag );
-        }
-    return KErrNone;
-    }
-
-
-// -----------------------------------------------------------------------------
-// ConML_SID_s
-// -----------------------------------------------------------------------------
-ConML_SID_s::ConML_SID_s()
-    {
-    }
-
-ConML_SID_s::~ConML_SID_s()
-    {
-    delete type;
-    delete uid;
-    delete drives;
-    delete packageInfo;
-    delete burOptions;
-    delete size;
-    delete transferDataType;
-    delete data;
-    delete moreData;
-    delete dataOwnerStatus;
-    }
-
-CXMLElement* ConML_SID_s::BeginElementL( 
-    TUint8 aTag, const TXMLElementParams& /*aParams*/ )	
-    {
-    switch ( aTag )
-        {
-        case EConMLType:
-            CHECK_NO_DUPLICATE ( type );
-            type = new ( ELeave ) pcdata_t();
-            return type;
-		
-        case EConMLUID:
-            CHECK_NO_DUPLICATE ( uid )
-            uid = new ( ELeave ) pcdata_t();
-            return uid;
-		
-        case EConMLDrives:
-            drives = new ( ELeave ) ConML_Drives_t();
-            return drives;
-		
-        case EConMLPackageInfo:
-            CHECK_NO_DUPLICATE ( packageInfo );
-            packageInfo = new ( ELeave ) ConML_PackageInfo_t();
-            return packageInfo;
-		
-        case EConMLBUROptions:
-            CHECK_NO_DUPLICATE ( burOptions )
-            burOptions = new ( ELeave )	ConML_BUROptions_t();
-            return burOptions;
-			
-        case EConMLSize:
-            CHECK_NO_DUPLICATE ( size );
-            size = new ( ELeave ) pcdata_t();
-            return size;
-		
-        case EConMLTransferDataType:
-            CHECK_NO_DUPLICATE ( transferDataType );
-            transferDataType = new ( ELeave ) pcdata_t();
-            return transferDataType;
-		
-        case EConMLData:
-            CHECK_NO_DUPLICATE ( data );
-            data = new ( ELeave ) pcdata_t();
-            return data;
-		
-        case EConMLMoreData:
-            CHECK_NO_DUPLICATE ( moreData );
-            moreData = new ( ELeave ) pcdata_t();
-            return moreData;
-		
-        case EConMLDataOwnerStatus:
-            CHECK_NO_DUPLICATE ( dataOwnerStatus );
-            dataOwnerStatus = new ( ELeave ) pcdata_t();
-            return dataOwnerStatus;
-		
-        default:
-            LOGGER_WRITE_1( "ConML_SID_s::BeginElement()\
-             : Unknown element  %02x ", aTag );
-            User::Leave( KWBXMLParserErrorInvalidTag );
-        }
-    return KErrNone;
-    }
-	
-// -----------------------------------------------------------------------------
-// ConML_SIDList_s
-// -----------------------------------------------------------------------------
-ConML_SIDList_s::ConML_SIDList_s()
-    {
-    }
-	
-ConML_SIDList_s::~ConML_SIDList_s()
-    {
-    delete data;
-    delete next;
-    }
-	
-// -----------------------------------------------------------------------------
-// ConML_DataOwners_s
-// -----------------------------------------------------------------------------
-ConML_DataOwners_s::ConML_DataOwners_s()
-    {
-    }
-
-ConML_DataOwners_s::~ConML_DataOwners_s()
-    {
-    delete sid;
-    }
-
-CXMLElement* ConML_DataOwners_s::BeginElementL(
-    TUint8 aTag, const TXMLElementParams& /*aParams*/ )	
-    {
-    switch ( aTag )
-        {
-        case EConMLSID:
-            return AddSIDL( &sid );
-				
-        default:
-            LOGGER_WRITE_1( "ConML_DataOwners_s::BeginElement()\
-             : Unknown element  %02x ", aTag);
-            User::Leave( KWBXMLParserErrorInvalidTag );
-        }
-    return KErrNone;
-    }
-
-// -----------------------------------------------------------------------------
-// ConML_Application_s
-// -----------------------------------------------------------------------------
-ConML_Application_s::ConML_Application_s()
-    {
-    }
-	
-ConML_Application_s::~ConML_Application_s()
-    {
-    delete name;
-    delete uid;
-    }
-
-CXMLElement* ConML_Application_s::BeginElementL( 
-    TUint8 aTag, const TXMLElementParams& /*aParams*/ )	
-    {
-    switch ( aTag )
-    	{
-    	case EConMLName:
-            CHECK_NO_DUPLICATE ( name );
-            name = new ( ELeave ) pcdata_t();
-            return name;
-		
-        case EConMLUID:
-            CHECK_NO_DUPLICATE ( uid );
-            uid = new ( ELeave ) pcdata_t();
-            return uid;
-		
-        default:
-            LOGGER_WRITE_1( "ConML_Application_s::BeginElement()\
-             : Unknown element  %02x ", aTag );
-            User::Leave( KWBXMLParserErrorInvalidTag );
-        }
-    return KErrNone;
-    }
-
-// -----------------------------------------------------------------------------
-// ConML_ApplicationList_s
-// -----------------------------------------------------------------------------
-ConML_ApplicationList_s::ConML_ApplicationList_s()
-    {
-    }
-
-ConML_ApplicationList_s::~ConML_ApplicationList_s()
-    {
-    delete data;
-    delete next;
-    }
-	
-// -----------------------------------------------------------------------------
-// ConML_Applications_s
-// -----------------------------------------------------------------------------
-ConML_Applications_s::ConML_Applications_s()	
-    {
-    }
-
-ConML_Applications_s::~ConML_Applications_s()	
-    {
-    delete application;
-    }
-	
-CXMLElement* ConML_Applications_s::BeginElementL(
-    TUint8 aTag, const TXMLElementParams& /*aParams*/ )	
-    {
-    switch ( aTag )
-        {
-        case EConMLApplication:
-            return AddApplicationL( &application );
-				
-        default:
-            LOGGER_WRITE_1( "ConML_DataOwners_s::BeginElement()\
-             : Unknown element  %02x ", aTag );
-            User::Leave( KWBXMLParserErrorInvalidTag );
-        }
-    return KErrNone;
-    }
-	
-// -----------------------------------------------------------------------------
-// ConML_SupportedMethod_s
-// -----------------------------------------------------------------------------
-ConML_SupportedMethods_s::ConML_SupportedMethods_s()
-    {
-    }
-
-ConML_SupportedMethods_s::~ConML_SupportedMethods_s()
-    {
-    delete install;
-    delete unInstall;
-    delete setInstParams;
-    delete listInstalledApps;
-    delete listDataOwners;
-    delete setBurMode;
-    delete getDataSize;
-    delete requestData;
-    delete supplyData;
-    delete reboot;
-    }
-
-CXMLElement* ConML_SupportedMethods_s::BeginElementL(
-    TUint8 aTag, const TXMLElementParams& /*aParams*/ )
-    {
-    switch ( aTag )
-        {
-        case EConMLInstall:
-            CHECK_NO_DUPLICATE ( install );
-            install = new ( ELeave ) pcdata_t();
-            return install;
-		
-        case EConMLUnInstall:
-            CHECK_NO_DUPLICATE ( unInstall );
-            unInstall = new ( ELeave ) pcdata_t();
-            return unInstall;
-	
-        case EConMLListInstalledApps:
-            CHECK_NO_DUPLICATE ( listInstalledApps );
-            listInstalledApps = new ( ELeave ) pcdata_t();
-            return listInstalledApps;
-		
-        case EConMLListDataOwners:
-            CHECK_NO_DUPLICATE ( listDataOwners );
-            listDataOwners = new ( ELeave ) pcdata_t();
-            return listDataOwners;
-		
-        case EConMLSetBURMode:
-            CHECK_NO_DUPLICATE ( setBurMode );
-            setBurMode = new ( ELeave ) pcdata_t();
-            return setBurMode;
-		
-        case EConMLGetDataSize:
-            CHECK_NO_DUPLICATE ( getDataSize );
-            getDataSize = new ( ELeave ) pcdata_t();
-            return getDataSize;
-		
-        case EConMLRequestData:
-            CHECK_NO_DUPLICATE ( requestData );
-            requestData = new ( ELeave ) pcdata_t();
-            return requestData;
-		
-        case EConMLSupplyData:
-            CHECK_NO_DUPLICATE (supplyData );
-            supplyData = new ( ELeave ) pcdata_t();
-            return supplyData;
-		
-        case EConMLReboot:
-            CHECK_NO_DUPLICATE ( reboot );
-            reboot = new ( ELeave ) pcdata_t();
-            return reboot;
-		
-        default:
-            LOGGER_WRITE_1( "ConML_SupportedMethods_s::\
-            BeginElement() : Unknown element  %02x ", aTag );
-            User::Leave( KWBXMLParserErrorInvalidTag );
-        }
-    return KErrNone;
-    }
-
-// -----------------------------------------------------------------------------
-// ConML_DeviceInfo_s
-// -----------------------------------------------------------------------------
-ConML_DeviceInfo_s::ConML_DeviceInfo_s()
-    {
-    }
-
-ConML_DeviceInfo_s::~ConML_DeviceInfo_s()
-    {
-    delete version;
-    delete supportedMethods;
-    delete maxObjectSize;
-    }
-
-CXMLElement* ConML_DeviceInfo_s::BeginElementL(
-    TUint8 aTag, const TXMLElementParams& /*aParams*/ )	
-    {
-    switch ( aTag )
-        {
-        case EConMLVersion:
-            CHECK_NO_DUPLICATE (version);
-            version = new ( ELeave ) pcdata_t();
-            return version;
-		
-        case EConMLSupportedMethods:
-            CHECK_NO_DUPLICATE ( supportedMethods);
-            supportedMethods = new ( ELeave ) ConML_SupportedMethods_t();
-            return supportedMethods;
-		
-        case EConMLMaxObjectSize:
-            CHECK_NO_DUPLICATE ( maxObjectSize );
-            maxObjectSize = new ( ELeave ) pcdata_t();
-            return maxObjectSize;
-		
-        default:
-            LOGGER_WRITE_1( "ConML_DeviceInfo_s::BeginElement()\
-             : Unknown element %d", aTag );
-            User::Leave( KWBXMLParserErrorInvalidTag );
-        }
-    return KErrNone;
-    }
-
-// -----------------------------------------------------------------------------
-// ConML_DeviceInfo_s
-// -----------------------------------------------------------------------------
-ConML_File_s::ConML_File_s()	
-    {
-    }
-
-ConML_File_s::~ConML_File_s()	
-    {
-    delete name;
-    delete modified;
-    delete size;
-    delete userPerm;
-    }
-
-CXMLElement* ConML_File_s::BeginElementL( 
-    TUint8 aTag, const TXMLElementParams& /*aParams*/ )	
-    {
-    switch ( aTag )
-        {
-        case EConMLName:
-            CHECK_NO_DUPLICATE ( name );
-            name = new ( ELeave ) pcdata_t();
-            return name;
-		
-        case EConMLModified:
-            CHECK_NO_DUPLICATE ( modified );
-            modified = new ( ELeave ) pcdata_t();
-            return modified;
-		
-        case EConMLSize:
-            CHECK_NO_DUPLICATE ( size );
-            size = new ( ELeave ) pcdata_t();
-            return size;
-		
-        case EConMLUserPerm:
-            CHECK_NO_DUPLICATE ( userPerm );
-            userPerm = new ( ELeave ) pcdata_t();
-            return userPerm;
-		
-        default:
-            LOGGER_WRITE_1( "ConML_File_s::BeginElement()\
-             : Unknown element %d", aTag );
-            User::Leave( KWBXMLParserErrorInvalidTag );
-        }
-    return KErrNone;
-    }
-
-// -----------------------------------------------------------------------------
-// ConML_FileList_s
-// -----------------------------------------------------------------------------
-ConML_FileList_s::ConML_FileList_s()
-    {
-    }
-	
-ConML_FileList_s::~ConML_FileList_s()
-    {
-    delete data;
-    delete next;
-    }	
-
-// -----------------------------------------------------------------------------
-// ConML_Files_s
-// -----------------------------------------------------------------------------
-ConML_Files_s::ConML_Files_s()
-    {
-    }
-
-ConML_Files_s::~ConML_Files_s()
-    {
-    delete file;
-    }
-
-CXMLElement* ConML_Files_s::BeginElementL( 
-    TUint8 aTag, const TXMLElementParams& /*aParams*/ )	
-    {
-    switch ( aTag )
-        {
-        case EConMLFile:
-            return AddFileL( &file );
-		
-        default:
-            LOGGER_WRITE_1( "ConML_File_s::BeginElement()\
-             : Unknown element  %02x ", aTag );
-            User::Leave( KWBXMLParserErrorInvalidTag );
-        }
-    return KErrNone;
-    }
-
-// -----------------------------------------------------------------------------
-// ConML_Progress_s
-// -----------------------------------------------------------------------------
-ConML_Progress_s::ConML_Progress_s()
-    {
-    }
-	
-// -----------------------------------------------------------------------------
-// ~ConML_Progress_s
-// -----------------------------------------------------------------------------
-ConML_Progress_s::~ConML_Progress_s()
-    {
-    delete value;
-    }
-	
-CXMLElement* ConML_Progress_s::BeginElementL( 
-    TUint8 aTag, const TXMLElementParams& /*aParams*/ )	
-    {
-    switch ( aTag )
-        {
-        case EConMLValue:
-            CHECK_NO_DUPLICATE ( value );
-            value = new ( ELeave ) pcdata_t();
-            return value;
-		
-        default:
-            LOGGER_WRITE_1( "ConML_Progress_s::BeginElement()\
-             : Unknown element  %02x ", aTag );
-            User::Leave( KWBXMLParserErrorInvalidTag );
-        }
-    return KErrNone;
-    }
-	
-// -----------------------------------------------------------------------------
-// ConML_Results_s
-// -----------------------------------------------------------------------------
-ConML_Results_s::ConML_Results_s()
-    {
-    }
-
-ConML_Results_s::~ConML_Results_s()
-    {
-    delete complete;
-    delete progress;
-    delete applications;
-    delete dataOwners;
-    delete filename;
-    delete moreData;
-    delete data;
-    delete deviceInfo;
-    delete files;
-    }
-
-CXMLElement* ConML_Results_s::BeginElementL( 
-    TUint8 aTag, const TXMLElementParams& /*aParams*/ )	
-    {
-    switch ( aTag )
-    {
-        case EConMLComplete:
-            CHECK_NO_DUPLICATE ( complete );
-            complete = new ( ELeave ) pcdata_t();
-            return complete;
-		
-        case EConMLProgress:
-            CHECK_NO_DUPLICATE ( progress );
-            progress = new ( ELeave ) ConML_Progress_t();
-            return progress;
-		
-        case EConMLApplications:
-            CHECK_NO_DUPLICATE ( applications );
-            applications = new ( ELeave ) ConML_Applications_t();
-            return applications;
-		
-        case EConMLDataOwners:
-            CHECK_NO_DUPLICATE ( dataOwners );
-            dataOwners = new ( ELeave ) ConML_DataOwners_t();
-            return dataOwners;
-		
-        case EConMLMoreData:
-            CHECK_NO_DUPLICATE ( moreData );
-            moreData = new ( ELeave ) pcdata_t();
-            return moreData;
-		
-        case EConMLData:
-            CHECK_NO_DUPLICATE ( data );
-            data = new ( ELeave ) pcdata_t();
-            return data;
-		
-        case EConMLDeviceInfo:
-            CHECK_NO_DUPLICATE ( deviceInfo )
-            deviceInfo = new ( ELeave ) ConML_DeviceInfo_t();
-            return deviceInfo;
-		
-        case EConMLFiles:
-            CHECK_NO_DUPLICATE ( files )
-            files = new ( ELeave ) ConML_Files_t();
-            return files;
-		
-        default:
-            LOGGER_WRITE_1( "ConML_Results_s::BeginElement()\
-             : Unknown element  %02x ", aTag);
-            User::Leave( KWBXMLParserErrorInvalidTag );
-        }
-    return KErrNone;
-    }
-
-// -----------------------------------------------------------------------------
-// ConML_Param_s
-// -----------------------------------------------------------------------------
-ConML_Param_s::ConML_Param_s()
-    {
-    }
-	
-ConML_Param_s::~ConML_Param_s()
-    {
-    delete name;
-    delete value;
-    }
-	
-CXMLElement* ConML_Param_s::BeginElementL( 
-    TUint8 aTag, const TXMLElementParams& /*aParams*/ )	
-    {
-    switch ( aTag )
-        {
-        case EConMLName:
-            CHECK_NO_DUPLICATE ( name );
-            name = new ( ELeave ) pcdata_t();
-            return name;
-		
-        case EConMLValue:
-            CHECK_NO_DUPLICATE ( value );
-            value = new ( ELeave ) pcdata_t();
-            return value;
-		
-        default:
-            LOGGER_WRITE_1( "ConML_Param_s::BeginElement()\
-             : Unknown element  %02x ", aTag );
-            User::Leave( KWBXMLParserErrorInvalidTag );
-        }
-    return KErrNone;
-    }
-
-// -----------------------------------------------------------------------------
-// ConML_ParamList_s
-// -----------------------------------------------------------------------------
-ConML_ParamList_s::ConML_ParamList_s()
-    {
-    }
-
-ConML_ParamList_s::~ConML_ParamList_s()
-    {
-    delete data;
-    delete next;
-    }
-	
-// -----------------------------------------------------------------------------
-// ConML_InstParams_s
-// -----------------------------------------------------------------------------
-ConML_InstParams_s::ConML_InstParams_s()
-    {
-    }
-
-ConML_InstParams_s::~ConML_InstParams_s()
-    {
-    delete param;
-    }
-	
-CXMLElement* ConML_InstParams_s::BeginElementL( 
-    TUint8 aTag, const TXMLElementParams& /*aParams*/ )	
-    {
-    switch ( aTag )
-        {
-        case EConMLParam:
-            return AddParamL( &param );
-			
-        default:
-            LOGGER_WRITE_1( "ConML_InstParams_s::BeginElement()\
-             : Unknown element  %02x ", aTag);
-            User::Leave( KWBXMLParserErrorInvalidTag );
-        }
-    return KErrNone;
-    }
-
-// -----------------------------------------------------------------------------
-// ConML_UnInstall_s
-// -----------------------------------------------------------------------------
-ConML_UnInstall_s::ConML_UnInstall_s()
-    {
-    }
-
-ConML_UnInstall_s::~ConML_UnInstall_s()
-    {
-    delete applications;
-    delete instParams;
-    delete results;
-    }
-
-CXMLElement* ConML_UnInstall_s::BeginElementL( 
-    TUint8 aTag, const TXMLElementParams& /*aParams*/ )	
-    {
-    switch ( aTag )
-        {
-        case EConMLApplications:
-            CHECK_NO_DUPLICATE ( applications );
-            applications = new ( ELeave ) ConML_Applications_t();
-            return applications;
-		
-        case EConMLInstParams:
-            CHECK_NO_DUPLICATE ( instParams );
-            instParams = new ( ELeave ) ConML_InstParams_t();
-            return instParams;
-				
-        case EConMLResults:
-            CHECK_NO_DUPLICATE ( results );
-            results = new ( ELeave ) ConML_Results_t();
-            return results;
-		
-        default:
-            LOGGER_WRITE_1( "ConML_UnInstall_s::BeginElement()\
-             : Unknown element  %02x ", aTag);
-            User::Leave( KWBXMLParserErrorInvalidTag );
-        }
-    return KErrNone;
-    }
-
-
-// -----------------------------------------------------------------------------
-// ConML_ListDataOwners_s
-// -----------------------------------------------------------------------------
-ConML_ListDataOwners_s::ConML_ListDataOwners_s()
-    {
-    }
-
-ConML_ListDataOwners_s::~ConML_ListDataOwners_s()
-    {
-    delete results;
-    }
-
-CXMLElement* ConML_ListDataOwners_s::BeginElementL(
-    TUint8 aTag, const TXMLElementParams& /*aParams*/ )	
-    {
-    switch ( aTag )
-        {
-        case EConMLResults:
-            CHECK_NO_DUPLICATE ( results );
-            results = new ( ELeave ) ConML_Results_t();
-            return results;
-		
-        default:
-            LOGGER_WRITE_1( "ConML_ListDataOwners_s::BeginElement()\
-             : Unknown element  %02x ", aTag );
-            User::Leave( KWBXMLParserErrorInvalidTag );
-        }
-    return KErrNone;
-    }
-
-// -----------------------------------------------------------------------------
-// ConML_Install_s
-// -----------------------------------------------------------------------------
-ConML_Install_s::ConML_Install_s()
-    {
-    }
-
-ConML_Install_s::~ConML_Install_s()
-    {
-    delete name;
-    delete instParams;
-    delete results;
-    }
-
-CXMLElement* ConML_Install_s::BeginElementL( 
-    TUint8 aTag, const TXMLElementParams& /*aParams*/ )	
-    {
-    switch ( aTag )
-        {
-        case EConMLName:
-            CHECK_NO_DUPLICATE ( name );
-            name = new ( ELeave ) pcdata_t();
-            return name;
-			
-        case EConMLInstParams:
-            CHECK_NO_DUPLICATE ( instParams );
-            instParams = new ( ELeave ) ConML_InstParams_t();
-            return instParams;
-		
-        case EConMLResults:
-            CHECK_NO_DUPLICATE ( results );
-            results = new ( ELeave ) ConML_Results_t();
-            return results;
-		
-        default:
-            LOGGER_WRITE_1( "ConML_Install_s::BeginElement()\
-             : Unknown element  %02x ", aTag );
-            User::Leave( KWBXMLParserErrorInvalidTag );
-        }
-    return KErrNone;
-    }
-
-// -----------------------------------------------------------------------------
-// ConML_ListInstalledApps
-// -----------------------------------------------------------------------------
-ConML_ListInstalledApps_s::ConML_ListInstalledApps_s()
-    {
-    }
-
-ConML_ListInstalledApps_s::~ConML_ListInstalledApps_s()
-    {
-    delete drives;
-    delete all;
-    delete results;
-    }
-
-CXMLElement* ConML_ListInstalledApps_s::BeginElementL(
-    TUint8 aTag, const TXMLElementParams& /*aParams*/ )	
-    {
-    switch ( aTag )
-        {
-        case EConMLDrives:
-            CHECK_NO_DUPLICATE ( drives );
-            drives = new ( ELeave ) ConML_Drives_t();
-            return drives;
-		
-        case EConMLAll:
-            CHECK_NO_DUPLICATE ( all );
-            all = new ( ELeave ) pcdata_t();
-            return all;
-		
-        case EConMLResults:
-            CHECK_NO_DUPLICATE ( results );
-            results = new ( ELeave ) ConML_Results_t();
-            return results;
-		
-        default:
-            LOGGER_WRITE_1( "ConML_ListInstalledApps_s::\
-            BeginElement() : Unknown element  %02x ", aTag );
-            User::Leave( KWBXMLParserErrorInvalidTag );
-        }
-    return KErrNone;
-    }
-	
-// -----------------------------------------------------------------------------
-// ConML_SetBURMode_s
-// -----------------------------------------------------------------------------
-ConML_SetBURMode_s::ConML_SetBURMode_s()
-    {
-    }
-
-ConML_SetBURMode_s::~ConML_SetBURMode_s()
-    {
-    delete drives;
-    delete partialType;
-    delete incType;
-    delete results;
-    }
-
-CXMLElement* ConML_SetBURMode_s::BeginElementL(
-    TUint8 aTag, const TXMLElementParams& /*aParams*/ )	
-    {
-    switch ( aTag )
-        {
-        case EConMLDrives:
-            drives = new ( ELeave ) ConML_Drives_t();
-            return drives;
-		
-        case EConMLPartialType:
-            CHECK_NO_DUPLICATE ( partialType );
-            partialType = new ( ELeave ) pcdata_t();
-            return partialType;
-		
-        case EConMLIncType:
-            CHECK_NO_DUPLICATE ( incType );
-            incType = new ( ELeave ) pcdata_t();
-            return incType;
-		
-        case EConMLResults:
-            CHECK_NO_DUPLICATE ( results );
-            results = new ( ELeave ) ConML_Results_t();
-            return results;
-		
-        default:
-            LOGGER_WRITE_1( "ConML_SetBURMode_s::BeginElement()\
-             : Unknown element  %02x ", aTag );
-            User::Leave( KWBXMLParserErrorInvalidTag );
-            }
-    return KErrNone;
-    }
-
-// -----------------------------------------------------------------------------
-// ConML_GetDataSize_s
-// -----------------------------------------------------------------------------
-ConML_GetDataSize_s::ConML_GetDataSize_s()
-    {
-    }
-
-ConML_GetDataSize_s::~ConML_GetDataSize_s()
-    {
-    delete dataOwners;
-    delete results;
-    }
-
-CXMLElement* ConML_GetDataSize_s::BeginElementL(
-    TUint8 aTag, const TXMLElementParams& /*aParams*/ )	
-    {
-    switch ( aTag )
-        {
-        case EConMLDataOwners:
-            CHECK_NO_DUPLICATE ( dataOwners );
-            dataOwners = new ( ELeave ) ConML_DataOwners_t();
-            return dataOwners;
-		
-        case EConMLResults:
-            CHECK_NO_DUPLICATE ( results );
-            results = new ( ELeave ) ConML_Results_t();
-            return results;
-	
-        default:
-            LOGGER_WRITE_1( "ConML_GetDataSize_s::BeginElement()\
-             : Unknown element  %02x ", aTag);
-            User::Leave( KWBXMLParserErrorInvalidTag );
-        }
-    return KErrNone;
-    }	
-	
-// -----------------------------------------------------------------------------
-// ConML_RequestData_s
-// -----------------------------------------------------------------------------
-ConML_RequestData_s::ConML_RequestData_s()
-    {
-    }
-
-ConML_RequestData_s::~ConML_RequestData_s()
-    {
-    delete sid;
-    delete results;
-    }
-
-CXMLElement* ConML_RequestData_s::BeginElementL(
-    TUint8 aTag, const TXMLElementParams& /*aParams*/ )	
-    {
-    switch ( aTag )
-        {
-        case EConMLSID:
-            return AddSIDL( &sid );
-		
-        case EConMLResults:
-            CHECK_NO_DUPLICATE ( results );
-            results = new ( ELeave ) ConML_Results_t();
-            return results;
-		
-        default:
-            LOGGER_WRITE_1( "ConML_RequestData_s::BeginElement()\
-             : Unknown element  %02x ", aTag );
-            User::Leave( KWBXMLParserErrorInvalidTag );
-        }
-    return KErrNone;
-    }
-	
-// -----------------------------------------------------------------------------
-// ConML_UpdateDeviceInfo_s
-// -----------------------------------------------------------------------------
-ConML_UpdateDeviceInfo_s::ConML_UpdateDeviceInfo_s()
-    {
-    }
-
-ConML_UpdateDeviceInfo_s::~ConML_UpdateDeviceInfo_s()
-    {
-    delete deviceInfo;
-    delete results;
-    }
-
-CXMLElement* ConML_UpdateDeviceInfo_s::BeginElementL(
-    TUint8 aTag, const TXMLElementParams& /*aParams*/ )	
-    {
-    switch ( aTag )
-        {
-        case EConMLDeviceInfo:
-            CHECK_NO_DUPLICATE ( deviceInfo )
-            deviceInfo = new ( ELeave ) ConML_DeviceInfo_t();
-            return deviceInfo;
-		
-        case EConMLResults:
-            CHECK_NO_DUPLICATE ( results )
-            results = new ( ELeave ) ConML_Results_t();
-            return results;
-		
-        default:
-            LOGGER_WRITE_1( "ConML_UpdateDeviceInfo_s::\
-            BeginElement() : Unknown element  %02x ", aTag );
-            User::Leave( KWBXMLParserErrorInvalidTag );
-        }
-    return KErrNone;
-    }
-
-// -----------------------------------------------------------------------------
-// ConML_ListPublicFiles_s
-// -----------------------------------------------------------------------------
-ConML_ListPublicFiles_s::ConML_ListPublicFiles_s()
-    {
-    }
-
-ConML_ListPublicFiles_s::~ConML_ListPublicFiles_s()
-    {
-    delete results;
-    delete sid;
-    }
-
-CXMLElement* ConML_ListPublicFiles_s::BeginElementL(
-    TUint8 aTag, const TXMLElementParams& /*aParams*/ )	
-    {
-    switch ( aTag )
-        {
-        case EConMLResults:
-            CHECK_NO_DUPLICATE ( results );
-            results = new ( ELeave ) ConML_Results_t();
-            return results;
-		
-        case EConMLSID:
-            return AddSIDL ( &sid );
-	
-        default:
-            LOGGER_WRITE_1( "ConML_ListPublicFiles_s::\
-            BeginElement() : Unknown element  %02x ", aTag );
-            User::Leave( KWBXMLParserErrorInvalidTag );
-        }
-    return KErrNone;
-    }
-	
-// -----------------------------------------------------------------------------
-// ConML_Task_s
-// -----------------------------------------------------------------------------
-ConML_GetDataOwnerStatus_s::ConML_GetDataOwnerStatus_s()
-    {
-    }
-
-ConML_GetDataOwnerStatus_s::~ConML_GetDataOwnerStatus_s()
-    {
-    delete dataOwners;
-    delete results;
-    }
-    
-CXMLElement* ConML_GetDataOwnerStatus_s::BeginElementL(
-    TUint8 aTag, const TXMLElementParams& /*aParams*/ )
-    {   
-    switch ( aTag )
-        {
-        case EConMLResults:
-            CHECK_NO_DUPLICATE ( results );
-            results = new ( ELeave ) ConML_Results_t();
-            return results;
-		
-        case EConMLDataOwners:
-            CHECK_NO_DUPLICATE ( dataOwners );
-            dataOwners = new ( ELeave ) ConML_DataOwners_t();
-            return dataOwners;
-
-        default:
-            LOGGER_WRITE_1( "ConML_GetDataOwnerStatus_s::\
-            BeginElement() : Unknown element  %02x ", aTag );
-            User::Leave( KWBXMLParserErrorInvalidTag );
-        }
-    return KErrNone;
-    }
-
-// -----------------------------------------------------------------------------
-// ConML_GetMetadata_s
-// -----------------------------------------------------------------------------
-ConML_GetMetadata_s::ConML_GetMetadata_s()
-    {
-    }
-
-ConML_GetMetadata_s::~ConML_GetMetadata_s()
-    {
-    delete filename;
-    delete results;
-    }
-    
-CXMLElement* ConML_GetMetadata_s::BeginElementL(
-    TUint8 aTag, const TXMLElementParams& /*aParams*/ )
-    {   
-    switch ( aTag )
-        {
-        case EConMLResults:
-            CHECK_NO_DUPLICATE ( results );
-            results = new ( ELeave ) ConML_Results_t();
-            return results;
-		
-        case EConMLFilename:
-            CHECK_NO_DUPLICATE ( filename );
-            filename = new ( ELeave ) pcdata_t();
-            return filename;
-
-        default:
-            LOGGER_WRITE_1( "ConML_GetMetadata_s::\
-            BeginElement() : Unknown element  %02x ", aTag );
-            User::Leave( KWBXMLParserErrorInvalidTag );
-        }
-    return KErrNone;
-    }
-
-	
-// -----------------------------------------------------------------------------
-// ConML_Reboot_s
-// -----------------------------------------------------------------------------
-ConML_Reboot_s::ConML_Reboot_s()
-    {
-    }
-
-ConML_Reboot_s::~ConML_Reboot_s()
-    {
-    delete results;
-    }
-
-CXMLElement* ConML_Reboot_s::BeginElementL( 
-    TUint8 aTag, const TXMLElementParams& /*aParams*/ )
-    {
-    switch ( aTag )
-        {
-        case EConMLResults:
-            CHECK_NO_DUPLICATE ( results );
-            results = new ( ELeave ) ConML_Results_t();
-            return results;
-		
-        default:
-            LOGGER_WRITE_1( "ConML_Reboot_s::BeginElementL()\
-             : Unknown element %d ", aTag );
-            User::Leave ( KWBXMLParserErrorInvalidTag );
-        }
-    return KErrNone;
-    }
-	
-// -----------------------------------------------------------------------------
-// ConML_Task_s
-// -----------------------------------------------------------------------------
-ConML_Task_s::ConML_Task_s()
-    {
-    }
-
-ConML_Task_s::~ConML_Task_s()
-    {
-    delete id;
-    delete install;
-    delete unInstall;
-    delete listInstalledApps;
-    delete listDataOwners;
-    delete setBurMode;
-    delete getDataSize;
-    delete requestData;
-    delete updateDeviceInfo;
-    delete listPublicFiles;
-    delete getDataOwnerStatus;
-    delete supplyData;
-    delete reboot;
-    delete getMetadata;
-    }
-
-CXMLElement* ConML_Task_s::BeginElementL( 
-    TUint8 aTag, const TXMLElementParams& /*aParams*/ )	
-    {
-    switch ( aTag )
-        {
-        case EConMLID:
-            CHECK_NO_DUPLICATE ( id )
-            id = new ( ELeave ) pcdata_t();
-            return id;
-		
-        case EConMLInstall:
-            CHECK_NO_DUPLICATE ( install );
-            install = new ( ELeave ) ConML_Install_t();
-            return install;
-		
-        case EConMLUnInstall:
-            CHECK_NO_DUPLICATE ( unInstall );
-            unInstall = new ( ELeave ) ConML_UnInstall_t();
-            return unInstall;
-		
-        case EConMLListInstalledApps:
-            CHECK_NO_DUPLICATE ( listInstalledApps );
-            listInstalledApps = new ( ELeave ) ConML_ListInstalledApps_t();
-            return listInstalledApps;
-		
-        case EConMLListDataOwners:
-            CHECK_NO_DUPLICATE ( listDataOwners );
-            listDataOwners = new ( ELeave ) ConML_ListDataOwners_t();
-            return listDataOwners;
-		
-        case EConMLSetBURMode:
-            CHECK_NO_DUPLICATE ( setBurMode );
-            setBurMode = new ( ELeave ) ConML_SetBURMode_t();
-            return setBurMode;
-		
-        case EConMLGetDataSize:
-            CHECK_NO_DUPLICATE ( getDataSize );
-            getDataSize = new ( ELeave ) ConML_GetDataSize_t();
-            return getDataSize;
-		
-        case EConMLRequestData:
-            CHECK_NO_DUPLICATE ( requestData )
-            requestData = new ( ELeave ) ConML_RequestData_t();
-            return requestData;
-		
-        case EConMLUpdateDeviceInfo:
-            CHECK_NO_DUPLICATE ( updateDeviceInfo );
-            updateDeviceInfo = new ( ELeave ) ConML_UpdateDeviceInfo_t();
-            return updateDeviceInfo;
-		
-        case EConMLListPublicFiles:
-            CHECK_NO_DUPLICATE ( listPublicFiles );
-            listPublicFiles = new ( ELeave ) ConML_ListPublicFiles_t();
-            return listPublicFiles;
-		
-        case EConMLGetDataOwnerStatus:
-            CHECK_NO_DUPLICATE ( getDataOwnerStatus );
-            getDataOwnerStatus = new ( ELeave ) ConML_GetDataOwnerStatus_t();
-            return getDataOwnerStatus;
-		
-        case EConMLSupplyData:
-            CHECK_NO_DUPLICATE ( supplyData );
-            supplyData = new ( ELeave ) ConML_SupplyData_t();
-            return supplyData;
-		
-        case EConMLReboot:
-            CHECK_NO_DUPLICATE ( reboot );
-            reboot = new ( ELeave ) ConML_Reboot_t();
-            return reboot;
-        case EConMLGetMetadata:
-            CHECK_NO_DUPLICATE ( getMetadata );
-            getMetadata = new ( ELeave ) ConML_GetMetadata_t();
-            return getMetadata;
-		
-        default:
-            LOGGER_WRITE_1( "ConML_Task_s::BeginElement()\
-             : Unknown element  %02x ", aTag );
-            User::Leave( KWBXMLParserErrorInvalidTag );
-        }
-    return KErrNone;
-    }
-
-// -----------------------------------------------------------------------------
-// ConML_TaskList_s
-// -----------------------------------------------------------------------------
-ConML_TaskList_s::ConML_TaskList_s()
-    {
-    }
-	
-ConML_TaskList_s::~ConML_TaskList_s()
-    {
-    delete data;
-    delete next;
-    }	
-
-// -----------------------------------------------------------------------------
-// ConML_Status_s
-// -----------------------------------------------------------------------------
-ConML_Status_s::ConML_Status_s()
-    {
-    }
-	
-ConML_Status_s::~ConML_Status_s()
-    {
-    delete task;
-    }
-
-CXMLElement* ConML_Status_s::BeginElementL( 
-    TUint8 aTag, const TXMLElementParams& /*aParams*/ )	
-    {
-    switch ( aTag )
-        {
-        case EConMLTask:
-            return AddTaskL( &task );
-				
-        default:
-            LOGGER_WRITE_1( "ConML_Status_s::BeginElement()\
-             : Unknown element  %02x ", aTag );
-            User::Leave( KWBXMLParserErrorInvalidTag );
-        }
-    return KErrNone;
-    }
-
-// -----------------------------------------------------------------------------
-// ConML_Cancel_s
-// -----------------------------------------------------------------------------
-ConML_Cancel_s::ConML_Cancel_s()
-    {
-    }
-
-ConML_Cancel_s::~ConML_Cancel_s()
-    {
-    delete id;
-    delete all;
-    }
-
-CXMLElement* ConML_Cancel_s::BeginElementL( 
-    TUint8 aTag, const TXMLElementParams& /*aParams*/ )	
-    {
-    switch ( aTag )
-        {
-        case EConMLID:
-            CHECK_NO_DUPLICATE ( id );
-            id = new ( ELeave ) pcdata_t();
-            return id;
-		
-        case EConMLAll:
-            CHECK_NO_DUPLICATE ( all );
-            all = new ( ELeave ) pcdata_t();
-            return all;
-		
-        default:
-            LOGGER_WRITE_1( "ConML_Cancel_s::BeginElement()\
-             : Unknown element  %02x ", aTag );
-            User::Leave( KWBXMLParserErrorInvalidTag );
-        }
-    return KErrNone;
-    }
-
-// -----------------------------------------------------------------------------
-// ConML_GetStatus_s
-// -----------------------------------------------------------------------------
-ConML_GetStatus_s::ConML_GetStatus_s()
-    {
-    }
-
-ConML_GetStatus_s::~ConML_GetStatus_s()
-    {
-    delete id;
-    delete all;
-    }
-
-CXMLElement* ConML_GetStatus_s::BeginElementL( 
-    TUint8 aTag, const TXMLElementParams& /*aParams*/ )	
-    {
-    switch ( aTag )
-        {
-        case EConMLID:
-        CHECK_NO_DUPLICATE ( id );
-        id = new ( ELeave ) pcdata_t();
-        return id;
-		
-        case EConMLAll:
-            CHECK_NO_DUPLICATE ( all );
-            all = new ( ELeave ) pcdata_t();
-            return all;
-		
-        default:
-            LOGGER_WRITE_1( "ConML_GetStatus_s::BeginElement()\
-             : Unknown element  %02x ", aTag );
-            User::Leave( KWBXMLParserErrorInvalidTag );
-        }
-    return KErrNone;
-    }
-
-// -----------------------------------------------------------------------------
-// ConML_SupplyData_s
-// -----------------------------------------------------------------------------
-ConML_SupplyData_s::ConML_SupplyData_s()
-    {
-    }
-
-ConML_SupplyData_s::~ConML_SupplyData_s()
-    {
-    delete sid;
-    delete results;
-    }
-
-CXMLElement* ConML_SupplyData_s::BeginElementL( 
-    TUint8 aTag, const TXMLElementParams& /*aParams*/ )	
-    {
-    switch ( aTag )
-        {
-        case EConMLSID:
-            return AddSIDL ( &sid );
-		
-        case EConMLResults:
-            results = new ( ELeave ) ConML_Results_t();
-            return results;
-		
-        default:
-            LOGGER_WRITE_1( "ConML_SupplyData_s::BeginElement() :\
-             Unknown element  %02x ", aTag );
-            User::Leave( KWBXMLParserErrorInvalidTag );
-        }
-    return KErrNone;
-    }
-
-// -----------------------------------------------------------------------------
-// ConML_Execute_
-// -----------------------------------------------------------------------------
-ConML_Execute_s::ConML_Execute_s()
-    {
-    }
-
-ConML_Execute_s::~ConML_Execute_s()
-    {
-    delete id;
-    delete install;
-    delete unInstall;
-    delete listInstalledApps;
-    delete listDataOwners;
-    delete setBurMode;
-    delete getDataSize;
-    delete requestData;
-    delete updateDeviceInfo;
-    delete listPublicFiles;
-    delete supplyData;
-    delete reboot;
-    delete getDataOwnerStatus;
-    delete getMetadata;
-    }
-
-CXMLElement* ConML_Execute_s::BeginElementL( 
-    TUint8 aTag, const TXMLElementParams& /*aParams*/ )	
-    {
-    
-    switch ( aTag )
-        {
-        case EConMLID:
-            CHECK_NO_DUPLICATE ( id );
-            id = new ( ELeave ) pcdata_t();
-            return id;
-		
-        case EConMLInstall:
-            CHECK_NO_DUPLICATE ( install );
-            install = new ( ELeave ) ConML_Install_t();
-            return install;
-
-        case EConMLUpdateDeviceInfo:
-            CHECK_NO_DUPLICATE (updateDeviceInfo);
-            updateDeviceInfo = new ( ELeave ) ConML_UpdateDeviceInfo_t();
-            return updateDeviceInfo;
-		
-        case EConMLUnInstall:
-            CHECK_NO_DUPLICATE ( unInstall );
-            unInstall = new ( ELeave ) ConML_UnInstall_t();
-            return unInstall;
-			
-        case EConMLListInstalledApps:
-            CHECK_NO_DUPLICATE ( listInstalledApps );
-            listInstalledApps = new ( ELeave ) ConML_ListInstalledApps_t();
-            return listInstalledApps;
-		
-        case EConMLListDataOwners:
-            CHECK_NO_DUPLICATE ( listDataOwners );
-            listDataOwners = new ( ELeave ) ConML_ListDataOwners_t();
-            return listDataOwners;
-		
-        case EConMLSetBURMode:
-            CHECK_NO_DUPLICATE ( setBurMode );
-            setBurMode = new ( ELeave ) ConML_SetBURMode_t();
-            return setBurMode;
-		
-        case EConMLGetDataSize:
-            CHECK_NO_DUPLICATE ( getDataSize );
-            getDataSize = new ( ELeave ) ConML_GetDataSize_t();
-            return getDataSize;
-		
-        case EConMLRequestData:
-            CHECK_NO_DUPLICATE ( requestData );
-            requestData = new ( ELeave ) ConML_RequestData_t();
-            return requestData;
-		
-        case EConMLListPublicFiles:
-            CHECK_NO_DUPLICATE ( listPublicFiles );
-            listPublicFiles = new ( ELeave ) ConML_ListPublicFiles_t();
-            return listPublicFiles;
-		
-        case EConMLSupplyData:
-            CHECK_NO_DUPLICATE ( supplyData );
-            supplyData = new ( ELeave ) ConML_SupplyData_t();
-            return supplyData;
-		
-        case EConMLReboot:
-            CHECK_NO_DUPLICATE ( reboot );
-            reboot = new ( ELeave ) pcdata_t();
-            return reboot;
-		
-        case EConMLGetDataOwnerStatus:
-            CHECK_NO_DUPLICATE ( getDataOwnerStatus );
-            getDataOwnerStatus = new ( ELeave ) ConML_GetDataOwnerStatus_t();
-            return getDataOwnerStatus;
-        
-        case EConMLGetMetadata:
-            CHECK_NO_DUPLICATE ( getMetadata );
-            getMetadata = new ( ELeave ) ConML_GetMetadata_t();
-            return getMetadata;
-		
-        default:
-            LOGGER_WRITE_1( "ConML_Execute_s::BeginElement()\
-             : Unknown element  %02x ", aTag );
-            User::Leave( KWBXMLParserErrorInvalidTag );
-        }
-    return KErrNone;
-    }
-	
-// -----------------------------------------------------------------------------
-// ConML_ConML_s
-// -----------------------------------------------------------------------------
-ConML_ConML_s::ConML_ConML_s()
-    {
-    }
-
-ConML_ConML_s::~ConML_ConML_s()
-    {
-    delete execute;
-    delete getStatus;
-    delete cancel;
-    delete status;
-    }
-
-CXMLElement* ConML_ConML_s::BeginElementL( 
-    TUint8 aTag, const TXMLElementParams& /*aParams*/ )
-    {
-    switch( aTag )
-        {
-        case EConMLExecute:
-            CHECK_NO_DUPLICATE( execute );
-            execute = new (ELeave) ConML_Execute_t();
-            return execute;
-		
-        case EConMLGetStatus:
-            CHECK_NO_DUPLICATE ( getStatus );
-            getStatus = new ( ELeave) ConML_GetStatus_t();
-            return getStatus;
-		
-        case EConMLCancel:
-            CHECK_NO_DUPLICATE ( cancel );
-            cancel = new ( ELeave ) ConML_Cancel_t();
-            return cancel;
-		
-        case EConMLStatus:
-            CHECK_NO_DUPLICATE ( status )
-            status = new ( ELeave ) ConML_Status_t();
-            return status;
-			
-        default:
-            LOGGER_WRITE_1( "ConML_ConML_s::BeginElement()\
-             : Unknown element  %02x ", aTag );
-            User::Leave( KWBXMLParserErrorInvalidTag );
-        }
-    return KErrNone;
-    }
-
-CXMLElement::TAction ConML_ConML_s::EndElementL( TAny* aCallbacks, TUint8 aTag )
-    {
-    switch( aTag)
-        {
-        case EConML:
-            ((MWBXMLConMLCallback*) aCallbacks)->ConMLL(this);
-            return EPopAndDestroy;
-				
-        default:
-            return EPop;
-        }
-    }
-
-TBool ConML_ConML_s::NeedsCleanup() const
-    {
-    return ETrue;
-    }
-	
-
-	
-		
--- a/connectivitymodules/SeCon/wbxml/conmlhandler/src/sconconmlgenerator.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1285 +0,0 @@
-/*
-* Copyright (c) 2005-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:  ConML parser/generator
-*
-*/
-
-// -----------------------------------------------------------------------------
-// Includes
-// -----------------------------------------------------------------------------    
-#include "sconconmlgenerator.h"
-#include "sconconmlhandlererror.h"
-#include "sconconmldtd.h"
-#include "sconxmlelement.h"
-#include "debug.h"
-
-// -----------------------------------------------------------------------------
-// CSConConMLGenerator
-// -----------------------------------------------------------------------------
-CSConConMLGenerator::CSConConMLGenerator()
-    {
-    }
-    
-// -----------------------------------------------------------------------------
-// ~CSConConMLGenerator
-// -----------------------------------------------------------------------------
-CSConConMLGenerator::~CSConConMLGenerator()
-    {
-    if (iCmdStack)
-        {
-        iCmdStack->Reset();
-        delete iCmdStack;
-        iCmdStack = NULL;
-        }
-        
-    if ( iWBXMLWorkspace )
-        {
-        delete iWBXMLWorkspace;
-        iWBXMLWorkspace = NULL;
-        }
-        
-    if ( iXMLWorkspace )
-        {
-        delete iXMLWorkspace;
-        iXMLWorkspace = NULL;
-        }
-        
-    if (iCleanupStack)
-        {
-        iCleanupStack->ResetAndDestroy();
-        delete iCleanupStack;
-        iCleanupStack = NULL;
-        }
-
-    iElemStack.Close();
-    }
-    
-// -----------------------------------------------------------------------------
-// NewL
-// -----------------------------------------------------------------------------
-CSConConMLGenerator* CSConConMLGenerator::NewL ()
-    {
-    LOGGER_ENTERFN( "CSConConMLGenerator::NewL()" );
-    CSConConMLGenerator* self = new ( ELeave ) CSConConMLGenerator();
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    CleanupStack::Pop(); // self
-    LOGGER_LEAVEFN( "CSConConMLGenerator::NewL()" );
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// ConstructL
-// -----------------------------------------------------------------------------
-void CSConConMLGenerator::ConstructL()
-    {
-    LOGGER_ENTERFN( "CSConConMLGenerator::ConstructL()" );
-    iCmdStack = CXMLStack<CXMLElement>::NewL();
-    iCleanupStack = CXMLStack<CXMLElement>::NewL();
-    iWBXMLWorkspace = CXMLWorkspace::NewL();
-    iXMLWorkspace = CXMLWorkspace::NewL();
-    LOGGER_LEAVEFN( "CSConConMLGenerator::ConstructL()" );
-    }
-    
-// -----------------------------------------------------------------------------
-// SetCallbacks
-// -----------------------------------------------------------------------------
-void CSConConMLGenerator::SetCallback ( MWBXMLConMLCallback* aCallback )
-    {
-    LOGGER_ENTERFN( "CSConConMLGenerator::SetCallbacks()" );
-    iCallback = aCallback;
-    LOGGER_LEAVEFN( "CSConConMLGenerator::SetCallbacks()" );
-    }
-
-// -----------------------------------------------------------------------------
-// StartDocument
-// -----------------------------------------------------------------------------    
-void CSConConMLGenerator::StartDocument( 
-    TUint8 /*aVersion*/, TInt32 /*aPublicId*/, TUint32 /*aCharset*/ )
-    {
-    LOGGER_ENTERFN( "CSConConMLGenerator::StartDocumentL()" );
-    iCmdStack->Reset();
-    LOGGER_LEAVEFN( "CSConConMLGenerator::StartDocumentL()" );
-    }
-
-// -----------------------------------------------------------------------------
-// StartDocument
-// -----------------------------------------------------------------------------
-void CSConConMLGenerator::StartDocument( 
-    TUint8 /*aVersion*/, const TDesC8& /*aPublicIdStr*/, TUint32 /*aCharset*/ )
-    {
-    LOGGER_ENTERFN( "CSConConMLGenerator::StartDocumentL()" );
-    iCmdStack->Reset();
-    LOGGER_LEAVEFN( "CSConConMLGenerator::StartDocumentL()" );
-    }
-    
-// -----------------------------------------------------------------------------
-// StartElementL
-// -----------------------------------------------------------------------------
-void CSConConMLGenerator::StartElementL( TWBXMLTag aTag )
-    {
-    LOGGER_ENTERFN( "CSConConMLGenerator::StartElementL()" );
-    if( iCmdStack->Top() != 0 )
-        {
-        AddElement(iCmdStack->Top()->BeginElementL( 
-            aTag, TXMLElementParams(iCallback, iCmdStack, iCleanupStack ) ) );
-        }
-    else
-        {
-        if( aTag == EConML )
-            {
-            AddElement(new (ELeave) ConML_ConML_t());
-            }
-        else
-            {
-            LOGGER_WRITE( "CSConConMLGenerator::StartElementL() : Leave KWBXMLParserErrorInvalidTag" );
-            User::Leave(KWBXMLParserErrorInvalidTag);
-            }
-        }
-    LOGGER_LEAVEFN( "CSConConMLGenerator::StartElementL()" );
-    }
-    
-// -----------------------------------------------------------------------------
-// AddElement
-// -----------------------------------------------------------------------------
-void CSConConMLGenerator::AddElement( CXMLElement* aElement )
-    {
-    LOGGER_ENTERFN( "CSConConMLGenerator::AddElement()" );
-    if( aElement )
-        {
-        iCmdStack->Push(aElement);
-        if( aElement->NeedsCleanup() )
-            {
-            iCleanupStack->Push(aElement);
-            }
-        }
-    LOGGER_LEAVEFN( "CSConConMLGenerator::AddElement()" );
-    }
-
-// -----------------------------------------------------------------------------
-// CharactersL
-// -----------------------------------------------------------------------------
-void CSConConMLGenerator::CharactersL( const TDesC8& aBuffer )
-    {
-    LOGGER_ENTERFN( "CSConConMLGenerator::CharactersL()" );
-    if( iCmdStack->Top() != 0 )
-        {
-        iCmdStack->Top()->SetDataL(aBuffer);
-        }
-    else
-        {
-        LOGGER_WRITE( "CSConConMLGenerator::CharactersL() : Leave KWBXMLParserErrorInvalidTag" );
-        User::Leave(KWBXMLParserErrorInvalidTag);
-        }
-    LOGGER_LEAVEFN( "CSConConMLGenerator::CharactersL()" );
-    }
-    
-// -----------------------------------------------------------------------------
-// EndElementL
-// -----------------------------------------------------------------------------
-void CSConConMLGenerator::EndElementL( TWBXMLTag aTag )
-    {
-    LOGGER_ENTERFN( "CSConConMLGenerator::EndElementL()" );
-    if( iCmdStack->Top() != 0 )
-        {
-        CXMLElement::TAction action = iCmdStack->Top()->EndElementL( 
-            iCallback, aTag );
-        if( action != CXMLElement::ENone )
-            {
-            CXMLElement* elem = iCmdStack->Pop();
-            if( iCleanupStack->Top() == elem )
-                {
-                iCleanupStack->Pop();
-                }
-            if( action == CXMLElement::EPopAndDestroy )
-                {
-                delete elem;
-                }
-            }
-        }
-    LOGGER_LEAVEFN( "CSConConMLGenerator::EndElementL()" );
-    }
-    
-// -----------------------------------------------------------------------------
-// WriteMUint32L
-// -----------------------------------------------------------------------------
-void CSConConMLGenerator::WriteMUint32L( TUint32 aValue )
-    {
-    LOGGER_ENTERFN( "CSConConMLGenerator::WriteMUint32L()" );
-    TUint8 temp[5];
-    TInt i(4);
-    
-    temp[i--] = TUint8(aValue & 0x7F);
-    aValue >>= 7;
-    while( aValue > 0 )
-        {
-        temp[i--] = TUint8((aValue & 0x7F) | 0x80);
-        aValue >>= 7;
-        }
-            
-    while( i < 4 )
-        {
-        iWBXMLWorkspace->WriteL(temp[++i]);
-        }
-    LOGGER_LEAVEFN( "CSConConMLGenerator::WriteMUint32L()" );
-    }
-
-// -----------------------------------------------------------------------------
-// WriteOpaqueDataL
-// -----------------------------------------------------------------------------
-void CSConConMLGenerator::WriteOpaqueDataL( const TDesC8& aData )
-    {
-    LOGGER_ENTERFN( "CSConConMLGenerator::WriteOpaqueDataL()" );
-    iWBXMLWorkspace->WriteL( OPAQUE );
-    WriteMUint32L( aData.Size() );
-    iWBXMLWorkspace->WriteL( aData );
-    iXMLWorkspace->WriteL( aData );
-    LOGGER_LEAVEFN( "CSConConMLGenerator::WriteOpaqueDataL()" );
-    }
-    
-// -----------------------------------------------------------------------------
-// WriteInlineStringL
-// -----------------------------------------------------------------------------
-void CSConConMLGenerator::WriteInlineStringL( const TDesC8& aData )
-    {
-    LOGGER_ENTERFN( "CSConConMLGenerator::WriteInlineStringL()" );
-    iWBXMLWorkspace->WriteL( STR_I );
-    iWBXMLWorkspace->WriteL( aData );
-    iWBXMLWorkspace->WriteL( 0 );
-    iXMLWorkspace->WriteL( aData );
-    LOGGER_LEAVEFN( "CSConConMLGenerator::WriteInlineStringL()" );
-    }
-    
-// -----------------------------------------------------------------------------
-// IndentL
-// -----------------------------------------------------------------------------
-void CSConConMLGenerator::IndentL()
-    {
-    LOGGER_ENTERFN( "CSConConMLGenerator::IndentL()" );
-    for( TInt i = 0; i < iElemStack.Count() + iInitialIndentLevel; i++ )
-        {
-        iXMLWorkspace->WriteL(KXMLIndent());
-        }
-    LOGGER_LEAVEFN( "CSConConMLGenerator::IndentL()" );
-    }
-
-// -----------------------------------------------------------------------------
-// TranslateElement
-// -----------------------------------------------------------------------------    
-TPtrC8 CSConConMLGenerator::TranslateElement( TUint8 aElement )
-    {
-    LOGGER_ENTERFN( "CSConConMLGenerator::TranslateElement()" );
-    TPtrC8 buf( KConMLElements );
-    while( aElement-- )
-        {
-        TInt pos = buf.Find(KXMLElemenentSeparator());
-        if( pos == KErrNotFound )
-            {
-            return TPtrC8();
-            }
-        buf.Set(buf.Right(buf.Length() - pos - 1));
-        }
-
-    TInt pos = buf.Find(KXMLElemenentSeparator());
-    
-    if( pos != KErrNotFound )
-        {
-        buf.Set(buf.Left(pos));
-        }
-    LOGGER_LEAVEFN( "CSConConMLGenerator::TranslateElement()" );
-    return buf;
-    }
-    
-// -----------------------------------------------------------------------------
-// EndDocument
-// -----------------------------------------------------------------------------
-void CSConConMLGenerator::EndDocument()
-    {
-    LOGGER_ENTERFN( "CSConConMLGenerator::EndDocument()" );
-    LOGGER_LEAVEFN( "CSConConMLGenerator::EndDocument()" );
-    }
-
-    
-// -----------------------------------------------------------------------------
-// GenerateConMLDocument
-// -----------------------------------------------------------------------------
-TInt CSConConMLGenerator::GenerateConMLDocument ( ConML_ConMLPtr_t aContent )
-    {
-    LOGGER_ENTERFN( "CSConConMLGenerator::GenerateConMLDocument()" );
-    iWBXMLWorkspace->Reset();
-    iWBXMLWorkspace->BeginTransaction();
-    iXMLWorkspace->Reset();
-    iXMLWorkspace->BeginTransaction();
-    TRAPD(result, AppendConMLL(aContent));
-    LOGGER_WRITE_1( "CSConConMLGenerator::GenerateConMLDocument()\
-     : returned %d", result );
-    return HandleResult(result);
-    }
-    
-// -----------------------------------------------------------------------------
-// AppendConMLL
-// -----------------------------------------------------------------------------
-void CSConConMLGenerator::AppendConMLL( ConML_ConMLPtr_t aContent )
-    {
-    LOGGER_ENTERFN( "CSConConMLGenerator::AppendConMLL()" );
-    BeginDocumentL(KSConConMLVersion, KSConConMLPublicId, KSConConMLUTF8);
-    BeginElementL(EConML, ETrue);
-    AppendExecuteL( aContent->execute );
-    AppendGetStatusL( aContent->getStatus );
-    AppendCancelL( aContent->cancel );
-    AppendStatusL( aContent->status );
-    EndElementL(); // EConML
-    LOGGER_LEAVEFN( "CSConConMLGenerator::AppendConMLL()" );
-    }
-
-// -----------------------------------------------------------------------------
-// AppendExecuteL
-// -----------------------------------------------------------------------------
-void CSConConMLGenerator::AppendExecuteL( ConML_ExecutePtr_t aContent )
-    {
-    LOGGER_ENTERFN( "CSConConMLGenerator::AppendExecuteL()" );
-    if ( aContent )
-        {
-        BeginElementL( EConMLExecute, ETrue );
-        AppendPCDataL( EConMLID, aContent->id );
-        AppendInstallL( aContent->install );
-        AppendUnInstallL( aContent->unInstall );
-        AppendListInstalledAppsL( aContent->listInstalledApps );
-        AppendListDataOwnersL( aContent->listDataOwners );
-        AppendSetBURModeL( aContent->setBurMode );
-        AppendGetDataSizeL( aContent->getDataSize );
-        AppendRequestDataL( aContent->requestData );
-        AppendUpdateDeviceInfoL( aContent->updateDeviceInfo );
-        AppendListPublicFilesL( aContent->listPublicFiles );
-        AppendSupplyDataL( aContent->supplyData );
-        AppendGetDataOwnerStatusL( aContent->getDataOwnerStatus );
-        AppendGetMetadataL( aContent->getMetadata );
-        
-        if ( aContent->reboot )
-            {
-            BeginElementL( EConMLReboot );
-            }
-        EndElementL(); // EConMLExecute
-        }
-    LOGGER_LEAVEFN( "CSConConMLGenerator::AppendExecuteL()" );
-    }
-
-// -----------------------------------------------------------------------------
-// AppendSupplyDataL
-// -----------------------------------------------------------------------------
-void CSConConMLGenerator::AppendSupplyDataL( ConML_SupplyDataPtr_t aContent )
-    {
-    LOGGER_ENTERFN( "CSConConMLGenerator::AppendSupplyDataL()" );
-    if ( aContent )
-        {
-        BeginElementL( EConMLSupplyData, ETrue );
-        AppendSIDListL( aContent->sid );
-        AppendResultsL( aContent->results );
-        EndElementL(); // EConMLSupplyData
-        }
-    LOGGER_LEAVEFN( "CSConConMLGenerator::AppendSupplyDataL()" );
-    }
-// -----------------------------------------------------------------------------
-// AppendInstallL
-// -----------------------------------------------------------------------------
-void CSConConMLGenerator::AppendInstallL( ConML_InstallPtr_t aContent )
-    {
-    LOGGER_ENTERFN( "CSConConMLGenerator::AppendInstallL()" );
-    if ( aContent)
-        {
-        BeginElementL( EConMLInstall, ETrue );
-        AppendPCDataL( EConMLName, aContent->name );
-        if ( aContent->instParams) 
-            {
-            if ( aContent->instParams->param )
-                {
-                AppendInstParamsL( aContent->instParams );  
-                }
-            else 
-                {
-                BeginElementL( EConMLInstParams );
-                }
-            }
-        AppendResultsL( aContent->results );
-        EndElementL(); // EConMLInstall
-        }
-    LOGGER_LEAVEFN( "CSConConMLGenerator::AppendInstallL()" );
-    }
-
-// -----------------------------------------------------------------------------
-// AppendCancelL
-// -----------------------------------------------------------------------------    
-void CSConConMLGenerator::AppendCancelL ( ConML_CancelPtr_t aContent )
-    {
-    LOGGER_ENTERFN( "CSConConMLGenerator::AppendCancelL()" );
-    if ( aContent )
-        {
-        BeginElementL( EConMLCancel, ETrue );
-        AppendPCDataL ( EConMLID, aContent->id );
-        AppendPCDataL( EConMLAll, aContent->all);
-        EndElementL(); // EConMLCancel
-        }
-    LOGGER_LEAVEFN( "CSConConMLGenerator::AppendCancelL()" );
-    }
-
-// -----------------------------------------------------------------------------
-// AppendStatusL
-// -----------------------------------------------------------------------------
-void CSConConMLGenerator::AppendStatusL ( ConML_StatusPtr_t aContent )
-    {
-    LOGGER_ENTERFN( "CSConConMLGenerator::AppendStatusL()" );
-    if ( aContent )
-        {
-        if ( aContent->task )
-            {
-            BeginElementL( EConMLStatus, ETrue );
-            AppendTaskListL( aContent->task );
-            EndElementL(); // EConMLStatus
-            }
-        else
-            {
-            BeginElementL( EConMLStatus );  
-            }
-        }
-    LOGGER_LEAVEFN( "CSConConMLGenerator::AppendStatusL()" );
-    }
-    
-// -----------------------------------------------------------------------------
-// AppendGetStatusL
-// -----------------------------------------------------------------------------
-void CSConConMLGenerator::AppendGetStatusL( ConML_GetStatusPtr_t aContent )
-    {
-    LOGGER_ENTERFN( "CSConConMLGenerator::AppendGetStatusL()" );
-    if ( aContent )
-        {
-        BeginElementL( EConMLGetStatus, ETrue );
-        AppendPCDataL( EConMLID, aContent->id);
-        if ( aContent->all )
-            {
-            BeginElementL( EConMLAll );
-            }
-        EndElementL(); // EConMLGetStatus
-        }
-    LOGGER_ENTERFN( "CSConConMLGenerator::AppendGetStatusL()" );
-    }
-
-// -----------------------------------------------------------------------------
-// AppendRebootL
-// -----------------------------------------------------------------------------
-void CSConConMLGenerator::AppendRebootL( ConML_RebootPtr_t aContent )
-    {
-    if ( aContent )
-        {
-        BeginElementL( EConMLReboot, ETrue );
-        AppendResultsL( aContent->results );
-        EndElementL(); // EConMLReboot
-        }
-    }
-    
-// -----------------------------------------------------------------------------
-// AppendTaskL
-// -----------------------------------------------------------------------------
-void CSConConMLGenerator::AppendTaskL( ConML_TaskPtr_t aContent )
-    {
-    LOGGER_ENTERFN( "CSConConMLGenerator::AppendTaskL()" );
-    if ( aContent )
-        {
-        BeginElementL( EConMLTask, ETrue );
-        AppendPCDataL( EConMLID, aContent->id );
-        AppendInstallL(aContent->install );
-        AppendUnInstallL( aContent->unInstall );
-        AppendListInstalledAppsL ( aContent->listInstalledApps );
-        AppendListDataOwnersL ( aContent->listDataOwners );
-        AppendSetBURModeL ( aContent->setBurMode );
-        AppendGetDataSizeL ( aContent->getDataSize );
-        AppendRequestDataL ( aContent->requestData );
-        AppendUpdateDeviceInfoL ( aContent->updateDeviceInfo);
-        AppendListPublicFilesL ( aContent->listPublicFiles );
-        AppendGetDataOwnerStatusL( aContent->getDataOwnerStatus );
-        AppendSupplyDataL( aContent->supplyData );
-        AppendRebootL( aContent->reboot );
-        AppendGetMetadataL( aContent->getMetadata );
-        EndElementL();
-        }
-    LOGGER_LEAVEFN( "CSConConMLGenerator::AppendTaskL()" );
-    }
-    
-// -----------------------------------------------------------------------------
-// AppendTaskListL
-// -----------------------------------------------------------------------------
-void CSConConMLGenerator::AppendTaskListL( ConML_TaskListPtr_t aContent )
-    {
-    LOGGER_ENTERFN( "CSConConMLGenerator::AppendTaskListL()" );
-    for ( ConML_TaskListPtr_t p = aContent; p && p->data; p=p->next )
-        {
-        AppendTaskL( p->data );
-        }
-    LOGGER_LEAVEFN( "CSConConMLGenerator::AppendTaskListL()" );
-    }
-    
-// -----------------------------------------------------------------------------
-// AppendListInstalledAppsL
-// -----------------------------------------------------------------------------
-void CSConConMLGenerator::AppendListInstalledAppsL ( 
-    ConML_ListInstalledAppsPtr_t aContent )
-    {
-    LOGGER_ENTERFN( "CSConConMLGenerator::AppendListInstalledAppsL()" );
-    if ( aContent )
-        {
-        BeginElementL( EConMLListInstalledApps, ETrue );
-        AppendDrivesL( aContent->drives );
-        if ( aContent ->all )
-            {
-            BeginElementL( EConMLAll );
-            }
-        AppendResultsL( aContent->results );
-        EndElementL(); // EConMLListInstalledApps
-        }
-    LOGGER_LEAVEFN( "CSConConMLGenerator::AppendListInstalledAppsL()" );
-    }
-
-// -----------------------------------------------------------------------------
-// AppendListDataOwnersL
-// -----------------------------------------------------------------------------
-void CSConConMLGenerator::AppendListDataOwnersL ( 
-    ConML_ListDataOwnersPtr_t aContent )
-    {
-    LOGGER_ENTERFN( "CSConConMLGenerator::AppendListDataOwnersL()" );
-    if ( aContent )
-        {
-        if ( aContent->results )
-            {
-            BeginElementL( EConMLListDataOwners, ETrue );
-            AppendResultsL( aContent->results );
-            EndElementL(); // EConMLListDataOwners
-            }
-        else
-            {
-            BeginElementL( EConMLListDataOwners );          
-            }
-        }
-    LOGGER_LEAVEFN( "CSConConMLGenerator::AppendListDataOwnersL()" );
-    }
-
-// -----------------------------------------------------------------------------
-// CSConConMLGanerator::AppendBUROptionsL
-// -----------------------------------------------------------------------------
-void CSConConMLGenerator::AppendBUROptionsL( ConML_BUROptionsPtr_t aContent )
-    {
-    LOGGER_ENTERFN( "CSConConMLGenerator::AppendBUROptionsL()" );
-    if ( aContent )
-        {
-        BeginElementL( EConMLBUROptions, ETrue );
-        if ( aContent->requiresReboot )
-            {
-            BeginElementL( EConMLRequiresReboot );
-            }
-        if ( aContent->hasFiles )
-            {
-            AppendPCDataL( EConMLHasFiles, aContent->hasFiles );
-            }
-        if ( aContent->supportsInc )
-            {
-            BeginElementL( EConMLSupportsInc );
-            }
-        if ( aContent->delayToPrepareData )
-            {
-            BeginElementL( EConMLDelayToPrepareData );
-            }
-        EndElementL(); // EConMLBUROptions
-        }
-    LOGGER_LEAVEFN( "CSConConMLGenerator::AppendBUROptionsL()" );
-    }
-
-// -----------------------------------------------------------------------------
-// AppendSetBURModeL
-// -----------------------------------------------------------------------------
-void CSConConMLGenerator::AppendSetBURModeL( ConML_SetBURModePtr_t aContent )
-    {
-    LOGGER_ENTERFN( "CSConConMLGenerator::AppendSetBURModeL()" );
-    if ( aContent )
-        {
-        BeginElementL( EConMLSetBURMode, ETrue );
-        AppendDrivesL( aContent->drives );
-        AppendPCDataL( EConMLPartialType, aContent->partialType );
-        AppendPCDataL( EConMLIncType, aContent->incType );
-        AppendResultsL( aContent->results );
-        EndElementL(); //EConMLSetBURMode
-        }
-    LOGGER_LEAVEFN( "CSConConMLGenerator::AppendSetBURModeL()" );
-    }
-    
-// -----------------------------------------------------------------------------
-// AppendUnInstallL
-// -----------------------------------------------------------------------------
-void CSConConMLGenerator::AppendUnInstallL( ConML_UnInstallPtr_t aContent )
-    {
-    LOGGER_ENTERFN( "CSConConMLGenerator::AppendUnInstallL()" );
-    if ( aContent )
-        {
-        BeginElementL( EConMLUnInstall, ETrue );
-        AppendApplicationsL( aContent->applications );
-        AppendInstParamsL( aContent->instParams );
-        AppendResultsL( aContent->results );
-        EndElementL(); // EConMLUnInstall
-        }
-    LOGGER_LEAVEFN( "CSConConMLGenerator::AppendUnInstallL()" );
-    }
-
-// -----------------------------------------------------------------------------
-// AppendGetDataSizeL
-// -----------------------------------------------------------------------------
-void CSConConMLGenerator::AppendGetDataSizeL( ConML_GetDataSizePtr_t aContent )
-    {
-    LOGGER_ENTERFN( "CSConConMLGenerator::AppendGetDataSizeL()" );
-    if ( aContent )
-        {
-        BeginElementL( EConMLGetDataSize, ETrue );
-        AppendDataOwnersL( aContent->dataOwners );
-        AppendResultsL( aContent->results );
-        EndElementL(); //EConMLGetDataSize
-        }
-    LOGGER_LEAVEFN( "CSConConMLGenerator::AppendGetDataSizeL()" );
-    }
-
-// -----------------------------------------------------------------------------
-// AppendRequestDataL
-// -----------------------------------------------------------------------------
-void CSConConMLGenerator::AppendRequestDataL( ConML_RequestDataPtr_t aContent )
-    {
-    LOGGER_ENTERFN( "CSConConMLGenerator::AppendRequestDataL()" );
-    if ( aContent )
-        {
-        BeginElementL( EConMLRequestData, ETrue );
-        AppendSIDListL( aContent->sid );
-        AppendResultsL( aContent->results );
-        EndElementL();//EConMLRequestData
-        }
-    LOGGER_LEAVEFN( "CSConConMLGenerator::AppendRequestDataL()" );
-    }
-
-// -----------------------------------------------------------------------------
-// AppendUpdateDeviceInfoL
-// -----------------------------------------------------------------------------
-void CSConConMLGenerator::AppendUpdateDeviceInfoL( 
-    ConML_UpdateDeviceInfoPtr_t aContent )
-    {
-    LOGGER_ENTERFN( "CSConConMLGenerator::AppendUpdateDeviceInfoL()" );
-    if ( aContent )
-        {
-        BeginElementL(EConMLUpdateDeviceInfo, ETrue);
-        AppendDeviceInfoL( aContent-> deviceInfo );
-        AppendResultsL( aContent->results );
-        EndElementL();// EConMLUpdateDeviceInfo
-        }
-    LOGGER_LEAVEFN( "CSConConMLGenerator::AppendUpdateDeviceInfoL()" );
-    }
-
-// -----------------------------------------------------------------------------
-// AppendListPublicFilesL
-// -----------------------------------------------------------------------------
-void CSConConMLGenerator::AppendListPublicFilesL( 
-    ConML_ListPublicFilesPtr_t aContent )
-    {
-    LOGGER_ENTERFN( "CSConConMLGenerator::AppendListPublicFilesL()" );
-    if ( aContent )
-        {
-        BeginElementL( EConMLListPublicFiles, ETrue );
-        AppendSIDListL ( aContent->sid );
-        AppendResultsL( aContent->results );
-        EndElementL(); // EConMLListPublicFiles
-        }
-    LOGGER_LEAVEFN( "CSConConMLGenerator::AppendListPublicFilesL()" );
-    }
-
-// -----------------------------------------------------------------------------
-// AppendApplicationL
-// -----------------------------------------------------------------------------
-void CSConConMLGenerator::AppendApplicationL( ConML_ApplicationPtr_t aContent )
-    {
-    LOGGER_ENTERFN( "CSConConMLGenerator::AppendApplicationL()" );
-    if ( aContent )
-        {
-        BeginElementL(EConMLApplication, ETrue );
-        AppendPCDataL( EConMLName, aContent->name );
-        AppendPCDataL( EConMLUID, aContent->uid );
-        EndElementL(); //EConMLApplication
-        }
-    LOGGER_LEAVEFN( "CSConConMLGenerator::AppendApplicationL()" );
-    }
-
-// -----------------------------------------------------------------------------
-// AppendApplicationListL
-// -----------------------------------------------------------------------------
-void CSConConMLGenerator::AppendApplicationListL( 
-    ConML_ApplicationListPtr_t aContent )
-    {
-    LOGGER_ENTERFN( "CSConConMLGenerator::AppendApplicationListL()" );
-    for ( ConML_ApplicationListPtr_t p = aContent; p && p->data; p = p->next )
-        {
-        AppendApplicationL( p->data );
-        }
-    LOGGER_LEAVEFN( "CSConConMLGenerator::AppendApplicationListL()" );
-    }
-
-// -----------------------------------------------------------------------------
-// AppendApplicationsL
-// -----------------------------------------------------------------------------
-void CSConConMLGenerator::AppendApplicationsL( 
-    ConML_ApplicationsPtr_t aContent )
-    {
-    LOGGER_ENTERFN( "CSConConMLGenerator::AppendApplicationsL()" );
-    if ( aContent )
-        {
-        BeginElementL( EConMLApplications, ETrue );
-        AppendApplicationListL( aContent->application );
-        EndElementL(); // EConMLApplications
-        }
-    LOGGER_LEAVEFN( "CSConConMLGenerator::AppendApplicationsL()" );
-    }
-
-// -----------------------------------------------------------------------------
-// AppendParamL
-// -----------------------------------------------------------------------------
-void CSConConMLGenerator::AppendParamL( ConML_ParamPtr_t aContent )
-    {
-    LOGGER_ENTERFN( "CSConConMLGenerator::AppendParamL()" );
-    if ( aContent )
-        {
-        BeginElementL( EConMLParam, ETrue );
-        AppendPCDataL( EConMLName, aContent->name );
-        AppendPCDataL( EConMLValue, aContent->value );
-        EndElementL(); // EConMLParam
-        }
-    LOGGER_LEAVEFN( "CSConConMLGenerator::AppendParamL()" );
-    }
-
-// -----------------------------------------------------------------------------
-// AppendParamListL
-// -----------------------------------------------------------------------------
-void CSConConMLGenerator::AppendParamListL( ConML_ParamListPtr_t aContent )
-    {
-    LOGGER_ENTERFN( "CSConConMLGenerator::AppendParamListL()" );
-    for ( ConML_ParamListPtr_t p = aContent; p && p->data; p = p->next )
-        {
-        AppendParamL( p-> data );
-        }
-    LOGGER_LEAVEFN( "CSConConMLGenerator::AppendParamListL()" );
-    }
-
-// -----------------------------------------------------------------------------
-// AppendInstParamsL
-// -----------------------------------------------------------------------------
-void CSConConMLGenerator::AppendInstParamsL( ConML_InstParamsPtr_t aContent )
-    {
-    LOGGER_ENTERFN( "CSConConMLGenerator::AppendInstParamsLionsL()" );
-    if ( aContent )
-        {
-        BeginElementL( EConMLInstParams, ETrue );
-        AppendParamListL( aContent->param );
-        EndElementL(); //EConMLInstParams
-        }
-    LOGGER_LEAVEFN( "CSConConMLGenerator::AppendInstParamsL()" );
-    }
-
-// -----------------------------------------------------------------------------
-// AppendProgressL
-// -----------------------------------------------------------------------------
-void CSConConMLGenerator::AppendProgressL( ConML_ProgressPtr_t aContent )
-    {
-    LOGGER_ENTERFN( "CSConConMLGenerator::AppendProgressL()" );
-    if ( aContent )
-        {
-        BeginElementL( EConMLProgress, ETrue );
-        AppendPCDataL( EConMLValue, aContent->value );
-        EndElementL(); // EconMLProgress
-        }
-    LOGGER_LEAVEFN( "CSConConMLGenerator::AppendProgressL()" );
-    }
-    
-// -----------------------------------------------------------------------------
-// AppendResultsL
-// -----------------------------------------------------------------------------
-void CSConConMLGenerator::AppendResultsL( ConML_ResultsPtr_t aContent )
-    {
-    LOGGER_ENTERFN( "CSConConMLGenerator::AppendResultsL()" );
-    if ( aContent )
-        {
-        BeginElementL( EConMLResults, ETrue );
-        if ( aContent->complete )
-            {
-            BeginElementL( EConMLComplete );
-            }
-        AppendProgressL( aContent->progress );
-        AppendApplicationsL( aContent->applications );
-        AppendDataOwnersL( aContent->dataOwners );
-        if ( aContent->filename )
-            {
-            AppendPCDataL( EConMLFilename, aContent->filename );
-            }
-        AppendPCDataL( EConMLData, aContent->data );
-        if ( aContent->moreData )
-            {
-            BeginElementL( EConMLMoreData );
-            }
-        AppendDeviceInfoL( aContent->deviceInfo );
-        AppendFilesL( aContent->files );
-        EndElementL(); //EConMLResults
-        }
-    LOGGER_LEAVEFN( "CSConConMLGenerator::AppendResultsL()" );
-    }
-
-// -----------------------------------------------------------------------------
-// AppendDriveL
-// -----------------------------------------------------------------------------
-void CSConConMLGenerator::AppendDriveL( ConML_DrivePtr_t aContent )
-    {
-    LOGGER_ENTERFN( "CSConConMLGenerator::AppendDriveL()" );
-    if ( aContent )
-        {
-        BeginElementL( EConMLDrive, ETrue );
-        AppendPCDataL( EConMLName, aContent->name );
-        EndElementL(); //EConMLDrive
-        }
-    LOGGER_LEAVEFN( "CSConConMLGenerator::AppendDriveL()" );
-    }
-
-// -----------------------------------------------------------------------------
-// AppendDriveListL
-// -----------------------------------------------------------------------------
-void CSConConMLGenerator::AppendDriveListL( ConML_DriveListPtr_t aContent )
-    {
-    LOGGER_ENTERFN( "CSConConMLGenerator::AppendDriveListL()" );
-    for ( ConML_DriveListPtr_t p =  aContent; p && p->data; p=p->next )
-        {
-        AppendDriveL( p->data );
-        }
-    LOGGER_LEAVEFN( "CSConConMLGenerator::AppendDriveListL()" );
-    }
-
-// -----------------------------------------------------------------------------
-// AppendDrivesL
-// -----------------------------------------------------------------------------
-void CSConConMLGenerator::AppendDrivesL( ConML_DrivesPtr_t aContent )
-    {
-    LOGGER_ENTERFN( "CSConConMLGenerator::AppendDrivesL()" );
-    if ( aContent )
-        {
-        BeginElementL( EConMLDrives, ETrue );
-        AppendDriveListL( aContent->drive );
-        EndElementL(); // EConMLDrives
-        }
-    LOGGER_LEAVEFN( "CSConConMLGenerator::AppendDrivesL()" );
-    }
-
-// -----------------------------------------------------------------------------
-// AppendDataOwnersL
-// -----------------------------------------------------------------------------
-void CSConConMLGenerator::AppendDataOwnersL( ConML_DataOwnersPtr_t aContent )
-    {
-    LOGGER_ENTERFN( "CSConConMLGenerator::AppendDataOwnersL()" );
-    if ( aContent )
-        {
-        BeginElementL( EConMLDataOwners, ETrue );
-        AppendSIDListL( aContent->sid );
-        EndElementL(); //EConMLDataOwners
-        }
-    LOGGER_LEAVEFN( "CSConConMLGenerator::AppendDataOwnersL()" );
-    }
-
-// -----------------------------------------------------------------------------
-// AppendGetDataOwnerStatusL
-// -----------------------------------------------------------------------------
-void CSConConMLGenerator::AppendGetDataOwnerStatusL
-    ( ConML_GetDataOwnerStatusPtr_t aContent )
-    {
-    LOGGER_ENTERFN( "CSConConMLGenerator::AppendDataOwnerStatusL()" );
-    if ( aContent)
-        {
-        BeginElementL( EConMLGetDataOwnerStatus, ETrue );
-        AppendDataOwnersL( aContent->dataOwners );
-        AppendResultsL( aContent->results );
-        EndElementL(); // EconMLGetDataOwnerStatus
-        }
-    LOGGER_ENTERFN( "CSConConMLGenerator::AppendDataOwnerStatusL()" );
-    }
-
-// -----------------------------------------------------------------------------
-// AppendGetMetadataL
-// -----------------------------------------------------------------------------
-void CSConConMLGenerator::AppendGetMetadataL
-    ( ConML_GetMetadataPtr_t aContent )
-    {
-    LOGGER_ENTERFN( "CSConConMLGenerator::AppendGetMetadataL()" );
-    if ( aContent)
-        {
-        BeginElementL( EConMLGetMetadata, ETrue );
-        AppendPCDataL( EConMLFilename, aContent->filename );
-        AppendResultsL( aContent->results );
-        EndElementL(); // EConMLGetMetadata
-        }
-    LOGGER_ENTERFN( "CSConConMLGenerator::AppendGetMetadataL()" );
-    }
-
-// -----------------------------------------------------------------------------
-// AppendPackageInfoL
-// -----------------------------------------------------------------------------
-void CSConConMLGenerator::AppendPackageInfoL ( ConML_PackageInfoPtr_t aContent )
-    {
-    if ( aContent )
-        {
-        BeginElementL( EConMLPackageInfo, ETrue );
-        AppendPCDataL( EConMLName, aContent->name );
-        EndElementL(); // EConMLPackageInfo
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// AppendSIDL
-// -----------------------------------------------------------------------------
-void CSConConMLGenerator::AppendSIDL( ConML_SIDPtr_t aContent )
-    {
-    LOGGER_ENTERFN( "CSConConMLGenerator::AppendSIDL()" );
-    if ( aContent )
-        {
-        BeginElementL( EConMLSID, ETrue );
-        AppendPCDataL( EConMLType, aContent->type );
-        AppendPCDataL( EConMLUID, aContent->uid );
-        AppendPCDataL( EConMLDataOwnerStatus, aContent->dataOwnerStatus );
-        AppendDrivesL( aContent->drives );
-        if ( aContent->size )
-            {
-            AppendPCDataL( EConMLSize, aContent->size ); 
-            }
-        AppendPackageInfoL( aContent->packageInfo );
-        AppendBUROptionsL( aContent->burOptions );
-        AppendPCDataL( EConMLTransferDataType, aContent->transferDataType );
-        AppendPCDataL( EConMLData, aContent->data );
-        if ( aContent->moreData)
-            {
-            BeginElementL(EConMLMoreData );
-            }
-        EndElementL(); // EconMLSID
-        }
-    LOGGER_LEAVEFN( "CSConConMLGenerator::AppendSIDL()" );
-    }
-    
-// -----------------------------------------------------------------------------
-// AppendSIDListL
-// -----------------------------------------------------------------------------
-void CSConConMLGenerator::AppendSIDListL( ConML_SIDListPtr_t aContent )
-    {
-    LOGGER_LEAVEFN( "CSConConMLGenerator::AppendSIDListL()" );
-    for ( ConML_SIDListPtr_t p = aContent; p && p->data; p=p->next )
-        {
-        AppendSIDL( p->data );
-        }
-    LOGGER_LEAVEFN( "CSConConMLGenerator::AppendSIDListL()" );
-    }
-
-// -----------------------------------------------------------------------------
-// AppendDeviceInfoL
-// -----------------------------------------------------------------------------
-void CSConConMLGenerator::AppendDeviceInfoL( ConML_DeviceInfoPtr_t aContent )
-    {
-    LOGGER_ENTERFN( "CSConConMLGenerator::AppendDeviceInfoL()" );
-    if ( aContent )
-        {
-        BeginElementL( EConMLDeviceInfo, ETrue );
-        AppendPCDataL( EConMLVersion, aContent->version );
-        AppendSupportedMethodsL ( aContent->supportedMethods );
-        AppendPCDataL(EConMLMaxObjectSize, aContent->maxObjectSize );
-        EndElementL(); // EConMLDeviceInfo
-        }
-    LOGGER_LEAVEFN( "CSConConMLGenerator::AppendDeviceInfoL()" );
-    }
-
-// -----------------------------------------------------------------------------
-// AppendFilesL
-// -----------------------------------------------------------------------------
-void CSConConMLGenerator::AppendFilesL( ConML_FilesPtr_t aContent )
-    {
-    LOGGER_ENTERFN( "CSConConMLGenerator::AppendFilesL()" );
-    if ( aContent )
-        {
-        BeginElementL( EConMLFiles, ETrue );
-        AppendFileListL( aContent->file );
-        EndElementL(); // EConMLFiles
-        }
-    LOGGER_LEAVEFN( "CSConConMLGenerator::AppendFilesL()" );
-    }
-
-// -----------------------------------------------------------------------------
-// AppendSupportedMethodsL
-// -----------------------------------------------------------------------------
-void CSConConMLGenerator::AppendSupportedMethodsL
-    ( ConML_SupportedMethodsPtr_t aContent )
-    {
-    LOGGER_ENTERFN( "CSConConMLGenerator::AppendSupportedMethodsL()" );
-    if ( aContent )
-        {
-        BeginElementL( EConMLSupportedMethods, ETrue );
-        if  ( aContent->install )
-            {
-            BeginElementL( EConMLInstall );
-            }
-        if ( aContent->unInstall )
-            {
-            BeginElementL( EConMLUnInstall );
-            }
-        if ( aContent->listInstalledApps )
-            {
-            BeginElementL( EConMLListInstalledApps );
-            }
-        if ( aContent->listDataOwners )
-            {
-            BeginElementL( EConMLListDataOwners );
-            }
-        if ( aContent->setBurMode )
-            {
-            BeginElementL( EConMLSetBURMode );
-            }
-        if ( aContent->getDataSize )
-            {
-            BeginElementL( EConMLGetDataSize );
-            }
-        if ( aContent->requestData )
-            {
-            BeginElementL( EConMLRequestData );
-            }
-        if ( aContent->supplyData )
-            {
-            BeginElementL( EConMLSupplyData );
-            }
-        if ( aContent->reboot )
-            {
-            BeginElementL( EConMLReboot );
-            }
-        EndElementL(); // EConMLSupportedMethods
-        }
-    LOGGER_LEAVEFN( "CSConConMLGenerator::AppendSupportedMethodsL()" );
-    }
-
-// -----------------------------------------------------------------------------
-// AppendFileListL
-// -----------------------------------------------------------------------------
-void CSConConMLGenerator::AppendFileListL( ConML_FileListPtr_t  aContent )
-    {
-    LOGGER_ENTERFN( "CSConConMLGenerator::AppendFileListL()" );
-    if ( aContent )
-        {
-        for ( ConML_FileListPtr_t p = aContent; p && p->data; p = p->next )
-            {
-            AppendFileL(p->data );
-            }
-        }
-    LOGGER_LEAVEFN( "CSConConMLGenerator::AppendFileListL()" );
-    }
-
-// -----------------------------------------------------------------------------
-// AppendFileL
-// -----------------------------------------------------------------------------
-void CSConConMLGenerator::AppendFileL( ConML_FilePtr_t aContent )
-    {
-    LOGGER_ENTERFN( "CSConConMLGenerator::AppendFileL()" );
-    if ( aContent )
-        {
-        BeginElementL( EConMLFile, ETrue );
-        AppendPCDataL( EConMLName, aContent->name );
-        AppendPCDataL( EConMLModified, aContent->modified );
-        AppendPCDataL( EConMLSize, aContent->size );
-        AppendPCDataL( EConMLUserPerm, aContent->userPerm );
-        EndElementL(); // EConMLFile
-        }
-    LOGGER_LEAVEFN( "CSConConMLGenerator::AppendFileL()" );
-    }
-
-// -----------------------------------------------------------------------------
-// HandleResult
-// -----------------------------------------------------------------------------
-TInt CSConConMLGenerator::HandleResult( TInt aResult, TInt aTreshold )
-    {
-    LOGGER_ENTERFN( "CSConConMLGenerator::HandleResult()" );
-    switch( aResult )
-        {
-        case KErrNone:
-            if( iWBXMLWorkspace->FreeSize() < aTreshold )
-                {               
-                iWBXMLWorkspace->Rollback();
-                return KWBXMLGeneratorBufferFull;
-                }
-            iWBXMLWorkspace->Commit();
-            return KWBXMLGeneratorOk;
-
-        case KErrTooBig:
-            iWBXMLWorkspace->Rollback();
-            return KWBXMLGeneratorBufferFull;
-        }
-    LOGGER_WRITE_1( "CSConConMLGenerator::HandleResult()\
-     : returned %d", aResult);
-    return aResult;
-    }
-
-// -----------------------------------------------------------------------------
-// BeginDocumentL
-// -----------------------------------------------------------------------------
-void CSConConMLGenerator::BeginDocumentL( 
-    TUint8 aVersion, 
-    TInt32 aPublicId, 
-    TUint32 aCharset, 
-    const TDesC8& aStringTbl )
-    {
-    LOGGER_ENTERFN( "CSConConMLGenerator::BeginDocumentL()" );
-    iWBXMLWorkspace->WriteL(aVersion);
-
-    if( aPublicId <= 0 )
-        {
-        iWBXMLWorkspace->WriteL(0);
-        WriteMUint32L(-aPublicId);
-        }
-    else
-        {
-        WriteMUint32L(aPublicId);
-        }
-    WriteMUint32L(aCharset);
-    WriteMUint32L(aStringTbl.Size());
-    iWBXMLWorkspace->WriteL(aStringTbl);
-    LOGGER_LEAVEFN( "CSConConMLGenerator::BeginDocumentL()" );
-    }
-
-// -----------------------------------------------------------------------------
-// BeginElementL
-// -----------------------------------------------------------------------------
-void CSConConMLGenerator::BeginElementL( 
-    TUint8 aElement, TBool aHasContent, TBool aHasAttributes )
-    {
-    LOGGER_ENTERFN( "CSConConMLGenerator::BeginElementL()" );
-    IndentL();
-    iXMLWorkspace->WriteL(KXMLTagStart());
-    iXMLWorkspace->WriteL(TranslateElement(aElement));
-        
-    if( aHasAttributes )
-        {
-        aElement |= KWBXMLHasAttributes;
-        }
-        
-    if( aHasContent )
-        {
-        iXMLWorkspace->WriteL(KXMLTagEnd());
-        iElemStack.Insert(aElement, 0);
-        aElement |= KWBXMLHasContent;
-        }
-    else
-        {
-        iXMLWorkspace->WriteL(KXMLTagEndNoContent());
-        }
-
-    if( !iDontNewLine )
-        {
-        iXMLWorkspace->WriteL(KXMLNewLine());
-        }
-    iDontNewLine = EFalse;
-
-    WriteMUint32L(aElement);
-    LOGGER_LEAVEFN( "CSConConMLGenerator::BeginElementL()" );
-    }
-
-// -----------------------------------------------------------------------------
-// EndElementL
-// -----------------------------------------------------------------------------
-void CSConConMLGenerator::EndElementL()
-    {
-    LOGGER_ENTERFN( "CSConConMLGenerator::EndElementL()" );
-    TUint8 elem = iElemStack[0];
-    iElemStack.Remove(0);
-    if( !iDontIndent )
-        {
-        IndentL();
-        }
-    iDontIndent = EFalse;
-    iXMLWorkspace->WriteL(KXMLTagStartEndTag());
-    iXMLWorkspace->WriteL(TranslateElement(elem));
-    iXMLWorkspace->WriteL(KXMLTagEnd());
-    iXMLWorkspace->WriteL(KXMLNewLine());
-    
-    iWBXMLWorkspace->WriteL(END);
-    
-    LOGGER_LEAVEFN( "CSConConMLGenerator::EndElementL()" );
-    }
-
-// -----------------------------------------------------------------------------
-// AddElementL
-// -----------------------------------------------------------------------------
-void CSConConMLGenerator::AddElementL( 
-    TUint8 aElement, const TDesC8& aContent, const TWBXMLContentFormat aFormat )
-    {
-    LOGGER_ENTERFN( "CSConConMLGenerator::AddElementL()" );
-    iDontNewLine = ETrue;
-    BeginElementL(aElement, ETrue);
-    if( aFormat == EWBXMLContentFormatOpaque )
-        {
-        WriteOpaqueDataL(aContent);
-        }
-    else
-        {
-        WriteInlineStringL(aContent);
-        }
-    iDontIndent = ETrue;
-    EndElementL();
-    LOGGER_LEAVEFN( "CSConConMLGenerator::AddElementL()" );
-    }
-
-// -----------------------------------------------------------------------------
-// AppendPCDataL
-// -----------------------------------------------------------------------------
-void CSConConMLGenerator::AppendPCDataL( TUint8 aElement, pcdataPtr_t aContent )
-    {
-    LOGGER_ENTERFN( "CSConConMLGenerator::AppendPCDataL()" );
-    if( !aContent )
-        {
-        return;
-        }
-
-    if( aContent->contentType == SML_PCDATA_OPAQUE )
-        {
-        AddElementL(aElement, 
-                    TPtrC8((TUint8*)aContent->content, 
-                    aContent->length));
-        }
-    else
-        {
-        LOGGER_WRITE( "CSConConMLGenerator::AppendPCDataL() : Data type not Opaque - ignoring " );
-        }
-    LOGGER_LEAVEFN( "CSConConMLGenerator::AppendPCDataL()" );
-    }
-    
-// -----------------------------------------------------------------------------
-// WBXMLDocument
-// -----------------------------------------------------------------------------
-TPtrC8 CSConConMLGenerator::WBXMLDocument()
-    {
-    LOGGER_ENTERFN( "CSConConMLGenerator::WBXMLDocument()" );
-    LOGGER_LEAVEFN( "CSConConMLGenerator::WBXMLDocument()" );
-    return iWBXMLWorkspace->Buffer();
-    }
-    
-// -----------------------------------------------------------------------------
-// XMLDocument
-// -----------------------------------------------------------------------------
-TPtrC8 CSConConMLGenerator::XMLDocument()
-    {
-    LOGGER_ENTERFN( "CSConConMLGenerator::XMLDocument()" );
-    LOGGER_LEAVEFN( "CSConConMLGenerator::XMLDocument()" );
-    return iXMLWorkspace->Buffer();
-    }
--- a/connectivitymodules/SeCon/wbxml/conmlhandler/src/sconconmlhandler.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,474 +0,0 @@
-/*
-* Copyright (c) 2005-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:  ConML parser/generator
-*
-*/
-
-
-// -----------------------------------------------------------------------------
-// Includes
-// -----------------------------------------------------------------------------
-#include <s32mem.h>
-
-#include "sconconmlhandler.h"
-#include "debug.h"
-
-// -----------------------------------------------------------------------------
-// CreateCSConConMLHandlerL
-// Creates a new instance of CSConConMLHandler
-// -----------------------------------------------------------------------------
-//  
-EXPORT_C CSConConMLHandler* CreateCSConConMLHandlerL()
-    {
-    LOGGER_ENTERFN( "CreateCSConConMLHandlerL()" );
-    LOGGER_LEAVEFN( "CreateCSConConMLHandlerL()" );
-    return CSConConMLHandler::NewL();
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConConMLHandler::CSConConMLHandler()
-// Default constructor
-// -----------------------------------------------------------------------------
-//  
-CSConConMLHandler::CSConConMLHandler()
-    {
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConConMLHandler::CSConConMLHandler()
-// Default constructor
-// -----------------------------------------------------------------------------
-//  
-CSConConMLHandler::~CSConConMLHandler()
-    {
-    LOGGER_ENTERFN( "CSConConMLHandler::~CSConConMLHandler()" );
-    
-    if ( iParseBuffer )
-        {
-        LOGGER_WRITE( "CSConConMLHandler::~CSConConMLHandler() : phase 1/4 " );
-        delete iParseBuffer;
-        iParseBuffer = NULL;
-        }
-    
-    if ( iBuffer )
-        {
-        LOGGER_WRITE( "CSConConMLHandler::~CSConConMLHandler() : phase 2/4 " );
-        delete iBuffer;
-        iBuffer = NULL;
-        }
-    
-    if ( iGenerator )
-        {
-        LOGGER_WRITE( "CSConConMLHandler::~CSConConMLHandler() : phase 3/4 " );
-        delete iGenerator;
-        iGenerator = NULL;
-        }
-
-    if ( iStringTable )
-        {
-        LOGGER_WRITE( "CSConConMLHandler::~CSConConMLHandler() : phase 4/4 " );
-        delete iStringTable;
-        iStringTable = NULL;
-        }
-
-    iElemStack.Close();
-    
-    LOGGER_LEAVEFN( "CSConConMLHandler::~CSConConMLHandler()" );
-    }
-        
-// -----------------------------------------------------------------------------
-// CSConConMLHandler::CSConConMLHaNewL()
-// Creates a new instance of CSConConMLHandler
-// -----------------------------------------------------------------------------
-//  
-CSConConMLHandler* CSConConMLHandler::NewL()
-    {
-    LOGGER_ENTERFN( "CSConConMLHandler::NewL()" );
-    CSConConMLHandler* self = new ( ELeave ) CSConConMLHandler();
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    CleanupStack::Pop(); // self
-    LOGGER_LEAVEFN( "CSConConMLHandler::NewL()" );
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConConMLHandler::ConstructL()
-// 2nd phase constructor
-// -----------------------------------------------------------------------------
-//  
-void CSConConMLHandler::ConstructL()
-    {
-    LOGGER_ENTERFN( "CSConConMLHandler::ConstructL()" );
-    iGenerator = CSConConMLGenerator::NewL();
-    iBuffer = CBufFlat::NewL( KSConBufferGranularity );
-    iParseBuffer = CBufFlat::NewL( KSConDefaultDocumentSize );
-    LOGGER_LEAVEFN( "CSConConMLHandler::ConstructL()" );
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConConMLHandler::ParseDocumentL()
-// Handles the document parsing, document in aInput
-// -----------------------------------------------------------------------------
-//  
-TInt CSConConMLHandler::ParseDocumentL( 
-    CBufFlat& aInput, MWBXMLConMLCallback* aCallback )
-    {
-    LOGGER_ENTERFN( "CSConConMLHandler::ParseDocument()" );
-    TInt ret ( KErrNone );
-        
-    iPos = 0;
-    iParseBuffer->Reset();
-    iParseBuffer->ResizeL( aInput.Size() );
-    iParseBuffer->Write( 0, aInput.Ptr(0) );
-    iHeaderParsed = EFalse;
-    iGenerator->SetCallback( aCallback );
-
-    while (ret == KWBXMLParserErrorOk )
-        {
-        ret = ParseL();
-        }
-
-    if ( ret == KWBXMLParserErrorEof ) 
-        {
-        ret = KErrNone;
-        }
-    LOGGER_WRITE_1( "CSConConMLHandler::ParseDocument()\
-     returned %d", ret );   
-    return ( ret );
-    }
-
-// -----------------------------------------------------------------------------
-// CSConConMLHandler::GenerateDocument()
-// Starts the generating of a document
-// -----------------------------------------------------------------------------
-//  
-TInt CSConConMLHandler::GenerateDocument( ConML_ConMLPtr_t aContent )
-    {
-    LOGGER_ENTERFN( "CSConConMLHandler::GenerateDocument()" );
-    iGenerator->GenerateConMLDocument ( aContent );
-    LOGGER_LEAVEFN( "CSConConMLHandler::GenerateDocument()" );
-    return KErrNone;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConConMLHandler::WBXMLDocument()
-// Returns the generated WBXML -document
-// -----------------------------------------------------------------------------
-//  
-TPtrC8 CSConConMLHandler::WBXMLDocument()
-    {
-    LOGGER_ENTERFN( "CSConConMLHandler::WBXMLDocument()" );
-    LOGGER_LEAVEFN( "CSConConMLHandler::WBXMLDocument()" );
-    return iGenerator->WBXMLDocument();
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConConMLHandler::XMLDocument()
-// Returns the generated XML -document
-// -----------------------------------------------------------------------------
-//  
-TPtrC8 CSConConMLHandler::XMLDocument()
-    {
-    LOGGER_ENTERFN( "CSConConMLHandler::XMLDocument()" );
-    LOGGER_LEAVEFN( "CSConConMLHandler::XMLDocument()" );
-    return iGenerator->XMLDocument();
-    }
-
-// -----------------------------------------------------------------------------
-// CSConConMLHandler::ParseL()
-// Parses the next document tag / header if not parsed yet
-// -----------------------------------------------------------------------------
-//  
-TInt CSConConMLHandler::ParseL()
-    {
-    LOGGER_ENTERFN( "CSConConMLHandler::ParseL()" );
-    if( !iHeaderParsed )
-        {
-        TConMLParserError result(KWBXMLParserErrorOk);
-        TRAPD(err,  result = DoParseDocumentHeaderL());
-        if( err == KErrEof )
-            {
-            LOGGER_WRITE( "CSConConMLHandler::ParseL() : KWBXMLParserErrorEofTooEarly " );
-            return KWBXMLParserErrorEofTooEarly;
-            }
-        return result;
-        }
-    LOGGER_LEAVEFN( "CSConConMLHandler::ParseL()" );
-    return DoParseDocumentBodyL();
-    }
-
-// -----------------------------------------------------------------------------
-// CSConConMLHandler::DoParseDocumentHeaderL()
-// Parses the document header
-// -----------------------------------------------------------------------------
-//  
-TConMLParserError CSConConMLHandler::DoParseDocumentHeaderL()
-    {
-    LOGGER_ENTERFN( "CSConConMLParser::DoParseDocumentHeaderL()" );
-    iHeaderParsed = ETrue;
-
-    // Version
-    TUint8 version = ReadUint8L();
-    
-    // PublicId
-    TInt32 publicId = ReadMUint32L();
-
-    if( publicId == 0 )
-        {
-        publicId = ReadMUint32L();
-        }
-    else
-        {
-        publicId = -publicId;
-        }
-
-    // Charset
-    TUint32 charSet = ReadMUint32L();
-
-    // String table
-    ReadStringTableL();
-
-    // Document begins now
-    if( publicId < 0 )
-        {
-        iGenerator->StartDocument(version, -publicId, charSet);
-        }
-    else
-        {
-        iGenerator->StartDocument(version, 
-            StringTableString(publicId), charSet);
-        }
-    LOGGER_LEAVEFN( "CSConConMLHandler::DoParseDocumentHeaderL()" );
-    return KWBXMLParserErrorOk;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConConMLHandler::DoParseDocumentBodyL()
-// Parses the next element of the document
-// -----------------------------------------------------------------------------
-//  
-TConMLParserError CSConConMLHandler::DoParseDocumentBodyL()
-    {
-    LOGGER_ENTERFN( "CSConConMLHandler::DoParseDocumentBodyL()" );
-    TUint8 id(0);
-    TRAPD(err, id = ReadUint8L());
-
-    if( err != KErrNone )
-        {
-        if( err == KErrEof )
-            {
-            iGenerator->EndDocument();
-            if( iElemStack.Count() > 0 )
-                {
-                LOGGER_WRITE( "CSConConMLHandler::DoParseDocumentBodyL() : KWBXMLParserErrorEofTooEarly " );
-                return KWBXMLParserErrorEofTooEarly;
-                }
-            return KWBXMLParserErrorEof;
-            }
-        User::Leave(err);
-        }
-    
-    switch (id) 
-        {
-        case END:
-            {
-            if( !iElemStack.Count() )
-                {
-                LOGGER_WRITE( "CSConConMLHandler::DoParseDocumentBodyL() : KWBXMLParserErrorinvalidDocument " );
-                User::Leave( KWBXMLParserErrorinvalidDocument );
-                }
-            TUint8 tag( iElemStack.operator[](iElemStack.Count() - 1 ));
-            iGenerator->EndElementL( tag );
-            iElemStack.Remove(iElemStack.Count() - 1);
-            }
-            break;
-    
-        case STR_I: 
-            iGenerator->CharactersL(ReadStrIL());
-            break;
-        
-        case OPAQUE:
-            iGenerator->CharactersL(ReadOpaqueL());
-            break;
-
-        default: 
-            HandleElementL(id);
-            break;
-        }
-    LOGGER_LEAVEFN( "CSConConMLHandler::DoParseDocumentBodyL()" );
-    return KWBXMLParserErrorOk;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConConMLHandler::ReadUint8L()
-// Reads one byte from the document
-// -----------------------------------------------------------------------------
-//  
-TUint8 CSConConMLHandler::ReadUint8L()
-    {
-    LOGGER_ENTERFN( "CSConConMLHandler::ReadUint8L()" );
-    if ( iPos == iParseBuffer->Size()) 
-        {
-        User::Leave ( KErrEof );
-        }
-    TUint8 value;
-    HBufC8* data = HBufC8::NewLC( sizeof(TUint8) );
-    TPtr8 ptr = data->Des();
-    iParseBuffer->Read(iPos, ptr, sizeof(TUint8));
-    iPos+= sizeof(TUint8);
-    value = ptr[0];
-    CleanupStack::PopAndDestroy(1); //data 
-    LOGGER_WRITE_1( "CSConConMLHandler::ReadUint8L()\
-     : returned %d ", value );
-    return value;
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConConMLHandler::ReadMUint32L()
-// Reads multibyte coding from the document
-// -----------------------------------------------------------------------------
-//  
-TUint32 CSConConMLHandler::ReadMUint32L()
-    {
-    LOGGER_ENTERFN( "CSConConMLHandler::ReadMUint32L()" );
-    TUint32 result = 0;
-    TUint8 c;
-    
-    do  {
-        c = ReadUint8L();
-        result = (result << 7) | (c & 0x7f);
-        } while ( c & 0x80 );
-    
-    LOGGER_WRITE_1( "CSConConMLHandler::ReadMUint32L()\
-     : returned %d ", result );
-    return result;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConConMLHandler::ReadStrIL()
-// Reads string data from the document
-// -----------------------------------------------------------------------------
-//  
-TPtrC8 CSConConMLHandler::ReadStrIL()
-    {
-    LOGGER_ENTERFN( "CSConConMLHandler::ReadStrIL()" );
-    iBuffer->Reset();
-    RBufWriteStream bws(*iBuffer);
-    TUint8 c;
-    while( (c = ReadUint8L()) != 0 )
-        {
-        bws.WriteUint8L(c);
-        }
-    bws.CommitL();
-    LOGGER_LEAVEFN( "CSConConMLParser::ReadStrIL()" );
-    return iBuffer->Ptr(0);
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConConMLHandler::ReadStringTableL()
-// Handles the document's string table
-// -----------------------------------------------------------------------------
-//  
-void CSConConMLHandler::ReadStringTableL()
-    {
-    LOGGER_ENTERFN( "CSConConMLHandler::ReadStringTableL()" );
-    delete iStringTable;
-    iStringTable = NULL;
-    TUint32 strTblLen = ReadMUint32L();
-
-    if( strTblLen > 0 )
-        {
-        if( iPos+strTblLen > iParseBuffer->Size()) 
-            {
-            LOGGER_WRITE( "CSConConMLHandler::ReadStringTableL() : LEAVE KErrEof " );
-            User::Leave ( KErrEof );
-            }
-        iStringTable = HBufC8::NewL(strTblLen);
-        TPtr8 ptr = iStringTable->Des();
-        iParseBuffer->Read(iPos, ptr, strTblLen);
-        iPos+=strTblLen;
-        }
-    LOGGER_LEAVEFN( "CSConConMLHandler::ReadStringTableL()" );
-    }
-    
-// -----------------------------------------------------------------------------
-// CSConConMLHandler::StringTableString()
-// Returns a value from the string table according to the given index
-// -----------------------------------------------------------------------------
-//  
-TPtrC8 CSConConMLHandler::StringTableString( TUint32 aIndex )
-    {
-    LOGGER_ENTERFN( "CSConConMLHandler::StringTableString()" );
-    TPtrC8 temp(iStringTable->Mid(aIndex));
-    TInt pos = temp.Find(KWBXMLNull());
-    if( pos != KErrNotFound )
-        {
-        temp.Set(temp.Left(pos));
-        }
-    LOGGER_LEAVEFN( "CSConConMLHandler::StringTableString()" );
-    return temp;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConConMLHandler::HandleElementL()
-// Starts a new element in the document
-// -----------------------------------------------------------------------------
-//  
-void CSConConMLHandler::HandleElementL( TUint8 aId )
-    {
-    LOGGER_ENTERFN( "CSConConMLHandler::HandleElementL()" );
-    TUint8 tag(TUint8(aId & 0x3f));
-        
-    iGenerator->StartElementL( tag );
-
-    if( aId & 0x40 ) 
-        {
-        iElemStack.Append( tag );
-        }
-    else 
-        {
-        iGenerator->EndElementL(tag);
-        }
-    LOGGER_LEAVEFN( "CSConConMLHandler::HandleElementL()" );
-    }
-
-// -----------------------------------------------------------------------------
-// CSConConMLHandler::ReadOpaqueL()
-// Reads opaque data from the document
-// -----------------------------------------------------------------------------
-//  
-TPtrC8 CSConConMLHandler::ReadOpaqueL()
-    {
-    LOGGER_ENTERFN( "CSConConMLHandler::ReadOpaqueL()" );
-    iBuffer->Reset();
-    RBufWriteStream bws(*iBuffer);
-    TUint32 length = ReadMUint32L();
-    if( iPos+length > iParseBuffer->Size()) 
-        {
-        LOGGER_WRITE( "CSConConMLHandler::ReadOpaqueL() : LEAVE KErrEof " );
-        User::Leave ( KErrEof );
-        }
-    HBufC8* data = HBufC8::NewLC( length );
-    TPtr8 ptr = data->Des();
-    iParseBuffer->Read( iPos, ptr, length );
-    iPos+= length;
-    bws.WriteL(ptr, length);
-    bws.CommitL();
-    CleanupStack::PopAndDestroy(1); // data
-    
-    LOGGER_LEAVEFN( "CSConConMLHandler::ReadOpaqueL()" );
-    return iBuffer->Ptr(0);
-    }
-
--- a/connectivitymodules/SeCon/wbxml/conmlhandler/src/sconxmlelement.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,77 +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:  ConML parser/generator
-*
-*/
-
-
-// -----------------------------------------------------------------------------
-// Includes
-// -----------------------------------------------------------------------------
-
-#include "sconxmlelement.h"
-#include "sconconmldtd.h"
-
-// -----------------------------------------------------------------------------
-// TElementParams
-// -----------------------------------------------------------------------------
-TXMLElementParams::TXMLElementParams( 
-    TAny* aCallbacks, 
-    CXMLStack<CXMLElement>* aCmdStack, 
-    CXMLStack<CXMLElement>* aCleanupStack ) :
-	iCallbacks(aCallbacks), 
-	iCmdStack(aCmdStack), 
-	iCleanupStack(aCleanupStack)
-	{
-	}
-
-// -----------------------------------------------------------------------------
-// CXMLElement
-// -----------------------------------------------------------------------------
-CXMLElement* CXMLElement::BeginElementL( 
-    TUint8 /*aTag*/, const TXMLElementParams& /*Params*/ )
-	{
-	return 0;
-	}
-
-// -----------------------------------------------------------------------------
-CXMLElement::TAction CXMLElement::EndElementL( TAny* /*aCallbacks*/, 
-    TUint8 /*aTag*/ )
-	{
-	return EPop;
-	}
-
-
-// -----------------------------------------------------------------------------
-TBool CXMLElement::NeedsCleanup() const
-	{
-	return EFalse;
-	}
-
-// -----------------------------------------------------------------------------
-void CXMLElement::SetDataL( const TDesC8& /*aData*/ )
-	{
-	}
-
-// -----------------------------------------------------------------------------
-TPtrC8 CXMLElement::Data() const
-	{
-	return TPtrC8();
-	}
-
-// -----------------------------------------------------------------------------
-TBool CXMLElement::Validate()
-	{
-	return ETrue;
-	}
--- a/connectivitymodules/SeCon/wbxml/conmlhandler/src/sconxmlworkspace.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,175 +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:  ConML parser/generator
-*
-*/
-
-
-// -----------------------------------------------------------------------------
-// Includes
-// -----------------------------------------------------------------------------
-#include "sconxmlworkspace.h"
-
-// -----------------------------------------------------------------------------
-// CXMLWorkspace
-// -----------------------------------------------------------------------------
-CXMLWorkspace::CXMLWorkspace()
-	{
-	}
-	
-// -----------------------------------------------------------------------------
-// NewL
-// -----------------------------------------------------------------------------
-CXMLWorkspace* CXMLWorkspace::NewL()
-	{
-	CXMLWorkspace* self = new (ELeave) CXMLWorkspace();
-	CleanupStack::PushL(self);
-	self->ConstructL();
-	CleanupStack::Pop(); // self
-	return self;
-	}
-
-// -----------------------------------------------------------------------------
-// ConstructL
-// -----------------------------------------------------------------------------
-void CXMLWorkspace::ConstructL()
-	{
-	iBuffer = CBufFlat::NewL(32);
-	iTransactions = new (ELeave) RArray<TUint>();
-	}
-
-// -----------------------------------------------------------------------------
-// ~CXMLWorkspace
-// -----------------------------------------------------------------------------
-CXMLWorkspace::~CXMLWorkspace()
-	{
-	delete iBuffer;
-	if( iTransactions )
-		{
-		iTransactions->Reset();
-		}
-	delete iTransactions;
-	}
-
-// -----------------------------------------------------------------------------
-// BeginTransaction
-// -----------------------------------------------------------------------------
-void CXMLWorkspace::BeginTransaction()
-	{
-	iTransactions->Append(Size());
-	}
-	
-// -----------------------------------------------------------------------------
-// Commit
-// -----------------------------------------------------------------------------
-TInt CXMLWorkspace::Commit()
-	{
-	if( iTransactions->Count() == 0 )
-		{
-		return KErrGeneral;
-		}
-	iTransactions->Remove(iTransactions->Count() - 1);
-	return KErrNone;
-	}
-
-// -----------------------------------------------------------------------------
-// CommitAll
-// -----------------------------------------------------------------------------
-void CXMLWorkspace::CommitAll()
-	{
-	iTransactions->Reset();
-	}
-
-// -----------------------------------------------------------------------------
-// Rollback
-// -----------------------------------------------------------------------------
-TInt CXMLWorkspace::Rollback()
-	{
-	if( iTransactions->Count() == 0 )
-		{
-		return KErrGeneral;
-		}
-	TUint begin = iTransactions->operator[](iTransactions->Count() - 1);
-	Delete(begin, Size() - begin);
-	iTransactions->Remove(iTransactions->Count() - 1);
-	return KErrNone;
-	}
-	
-// -----------------------------------------------------------------------------
-// Reset
-// -----------------------------------------------------------------------------
-void CXMLWorkspace::Reset()
-	{
-	iBuffer->Reset();
-	}
-
-// -----------------------------------------------------------------------------
-// WriteL
-// -----------------------------------------------------------------------------
-void CXMLWorkspace::WriteL( const TDesC8& aData )
-	{
-	TRAPD(err, iBuffer->InsertL(iBuffer->Size(), aData));
-	if( err != KErrNone )
-		{
-		User::Leave(KErrTooBig);
-		}
-	}
-
-// -----------------------------------------------------------------------------
-// WriteL
-// -----------------------------------------------------------------------------
-void CXMLWorkspace::WriteL( const TUint8 aData )
-	{
-	WriteL(TPtrC8(&aData, 1));
-	}
-
-// -----------------------------------------------------------------------------
-// Buffer
-// -----------------------------------------------------------------------------
-TPtrC8 CXMLWorkspace::Buffer()
-	{
-	return iBuffer->Ptr(0);
-	}
-
-// -----------------------------------------------------------------------------
-// FreeSize
-// -----------------------------------------------------------------------------
-TInt CXMLWorkspace::FreeSize()
-	{
-	return (KMaxTInt32 - Size());
-	}
-
-// -----------------------------------------------------------------------------
-// MaxSize
-// -----------------------------------------------------------------------------
-TInt CXMLWorkspace::MaxSize()
-	{
-	return KMaxTInt32;
-	}
-
-// -----------------------------------------------------------------------------
-// Size
-// -----------------------------------------------------------------------------
-TInt CXMLWorkspace::Size()
-	{
-	return iBuffer->Size();
-	}
-
-// -----------------------------------------------------------------------------
-// Delete
-// -----------------------------------------------------------------------------
-void CXMLWorkspace::Delete( TInt aPos, TInt aLength )
-	{
-	iBuffer->Delete(aPos, aLength);
-	}
--- a/connectivitymodules/group/bld.inf	Tue Feb 02 01:11:40 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
-/*
-* Copyright (c) 2006 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
-*
-*/
-
-
-#include "../SeCon/group/bld.inf"
--- a/group/bld.inf	Tue Feb 02 01:11:40 2010 +0200
+++ b/group/bld.inf	Fri Mar 19 09:40:39 2010 +0200
@@ -18,4 +18,3 @@
 
 
 #include "../remoteconn_plat/group/bld.inf"
-#include "../connectivitymodules/group/bld.inf"
--- a/mtpdataproviders/mtpfileandfolderdp/inc/cmtpfiledp.h	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpdataproviders/mtpfileandfolderdp/inc/cmtpfiledp.h	Fri Mar 19 09:40:39 2010 +0200
@@ -27,6 +27,7 @@
 #include "mtpdebug.h"
 #include "rmtpfiledpsingletons.h"
 #include "rmtpdpsingletons.h"
+#include "rmtpframework.h"
 
 class CMTPFileDpExclusionMgr;
 class CMTPFSEnumerator;
@@ -117,6 +118,8 @@
     
     TInt								iActiveProcessor;
     TBool								iActiveProcessorRemoved;
+    
+	RMTPFramework               		iSingletons;
 
     };
     
--- a/mtpdataproviders/mtpfileandfolderdp/src/cmtpfiledp.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpdataproviders/mtpfileandfolderdp/src/cmtpfiledp.cpp	Fri Mar 19 09:40:39 2010 +0200
@@ -28,6 +28,7 @@
 #include "mtpfiledpconst.h"
 #include "mtpfiledppanic.h"
 #include "mtpfiledpprocessor.h"
+#include "cmtpdataprovidercontroller.h"
 
 // Class constants
 static const TInt KArrayGranularity = 3;
@@ -63,6 +64,7 @@
     iActiveProcessors.Close();
     iDpSingletons.Close();
 	iFileDPSingletons.Close();
+	iSingletons.Close();
     delete iFileEnumerator;
     delete iExclusionMgr;
     __FLOG(_L8("~CMTPFileDataProvider - Exit"));
@@ -135,12 +137,12 @@
     {
     __FLOG(_L8("StartObjectEnumerationL - Entry"));
 
-    iExclusionMgr->AppendFormatExclusionListL();
-    iDpSingletons.MTPUtility().FormatExtensionMapping();
     iPendingEnumerations.AppendL(aStorageId);
     if (iPendingEnumerations.Count() == 1)
         {
-        iFileEnumerator->StartL(iPendingEnumerations[KActiveEnumeration]);
+		CMTPDataProviderController& dpController(iSingletons.DpController());
+		TBool bOnlyScanRoot = ( (dpController.EnumerateState() == CMTPDataProviderController::EEnumeratingFrameworkObjects) && (dpController.NeedEnumeratingPhase2()) );
+		iFileEnumerator->StartL(iPendingEnumerations[KActiveEnumeration], bOnlyScanRoot);
         }
     __FLOG(_L8("StartObjectEnumerationL - Exit"));
     }
@@ -148,6 +150,8 @@
 void CMTPFileDataProvider::StartStorageEnumerationL()
     {
     __FLOG(_L8("StartStorageEnumerationL - Entry"));
+    iExclusionMgr->AppendFormatExclusionListL();
+    iDpSingletons.MTPUtility().FormatExtensionMapping();
     Framework().StorageEnumerationCompleteL();
     __FLOG(_L8("StartStorageEnumerationL - Exit"));
     }
@@ -220,7 +224,9 @@
     iPendingEnumerations.Remove(KActiveEnumeration);
     if (iPendingEnumerations.Count())
         {
-        iFileEnumerator->StartL(iPendingEnumerations[KActiveEnumeration]);
+		CMTPDataProviderController& dpController(iSingletons.DpController());
+		TBool bOnlyScanRoot = ( (dpController.EnumerateState() == CMTPDataProviderController::EEnumeratingFrameworkObjects) && (dpController.NeedEnumeratingPhase2()) );
+        iFileEnumerator->StartL(iPendingEnumerations[KActiveEnumeration], bOnlyScanRoot);
         }
     __FLOG(_L8("HandleEnumerationCompletedL - Exit"));
     }
@@ -246,6 +252,7 @@
     __FLOG(_L8("ConstructL - Entry"));
   	iDpSingletons.OpenL(Framework());
   	iFileDPSingletons.OpenL(Framework());
+  	iSingletons.OpenL();
   	
   	iExclusionMgr = CMTPFileDpExclusionMgr::NewL(Framework());
   	iDpSingletons.SetExclusionMgrL(*iExclusionMgr);
--- a/mtpdataproviders/mtpimagedp/group/mtpimagedp.mmp	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpdataproviders/mtpimagedp/group/mtpimagedp.mmp	Fri Mar 19 09:40:39 2010 +0200
@@ -67,6 +67,7 @@
 SOURCE          mtpimagedprequestprocessor.cpp 
 SOURCE          cmtpimagedpsetobjectprotection.cpp
 SOURCE          cmtpimagedprenameobject.cpp
+SOURCE          cmtpimagedpnewpicturesnotifier.cpp
 
 // ECOM resource
 START RESOURCE     mtpimagedp.rss    
--- a/mtpdataproviders/mtpimagedp/inc/cmtpimagedp.h	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpdataproviders/mtpimagedp/inc/cmtpimagedp.h	Fri Mar 19 09:40:39 2010 +0200
@@ -39,8 +39,10 @@
 class CMTPImageDpMdeObserver;
 class CRepository;
 class CMTPImageDpRenameObject;
+class CMTPImageDpNewPicturesNotifier;
 
 const TInt KMaxExtNameLength = 4;
+const TInt KMaxMimeNameLength = 10;
 
 /** 
 Implements the picture data provider plugin.
@@ -59,11 +61,14 @@
     CMTPImageDpThumbnailCreator&  ThumbnailManager() const;
     CRepository& Repository() const;
     
-    TMTPFormatCode FindFormatL(const TDesC& aExtension);
+    TMTPFormatCode FindFormat(const TDesC& aExtension);
+    const TDesC& FindMimeType(const TDesC& aExtension);
     TBool GetCacheParentHandle(const TDesC& aParentPath, TUint32& aParentHandle);
     void  SetCacheParentHandle(const TDesC& aParentPath, TUint32 aParentHandle);
     void AppendDeleteObjectsArrayL(const TDesC& aSuid);
     void HandleDeleteObjectsArray();
+    void IncreaseNewPictures(TInt aCount);
+    void DecreaseNewPictures(TInt aCount);
     
 public: // From CMTPDataProviderPlugin
     void Cancel();
@@ -109,6 +114,7 @@
     CMTPImageDpMdeObserver*             iMdeObserver;
     CRepository*                        iRepository;
     CMTPImageDpRenameObject*            iRenameObject;
+    CMTPImageDpNewPicturesNotifier*     iNewPicNotifier;
     
     /**
     The active request processors table.
@@ -116,13 +122,16 @@
     RPointerArray<MMTPRequestProcessor> iActiveProcessors;
     
     /**
-     * contain the image mapping of extenstion to formatcode
+     * contain the mapping image'extension to formatcode
      */
     RHashMap<TBuf<KMaxExtNameLength>, TMTPFormatCode> iFormatMappings;
     
-    SMTPImageDpParentCache  iParentCache;
+    /**
+     * contain the mapping image's extension to mime type
+     */
+    RHashMap<TBuf<KMaxExtNameLength>, TBuf<KMaxMimeNameLength> > iMimeMappings;    
     
-    TUint                   iPrePictures;
+    SMTPImageDpParentCache  iParentCache;
     
     TInt                    iActiveProcessor;
     TBool                   iActiveProcessorRemoved;    
--- a/mtpdataproviders/mtpimagedp/inc/cmtpimagedpcopyobject.h	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpdataproviders/mtpimagedp/inc/cmtpimagedpcopyobject.h	Fri Mar 19 09:40:39 2010 +0200
@@ -75,6 +75,7 @@
     TUint32                 iNewParentHandle;
     TUint32                 iStorageId;
     TFileName               iNewFileName;
+    MMTPDataProviderFramework& iFramework;
     CMTPImageDataProvider&  iDataProvider;
     
     /*
--- a/mtpdataproviders/mtpimagedp/inc/cmtpimagedpgetobject.h	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpdataproviders/mtpimagedp/inc/cmtpimagedpgetobject.h	Fri Mar 19 09:40:39 2010 +0200
@@ -25,6 +25,7 @@
 
 class CMTPTypeFile;
 class CMTPImageDataProvider;
+class MMTPDataProviderFramework;
 
 /** 
 Defines file data provider GetObject request processor
@@ -56,6 +57,7 @@
 	 */
 	__FLOG_DECLARATION_MEMBER_MUTABLE;
 	
+	MMTPDataProviderFramework&    iFramework;
 	CMTPTypeFile*          iFileObject;
 	CMTPImageDataProvider& iDataProvider;
 	};
--- a/mtpdataproviders/mtpimagedp/inc/cmtpimagedpgetobjectpropdesc.h	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpdataproviders/mtpimagedp/inc/cmtpimagedpgetobjectpropdesc.h	Fri Mar 19 09:40:39 2010 +0200
@@ -67,7 +67,8 @@
     void ServiceRepresentativeSampleFormatL();
     void ServiceRepresentativeSampleSizeL();
     void ServiceRepresentativeSampleHeightL();
-    void ServiceRepresentativeSampleWidthL();   
+    void ServiceRepresentativeSampleWidthL();
+    void ServiceRepresentativeSampleDataL();
     void ServiceNonConsumableL();
     TUint16 GetPropertyGroupNumber(const TUint16 aPropCode) const;
     
--- a/mtpdataproviders/mtpimagedp/inc/cmtpimagedpgetobjectpropvalue.h	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpdataproviders/mtpimagedp/inc/cmtpimagedpgetobjectpropvalue.h	Fri Mar 19 09:40:39 2010 +0200
@@ -30,6 +30,7 @@
 class TMTPTypeUint64;
 class TMTPTypeUint128;
 class CMTPTypeString;
+class CMTPTypeArray;
 class CMTPImageDataProvider;
 
 
@@ -70,6 +71,7 @@
     void ServiceRepresentativeSampleSizeL();
     void ServiceRepresentativeSampleHeightL();
     void ServiceRepresentativeSampleWidthL();
+    void ServiceRepresentativeSampleDataL();
     void ServiceNonConsumableL();
 
 private:
@@ -80,6 +82,7 @@
     TMTPTypeUint64			iMTPTypeUint64;
     TMTPTypeUint128			iMTPTypeUint128;
     CMTPTypeString*			iMTPTypeString;
+    CMTPTypeArray*          iMTPTypeArray;
     CMTPObjectMetaData*     iObjectMeta;
     
     /**
--- a/mtpdataproviders/mtpimagedp/inc/cmtpimagedpgetthumb.h	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpdataproviders/mtpimagedp/inc/cmtpimagedpgetthumb.h	Fri Mar 19 09:40:39 2010 +0200
@@ -57,7 +57,7 @@
     */
     __FLOG_DECLARATION_MEMBER_MUTABLE;
     CMTPImageDataProvider& imgDp;
-    CMTPTypeOpaqueData*    iThumb;
+    CMTPTypeOpaqueData*    iThumb;    
     CMTPObjectMetaData*    iObjectMeta;
     };
     
--- a/mtpdataproviders/mtpimagedp/inc/cmtpimagedpmdeobserver.h	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpdataproviders/mtpimagedp/inc/cmtpimagedpmdeobserver.h	Fri Mar 19 09:40:39 2010 +0200
@@ -64,7 +64,7 @@
                                    const RArray<TItemId>& aObjectIdArray);
             
     void ProcessMdeNotificationL(const RArray<TItemId>& aObjectIdArray, TObserverNotificationType aType);     
-    void CreateMetadataL(const CMdEObject& aMdeObject, CMTPObjectMetaData& aMetaData); 
+    void CreateMetadataL(const TParsePtrC& aParse, TMTPFormatCode aFormat, TUint32 aParentHandle, CMTPObjectMetaData& aMetaData); 
     
 private:
     /**
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mtpdataproviders/mtpimagedp/inc/cmtpimagedpnewpicturesnotifier.h	Fri Mar 19 09:40:39 2010 +0200
@@ -0,0 +1,50 @@
+// 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:
+//
+
+/**
+ @file
+ @internalTechnology
+*/
+
+#ifndef CMTPIMAGEDPNEWPICTURENOTIFIER_H
+#define CMTPIMAGEDPNEWPICTURENOTIFIER_H
+
+#include <e32base.h>
+
+class CMTPImageDpNewPicturesNotifier : public CTimer
+    {
+public:
+
+    static CMTPImageDpNewPicturesNotifier* NewL(); 
+    virtual ~CMTPImageDpNewPicturesNotifier();
+    
+    void SetNewPictures(TInt aValue);
+    void IncreaseCount(TInt aValue);
+    void DecreaseCount(TInt aValue);
+    
+private: // From CTimer
+
+    void RunL();
+    
+private:
+
+    CMTPImageDpNewPicturesNotifier();
+    void ConstructL();
+    
+private:
+    TInt   iNewPictures;
+    };
+
+#endif // CMTPIMAGEDPNEWPICTURENOTIFIER_H
--- a/mtpdataproviders/mtpimagedp/inc/cmtpimagedpobjectpropertymgr.h	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpdataproviders/mtpimagedp/inc/cmtpimagedpobjectpropertymgr.h	Fri Mar 19 09:40:39 2010 +0200
@@ -41,6 +41,9 @@
 class CFileStore;
 class CMTPTypeString;
 class CMTPObjectMetaData;
+class CMTPImageDataProvider;
+class CMTPTypeOpaqueData;
+class CMTPTypeArray;
 
 /** 
 Manage picture object properties
@@ -52,7 +55,7 @@
    {    
    
 public:
-    static CMTPImageDpObjectPropertyMgr* NewL(MMTPDataProviderFramework& aFramework);
+    static CMTPImageDpObjectPropertyMgr* NewL(MMTPDataProviderFramework& aFramework, CMTPImageDataProvider& aDataProvider);
     ~CMTPImageDpObjectPropertyMgr();
     void SetCurrentObjectL(CMTPObjectMetaData& aObjectInfo, TBool aRequireForModify, TBool aSaveToCache = EFalse);
     
@@ -67,12 +70,16 @@
     void GetPropertyL(TMTPObjectPropertyCode aProperty, TUint32& aValue);
     void GetPropertyL(TMTPObjectPropertyCode aProperty, TUint64& aValue);
     void GetPropertyL(TMTPObjectPropertyCode aProperty, TMTPTypeUint128& aValue);
-    void GetPropertyL(TMTPObjectPropertyCode aProperty, CMTPTypeString& aValue);    
+    void GetPropertyL(TMTPObjectPropertyCode aProperty, CMTPTypeString& aValue);
+    void GetPropertyL(TMTPObjectPropertyCode aProperty, CMTPTypeArray& aValue);
     
     //clear the cache
     void ClearCacheL();
     void ConvertMTPTimeStr2TTimeL(const TDesC& aTimeString, TTime& aModifiedTime) const;
     
+    void StoreThunmnail(TUint aHandle, HBufC8* aData);
+    HBufC8* Thumbnail(TUint aHandle);
+    
 public:
     void SetMdeSessionError(TInt aError);
     CMdESession& MdeSession();
@@ -82,7 +89,7 @@
     void HandleSessionError(CMdESession& aSession, TInt aError);
    
 private:
-    CMTPImageDpObjectPropertyMgr(MMTPDataProviderFramework& aFramework);
+    CMTPImageDpObjectPropertyMgr(MMTPDataProviderFramework& aFramework, CMTPImageDataProvider& aDataProvider);
     void ConstructL(MMTPDataProviderFramework& aFramework);
     
     TBool GetYear(const TDesC& aDateString, TInt& aYear) const;
@@ -96,9 +103,11 @@
     void SetProperty2CacheL(TMTPObjectPropertyCode aProperty, TAny* aValue);
     void GetPropertyFromMdsL(TMTPObjectPropertyCode aProperty, TAny* aValue);
 
-    TUint32 ParseImageFileL(const TDesC& aUri, TMTPObjectPropertyCode aPropCode);
     void RemoveProperty(CMdEObject& aObject, CMdEPropertyDef& aPropDef);
     
+    void OpenMdeObjectL();
+    void ClearThumnailCache();
+    
 private:
     
     //define property cache object
@@ -177,21 +186,38 @@
         static const TElementMetaData   KElements[];        
     };
     
+    /**
+     * Thumbnail cache used for winlogo test
+     */
+    struct TThumbnailCache
+        {
+        TUint    iObjectHandle;
+        HBufC8*  iThumbnailData;
+        };   
+    
 private:
     /**
     FLOGGER debug trace member variable.
     */    
     __FLOG_DECLARATION_MEMBER_MUTABLE;
     
+    MMTPDataProviderFramework&  iFramework;
+    CMTPImageDataProvider&      iDataProvider;
     CActiveSchedulerWait*       iActiveSchedulerWait;
     CMdESession*                iMetaDataSession;
     TInt                        iMdeSessionError;
-    CMdEObject*                 iObject;
+    CMdEObject*                 iObject;//used for read properties from MdS
 
     RFs&                        iFs;
     MMTPObjectMgr&              iObjectMgr;
     CMTPObjectMetaData*         iObjectInfo;  //not owned
     TBool                       iCacheHit;//flag to indicate cache is available
+    TBool                       iNeedParse;//flag to indicate whether we need to parse image file by our self
+	
+    /*
+     * Cache thumbnail, thumbnail size is inconsistent in winlogo test
+     */
+    TThumbnailCache              iThumbnailCache;
     
     /**
      * Cache the latest image properties which PC send to device,
--- a/mtpdataproviders/mtpimagedp/inc/cmtpimagedpthumbnailcreator.h	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpdataproviders/mtpimagedp/inc/cmtpimagedpthumbnailcreator.h	Fri Mar 19 09:40:39 2010 +0200
@@ -35,6 +35,8 @@
 
 #include "mtpdebug.h"
 
+class CMTPImageDataProvider;
+
 #define MTPTHUMBSCALING
 
 // CLASS DECLARATION
@@ -54,7 +56,7 @@
      * @param None.
      * @return An instance of CMTPImageDpThumbnailCreator.
      */
-    static CMTPImageDpThumbnailCreator* NewL();
+    static CMTPImageDpThumbnailCreator* NewL(CMTPImageDataProvider& aDataProvider);
 
     /**
      * C++ destructor.
@@ -62,16 +64,7 @@
     ~CMTPImageDpThumbnailCreator();
     
 public:
-
-    /**
-     * Gets a thumbnail from the image.
-     * @since S60 3.2
-     * @param aSession, Reference to file server.
-     * @param aFileName, Name of the image file. Caller must ensure that the referenced object exists until the asynchronous call is completed.
-     * @param aThumbName, Name of the thumbnail file to be created. Caller must ensure that the referenced object exists until the asynchronous call is completed.
-     * @param aGetThumbnailStatus, status when 
-     */
-    void GetThumbnailL(const TDesC& aFileName, CMTPTypeOpaqueData& aThumbName, TInt& result);
+    void GetThumbnailL(const TDesC& aFileName, HBufC8*& aDestinationData, TInt& result);
 
 
     void ClearThumbnailData();
@@ -105,7 +98,7 @@
     /**
      * Default C++ constructor. Not used.
      */
-    CMTPImageDpThumbnailCreator();
+    CMTPImageDpThumbnailCreator(CMTPImageDataProvider& aDataProvider);
 
     /**
      * 2nd phase constructor.
@@ -124,6 +117,8 @@
         EGetted,
         EScaling,
         EEncoding}          iState;
+        
+    CMTPImageDataProvider&  iDataProvider;
     TThumbnailRequestId     iCurrentReq;
     TInt*                   iCreationErr;
     CFbsBitmap*             iBitmap;
@@ -134,7 +129,6 @@
     HBufC8*                 iData;
     CThumbnailManager*      iThumbMgr;
     CThumbnailObjectSource* iObjectSource;
-    CMTPTypeOpaqueData*     iBuffer;             //not owned
     CActiveSchedulerWait*   iActiveSchedulerWait;
     };
 
--- a/mtpdataproviders/mtpimagedp/inc/mtpimagedpconst.h	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpdataproviders/mtpimagedp/inc/mtpimagedpconst.h	Fri Mar 19 09:40:39 2010 +0200
@@ -26,14 +26,16 @@
 #include <mtp/mtpprotocolconstants.h>
 #include <comms-infras/commsdebugutility.h> // for __FLOG debugging
 
-// for thumb creation
-const TUint32 KThumbWidht=160;
-const TUint32 KThumbHeigth=120;
+/*
+ * [Thumbnail SIZE]: performance improvement
+ */
+const TUint32 KThumbWidht=104;//avoid to scale width to 160
+const TUint32 KThumbHeigth=74;//avoid to scale width to 120
 const TUint32 KThumbCompressedSize=KThumbWidht * KThumbHeigth * 4; // from TNM
 const TUint32 KThumbFormatCode = 0x3801;
 const TUint32 KFileSizeMax = 10 * 1000 * 1000;
+const TUint32 KImageDpNotifyDelay = 1000000 * 15;// set delay time, in microseconds, default is 15s.
 
-_LIT(KJpegMimeType, "image/jpeg");
 _LIT8(KPtpMimeJPEG, "image/jpeg");
 
 /**
@@ -95,6 +97,7 @@
   	EMTPObjectPropCodeRepresentativeSampleSize,
   	EMTPObjectPropCodeRepresentativeSampleHeight,
   	EMTPObjectPropCodeRepresentativeSampleWidth,
+  	EMTPObjectPropCodeRepresentativeSampleData,
   	EMTPObjectPropCodeNonConsumable
   	};
 
@@ -130,7 +133,8 @@
     EMTPObjectPropCodeRepresentativeSampleFormat,
     EMTPObjectPropCodeRepresentativeSampleSize,
     EMTPObjectPropCodeRepresentativeSampleHeight,
-    EMTPObjectPropCodeRepresentativeSampleWidth
+    EMTPObjectPropCodeRepresentativeSampleWidth,
+    EMTPObjectPropCodeRepresentativeSampleData
     };
 
 /**
@@ -161,6 +165,13 @@
     const TText*   iExtension;
     };
 
+struct SMTPExtensionMimeTypeMapping
+    {
+    public:    
+    const TText*   iExtension;
+    const TText*   iMimeType;
+    };
+
 // Note when adding extensions: 
 // same value for iExtension can be in the file only once, 
 // values for iFormatCode code can be multiple times
@@ -173,9 +184,26 @@
 
 static const SMTPValidCodeExtensionMapping KMTPValidCodeExtensionMappings[] =
     {
-    {EMTPFormatCodeEXIFJPEG, CASTING("jpg")},   // jpeg
-    {EMTPFormatCodeEXIFJPEG, CASTING("jpe")},   // jpeg
-    {EMTPFormatCodeEXIFJPEG, CASTING("jpeg")}  // jpeg
+    {EMTPFormatCodeEXIFJPEG, CASTING("jpg")},  // jpeg
+    {EMTPFormatCodeEXIFJPEG, CASTING("jpe")},  // jpeg
+    {EMTPFormatCodeEXIFJPEG, CASTING("jpeg")}, // jpeg
+//    {EMTPFormatCodeBMP,      CASTING("bmp")},  // bmp
+//    {EMTPFormatCodeGIF,      CASTING("gif")},  // gif
+//    {EMTPFormatCodePNG,      CASTING("png")},  // png
+//    {EMTPFormatCodeTIFF,     CASTING("tif")},  // tiff, TNM does not support
+//    {EMTPFormatCodeTIFF,     CASTING("tiff")}, // tiff, TNM does not support
+    };
+
+static const SMTPExtensionMimeTypeMapping KMTPExtensionMimeTypeMappings[] =
+    {
+    {CASTING("jpg"),         CASTING("image/jpeg")}, // jpeg
+    {CASTING("jpe"),         CASTING("image/jpeg")}, // jpeg
+    {CASTING("jpeg"),        CASTING("image/jpeg")}, // jpeg
+//    {CASTING("bmp"),         CASTING("image/bmp")},  // bmp
+//    {CASTING("gif"),         CASTING("image/gif")},  // gif
+//    {CASTING("png"),         CASTING("image/png")},  // png
+//    {CASTING("tif"),         CASTING("image/tiff")}, // tiff, TNM does not support
+//    {CASTING("tiff"),        CASTING("image/tiff")}, // tiff, TNM does not support
     };
 
 /**
--- a/mtpdataproviders/mtpimagedp/inc/mtpimagedputilits.h	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpdataproviders/mtpimagedp/inc/mtpimagedputilits.h	Fri Mar 19 09:40:39 2010 +0200
@@ -47,13 +47,24 @@
     static TUint32 FindParentHandleL(MMTPDataProviderFramework& aFramework, CMTPImageDataProvider& aDataProvider, const TDesC& aFullPath);
     
     /**
-     * Calculate the new pictures value and set RProperty.
-     
-       @param aDataProvider  The image data provider reference
-       @param aNewPics       The new pictures count
-       @param aSetRProperty  Whether should set RProperty value to notify all subscribers.
+     * determine whether the object is new
+     */
+    static TBool IsNewPicture(const CMTPObjectMetaData& aMetadata);
+    
+    /**
+     * update object status to old
      */
-    static void UpdateNewPicturesValue(CMTPImageDataProvider& aDataProvider, TInt aNewPics, TBool aSetRProperty);
+    static void UpdateObjectStatusToOldL(MMTPDataProviderFramework& aFramework, CMTPObjectMetaData& aMetadata);
+    
+    /**
+     * query thumbnail size from metadata of object
+     */
+    static TInt GetThumbnailSize(const CMTPObjectMetaData& aMetadata);
+    
+    /**
+     * update object thumbnail size
+     */
+    static void UpdateObjectThumbnailSizeL(MMTPDataProviderFramework& aFramework, CMTPObjectMetaData& aMetadata, TInt aThumbnailSize);
     };
     
 #endif MTPIMAGEDPUTILITS_H
--- a/mtpdataproviders/mtpimagedp/src/cmtpimagedp.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpdataproviders/mtpimagedp/src/cmtpimagedp.cpp	Fri Mar 19 09:40:39 2010 +0200
@@ -29,6 +29,7 @@
 #include <mtp/mtpprotocolconstants.h>
 #include <mtp/mmtpobjectmgr.h>
 #include <mtp/mmtpstoragemgr.h>
+#include <mtp/cmtpobjectmetadata.h>
 #include <mtp/tmtptypeevent.h>
 
 #include "cmtpimagedp.h"
@@ -40,6 +41,7 @@
 #include "mtpimagedputilits.h"
 #include "cmtpimagedpmdeobserver.h"
 #include "cmtpimagedprenameobject.h"
+#include "cmtpimagedpnewpicturesnotifier.h"
 
 __FLOG_STMT(_LIT8(KComponent,"CMTPImageDataProvider");)
 
@@ -80,6 +82,7 @@
     CMTPDataProviderPlugin(aParams),
     iActiveProcessors(KArrayGranularity),
     iFormatMappings(&TBuf16Hash, &TBuf16Ident),
+    iMimeMappings(&TBuf16Hash, &TBuf16Ident),
     iActiveProcessor(-1),
     iEnumerated(EFalse),
 	iDeleteObjectsArray(KDeleteObjectGranularity)
@@ -94,10 +97,11 @@
     __FLOG_OPEN(KMTPSubsystem, KComponent);
     __FLOG(_L8(">> CMTPImageDataProvider::ConstructL"));
     
-    iPropertyMgr = CMTPImageDpObjectPropertyMgr::NewL(Framework());
-    iThumbnailManager = CMTPImageDpThumbnailCreator::NewL();
+    iPropertyMgr = CMTPImageDpObjectPropertyMgr::NewL(Framework(), *this);
+    iThumbnailManager = CMTPImageDpThumbnailCreator::NewL(*this);
     iMdeObserver = CMTPImageDpMdeObserver::NewL(Framework(), *this);
     iMdeObserver->SubscribeForChangeNotificationL();
+    iNewPicNotifier = CMTPImageDpNewPicturesNotifier::NewL();
     
     //Setup central repository connection
     const TUint32 KUidMTPImageRepositoryValue(0x2001FCA2);
@@ -111,6 +115,13 @@
         iFormatMappings.Insert(KMTPValidCodeExtensionMappings[i].iExtension, KMTPValidCodeExtensionMappings[i].iFormatCode);
         }    
     
+    //Initialize hash map of extension to mime type
+    count = sizeof(KMTPExtensionMimeTypeMappings) / sizeof(KMTPExtensionMimeTypeMappings[0]);
+    for(TInt i(0); i<count; i++)
+        {
+        iMimeMappings.Insert(KMTPExtensionMimeTypeMappings[i].iExtension, KMTPExtensionMimeTypeMappings[i].iMimeType);
+        }     
+    
     //Define RProperty of new pictures for status data provider
     _LIT_SECURITY_POLICY_PASS(KAllowReadAll);
     TInt error = RProperty::Define(TUid::Uid(KMTPServerUID), KMTPNewPicKey, RProperty::EInt, KAllowReadAll, KAllowReadAll);
@@ -148,8 +159,10 @@
     delete iPropertyMgr;       
     delete iRepository;   
     delete iRenameObject;
+    delete iNewPicNotifier;
     
     iFormatMappings.Close();
+    iMimeMappings.Close();
     
     //Try to delete objects in array
     HandleDeleteObjectsArray();
@@ -263,12 +276,10 @@
     if (aStorageId == KMTPStorageAll)
         {
         /*
-         * Query previous image object count for calculation of new pictures when MTP startup
+         * framework notify data provider to enumerate
          * 
          */
-        iPrePictures = QueryImageObjectCountL();
         iEnumerated = ETrue;
-        __FLOG_1(_L16("CMTPImageDpEnumerator::CompleteEnumeration - Previous Pics: %d"), iPrePictures);
         }
 
     NotifyEnumerationCompleteL(aStorageId, KErrNone);
@@ -382,7 +393,35 @@
         _LIT(KFormatExtensionJpe, "0x3801:jpe::3");
         aStrings.AppendL(KFormatExtensionJpe);
         _LIT(KFormatExtensionJpeg, "0x3801:jpeg::3");
-        aStrings.AppendL(KFormatExtensionJpeg);   
+        aStrings.AppendL(KFormatExtensionJpeg);
+        
+        /*
+         * bmp files
+         */
+//        _LIT(KFormatExtensionBmp, "0x3804:bmp::3");
+//        aStrings.AppendL(KFormatExtensionBmp);
+        
+        /*
+         * gif files
+         */
+//        _LIT(KFormatExtensionGif, "0x3807:gif::3");
+//        aStrings.AppendL(KFormatExtensionGif);
+        
+        /*
+         * png files
+         */
+//        _LIT(KFormatExtensionPng, "0x380B:png::3");
+//        aStrings.AppendL(KFormatExtensionPng);
+        
+        /*
+         * tif, tiff files
+         */
+        /*
+        _LIT(KFormatExtensionTif, "0x380D:tif::3");
+        aStrings.AppendL(KFormatExtensionTif);
+        _LIT(KFormatExtensionTiff, "0x380D:tiff::3");
+        aStrings.AppendL(KFormatExtensionTiff);
+        */                 
         }
         break;
         
@@ -530,6 +569,11 @@
             }
         }
     
+    /**
+     * We clear property manager cache when receiving session close notification from framework every times
+     */
+    iPropertyMgr->ClearCacheL();
+    
     __FLOG(_L8("<< SessionClosedL"));
     }
 
@@ -552,19 +596,10 @@
         /**
          * Get image object count from framework and calculate the new pictures
          */
-        TUint curPictures = QueryImageObjectCountL();
-        TInt  newPictures = curPictures - iPrePictures;
-        
-        __FLOG_2(_L16("CMTPImageDpEnumerator::CompleteEnumeration - Previous Pics:%d, New Pics: %d"), iPrePictures, newPictures);
-        if (newPictures >= 0)
-            {
-            MTPImageDpUtilits::UpdateNewPicturesValue(*this, newPictures, ETrue);  
-            }
-        else
-            {
-            MTPImageDpUtilits::UpdateNewPicturesValue(*this, 0, ETrue);  
-            }
-        
+        TUint newPictures = QueryImageObjectCountL();
+        RProperty::Set(TUid::Uid(KMTPServerUID), KMTPNewPicKey, newPictures);
+        iNewPicNotifier->SetNewPictures(newPictures);
+        __FLOG_1(_L16("CMTPImageDpEnumerator::CompleteEnumeration - New Pics: %d"), newPictures);        
         iEnumerated = EFalse;
         }
     
@@ -593,12 +628,39 @@
 /**
  Find format code according to its extension name 
 */
-TMTPFormatCode CMTPImageDataProvider::FindFormatL(const TDesC& aExtension)
+TMTPFormatCode CMTPImageDataProvider::FindFormat(const TDesC& aExtension)
     {
     TMTPFormatCode* ret = iFormatMappings.Find(aExtension);
-    User::LeaveIfNull(ret);
+    if (ret == NULL)
+        {
+        return EMTPFormatCodeUndefined;
+        }
+    else
+        {
+        return *ret;
+        }
+    }
+
+/**
+ Find mime type according to its extension name 
+*/
+const TDesC& CMTPImageDataProvider::FindMimeType(const TDesC& aExtension)
+    {
+    /**
+     * copy file extension by insensitive case
+     */
+    TBuf<KMaxExtNameLength> extension;
+    extension.CopyLC(aExtension);
     
-    return *ret;
+    const TDesC* ret = iMimeMappings.Find(extension);
+    if (ret == NULL)
+        {
+        return KNullDesC;
+        }
+    else
+        {
+        return *ret;
+        }
     }
 
 /**
@@ -606,8 +668,40 @@
 */
 TUint CMTPImageDataProvider::QueryImageObjectCountL()
     { 
-    TMTPObjectMgrQueryParams params(KMTPStorageAll, EMTPFormatCodeEXIFJPEG, KMTPHandleNone);    
-    return Framework().ObjectMgr().CountL(params);
+    RMTPObjectMgrQueryContext   context;
+    RArray<TUint>               handles;
+    TMTPObjectMgrQueryParams    params(KMTPStorageAll, KMTPFormatsAll, KMTPHandleNone, Framework().DataProviderId());
+    CleanupClosePushL(context);
+    CleanupClosePushL(handles);    
+    
+    do
+        {
+        /*
+         * Speed up query performance, avoid to duplicated copy object handle between RArrays
+         */
+        Framework().ObjectMgr().GetObjectHandlesL(params, context, handles);
+        }
+    while (!context.QueryComplete());    
+    
+    CMTPObjectMetaData* objMetadata = CMTPObjectMetaData::NewLC();
+    
+    TUint newPictures = 0;
+    TInt count = handles.Count();
+    for (TInt i(0); i<count; ++i)
+        {
+        Framework().ObjectMgr().ObjectL(handles[i], *objMetadata);
+        if (MTPImageDpUtilits::IsNewPicture(*objMetadata))
+            {
+            ++newPictures;
+            }
+        }
+    
+    
+    CleanupStack::PopAndDestroy(objMetadata);
+    CleanupStack::PopAndDestroy(&handles);
+    CleanupStack::PopAndDestroy(&context);
+    
+    return newPictures;
     }
 
 TBool CMTPImageDataProvider::GetCacheParentHandle(const TDesC& aParentPath, TUint32& aParentHandle)
@@ -656,3 +750,21 @@
             }
         }
     }
+
+void CMTPImageDataProvider::IncreaseNewPictures(TInt aCount)
+    {
+    __FLOG_VA((_L16(">> IncreaseNewPictures New Pictures: %d"), aCount));
+
+    iNewPicNotifier->IncreaseCount(aCount);    
+    
+    __FLOG(_L8("<< IncreaseNewPictures "));    
+    }
+
+void CMTPImageDataProvider::DecreaseNewPictures(TInt aCount)
+    {
+    __FLOG_VA((_L16(">> DecreaseNewPictures New Pictures: %d"), aCount));
+
+    iNewPicNotifier->DecreaseCount(aCount);
+    
+    __FLOG(_L8("<< DecreaseNewPictures "));    
+    }
--- a/mtpdataproviders/mtpimagedp/src/cmtpimagedpcopyobject.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpdataproviders/mtpimagedp/src/cmtpimagedpcopyobject.cpp	Fri Mar 19 09:40:39 2010 +0200
@@ -85,6 +85,7 @@
 */	
 CMTPImageDpCopyObject::CMTPImageDpCopyObject(MMTPDataProviderFramework& aFramework, MMTPConnection& aConnection,CMTPImageDataProvider& aDataProvider) :
     CMTPRequestProcessor(aFramework, aConnection, sizeof(KMTPCopyObjectPolicy)/sizeof(TMTPRequestElementInfo), KMTPCopyObjectPolicy),
+    iFramework(aFramework),
     iDataProvider(aDataProvider)
     {
     __FLOG_OPEN(KMTPSubsystem, KComponent);
@@ -193,6 +194,13 @@
     SetPreviousPropertiesL(aNewFileName);
     
     iFramework.ObjectMgr().InsertObjectL(*iTargetObjectInfo);
+    //check object whether it is a new image object
+    if (MTPImageDpUtilits::IsNewPicture(*iTargetObjectInfo))
+        {
+        //increate new pictures count
+        iDataProvider.IncreaseNewPictures(1);
+        }    
+    
     __FLOG(_L8("<< CMTPImageDpCopyObject::CopyFileL"));
     CleanupStack::Pop(this);
     return iTargetObjectInfo->Uint(CMTPObjectMetaData::EHandle);
@@ -261,7 +269,7 @@
     TVolumeInfo volumeInfo;
     User::LeaveIfError(iFramework.Fs().Volume(volumeInfo, drive));
     
-    if(volumeInfo.iFree < fileEntry.iSize)
+    if(volumeInfo.iFree < fileEntry.FileSize())
         {
         result = EMTPRespCodeStoreFull;
         }
@@ -295,6 +303,7 @@
     iTargetObjectInfo = CMTPObjectMetaData::NewL();
     iTargetObjectInfo->SetUint(CMTPObjectMetaData::EDataProviderId, iSrcObjectInfo->Uint(CMTPObjectMetaData::EDataProviderId));
     iTargetObjectInfo->SetUint(CMTPObjectMetaData::EFormatCode, iSrcObjectInfo->Uint(CMTPObjectMetaData::EFormatCode));
+    iTargetObjectInfo->SetUint(CMTPObjectMetaData::EFormatSubCode, iSrcObjectInfo->Uint(CMTPObjectMetaData::EFormatSubCode));
     iTargetObjectInfo->SetDesCL(CMTPObjectMetaData::EName, iSrcObjectInfo->DesC(CMTPObjectMetaData::EName));
     iTargetObjectInfo->SetUint(CMTPObjectMetaData::ENonConsumable, iSrcObjectInfo->Uint(CMTPObjectMetaData::ENonConsumable));
     iTargetObjectInfo->SetUint(CMTPObjectMetaData::EParentHandle, iNewParentHandle);
--- a/mtpdataproviders/mtpimagedp/src/cmtpimagedpdeleteobject.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpdataproviders/mtpimagedp/src/cmtpimagedpdeleteobject.cpp	Fri Mar 19 09:40:39 2010 +0200
@@ -238,8 +238,13 @@
                 iDataProvider.AppendDeleteObjectsArrayL(iObjectMeta->DesC(CMTPObjectMetaData::ESuid));
             case KErrNone:
                 //add for test
-                __FLOG(_L8("KErrNone"));
-                iFramework.ObjectMgr().RemoveObjectL( iObjectMeta->Uint(CMTPObjectMetaData::EHandle ));
+                __FLOG(_L8("KErrNone"));                
+                //if the image object is new, we should update new picture count
+                if (MTPImageDpUtilits::IsNewPicture(*iObjectMeta))
+                    {
+                    iDataProvider.DecreaseNewPictures(1);                 
+                    }                
+                iFramework.ObjectMgr().RemoveObjectL( iObjectMeta->Uint(CMTPObjectMetaData::EHandle ));              
                 iObjectsNotDelete--;
                 iResponseCode = EMTPRespCodePartialDeletion;
                 break;
@@ -261,6 +266,15 @@
     {
     __FLOG(_L8(">> CMTPImageDpDeleteObject::StartL"));
     
+    if(iCancelled)
+        {
+        __FLOG(_L8("Cancell the delete"));
+        CMTPRequestProcessor::SendResponseL(EMTPRespCodeTransactionCancelled);
+        iObjectsToDelete.Reset();
+        iCancelled = EFalse;
+        return;
+        }
+    
     TInt numObjectsToDelete = iObjectsToDelete.Count();
 
     if ( numObjectsToDelete > 0 )
--- a/mtpdataproviders/mtpimagedp/src/cmtpimagedpgetobject.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpdataproviders/mtpimagedp/src/cmtpimagedpgetobject.cpp	Fri Mar 19 09:40:39 2010 +0200
@@ -77,7 +77,8 @@
 Standard c++ constructor
 */	
 CMTPImageDpGetObject::CMTPImageDpGetObject(MMTPDataProviderFramework& aFramework, MMTPConnection& aConnection, CMTPImageDataProvider& aDataProvider) : 
-    CMTPRequestProcessor(aFramework, aConnection, sizeof(KMTPGetObjectPolicy)/sizeof(TMTPRequestElementInfo), KMTPGetObjectPolicy), 
+    CMTPRequestProcessor(aFramework, aConnection, sizeof(KMTPGetObjectPolicy)/sizeof(TMTPRequestElementInfo), KMTPGetObjectPolicy),
+    iFramework(aFramework),
     iDataProvider(aDataProvider)
     {
     
@@ -106,7 +107,7 @@
     __ASSERT_DEBUG(objectInfo, Panic(EMTPImageDpObjectNull));
     
     BuildFileObjectL(objectInfo->DesC(CMTPObjectMetaData::ESuid));
-    SendDataL(*iFileObject);
+    SendDataL(*iFileObject);    
     __FLOG(_L8("<< CMTPImageDpGetObject::ServiceL"));
     }
 		
@@ -126,22 +127,22 @@
 
 TBool CMTPImageDpGetObject::DoHandleCompletingPhaseL()
     {
-    __FLOG(_L8(" CMTPImageDpGetObject::DoHandleResponsePhaseL - Entry"));        
-    TInt currentNewPics = 0;
-    iDataProvider.Repository().Get(ENewImagesCount, currentNewPics);
-    if (currentNewPics != 0)
+    __FLOG(_L8(" CMTPImageDpGetObject::DoHandleResponsePhaseL - Entry"));
+    
+    /**
+     * end-user does not cancel the operation, we think the getobject operation is successful.
+     */
+    if (!iCancelled)
         {
-        /**
-		Zero the new pictures of RProperty.
-		Because we think the end-use has import all pictures as long as MTP receive one getobject operation
-
-        There are two different phases to collect new pictures:
-		1. In enumeration phase, calculate new pictures value from MSS in one go.
-		2. After enumeration phase, dynamically calculate new pictures value from MdS by Notifications
-		*/
-        iDataProvider.Repository().Set(ENewImagesCount, 0);
-        RProperty::Set(TUid::Uid(KMTPServerUID), KMTPNewPicKey, 0);        
-        }    
+        TUint32 objectHandle = Request().Uint32(TMTPTypeRequest::ERequestParameter1);
+        CMTPObjectMetaData* objectInfo = iRequestChecker->GetObjectInfo(objectHandle);    
+        if (MTPImageDpUtilits::IsNewPicture(*objectInfo))
+            {       
+            //update new picture status            
+            MTPImageDpUtilits::UpdateObjectStatusToOldL(iFramework, *objectInfo);
+            iDataProvider.DecreaseNewPictures(1);
+            }
+        }
     
     __FLOG(_L8("CMTPImageDpGetObject::DoHandleResponsePhaseL - Exit"));
     return CMTPRequestProcessor::DoHandleCompletingPhaseL();
--- a/mtpdataproviders/mtpimagedp/src/cmtpimagedpgetobjectpropdesc.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpdataproviders/mtpimagedp/src/cmtpimagedpgetobjectpropdesc.cpp	Fri Mar 19 09:40:39 2010 +0200
@@ -170,6 +170,9 @@
         case EMTPObjectPropCodeRepresentativeSampleWidth:
             ServiceRepresentativeSampleWidthL();
             break;
+        case EMTPObjectPropCodeRepresentativeSampleData:
+            ServiceRepresentativeSampleDataL();
+            break;
         case EMTPObjectPropCodeNonConsumable:
             ServiceNonConsumableL();
             break;            
@@ -404,6 +407,19 @@
     CleanupStack::PopAndDestroy(expectedForm);
     }
 
+void CMTPImageDpGetObjectPropDesc::ServiceRepresentativeSampleDataL()
+    {
+    CMTPTypeObjectPropDesc::TPropertyInfo info;
+    info.iDataType     = EMTPTypeAUINT8;
+    info.iFormFlag     = CMTPTypeObjectPropDesc::EByteArrayForm;
+    info.iGetSet       = CMTPTypeObjectPropDesc::EReadOnly;
+    
+    const TUint32 KMaxLength = 0x0000FFFF;
+    TMTPTypeUint32 expectedForm(KMaxLength);
+    
+    iObjectProperty = CMTPTypeObjectPropDesc::NewL(EMTPObjectPropCodeRepresentativeSampleData, info, &expectedForm);
+    }
+
 void CMTPImageDpGetObjectPropDesc::ServiceNonConsumableL()
     {
     CMTPTypeObjectPropDescEnumerationForm* expectedForm = CMTPTypeObjectPropDescEnumerationForm::NewL(EMTPTypeUINT8);
--- a/mtpdataproviders/mtpimagedp/src/cmtpimagedpgetobjectproplist.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpdataproviders/mtpimagedp/src/cmtpimagedpgetobjectproplist.cpp	Fri Mar 19 09:40:39 2010 +0200
@@ -373,6 +373,17 @@
             }
             break;
             
+        case EMTPObjectPropCodeRepresentativeSampleData:
+            {
+            CMTPTypeArray* value = CMTPTypeArray::NewLC(EMTPTypeAUINT8);
+            iPropertyMgr.GetPropertyL(TMTPObjectPropertyCode(aPropCode), *value);            
+            CMTPTypeObjectPropListElement& propElem = iPropertyList->ReservePropElemL(aHandle, propCode);
+            propElem.SetArrayL(CMTPTypeObjectPropListElement::EValue, *value);            
+            iPropertyList->CommitPropElemL(propElem);
+            CleanupStack::PopAndDestroy(value);            
+            }
+            break;
+            
         case EMTPObjectPropCodeObjectSize:
             {
             TUint64 value;
--- a/mtpdataproviders/mtpimagedp/src/cmtpimagedpgetobjectpropvalue.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpdataproviders/mtpimagedp/src/cmtpimagedpgetobjectpropvalue.cpp	Fri Mar 19 09:40:39 2010 +0200
@@ -25,6 +25,7 @@
 #include <mtp/tmtptypeuint64.h>
 #include <mtp/tmtptypeuint128.h>
 #include <mtp/cmtptypestring.h>
+#include <mtp/cmtptypearray.h>
 #include <mtp/mmtpdataproviderframework.h>
 #include <mtp/mtpprotocolconstants.h>
 #include <mtp/mmtpobjectmgr.h>
@@ -64,6 +65,7 @@
 CMTPImageDpGetObjectPropValue::~CMTPImageDpGetObjectPropValue()
     {
     delete iMTPTypeString;	
+    delete iMTPTypeArray;
     delete iObjectMeta;
     __FLOG_CLOSE;
     }
@@ -86,6 +88,7 @@
 void CMTPImageDpGetObjectPropValue::ConstructL()
     {
     iMTPTypeString = CMTPTypeString::NewL();
+    iMTPTypeArray = CMTPTypeArray::NewL(EMTPTypeAUINT8);
     iObjectMeta = CMTPObjectMetaData::NewL();
     }
 
@@ -181,6 +184,9 @@
         case EMTPObjectPropCodeRepresentativeSampleWidth:
             ServiceRepresentativeSampleWidthL();
             break; 
+        case EMTPObjectPropCodeRepresentativeSampleData:
+            ServiceRepresentativeSampleDataL();
+            break;
         case EMTPObjectPropCodeNonConsumable:
             ServiceNonConsumableL();
             break;            
@@ -333,6 +339,13 @@
     SendDataL(iMTPTypeUint32);
     }
 
+void CMTPImageDpGetObjectPropValue::ServiceRepresentativeSampleDataL()
+    {
+    iObjectPropertyMgr.GetPropertyL(EMTPObjectPropCodeRepresentativeSampleData, *iMTPTypeArray);
+    
+    SendDataL(*iMTPTypeArray);
+    }
+
 void CMTPImageDpGetObjectPropValue::ServiceNonConsumableL()
     {
     TUint8 nonConsumable;
--- a/mtpdataproviders/mtpimagedp/src/cmtpimagedpgetpartialobject.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpdataproviders/mtpimagedp/src/cmtpimagedpgetpartialobject.cpp	Fri Mar 19 09:40:39 2010 +0200
@@ -122,7 +122,7 @@
 
     TEntry fileEntry;
     User::LeaveIfError(iFs.Entry(iObjectMeta->DesC(CMTPObjectMetaData::ESuid), fileEntry));
-    if((iOffset < fileEntry.iSize)) 
+    if((iOffset < fileEntry.FileSize())) 
         {
         result = ETrue;
         }
--- a/mtpdataproviders/mtpimagedp/src/cmtpimagedpgetthumb.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpdataproviders/mtpimagedp/src/cmtpimagedpgetthumb.cpp	Fri Mar 19 09:40:39 2010 +0200
@@ -58,7 +58,7 @@
 CMTPImageDpGetThumb::~CMTPImageDpGetThumb()
     {
     __FLOG(_L8(">> CMTPImageDpGetThumb::~CMTPImageDpGetThumb"));
-    delete iThumb;
+    delete iThumb;    
     delete iObjectMeta;
     __FLOG(_L8("<< CMTPImageDpGetThumb::~CMTPImageDpGetThumb"));
     __FLOG_CLOSE;
@@ -80,7 +80,7 @@
     {
     __FLOG_OPEN(KMTPSubsystem, KComponent);
     __FLOG(_L8("CMTPImageDpGetThumb::ConstructL"));
-    iThumb = CMTPTypeOpaqueData::NewL();
+    iThumb = CMTPTypeOpaqueData::NewL();    
     iObjectMeta = CMTPObjectMetaData::NewL();
     __FLOG(_L8("CMTPImageDpGetThumb::ConstructL"));
     }
@@ -102,17 +102,30 @@
     {
     __FLOG(_L8(">> CMTPImageDpGetThumb::ServiceL"));
     TInt err = KErrNone;
-    TEntry fileEntry;
     
-    User::LeaveIfError(iFramework.Fs().Entry(iObjectMeta->DesC(CMTPObjectMetaData::ESuid), fileEntry));
-    imgDp.ThumbnailManager().GetThumbMgr()->SetFlagsL(CThumbnailManager::EDefaultFlags);
-    if(fileEntry.iSize > KFileSizeMax)
+    //at first, try to query thumbnail from property manager
+    HBufC8* thumbnailData = imgDp.PropertyMgr().Thumbnail(iObjectMeta->Uint(CMTPObjectMetaData::EHandle));
+    if (thumbnailData == NULL)
         {
-        __FLOG(_L8(">> CMTPImageDpGetThumb::ServiceL, fileEntry.iSize > KFileSizeMax"));
-        imgDp.ThumbnailManager().GetThumbMgr()->SetFlagsL(CThumbnailManager::EDoNotCreate);
+        __FLOG(_L8("CMTPImageDpGetThumb::ServiceL-  fail to query thumbnail from cache"));
+        TEntry fileEntry;
+        
+        User::LeaveIfError(iFramework.Fs().Entry(iObjectMeta->DesC(CMTPObjectMetaData::ESuid), fileEntry));
+        imgDp.ThumbnailManager().GetThumbMgr()->SetFlagsL(CThumbnailManager::EDefaultFlags);
+        if(fileEntry.FileSize() > KFileSizeMax)
+            {
+            __FLOG(_L8(">> CMTPImageDpGetThumb::ServiceL, fileEntry.FileSize() > KFileSizeMax"));
+            imgDp.ThumbnailManager().GetThumbMgr()->SetFlagsL(CThumbnailManager::EDoNotCreate);
+            }
+        
+        imgDp.ThumbnailManager().GetThumbnailL(iObjectMeta->DesC(CMTPObjectMetaData::ESuid), thumbnailData, err);
+        User::LeaveIfError(err);
+        User::LeaveIfNull(thumbnailData);
+        
+        //Transfer ownership of thumbnailData to Property Manager
+        imgDp.PropertyMgr().StoreThunmnail(iObjectMeta->Uint(CMTPObjectMetaData::EHandle), thumbnailData);
         }
-    imgDp.ThumbnailManager().GetThumbnailL(iObjectMeta->DesC(CMTPObjectMetaData::ESuid), *iThumb, err);
-    User::LeaveIfError(err);
+    iThumb->Write(*thumbnailData);
     SendDataL(*iThumb);
     __FLOG(_L8("<< CMTPImageDpGetThumb::ServiceL"));
     }
--- a/mtpdataproviders/mtpimagedp/src/cmtpimagedpmdeobserver.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpdataproviders/mtpimagedp/src/cmtpimagedpmdeobserver.cpp	Fri Mar 19 09:40:39 2010 +0200
@@ -71,23 +71,20 @@
     __FLOG_CLOSE;
     }
 
-void CMTPImageDpMdeObserver::CreateMetadataL(const CMdEObject& aMdeObject, CMTPObjectMetaData& aMetaData)
+void CMTPImageDpMdeObserver::CreateMetadataL(const TParsePtrC& aParse, TMTPFormatCode aFormat, TUint32 aParentHandle, CMTPObjectMetaData& aMetaData)
     {
-    const TDesC& uri = aMdeObject.Uri();
-    TParsePtrC parse(uri);  
-    TMTPFormatCode format = iDataProvider.FindFormatL(parse.Ext().Mid(1));
-    TInt32 storageId = MTPImageDpUtilits::FindStorage(iFramework, uri);
-    TUint32 parentHandle = MTPImageDpUtilits::FindParentHandleL(iFramework, iDataProvider, uri);
-    
+    TInt32 storageId = MTPImageDpUtilits::FindStorage(iFramework, aParse.FullName());
+     
+    __FLOG_VA((_L16("Addition - New Image:%S"), &aParse.FullName()));
     aMetaData.SetUint(CMTPObjectMetaData::EDataProviderId, iFramework.DataProviderId());
-    aMetaData.SetUint(CMTPObjectMetaData::EFormatCode, format);
+    aMetaData.SetUint(CMTPObjectMetaData::EFormatCode, aFormat);
     aMetaData.SetUint(CMTPObjectMetaData::EStorageId, storageId);
-    aMetaData.SetDesCL(CMTPObjectMetaData::ESuid, uri);    
-    aMetaData.SetUint(CMTPObjectMetaData::EParentHandle, parentHandle);
-    aMetaData.SetDesCL(CMTPObjectMetaData::EName, parse.Name());
+    aMetaData.SetDesCL(CMTPObjectMetaData::ESuid, aParse.FullName());    
+    aMetaData.SetUint(CMTPObjectMetaData::EParentHandle, aParentHandle);
+    aMetaData.SetDesCL(CMTPObjectMetaData::EName, aParse.Name());
     
     //Increate the new pictures variable
-    ++iNewPics;
+    ++iNewPics;  
     }
 
 void CMTPImageDpMdeObserver::ProcessMdeNotificationL(const RArray<TItemId>& aObjectIdArray, TObserverNotificationType /*aType*/)
@@ -109,26 +106,51 @@
             continue;
             }
         CleanupStack::PushL(mdeObject);
+        __FLOG_VA((_L16("Addition - ObjectId:%u, URI:%S"), aObjectIdArray[i], &mdeObject->Uri()));
         
-        TUint32 handle = iFramework.ObjectMgr().HandleL(mdeObject->Uri());
-        if (handle == KMTPHandleNone)
+        //filter out all image files other jpeg files       
+        TParsePtrC parse(mdeObject->Uri());
+        TMTPFormatCode format = iDataProvider.FindFormat(parse.Ext().Mid(1));
+        if (format != EMTPFormatCodeUndefined)
             {
-            CMTPObjectMetaData* object = CMTPObjectMetaData::NewLC();
-            CreateMetadataL(*mdeObject, *object);
-            iFramework.ObjectMgr().InsertObjectL(*object);                
-            __FLOG_VA((_L16("Addition - Handle:%u, ObjectId:%u, URI:%S"), object->Uint(CMTPObjectMetaData::EHandle), aObjectIdArray[i], &mdeObject->Uri()));
-            
-            TMTPTypeEvent event;
-            event.SetUint16(TMTPTypeEvent::EEventCode, EMTPEventCodeObjectAdded);
-            event.SetUint32(TMTPTypeEvent::EEventSessionID, KMTPSessionAll);
-            event.SetUint32(TMTPTypeEvent::EEventTransactionID, KMTPTransactionIdNone);
-          
-            TUint32 handle = object->Uint(CMTPObjectMetaData::EHandle);            
-            event.SetUint32(TMTPTypeEvent::EEventParameter1, handle);                    
-            iFramework.SendEventL(event);
-            __FLOG_VA((_L8("ProcessMdeNotificationL - EMTPEventCodeObjectAdd, object handle:%u"), handle));
-            
-            CleanupStack::PopAndDestroy(object);//object 
+            TUint32 handle = iFramework.ObjectMgr().HandleL(mdeObject->Uri());
+            if (handle == KMTPHandleNone)
+                {
+                /**
+                 * Try to find parent handle of new image file
+                 * if we can't find parent handle we should issue a notification to framework, let framework to enumerate new folder if need
+                 */
+                TUint32 parentHandle = MTPImageDpUtilits::FindParentHandleL(iFramework, iDataProvider, parse.FullName());
+                if (parentHandle == KMTPHandleNone)
+                    {
+                    __FLOG_VA((_L16("Notify framework - URI:%S"), &mdeObject->Uri()));
+                    TMTPNotificationParamsFolderChange param = {mdeObject->Uri()};                                       
+                    iFramework.NotifyFrameworkL(EMTPAddFolder, &param);
+                    
+                    //try to get parent handle if framework complete it's tasks
+                    parentHandle = MTPImageDpUtilits::FindParentHandleL(iFramework, iDataProvider, parse.FullName());
+                    __FLOG_VA((_L16("Framework enumeration parent handle:%u"), parentHandle));
+                    }
+                
+                if (parentHandle != KMTPHandleNone)
+                    {
+                    CMTPObjectMetaData* object = CMTPObjectMetaData::NewLC();
+                    CreateMetadataL(parse, format, parentHandle, *object);
+                    iFramework.ObjectMgr().InsertObjectL(*object);                
+                    __FLOG_VA((_L16("Addition - New Handle:%u"), object->Uint(CMTPObjectMetaData::EHandle)));
+                    
+                    TMTPTypeEvent event;
+                    event.SetUint16(TMTPTypeEvent::EEventCode, EMTPEventCodeObjectAdded);
+                    event.SetUint32(TMTPTypeEvent::EEventSessionID, KMTPSessionAll);
+                    event.SetUint32(TMTPTypeEvent::EEventTransactionID, KMTPTransactionIdNone);
+                  
+                    TUint32 handle = object->Uint(CMTPObjectMetaData::EHandle);            
+                    event.SetUint32(TMTPTypeEvent::EEventParameter1, handle);                    
+                    iFramework.SendEventL(event);
+                    __FLOG_VA((_L8("ProcessMdeNotificationL - EMTPEventCodeObjectAdd, object handle:%u"), handle));                    
+                    CleanupStack::PopAndDestroy(object);//object                 
+                    }
+                }
             }
         
         CleanupStack::PopAndDestroy(mdeObject);//mdeObject             
@@ -165,7 +187,7 @@
     if (iNewPics > 0)
         {
         __FLOG_1(_L16("CMTPImageDpMdeObserver::CMTPImageDpMdeObserver - New Pics: %u"), iNewPics);
-        MTPImageDpUtilits::UpdateNewPicturesValue(iDataProvider, iNewPics, ETrue);
+        iDataProvider.IncreaseNewPictures(iNewPics);
         iNewPics = 0;
         }
     
@@ -188,8 +210,8 @@
         
         //Only subscribe add observer        
         CMdELogicCondition* addCondition = CMdELogicCondition::NewLC(ELogicConditionOperatorAnd);          
-        CMdEPropertyDef& itemTypePropDef = imageObjDef.GetPropertyDefL(MdeConstants::Object::KItemTypeProperty);       
-        addCondition->AddPropertyConditionL(itemTypePropDef, ETextPropertyConditionCompareEndsWith, _L("jpeg"));                       
+        CMdEPropertyDef& itemTypePropDef = imageObjDef.GetPropertyDefL(MdeConstants::Object::KItemTypeProperty);
+        addCondition->AddObjectConditionL(imageObjDef);                 
         mdeSession.AddObjectObserverL(*this, addCondition, ENotifyAdd);
         CleanupStack::Pop(addCondition);
         
--- a/mtpdataproviders/mtpimagedp/src/cmtpimagedpmoveobject.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpdataproviders/mtpimagedp/src/cmtpimagedpmoveobject.cpp	Fri Mar 19 09:40:39 2010 +0200
@@ -281,7 +281,7 @@
     TVolumeInfo volumeInfo;
     User::LeaveIfError(iFramework.Fs().Volume(volumeInfo, drive));
     
-    if(volumeInfo.iFree < fileEntry.iSize)
+    if(volumeInfo.iFree < fileEntry.FileSize())
         {
         result = EMTPRespCodeStoreFull;
         }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mtpdataproviders/mtpimagedp/src/cmtpimagedpnewpicturesnotifier.cpp	Fri Mar 19 09:40:39 2010 +0200
@@ -0,0 +1,97 @@
+// 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:
+//
+
+/**
+ @file
+ @internalTechnology
+*/
+
+#include <mtp/mtpprotocolconstants.h>
+
+#include "cmtpimagedp.h"
+#include "mtpimagedpconst.h"
+#include "cmtpimagedpnewpicturesnotifier.h"
+
+CMTPImageDpNewPicturesNotifier* CMTPImageDpNewPicturesNotifier::NewL()
+    {
+    CMTPImageDpNewPicturesNotifier* self = new (ELeave) CMTPImageDpNewPicturesNotifier();
+    CleanupStack::PushL(self);
+    self->ConstructL();
+    CleanupStack::Pop(self);
+    return self;
+    }
+    
+/**
+Destructor.
+*/
+CMTPImageDpNewPicturesNotifier::~CMTPImageDpNewPicturesNotifier()
+    {
+    Cancel();
+    }
+
+void CMTPImageDpNewPicturesNotifier::SetNewPictures(TInt aValue)
+    {
+    iNewPictures = aValue;
+    }
+
+void CMTPImageDpNewPicturesNotifier::IncreaseCount(TInt aValue)
+    {
+    Cancel();//cancel the latest timer if we have
+    iNewPictures += aValue;       
+    RProperty::Set(TUid::Uid(KMTPServerUID), KMTPNewPicKey, iNewPictures);
+    }
+
+void CMTPImageDpNewPicturesNotifier::DecreaseCount(TInt aValue)
+    {
+    iNewPictures -= aValue;
+    
+    Cancel();//cancel the latest timer if we have
+    if (iNewPictures > 0)
+        {
+        After(KImageDpNotifyDelay);
+        }
+    else
+        {
+        /**
+         * if the new pictures is equal to zero, then directly set RProperty' value
+         */
+        iNewPictures = 0;
+        RProperty::Set(TUid::Uid(KMTPServerUID), KMTPNewPicKey, iNewPictures);
+        }    
+    }
+
+void CMTPImageDpNewPicturesNotifier::RunL()
+    {
+    RProperty::Set(TUid::Uid(KMTPServerUID), KMTPNewPicKey, iNewPictures);
+    }
+    
+/** 
+Constructor
+*/
+CMTPImageDpNewPicturesNotifier::CMTPImageDpNewPicturesNotifier() : 
+    CTimer(EPriorityNormal)    
+    {
+    
+    }    
+
+/**
+Second phase constructor.
+*/    
+void CMTPImageDpNewPicturesNotifier::ConstructL()
+    {
+    CTimer::ConstructL();
+    CActiveScheduler::Add(this);
+    }
+
--- a/mtpdataproviders/mtpimagedp/src/cmtpimagedpobjectpropertymgr.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpdataproviders/mtpimagedp/src/cmtpimagedpobjectpropertymgr.cpp	Fri Mar 19 09:40:39 2010 +0200
@@ -26,11 +26,13 @@
 #include <e32cmn.h>
 #include <imageconversion.h> 
 #include <mdeconstants.h>
+#include <thumbnailmanager.h>
 
 #include <mtp/mmtpobjectmgr.h>
 #include <mtp/cmtpobjectmetadata.h>
 #include <mtp/tmtptypeuint32.h>
 #include <mtp/cmtptypestring.h>
+#include <mtp/cmtptypeopaquedata.h>
 #include <mtp/mmtpdataproviderframework.h>
 #include <mtp/cmtptypearray.h>
 #include <mtp/mmtpdataproviderframework.h>
@@ -38,7 +40,9 @@
 #include <mtp/cmtptypestring.h>
 #include <mtp/mtpprotocolconstants.h>
 
+#include "cmtpimagedp.h"
 #include "cmtpimagedpobjectpropertymgr.h"
+#include "cmtpimagedpthumbnailcreator.h"
 #include "mtpimagedppanic.h"
 #include "mtpimagedputilits.h"
 #include "mtpimagedpconst.h"
@@ -114,6 +118,7 @@
 
 void CMTPImageDpObjectPropertyMgr::CMTPImagePropertiesCache::ResetL()
     {
+    iObjectHandle = KMTPHandleNone;
     SetUint(EImagePixWidth, 0);
     SetUint(EImagePixHeight, 0);
     SetUint(EImageBitDepth, 0);
@@ -157,16 +162,18 @@
     iObjectHandle = aObjectHandle;
     }
 
-CMTPImageDpObjectPropertyMgr* CMTPImageDpObjectPropertyMgr::NewL(MMTPDataProviderFramework& aFramework)
+CMTPImageDpObjectPropertyMgr* CMTPImageDpObjectPropertyMgr::NewL(MMTPDataProviderFramework& aFramework, CMTPImageDataProvider& aDataProvider)
     {
-    CMTPImageDpObjectPropertyMgr* self = new (ELeave) CMTPImageDpObjectPropertyMgr(aFramework);
+    CMTPImageDpObjectPropertyMgr* self = new (ELeave) CMTPImageDpObjectPropertyMgr(aFramework, aDataProvider);
     CleanupStack::PushL(self);
     self->ConstructL(aFramework);
     CleanupStack::Pop(self);
     return self;
     }
 
-CMTPImageDpObjectPropertyMgr::CMTPImageDpObjectPropertyMgr(MMTPDataProviderFramework& aFramework) :
+CMTPImageDpObjectPropertyMgr::CMTPImageDpObjectPropertyMgr(MMTPDataProviderFramework& aFramework, CMTPImageDataProvider& aDataProvider) :
+    iFramework(aFramework),
+    iDataProvider(aDataProvider),
     iFs(aFramework.Fs()),
     iObjectMgr(aFramework.ObjectMgr())
     {
@@ -196,6 +203,7 @@
     delete iObject;
     delete iMetaDataSession;
     delete iActiveSchedulerWait; 
+    delete iThumbnailCache.iThumbnailData;
     __FLOG(_L8("CMTPImageDpObjectPropertyMgr::~CMTPImageDpObjectPropertyMgr - Exit"));
     __FLOG_CLOSE;
     }
@@ -218,18 +226,20 @@
             iCacheHit = ETrue;
             }
         else
-            {
+            {            
             iCacheHit = EFalse;
+
+            /**
+             * if cache miss, we should clear the cache content
+             */
+            ClearCacheL();
             
-            CMdENamespaceDef& defaultNamespace = iMetaDataSession->GetDefaultNamespaceDefL();
-            CMdEObjectDef& imageObjDef = defaultNamespace.GetObjectDefL( MdeConstants::Image::KImageObject );
+			//need parse image file by our self if fail to get properties from MdS
+            iNeedParse = ETrue;
+
+			//clear previous Mde object
             delete iObject;
-            iObject = NULL;
-            
-            //if we can not open MdS object for getting properties, we will not get properites which stored in MdS
-            TFileName uri;
-            uri.CopyLC(iObjectInfo->DesC(CMTPObjectMetaData::ESuid));
-            TRAP_IGNORE((iObject = iMetaDataSession->GetObjectL(uri, imageObjDef)));            
+            iObject = NULL;            
             }        
         }    
     else
@@ -357,7 +367,7 @@
         {
         TTime modifiedTime;
         ConvertMTPTimeStr2TTimeL(aValue, modifiedTime);
-        iFs.SetModified(iObjectInfo->DesC(CMTPObjectMetaData::ESuid), modifiedTime);     
+        iFs.SetModified(iObjectInfo->DesC(CMTPObjectMetaData::ESuid), modifiedTime);            
         }
         break;
       
@@ -413,7 +423,9 @@
             }
         break;        
     default:
-        GetPropertyFromMdsL(aProperty, &aValue);
+        aValue = 0;//initialization
+        //ingore the failure if we can't get properties form MdS
+        TRAP_IGNORE(GetPropertyFromMdsL(aProperty, &aValue));
         break;
         }
     __FLOG(_L8("<< CMTPImageDpObjectPropertyMgr::GetPropertyL"));
@@ -434,20 +446,66 @@
         aValue = iObjectInfo->Uint(CMTPObjectMetaData::EParentHandle);
         break;        
        
-    case EMTPObjectPropCodeRepresentativeSampleSize:
-        aValue = KThumbCompressedSize;
-       break;       
+    case EMTPObjectPropCodeRepresentativeSampleSize: 
+        aValue = MTPImageDpUtilits::GetThumbnailSize(*iObjectInfo);
+        if (aValue == 0)
+            {
+            __FLOG_VA((_L16("Query smaple size from MdS - URI:%S"), &iObjectInfo->DesC(CMTPObjectMetaData::ESuid)));
+            ClearThumnailCache();                                
+            /**
+             * try to query thumbnail from TNM, and then store thumbnail to cache
+             */
+            TEntry fileEntry;
+            TInt err = iFs.Entry(iObjectInfo->DesC(CMTPObjectMetaData::ESuid), fileEntry);
+            if (err == KErrNone)
+                {
+                iDataProvider.ThumbnailManager().GetThumbMgr()->SetFlagsL(CThumbnailManager::EDefaultFlags);
+                if(fileEntry.FileSize() > KFileSizeMax)
+                    {
+                    iDataProvider.ThumbnailManager().GetThumbMgr()->SetFlagsL(CThumbnailManager::EDoNotCreate);
+                    }
+                
+                /**
+                 * trap the leave to avoid return general error when PC get object property list
+                 */
+                TRAP(err, iDataProvider.ThumbnailManager().GetThumbnailL(iObjectInfo->DesC(CMTPObjectMetaData::ESuid), iThumbnailCache.iThumbnailData, err));
+                if (err == KErrNone)
+                    {
+                    iThumbnailCache.iObjectHandle = iObjectInfo->Uint(CMTPObjectMetaData::EHandle);                        
+                    if (iThumbnailCache.iThumbnailData != NULL)
+                        {
+                        aValue = static_cast<TUint32>(iThumbnailCache.iThumbnailData->Size());
+                        }
+                                                
+                    if (aValue > 0)
+                        {
+                        //update metadata column
+                        MTPImageDpUtilits::UpdateObjectThumbnailSizeL(iFramework, *iObjectInfo, aValue);
+                        }
+                    else
+                        {
+                        //trigger initiator to re-query thumbnail again if the thumbnail size of response is zero
+                        aValue = KThumbCompressedSize;
+                        }
+
+                    __FLOG_VA((_L16("Cache miss:GetThumbnailSize - URI:%S, Size:%u"), &iObjectInfo->DesC(CMTPObjectMetaData::ESuid), aValue));
+                    }
+                }
+            }	    
+        break;       
        
     case EMTPObjectPropCodeRepresentativeSampleHeight:
         aValue = KThumbHeigth;
-       break;
+        break;
        
     case EMTPObjectPropCodeRepresentativeSampleWidth:
         aValue = KThumbWidht;
-       break;
+        break;
               
     default:
-        GetPropertyFromMdsL(aProperty, &aValue);
+        aValue = 0;//initialization
+        //ingore the failure if we can't get properties form MdS
+        TRAP_IGNORE(GetPropertyFromMdsL(aProperty, &aValue));
         break;  
         }
     __FLOG(_L8("<< CMTPImageDpObjectPropertyMgr::GetPropertyL"));
@@ -522,149 +580,205 @@
         break;                 
         
     default:
-        GetPropertyFromMdsL(aProperty, &aValue);
+        //ingore the failure if we can't get properties form MdS
+        TRAP_IGNORE(GetPropertyFromMdsL(aProperty, &aValue));
         break;
         }
     __FLOG(_L8("<< CMTPImageDpObjectPropertyMgr::GetPropertyL"));
     }
 
+void CMTPImageDpObjectPropertyMgr::GetPropertyL(TMTPObjectPropertyCode aProperty, CMTPTypeArray& aValue)
+    {
+    __FLOG(_L8(">> CMTPImageDpObjectPropertyMgr::GetPropertyL -- SmapleData"));       
+    
+    if (aProperty == EMTPObjectPropCodeRepresentativeSampleData)
+        {
+        HBufC8* tnBuf = Thumbnail(iObjectInfo->Uint(CMTPObjectMetaData::EHandle));    
+        if (tnBuf != NULL)
+            {    
+            aValue.SetByDesL(*tnBuf);
+            }
+        else
+            {    
+            ClearThumnailCache();                                
+            /**
+             * try to query thumbnail from TNM, and then store thumbnail to cache
+             */
+            TEntry fileEntry;
+            TInt err = iFs.Entry(iObjectInfo->DesC(CMTPObjectMetaData::ESuid), fileEntry);
+            if (err == KErrNone)
+                {
+                iDataProvider.ThumbnailManager().GetThumbMgr()->SetFlagsL(CThumbnailManager::EDefaultFlags);
+                if(fileEntry.FileSize() > KFileSizeMax)
+                    {
+                    iDataProvider.ThumbnailManager().GetThumbMgr()->SetFlagsL(CThumbnailManager::EDoNotCreate);
+                    }
+                
+                /**
+                 * trap the leave to avoid return general error when PC get object property list
+                 */
+                TRAP(err, iDataProvider.ThumbnailManager().GetThumbnailL(iObjectInfo->DesC(CMTPObjectMetaData::ESuid), iThumbnailCache.iThumbnailData, err));
+                if (err == KErrNone)
+                    {
+                    TInt size = MTPImageDpUtilits::GetThumbnailSize(*iObjectInfo);
+                    iThumbnailCache.iObjectHandle = iObjectInfo->Uint(CMTPObjectMetaData::EHandle);                        
+                    if (iThumbnailCache.iThumbnailData != NULL)
+                        {
+                        aValue.SetByDesL(*iThumbnailCache.iThumbnailData);
+                        if (size == 0)
+                            {
+                            //update metadata column
+                            MTPImageDpUtilits::UpdateObjectThumbnailSizeL(iFramework, *iObjectInfo, iThumbnailCache.iThumbnailData->Size());
+                            __FLOG_VA((_L16("Cache miss:GetThumbnailSize - URI:%S, Size:%u"), &iObjectInfo->DesC(CMTPObjectMetaData::ESuid), size));
+                            }
+                        }                                
+                    }
+                }
+            }
+        }
+    else
+        {
+        User::Leave(EMTPRespCodeObjectPropNotSupported);
+        }
+    }
+
 void CMTPImageDpObjectPropertyMgr::GetPropertyFromMdsL(TMTPObjectPropertyCode aProperty, TAny* aValue)
     {
     __FLOG(_L8(">> CMTPImageDpObjectPropertyMgr::GetPropertyFromMdsL"));
     
     TInt err = KErrNone;
-    CMdENamespaceDef& defaultNamespace = iMetaDataSession->GetDefaultNamespaceDefL();
-    CMdEObjectDef& imageObjDef = defaultNamespace.GetObjectDefL( MdeConstants::Image::KImageObject );
-    CMdEProperty* mdeProperty = NULL;
-    switch (aProperty)
-        {        
-    case EMTPObjectPropCodeDateCreated:
+      
+    if (iCacheHit)
         {
-        if (iCacheHit)
+        /**
+         * The object hit the cache, so we query properties from cache
+         */
+        switch (aProperty)
             {
-            (*(static_cast<CMTPTypeString*>(aValue))).SetL(iPropertiesCache->DesC(CMTPImageDpObjectPropertyMgr::CMTPImagePropertiesCache::EDateCreated));
+        case EMTPObjectPropCodeDateCreated:
+            (*(static_cast<CMTPTypeString*>(aValue))).SetL(iPropertiesCache->DesC(CMTPImageDpObjectPropertyMgr::CMTPImagePropertiesCache::EDateCreated));            
+            break;
+          
+        case EMTPObjectPropCodeWidth:
+            *static_cast<TUint32*>(aValue) = iPropertiesCache->Uint(CMTPImageDpObjectPropertyMgr::CMTPImagePropertiesCache::EImagePixWidth);            
+            break;
+            
+        case EMTPObjectPropCodeHeight:
+            *static_cast<TUint32*>(aValue) = iPropertiesCache->Uint(CMTPImageDpObjectPropertyMgr::CMTPImagePropertiesCache::EImagePixHeight);           
+            break;
+            
+        case EMTPObjectPropCodeImageBitDepth:
+            *static_cast<TUint32*>(aValue) = iPropertiesCache->Uint(CMTPImageDpObjectPropertyMgr::CMTPImagePropertiesCache::EImageBitDepth);            
+            break;
+            
+        default:
+            //nothing to do
+            break;
             }
-        else if (iObject)
+        }
+    else
+        {
+        /**
+         * The object miss cache, so we should open Mde object to query properties
+         */
+        OpenMdeObjectL();
+        
+        CMdENamespaceDef& defaultNamespace = iMetaDataSession->GetDefaultNamespaceDefL();
+        CMdEObjectDef& imageObjDef = defaultNamespace.GetObjectDefL( MdeConstants::Image::KImageObject );
+        CMdEProperty* mdeProperty = NULL;
+        
+        switch (aProperty)
             {        
-            CMdEPropertyDef& creationDatePropDef = imageObjDef.GetPropertyDefL(MdeConstants::Object::KCreationDateProperty);
-            TInt err = iObject->Property( creationDatePropDef, mdeProperty );  
-            if (err >= KErrNone) 
-                {
-                TBuf<KMaxTimeFormatSpec*2> timeValue;
-                // locale independent YYYYMMSSThhmmss, as required by the MTP spec
-                _LIT(KTimeFormat, "%F%Y%M%DT%H%T%S");
-                mdeProperty->TimeValueL().FormatL(timeValue, KTimeFormat);
-                (*(static_cast<CMTPTypeString*>(aValue))).SetL(timeValue);
+        case EMTPObjectPropCodeDateCreated:
+            {
+            if (iObject)
+                {        
+                CMdEPropertyDef& creationDatePropDef = imageObjDef.GetPropertyDefL(MdeConstants::Object::KCreationDateProperty);
+                TInt err = iObject->Property( creationDatePropDef, mdeProperty );  
+                if (err >= KErrNone) 
+                    {
+                    TBuf<KMaxTimeFormatSpec*2> timeValue;
+                    // locale independent YYYYMMSSThhmmss, as required by the MTP spec
+                    _LIT(KTimeFormat, "%F%Y%M%DT%H%T%S");
+                    mdeProperty->TimeValueL().FormatL(timeValue, KTimeFormat);
+                    (*(static_cast<CMTPTypeString*>(aValue))).SetL(timeValue);
+                    
+                    __FLOG_VA((_L16("GetPropertyFromMdsL - from MdS: URI:%S, DateCreated:%S"), &iObjectInfo->DesC(CMTPObjectMetaData::ESuid), &timeValue));
+                    }
                 }
             }
-        }
-       break;  
-       
-    case EMTPObjectPropCodeWidth:
-        {
-        if (iCacheHit)
+           break;  
+           
+        case EMTPObjectPropCodeWidth:
             {
-            *static_cast<TUint32*>(aValue) = iPropertiesCache->Uint(CMTPImageDpObjectPropertyMgr::CMTPImagePropertiesCache::EImagePixWidth);
-            }
-        else if (iObject)
-            {
-            CMdEPropertyDef& imageWidthPropDef = imageObjDef.GetPropertyDefL(MdeConstants::MediaObject::KWidthProperty);
-            err = iObject->Property( imageWidthPropDef, mdeProperty );  
-            if (err >= KErrNone) 
+            if (iObject)
                 {
-                TUint16 width = mdeProperty->Uint16ValueL();
-                if (width > 0)
+                CMdEPropertyDef& imageWidthPropDef = imageObjDef.GetPropertyDefL(MdeConstants::MediaObject::KWidthProperty);
+                err = iObject->Property( imageWidthPropDef, mdeProperty );  
+                if (err >= KErrNone) 
                     {
-                    *static_cast<TUint32*>(aValue) = width;
+                    *static_cast<TUint32*>(aValue) = mdeProperty->Uint16ValueL();
                     }
                 else
                     {
-                    *static_cast<TUint32*>(aValue) = ParseImageFileL(iObject->Uri(), EMTPObjectPropCodeWidth);
+                    *static_cast<TUint32*>(aValue) = 0;
                     }
                 }
             else
                 {
-                *static_cast<TUint32*>(aValue) = ParseImageFileL(iObject->Uri(), EMTPObjectPropCodeWidth);
+                *static_cast<TUint32*>(aValue) = 0;
                 }
             }
-        else
-            {
-            *static_cast<TUint32*>(aValue) = 0;
-            }
-        }
-       break; 
-       
-    case EMTPObjectPropCodeHeight:
-        {
-        if (iCacheHit)
+           break; 
+           
+        case EMTPObjectPropCodeHeight:
             {
-            *static_cast<TUint32*>(aValue) = iPropertiesCache->Uint(CMTPImageDpObjectPropertyMgr::CMTPImagePropertiesCache::EImagePixHeight);
-            }
-        else if (iObject)
-            {
-            CMdEPropertyDef& imageHeightPropDef = imageObjDef.GetPropertyDefL(MdeConstants::MediaObject::KHeightProperty);
-            err = iObject->Property( imageHeightPropDef, mdeProperty );  
-            if (err >= KErrNone) 
+            if (iObject)
                 {
-                TUint16 height = mdeProperty->Uint16ValueL();
-                if (height > 0)
+                CMdEPropertyDef& imageHeightPropDef = imageObjDef.GetPropertyDefL(MdeConstants::MediaObject::KHeightProperty);
+                err = iObject->Property( imageHeightPropDef, mdeProperty );  
+                if (err >= KErrNone) 
                     {
-                    *static_cast<TUint32*>(aValue) = height;
+                    *static_cast<TUint32*>(aValue) = mdeProperty->Uint16ValueL();
                     }
                 else
                     {
-                    *static_cast<TUint32*>(aValue) = ParseImageFileL(iObject->Uri(), EMTPObjectPropCodeHeight);
+                    *static_cast<TUint32*>(aValue) = 0;
                     }
                 }
             else
                 {
-                *static_cast<TUint32*>(aValue) = ParseImageFileL(iObject->Uri(), EMTPObjectPropCodeHeight);
+                *static_cast<TUint32*>(aValue) = 0;
                 }
             }
-        else
-            {
-            *static_cast<TUint32*>(aValue) = 0;
-            }
-        }
-       break; 
-       
-    case EMTPObjectPropCodeImageBitDepth:
-        {
-        if (iCacheHit)
+           break; 
+           
+        case EMTPObjectPropCodeImageBitDepth:
             {
-            *static_cast<TUint32*>(aValue) = iPropertiesCache->Uint(CMTPImageDpObjectPropertyMgr::CMTPImagePropertiesCache::EImageBitDepth);
-            }
-        else if (iObject)
-            {
-            CMdEPropertyDef& imageBitDepth = imageObjDef.GetPropertyDefL(MdeConstants::Image::KBitsPerSampleProperty);
-            err = iObject->Property( imageBitDepth, mdeProperty );  
-            if (err >= KErrNone) 
+            if (iObject)
                 {
-                TUint16 bitDepth = mdeProperty->Uint16ValueL();
-                if (bitDepth > 0)
+                CMdEPropertyDef& imageBitDepth = imageObjDef.GetPropertyDefL(MdeConstants::Image::KBitsPerSampleProperty);
+                err = iObject->Property( imageBitDepth, mdeProperty );  
+                if (err >= KErrNone) 
                     {
-                    *static_cast<TUint32*>(aValue) = bitDepth;
+                    *static_cast<TUint32*>(aValue) = mdeProperty->Uint16ValueL();               
                     }
                 else
                     {
-                    *static_cast<TUint32*>(aValue) = ParseImageFileL(iObject->Uri(), EMTPObjectPropCodeImageBitDepth);
-                    }                
+                    *static_cast<TUint32*>(aValue) = 0;
+                    }  
                 }
             else
                 {
-                *static_cast<TUint32*>(aValue) = ParseImageFileL(iObject->Uri(), EMTPObjectPropCodeImageBitDepth);
-                }  
+                *static_cast<TUint32*>(aValue) = 0;
+                }        
+            }     
+           break; 
+           
+        default:
+            //nothing to do
+            break;
             }
-        else
-            {
-            *static_cast<TUint32*>(aValue) = 0;
-            }        
-        }     
-       break; 
-       
-    default:
-        //nothing to do
-        break;
         }
     __FLOG(_L8("<< CMTPImageDpObjectPropertyMgr::GetPropertyFromMdsL"));
     }
@@ -781,7 +895,7 @@
            ||!GetMinute(aTimeString,minute)
            ||!GetSecond(aTimeString,second)
            ||!GetTenthSecond(aTimeString,tenthSecond))
-        {
+        {        
         User::Leave(KErrArgument);
         }
     else
@@ -803,93 +917,30 @@
         }
     }
 
-TUint32 CMTPImageDpObjectPropertyMgr::ParseImageFileL(const TDesC& aUri, TMTPObjectPropertyCode aPropCode)
+/**
+ * Store thumbnail into cache
+ */
+void CMTPImageDpObjectPropertyMgr::StoreThunmnail(TUint aHandle, HBufC8* aData)
     {
-    TUint32 result = 0;
-    TInt err = KErrNone;
-    const TInt K64Kb = 65536;
+    ClearThumnailCache();
     
-    HBufC8* buffer = HBufC8::NewLC(K64Kb);
-    TPtr8 myImagePtr = buffer->Des();
-    err = iFs.ReadFileSection(aUri, 0, myImagePtr, K64Kb);
-    if (err != KErrNone)
-        {
-        CleanupStack::PopAndDestroy(buffer);
-        return result;
-        }
-    
-    CBufferedImageDecoder *decoder = CBufferedImageDecoder::NewL(iFs);
-    CleanupStack::PushL(decoder);
-        
-    decoder->OpenL(myImagePtr, CImageDecoder::TOptions( CImageDecoder::EPreferFastDecode | CImageDecoder::EOptionIgnoreExifMetaData));
-    if (decoder->ValidDecoder())
+    iThumbnailCache.iObjectHandle = aHandle;      
+    iThumbnailCache.iThumbnailData = aData;
+    }
+
+/**
+ * Get thumbnail from cache
+ */
+HBufC8* CMTPImageDpObjectPropertyMgr::Thumbnail(TUint aHandle)
+    {
+    if (iThumbnailCache.iObjectHandle == aHandle)
         {
-        const TFrameInfo& info = decoder->FrameInfo();
-        
-        switch (aPropCode)
-            {
-        case EMTPObjectPropCodeWidth:
-            result = info.iOverallSizeInPixels.iWidth;
-            break;
-            
-        case EMTPObjectPropCodeHeight:
-            result = info.iOverallSizeInPixels.iHeight;
-            break;
-            
-        case EMTPObjectPropCodeImageBitDepth:
-            result = info.iBitsPerPixel;
-            break;
-            
-        default:
-            // nothing to do
-            break;
-            }
-        
-        /**
-         * Open MdE object for update image object properties after parsing
-         */
-        CMdENamespaceDef& defaultNamespace = iMetaDataSession->GetDefaultNamespaceDefL();
-        CMdEObjectDef& imageObjDef = defaultNamespace.GetObjectDefL(MdeConstants::Image::KImageObject);
-        CMdEPropertyDef& imageWidthPropDef = imageObjDef.GetPropertyDefL(MdeConstants::MediaObject::KWidthProperty);
-        CMdEPropertyDef& imageHeightPropDef = imageObjDef.GetPropertyDefL(MdeConstants::MediaObject::KHeightProperty);
-        CMdEPropertyDef& imageBitDepth = imageObjDef.GetPropertyDefL(MdeConstants::Image::KBitsPerSampleProperty);
-        
-        //update current object properties
-        TUint16 width = info.iOverallSizeInPixels.iWidth;
-        RemoveProperty(*iObject, imageWidthPropDef);
-        iObject->AddUint16PropertyL(imageWidthPropDef, width);
-        
-        TUint16 height = info.iOverallSizeInPixels.iHeight;
-        RemoveProperty(*iObject, imageHeightPropDef);
-        iObject->AddUint16PropertyL(imageHeightPropDef, height);
-        
-        TUint16 bitsPerPixel = info.iBitsPerPixel;
-        RemoveProperty(*iObject, imageBitDepth);
-        iObject->AddUint16PropertyL(imageBitDepth, bitsPerPixel);
-        
-        CMdEObject* updateObject = NULL;
-        TRAP(err, updateObject = iMetaDataSession->OpenObjectL(iObject->Id(), imageObjDef));
-        if (err == KErrNone && updateObject != NULL)
-            {
-            CleanupStack::PushL(updateObject);
-            
-            RemoveProperty(*updateObject, imageWidthPropDef);                   
-            updateObject->AddUint16PropertyL(imageWidthPropDef, width);    
-            
-            RemoveProperty(*updateObject, imageHeightPropDef);        
-            updateObject->AddUint16PropertyL(imageHeightPropDef, height);
-            
-            RemoveProperty(*updateObject, imageBitDepth);        
-            updateObject->AddUint16PropertyL(imageBitDepth, bitsPerPixel);    
-                    
-            iMetaDataSession->CommitObjectL(*updateObject);
-            CleanupStack::PopAndDestroy(updateObject);
-            }
+        return iThumbnailCache.iThumbnailData;
         }
-    
-    CleanupStack::PopAndDestroy(2);// decoder, buffer
-    
-    return result;
+    else
+        {
+        return NULL;
+        }
     }
 
 /**
@@ -933,3 +984,27 @@
     {
     iPropertiesCache->ResetL();
     }
+
+void CMTPImageDpObjectPropertyMgr::OpenMdeObjectL()
+    {
+    if (iObject == NULL)
+        {
+        __FLOG_VA((_L16("OpenMdeObjectL - URI = %S"), &iObjectInfo->DesC(CMTPObjectMetaData::ESuid)));
+		
+        CMdENamespaceDef& defaultNamespace = iMetaDataSession->GetDefaultNamespaceDefL();
+        CMdEObjectDef& imageObjDef = defaultNamespace.GetObjectDefL( MdeConstants::Image::KImageObject );
+        
+        //if we can not open MdS object for getting properties, we will not get properites which stored in MdS
+        TFileName uri;
+        uri.CopyLC(iObjectInfo->DesC(CMTPObjectMetaData::ESuid));
+        TRAP_IGNORE((iObject = iMetaDataSession->GetObjectL(uri, imageObjDef)));      
+        }
+    }
+
+void CMTPImageDpObjectPropertyMgr::ClearThumnailCache()
+    {
+    delete iThumbnailCache.iThumbnailData;
+    iThumbnailCache.iThumbnailData = NULL;
+    
+    iThumbnailCache.iObjectHandle = KMTPHandleNone;
+    }
--- a/mtpdataproviders/mtpimagedp/src/cmtpimagedpsendobjectinfo.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpdataproviders/mtpimagedp/src/cmtpimagedpsendobjectinfo.cpp	Fri Mar 19 09:40:39 2010 +0200
@@ -848,7 +848,7 @@
     if (err != KErrNone)
         {
         //add Suid to deleteobjectlist
-        iDataProvider.AppendDeleteObjectsArrayL(iFullPath);
+        TRAP_IGNORE(iDataProvider.AppendDeleteObjectsArrayL(iFullPath));
         }
     }
 
@@ -1166,6 +1166,12 @@
             responseCode = EMTPRespCodeInvalidObjectPropFormat;
             }
         break;
+    case EMTPObjectPropCodeRepresentativeSampleData:
+        if (aElement.Uint16L(CMTPTypeObjectPropListElement::EDatatype) != EMTPTypeAUINT8)
+            {
+            responseCode = EMTPRespCodeInvalidObjectPropFormat;
+            }        
+        break;
     case EMTPObjectPropCodeNonConsumable:
         if (aElement.Uint16L(CMTPTypeObjectPropListElement::EDatatype) != EMTPTypeUINT8)
             {
@@ -1188,7 +1194,9 @@
 void CMTPImageDpSendObjectInfo::ReserveObjectL()
     {
     __FLOG(_L8("CMTPImageDpSendObjectInfo::ReserveObjectL - Entry"));
-
+    const TInt objectStatusBitmask = 0x8000;//the most significant bit represents importing flag
+    
+    iReceivedObject->SetUint(CMTPObjectMetaData::EFormatSubCode, objectStatusBitmask);//mark object imported due to it sent by PC
     iReceivedObject->SetUint(CMTPObjectMetaData::EStorageId, iStorageId);    
     iFramework.ObjectMgr().ReserveObjectHandleL(*iReceivedObject, iObjectSize);    
     
--- a/mtpdataproviders/mtpimagedp/src/cmtpimagedpsetobjectproplist.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpdataproviders/mtpimagedp/src/cmtpimagedpsetobjectproplist.cpp	Fri Mar 19 09:40:39 2010 +0200
@@ -162,7 +162,8 @@
         case EMTPObjectPropCodeRepresentativeSampleSize:
         case EMTPObjectPropCodeRepresentativeSampleHeight:
         case EMTPObjectPropCodeRepresentativeSampleWidth:
-        case EMTPObjectPropCodeDateCreated:
+        case EMTPObjectPropCodeRepresentativeSampleData:
+        case EMTPObjectPropCodeDateCreated:        
             responseCode = 	EMTPRespCodeAccessDenied;
             break;
                             
--- a/mtpdataproviders/mtpimagedp/src/cmtpimagedpsetobjectpropvalue.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpdataproviders/mtpimagedp/src/cmtpimagedpsetobjectpropvalue.cpp	Fri Mar 19 09:40:39 2010 +0200
@@ -99,7 +99,8 @@
 		|| aObjectPropCode == EMTPObjectPropCodeRepresentativeSampleFormat
 		|| aObjectPropCode == EMTPObjectPropCodeRepresentativeSampleSize
 		|| aObjectPropCode == EMTPObjectPropCodeRepresentativeSampleHeight
-		|| aObjectPropCode == EMTPObjectPropCodeRepresentativeSampleWidth)
+		|| aObjectPropCode == EMTPObjectPropCodeRepresentativeSampleWidth
+		|| aObjectPropCode == EMTPObjectPropCodeRepresentativeSampleData)
 		{
 		returnCode = ETrue;
 		}
--- a/mtpdataproviders/mtpimagedp/src/cmtpimagedpthumbnailcreator.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpdataproviders/mtpimagedp/src/cmtpimagedpthumbnailcreator.cpp	Fri Mar 19 09:40:39 2010 +0200
@@ -30,6 +30,7 @@
 #include "cmtpimagedpthumbnailcreator.h"
 #include "mtpimagedpconst.h"
 #include "mtpimagedputilits.h"
+#include "cmtpimagedp.h"
 
 __FLOG_STMT(_LIT8(KComponent,"CMTPImageDpThumbnailCreator");)
 // --------------------------------------------------------------------------
@@ -37,9 +38,9 @@
 // 2-phased constructor.
 // --------------------------------------------------------------------------
 //
-CMTPImageDpThumbnailCreator* CMTPImageDpThumbnailCreator::NewL()
+CMTPImageDpThumbnailCreator* CMTPImageDpThumbnailCreator::NewL(CMTPImageDataProvider& aDataProvider)
     {
-    CMTPImageDpThumbnailCreator* self= new (ELeave) CMTPImageDpThumbnailCreator();
+    CMTPImageDpThumbnailCreator* self= new (ELeave) CMTPImageDpThumbnailCreator(aDataProvider);
     CleanupStack::PushL(self);
     self->ConstructL();
     CleanupStack::Pop(self);
@@ -82,8 +83,9 @@
 // C++ constructor.
 // --------------------------------------------------------------------------
 //    
-CMTPImageDpThumbnailCreator::CMTPImageDpThumbnailCreator(): 
-CActive(EPriorityStandard)
+CMTPImageDpThumbnailCreator::CMTPImageDpThumbnailCreator(CMTPImageDataProvider& aDataProvider): 
+    CActive(EPriorityStandard),
+    iDataProvider(aDataProvider)
     {
     __FLOG_OPEN(KMTPSubsystem, KComponent);
     __FLOG(_L8("CMTPImageDpThumbnailCreator::CMTPImageDpThumbnailCreator(), begin"));
@@ -100,7 +102,7 @@
     {
     __FLOG(_L8("CMTPImageDpThumbnailCreator::ConstructL(), begin"));
     iThumbMgr = CThumbnailManager::NewL( *this ); 
-    iThumbMgr->SetThumbnailSizeL( EFullScreenThumbnailSize );
+    iThumbMgr->SetThumbnailSizeL( EGridThumbnailSize );
 #ifdef MTPTHUMBSCALING
     iScaler = CBitmapScaler::NewL();
 #endif    
@@ -171,10 +173,6 @@
                 __FLOG_VA((_L8("CMTPImageDpThumbnailCreator::RunL(),EDoNotCreate; iState %d"), iState));
                 delete iData;
                 iData = HBufC8::NewL(1);
-                iBuffer->Write(*iData);
-                }
-            else{
-                iBuffer->Write(*iData);
                 }
             
             __FLOG_VA((_L8("<< CMTPImageDpThumbnailCreator::RunL(),iBuffer->Write(*iData); iState %d"), iState));
@@ -215,15 +213,27 @@
 // 
 // --------------------------------------------------------------------------
 //
-void CMTPImageDpThumbnailCreator::GetThumbnailL(const TDesC& aFileName, CMTPTypeOpaqueData& aThumbName,  TInt& result)
+void CMTPImageDpThumbnailCreator::GetThumbnailL(const TDesC& aFileName, HBufC8*& aDestinationData,  TInt& result)
     {
     __FLOG(_L8(">> CMtpImageDphumbnailCreator::GetThumbnailL()"));
-    iBuffer = &aThumbName;
     GetThumbL(aFileName);
-    iCreationErr = &result;		//reset the err flag
+    iCreationErr = &result;     //reset the err flag
     *iCreationErr = KErrNone;
     __FLOG(_L8("<< CMTPImageDpThumbnailCreator::CreateThumbnailL()"));
     iActiveSchedulerWait->Start();
+    
+    /**
+     * transfer the ownership of iData if query successfully
+     */
+    if (*iCreationErr == KErrNone)
+        {
+        aDestinationData = iData;
+        iData = NULL;        
+        }
+    else
+        {
+        aDestinationData = NULL;
+        }
     }
 
 // --------------------------------------------------------------------------
@@ -250,7 +260,11 @@
     delete iObjectSource;
     iObjectSource = NULL;
     
-    iObjectSource = CThumbnailObjectSource::NewL(aFileName, KJpegMimeType);
+    TParsePtrC parse(aFileName);
+    const TDesC& mimeType = iDataProvider.FindMimeType(parse.Ext().Mid(1));
+    __FLOG_VA((_L16("CMtpImageDphumbnailCreator::GetThumbL() - FileName:%S, MimeType:%S"), &aFileName, &mimeType));
+    
+    iObjectSource = CThumbnailObjectSource::NewL(aFileName, mimeType);
     iCurrentReq = iThumbMgr->GetThumbnailL( *iObjectSource );
     iState = EGetting;
     __FLOG(_L8("<< CMtpImageDphumbnailCreator::GetThumbL()"));
@@ -267,7 +281,16 @@
     __FLOG(_L8("CMTPImageDpThumbnailCreator::ScaleBitmapL(), begin"));
     TSize size( KThumbWidht, KThumbHeigth ); // size 160x120      
     // Resize image to thumbnail size 
-    iScaler->Scale( &iStatus, *iBitmap, size );
+//    iScaler->Scale( &iStatus, *iBitmap, size );
+    
+    /**
+     * [Thumbnail SIZE]: performance improvement
+     * comments scaling code, but it breaks PTP spect.
+     * so if we meet any break of compatible test, we should re-scale thumbnail size
+     */    
+    TRequestStatus* status = &iStatus;
+    User::RequestComplete( status, KErrNone );
+    
     SetActive();
     __FLOG(_L8("CMTPImageDpThumbnailCreator::ScaleBitmapL(), end"));
     }
@@ -309,7 +332,7 @@
     if (aError == KErrNone)
         {
         TRAP_IGNORE(iThumbMgr->SetFlagsL(CThumbnailManager::EDefaultFlags));
-        delete iBitmap;   
+        delete iBitmap;
         // Claim ownership of the bitmap instance for later use
         iBitmap = aThumbnail.DetachBitmap();
 #ifdef MTPTHUMBSCALING
@@ -322,7 +345,8 @@
         {
         __FLOG(_L8("CMTPImageDpThumbnailCreator::ThumbnailReady(),EDoNotCreate, KErrNotFound"));
         iState = EEncoding;
-        iThumbMgr->CreateThumbnails(*iObjectSource);
+        //don't trigger TNM to create thumbnail if image files are too big
+        //iThumbMgr->CreateThumbnails(*iObjectSource);
         aError = KErrNone;
         }
     iStatus=KRequestPending;
--- a/mtpdataproviders/mtpimagedp/src/mtpimagedpgetformatcapabilities.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpdataproviders/mtpimagedp/src/mtpimagedpgetformatcapabilities.cpp	Fri Mar 19 09:40:39 2010 +0200
@@ -169,6 +169,14 @@
     CleanupStack::Pop(1, desc);
     CleanupStack::PopAndDestroy(expectedForm);
     
+    const TUint32 KMaxLength = 0x0000FFFF;
+    TMTPTypeUint32 maxLengthForm(KMaxLength);
+    info.iDataType     = EMTPTypeAUINT8;
+    info.iFormFlag     = CMTPTypeObjectPropDesc::EByteArrayForm;       
+    desc = CMTPTypeObjectPropDesc::NewLC(EMTPObjectPropCodeRepresentativeSampleData, info, &maxLengthForm);
+    frmCap->AppendL(desc);
+    CleanupStack::Pop(1, desc);
+    
     info.iDataType = EMTPTypeUINT16;
     info.iFormFlag = CMTPTypeObjectPropDesc::EEnumerationForm;
     CMTPTypeObjectPropDescEnumerationForm* expectedEnumForm = CMTPTypeObjectPropDescEnumerationForm::NewL(EMTPTypeUINT16);
--- a/mtpdataproviders/mtpimagedp/src/mtpimagedputilits.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpdataproviders/mtpimagedp/src/mtpimagedputilits.cpp	Fri Mar 19 09:40:39 2010 +0200
@@ -30,6 +30,20 @@
 #include "mtpimagedputilits.h"
 #include "cmtpimagedp.h"
 
+/*
+ * The most significant bit represents whether the image object has been imported.
+ * 0 means does not be imported
+ * 1 means has been imported
+ */
+#define IMAGE_OBJECT_STATUS_BITMASK            0x8000
+
+/**
+ * The other left bits represent the thumbnail size of image object.
+ * The type of EFormatSubCode column is UINT16, so these bits are enought for thumbnail size.
+ * e.g. The image file of 57M bytes only has 2440 bytes of thumbnail. 
+ */
+#define IMAGE_OBJECT_THUMBNAIL_SIZE_BITMASK    0x7fff
+
 TMTPResponseCode MTPImageDpUtilits::VerifyObjectHandleL(MMTPDataProviderFramework& aFramework, const TMTPTypeUint32& aHandle, CMTPObjectMetaData& aMetaData)
 	{
 	if (!aFramework.ObjectMgr().ObjectL(aHandle, aMetaData))
@@ -60,13 +74,9 @@
         if (!aDataProvider.GetCacheParentHandle(parse.DriveAndPath(), parentHandle))
             {
             parentHandle = aFramework.ObjectMgr().HandleL(parse.DriveAndPath());
-            if (parentHandle == KMTPHandleNone)
+            if (parentHandle != KMTPHandleNone)
                 {
-                parentHandle = KMTPHandleNoParent;
-                }        
-            else
-                {
-                aDataProvider.SetCacheParentHandle(parse.DriveAndPath(), parentHandle);
+                aDataProvider.SetCacheParentHandle(parse.DriveAndPath(), parentHandle);                
                 }
             }
         }
@@ -74,19 +84,46 @@
     return parentHandle;    
     }
 
-void MTPImageDpUtilits::UpdateNewPicturesValue(CMTPImageDataProvider& aDataProvider, TInt aNewPics, TBool aSetRProperty)
+TBool MTPImageDpUtilits::IsNewPicture(const CMTPObjectMetaData& aMetadata)
+    {
+    /**
+     * we use EFormatSubCode column to save sentinel whether this object has been imported by PC
+     * 
+     */    
+    return ((aMetadata.Uint(CMTPObjectMetaData::EFormatSubCode) & IMAGE_OBJECT_STATUS_BITMASK) == 0);
+    }
+
+
+void MTPImageDpUtilits::UpdateObjectStatusToOldL(MMTPDataProviderFramework& aFramework, CMTPObjectMetaData& aMetadata)
+    {
+    TInt status = aMetadata.Uint(CMTPObjectMetaData::EFormatSubCode) | IMAGE_OBJECT_STATUS_BITMASK;
+    aMetadata.SetUint(CMTPObjectMetaData::EFormatSubCode, status);
+    aFramework.ObjectMgr().ModifyObjectL(aMetadata);
+    }
+
+TInt MTPImageDpUtilits::GetThumbnailSize(const CMTPObjectMetaData& aMetadata)
     {    
-    TInt preNewPic = 0;
-    aDataProvider.Repository().Get(ENewImagesCount, preNewPic);
-    
-    TInt newPics = aNewPics + preNewPic;
-    aDataProvider.Repository().Set(ENewImagesCount, newPics);
-    
-    TInt curValue = 0;
-    RProperty::Get(TUid::Uid(KMTPServerUID), KMTPNewPicKey, curValue);
-    
-    if (aSetRProperty && curValue != newPics)
+    /**
+     * query thumbnail size from EFormatSubCode column
+     */
+    return (aMetadata.Uint(CMTPObjectMetaData::EFormatSubCode) & IMAGE_OBJECT_THUMBNAIL_SIZE_BITMASK);
+    }
+
+void MTPImageDpUtilits::UpdateObjectThumbnailSizeL(MMTPDataProviderFramework& aFramework, CMTPObjectMetaData& aMetadata, TInt aThumbnailSize)
+    {
+    //check thumbnail size whether it is overflow
+    if (aThumbnailSize <= IMAGE_OBJECT_THUMBNAIL_SIZE_BITMASK)
         {
-        RProperty::Set(TUid::Uid(KMTPServerUID), KMTPNewPicKey, newPics);
+        TBool newPic = MTPImageDpUtilits::IsNewPicture(aMetadata);
+        if (newPic)
+            {
+            aMetadata.SetUint(CMTPObjectMetaData::EFormatSubCode, aThumbnailSize);
+            }
+        else
+            {
+            aThumbnailSize |= IMAGE_OBJECT_STATUS_BITMASK;
+            aMetadata.SetUint(CMTPObjectMetaData::EFormatSubCode, aThumbnailSize);
+            }
+        aFramework.ObjectMgr().ModifyObjectL(aMetadata);
         }
     }
--- a/mtpdataproviders/mtppictbridgedp/src/cmtppictbridgedpgetobjectpropdesc.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpdataproviders/mtppictbridgedp/src/cmtppictbridgedpgetobjectpropdesc.cpp	Fri Mar 19 09:40:39 2010 +0200
@@ -106,7 +106,8 @@
             ServiceNonConsumableL();
             break;
         default:
-            Panic(EMTPPictBridgeDpUnsupportedProperty);
+            User::Leave( KErrNotSupported );
+            break;
         }
     __ASSERT_DEBUG(iObjectProperty, Panic(EMTPPictBridgeDpObjectPropertyNull));
     iObjectProperty->SetUint32L(CMTPTypeObjectPropDesc::EGroupCode,GetPropertyGroupNumber(propCode));
--- a/mtpdataproviders/mtppictbridgedp/src/cmtppictbridgedpgetobjectproplist.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpdataproviders/mtppictbridgedp/src/cmtppictbridgedpgetobjectproplist.cpp	Fri Mar 19 09:40:39 2010 +0200
@@ -461,7 +461,7 @@
             break;
             default:
                 {
-                Panic( EMTPPictBridgeDpUnsupportedProperty );
+                User::Leave( KErrNotSupported );
                 }
                 break;
             }
--- a/mtpdataproviders/mtppictbridgedp/src/cmtppictbridgedpsendobjectinfo.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpdataproviders/mtppictbridgedp/src/cmtppictbridgedpsendobjectinfo.cpp	Fri Mar 19 09:40:39 2010 +0200
@@ -346,7 +346,7 @@
         }
     else 
         {
-        Panic(EMTPPictBridgeDpSendObjectStateInvalid);
+        User::Leave( KErrGeneral );
         }
     __FLOG(_L8("<< CMTPPictBridgeDpSendObjectInfo::CheckSendingStateL"));    
     return result;    
@@ -621,7 +621,7 @@
 
     if (fileEntry.FileSize() != iObjectSize)
         {
-        __FLOG_VA((_L8("   sizes differ %d!=%d"),fileEntry.iSize, iObjectSize));
+        __FLOG_VA((_L8("   sizes differ %d!=%d"),fileEntry.FileSize(), iObjectSize));
         iFramework.RouteRequestUnregisterL(iExpectedSendObjectRequest, iConnection);
          
         iFramework.Fs().Delete(iFullPath);
--- a/mtpfws/mtpfw/daemon/server/src/cmtpshutdown.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpfws/mtpfw/daemon/server/src/cmtpshutdown.cpp	Fri Mar 19 09:40:39 2010 +0200
@@ -54,7 +54,7 @@
     
 void CMTPShutdown::RunL()
     {
-    if ( iSingletons.DpController().EnumerateState() != CMTPDataProviderController::EEnumerated )
+    if ( iSingletons.DpController().EnumerateState() != CMTPDataProviderController::EEnumeratedFulllyCompleted )
         {
         Start();
         }
--- a/mtpfws/mtpfw/dataproviders/dataproviderapi/interface/mmtpdataproviderframework.h	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpfws/mtpfw/dataproviders/dataproviderapi/interface/mmtpdataproviderframework.h	Fri Mar 19 09:40:39 2010 +0200
@@ -296,6 +296,15 @@
     @return Handle to the MTP datacode generator.
     */
     virtual MMTPDataCodeGenerator& DataCodeGenerator() const = 0;
+    
+    /**
+    Issues the specified notification to framework.
+    @param aNotification The notification type identifier.
+    @param aParams The notification type specific parameter block
+    @leave One of the system wide error code if a processing failure occurs
+    in the framework.
+    */
+    virtual void NotifyFrameworkL( TMTPNotificationToFramework aNotification, const TAny* aParams ) = 0;
    
     };
 
--- a/mtpfws/mtpfw/dataproviders/dataproviderapi/interface/mtpdataproviderapitypes.h	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpfws/mtpfw/dataproviders/dataproviderapi/interface/mtpdataproviderapitypes.h	Fri Mar 19 09:40:39 2010 +0200
@@ -128,6 +128,17 @@
 	EMTPObjectAdded
     };
 
+/** 
+Defines the MTP framework event notification types.
+This notification is from dp to framework
+@publishedPartner
+@released
+*/
+enum TMTPNotificationToFramework
+    {
+    EMTPAddFolder = 0x10000000,
+    };
+
 /**
 Defines the notification parameter block which accompanies @see EMTPModeChanged 
 notifications.
@@ -181,7 +192,21 @@
     */
     TUint32 iStorageId;
     };
-    
+
+/**
+Defines the notification parameter block which accompanies @see EMTPAddFolder 
+notification
+*/
+class TMTPNotificationParamsFolderChange
+    {
+public:
+
+    /**
+    The Folder on which need to do action.
+    */
+    const TDesC& iFolderChanged;
+    };
+
 /** 
 Defines the various data provider MTP feature support categories.
 @publishedPartner
--- a/mtpfws/mtpfw/dataproviders/dataproviderapi/src/mmtpdataprovider.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpfws/mtpfw/dataproviders/dataproviderapi/src/mmtpdataprovider.cpp	Fri Mar 19 09:40:39 2010 +0200
@@ -33,8 +33,8 @@
 
 EXPORT_C void MMTPDataProvider::StartObjectEnumerationL(TUint32 /*aStorageId*/)
 	{
-	_LIT(KMTPPanicCategory, "MMTPDataProvider");
-	User::Panic(KMTPPanicCategory, KErrNotSupported);
+	__DEBUG_ONLY(_LIT(KMTPPanicCategory, "MMTPDataProvider"));
+	__DEBUG_ONLY( User::Panic( KMTPPanicCategory, KErrNotSupported ));
 	}
 
 EXPORT_C void MMTPDataProvider::StartObjectEnumerationL(TUint32 aStorageId, TBool /*aPersistentFullEnumeration*/)
--- a/mtpfws/mtpfw/dataproviders/devdp/inc/cmtpdevicedatastore.h	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpfws/mtpfw/dataproviders/devdp/inc/cmtpdevicedatastore.h	Fri Mar 19 09:40:39 2010 +0200
@@ -73,7 +73,7 @@
     const TDesC& DateTimeL();
     TInt SetDateTimeL(const TDesC& aDateTime );    
     void DateTimeToStringL(TDes& aDateTime);
-    void StringToDateTime(TDes& aDateTime );
+    void StringToDateTimeL(TDes& aDateTime );
     void LoadDeviceIconL();
     const CMTPTypeArray& DeviceIcon();
     TInt ValidateString(const TDesC& aDateTimeStr, TDes& aDateTime, TInt &aOffsetVal);
--- a/mtpfws/mtpfw/dataproviders/devdp/inc/cmtpdevicedp.h	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpfws/mtpfw/dataproviders/devdp/inc/cmtpdevicedp.h	Fri Mar 19 09:40:39 2010 +0200
@@ -88,10 +88,14 @@
     void SessionOpenedL(const TMTPNotificationParamsSessionChange& aSession);
     TInt FindExtnPlugin(TUint aOpcode);
     void LoadExtnPluginsL();
-   
+    void AddFolderRecursiveL( const TMTPNotificationParamsFolderChange& aFolder );
+    TUint32 AddEntryL( const TDesC& aPath, TUint32 aParentHandle, TUint32 aStorageId, CMTPObjectMetaData& objectInfo );
+    TUint32 GetStorageIdL( const TDesC& aPath );
+    void OnDeviceFolderChangedL( TMTPEventCode aEventCode, CMTPObjectMetaData& objectInfo );
+    
    public:
     //from MExtnDevPluginCallback
-    void OnDevicePropertyChangedL (TMTPDevicePropertyCode& aPropCode);
+    void OnDevicePropertyChangedL(TMTPDevicePropertyCode& aPropCode);
 	
     /**
       * This method return reference MMTPDataProviderFramework
@@ -162,7 +166,6 @@
     TInt								iActiveProcessor;
     TBool								iActiveProcessorRemoved;
 
-   
     };
     
 #endif // CMTPDEVICEDP_H
--- a/mtpfws/mtpfw/dataproviders/devdp/inc/cmtpgetnumobjects.h	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpfws/mtpfw/dataproviders/devdp/inc/cmtpgetnumobjects.h	Fri Mar 19 09:40:39 2010 +0200
@@ -24,9 +24,11 @@
 
 #include "cmtprequestprocessor.h"
 #include "rmtpframework.h"
+#include "rmtpdevicedpsingletons.h"
 
 class MMTPObjectMgr;
 
+
 /** 
 Implements device data provider GetNumObjects request processor
 @internalComponent
@@ -55,6 +57,8 @@
 private:
 
 	RMTPFramework iSingletons;
+
+    RMTPDeviceDpSingletons              iDevDpSingletons;
 	};
 	
 #endif // CMTPGETNUMOBJECTS_H
--- a/mtpfws/mtpfw/dataproviders/devdp/inc/cmtpstoragewatcher.h	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpfws/mtpfw/dataproviders/devdp/inc/cmtpstoragewatcher.h	Fri Mar 19 09:40:39 2010 +0200
@@ -27,9 +27,11 @@
 #include "mtpdebug.h"
 #include "rmtpframework.h"
 #include "rmtpdpsingletons.h"
+#include "rmtpdevicedpsingletons.h"
 
 class MMTPDataProviderFramework;
 
+
 /** 
 Implements the MTP device data provider system storage watcher.
 @internalComponent
@@ -119,6 +121,8 @@
     */
     RMTPDpSingletons				iDpSingletons;
     
+    RMTPDeviceDpSingletons          iDevDpSingletons;
+    
 private: // Not owned.
 
     MMTPDataProviderFramework&      iFramework;
--- a/mtpfws/mtpfw/dataproviders/devdp/inc/mtpdevdppanic.h	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpfws/mtpfw/dataproviders/devdp/inc/mtpdevdppanic.h	Fri Mar 19 09:40:39 2010 +0200
@@ -35,6 +35,7 @@
     EMTPDevDpInvalidRequest             = 7,
     EMTPDevDpUnknownDeviceProperty      = 8,
     EMTPDevDpUnknownServiceID           = 9,
+    EMTPDevDpObjectNull					= 10,
 
     };
 
--- a/mtpfws/mtpfw/dataproviders/devdp/inc/rmtpdevicedpsingletons.h	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpfws/mtpfw/dataproviders/devdp/inc/rmtpdevicedpsingletons.h	Fri Mar 19 09:40:39 2010 +0200
@@ -45,6 +45,8 @@
     CMTPDeviceDataStore& DeviceDataStore();
     CMTPDeviceDpConfigMgr& ConfigMgr();
     
+    RArray<TUint>& PendingStorages();
+    
 private:
     
     /**
@@ -79,6 +81,11 @@
         The device dp config manager.
         */
         CMTPDeviceDpConfigMgr*	iConfigMgr;
+        
+        /*
+         * The pending storageids which is not enumerated.
+         */
+        RArray<TUint>         iPendingStorages;
     };
     
 private: // Owned
--- a/mtpfws/mtpfw/dataproviders/devdp/src/cmtpdevicedatastore.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpfws/mtpfw/dataproviders/devdp/src/cmtpdevicedatastore.cpp	Fri Mar 19 09:40:39 2010 +0200
@@ -875,7 +875,7 @@
     TInt errorCode = ValidateString(aDateTime, dateTime, offset);
     if(KErrNone == errorCode)
 	{
-	    StringToDateTime(dateTime);
+	    StringToDateTimeL(dateTime);
 	    iDateTime->SetL(dateTime);
 	    StoreL();
 	    //now set the system time by calling user SetUTCTime
@@ -923,7 +923,7 @@
 *TTime time format YYYYMMDD:hhmmss.ssssss. Right now microsecond part is
 * not implemented.
 **/
-void CMTPDeviceDataStore::StringToDateTime(TDes& aDateTime )
+void CMTPDeviceDataStore::StringToDateTimeL(TDes& aDateTime )
 	{
     __FLOG(_L8("StringToDateTime - Entry"));
 	TBuf<30> newTime;
@@ -956,8 +956,7 @@
 		}
 	else
 		{
-		_LIT(KPanic, "date time ");
-		User::Panic(KPanic, 3);
+        User::Leave( KErrArgument );
 		}
         __FLOG_1(_L("Processed DateTime: %S"), &aDateTime);	
 	__FLOG(_L8("StringToDateTime - Exit"));
--- a/mtpfws/mtpfw/dataproviders/devdp/src/cmtpdevicedp.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpfws/mtpfw/dataproviders/devdp/src/cmtpdevicedp.cpp	Fri Mar 19 09:40:39 2010 +0200
@@ -13,11 +13,15 @@
 // Description:
 //
 
+#include <bautils.h>
 #include <mtp/cmtpstoragemetadata.h>
 #include <mtp/mmtpconnection.h>
 #include <mtp/mmtpdataproviderframework.h>
+#include <mtp/mmtpobjectmgr.h>
 #include <mtp/mtpdataproviderapitypes.h>
 #include <mtp/tmtptyperequest.h>
+#include <mtp/cmtptypestring.h>
+#include <mtp/cmtpobjectmetadata.h>
 
 #include "cmtpdevdpexclusionmgr.h"
 #include "cmtpdevicedatastore.h"
@@ -31,8 +35,6 @@
 #include "mtpdevdppanic.h"
 
 #include "cmtpextndevdp.h"
-#include <mtp/cmtptypestring.h>
-
 
 // Class constants.
 __FLOG_STMT(_LIT8(KComponent,"DeviceDataProvider");)
@@ -109,7 +111,9 @@
     case EMTPSessionOpened:
         SessionOpenedL(*reinterpret_cast<const TMTPNotificationParamsSessionChange*>(aParams));
         break;
-
+    case EMTPObjectAdded:
+        AddFolderRecursiveL(*reinterpret_cast<const TMTPNotificationParamsFolderChange*>( aParams ));
+        break;
     default:
         // Ignore all other notifications.
         break;
@@ -355,6 +359,159 @@
 	CleanupStack::PopAndDestroy(&extnUidArray);
 	}
 
+void CMTPDeviceDataProvider::AddFolderRecursiveL( const TMTPNotificationParamsFolderChange& aFolder )
+    {
+    __FLOG(_L8("AddFolderRecursiveL - Entry"));
+    
+    TPtrC folderRight( aFolder.iFolderChanged );
+    __FLOG_VA((_L16("Folder Addition - DriveAndFullPath:%S"), &folderRight ));
+    
+    if ( !BaflUtils::FolderExists( Framework().Fs(), folderRight ))
+    	{
+    	__FLOG(_L8("Folder not exist in file system"));
+    	User::Leave( KErrArgument );
+    	}
+    
+    TUint32 parentHandle( KMTPHandleNoParent );
+    TUint32 handle( KMTPHandleNoParent );
+    TInt pos( KErrNotFound );
+    TInt lengthOfRight( folderRight.Length());
+    TFileName folderLeft;
+    
+    _LIT( KRootFolder, "?:\\");
+    
+    /*
+    Go through from beginning.
+    when this while end, folderLeft keeps the top
+    layer folder which has no handle
+    */
+    do 
+        {
+        pos = folderRight.Locate( KPathDelimiter );
+        if ( KErrNotFound == pos )
+            {
+            break;
+            }
+        folderLeft.Append( folderRight.Left( pos + 1 ));
+        lengthOfRight = folderRight.Length()-pos -1;
+        folderRight.Set( folderRight.Right( lengthOfRight ));
+        
+        if ( KErrNotFound != folderLeft.Match( KRootFolder ))
+        	{
+        	//first time, root folder
+        	//continue
+        	continue;
+        	}
+        parentHandle = handle;
+        handle = Framework().ObjectMgr().HandleL( folderLeft );
+        }
+    while( KMTPHandleNone != handle );
+    
+
+    if ( KMTPHandleNone == handle )
+        {
+        __FLOG(_L8("need to add entry into mtp database"));
+        
+        CMTPObjectMetaData* folderObject = CMTPObjectMetaData::NewL();
+        TUint32 storageId = GetStorageIdL( folderLeft );
+        
+        while( 1 )
+            {
+            parentHandle = AddEntryL( folderLeft, parentHandle, storageId, *folderObject );
+            OnDeviceFolderChangedL( EMTPEventCodeObjectAdded, *folderObject );
+
+            pos = folderRight.Locate( KPathDelimiter );
+            lengthOfRight = folderRight.Length()-pos -1;
+            if ( KErrNotFound == pos )
+            	{
+            	break;
+            	}
+            folderLeft.Append( folderRight.Left( pos + 1  ));
+            folderRight.Set( folderRight.Right( lengthOfRight ));
+            }
+            
+        delete folderObject;
+        }
+    
+    __FLOG(_L8("AddFolderRecursiveL - Exit"));
+    }
+    
+TUint32 CMTPDeviceDataProvider::AddEntryL( const TDesC& aPath, TUint32 aParentHandle, TUint32 aStorageId, CMTPObjectMetaData& aObjectInfo  )
+    {
+    __FLOG(_L8("AddEntryL - Entry"));
+    
+    TBool isFolder( EFalse );
+    BaflUtils::IsFolder( Framework().Fs(), aPath, isFolder );
+    
+    __ASSERT_ALWAYS( isFolder, User::Leave( KErrArgument ));
+    __ASSERT_ALWAYS( aParentHandle != KMTPHandleNone, User::Leave( KErrArgument ));
+    __ASSERT_ALWAYS( Framework().StorageMgr().ValidStorageId( aStorageId ), User::Invariant());
+
+    __FLOG_VA((_L16("Add Entry for Path:%S"), &aPath ));
+    aObjectInfo.SetUint( CMTPObjectMetaData::EDataProviderId, Framework().DataProviderId() );
+    aObjectInfo.SetUint( CMTPObjectMetaData::EFormatCode, EMTPFormatCodeAssociation );
+    aObjectInfo.SetUint( CMTPObjectMetaData::EStorageId, aStorageId );
+    aObjectInfo.SetDesCL( CMTPObjectMetaData::ESuid, aPath );
+    aObjectInfo.SetUint( CMTPObjectMetaData::EFormatSubCode, EMTPAssociationTypeGenericFolder );
+    aObjectInfo.SetUint( CMTPObjectMetaData::EParentHandle, aParentHandle );
+    aObjectInfo.SetUint( CMTPObjectMetaData::ENonConsumable, EMTPConsumable );
+    
+    //For example 
+    //C:\\Documents\\Sample\\Sample1\\
+    //Then "Sample1" is inserted into folderObjects
+    TUint length = aPath.Length()-1;//remove '\'
+    TPtrC tailFolder( aPath.Ptr(), length );
+    TInt pos = tailFolder.LocateReverse( KPathDelimiter ) + 1;
+    tailFolder.Set( tailFolder.Right(length - pos));
+
+    aObjectInfo.SetDesCL( CMTPObjectMetaData::EName, tailFolder );
+    
+    Framework().ObjectMgr().InsertObjectL( aObjectInfo );
+    __FLOG(_L8("AddEntryL - Exit"));
+    
+    return aObjectInfo.Uint( CMTPObjectMetaData::EHandle );
+    }
+
+TUint32 CMTPDeviceDataProvider::GetStorageIdL( const TDesC& aPath )
+    {
+    __FLOG(_L8("GetStorageId - Entry"));
+
+    TChar driveLetter = aPath[0];
+    TInt drive;
+    User::LeaveIfError( Framework().Fs().CharToDrive( driveLetter, drive ));
+    	
+    __FLOG(_L8("GetStorageId - Exit"));
+    
+    return Framework().StorageMgr().FrameworkStorageId( static_cast<TDriveNumber>( drive ));
+    }
+
+void CMTPDeviceDataProvider::OnDeviceFolderChangedL( TMTPEventCode aEventCode, CMTPObjectMetaData& aObjectInfo )
+    {
+    __FLOG(_L8("OnDeviceFolderChangedL - Entry"));
+    
+    iEvent.Reset();
+    
+    switch( aEventCode )
+        {
+    case EMTPEventCodeObjectAdded:
+        {
+        __FLOG(_L8("Send event for object add"));
+        iEvent.SetUint16( TMTPTypeEvent::EEventCode, EMTPEventCodeObjectAdded );
+        iEvent.SetUint32( TMTPTypeEvent::EEventSessionID, KMTPSessionAll );
+        iEvent.SetUint32( TMTPTypeEvent::EEventTransactionID, KMTPTransactionIdNone );
+        TUint32 handle = aObjectInfo.Uint( CMTPObjectMetaData::EHandle );
+        iEvent.SetUint32( TMTPTypeEvent::EEventParameter1, handle );
+        }
+        break;
+    default:
+        break;
+        }
+    
+    Framework().SendEventL(iEvent);
+    
+    __FLOG(_L8("OnDeviceFolderChangedL - Exit"));
+    }
+
 /**
 Second phase constructor.
 */
@@ -381,6 +538,8 @@
 		}
 
     iEnumerator = CMTPFSEnumerator::NewL(Framework(), iDpSingletons.ExclusionMgrL(), *this, KProcessLimit);
+    
+    
     __FLOG(_L8("ConstructL - Exit"));
 
     }
--- a/mtpfws/mtpfw/dataproviders/devdp/src/cmtpdevrequestunknown.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpfws/mtpfw/dataproviders/devdp/src/cmtpdevrequestunknown.cpp	Fri Mar 19 09:40:39 2010 +0200
@@ -92,6 +92,7 @@
 	    case EMTPOpCodeGetPartialObject:
 	    case EMTPOpCodeGetObjectReferences:
 	    case EMTPOpCodeSetObjectReferences:
+	    case EMTPOpCodeSetObjectProtection:
             {
             CMTPObjectMetaData* object(CMTPObjectMetaData::NewLC());
             if (!iSingletons.ObjectMgr().ObjectL(iRequest->Uint32(TMTPTypeRequest::ERequestParameter1), *object))
--- a/mtpfws/mtpfw/dataproviders/devdp/src/cmtpgetnumobjects.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpfws/mtpfw/dataproviders/devdp/src/cmtpgetnumobjects.cpp	Fri Mar 19 09:40:39 2010 +0200
@@ -18,6 +18,7 @@
 #include <mtp/mmtpobjectmgr.h>
 #include <mtp/mmtpdataprovider.h>
 #include <mtp/cmtpdataproviderplugin.h>
+#include <mtp/cmtpobjectmetadata.h>
 
 #include "cmtpdataprovidercontroller.h"
 #include "cmtpdataprovider.h"
@@ -26,6 +27,7 @@
 #include "mtpdevicedpconst.h"
 #include "mtpdevdppanic.h"
 
+
 /**
 Verification data for GetNumObjects request
 */
@@ -57,6 +59,7 @@
 */	
 CMTPGetNumObjects::~CMTPGetNumObjects()
 	{	
+	iDevDpSingletons.Close();
     iSingletons.Close();
 	}
 /**
@@ -74,19 +77,51 @@
 void CMTPGetNumObjects::ConstructL()
     {
     iSingletons.OpenL();
+    iDevDpSingletons.OpenL(iFramework);
     }
 
 TMTPResponseCode CMTPGetNumObjects::CheckRequestL()
 	{
 	TMTPResponseCode responseCode = CMTPRequestProcessor::CheckRequestL();
-	if(responseCode == EMTPRespCodeOK)
+	if(responseCode != EMTPRespCodeOK)
+		{
+		return responseCode;	
+		}
+	
+	TUint32 formatCode = Request().Uint32(TMTPTypeRequest::ERequestParameter2); 
+	if(formatCode != 0 && !IsSupportedFormatL(formatCode))
+		{
+		return EMTPRespCodeInvalidObjectFormatCode;
+		}
+	
+	if(iSingletons.DpController().EnumerateState() != CMTPDataProviderController::EEnumeratedFulllyCompleted)
 		{
-		TUint32 formatCode = Request().Uint32(TMTPTypeRequest::ERequestParameter2);
-		if(formatCode != 0 && !IsSupportedFormatL(formatCode))
+		TUint storageID = Request().Uint32(TMTPTypeRequest::ERequestParameter1);
+		TUint handle = Request().Uint32(TMTPTypeRequest::ERequestParameter3);
+		if(iDevDpSingletons.PendingStorages().FindInOrder(storageID) != KErrNotFound)
+			{
+			responseCode = EMTPRespCodeDeviceBusy;
+			}
+		else if( (handle != KMTPHandleNone) && (handle != KMTPHandleAll)  )
 			{
-			responseCode = EMTPRespCodeInvalidObjectFormatCode;
+			CMTPObjectMetaData* meta = iRequestChecker->GetObjectInfo(handle);
+			__ASSERT_DEBUG(meta, Panic(EMTPDevDpObjectNull));
+			
+			if( meta->Uint(CMTPObjectMetaData::EFormatCode) == EMTPFormatCodeAssociation )
+				{
+				responseCode = EMTPRespCodeDeviceBusy;
+				}
+			}
+		else if(EMTPFormatCodeUndefined == formatCode)
+			{
+			responseCode = EMTPRespCodeDeviceBusy;
 			}
 		}
+	else if(iDevDpSingletons.PendingStorages().Count() > 0)
+		{
+		iDevDpSingletons.PendingStorages().Close();
+		}
+	
 	return responseCode;	
 	}
 	
--- a/mtpfws/mtpfw/dataproviders/devdp/src/cmtpgetserviceinfo.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpfws/mtpfw/dataproviders/devdp/src/cmtpgetserviceinfo.cpp	Fri Mar 19 09:40:39 2010 +0200
@@ -101,7 +101,7 @@
         //it may be caused by: 
         //    1. DP plugin does not register the ServiceID by the Supported() function. Mostly.
         //    2. Framework have some errors while setup the router mapping table.
-        Panic(EMTPDevDpUnknownServiceID);
+        __DEBUG_ONLY(Panic(EMTPDevDpUnknownServiceID));
         }
     
     __FLOG(_L8("ServiceL - Exit"));
--- a/mtpfws/mtpfw/dataproviders/devdp/src/cmtpopensession.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpfws/mtpfw/dataproviders/devdp/src/cmtpopensession.cpp	Fri Mar 19 09:40:39 2010 +0200
@@ -83,7 +83,7 @@
 void CMTPOpenSession::ServiceL()    
     {
     iSingletons.DpController().WaitForEnumerationComplete();
-    if(iSingletons.DpController().EnumerateState() != CMTPDataProviderController::EEnumerated)
+    if(iSingletons.DpController().EnumerateState() < CMTPDataProviderController::EEnumeratingPhaseOneDone)
     	{
     	SendResponseL(EMTPRespCodeDeviceBusy);
     	}
--- a/mtpfws/mtpfw/dataproviders/devdp/src/cmtpsetdevicepropvalue.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpfws/mtpfw/dataproviders/devdp/src/cmtpsetdevicepropvalue.cpp	Fri Mar 19 09:40:39 2010 +0200
@@ -282,6 +282,16 @@
 void CMTPSetDevicePropValue::CompleteServiceDateTimeL()
 	{
 	__FLOG(_L8("CompleteDateTime - Entry"));
+	
+	//Just a workAround for WinLogo
+	_LIT(KWinLogoWorkAround,"20051231");
+	TInt pos = iString->StringChars().Find( KWinLogoWorkAround );
+	if ( KErrNotFound != pos )
+		{
+		SendResponseL(EMTPRespCodeOK);
+		return;
+		}
+												
 	//validate the incoming date time string first and then set it.
 	if(KErrNone == iDpSingletons.DeviceDataStore().SetDateTimeL(iString->StringChars()) )
 		{
--- a/mtpfws/mtpfw/dataproviders/devdp/src/cmtpstoragewatcher.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpfws/mtpfw/dataproviders/devdp/src/cmtpstoragewatcher.cpp	Fri Mar 19 09:40:39 2010 +0200
@@ -24,7 +24,6 @@
 #include "cmtpstoragemgr.h"
 #include "cmtpobjectmgr.h"
 #include "cmtpstoragewatcher.h"
-#include "rmtpdevicedpsingletons.h"
 #include "cmtpdevicedpconfigmgr.h"
 
 
@@ -61,6 +60,7 @@
     iDpSingletons.Close();
     iDrivesExcluded.Close();
     iFrameworkSingletons.Close();
+    iDevDpSingletons.Close();
     __FLOG(_L8("~CMTPStorageWatcher - Exit"));
     __FLOG_CLOSE;
     }
@@ -278,13 +278,10 @@
     iFrameworkSingletons.OpenL();
     iFrameworkSingletons.FrameworkConfig().GetValueL(CMTPFrameworkConfig::ELogicalStorageIdsAllocationEnable, iAllocateLogicalStorages);
     
-    RMTPDeviceDpSingletons devSingletons;
-    devSingletons.OpenL(iFramework);
-    CleanupClosePushL(devSingletons);
-    
     iDpSingletons.OpenL(iFramework);
-    iFolderExclusionList = devSingletons.ConfigMgr().GetArrayValueL(CMTPDeviceDpConfigMgr::EFolderExclusionList); 
-    CleanupStack::PopAndDestroy(&devSingletons);
+    iDevDpSingletons.OpenL(iFramework);
+    iFolderExclusionList = iDevDpSingletons.ConfigMgr().GetArrayValueL(CMTPDeviceDpConfigMgr::EFolderExclusionList); 
+
     __FLOG(_L8("ConstructL - Exit"));
     }
     
@@ -475,6 +472,11 @@
         {
         TMTPNotificationParamsStorageChange params = {physical};
         iFrameworkSingletons.DpController().NotifyDataProvidersL(EMTPStorageAdded, static_cast<TAny*>(&params));
+        
+        if(iFrameworkSingletons.DpController().EnumerateState() == CMTPDataProviderController::EEnumeratingSubDirFiles)
+			{
+			iDevDpSingletons.PendingStorages().InsertInOrder(logical);
+			}
         }
 
     // Notify any connected Initiator(s).
@@ -515,6 +517,12 @@
     TMTPNotificationParamsStorageChange params = {physical};
     iFrameworkSingletons.DpController().NotifyDataProvidersL(EMTPStorageRemoved, static_cast<TAny*>(&params));
 
+    TInt index = iDevDpSingletons.PendingStorages().FindInOrder( logical);
+	if(KErrNotFound != index)
+		{
+		iDevDpSingletons.PendingStorages().Remove(index);
+		}
+        	
     // Notify any connected Initiator(s).
     if (iAllocateLogicalStorages)
         {
--- a/mtpfws/mtpfw/dataproviders/devdp/src/rmtpdevicedpsingletons.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpfws/mtpfw/dataproviders/devdp/src/rmtpdevicedpsingletons.cpp	Fri Mar 19 09:40:39 2010 +0200
@@ -141,6 +141,7 @@
     __FLOG(_L8("CSingletons::~CSingletons - Entry"));
     delete iConfigMgr;
     delete iDeviceDataStore;
+    iPendingStorages.Close();
     __FLOG(_L8("CSingletons::~CSingletons - Exit"));
     __FLOG_CLOSE;
     }
@@ -154,3 +155,11 @@
     __FLOG(_L8("CSingletons::ConstructL - Exit"));
     }
 
+RArray<TUint>& RMTPDeviceDpSingletons::PendingStorages()
+	{
+    __FLOG(_L8("PendingStorages - Entry"));
+    __ASSERT_DEBUG(iSingletons, User::Invariant());
+    __FLOG(_L8("PendingStorages - Exit"));
+    return iSingletons->iPendingStorages;
+	}
+
--- a/mtpfws/mtpfw/dataproviders/dputility/inc/cmtpfsenumerator.h	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpfws/mtpfw/dataproviders/dputility/inc/cmtpfsenumerator.h	Fri Mar 19 09:40:39 2010 +0200
@@ -46,7 +46,7 @@
     IMPORT_C static CMTPFSEnumerator* NewL(MMTPDataProviderFramework& aFramework, CMTPFSExclusionMgr& aExclusionMgr, MMTPEnumerationCallback& aCallback, TInt aProcessLimit);
     IMPORT_C ~CMTPFSEnumerator();
 
-	IMPORT_C void StartL(TUint32 aStorageId);	
+	IMPORT_C void StartL(TUint32 aStorageId, TBool aOnlyRoot = EFalse);	
 	
 private:
 	//from CActive
@@ -64,10 +64,11 @@
 	void ScanNextStorageL();
 	void ScanNextSubdirL();
 	void ProcessEntriesL();
-	void AddEntryL(const TDesC& aPath, TUint32 &aHandle, TMTPFormatCode format, TUint32 aDPId, const TEntry& aEntry);
-	void AddFileEntryForOtherDpL(const TDesC& aPath, TUint32 &aHandle, TMTPFormatCode format, TUint32 aDPId, const TEntry& aEntry);
+	void AddEntryL(const TDesC& aPath, TUint32 &aHandle, TMTPFormatCode format, TUint32 aDPId, const TEntry& aEntry, TUint32 aStorageId, TUint32 aParentHandle);
+	void AddFileEntryForOtherDpL(const TDesC& aPath, TUint32 &aHandle, TMTPFormatCode format, TUint32 aDPId, const TEntry& aEntry, TUint32 aStorageId, TUint32 aParentHandle);
 	void NotifyObjectAddToDP(const TUint32 aHandle,const TUint DpId);
 	
+	
 private: 
 	// Owned
 	MMTPDataProviderFramework&  iFramework;
@@ -88,6 +89,10 @@
 	TUint						iDpID;
 	RMTPFramework               iSingletons;
 	TBool                       iSkipCurrentStorage;
+	
+	TBool						iIsFileEnumerator;
+	TBool						iOnlyScanRoot;
+	TInt						iNumOfFoldersAndFiles;
 	/**
     FLOGGER debug trace member variable.
     */
--- a/mtpfws/mtpfw/dataproviders/dputility/inc/cmtpknowledgehandler.h	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpfws/mtpfw/dataproviders/dputility/inc/cmtpknowledgehandler.h	Fri Mar 19 09:40:39 2010 +0200
@@ -31,6 +31,93 @@
 class CMTPTypeFile;
 class CRepository;
 
+NONSHARABLE_CLASS(CKnowledgeObject) : public CBase
+	{
+public:
+	static CKnowledgeObject* NewL(CRepository& aRepository);
+	~CKnowledgeObject();
+	
+	/**
+	Get the value from the central repository
+	@leave One of the system wide error codes, if repository get value fail
+	*/
+	void LoadL();
+	/**
+	Set the cached value to the central repository
+	@leave One of the system wide error codes, if repository set value fail
+	*/
+	void CommitL();
+	/** 
+	Clear the cached knowledge object property values 
+	*/
+	void Clear();
+	/**
+	Update cached DateModified to current Device time
+	*/
+	void RefreshDateModifed();
+	/**
+	Check if the cached object property values are aligned with repository
+	*/
+	TBool IsDirty() {return iDirty;};
+	
+	//Get method for all prop
+	TUint64 Size(){return iKnowledgeObjectSize;};
+	TDesC& DateModified(){return iDateModified;};
+	TDesC& Name(){return iName;};
+	const TMTPTypeUint128& LastAuthorProxyID() {return iLastAuthorProxyID;};
+	
+	//Set method for all prop
+	void SetSize(TUint64 aSize);
+	void SetDateModified(const TDesC& aDateModified);
+	void SetName(const TDesC& aName);
+	void SetLastAuthorProxyID(TUint64 aHigh, TUint64 aLow);
+	
+private:
+	//key of central repository
+	enum TMTPKnowledgeStoreKeyNum
+		{
+		ESize 				= 0x10001, 
+		EDateModified 		= 0x10002,
+		EName 				= 0x10003,
+		ELastAuthorProxyID 	= 0x10004
+		};
+
+	// Bit flag of the property
+	enum TMTPKnowledgeBitFlag
+		{
+		EBitFlagNone 				= 0x00,
+		EBitFlagSize 				= 0x01, 
+		EBitFlagDateModified 		= 0x02,
+		EBitFlagName 				= 0x04,
+		EBitFlagLastAuthorProxyID 	= 0x08,
+		EBitFlagAll 				= 0x0F
+		};
+
+private:
+	CKnowledgeObject(CRepository& aRepository);
+	
+	void ConstructL();
+	
+	TMTPResponseCode SetColumnType128Value(TMTPKnowledgeStoreKeyNum aColumnNum, TMTPTypeUint128& aNewData);
+	
+	CRepository&     	iRepository;
+
+	// The bit wise value of TMTPKnowledgeBitFlag 
+	// to state which property is not aligned with repository
+	TUint				iDirty;
+	
+	TUint64          	iKnowledgeObjectSize; 
+	RBuf             	iDateModified;
+	RBuf             	iName;
+	TMTPTypeUint128  	iLastAuthorProxyID;
+	
+	/**
+	FLOGGER debug trace member variable.
+	*/
+	__FLOG_DECLARATION_MEMBER_MUTABLE;
+	
+	};
+
 /** 
 Controls access to the knowledge object.
 @internalComponent
@@ -68,58 +155,24 @@
 	void RollBack();
 	void ReleaseObjectBuffer();	
 
-	enum TCacheStatus
-		{
-		EOK,
-		EDirty,
-		EDeleted
-		};
-	//key of central repository
-	enum TMTPKnowledgeStoreKeyNum
-		{
-		ESize = 0x10001, 
-		EDateModified = 0x10002,
-		EName = 0x10003,
-		ELastAuthorProxyID = 0x10004
-		};
 	
-	TMTPResponseCode SetColumnType128Value(TMTPKnowledgeStoreKeyNum aColumnNum, TMTPTypeUint128& aNewData);
-
 private:
 	CMTPKnowledgeHandler(MMTPDataProviderFramework& aFramework,TUint16 aFormatCode, CRepository& aReposotry, const TDesC& aKwgSuid);
 	void ConstructL();
 	
 	/**
-	Get the value from the central repository
-	@leave One of the system wide error codes, if repository get value fail
-	*/
-	void LoadKnowledgeObjPropertiesL();
-	/**
-	Cleanup Item operation for drop all knowledge properties
-	*/
-	static void DropCacheWrapper(TAny* aObject);
-	void DropKnowledgeObjPropertiesCache();
-	/**
 	Helper for GetObjectInfo request handling
 	*/
 	void BuildObjectInfoL(CMTPTypeObjectInfo& aObjectInfo) const;
-	/**
-	Delete knowledge object properties and content
-	@leave One of the system wide error codes, if repository set value fail
-	*/
-	void DeleteAllObjectPropertiesL();
 	
 private:
 	MMTPDataProviderFramework&  iFramework;
 	CRepository&                iRepository;
 	TUint32                     iStorageID;
 	TUint16                     iKnowledgeFormatCode;
-	TUint64                     iKnowledgeObjectSize; 
-	HBufC*                      iDateModified;
-	HBufC*                      iName;
-	TMTPTypeUint128             iLastAuthorProxyID;
-	TCacheStatus                iCacheStatus;
-	TCacheStatus                iCacheStatusFlag;
+	
+	CKnowledgeObject*			iCachedKnowledgeObject;
+	
 	TFileName                   iKnowObjFileName;
 	TFileName                   iKnowObjSwpFileName;
 	// Knowledge object content file
--- a/mtpfws/mtpfw/dataproviders/dputility/inc/cmtprequestprocessor.h	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpfws/mtpfw/dataproviders/dputility/inc/cmtprequestprocessor.h	Fri Mar 19 09:40:39 2010 +0200
@@ -182,7 +182,7 @@
 	const TMTPTypeRequest*		    iRequest;			//the pending requst object
 	MMTPConnection&				    iConnection;		//the connection from which the request comes
 	TMTPTypeResponse			    iResponse;			//the response object to send to the initiator
-	TBool						    iCancelled;			//indicates whether the data phase (send/receive) has been cancelled
+	TBool						    iCancelled;			//indicates whether this request has been cancelled
 	CMTPRequestChecker*		    	iRequestChecker;	//a utility class providing generic request verification service
 	TInt					    	iElementCount;		//number of verification elements used for request checker
 	const TMTPRequestElementInfo*	iElements;	 		//pointer to an array of verification elements
--- a/mtpfws/mtpfw/dataproviders/dputility/inc/mtpsvcdpconst.h	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpfws/mtpfw/dataproviders/dputility/inc/mtpsvcdpconst.h	Fri Mar 19 09:40:39 2010 +0200
@@ -230,6 +230,7 @@
 const TUint32 KMTPServicePropertyAll = 0x00000000;
 
 const TUint32 KMTPUnInitialized32 = 0xFFFFFFFF;
+const TUint64 KMTPUnInitialized64 = ~0; //MAKE_TINT64(KMTPUnInitialized32, KMTPUnInitialized32);
 const TUint32 KMaxSUIDLength = 50;
 const TUint64 KObjectSizeNotAvaiable = ~0;
 const TUint32 KLongStringMaxLength = 0x1000;
--- a/mtpfws/mtpfw/dataproviders/dputility/inc/rmtputility.h	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpfws/mtpfw/dataproviders/dputility/inc/rmtputility.h	Fri Mar 19 09:40:39 2010 +0200
@@ -64,7 +64,7 @@
 	TBool GetTimeZone(const TDesC& aTimeString, TBool& aPositiveTimeZone, TInt& aTimeZoneInHour, TInt& aTimeZoneInMinute) const;
 	HBufC* OdfMimeTypeL( const TDesC& aFullFileName );
 	void AppendFormatExtensionMapping(const CDesCArray& aFormatExtensionMapping,TUint32 aDpId);
-	
+	void GetAllDecendents(TUint32 aStorageId, TUint aParentHandle, RArray<TUint>& aHandles) const;
 	
 private:
     /**
--- a/mtpfws/mtpfw/dataproviders/dputility/src/cmtpfsenumerator.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpfws/mtpfw/dataproviders/dputility/src/cmtpfsenumerator.cpp	Fri Mar 19 09:40:39 2010 +0200
@@ -27,10 +27,18 @@
 #include "mmtpenumerationcallback.h"
 #include "cmtpdataprovidercontroller.h"
 #include "cmtpdataprovider.h"
+#include "mtpframeworkconst.h"
+
 
 // Class constants.
 __FLOG_STMT(_LIT8(KComponent,"FSEnumerator");)
 
+const TUint KMTPMaxFullFileName = 259;
+/*
+ * 
+ */
+#define KMAX_FILECOUNT_ENUMERATINGPHASE1 5000
+
 /**
  * the files should not be owned by any dp. 
  */
@@ -86,9 +94,13 @@
 Kick off the enumeration on the specified storage
 @param aStorageId storage to be enumerated
 */
-EXPORT_C void CMTPFSEnumerator::StartL(TUint32 aStorageId)
+EXPORT_C void CMTPFSEnumerator::StartL(TUint32 aStorageId, TBool aOnlyRoot)
 	{
 	__ASSERT_DEBUG(!IsActive(), User::Invariant());
+	iNumOfFoldersAndFiles = 0;
+	iOnlyScanRoot = aOnlyRoot;
+	__FLOG_VA((_L8("iOnlyScanRoot == %d "), iOnlyScanRoot));
+	
 	MMTPStorageMgr& storageMgr(iFramework.StorageMgr());
 	if (aStorageId == KMTPStorageAll)
 	    {
@@ -157,6 +169,11 @@
 		}
 	else
 		{
+		if((!iIsFileEnumerator) &&(iNumOfFoldersAndFiles > KMAX_FILECOUNT_ENUMERATINGPHASE1))
+			{
+			iSingletons.DpController().SetNeedEnumeratingPhase2(ETrue);
+			}
+		
 		iCallback.NotifyEnumerationCompleteL(iStorageId, KErrNone);
 		
 		TMTPTypeEvent event;
@@ -193,7 +210,7 @@
  	    {
  	    iParentHandle = KMTPHandleNoParent;
  	    iPath.Set(root, NULL, NULL);
- 	    User::LeaveIfError(iDir.Open(iFramework.Fs(), iPath.DriveAndPath(), KEntryAttNormal | KEntryAttDir));
+ 	    User::LeaveIfError(iDir.Open(iFramework.Fs(), iPath.DriveAndPath(), KEntryAttNormal | KEntryAttHidden | KEntryAttDir));
  	    ScanDirL();
  	    }
  	else
@@ -248,7 +265,12 @@
 		{
 		// We are done
 		iStorages.Reset();
+		if((!iIsFileEnumerator) &&(iNumOfFoldersAndFiles > KMAX_FILECOUNT_ENUMERATINGPHASE1))
+			{
+			iSingletons.DpController().SetNeedEnumeratingPhase2(ETrue);
+			}
 		iCallback.NotifyEnumerationCompleteL(iStorageId, KErrNone);
+		
 		}
 	__FLOG_VA(_L8("ScanNextStorageL - exit"));
 	}
@@ -268,7 +290,7 @@
 				
 	// Kick-off a scan of the next directory
 	iDir.Close();
-	User::LeaveIfError(iDir.Open(iFramework.Fs(), iPath.DriveAndPath(), KEntryAttNormal | KEntryAttDir));
+	User::LeaveIfError(iDir.Open(iFramework.Fs(), iPath.DriveAndPath(), KEntryAttNormal | KEntryAttHidden | KEntryAttDir));
 	ScanDirL();
 	__FLOG_VA(_L8("ScanNextSubdirL - exit"));
 	}
@@ -283,7 +305,7 @@
 	__FLOG_VA(_L8("ScanNextL - entry"));
 	TInt count = iDirStack.Count();
 	
-	if (count == 0)
+	if ((count == 0) || iOnlyScanRoot )
 		{
 		// No more directories on the stack, try the next storage
 		ScanNextStorageL();
@@ -372,6 +394,7 @@
 	__FLOG_VA((_L8("RunError - entry with error %d"), aError));
 	 if(!iFramework.StorageMgr().ValidStorageId(iStorages[0]))
 		 {
+		 __FLOG_VA((_L8("Invalid StorageID = %d"),iStorages[0] ));
 		 if (iStorages.Count()>1)
 			 {
 			 //Not necessary to process any entry on the storage, since the storage removed.
@@ -411,6 +434,7 @@
 	iDpSingletons.OpenL(iFramework);
 	iObject = CMTPObjectMetaData::NewL();	
 	iDpID = iFramework.DataProviderId();
+	iIsFileEnumerator = (KMTPFileDPID == iDpID);
 	}
 
 /**
@@ -419,8 +443,6 @@
 
 void CMTPFSEnumerator::ProcessEntriesL()
 	{
-	const TUint KMTPMaxFullFileName = 259;
-
 	TBuf<KMTPMaxFullFileName> path = iPath.DriveAndPath();
 	
 	// Start looping through entries at where we left off
@@ -429,7 +451,11 @@
 	count = Min(count, iProcessLimit);
 	iFirstUnprocessed += count;		
 	
-		
+	if(!iIsFileEnumerator)
+		{
+		iNumOfFoldersAndFiles +=count;
+		}	
+	
 	for (TInt i = (iFirstUnprocessed - count); i < iFirstUnprocessed; ++i)
 		{
 		const TEntry& entry = iEntries[i];
@@ -475,14 +501,14 @@
 				path.Append('\\');
 				++len;
 				format = EMTPFormatCodeAssociation;
-				AddEntryL(path, handle, format, iDpID, entry);
+				AddEntryL(path, handle, format, iDpID, entry, iStorages[0], iParentHandle);
 				iDirStack.AppendL(entry);
 				}
 			}
 		else if ( iExclusionMgr.IsFileAcceptedL(path,iStorages[0]) )
 			{
 			format = EMTPFormatCodeUndefined;
-			AddEntryL(path, handle, format, iDpID, entry);
+			AddEntryL(path, handle, format, iDpID, entry, iStorages[0], iParentHandle);
 			}
 		else if ( parse.ExtPresent() )
 		    {
@@ -492,7 +518,7 @@
                 if (KMTPHandleNone == iFramework.ObjectMgr().HandleL(path))
                     {
                     format = EMTPFormatCodeUndefined;
-                    AddEntryL(path, handle, format, iDpID, entry);		   
+                    AddEntryL(path, handle, format, iDpID, entry, iStorages[0], iParentHandle);		   
                     }
                 break;
                 
@@ -501,7 +527,7 @@
                     {
                     format = iDpSingletons.MTPUtility().GetFormatByExtension(parse.Ext().Mid(1));  
                     TUint32 DpId = iDpSingletons.MTPUtility().GetDpId(parse.Ext().Mid(1), KNullDesC);
-                    AddFileEntryForOtherDpL(path, handle, format, DpId, entry);
+                    AddFileEntryForOtherDpL(path, handle, format, DpId, entry, iStorages[0], iParentHandle);
                     }
                 break;
                 
@@ -509,7 +535,7 @@
                 {
                 format = iDpSingletons.MTPUtility().GetFormatByExtension(parse.Ext().Mid(1));  
                 TUint32 DpId = iDpSingletons.MTPUtility().GetDpId(parse.Ext().Mid(1), KNullDesC);
-                AddFileEntryForOtherDpL(path, handle, format, DpId, entry);
+                AddFileEntryForOtherDpL(path, handle, format, DpId, entry, iStorages[0], iParentHandle);
                 }
                 break;
                 
@@ -531,7 +557,7 @@
 @param aPath    The full path name of the entry
 @return MTP object handle, or KMTPHandleNone if entry was not accepted
 */    
-void CMTPFSEnumerator::AddEntryL(const TDesC& aPath, TUint32 &aHandle, TMTPFormatCode format, TUint32 aDPId, const TEntry& aEntry)
+void CMTPFSEnumerator::AddEntryL(const TDesC& aPath, TUint32 &aHandle, TMTPFormatCode format, TUint32 aDPId, const TEntry& aEntry, TUint32 aStorageId, TUint32 aParentHandle)
 	{
 #ifdef __FLOG_ACTIVE    
 	TBuf8<KMaxFileName> tmp;
@@ -561,10 +587,10 @@
         
         iObject->SetUint(CMTPObjectMetaData::EDataProviderId, aDPId);
         iObject->SetUint(CMTPObjectMetaData::EFormatCode, format);
-        iObject->SetUint(CMTPObjectMetaData::EStorageId, iStorages[0]);
+        iObject->SetUint(CMTPObjectMetaData::EStorageId, aStorageId);
         iObject->SetDesCL(CMTPObjectMetaData::ESuid, aPath);
         iObject->SetUint(CMTPObjectMetaData::EFormatSubCode, assoc);
-        iObject->SetUint(CMTPObjectMetaData::EParentHandle, iParentHandle);
+        iObject->SetUint(CMTPObjectMetaData::EParentHandle, aParentHandle);
         iObject->SetUint(CMTPObjectMetaData::ENonConsumable, EMTPConsumable);
         iObject->SetDesCL(CMTPObjectMetaData::EName, name);
         iFramework.ObjectMgr().InsertObjectL(*iObject);
@@ -572,7 +598,7 @@
 	__FLOG_VA(_L8("AddEntryL - exit"));	
 	}
 
-void CMTPFSEnumerator::AddFileEntryForOtherDpL(const TDesC& aPath, TUint32 &aHandle, TMTPFormatCode format, TUint32 aDPId, const TEntry& /*aEntry*/)
+void CMTPFSEnumerator::AddFileEntryForOtherDpL(const TDesC& aPath, TUint32 &aHandle, TMTPFormatCode format, TUint32 aDPId, const TEntry& /*aEntry*/, TUint32 aStorageId, TUint32 aParentHandle)
     {
 #ifdef __FLOG_ACTIVE    
     TBuf8<KMaxFileName> tmp;
@@ -589,10 +615,10 @@
     
     iObject->SetUint(CMTPObjectMetaData::EDataProviderId, aDPId);
     iObject->SetUint(CMTPObjectMetaData::EFormatCode, format);
-    iObject->SetUint(CMTPObjectMetaData::EStorageId, iStorages[0]);
+    iObject->SetUint(CMTPObjectMetaData::EStorageId, aStorageId);
     iObject->SetDesCL(CMTPObjectMetaData::ESuid, aPath);
     iObject->SetUint(CMTPObjectMetaData::EFormatSubCode, assoc);
-    iObject->SetUint(CMTPObjectMetaData::EParentHandle, iParentHandle);
+    iObject->SetUint(CMTPObjectMetaData::EParentHandle, aParentHandle);
     iObject->SetUint(CMTPObjectMetaData::ENonConsumable, EMTPConsumable);
     iObject->SetDesCL(CMTPObjectMetaData::EName, name);
     iFramework.ObjectMgr().InsertObjectL(*iObject);
@@ -604,3 +630,4 @@
     iSingletons.DpController().NotifyDataProvidersL(DpId,EMTPObjectAdded,(TAny*)&aHandle);
     }
 
+
--- a/mtpfws/mtpfw/dataproviders/dputility/src/cmtpfullenumservicehandler.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpfws/mtpfw/dataproviders/dputility/src/cmtpfullenumservicehandler.cpp	Fri Mar 19 09:40:39 2010 +0200
@@ -197,23 +197,12 @@
 
 		case EMTPServicePropertyFilterType:
 			{
-			CMTPTypeObjectPropDescEnumerationForm* expectedForm
-			    = CMTPTypeObjectPropDescEnumerationForm::NewL(EMTPTypeUINT8);
-			CleanupStack::PushL(expectedForm);
-			expectedForm->AppendSupportedValueL(TMTPTypeUint8(EMTPSyncSvcFilterNone));
-			expectedForm->AppendSupportedValueL(TMTPTypeUint8(EMTPSyncSvcFilterContactsWithPhone));
-			expectedForm->AppendSupportedValueL(TMTPTypeUint8(EMTPSyncSvcFilterTaskActive));
-			expectedForm->AppendSupportedValueL(TMTPTypeUint8(EMTPSyncSvcFilterCalendarWindowWithRecurrence));
-
-			servicePropDesc = CMTPTypeServicePropDesc::NewL(
+			servicePropDesc = CMTPTypeServicePropDesc::NewLC(
 								  aServicePropertyCode,
 								  EMTPTypeUINT8,
 								  CMTPTypeObjectPropDesc::EReadWrite,
-								  CMTPTypeObjectPropDesc::EEnumerationForm,
-								  expectedForm);
-			// Form can be NULL, so need destroy here for MTPType object here.
-			CleanupStack::PopAndDestroy(expectedForm);
-			CleanupStack::PushL(servicePropDesc);
+								  CMTPTypeObjectPropDesc::ENone,
+								  NULL);
 			break;
 			}
 		case EMTPServicePropertySyncObjectReferences:
--- a/mtpfws/mtpfw/dataproviders/dputility/src/cmtpgetobjectpropdesc.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpfws/mtpfw/dataproviders/dputility/src/cmtpgetobjectpropdesc.cpp	Fri Mar 19 09:40:39 2010 +0200
@@ -158,7 +158,8 @@
 			ServiceNonConsumableL();
 			break;
 		default:
-			Panic(EMTPDpUnsupportedProperty);
+		    User::Leave( KErrNotSupported );
+			break;
 		}
 	__ASSERT_DEBUG(iObjectProperty, Panic(EMTPDpObjectPropertyNull));
 	iObjectProperty->SetUint32L(CMTPTypeObjectPropDesc::EGroupCode,GetPropertyGroupNumber(propCode));
--- a/mtpfws/mtpfw/dataproviders/dputility/src/cmtpgetobjectproplist.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpfws/mtpfw/dataproviders/dputility/src/cmtpgetobjectproplist.cpp	Fri Mar 19 09:40:39 2010 +0200
@@ -449,7 +449,7 @@
         	}
         	break;    
         default:
-            Panic(EMTPDpUnsupportedProperty);
+            User::Leave( KErrNotSupported );
             break;
             }       
         } 
--- a/mtpfws/mtpfw/dataproviders/dputility/src/cmtpgetobjectpropvalue.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpfws/mtpfw/dataproviders/dputility/src/cmtpgetobjectpropvalue.cpp	Fri Mar 19 09:40:39 2010 +0200
@@ -166,7 +166,8 @@
 			ServiceNonConsumableL();
 			break;
 		default:
-			Panic(EMTPDpUnsupportedProperty);
+		    User::Leave( KErrNotSupported );
+			break;
 		}	
 	}
 
@@ -201,7 +202,7 @@
 	
 void CMTPGetObjectPropValue::ServiceObjectSizeL()
 	{
-	iMTPTypeUint64.Set(iFileEntry.iSize);
+	iMTPTypeUint64.Set(iFileEntry.FileSize());
 
 	SendDataL(iMTPTypeUint64);
 	}
--- a/mtpfws/mtpfw/dataproviders/dputility/src/cmtpgetpartialobject.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpfws/mtpfw/dataproviders/dputility/src/cmtpgetpartialobject.cpp	Fri Mar 19 09:40:39 2010 +0200
@@ -111,7 +111,7 @@
             TEntry fileEntry;
             User::LeaveIfError(iFramework.Fs().Entry(iObjectInfo->DesC(CMTPObjectMetaData::ESuid), fileEntry));
 
-            if((iOffset >= fileEntry.iSize)) 
+            if((iOffset >= fileEntry.FileSize())) 
                 {
                 result = EMTPRespCodeInvalidParameter;
                 }
--- a/mtpfws/mtpfw/dataproviders/dputility/src/cmtpknowledgehandler.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpfws/mtpfw/dataproviders/dputility/src/cmtpknowledgehandler.cpp	Fri Mar 19 09:40:39 2010 +0200
@@ -39,6 +39,183 @@
 _LIT(KMTPKnowledgeObjFileName, "mtp_knowledgeobj.dat");
 _LIT(KMTPKnowledgeObjSwpFileName, "mtp_knowledgeobj.swp");
 
+
+CKnowledgeObject* CKnowledgeObject::NewL(CRepository& aRepository)
+	{
+	CKnowledgeObject *self = new (ELeave) CKnowledgeObject(aRepository);
+	CleanupStack::PushL(self);
+	self->ConstructL();
+	CleanupStack::Pop(self);
+	return self;
+	}
+
+CKnowledgeObject::CKnowledgeObject(CRepository& aRepository) : iRepository(aRepository)
+	{
+	
+	}
+CKnowledgeObject::~CKnowledgeObject()
+	{
+	__FLOG(_L8("~CKnowledgeObject - Entry")); 
+	iDateModified.Close();
+	iName.Close();
+	__FLOG(_L8("~CKnowledgeObject - Exit")); 
+	__FLOG_CLOSE;
+	}
+void CKnowledgeObject::ConstructL()
+	{
+	__FLOG_OPEN(KMTPSubsystem, KComponent);
+	__FLOG(_L8("CKnowledgeObject Construct - Entry"));
+	iKnowledgeObjectSize = KObjectSizeNotAvaiable;
+	iDateModified.CreateL(KDateTimeMaxLength);
+	iName.CreateL(KNameMaxLength);
+	iLastAuthorProxyID.Set(KMTPUnInitialized64, KMTPUnInitialized64);
+	iDirty = EBitFlagAll;
+	__FLOG(_L8("CKnowledgeObject Construct - Exit"));
+	}
+
+void CKnowledgeObject::LoadL()
+	{
+	__FLOG(_L8("CKnowledgeObject LoadL - Entry"));
+	// Load ObjectSize
+	TInt objSize;
+	User::LeaveIfError(iRepository.Get(ESize, objSize));
+	iKnowledgeObjectSize = objSize;
+
+	// Load DateModify
+	iDateModified.Zero();
+	User::LeaveIfError(iRepository.Get(EDateModified, iDateModified));
+	
+	// Load Name
+	iName.Zero();
+	User::LeaveIfError(iRepository.Get(EName, iName));
+
+	// Load LastAuthorProxyID:
+	TPtr8 writeBuf(NULL, 0); //walkaroud for the TMTPTypeUint128
+	iLastAuthorProxyID.FirstWriteChunk(writeBuf);
+	User::LeaveIfError(iRepository.Get(ELastAuthorProxyID, writeBuf));
+	iDirty = EBitFlagNone;
+	__FLOG(_L8("CKnowledgeObject LoadL - Exit"));
+	return;
+	}
+
+
+void CKnowledgeObject::Clear()
+	{
+	__FLOG(_L8("CKnowledgeObject Clear - Entry"));
+	iKnowledgeObjectSize = KObjectSizeNotAvaiable;
+	iDateModified.Zero();
+	iName.Zero();
+	iLastAuthorProxyID.Set(KMTPUnInitialized64, KMTPUnInitialized64);
+	iDirty = EBitFlagAll;
+	__FLOG(_L8("CKnowledgeObject Clear - Exit"));
+	}
+
+void CKnowledgeObject::SetSize(TUint64 aSize)
+	{
+	iKnowledgeObjectSize = aSize;
+	iDirty |= EBitFlagSize;
+	}
+
+void CKnowledgeObject::SetDateModified(const TDesC& /*aDateModified*/)
+	{
+	/**
+	 * DateModifed will be auto updated when commit. If PC set this prop, it will be ignored.
+	 * If someday PC want to force the DateModifed be saved, the following code piece should 
+	 * be opened, and add check in commit when save DateModified.
+	 *iDateModified.Copy(aDateModified);
+	 *iDirty |= EBitFlagDateModified;
+	**/
+	}
+
+void CKnowledgeObject::SetName(const TDesC& aName)
+	{
+	iName.Copy(aName);
+	iDirty |= EBitFlagName;
+	}
+
+void CKnowledgeObject::SetLastAuthorProxyID(TUint64 aHigh, TUint64 aLow) 
+	{
+	iLastAuthorProxyID.Set(aHigh, aLow);
+	iDirty |= EBitFlagLastAuthorProxyID;
+	}
+
+void CKnowledgeObject::CommitL()
+	{
+	__FLOG(_L8("CKnowledgeObject CommitL - Entry"));
+	if (EBitFlagSize == (iDirty & EBitFlagSize))
+		{
+		// TUint64 -> TInt, some capability is lost, 
+		// anyway, it's enough for knowledge object.   
+		User::LeaveIfError(iRepository.Set(ESize, (TInt)iKnowledgeObjectSize));
+		}
+
+	if (EBitFlagName == (iDirty & EBitFlagName))
+		{
+		User::LeaveIfError(iRepository.Set(EName, iName));
+		}
+	
+	if (EBitFlagLastAuthorProxyID == (iDirty & EBitFlagLastAuthorProxyID))
+		{
+		if (EMTPRespCodeOK != SetColumnType128Value(ELastAuthorProxyID, iLastAuthorProxyID))
+			{
+			User::Leave(KErrGeneral);
+			}
+		}
+	
+	// update DateModified to be the time of Commit
+	RefreshDateModifed();
+	User::LeaveIfError(iRepository.Set(EDateModified, iDateModified));
+
+	iDirty = EBitFlagNone;
+	__FLOG(_L8("CKnowledgeObject KnowledgeObject CommitL - Exit"));
+	return;
+	}
+
+TMTPResponseCode CKnowledgeObject::SetColumnType128Value(TMTPKnowledgeStoreKeyNum aColumnNum, TMTPTypeUint128& aNewData)
+	{
+	__FLOG(_L8("CKnowledgeObject SetColumnType128ValueL - Entry"));
+	TInt ret;
+	TMTPResponseCode responseCode = EMTPRespCodeOK;
+	TBuf8<KMTPTypeINT128Size>  data;
+	data.FillZ(data.MaxLength());
+	TUint64 upperValue = aNewData.UpperValue();
+	TUint64 lowerValue = aNewData.LowerValue();
+	
+	/**
+	Least significant 64-bit buffer offset.
+	*/
+	const TInt           KMTPTypeUint128OffsetLS = 0;
+	/**
+	Most significant 64-bit buffer offset.
+	*/
+	const TInt           KMTPTypeUint128OffsetMS = 8;
+	
+	memcpy(&data[KMTPTypeUint128OffsetMS], &upperValue, sizeof(upperValue));
+	memcpy(&data[KMTPTypeUint128OffsetLS], &lowerValue, sizeof(lowerValue));
+	
+	ret = iRepository.Set(aColumnNum, data);
+	if (KErrNone != ret)
+		{
+		responseCode = EMTPRespCodeGeneralError;
+		}
+	__FLOG_VA((_L8("CKnowledgeObject SetColumnType128ValueL - Exit with responseCode = 0x%04X"), responseCode));
+	return responseCode;
+	}
+
+
+void CKnowledgeObject::RefreshDateModifed()
+	{
+	__FLOG(_L8("CKnowledgeObject RefreshDateModifed - Entry"));
+	//get current time
+	TTime now;	
+	now.UniversalTime();
+	_LIT(KFormat,"%F%Y%M%DT%H%T%SZ");
+	iDateModified.Zero();
+	now.FormatL(iDateModified, KFormat);
+	__FLOG(_L8("CKnowledgeObject RefreshDateModifed - Exit"));
+	return;
+	}
+
 EXPORT_C CMTPKnowledgeHandler* CMTPKnowledgeHandler::NewL(MMTPDataProviderFramework& aFramework, TUint16 aFormatCode, 
 												CRepository& aReposotry, const TDesC& aKwgSuid)
 	{
@@ -52,18 +229,16 @@
 EXPORT_C CMTPKnowledgeHandler::~CMTPKnowledgeHandler()
 	{
 	__FLOG(_L8("~CMTPKnowledgeHandler - Entry")); 
-	delete iDateModified;
-	delete iName;
 	delete iKnowledgeObj;
 	delete iKnowledgeSwpBuffer;
+	delete iCachedKnowledgeObject;
 	__FLOG(_L8("~CMTPKnowledgeHandler - Exit"));
 	__FLOG_CLOSE;
 	}
 
 CMTPKnowledgeHandler::CMTPKnowledgeHandler(MMTPDataProviderFramework& aFramework, TUint16 aFormatCode, 
 										CRepository& aReposotry, const TDesC& aKwgSuid) :
-	iFramework(aFramework), iRepository(aReposotry), iKnowledgeFormatCode(aFormatCode),
-	iKnowledgeObjectSize(KObjectSizeNotAvaiable), iCacheStatus(EOK), iSuid(aKwgSuid)
+	iFramework(aFramework), iRepository(aReposotry), iKnowledgeFormatCode(aFormatCode), iSuid(aKwgSuid)
 	{
 	}
 
@@ -93,7 +268,9 @@
 		User::LeaveIfError(iFramework.Fs().Delete(iKnowObjSwpFileName));
 		}
 
-	LoadKnowledgeObjPropertiesL();
+	// create and load knowledge object properties
+	iCachedKnowledgeObject = CKnowledgeObject::NewL(iRepository);
+	iCachedKnowledgeObject->LoadL();
 	__FLOG(_L8("ConstructL - Exit"));
 	}
 
@@ -105,26 +282,11 @@
 void CMTPKnowledgeHandler::CommitL()
 	{
 	__FLOG(_L8("CommitL - Entry"));
-
 	User::LeaveIfError(iRepository.StartTransaction(CRepository::EReadWriteTransaction));
 	iRepository.CleanupCancelTransactionPushL();
-	if(iKnowledgeObjectSize != KObjectSizeNotAvaiable)
-		{
-		User::LeaveIfError(iRepository.Set(ESize, (TInt)iKnowledgeObjectSize));
-		}
-	if(iDateModified)
-		{
-		User::LeaveIfError(iRepository.Set(EDateModified, *iDateModified));
-		}
-	if(iName)
-		{
-		User::LeaveIfError(iRepository.Set(EName, *iName));
-		}
 	
-	if (EMTPRespCodeOK != SetColumnType128Value(ELastAuthorProxyID, iLastAuthorProxyID))
-		{
-		User::Leave(KErrGeneral);
-		}
+	iCachedKnowledgeObject->CommitL();
+	
 	// Close all knowledge file and reset pointer.
 	if (iKnowledgeObj)
 		{
@@ -144,10 +306,11 @@
 		User::LeaveIfError(iFramework.Fs().Replace(iKnowObjSwpFileName, iKnowObjFileName));
 		}
 	// If swp file isn't exsited, that means 0 sized object received, need do nothing.
-	
+
 	TUint32 keyInfo;
 	User::LeaveIfError(iRepository.CommitTransaction(keyInfo));
 	CleanupStack::Pop(&iRepository);
+
 	__FLOG(_L8("CommitL - Exit"));
 	}
 
@@ -160,80 +323,21 @@
 void CMTPKnowledgeHandler::RollBack()
 	{
 	__FLOG(_L8("Rollback - Entry"));
-	TRAP_IGNORE(LoadKnowledgeObjPropertiesL());
+	iCachedKnowledgeObject->Clear();
+	TRAP_IGNORE(iCachedKnowledgeObject->LoadL());
 	__FLOG(_L8("Rollback - Exit"));
 	}
 
 EXPORT_C void CMTPKnowledgeHandler::GetObjectSuidL(TDes& aSuid) const
 	{
 	__FLOG(_L8("GetObjectSuidL - Entry"));
-	if(iKnowledgeObjectSize != KObjectSizeNotAvaiable)
+	if(iCachedKnowledgeObject->Size() != KObjectSizeNotAvaiable)
 		{
 		aSuid.Append(iSuid);
 		}
 	__FLOG(_L8("GetObjectSuidL - Exit"));
 	}
 
-void CMTPKnowledgeHandler::LoadKnowledgeObjPropertiesL()
-	{
-	__FLOG(_L8("LoadKnowledgeObjPropertiesL - Entry"));
-	iCacheStatus = EOK;
-	iCacheStatusFlag = EDirty;
-	TCleanupItem cacheDroper(DropCacheWrapper, this);
-	CleanupStack::PushL(cacheDroper);
-	TInt objSize;
-	User::LeaveIfError(iRepository.Get(ESize, objSize));
-	iKnowledgeObjectSize = objSize;
-
-	// Load DateModify
-	delete iDateModified;
-	iDateModified = NULL;
-	iDateModified = HBufC::NewL(KDateTimeMaxLength);
-	TPtr ptrDate(iDateModified->Des());
-	User::LeaveIfError(iRepository.Get(EDateModified, ptrDate));
-	
-	// Load Name
-	delete iName;
-	iName = NULL;
-	iName = HBufC::NewL(KNameMaxLength);
-	TPtr ptrName(iName->Des());
-	User::LeaveIfError(iRepository.Get(EName, ptrName));
-
-	// Load LastAuthorProxyID:
-	TPtr8 writeBuf(NULL, 0); //walkaroud for the TMTPTypeUint128
-	iLastAuthorProxyID.FirstWriteChunk(writeBuf);
-	User::LeaveIfError(iRepository.Get(ELastAuthorProxyID, writeBuf));
-	CleanupStack::Pop(this);
-	// Doesn't load object content to cache beacause it can grow up to 100KB
-	__FLOG(_L8("LoadKnowledgeObjPropertiesL - Exit"));
-	}
-
-void CMTPKnowledgeHandler::DropCacheWrapper(TAny* aObject)
-	{
-	reinterpret_cast<CMTPKnowledgeHandler*>(aObject)->DropKnowledgeObjPropertiesCache();
-	}
-
-void CMTPKnowledgeHandler::DropKnowledgeObjPropertiesCache()
-	{
-	__FLOG(_L8("DropKnowledgeObjPropertiesCache - Entry"));
-	iCacheStatus = iCacheStatusFlag;
-	iKnowledgeObjectSize = KObjectSizeNotAvaiable;
-	
-	// Load DateModify
-	delete iDateModified;
-	iDateModified = NULL;
-	
-	// Load Name
-	delete iName;
-	iName = NULL;
-	
-	// Reset LastAuthorProxyID
-	TMTPTypeUint128 tmp(MAKE_TINT64(KMTPUnInitialized32, KMTPUnInitialized32), 
-						MAKE_TINT64(KMTPUnInitialized32, KMTPUnInitialized32));
-	iLastAuthorProxyID.Set(tmp.UpperValue(), tmp.LowerValue());
-	__FLOG(_L8("DropKnowledgeObjPropertiesCache - Exit"));
-	}
-
 TMTPResponseCode CMTPKnowledgeHandler::SendObjectInfoL(const CMTPTypeObjectInfo& aObjectInfo, TUint32& aParentHandle, TDes& aSuid)
 	{
 	__FLOG(_L("SendObjectInfoL - Entry"));
@@ -245,21 +349,22 @@
 	else
 		{
 		//if there's a read error reread
-		if(EDirty == iCacheStatus)
+		if(iCachedKnowledgeObject->IsDirty())
 			{
-			LoadKnowledgeObjPropertiesL();
+			__FLOG(_L8("Warning: The cached knowledge is dirty"));
+			iCachedKnowledgeObject->Clear();
+			iCachedKnowledgeObject->LoadL();
 			}
 		//already has a knowledge object
-		if(iKnowledgeObjectSize != KObjectSizeNotAvaiable)
+		if(iCachedKnowledgeObject->Size() != KObjectSizeNotAvaiable)
 			{
 			responseCode = EMTPRespCodeAccessDenied;
 			}
 		else
 			{
-			iKnowledgeObjectSize = aObjectInfo.Uint32L(CMTPTypeObjectInfo::EObjectCompressedSize);
-			delete iDateModified;
-			iDateModified = NULL;
-			iDateModified = aObjectInfo.StringCharsL(CMTPTypeObjectInfo::EDateModified).AllocL();
+			iCachedKnowledgeObject->Clear();
+			iCachedKnowledgeObject->SetSize(aObjectInfo.Uint32L(CMTPTypeObjectInfo::EObjectCompressedSize));
+			// DateModified will be updated when commit.
 			aSuid = iSuid;
 			}
 		}
@@ -280,18 +385,21 @@
 		{
 		//if there's a read error reread
 		aParentHandle = KMTPHandleNoParent;
-		if(EDirty == iCacheStatus)
+		if(iCachedKnowledgeObject->IsDirty())
 			{
-			LoadKnowledgeObjPropertiesL();
+			__FLOG(_L8("Warning: The cached knowledge is dirty"));
+			iCachedKnowledgeObject->Clear();
+			iCachedKnowledgeObject->LoadL();
 			}
 		//already has a knowledge object
-		if(iKnowledgeObjectSize != KObjectSizeNotAvaiable)
+		if(iCachedKnowledgeObject->Size() != KObjectSizeNotAvaiable)
 			{
 			responseCode = EMTPRespCodeAccessDenied;
 			}
 		else
 			{
-			iKnowledgeObjectSize = aObjectSize;
+			iCachedKnowledgeObject->Clear();
+			iCachedKnowledgeObject->SetSize(aObjectSize);
 			aSuid = iSuid;
 			}
 		}
@@ -307,6 +415,12 @@
 	CMTPTypeObjectPropListElement* propertyElement = NULL;
 	TUint32 aHandle = aObjectMetaData.Uint(CMTPObjectMetaData::EHandle);
 	
+	if(iCachedKnowledgeObject->IsDirty())
+		{
+		__FLOG(_L8("Warning: The cached knowledge is dirty"));
+		iCachedKnowledgeObject->LoadL();
+		}
+	
 	switch (aPropertyCode)
 		{
 		case EMTPGenObjPropCodeParentID:
@@ -319,9 +433,9 @@
 		case EMTPGenObjPropCodeName:
 			{
 			propertyElement = &(aPropList.ReservePropElemL(aHandle, aPropertyCode));
-			if (iName && iName->Length() > 0)
+			if (iCachedKnowledgeObject->Name().Length() > 0)
 				{
-				propertyElement->SetStringL(CMTPTypeObjectPropListElement::EValue, *iName);			
+				propertyElement->SetStringL(CMTPTypeObjectPropListElement::EValue, iCachedKnowledgeObject->Name());
 				}
 			else
 				{
@@ -349,10 +463,10 @@
 
 		case EMTPGenObjPropCodeObjectSize:
 			{
-			if (iKnowledgeObjectSize != ~0)
+			if (iCachedKnowledgeObject->Size() != KObjectSizeNotAvaiable)
 				{
 				propertyElement = &(aPropList.ReservePropElemL(aHandle, aPropertyCode));
-				propertyElement->SetUint64L(CMTPTypeObjectPropListElement::EValue,iKnowledgeObjectSize);
+				propertyElement->SetUint64L(CMTPTypeObjectPropListElement::EValue, iCachedKnowledgeObject->Size());
 				}
 			break;
 			}
@@ -380,34 +494,24 @@
 
 		case EMTPGenObjPropCodeDateModified:
 			{
-			propertyElement = &(aPropList.ReservePropElemL(aHandle, aPropertyCode));
-			if(iDateModified && iDateModified->Length() > 0)
-				{
-				propertyElement->SetStringL(CMTPTypeObjectPropListElement::EValue, *iDateModified);	
-				}
-			else
+			if(iCachedKnowledgeObject->DateModified().Length() == 0)
 				{
-				TTime now;	
-				now.UniversalTime();
-				const TInt KMaxTimeStringSize = 50;
-				TBuf<KMaxTimeStringSize> dateTimeBuf;
-				_LIT(KFormat,"%F%Y%M%DT%H%T%S");
-				now.FormatL(dateTimeBuf, KFormat);
-				propertyElement->SetStringL(CMTPTypeObjectPropListElement::EValue, dateTimeBuf);	
+				iCachedKnowledgeObject->RefreshDateModifed();
 				}
+			propertyElement = &(aPropList.ReservePropElemL(aHandle, aPropertyCode));
+			propertyElement->SetStringL(CMTPTypeObjectPropListElement::EValue, iCachedKnowledgeObject->DateModified());
 			break;
 			}
 			
 		case EMTPSvcObjPropCodeLastAuthorProxyID:
 			{
-			const TMTPTypeUint128 unInitValue(MAKE_TUINT64(KMTPUnInitialized32, KMTPUnInitialized32), 
-										MAKE_TUINT64(KMTPUnInitialized32, KMTPUnInitialized32));
-			if(!unInitValue.Equal(iLastAuthorProxyID))
+			if ((iCachedKnowledgeObject->LastAuthorProxyID().UpperValue() != KMTPUnInitialized64)
+				 && (iCachedKnowledgeObject->LastAuthorProxyID().LowerValue() !=KMTPUnInitialized64))
 				{
 				propertyElement = &(aPropList.ReservePropElemL(aHandle, aPropertyCode));
 				propertyElement->SetUint128L(CMTPTypeObjectPropListElement::EValue,
-											iLastAuthorProxyID.UpperValue(),
-											iLastAuthorProxyID.LowerValue());
+						iCachedKnowledgeObject->LastAuthorProxyID().UpperValue(),
+						iCachedKnowledgeObject->LastAuthorProxyID().LowerValue());
 				}
 			break;	
 			}
@@ -437,43 +541,27 @@
 		switch (propertyCode)
 			{
 			case EMTPGenObjPropCodeObjectSize:
-				if(aOperationCode == EMTPOpCodeSetObjectPropList)
-					{
-					ret = iRepository.Set(ESize, (TInt)aElement.Uint64L(CMTPTypeObjectPropListElement::EValue));
-					}
-				iKnowledgeObjectSize = aElement.Uint64L(CMTPTypeObjectPropListElement::EValue);
+				{
+				iCachedKnowledgeObject->SetSize(aElement.Uint64L(CMTPTypeObjectPropListElement::EValue));
 				break;
-				
+				}
 			case EMTPGenObjPropCodeDateModified:
-				if(aOperationCode == EMTPOpCodeSetObjectPropList)
-					{
-					ret = iRepository.Set(EDateModified, aElement.StringL(CMTPTypeObjectPropListElement::EValue));
-					}
-				delete iDateModified;
-				iDateModified = NULL;
-				iDateModified = aElement.StringL(CMTPTypeObjectPropListElement::EValue).AllocL();
+				{
+				// DateModified will be updated when Commit
+				iCachedKnowledgeObject->SetDateModified(aElement.StringL(CMTPTypeObjectPropListElement::EValue));
 				break;
-				
+				}
 			case EMTPGenObjPropCodeName:
-				if(aOperationCode == EMTPOpCodeSetObjectPropList)
-					{
-					ret = iRepository.Set(EName, aElement.StringL(CMTPTypeObjectPropListElement::EValue));
-					}
-				delete iName;
-				iName = NULL;
-				iName = aElement.StringL(CMTPTypeObjectPropListElement::EValue).AllocL();
+				{
+				iCachedKnowledgeObject->SetName(aElement.StringL(CMTPTypeObjectPropListElement::EValue));
 				break;
-				
+				}
 			case EMTPSvcObjPropCodeLastAuthorProxyID:
 				{
 				TUint64 high_value = 0;
 				TUint64 low_value  = 0;
 				aElement.Uint128L(CMTPTypeObjectPropListElement::EValue, high_value, low_value);
-				if(aOperationCode == EMTPOpCodeSetObjectPropList)
-					{
-					responseCode = SetColumnType128Value(ELastAuthorProxyID, iLastAuthorProxyID);
-					}
-				iLastAuthorProxyID.Set(high_value, low_value);
+				iCachedKnowledgeObject->SetLastAuthorProxyID(high_value, low_value);
 				break;
 				}
 				
@@ -494,16 +582,31 @@
 TMTPResponseCode CMTPKnowledgeHandler::DeleteObjectL(const CMTPObjectMetaData& /*aObjectMetaData*/)
 	{
 	__FLOG(_L8("DeleteObjectL - Entry"));
-	iCacheStatusFlag = EDirty;
-	TCleanupItem cacheDroper(DropCacheWrapper, this);
-	CleanupStack::PushL(cacheDroper);
+
+	User::LeaveIfError(iRepository.StartTransaction(CRepository::EReadWriteTransaction));
+	iRepository.CleanupCancelTransactionPushL();
+
 	// Delete obejct properties in transaction, if leave, mgr will rollback all properties.
-	DeleteAllObjectPropertiesL();
-	CleanupStack::Pop(this);
-	// Drop all cached properties.
-	iCacheStatusFlag = EDeleted;
-	CMTPKnowledgeHandler::DropCacheWrapper(this);
-	LoadKnowledgeObjPropertiesL();
+	iCachedKnowledgeObject->Clear();
+	iCachedKnowledgeObject->CommitL();
+	
+	// Reset knowledgeobject pointer and close the file.
+	if (iKnowledgeObj)
+		{
+		delete iKnowledgeObj;
+		iKnowledgeObj = NULL;
+		}
+	
+	// Keep file delete is atomic.
+	if (BaflUtils::FileExists(iFramework.Fs(), iKnowObjFileName))
+		{
+		User::LeaveIfError(iFramework.Fs().Delete(iKnowObjFileName));
+		}
+
+	TUint32 keyInfo;
+	User::LeaveIfError(iRepository.CommitTransaction(keyInfo));
+	CleanupStack::Pop(&iRepository);
+
 	__FLOG(_L8("DeleteObjectL - Exit"));
 	return EMTPRespCodeOK;
 	}
@@ -538,19 +641,12 @@
 	switch (aPropertyCode)
 		{
 		case EMTPGenObjPropCodeDateModified:
-			delete iDateModified;
-			iDateModified = NULL;
-			if (KErrNone != iRepository.Set(EDateModified, KEmptyContent16))
-				{
-				responseCode = EMTPRespCodeGeneralError;
-				}
+			// DateModified will be updated when Commit
+			iCachedKnowledgeObject->SetDateModified(KEmptyContent16);
 			break;
 		case EMTPSvcObjPropCodeLastAuthorProxyID:
 			{
-			TMTPTypeUint128 tmp(MAKE_TINT64(KMTPUnInitialized32, KMTPUnInitialized32), 
-								MAKE_TINT64(KMTPUnInitialized32, KMTPUnInitialized32));
-			iLastAuthorProxyID.Set(tmp.UpperValue(), tmp.LowerValue());
-			responseCode = SetColumnType128Value(ELastAuthorProxyID, iLastAuthorProxyID);
+			iCachedKnowledgeObject->SetLastAuthorProxyID(KMTPUnInitialized64, KMTPUnInitialized64);
 			break;
 			}
 			
@@ -594,7 +690,7 @@
 	aObjectInfo.SetUint16L(CMTPTypeObjectInfo::EObjectFormat, iKnowledgeFormatCode);
 	// Not use
 	aObjectInfo.SetUint16L(CMTPTypeObjectInfo::EProtectionStatus, 0x0000);
-	aObjectInfo.SetUint32L(CMTPTypeObjectInfo::EObjectCompressedSize, iKnowledgeObjectSize);
+	aObjectInfo.SetUint32L(CMTPTypeObjectInfo::EObjectCompressedSize, iCachedKnowledgeObject->Size());
 	aObjectInfo.SetUint16L(CMTPTypeObjectInfo::EThumbFormat, 0);
 	aObjectInfo.SetUint32L(CMTPTypeObjectInfo::EThumbCompressedSize, 0);
 	aObjectInfo.SetUint32L(CMTPTypeObjectInfo::EThumbPixWidth, 0);
@@ -615,7 +711,7 @@
 TMTPResponseCode CMTPKnowledgeHandler::GetObjectInfoL(const CMTPObjectMetaData& /*aObjectMetaData*/, CMTPTypeObjectInfo& aObjectInfo)
 	{
 	__FLOG(_L8("GetObjectInfoL - Entry"));
-	if(iKnowledgeObjectSize != KObjectSizeNotAvaiable)
+	if(iCachedKnowledgeObject->Size() != KObjectSizeNotAvaiable)
 		{
 		BuildObjectInfoL(aObjectInfo);
 		}
@@ -624,42 +720,6 @@
 	}
 
 
-void CMTPKnowledgeHandler::DeleteAllObjectPropertiesL()
-	{
-	__FLOG(_L8("DeleteAllObjectPropertiesL - Entry"));
-	User::LeaveIfError(iRepository.StartTransaction(CRepository::EReadWriteTransaction));
-	iRepository.CleanupCancelTransactionPushL();
-	User::LeaveIfError(iRepository.Set(EDateModified, KEmptyContent16));
-	User::LeaveIfError(iRepository.Set(EName, KEmptyContent16));
-	User::LeaveIfError(iRepository.Set(ESize, static_cast<TInt>(KObjectSizeNotAvaiable)));
-	
-	TMTPTypeUint128 tmp(MAKE_TINT64(KMTPUnInitialized32, KMTPUnInitialized32), 
-						MAKE_TINT64(KMTPUnInitialized32, KMTPUnInitialized32));
-	if (EMTPRespCodeOK != SetColumnType128Value(ELastAuthorProxyID, tmp))
-		{
-		User::Leave(KErrGeneral);
-		}
-	// Reset knowledgeobject pointer and close the file.
-	if (iKnowledgeObj)
-		{
-		delete iKnowledgeObj;
-		iKnowledgeObj = NULL;
-		}
-	
-	// Keep file delete is atomic.
-	if (BaflUtils::FileExists(iFramework.Fs(), iKnowObjFileName))
-		{
-		User::LeaveIfError(iFramework.Fs().Delete(iKnowObjFileName));
-		}
-	
-	TUint32 keyInfo;
-	User::LeaveIfError(iRepository.CommitTransaction(keyInfo));
-	CleanupStack::Pop(&iRepository);
-	
-	__FLOG(_L8("DeleteAllObjectPropertiesL - Exit"));
-	return;
-	}
-
 void CMTPKnowledgeHandler::ReleaseObjectBuffer()
 	{
 	__FLOG(_L8("ReleaseObjectBuffer - Entry"));
@@ -678,42 +738,11 @@
 		{
 		return EMTPRespCodeGeneralError;
 		}
-	aObjectSize = iKnowledgeObjectSize;
+	aObjectSize = iCachedKnowledgeObject->Size();
 	__FLOG(_L8("GetObjectSizeL - Exit"));
 	return EMTPRespCodeOK;
 	}
 
-TMTPResponseCode CMTPKnowledgeHandler::SetColumnType128Value(TMTPKnowledgeStoreKeyNum aColumnNum, TMTPTypeUint128& aNewData)
-	{
-	__FLOG(_L8("SetColumnType128ValueL - Entry"));
-	TInt ret;
-	TMTPResponseCode responseCode = EMTPRespCodeOK;
-	TBuf8<KMTPTypeINT128Size>  data;
-	data.FillZ(data.MaxLength());
-	TUint64 upperValue = aNewData.UpperValue();
-	TUint64 lowerValue = aNewData.LowerValue();
-	
-	/**
-	Least significant 64-bit buffer offset.
-	*/
-	const TInt           KMTPTypeUint128OffsetLS = 0;
-	/**
-	Most significant 64-bit buffer offset.
-	*/
-	const TInt           KMTPTypeUint128OffsetMS = 8;
-	
-	memcpy(&data[KMTPTypeUint128OffsetMS], &upperValue, sizeof(upperValue));
-	memcpy(&data[KMTPTypeUint128OffsetLS], &lowerValue, sizeof(lowerValue));
-	
-	ret = iRepository.Set(aColumnNum, data);
-	if (KErrNone != ret)
-		{
-		responseCode = EMTPRespCodeGeneralError;
-		}
-	__FLOG_VA((_L8("SetColumnType128ValueL - Exit with responseCode = 0x%04X"), responseCode));
-	return responseCode;
-	}
-
 TMTPResponseCode CMTPKnowledgeHandler::GetAllObjectPropCodeByGroupL(TUint32 aGroupId, RArray<TUint32>& aPropCodes)
 	{
 	__FLOG(_L8("GetAllObjectPropCodeByGroupL - Entry"));
@@ -749,3 +778,5 @@
 	__FLOG(_L8("GetAllObjectPropCodeByGroupL - Exit"));
 	return responseCode;
 	}
+
+
--- a/mtpfws/mtpfw/dataproviders/dputility/src/cmtpsendobjectinfo.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpfws/mtpfw/dataproviders/dputility/src/cmtpsendobjectinfo.cpp	Fri Mar 19 09:40:39 2010 +0200
@@ -365,7 +365,7 @@
         }
     else 
         {
-        Panic(EMTPDpSendObjectStateInvalid);
+        User::Leave( KErrGeneral );
         }
     __FLOG(_L8("CheckSendingState - Exit"));
     return result;    
--- a/mtpfws/mtpfw/dataproviders/dputility/src/cmtpsetobjectpropvalue.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpfws/mtpfw/dataproviders/dputility/src/cmtpsetobjectpropvalue.cpp	Fri Mar 19 09:40:39 2010 +0200
@@ -208,7 +208,8 @@
 			//No break sentance, goto Panic
 			}
 		default:
-			Panic(EMTPDpUnsupportedProperty);
+		    User::Leave( KErrNotSupported );
+		    break;
 		}	
 	}
 
@@ -310,7 +311,8 @@
 			
 			
 		default:
-			Panic(EMTPDpUnsupportedProperty);
+		    User::Leave( KErrNotSupported );
+		    break;
 		}
 
 	SendResponseL(responseCode);
--- a/mtpfws/mtpfw/dataproviders/dputility/src/rmtputility.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpfws/mtpfw/dataproviders/dputility/src/rmtputility.cpp	Fri Mar 19 09:40:39 2010 +0200
@@ -434,94 +434,122 @@
     return 1;
     }
 
-
 void RMTPUtility::RenameAllChildrenL(TUint32 aStorageId, TUint32 aParentHandle, const TDesC& aNewFolderName, const TDesC& aOldFolderName)
 	{
     __FLOG(_L8("RenameAllChildrenL - Entry"));
-	
-	RMTPObjectMgrQueryContext   context;
-	RArray<TUint>               handles;
-	TMTPObjectMgrQueryParams    params(aStorageId, KMTPFormatsAll, aParentHandle);
-	CleanupClosePushL(context);
-	CleanupClosePushL(handles);
-	
-	CMTPObjectMetaData* objectInfo(CMTPObjectMetaData::NewLC());
-	TInt count = 0;	
-	TEntry entry;
-	
-	do
-	    {
-	    iFramework->ObjectMgr().GetObjectHandlesL(params, context, handles);
-    	count = handles.Count();
-    	
-    	for(TInt i(0); (i < count); i++)
-    		{
-    		if (!iFramework->ObjectMgr().ObjectL(handles[i], *objectInfo))
-    			{
-    			User::Leave(KErrCorrupt);
-    			}
-    		
-    	    /**
-    	     * [SP-Format-0x3002]Special processing for PictBridge DP which own 6 dps file with format 0x3002, 
-    	     * but it does not really own the format 0x3002.
-    	     * 
-    	     * Make the same behavior betwen 0x3000 and 0x3002.
-    	     */
-    		if( (objectInfo->Uint(CMTPObjectMetaData::EFormatCode) != EMTPFormatCodeAssociation)
-    		    && (objectInfo->Uint(CMTPObjectMetaData::EFormatCode) != EMTPFormatCodeUndefined)
-    		    && (objectInfo->Uint(CMTPObjectMetaData::EFormatCode) != EMTPFormatCodeScript) )
-    		   continue;
+    
+    CMTPObjectMetaData* objectInfo(CMTPObjectMetaData::NewLC());
+    TInt count = 0; 
+    RArray<TUint>               handles;
+    CleanupClosePushL(handles);
+    GetAllDecendents(aStorageId, aParentHandle, handles);
+    count = handles.Count();
+    
+    TEntry entry;
+    for(TInt i(0); (i < count); ++i)
+        {
+        if (!iFramework->ObjectMgr().ObjectL(handles[i], *objectInfo))
+            {
+            User::Leave(KErrCorrupt);
+            }
+        
+        /**
+         * [SP-Format-0x3002]Special processing for PictBridge DP which own 6 dps file with format 0x3002, 
+         * but it does not really own the format 0x3002.
+         * 
+         * Make the same behavior betwen 0x3000 and 0x3002.
+         */
+        if( (objectInfo->Uint(CMTPObjectMetaData::EFormatCode) != EMTPFormatCodeAssociation)
+            && (objectInfo->Uint(CMTPObjectMetaData::EFormatCode) != EMTPFormatCodeUndefined)
+            && (objectInfo->Uint(CMTPObjectMetaData::EFormatCode) != EMTPFormatCodeScript) )
+           continue;
 
-			RBuf entryName; 
-			entryName.CreateL(KMaxFileName);
-			entryName.CleanupClosePushL();
-			entryName = objectInfo->DesC(CMTPObjectMetaData::ESuid);
-			
-			RBuf rightPartName;
-			rightPartName.CreateL(KMaxFileName);
-			rightPartName.CleanupClosePushL();
-			rightPartName = entryName.Right(entryName.Length() - aOldFolderName.Length());
-			
-			if ((aNewFolderName.Length() + rightPartName.Length()) > entryName.MaxLength())
-				{
-				entryName.ReAllocL(aNewFolderName.Length() + rightPartName.Length());
-				}
-			
-			entryName.Zero();
-			entryName.Append(aNewFolderName);
-			entryName.Append(rightPartName);
-			
-			if (KErrNone != iFramework->Fs().Entry(entryName, entry))
-				{
-				// Skip objects that don't use the file path as SUID.
-				CleanupStack::PopAndDestroy(&entryName);
-				continue;
-				}
-			
-			// Recursively update all this object's children.
-			// The maximum recursion depth is as deep as the association hierarchy.
-			RenameAllChildrenL(objectInfo->Uint(CMTPObjectMetaData::EStorageId), objectInfo->Uint(CMTPObjectMetaData::EHandle), entryName, objectInfo->DesC(CMTPObjectMetaData::ESuid) );
-			
-			TFileName oldfilename(objectInfo->DesC(CMTPObjectMetaData::ESuid));
-			objectInfo->SetDesCL(CMTPObjectMetaData::ESuid, entryName);
-			iFramework->ObjectMgr().ModifyObjectL(*objectInfo);
-			
-			if(objectInfo->Uint(CMTPObjectMetaData::EFormatCode) == EMTPFormatCodeAssociation)
-				{
-				//Send the Rename notification 
-				TMTPNotificationParamsHandle param = { handles[i], oldfilename};
-				iSingleton.DpController().NotifyDataProvidersL(EMTPRenameObject, static_cast<TAny*>(&param));
-				}
-			CleanupStack::PopAndDestroy(2); // rightPartName, entryName		
-    		}
-	    }
-	while (!context.QueryComplete());
-	
-	CleanupStack::PopAndDestroy(3);//objectInfo; &handles; &context
+        RBuf entryName; 
+        entryName.CreateL(KMaxFileName);
+        entryName.CleanupClosePushL();
+        entryName = objectInfo->DesC(CMTPObjectMetaData::ESuid);
+        
+        RBuf rightPartName;
+        rightPartName.CreateL(KMaxFileName);
+        rightPartName.CleanupClosePushL();
+        rightPartName = entryName.Right(entryName.Length() - aOldFolderName.Length());
+        
+        if ((aNewFolderName.Length() + rightPartName.Length()) > entryName.MaxLength())
+            {
+            entryName.ReAllocL(aNewFolderName.Length() + rightPartName.Length());
+            }
+        
+        entryName.Zero();
+        entryName.Append(aNewFolderName);
+        entryName.Append(rightPartName);
+        
+        if (KErrNone != iFramework->Fs().Entry(entryName, entry))
+            {
+            // Skip objects that don't use the file path as SUID.
+            CleanupStack::PopAndDestroy(&entryName);
+            continue;
+            }        
+        
+        TFileName oldfilename(objectInfo->DesC(CMTPObjectMetaData::ESuid));
+        objectInfo->SetDesCL(CMTPObjectMetaData::ESuid, entryName);
+        iFramework->ObjectMgr().ModifyObjectL(*objectInfo);
+        
+        if(objectInfo->Uint(CMTPObjectMetaData::EFormatCode) == EMTPFormatCodeAssociation)
+            {
+            //Send the Rename notification 
+            TMTPNotificationParamsHandle param = { handles[i], oldfilename};
+            iSingleton.DpController().NotifyDataProvidersL(EMTPRenameObject, static_cast<TAny*>(&param));
+            }
+            
+        CleanupStack::PopAndDestroy(2); // rightPartName, entryName             
+        }
+    
+    CleanupStack::PopAndDestroy(2); //objectInfo; &handles; 
 	
     __FLOG(_L8("RenameAllChildrenL - Exit"));
 	}
 
+void RMTPUtility::GetAllDecendents(TUint32 aStorageId, TUint aParentHandle, RArray<TUint>& aHandles) const
+    {
+    TInt index = 0; 
+    TBool firstLevel = ETrue;
+    
+    do
+        {
+        TUint parentHandle;
+        if (firstLevel)
+            {
+            parentHandle = aParentHandle; //Get the first level children handles
+            firstLevel = EFalse;
+            }        
+        else
+            {
+            parentHandle = aHandles[index];
+            ++index;
+            }        
+        
+        RMTPObjectMgrQueryContext   context;
+        RArray<TUint>               childrenHandles;
+        TMTPObjectMgrQueryParams    params(aStorageId, KMTPFormatsAll, parentHandle);
+        CleanupClosePushL(context);
+        CleanupClosePushL(childrenHandles);
+        
+        do
+            {
+            iFramework->ObjectMgr().GetObjectHandlesL(params, context, childrenHandles);
+            TInt count = childrenHandles.Count(); 
+            for (TUint i = 0; i < count; ++i)
+                {
+                aHandles.Append(childrenHandles[i]);
+                }
+            }
+        while (!context.QueryComplete());
+        CleanupStack::PopAndDestroy(2); //&childrenHandles; &context
+        }
+    while(index < aHandles.Count());
+
+    }
+
 HBufC* RMTPUtility::OdfMimeTypeL( const TDesC& aFullPath )
     {
     HBufC* mimebuf = NULL;
--- a/mtpfws/mtpfw/dataproviders/proxydp/inc/cmtpdeleteobject.h	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpfws/mtpfw/dataproviders/proxydp/inc/cmtpdeleteobject.h	Fri Mar 19 09:40:39 2010 +0200
@@ -45,7 +45,8 @@
 private: // From CMTPRequestProcessor
 
     void ServiceL();    
-
+	TMTPResponseCode CheckRequestL();
+	
 private: // From MMTPTransactionProxy
 
     void ProxyReceiveDataL(MMTPType& aData, const TMTPTypeRequest& aRequest, MMTPConnection& aConnection, TRequestStatus& aStatus);
--- a/mtpfws/mtpfw/dataproviders/proxydp/inc/cmtpmoveobject.h	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpfws/mtpfw/dataproviders/proxydp/inc/cmtpmoveobject.h	Fri Mar 19 09:40:39 2010 +0200
@@ -95,7 +95,6 @@
 	RBuf				iNewParent;
 	TUint32				iStorageId; 
 	CDesCArray*			iPathToCreate;
-	static const TMTPRequestElementInfo KMTPMoveObjectPolicy[];  	   
 	
     CMTPObjectBrowser*      iObjBrowser;
     RArray< TUint32 >      iHandles;
--- a/mtpfws/mtpfw/dataproviders/proxydp/inc/cmtpobjectbrowser.h	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpfws/mtpfw/dataproviders/proxydp/inc/cmtpobjectbrowser.h	Fri Mar 19 09:40:39 2010 +0200
@@ -58,6 +58,15 @@
     void GetRootObjectHandlesL( TUint32 aCurDepth, TUint32 aFormatCode, TUint32 aDepth, const TBrowseCallback& aBrowseCallback ) const;
     void GetObjectHandlesTreeL( TUint32 aCurDepth, TUint32 aFormatCode, TUint32 aDepth, TUint32 aParentHandle, const TBrowseCallback& aBrowseCallback ) const;
     
+    /**
+     * This function retrives all the object handles with the format code of aFormatCode.
+     * 
+     * If aFormatCode == KMTPFormatsAll, only Legacy dp's object handles are returned. Object
+     * Handles of service dp's will not be returned.
+     * 
+     */
+    void GetAllObjectHandlesL( TUint32 aFormatCode,const TBrowseCallback& aBrowseCallback ) const;
+    
 private:
     __FLOG_DECLARATION_MEMBER_MUTABLE;
     
--- a/mtpfws/mtpfw/dataproviders/proxydp/src/cmtpcopyobject.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpfws/mtpfw/dataproviders/proxydp/src/cmtpcopyobject.cpp	Fri Mar 19 09:40:39 2010 +0200
@@ -27,6 +27,17 @@
 const TUint KInvalidDpId = 0xFF;
 
 /**
+Verification data for the CopyObject request
+*/    
+const TMTPRequestElementInfo KMTPCopyObjectPolicy[] = 
+    {
+    	{TMTPTypeRequest::ERequestParameter1, EMTPElementTypeObjectHandle, EMTPElementAttrFileOrDir, 0, 0, 0},   	
+        {TMTPTypeRequest::ERequestParameter2, EMTPElementTypeStorageId, EMTPElementAttrWrite, 0, 0, 0},                
+        {TMTPTypeRequest::ERequestParameter3, EMTPElementTypeObjectHandle, EMTPElementAttrDir | EMTPElementAttrWrite, 1, 0, 0}
+    };
+
+
+/**
 Two-phase construction method
 @param aFramework    The data provider framework
 @param aConnection    The connection from which the request comes
@@ -61,7 +72,7 @@
 Constructor
 */    
 CMTPCopyObject::CMTPCopyObject(MMTPDataProviderFramework& aFramework, MMTPConnection& aConnection) :
-    CMTPRequestProcessor(aFramework, aConnection, 0, NULL)
+    CMTPRequestProcessor(aFramework, aConnection, sizeof(KMTPCopyObjectPolicy)/sizeof(TMTPRequestElementInfo), KMTPCopyObjectPolicy)
     {
     __FLOG_OPEN( KMTPSubsystem, KComponent );
     __FLOG( _L8("+/-Ctor") );
--- a/mtpfws/mtpfw/dataproviders/proxydp/src/cmtpdeleteobject.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpfws/mtpfw/dataproviders/proxydp/src/cmtpdeleteobject.cpp	Fri Mar 19 09:40:39 2010 +0200
@@ -35,6 +35,14 @@
 const TUint KInvalidDpId = 0xFF;
 
 /**
+Verification data for the DeleteObject request
+*/
+const TMTPRequestElementInfo KMTPDeleteObjectPolicy[] = 
+    {
+        { TMTPTypeRequest::ERequestParameter1, EMTPElementTypeObjectHandle, (EMTPElementAttrDir | EMTPElementAttrWrite), 1, KMTPHandleAll, 0 }
+    };
+
+/**
 Two-phase construction method
 @param aFramework    The data provider framework
 @param aConnection    The connection from which the request comes
@@ -67,7 +75,7 @@
 Constructor
 */    
 CMTPDeleteObject::CMTPDeleteObject(MMTPDataProviderFramework& aFramework, MMTPConnection& aConnection) :
-    CMTPRequestProcessor(aFramework, aConnection, 0, NULL),
+    CMTPRequestProcessor(aFramework, aConnection, sizeof(KMTPDeleteObjectPolicy)/sizeof(TMTPRequestElementInfo), KMTPDeleteObjectPolicy),
     iDeletedObjectsNumber(0)
     {
     __FLOG_OPEN( KMTPSubsystem, KComponent );
@@ -86,6 +94,19 @@
     __FLOG( _L8("-ConstructL") );
     }
     
+TMTPResponseCode CMTPDeleteObject::CheckRequestL()
+	{
+    __FLOG(_L8("CheckRequestL - Entry"));
+    TMTPResponseCode responseCode = CMTPRequestProcessor::CheckRequestL();   
+    if ((EMTPRespCodeOK == responseCode) && (iSingletons.DpController().EnumerateState() == CMTPDataProviderController::EEnumeratingSubDirFiles))
+        {
+		responseCode = EMTPRespCodeDeviceBusy;
+        }
+    
+	__FLOG_VA((_L8("CheckRequestL - Exit with responseCode = 0x%04X"), responseCode));
+    return responseCode;
+	}
+
 /**
 DeleteObject request handler
 */ 
@@ -158,11 +179,21 @@
     
     if ( iStatus == KErrNone )
         {
-        NextObjectHandleL();
-        if ( iOwnerDp != KInvalidDpId )
+        //First check if the operation has been cancelled or not
+        if(iCancelled)
             {
-            CMTPDataProvider& dp = iSingletons.DpController().DataProviderL( iOwnerDp );
-            dp.ExecuteProxyRequestL( iCurrentRequest, Connection(), *this );
+            __FLOG(_L8("Initiator cancell delete, send response with cancelled code "));
+            SendResponseL(EMTPRespCodeTransactionCancelled);
+            iCancelled = EFalse;
+            }
+        else
+            {
+            NextObjectHandleL();
+            if ( iOwnerDp != KInvalidDpId )
+                {
+                CMTPDataProvider& dp = iSingletons.DpController().DataProviderL( iOwnerDp );
+                dp.ExecuteProxyRequestL( iCurrentRequest, Connection(), *this );
+                }
             }
         }
     else
@@ -209,6 +240,7 @@
     iHandles.Reset();
     iCurrentHandle = 0;
     iDeletedObjectsNumber = 0;
+    
     MMTPType::CopyL( Request(), iCurrentRequest );
     
     CMTPObjectBrowser::TBrowseCallback callback = { CMTPDeleteObject::OnBrowseObjectL, this };
--- a/mtpfws/mtpfw/dataproviders/proxydp/src/cmtpgetobjectproplist.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpfws/mtpfw/dataproviders/proxydp/src/cmtpgetobjectproplist.cpp	Fri Mar 19 09:40:39 2010 +0200
@@ -33,6 +33,15 @@
 
 __FLOG_STMT( _LIT8( KComponent,"PrxyGetObjPrpLst" ); )
 const TUint KInvalidDpId = 0xFF;
+
+/**
+Verification data for the GetObjectPropList request
+*/
+const TMTPRequestElementInfo KMTPGetObjectPropListPolicy[] = 
+    {
+		{ TMTPTypeRequest::ERequestParameter1, EMTPElementTypeObjectHandle, EMTPElementAttrNone, 2, KMTPHandleAll, KMTPHandleNone}
+    };
+
 /**
 Factory method.
 @param aFramework	The data provider framework
@@ -126,7 +135,7 @@
     
 	__ASSERT_DEBUG((( (iRequest == &aRequest) || ( &iCurrentRequest == &aRequest ) ) && (&iConnection == &aConnection)), Panic(EMTPNotSameRequestProxy));
 	TUint16 response = iResponse.Uint16(TMTPTypeResponse::EResponseCode);
-	if(( EMTPRespCodeGroupNotSupported == response) || (EMTPRespCodeSpecificationByGroupUnsupported == response))
+	if(( EMTPRespCodeGroupNotSupported == response) || (EMTPRespCodeSpecificationByGroupUnsupported == response) || ( EMTPRespCodeObjectPropNotSupported == response))
 		{
 		response = EMTPRespCodeOK;
 		iResponse.SetUint16(TMTPTypeResponse::EResponseCode, response);
@@ -178,7 +187,7 @@
 Constructor.
 */	
 CMTPGetObjectPropList::CMTPGetObjectPropList(MMTPDataProviderFramework& aFramework, MMTPConnection& aConnection) :
-    CMTPRequestProcessor(aFramework, aConnection, 0, NULL)
+    CMTPRequestProcessor(aFramework, aConnection, sizeof(KMTPGetObjectPropListPolicy)/sizeof(TMTPRequestElementInfo), KMTPGetObjectPropListPolicy)
     {
     __FLOG_OPEN( KMTPSubsystem, KComponent );
     __FLOG( _L8("+/-Ctor") );
@@ -248,18 +257,7 @@
     
     if ( 0 == iHandles.Count() )
         {
-        if ( handle==KMTPHandleNone && depth==0 )
-            {
-            SendDataL( *iObjectPropList );
-            }
-        else if ( fmtCode != KMTPFormatsAll )
-            {
-            SendResponseL(EMTPRespCodeSpecificationByFormatUnsupported);
-            }
-        else if ( handle != KMTPHandleAll )
-            {
-            SendResponseL(EMTPRespCodeInvalidObjectHandle);
-            }
+          SendDataL( *iObjectPropList );
         }
     else
         {
--- a/mtpfws/mtpfw/dataproviders/proxydp/src/cmtpmoveobject.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpfws/mtpfw/dataproviders/proxydp/src/cmtpmoveobject.cpp	Fri Mar 19 09:40:39 2010 +0200
@@ -32,7 +32,7 @@
 /**
 Verification data for the MoveObject request
 */    
-const TMTPRequestElementInfo CMTPMoveObject::KMTPMoveObjectPolicy[] = 
+const TMTPRequestElementInfo KMTPMoveObjectPolicy[] = 
     {
     	{TMTPTypeRequest::ERequestParameter1, EMTPElementTypeObjectHandle, EMTPElementAttrFileOrDir | EMTPElementAttrWrite, 0, 0, 0},   	
         {TMTPTypeRequest::ERequestParameter2, EMTPElementTypeStorageId, EMTPElementAttrWrite, 0, 0, 0},                
--- a/mtpfws/mtpfw/dataproviders/proxydp/src/cmtpobjectbrowser.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpfws/mtpfw/dataproviders/proxydp/src/cmtpobjectbrowser.cpp	Fri Mar 19 09:40:39 2010 +0200
@@ -56,6 +56,7 @@
         {
         case KMTPHandleAll:
             GetObjectHandlesL( 0, KMTPStorageAll, aFormatCode, KMaxTUint, KMTPHandleNoParent, aBrowseCallback );
+           
             break;
         case KMTPHandleNone:
             GetRootObjectHandlesL( 0, aFormatCode, aDepth, aBrowseCallback );
@@ -88,7 +89,16 @@
     
     RMTPObjectMgrQueryContext   context;
     RArray< TUint >             handles;
-    TMTPObjectMgrQueryParams    params( aStorageId, aFormatCode, aParentHandle );
+    TMTPObjectMgrQueryParams    params( aStorageId, KMTPFormatsAll, aParentHandle );
+    // if parenthandle = 0, depth >0 and != ffffffff, for service dp, 
+    // 1. there is no tree structure
+    // 2. KMTPFormatsAll may make the low lever api filter the handls of service dp.
+    if( (aFormatCode >= EMTPFormatCodeVendorExtStart)&&(aFormatCode <= EMTPFormatCodeVendorExtEnd) )
+        {
+        params.iFormatCode = aFormatCode ;
+        }
+     
+      
     CleanupClosePushL( context );
     CleanupClosePushL( handles );
     
@@ -107,7 +117,13 @@
             {
             for ( TUint i = 0; i < handleCount; i++ )
                 {
-                aBrowseCallback.iCallback( aBrowseCallback.iContext, handles[i], aCurDepth );
+                //before insert the handle to th result list , check it's format.
+                iDpFw.ObjectMgr().ObjectL( handles[i], *iObjMetaCache );
+                if ( (KMTPFormatsAll == aFormatCode) || ( aFormatCode == iObjMetaCache->Uint( CMTPObjectMetaData::EFormatCode )) )
+                   {
+                   aBrowseCallback.iCallback( aBrowseCallback.iContext, handles[i], aCurDepth );
+                   }
+           
                 }
             }
         }
@@ -123,16 +139,18 @@
     {
     __FLOG_VA( ( _L8("+GetFolderObjectHandlesL( %d, 0x%08X, %d, 0x%08X )"), aCurDepth, aFormatCode, aDepth, aParentHandle ) );
     
-    if ( 0 == aDepth )
-        {
-        aBrowseCallback.iCallback( aBrowseCallback.iContext, aParentHandle, aCurDepth );
-        }
-    else
+    if (  aDepth > 0)
         {
         GetObjectHandlesL( aCurDepth + 1, KMTPStorageAll, aFormatCode, aDepth - 1, aParentHandle, aBrowseCallback );
-        aBrowseCallback.iCallback( aBrowseCallback.iContext, aParentHandle, aCurDepth );
         }
     
+    //before insert the handle to th result list , check it's format.
+    iDpFw.ObjectMgr().ObjectL( aParentHandle, *iObjMetaCache );
+    if ( (KMTPFormatsAll == aFormatCode) || ( aFormatCode == iObjMetaCache->Uint( CMTPObjectMetaData::EFormatCode )) )
+       {
+       aBrowseCallback.iCallback( aBrowseCallback.iContext, aParentHandle, aCurDepth );
+       }
+            
     __FLOG( _L8("-GetFolderObjectHandlesL") );
     }
 
@@ -140,19 +158,14 @@
     {
     __FLOG_VA( ( _L8("+GetRootObjectHandlesL( %d, 0x%08X, %d )"), aCurDepth, aFormatCode, aDepth ) );
     
-    switch ( aDepth )
-        {
-        case KMaxTUint:
-            GetObjectHandlesL( aCurDepth, KMTPStorageAll, aFormatCode, aDepth, KMTPHandleNoParent, aBrowseCallback );
-            break;
-        case 0:
-            // do nothing
-            break;
-        default:
-            GetObjectHandlesL( aCurDepth, KMTPStorageAll, aFormatCode, aDepth, KMTPHandleNoParent, aBrowseCallback );
-            break;
+    if( aDepth > 0)
+        {        
+                // attention: aDepth should be reduced by 1 here
+                GetObjectHandlesL( aCurDepth, KMTPStorageAll, aFormatCode, aDepth-1, KMTPHandleNoParent, aBrowseCallback );
         }
     
+    // if aDepth == 0, no handles should be returned.
+    
     __FLOG( _L8("-GetRootObjectHandlesL") );
     }
 
@@ -169,9 +182,13 @@
         {
         GetFolderObjectHandlesL( aCurDepth, aFormatCode, aDepth, aParentHandle, aBrowseCallback );
         }
+    else if ( (KMTPFormatsAll == aFormatCode) || ( aFormatCode == iObjMetaCache->Uint( CMTPObjectMetaData::EFormatCode )) )
+        {
+        aBrowseCallback.iCallback( aBrowseCallback.iContext, aParentHandle, aCurDepth );
+        }
     else
         {
-        aBrowseCallback.iCallback( aBrowseCallback.iContext, aParentHandle, aCurDepth );
+          // format doesn't match, do nothing
         }
 #ifdef __FLOG_ACTIVE
     __FLOG_1( _L8("recursion_depth: %d"), aCurDepth );
@@ -181,4 +198,45 @@
     __FLOG( _L8("-GetObjectHandlesTreeL") );
     }
 
+/**
+ * This function retrives all the object handles with the format code of aFormatCode.
+ * 
+ * If aFormatCode == KMTPFormatsAll, only Legacy dp's object handles are returned. Object
+ * Handles of service dp's will not be returned.
+ * 
+ */
 
+void CMTPObjectBrowser::GetAllObjectHandlesL(TUint32 aFormatCode,const TBrowseCallback& aBrowseCallback ) const
+    {
+    __FLOG( _L8("CMTPObjectBrowser::GetAllObjectHandles-----entry") );
+
+    RMTPObjectMgrQueryContext   context;
+    RArray< TUint >             handles;
+    TMTPObjectMgrQueryParams    params( KMTPStorageAll, aFormatCode, KMTPHandleNone );
+    
+   
+    CleanupClosePushL( context );
+    CleanupClosePushL( handles );
+      
+    do
+        {
+        iDpFw.ObjectMgr().GetObjectHandlesL( params, context, handles );
+        TUint handleCount = handles.Count();
+        
+        for ( TUint i = 0; i < handleCount; i++ )
+          {
+            /* the argument aCurDepth of the callback is set to 0, since the call back never use this argument. 
+             * If aCurDepth is used later, this arugment shoud be changed to the valid value.
+             */
+            aBrowseCallback.iCallback( aBrowseCallback.iContext, handles[i], 0 );
+          }
+        
+        }
+    while ( !context.QueryComplete() );
+      
+    CleanupStack::PopAndDestroy( &handles );
+    CleanupStack::PopAndDestroy( &context );
+    
+    __FLOG( _L8("CMTPObjectBrowser::GetAllObjectHandles------exit") );
+    }
+
--- a/mtpfws/mtpfw/datatypes/interface/cmtptypefile.h	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpfws/mtpfw/datatypes/interface/cmtptypefile.h	Fri Mar 19 09:40:39 2010 +0200
@@ -33,6 +33,43 @@
 */
 class CMTPTypeFile : public CActive, public MMTPType
     {
+
+class CFileWriter : public CActive
+    {
+public:
+    
+    static CFileWriter* NewL(RFile&  aFile, RBuf8& aWriteBuf);
+    /*
+     * Get the buffer for transport to receive data.
+     */
+    void GetWriteBuf(TPtr8& aChunk);
+    /*
+     * Get the file write result.
+     */
+    TInt GetResult() const;
+    /*
+     * Issue a async request to write aLength Data
+     * 
+     */
+    void Write(TInt aLength);
+    /*
+     * Wait until the async write complete.
+     */
+    void WaitForWriteComplete();
+    void RunL();
+    ~CFileWriter();
+    
+private:
+    void DoCancel();
+    CFileWriter(RFile&  aFile, RBuf8& aBuf);
+    void ConstructL();
+    
+private:
+    TInt    iWriteResult;
+    RFile&  iFile;
+    RBuf8&  iBuf;
+    };
+
 public:
 
     IMPORT_C static CMTPTypeFile* NewL(RFs& aFs, const TDesC& aFileName, TFileMode aFileMode);
@@ -167,6 +204,14 @@
 	TInt64          iOffSet;
     
     mutable TInt64          iByteSent;
+    /*
+     * Use the writer to controll buffer1 write.
+     */
+    CFileWriter    *iFileWriter1;
+    /*
+     * Use the writer to controll buffer2 write.
+     */
+    CFileWriter    *iFileWriter2;
 
     };
     
--- a/mtpfws/mtpfw/datatypes/src/cmtptypefile.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpfws/mtpfw/datatypes/src/cmtptypefile.cpp	Fri Mar 19 09:40:39 2010 +0200
@@ -32,6 +32,80 @@
 
 const TUint KUSBHeaderLen = 12;
 
+
+
+CMTPTypeFile::CFileWriter* CMTPTypeFile::CFileWriter::NewL(RFile&  aFile, RBuf8& aWriteBuf)
+    {
+    CFileWriter *self = new(ELeave)CFileWriter(aFile, aWriteBuf);
+    CleanupStack::PushL(self);
+    self->ConstructL();
+    CleanupStack::Pop(self);
+    return self;
+    }
+
+void CMTPTypeFile::CFileWriter::GetWriteBuf(TPtr8& aChunk)
+    {
+    WaitForWriteComplete();
+    aChunk.Set(&iBuf[0], 0, iBuf.MaxLength());
+    }
+    
+TInt CMTPTypeFile::CFileWriter::GetResult() const
+    {
+    return iWriteResult;
+    }
+    
+void CMTPTypeFile::CFileWriter::Write(TInt aLength)
+    {
+    iFile.Write(iBuf, aLength, iStatus);
+    SetActive();
+    }
+    
+void CMTPTypeFile::CFileWriter::WaitForWriteComplete()
+    {
+    /*
+     * We didn't want to cancel the file write here.
+     * But we need to wait until the file write complete.
+     * The Cancel() function of CActive will do the wait until the file write complete.
+     * If the Write already complete and the RunL() invoked there's nothing happened in the Cancel().
+     */
+    Cancel(); 
+    //Have to save the result.
+    iWriteResult = iStatus.Int();
+    }
+
+void CMTPTypeFile::CFileWriter::RunL()
+    {
+    //Have to save the result.
+    iWriteResult = iStatus.Int();
+    }
+    
+    
+CMTPTypeFile::CFileWriter::~CFileWriter()
+    {
+    WaitForWriteComplete(); //make sure all async request complete
+    if(iWriteResult != KErrNone)
+        {
+        iFile.SetSize(0);
+        }
+    }
+
+
+void CMTPTypeFile::CFileWriter::DoCancel()
+    {
+    //We didn't really want to cancel the file write, so we do nothing here
+    }
+
+
+CMTPTypeFile::CFileWriter::CFileWriter(RFile&  aFile, RBuf8& aBuf):CActive(EPriorityStandard), iWriteResult(KErrNone), iFile(aFile), iBuf(aBuf) 
+    {
+    }
+    
+
+void CMTPTypeFile::CFileWriter::ConstructL()
+    {
+    CActiveScheduler::Add(this);
+    }
+
 /**
  MTP file object data type factory method. 
  @param aFs The handle of an active file server session.
@@ -88,13 +162,9 @@
  */
 EXPORT_C CMTPTypeFile::~CMTPTypeFile()
     {
-    if(iCurrentCommitChunk.Length() != 0)
-        {
-        ToggleRdWrBuffer();
-        }
-
+    delete iFileWriter1;
+    delete iFileWriter2;
     iFile.Close();
-
     iBuffer1.Close();
     iBuffer2.Close();
     Cancel();
@@ -133,6 +203,8 @@
         User::LeaveIfError(iFile.SetSize(aSize));
         iCurrentFileSetSize = aSize;
         }
+    iFileWriter1 = CFileWriter::NewL(iFile, iBuffer1);
+    iFileWriter2 = CFileWriter::NewL(iFile, iBuffer2);
     }
 
 /**
@@ -311,19 +383,14 @@
     TInt err(iFile.Seek(ESeekStart, pos));
     if (err == KErrNone)
         {
-        //Because USB HS's transmission rate is several time faster than the rate of writting data into File System.
-        //If the first packet is a full chunk size packet, then the writting of that data will not start until the full-chunk
-        //sized packet is received. Here we intentionly reduce the first packet size to 1/4 of the full chunk size, therefore,
-        //the start of writting data into File system will start only after 1/4 of the full chunk size data is received.
-        //This can make the writting of data to FS start earlier.
-        aChunk.Set(&iBuffer1[0], 0, iBuffer1.MaxLength());
+        iFileWriter1->GetWriteBuf(aChunk);
         iWriteSequenceState = EInProgress;
 
         //this chunk is going to be used by Transport to write data into it, and when it is full, transport
-        //will call back CommitChunkL(), at that time, the EFalse means it already contains data in it.
+        //will call back CommitChunkL(), at that time, the ETrue means it already contains data in it.
         //it is ready for reading data from it. 
         //This is a initial value for it to trigger the double-buffering mechanism.
-        iBuffer1AvailForWrite = EFalse;
+        iBuffer1AvailForWrite = ETrue;
         }
 
     return err;
@@ -342,11 +409,11 @@
         {//toggle between buffer 1 and buffer 2 here.
         if(iBuffer1AvailForWrite)
             {
-            aChunk.Set(&iBuffer1[0], 0, iBuffer1.MaxLength());
+            iFileWriter1->GetWriteBuf(aChunk);
             }
         else
             {
-            aChunk.Set(&iBuffer2[0], 0, iBuffer2.MaxLength());
+            iFileWriter2->GetWriteBuf(aChunk);
             }
         }
 
@@ -402,51 +469,43 @@
 
 EXPORT_C MMTPType* CMTPTypeFile::CommitChunkL(TPtr8& aChunk)
     {
-	if(iFileRdWrError)
-		{
-		return NULL;
-		}
-	if(0 == aChunk.Length())
-		{
-		ToggleRdWrBuffer();
-		return NULL;
-		}
+    if(iFileRdWrError)
+        {
+        return NULL;
+        }
     iCurrentCommitChunk.Set(aChunk);
-
     if(iRemainingDataSize> iCurrentCommitChunk.Length())
-        {//This is NOT the last chunk, we issue an active object to commit it to File system.
-        iRemainingDataSize -= iCurrentCommitChunk.Length();
-		/*
-		if (!IsActive())
-			{
-			//Since the writting data into file sever will take a long time, will issue a dedicated Active Object to do that.
-			SetActive();
-			TRequestStatus* thisAO = &iStatus;
-			User::RequestComplete(thisAO, KErrNone);
-			}
-		else
-			{
-			//This is a very extreme cases, it only occurs when the following assumption is met
-			//1. USB received buffer1 and already call this CommitChunkL(), therefore, the ActiveObject has completed itself, and USB then use another buffer to
-			//receive the data.
-			//2. Somehow, this active object is not scheduled to be running even after the USB already fill out the other buffer.
-			//3. USB's active object is scheduled to be running prior to the last File active object(this should not happen if ActiveScheduler follow the priority scheduler).
-			//4. USB call this function again to commit the other data buffer.
-			//5. Then it find the previous active is not scheduled to run.
-			//in single-core platform, the code rely on the CActiveScheduler to guarantee the first active call which has higher priority to be running firstly before
-			//the 2nd USB active. but for multi-core platform, this should be re-evaluated .
-			iFileRdWrError = ETrue;//if it really discard the incoming recevied file.			
-			//__FLOG(_L8("\nThe program should not arrive here !!!!!\n"));
-			}
-			*/
+        {
+        iRemainingDataSize -= iCurrentCommitChunk.Length();    
         }
     else
-        {//This is the last chunk, we synchronous commit it 
+        {
         iRemainingDataSize = 0;
-        ToggleRdWrBuffer();
-			return NULL;
+        }
+    //wait until previous write complete
+    if(iBuffer1AvailForWrite)
+        {
+        iFileWriter2->WaitForWriteComplete();
+        iFileRdWrError = (iFileWriter2->GetResult() != KErrNone); 
+        }
+    else
+        {
+        iFileWriter1->WaitForWriteComplete();
+        iFileRdWrError = (iFileWriter1->GetResult() != KErrNone);
         }
-	return this;
+    ToggleRdWrBuffer();
+    if(iRemainingDataSize <= 0) //last chunk need wait the write complete
+        {
+        iFileWriter1->WaitForWriteComplete();
+        iFileWriter2->WaitForWriteComplete();
+        if(iFileWriter1->GetResult() != KErrNone || iFileWriter2->GetResult() != KErrNone)
+            {
+            iFile.SetSize(0);
+            iFileRdWrError = ETrue;
+            }
+        }
+    
+    return NULL;
     }
 
 //for partial
@@ -590,17 +649,20 @@
                 }
             else
                 {
-                err = iFile.Write(iCurrentCommitChunk);
-                if (err != KErrNone)
-                    {// file Write failed,	this means we cannot successfully received this file but however, we cannot disrupt a current DIOR phase according to MTP spec.
-                    // We should continue to receive the data and discard this data, only after the data  phase is finished can we send back an error response
-                    //to Initiator. Therefore, we pretend to continue to write this data into file, and let final processor to check the file size and then give back a 
-                    //corresponding error code to MTP initiator.
-                    iFileRdWrError = ETrue;
-                    iFile.SetSize(0);
+                if(iBuffer1AvailForWrite)
+                    {
+                    iFileWriter1->Write(iCurrentCommitChunk.Length());
+                    }
+                else
+                    {
+                    iFileWriter2->Write(iCurrentCommitChunk.Length());
                     }
                 }
             }
+        else
+            {
+            iFile.SetSize(0);
+            }
         iCurrentCommitChunk.Zero();
         }
     else
--- a/mtpfws/mtpfw/group/mtpframework.mmp	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpfws/mtpfw/group/mtpframework.mmp	Fri Mar 19 09:40:39 2010 +0200
@@ -91,6 +91,8 @@
 LIBRARY             efsrv.lib
 LIBRARY             estor.lib
 LIBRARY             euser.lib
+LIBRARY             bluetooth.lib
+LIBRARY             usbman.lib
 
 LIBRARY             mtpdatatypes.lib
 LIBRARY             mtpdataproviderapi.lib
--- a/mtpfws/mtpfw/inc/cmtpconnection.h	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpfws/mtpfw/inc/cmtpconnection.h	Fri Mar 19 09:40:39 2010 +0200
@@ -90,7 +90,7 @@
     IMPORT_C void SessionClosedL(TUint32 aSessionMTPId);
     IMPORT_C void SessionOpenedL(TUint32 aSessionMTPId);
     IMPORT_C TInt GetDataReceiveResult() const;
-    void ConnectionSuspended();
+    TBool ConnectionSuspended();
     void ConnectionResumedL(MMTPTransportConnection& aTransportConnection);
     void TransactionCompleteL(const TMTPTypeRequest& aRequest);
     
@@ -116,7 +116,7 @@
     void SendDataCompleteL(TInt aErr, const MMTPType& aData, const TMTPTypeRequest& aRequest);
     void SendEventCompleteL(TInt aErr, const TMTPTypeEvent& aEvent);
     void SendResponseCompleteL(TInt aErr, const TMTPTypeResponse& aResponse, const TMTPTypeRequest& aRequest);
-	void Unbind(MMTPTransportConnection& aConnection);
+    void Unbind(MMTPTransportConnection& aConnection);
 
 private:
 
@@ -132,6 +132,7 @@
     TUint ActiveSessions() const;
     void CloseAllSessions();
     void CloseSession(TUint aIdx);
+    void CompleteCloseConnection();
     CMTPSession& SessionL(const TMTPTypeFlatBase& aDataset, TInt aSessionIdElementNo) const;
     
     static TInt SessionOrder(const TUint32* aL, const CMTPSession& aR);
--- a/mtpfws/mtpfw/inc/cmtpconnectionmgr.h	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpfws/mtpfw/inc/cmtpconnectionmgr.h	Fri Mar 19 09:40:39 2010 +0200
@@ -23,8 +23,10 @@
 #define CMTPCONNECTIONMGR_H
 
 #include <e32base.h>
+#include <bttypes.h>
 #include "mmtpconnectionmgr.h"
 #include "mtpdebug.h"
+#include "mtp/rmtpclient.h"
 
 class CMTPConnection;
 class CMTPTransportPlugin;
@@ -54,6 +56,7 @@
     IMPORT_C CMTPConnection& ConnectionL(TUint aConnectionId) const;
     TUint ConnectionCount() const;
     CMTPConnection& operator[](TInt aIndex) const;
+	void ConnectionCloseComplete(const TUint& aConnUid);
     IMPORT_C void StartTransportL(TUid aTransport);
     IMPORT_C void StartTransportL(TUid aTransport, const TAny* aParameter);  
     IMPORT_C void QueueTransportL( TUid aTransport, const TAny* aParameter );
@@ -63,13 +66,12 @@
     IMPORT_C void StopTransports();
     IMPORT_C TInt TransportCount() const;
     IMPORT_C TUid TransportUid();
-	
-	    
+    IMPORT_C void SetBTResumeParameter(const TBTDevAddr& aBTAddr, const TUint16& aPSMPort);
+		    
 private: // From MMTPConnectionMgr
 
-    void ConnectionClosed(MMTPTransportConnection& aTransportConnection);
+    TBool ConnectionClosed(MMTPTransportConnection& aTransportConnection);
     void ConnectionOpenedL(MMTPTransportConnection& aTransportConnection);
-    TBool DeleteConnection(TUint aConnectionId);
     TUid ClientSId();
     
 private:
@@ -104,6 +106,11 @@
     CAsyncCallBack*                 iTransportTrigger;
     
     /**
+     * It will store the bluetooth address of remote device.
+     */ 
+    TMTPBTRemoteDevice iRemoteDevice;
+    
+    /**
     FLOGGER debug trace member variable.
     */
     __FLOG_DECLARATION_MEMBER_MUTABLE;
--- a/mtpfws/mtpfw/inc/cmtpdataprovider.h	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpfws/mtpfw/inc/cmtpdataprovider.h	Fri Mar 19 09:40:39 2010 +0200
@@ -124,6 +124,7 @@
     MMTPStorageMgr& StorageMgr() const;
     RFs& Fs() const;
     MMTPDataCodeGenerator& DataCodeGenerator() const;
+    void NotifyFrameworkL( TMTPNotificationToFramework aNotification, const TAny* aParams );
 	
 private: // From CActive
 
--- a/mtpfws/mtpfw/inc/cmtpdataprovidercontroller.h	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpfws/mtpfw/inc/cmtpdataprovidercontroller.h	Fri Mar 19 09:40:39 2010 +0200
@@ -62,7 +62,9 @@
         EEnumeratingDataProviderStorages    = 3,
         EEnumeratingFrameworkObjects        = 4,
         EEnumeratingDataProviderObjects     = 5,
-        EEnumerated                         = 6,
+        EEnumeratingPhaseOneDone            = 6,
+        EEnumeratingSubDirFiles				= 7, //Only File DP care the status.
+        EEnumeratedFulllyCompleted			= 8,
         };
         
 public:
@@ -90,6 +92,9 @@
 
     IMPORT_C void WaitForEnumerationComplete();
     TBool FreeEnumerationWaiter();
+    
+    IMPORT_C void SetNeedEnumeratingPhase2(TBool aNeed);
+    IMPORT_C TBool NeedEnumeratingPhase2() const;
 private: // From CActive
 
     void DoCancel();
@@ -115,7 +120,7 @@
     static void ImplementationsCleanup(TAny* aData);
     static TInt ImplementationsLinearOrderUid(const TUid* aUid, const CImplementationInformation& aObject);
     static TInt ImplementationsLinearOrderUid(const CImplementationInformation& aL, const CImplementationInformation& aR);
-        
+    
 private: // Owned
     /**
     FLOGGER debug trace member variable.
@@ -208,11 +213,12 @@
     opensession waiter
     */
     CActiveSchedulerWait *iOpenSessionWaiter;
-    
-    /**
-    Flag for Create DBSnapshot
-    */
-    TUint8 iFlagDb;
+
+    /*
+     The number of folders and files that will be enumerated.
+     */
+    TBool		iNeedEnumeratingPhase2;
+    TUint32 	iNeedEnumeratingPhase2StorageId;
 
     };
 
--- a/mtpfws/mtpfw/src/cmtpconnection.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpfws/mtpfw/src/cmtpconnection.cpp	Fri Mar 19 09:40:39 2010 +0200
@@ -93,10 +93,6 @@
     	delete link;
     	}
     
-    if (iTransportConnection != NULL)
-	    {
-	    iTransportConnection->Unbind(*this);
-	    }
     iSessions.ResetAndDestroy();
     //close the property
     iProperty.Close();
@@ -108,14 +104,6 @@
     }
 
 /**
-Unbinds the Transport Connection
-*/    
-void CMTPConnection::Unbind(MMTPTransportConnection& /*aConnection*/)
-	{
-	iTransportConnection = NULL;
-	}
-
-/**
 Initiates MTP transaction data phase processing for initiator-to-responder
 data flows. This method should only be invoked when the MTP transaction phase 
 state is ERequestPhase. This is an asynchronous method.
@@ -351,45 +339,47 @@
  * Signals the connection is suspended, the connection state is set to EStateShutdown which 
  * means that all the current transaction will not be able to send/receive any data via the
  * connection
+ * @return ETrue - there is an active transaction currently, and Connection will suspend when it finishes
+ * EFalse - No active transaction, connection suspends immediately.
  */
-void CMTPConnection::ConnectionSuspended()
+TBool CMTPConnection::ConnectionSuspended()
     {
     __FLOG(_L8("ConnectionSuspended - Entry"));
     
+    TBool ret = EFalse;
     TUint currentState = State();
-    if (currentState!=EStateShutdown && currentState!=EStateErrorShutdown)
+    if (currentState != EStateShutdown)
         {
-        SetState(EStateShutdown);
-        
-        if (iTransportConnection != NULL)
-            {
-            iTransportConnection->Unbind(*this);
-            iTransportConnection = NULL;
-            }
-        PublishConnState(EDisconnectedFromHost);   
-    
-        if (ActiveSessions() == 0)
+        if (ActiveSessions() == 0 || currentState == EStateErrorShutdown)
             {
-            CloseAllSessions();
-            iSessions.Reset();
-            iSingletons.Close();
+            CompleteCloseConnection();
+            ret = ETrue;
             }
-        else 
-            {
-            //some session may be in data or response phase, complete them and set transaction phase to ECompletingPhase.
-            const TUint count(iSessions.Count());
-            for (TUint i(0); (i < count); i++)
-                {
-                if (iSessions[i]->TransactionPhase() & (EDataIToRPhase|EDataRToIPhase|EResponsePhase))
-                    {
-                    iSessions[i]->SetTransactionPhase(ECompletingPhase);
-                    iSessions[i]->CompletePendingRequest(KErrCancel);
-                    }
-                }
-            }
+        
+        SetState(EStateShutdown);
+        PublishConnState(EDisconnectedFromHost);   
         }
     
     __FLOG(_L8("ConnectionSuspended - Exit"));
+    return ret;
+    }
+
+void CMTPConnection::CompleteCloseConnection()
+    {
+    __FLOG(_L8("CompleteCloseConnection - Entry"));
+    
+    CloseAllSessions();
+    iSessions.Reset();
+	if (iTransportConnection != NULL)
+		{
+		iTransportConnection->Unbind(*this);
+		}
+    
+    //notify ConnectionMgr and corresponding transports of completion of connection close
+    iSingletons.ConnectionMgr().ConnectionCloseComplete(iConnectionId);    
+    iSingletons.Close();
+
+    __FLOG(_L8("CompleteCloseConnection - Exit"));
     }
 
 /*
@@ -439,24 +429,18 @@
     if (ValidFrameworkRequest(&session, KValidPhases, NULL))
         {
         session.SetTransactionPhase(EIdlePhase);
-        if (State() == EStateShutdown)
-            {
-            if (ActiveSessions() == 0)
-                {        
-                CloseAllSessions();
-                iSessions.Reset();
-                iSingletons.Close();
-                
-                // Move the log here because ShutdownComplete will delete this object.
-                __FLOG(_L8("TransactionCompleteL - Exit"));
-                }
-            }
-        else
+        
+		if (iTransportConnection != NULL)
             {
             iTransportConnection->TransactionCompleteL(aRequest);
-            __FLOG(_L8("TransactionCompleteL - Exit"));
+            }
+			
+        if (State() == EStateShutdown && ActiveSessions() == 0)
+            {     
+            CompleteCloseConnection();
             }
         }
+    __FLOG(_L8("TransactionCompleteL - Exit"));
     }
     
 TUint CMTPConnection::ConnectionId() const
@@ -700,6 +684,11 @@
     __FLOG(_L8("SendResponseCompleteL - Exit"));
     }
 
+void CMTPConnection::Unbind(MMTPTransportConnection& /*aConnection*/)
+    {
+    iTransportConnection = NULL;
+    }
+
    
 TMTPTransactionPhase CMTPConnection::TransactionPhaseL(TUint32 aMTPId) const
     {
--- a/mtpfws/mtpfw/src/cmtpconnectionmgr.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpfws/mtpfw/src/cmtpconnectionmgr.cpp	Fri Mar 19 09:40:39 2010 +0200
@@ -13,6 +13,8 @@
 // Description:
 //
 
+#include <usbman.h>
+#include <usbstates.h>
 #include "cmtpconnectionmgr.h"
 
 #include "cmtpconnection.h"
@@ -93,9 +95,59 @@
     return iTransportUid;
     }
 
+void CMTPConnectionMgr::ConnectionCloseComplete(const TUint& /*aConnUid*/)
+    {
+    __FLOG(_L8("ConnectionCloseComplete - Entry"));
+    ResumeSuspendedTransport();
+    __FLOG(_L8("ConnectionCloseComplete - exit"));
+    }
+
 EXPORT_C void CMTPConnectionMgr::StartTransportL(TUid aTransport)
     {
-    StartTransportL( aTransport, NULL );
+    
+    TInt32 bluetoothUid = 0x10286FCB;
+    
+    RUsb usb;
+    User::LeaveIfError(usb.Connect());
+    TInt usbMode;
+    TUsbServiceState usbStat;
+    TInt err = usb.GetCurrentPersonalityId(usbMode);
+    __FLOG_1(_L8("The return value of GetCurrentPersonalityId is %d"), err);
+    
+    err = usb.GetServiceState(usbStat);
+    __FLOG_1(_L8("The return value of GetServiceState is %d"), err);        
+    
+    usb.Close();
+    
+    __FLOG_1(_L8("The current usb mode is %d"), usbMode);
+    __FLOG_1(_L8("The current usb service state is %d"), usbStat);
+
+    TInt massStorageMode = 0x02;
+    
+    if(usbMode == massStorageMode && usbStat != EUsbServiceIdle)
+        {
+        __FLOG(_L8("StartTransportL without parameter!"));
+        StartTransportL( aTransport, NULL );
+        return;
+        }
+    
+    
+    
+    //When USB plug out, BT will start Master mode to reconnect remote device. Else BT will start slave mode to listen connection.
+    if(aTransport.iUid == bluetoothUid && iRemoteDevice.iDeviceAddr != 0 && aTransport != iTransportUid)
+        {
+        __FLOG(_L8("StartTransportL with parameter!"));
+        TMTPBTRemoteDeviceBuf tmpdata(iRemoteDevice);
+        StartTransportL( aTransport, &tmpdata );
+        iRemoteDevice.iDeviceAddr = 0;
+        iRemoteDevice.iDeviceServicePort = 0;
+        }
+    else
+        {
+        __FLOG(_L8("StartTransportL without parameter!"));
+        StartTransportL( aTransport, NULL );
+        }
+    
     }
 
 /**
@@ -110,33 +162,70 @@
 */
 EXPORT_C void CMTPConnectionMgr::StartTransportL(TUid aTransport, const TAny* aParameter)
     {
-	__FLOG(_L8("StartTransportL - Entry"));
-	
+    __FLOG(_L8("StartTransportL - Entry"));
+    
+    TInt32 bluetoothUid = 0x10286FCB;
+    
     if (iTransport)
         {
+        __FLOG(_L8("The transport is not none."));
         if (aTransport != iTransportUid)
             {
             // Multiple transports not currently supported.
+            __FLOG(_L8("Multiple transports are not supported now!"));
             User::Leave(KErrNotSupported);
             }
+        else
+            {
+            __FLOG_1(_L8("Relaunch the transport 0x%X"), iTransportUid.iUid);
+            if(aTransport.iUid == bluetoothUid)
+                {
+                iTransport->Stop(*this);
+                delete iTransport;
+                
+                iTransport = CMTPTransportPlugin::NewL(aTransport, aParameter);
+                
+                TRAPD(err, iTransport->StartL(*this));
+                if (err != KErrNone)
+                    {
+                    __FLOG_VA( ( _L8("StartTransportL error, error code = %d"), err) );
+                    delete iTransport;
+                    iTransport = NULL;
+                    User::Leave(err);
+                    }
+                iTransportUid = aTransport;       
+             
+                iTransportCount++;
+                }
+
+            }
         }
     else
         {
-
+        __FLOG(_L8("begin start transport."));
         iTransport = CMTPTransportPlugin::NewL(aTransport, aParameter);
 
         TRAPD(err, iTransport->StartL(*this));
-		if (err != KErrNone)
-			{
-			__FLOG_VA( ( _L8("StartTransportL error, error code = %d"), err) );
-			delete iTransport;
-			iTransport = NULL;
-			User::Leave(err);
-			}
+        if (err != KErrNone)
+            {
+            __FLOG_VA( ( _L8("StartTransportL error, error code = %d"), err) );
+            delete iTransport;
+            iTransport = NULL;
+            User::Leave(err);
+            }
         iTransportUid = aTransport;       
-		
+        
         iTransportCount++;
-        UnsuspendTransport( iTransportUid );
+        
+        if(iTransportUid.iUid != bluetoothUid)
+            {
+            UnsuspendTransport( iTransportUid );
+            }
+        else 
+            {
+            //Suspend BT transport to handle switching with Mass Storage 
+            SuspendTransportL( iTransportUid);
+            }
         }
 		
 	__FLOG(_L8("StartTransportL - Exit"));
@@ -181,6 +270,15 @@
     {
 	__FLOG(_L8("StopTransport - Entry"));
 	
+
+    __FLOG_1(_L8("aTransport is 0x%X"), aTransport.iUid);
+    __FLOG_1(_L8("iTransportUid is 0x%X"), aTransport.iUid);
+
+    if ( aByBearer )
+        {
+        UnsuspendTransport( aTransport );
+        }
+    
     if ( ( iTransport ) && ( aTransport == iTransportUid ) )
         {
         if ( !aByBearer )
@@ -192,14 +290,8 @@
         iTransport = NULL;
         iTransportUid = KNullUid;
         iTransportCount--;
-
-
         }
-    if ( aByBearer )
-        {
-        UnsuspendTransport( aTransport );
-        }
-		
+    
 	__FLOG(_L8("StopTransport - Exit"));
     }
 
@@ -224,10 +316,28 @@
 */
 EXPORT_C TInt CMTPConnectionMgr::TransportCount() const
     {
-	return iTransportCount;
+    return iTransportCount;
     }
 
-void CMTPConnectionMgr::ConnectionClosed(MMTPTransportConnection& aTransportConnection)
+/*
+Record the remote device bluetooth address when connection setup.
+*/
+EXPORT_C void CMTPConnectionMgr::SetBTResumeParameter(const TBTDevAddr& aBTAddr, const TUint16& aPSMPort)
+    {
+    TInt64 addr(0);
+    TUint8 i(0);
+    addr += aBTAddr[i++];
+    for(; i<KBTDevAddrSize; ++i)
+        {
+        addr <<= 8;
+        addr += aBTAddr[i];
+        }
+    
+    iRemoteDevice.iDeviceAddr = addr;
+    iRemoteDevice.iDeviceServicePort = aPSMPort;
+    }
+
+TBool CMTPConnectionMgr::ConnectionClosed(MMTPTransportConnection& aTransportConnection)
     {
     __FLOG(_L8("ConnectionClosed - Entry"));
     
@@ -236,11 +346,9 @@
     __ASSERT_DEBUG((idx != KErrNotFound), User::Invariant());
     
     CMTPConnection* connection(iConnections[idx]);
-    connection->ConnectionSuspended();
-    
-    ResumeSuspendedTransport();
     
     __FLOG(_L8("ConnectionClosed - Exit"));
+    return connection->ConnectionSuspended();
     }
     
 void CMTPConnectionMgr::ConnectionOpenedL(MMTPTransportConnection& aTransportConnection)
@@ -267,26 +375,6 @@
     __FLOG(_L8("ConnectionOpenedL - Exit"));
     }
 
-TBool CMTPConnectionMgr::DeleteConnection(TUint aConnectionId)
-    {
-    __FLOG(_L8("DeleteConnection - Entry"));
-    
-    TBool ret = EFalse;    
-    TInt idx = ConnectionFind(aConnectionId);
-    
-    if (idx != KErrNotFound)
-        {
-        CMTPConnection* connection(iConnections[idx]);
-        iConnections.Remove(idx);
-        delete connection;
-        ret = ETrue;
-        }
-    
-    __FLOG(_L8("DeleteConnection - Entry"));
-    
-    return ret;
-    }
-
 EXPORT_C TUid CMTPConnectionMgr::ClientSId()
 	{
 	return iSecureId;
@@ -299,7 +387,9 @@
     iShutdownConnectionIdx(KErrNotFound),
 	iTransportUid(KNullUid)
     {
-    __FLOG_OPEN(KMTPSubsystem, KComponent);    
+    __FLOG_OPEN(KMTPSubsystem, KComponent);
+    iRemoteDevice.iDeviceAddr = 0;
+    iRemoteDevice.iDeviceServicePort = 0;
     }
 
 /**
@@ -378,9 +468,14 @@
     {
     __FLOG( _L8("+ResumeSuspendedTransport") );
     const TInt count = iSuspendedTransports.Count();
+    __FLOG_1(_L8("The count number is %d"), count);
+    __FLOG_1(_L8("The transportport id is 0x%X"), iTransportUid.iUid);
+    
+    TInt32 bluetoothUid = 0x10286FCB;
+    
     if ( ( count > 0 )
         // If the transport was just switched and suspended, it shouldn't be resumed.
-        && ( iTransportUid != iSuspendedTransports[count-1] ) )
+        && (( iTransportUid != iSuspendedTransports[count-1] ) || iTransportUid.iUid == bluetoothUid))
         {
         __FLOG( _L8("Found suspended transport(s).") );
         if ( !iTransportTrigger )
--- a/mtpfws/mtpfw/src/cmtpdataprovider.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpfws/mtpfw/src/cmtpdataprovider.cpp	Fri Mar 19 09:40:39 2010 +0200
@@ -481,6 +481,28 @@
     return iSingletons.DataCodeGenerator();
     }
 
+void CMTPDataProvider::NotifyFrameworkL( TMTPNotificationToFramework aNotification, const TAny* aParams )
+    {
+    __FLOG(_L8("NotifyFrameworkL - Entry"));
+    
+    __ASSERT_DEBUG( aParams, User::Invariant());
+    
+    switch ( aNotification )
+        {
+    case EMTPAddFolder:
+        {
+        TUint deviceDpId = iSingletons.DpController().DeviceDpId();
+        iSingletons.DpController().NotifyDataProvidersL( deviceDpId, EMTPObjectAdded, aParams );
+        }
+        break;
+    default:
+        __FLOG(_L8("Ignore other notification"));
+        break;
+        }
+    
+    __FLOG(_L8("NotifyFrameworkL - Exit"));
+    }
+
 void CMTPDataProvider::DoCancel()
     {
     __FLOG_VA((_L8("DoCancel - Entry, data provider %d "), iId));
@@ -529,6 +551,18 @@
         {
         iImplementation->Cancel();
         }
+    else if (status == KErrAbort)
+        {
+        if (iCurrentRequest != NULL)
+            {
+            TMTPTypeEvent event;
+            event.SetUint16(TMTPTypeEvent::EEventCode, EMTPEventCodeCancelTransaction);
+            event.SetUint32(TMTPTypeEvent::EEventSessionID, iCurrentRequest->Uint32(TMTPTypeRequest::ERequestSessionID) );
+            event.SetUint32(TMTPTypeEvent::EEventTransactionID, iCurrentRequest->Uint32(TMTPTypeRequest::ERequestTransactionID) );
+            
+            iImplementation->ProcessEventL(event ,*iCurrentConnection);
+            }
+        }
 
     
     if (iErrorRecovery != KErrNone)
@@ -558,7 +592,7 @@
             }
         }
     
-		else if (iSingletons.DpController().EnumerateState() != CMTPDataProviderController::EEnumerated)
+		else if (iSingletons.DpController().EnumerateState() < CMTPDataProviderController::EEnumeratingPhaseOneDone)
     	{
         __FLOG(_L8("DP Enumeration is not complete"));
 
@@ -603,12 +637,15 @@
 			iTimer.After(iStatus, TTimeIntervalMicroSeconds32(KWaitForEnumeration));
 			SetActive();
 			iTimerActive = ETrue;
-			break;		   
-	   	case ECompletingPhase:
-	   		TransactionCompleteL(*iCurrentRequest, *iCurrentConnection);   
-		   	break;
-	   	default:
-		   	break;
+			break;
+		case EResponsePhase:
+			iImplementation->ProcessRequestPhaseL(iCurrentTransactionPhase, *iCurrentRequest, *iCurrentConnection);
+			break; 		   
+	  case ECompletingPhase:
+	   	TransactionCompleteL(*iCurrentRequest, *iCurrentConnection);   
+		  break;
+	  default:
+		  break;
 		    }
 	    }
 		}
--- a/mtpfws/mtpfw/src/cmtpdataprovidercontroller.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpfws/mtpfw/src/cmtpdataprovidercontroller.cpp	Fri Mar 19 09:40:39 2010 +0200
@@ -236,7 +236,7 @@
         iEnumeratingStorages.AppendL(params->iStorageId);
         
         // Only schedule the operation start if there is not one currently underway.
-        if (iEnumerationState == EEnumerated)
+        if (iEnumerationState == EEnumeratedFulllyCompleted) 
             {
             iNextDpId           = iDpIdDeviceDp;
             iEnumerationState   = EEnumeratingFrameworkObjects;
@@ -385,7 +385,7 @@
 */ 
 EXPORT_C void CMTPDataProviderController::WaitForEnumerationComplete()
 {
-	if(EnumerateState() != CMTPDataProviderController::EEnumerated)
+	if((EnumerateState() < CMTPDataProviderController::EEnumeratingPhaseOneDone) && ( !iOpenSessionWaiter->IsStarted()))
 		{
 		iOpenSessionWaiter->Start();
 		}
@@ -406,6 +406,7 @@
 void CMTPDataProviderController::EnumerationStateChangedL(const CMTPDataProvider& aDp)
     {
     __FLOG(_L8("EnumerationStateChangedL - Entry"));
+    __FLOG_VA((_L8("Entry iEnumerationState: 0x%x iNextDpId: %d"), iEnumerationState, iNextDpId));
     switch (iEnumerationState)
         {        
     case EEnumeratingFrameworkStorages:
@@ -463,27 +464,42 @@
             break;
             
         case KMTPImplementationUidFileDp:
-            iSingletons.ObjectMgr().RemoveNonPersistentObjectsL(aDp.DataProviderId());
-            // No other data providers
-            iNextDpId = 0;
-            iEnumeratingStorages.Remove(0);
-            if (iEnumeratingStorages.Count() == 0)
-                {
-                // No queued enumerations.
-                iSingletons.ObjectMgr().ObjectStore().CleanDBSnapshotL();
-                iEnumerationState   = EEnumerated;
-                Cancel();
-                if(iOpenSessionWaiter->IsStarted())
-                    {
-                    iOpenSessionWaiter->AsyncStop();
-                    }
-                }
-            else
-                {
-                // Queued enumerations.
-                iNextDpId           = iDpIdDeviceDp;
-                Schedule();
-                }
+			// No other data providers
+			if(NeedEnumeratingPhase2())
+				{
+				iEnumerationState = EEnumeratingSubDirFiles;
+				if(iOpenSessionWaiter->IsStarted())
+					{
+					iOpenSessionWaiter->AsyncStop();
+					}
+				//Schedule FildDP to enumerate the files in sub-dir
+				iNextDpId           = iDpIdFileDp;
+				Schedule();
+				}
+			else
+				{
+				iNextDpId = 0;
+				iEnumeratingStorages.Remove(0);
+				if (iEnumeratingStorages.Count() == 0)
+					{
+					iSingletons.ObjectMgr().RemoveNonPersistentObjectsL(aDp.DataProviderId());
+					iEnumerationState   = EEnumeratedFulllyCompleted;
+					iSingletons.ObjectMgr().ObjectStore().CleanDBSnapshotL();
+						
+					Cancel();
+					if(iOpenSessionWaiter->IsStarted())
+						{
+						iOpenSessionWaiter->AsyncStop();
+						}
+					}
+				else
+					{
+					// Queued enumerations.
+					iNextDpId           = iDpIdDeviceDp;
+					Schedule();
+					}
+				}
+        		
             }
         break;
         
@@ -496,9 +512,23 @@
         if ((iEnumeratingDps.Count() == 0) && iDpIdArrayIndex >= iDataProviderIds.Count())
             {
             // Enumeration complete.
-            iNextDpId = 0;
             iNextDpId           = iDpIdFileDp;
             iEnumerationState   = EEnumeratingFrameworkObjects;
+            			
+			if ( ( iEnumeratingStorages.Count() > 1 ) &&(KErrNotFound != iEnumeratingStorages.Find(KMTPStorageAll)) )
+				{
+				const TUint storageid = iEnumeratingStorages[0];
+				iEnumeratingStorages.Remove(0);
+				if(KMTPStorageAll == storageid)
+					{
+					iEnumeratingStorages.Append(KMTPStorageAll);
+					}
+				
+				if(iEnumeratingStorages[0] != KMTPStorageAll)
+					{
+					iNextDpId = iDpIdDeviceDp;
+					}
+				}
             }
         else
             {
@@ -511,13 +541,39 @@
         Schedule();        
         break;
         
+    case EEnumeratingSubDirFiles:
+    	{
+    	if(aDp.ImplementationUid().iUid == KMTPImplementationUidFileDp)
+    		{
+			iSingletons.ObjectMgr().RemoveNonPersistentObjectsL(aDp.DataProviderId());
+			iNextDpId = 0;
+			iEnumeratingStorages.Remove(0);
+			if(iEnumeratingStorages.Count() == 0)
+				{
+				iSingletons.DpController().SetNeedEnumeratingPhase2(EFalse);
+				iEnumerationState   = EEnumeratedFulllyCompleted;
+				iSingletons.ObjectMgr().ObjectStore().CleanDBSnapshotL();
+				}
+			else //removable card plug in
+				{
+				iNextDpId           = iDpIdDeviceDp;
+				iEnumerationState   = EEnumeratingFrameworkObjects;
+				Schedule();
+				}
+    		}
+    	}
+    	break;
+    	
+    case EEnumeratedFulllyCompleted:
     case EUnenumerated:
     case EEnumerationStarting:
-    case EEnumerated:
+    case EEnumeratingPhaseOneDone:
     default:
         __DEBUG_ONLY(User::Invariant());
         break;
         }
+    
+    __FLOG_VA((_L8("Exit iEnumerationState: 0x%x, iNextDpId: %d, UID=0x%x"), iEnumerationState, iNextDpId, aDp.ImplementationUid().iUid));
     __FLOG(_L8("EnumerationStateChangedL - Exit"));
     }
 
@@ -556,8 +612,6 @@
             iNextDpId           = iDpIdDeviceDp;
             iEnumerationState   = EEnumeratingFrameworkObjects;
 	
-            
-        
             Schedule();
             }
         break;
@@ -573,7 +627,7 @@
             iEnumeratingStorages.Remove(0);
             if (iEnumeratingStorages.Count() == 0)
                 {
-                iEnumerationState = EEnumerated;
+                iEnumerationState = EEnumeratedFulllyCompleted;
                 }
             else
                 {
@@ -591,21 +645,22 @@
                     {
                     iSingletons.ObjectMgr().ObjectStore().EstablishDBSnapshotL(storageId);
                     }
-                else
+                else 
                     {
-                    const CMTPStorageMetaData& storage(iSingletons.StorageMgr().StorageL(storageId));
-                    if(storage.Uint(CMTPStorageMetaData::EStorageSystemType) == CMTPStorageMetaData::ESystemTypeDefaultFileSystem)
-                        {
-                        const RArray<TUint>& logicalIds(storage.UintArray(CMTPStorageMetaData::EStorageLogicalIds));
-                        const TUint KCountLogicalIds(logicalIds.Count());
-                        for (TUint i(0); (i < KCountLogicalIds); i++)
-                            {
-                            __FLOG_VA((_L8("Establish snapshot for storage: 0x%x"), storageId));
-                            iSingletons.ObjectMgr().ObjectStore().EstablishDBSnapshotL(storageId);
-                            }
-                        }
+					const CMTPStorageMetaData& storage(iSingletons.StorageMgr().StorageL(storageId));
+                	if(storage.Uint(CMTPStorageMetaData::EStorageSystemType) == CMTPStorageMetaData::ESystemTypeDefaultFileSystem)
+                		{
+						const RArray<TUint>& logicalIds(storage.UintArray(CMTPStorageMetaData::EStorageLogicalIds));
+						const TUint KCountLogicalIds(logicalIds.Count());
+						for (TUint i(0); (i < KCountLogicalIds); i++)
+							{
+							__FLOG_VA((_L8("Establish snapshot for storage: 0x%x"), logicalIds[i]));
+							iSingletons.ObjectMgr().ObjectStore().EstablishDBSnapshotL(logicalIds[i]);
+							}	
+                		}
                     }
                 }
+            	
             EnumerateDataProviderObjectsL(iNextDpId);          
             }
         	}
@@ -624,11 +679,19 @@
             iEnumeratingDps.InsertInOrderL(currentDp);
             EnumerateDataProviderObjectsL(currentDp);
             }
+        
+        __FLOG_VA((_L8("iDpIdArrayIndex = %d, KLoadedDps = %d"), iDpIdArrayIndex, KLoadedDps));
         }
         break;
         
+    case EEnumeratingSubDirFiles:
+    	{
+    	EnumerateDataProviderObjectsL(iNextDpId); 
+    	}
+    	break;
+    case EEnumeratedFulllyCompleted:
     case EUnenumerated:
-    case EEnumerated:
+    case EEnumeratingPhaseOneDone:
     default:
         __DEBUG_ONLY(User::Invariant());
         break;
@@ -666,7 +729,7 @@
         break;
         
     case EUnenumerated:
-    case EEnumerated:
+    case EEnumeratingPhaseOneDone:
     default:
         User::Invariant();
         break;
@@ -709,7 +772,7 @@
 	iMode = (TMTPOperationalMode)tMTPMode;
 	CreateRegistrySessionAndEntryL();
     
-	iFlagDb = 0;
+	SetNeedEnumeratingPhase2(EFalse);
 	
     iOpenSessionWaiter = new(ELeave) CActiveSchedulerWait();
     __FLOG(_L8("ConstructL - Exit"));
@@ -1148,3 +1211,18 @@
 	iSisSession.Close();
 	}
 
+EXPORT_C void CMTPDataProviderController::SetNeedEnumeratingPhase2(TBool aNeed)
+	{
+	__FLOG(_L8("SetNeedEnumeratingPhase2 - Entry"));
+	__FLOG_VA((_L8("Need = %d"), aNeed)); 
+	
+	iNeedEnumeratingPhase2 = aNeed;
+	
+	__FLOG(_L8("SetNeedEnumeratingPhase2 - Exit"));
+	}
+
+EXPORT_C TBool CMTPDataProviderController::NeedEnumeratingPhase2() const
+	{
+	return iNeedEnumeratingPhase2;
+	}
+
--- a/mtpfws/mtpfw/src/cmtpobjectstore.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpfws/mtpfw/src/cmtpobjectstore.cpp	Fri Mar 19 09:40:39 2010 +0200
@@ -280,17 +280,23 @@
 
 void CMTPObjectStore::CommitReservedObjectHandleL(CMTPObjectMetaData& aObject)
 	{
+	TFileName suid;
+	suid.CopyLC(aObject.DesC(CMTPObjectMetaData::ESuid));
+	TUint32 handle = HandleL(suid);
+	if (handle != KMTPHandleNone)
+	    {
+	    __FLOG(_L8("CommitReserverd leave for duplicate suid."));
+	    User::Leave(KErrAlreadyExists);
+	    }
+	TUint32 suidHash = DefaultHash::Des16(suid);
+	
 	//After the PutL called the cursor's position is not well defined.
 	iCachedHandle = 0;
 	iCachedSuidHash = 0;
 	TInt64 id = iHandleAllocator->NextPOUIDL();
 	aObject.SetUint(CMTPObjectMetaData::EIdentifier, id);
 
-	TFileName suid;
-	suid.CopyLC(aObject.DesC(CMTPObjectMetaData::ESuid));
-	TUint32 suidHash = DefaultHash::Des16(suid);
-
-	TUint32 handle = aObject.Uint(CMTPObjectMetaData::EHandle);
+	handle = aObject.Uint(CMTPObjectMetaData::EHandle);
 	CleanupStack::PushL(TCleanupItem(CMTPObjectStore::DBUpdateFailRecover, &iBatched));
 	iBatched.InsertL();
 	iBatched.SetColL(EObjectStoreHandleId, handle);
@@ -385,6 +391,7 @@
 	TBool needToInsert = EFalse;
 	TBool needUpdateOwner = EFalse;
 	TUint dpId(aObject.Uint(CMTPObjectMetaData::EDataProviderId));
+
 	TFileName suid;
 	suid.CopyLC(aObject.DesC(CMTPObjectMetaData::ESuid));
 	TUint32 suidHash = DefaultHash::Des16(suid);
@@ -392,7 +399,7 @@
 	TUint32 handle = KMTPHandleNone, handleInDB = KMTPHandleAll;
 	TInt64 id = 0;
 	// Check if the dp is enumerating
-	if (iSingletons.DpController().EnumerateState() != CMTPDataProviderController::EEnumerated && iCacheExist)
+	if (iSingletons.DpController().EnumerateState() != CMTPDataProviderController::EEnumeratedFulllyCompleted && iCacheExist)
 		{
 		//it is in the object enumeration phase. 
 		// if it's see if we have an object with the same SUID
@@ -438,7 +445,8 @@
 				}
 			else
 				{
-				User::Leave(KErrAlreadyExists);
+				//while enumerating, we ignore the repeatedly INSERT operations.
+				//User::Leave(KErrAlreadyExists);
 				}
 			}
 		}
@@ -556,6 +564,14 @@
 
 	if (LocateByHandleL(handle))
 		{
+		//To avoid this modification will not generate duplicate SUID
+		TUint32 handle2 = HandleL(suid);
+		if (handle2 != KMTPHandleNone && handle2 != handle)
+		    {
+		    __FLOG(_L8("ModifyObjectL leave for duplicate suid."));
+		    User::Leave(KErrAlreadyExists); 
+		    }
+		
 		//After the PutL called the cursor's position is not well defined.
 		iCachedHandle = 0;
 		iCachedSuidHash = 0;
@@ -686,7 +702,7 @@
 	{
 	if (LocateByHandleL(aHandle.Value()))
 		{
-		if (iSingletons.DpController().EnumerateState() != CMTPDataProviderController::EEnumerated &&
+		if (iSingletons.DpController().EnumerateState() != CMTPDataProviderController::EEnumeratedFulllyCompleted &&
 			IsMediaFormat(iBatched.ColUint16(EObjectStoreFormatCode)))
 			{
 			iMtpDeltaDataMgr->UpdateDeltaDataTableL(iBatched.ColInt64(EObjectStorePOUID), CMtpDeltaDataMgr::EDeleted);
@@ -702,7 +718,7 @@
 	{
 	if(LocateBySuidL(aSuid))
 		{
-		if (iSingletons.DpController().EnumerateState() != CMTPDataProviderController::EEnumerated &&
+		if (iSingletons.DpController().EnumerateState() != CMTPDataProviderController::EEnumeratedFulllyCompleted &&
 			IsMediaFormat(iBatched_SuidHashID.ColUint16(EObjectStoreFormatCode)))
 			{
 			iMtpDeltaDataMgr->UpdateDeltaDataTableL(iBatched_SuidHashID.ColInt64(EObjectStorePOUID), CMtpDeltaDataMgr::EDeleted);
--- a/mtpfws/mtpfw/src/cmtpparserrouter.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpfws/mtpfw/src/cmtpparserrouter.cpp	Fri Mar 19 09:40:39 2010 +0200
@@ -39,7 +39,8 @@
 /**
 CMTPParserRouter panic codes.
 */
-_LIT(KMTPPanicCategory, "CMTPParserRouter");
+
+
 enum TMTPPanicReasons
     {
     EMTPPanicRoutingConflict = 0
@@ -49,9 +50,10 @@
 Produces a "CMTPParserRouter" category panic.
 @param aReason The panic code.
 */
-LOCAL_C void Panic(TInt aReason)
+LOCAL_C void Panic(TInt __DEBUG_ONLY(aReason))
     {
-    User::Panic(KMTPPanicCategory, aReason);
+	__DEBUG_ONLY(_LIT(KMTPPanicCategory, "CMTPParserRouter"));
+    __DEBUG_ONLY(User::Panic(KMTPPanicCategory, aReason));
     }
     
 /**
@@ -1839,44 +1841,39 @@
         const TUint KObjectFormatCode(params1.Param(TRoutingParameters::EParamFormatCode));
         const TUint KObjectFormatSubCode(params1.Param(TRoutingParameters::EParamFormatSubCode));
         const TUint KObjectPropCode(params1.Param(TRoutingParameters::EParamObjectPropCode));
-        if ((KObjectHandle == KMTPHandleAll) || 
-            (KObjectHandle == KMTPHandleAllRootLevel))
+        const TUint KDepth(params1.Request().Uint32(TMTPTypeRequest::ERequestParameter5));
+        if ( KDepth==0 )
             {
-            // All objects or all root level objects.
-            if (KObjectFormatCode == KMTPFormatsAll)
+            if ((KObjectHandle == KMTPHandleAll) || 
+                (KObjectHandle == KMTPHandleAllRootLevel))
                 {
                 SelectSubTypeRoutingL(ESubTypeOperationCode, aRoutingSubTypes, aValidationSubTypes, aParams);
                 }
-            else
+            else if (KObjectHandle != KMTPHandleNone)
                 {
-                SelectSubTypeRoutingL(ESubTypeFormatCodeOperationCode, aRoutingSubTypes, aValidationSubTypes, aParams);
-                }
+                 if( (KObjectFormatCode == EMTPFormatCodeAssociation) && (KObjectFormatSubCode == EMTPAssociationTypeGenericFolder) )
+                     {
+                         if ( params1.Param(TRoutingParameters::EFlagRoutingTypes) & ETypeFramework )
+                         {
+                         SelectSubTypeRoutingL(ESubTypeDpProxy, aRoutingSubTypes, aValidationSubTypes, aParams);
+                         }
+                         else
+                         {
+                         SelectSubTypeRoutingL(ESubTypeStorageTypeOperationCode, aRoutingSubTypes, aValidationSubTypes, aParams);
+                         SelectSubTypeRoutingL(ESubTypeOwnerObject, aRoutingSubTypes, aValidationSubTypes, aParams);
+                         }
+                     }
+                 else
+                     {
+                     SelectSubTypeRoutingL(ESubTypeOwnerObject, aRoutingSubTypes, aValidationSubTypes, aParams);
+                     }
+                 } 
             }
-        else if (KObjectHandle != KMTPHandleNone)
+        else
             {
-             if( (KObjectFormatCode == EMTPFormatCodeAssociation) && (KObjectFormatSubCode == EMTPAssociationTypeGenericFolder) )
-                 {
-					 if ( params1.Param(TRoutingParameters::EFlagRoutingTypes) & ETypeFramework )
-					 {
-					 SelectSubTypeRoutingL(ESubTypeDpProxy, aRoutingSubTypes, aValidationSubTypes, aParams);
-					 }
-					 else
-					 {
-					 SelectSubTypeRoutingL(ESubTypeStorageTypeOperationCode, aRoutingSubTypes, aValidationSubTypes, aParams);
-					 SelectSubTypeRoutingL(ESubTypeOwnerObject, aRoutingSubTypes, aValidationSubTypes, aParams);
-					 }
-                 }
-             else
-            	 {
-                 SelectSubTypeRoutingL(ESubTypeOwnerObject, aRoutingSubTypes, aValidationSubTypes, aParams);
-            	 }
-             } 
+            SelectSubTypeRoutingL(ESubTypeOperationCode, aRoutingSubTypes, aValidationSubTypes, aParams);
+            }
         
-
-        if (KObjectPropCode != KMTPObjectPropCodeAll)
-            {
-            SelectSubTypeValidationL(ESubTypeObjectPropCode, aValidationSubTypes);
-            }
         }
     __FLOG(_L8("GetRoutingSubTypesGetObjectPropListRequestL, Exit"));
     }
--- a/mtpfws/mtpfw/transports/transportapi/inc/mmtpconnectionmgr.h	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtpfws/mtpfw/transports/transportapi/inc/mmtpconnectionmgr.h	Fri Mar 19 09:40:39 2010 +0200
@@ -39,8 +39,13 @@
     Signals that an MTP transport layer connection has become unavailable.
     @param aTransportConnection Interface handle of the MTP transport layer 
     connection instance.
+    @return ETrue means MTP framework successfully cleanup ts env and can accept
+    another ConnectionOpendedL call. EFalse means there is a transaction alive currently,
+    ConnectionOpenedL must not be called until MMTPTransportConnection::TransactionCompleteL is called.
+    @see MMTPConnectionMgr::ConnectionOpenedL()
+    @see MMTPTransportConnection::TransactionCompleteL()
     */
-    virtual void ConnectionClosed(MMTPTransportConnection& aTransportConnection) = 0;
+    virtual TBool ConnectionClosed(MMTPTransportConnection& aTransportConnection) = 0;
     
     /**
     Signals that an MTP transport layer connection has become available.
@@ -56,4 +61,4 @@
     virtual TUid ClientSId()=0;
             
     };
-#endif // MMTPCONNECTIONMGR_H
\ No newline at end of file
+#endif // MMTPCONNECTIONMGR_H
--- a/mtptransports/mtpptpiptransport/ptpipplugin/src/cptpipconnection.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtptransports/mtpptpiptransport/ptpipplugin/src/cptpipconnection.cpp	Fri Mar 19 09:40:39 2010 +0200
@@ -68,6 +68,11 @@
 	delete iPTPIPCommandContainer;
 	delete iPTPIPDataContainer;
 	delete iPTPIPEventContainer;
+
+        if (iProtocolLayer != NULL)
+           {
+           iProtocolLayer->Unbind(*this);
+           }
 	
 	iNullBuffer.Close();
 
--- a/mtptransports/mtpusbtransport/usbsic_imp/inc/cmtpusbconnection.h	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtptransports/mtpusbtransport/usbsic_imp/inc/cmtpusbconnection.h	Fri Mar 19 09:40:39 2010 +0200
@@ -150,7 +150,7 @@
     
     void ResumeConnectionL();
     void StartConnectionL();
-    void StopConnection();
+    TBool StopConnection();
     void SuspendConnectionL();
     
     void StartUsbL();
@@ -418,6 +418,12 @@
 	TBool 												iIsCancelReceived;
 	
     /**
+    A flag to reflect if a Host initiated cancel transaction
+    is triggered.
+    */
+    TBool                                               iIsResetRequestSignaled;
+	
+    /**
     FLOGGER debug trace member variable.
     */
     __FLOG_DECLARATION_MEMBER_MUTABLE;
--- a/mtptransports/mtpusbtransport/usbsic_imp/src/cmtpusbconnection.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ b/mtptransports/mtpusbtransport/usbsic_imp/src/cmtpusbconnection.cpp	Fri Mar 19 09:40:39 2010 +0200
@@ -78,7 +78,7 @@
 CMTPUsbConnection::~CMTPUsbConnection()
     {
     __FLOG(_L8("~CMTPUsbConnection - Entry"));
-
+    
     // Terminate all endpoint data transfer activity.
     StopConnection();
         
@@ -91,11 +91,13 @@
     StopUsb();
     
     iNullBuffer.Close();
-    if (iProtocolLayer)
-	    {    	
-	    iProtocolLayer->Unbind(*this);
-	    }
 
+    if (iProtocolLayer != NULL)
+        {
+        BoundProtocolLayer().Unbind(*this);
+        }
+    iProtocolLayer = NULL;
+    
     __FLOG(_L8("~CMTPUsbConnection - Exit"));
     __FLOG_CLOSE;
     }
@@ -331,21 +333,27 @@
     __FLOG(_L8("TransactionCompleteL - Entry"));
    
    	__FLOG_VA((_L8("DeviceState: 0x%x TransactionState: 0x%x"), iDeviceStatusCode, iBulkTransactionState));
-    
-    if (iBulkTransactionState != ERequestPhase)
-    	{
-	    // Update the transaction state.
-    	SetBulkTransactionState(EIdlePhase);
-    	
-   		// Update the device status
-   		SetDeviceStatus(EMTPUsbDeviceStatusOK); 
-   		
-   		// Clear the cancel flag.
-   		iIsCancelReceived = EFalse; 
-   		
-   		// Initiate the next request phase bulk data receive sequence.
-   		InitiateBulkRequestSequenceL();
-    	}
+   	
+   	if (iBulkTransactionState != ERequestPhase)
+   	    {
+        // Update the transaction state.
+        SetBulkTransactionState(EIdlePhase);    
+        // Update the device status
+        SetDeviceStatus(EMTPUsbDeviceStatusOK);     
+        // Clear the cancel flag.
+        iIsCancelReceived = EFalse; 
+        
+        if (ConnectionOpen())
+            {
+            // Initiate the next request phase bulk data receive sequence.
+            InitiateBulkRequestSequenceL();   		    
+            }
+        else if (iIsResetRequestSignaled)
+            {
+            iIsResetRequestSignaled = EFalse;
+            StartConnectionL();
+            }
+   	    }
     
     __FLOG(_L8("TransactionCompleteL - Exit"));
     } 
@@ -587,8 +595,7 @@
         {
         TUint16 containerType(iUsbBulkContainer->Uint16L(CMTPUsbContainer::EContainerType));
 
-#ifdef _DEBUG        
-      
+#ifdef _DEBUG              
         TUint16 transactionID(iUsbBulkContainer->Uint32L(CMTPUsbContainer::ETransactionID));
         RDebug::Print(_L("Time Stamp is :%d"), User::TickCount());
         RDebug::Print(_L("the container Type is 0x%x, the transaction ID is 0x%x\n"), containerType,transactionID);
@@ -906,6 +913,8 @@
 CMTPUsbConnection::CMTPUsbConnection(MMTPConnectionMgr& aConnectionMgr) :
     CActive(EPriorityStandard),
     iEndpointInfo(KEndpointMetaData, EMTPUsbEpNumEndpoints),
+    iIsCancelReceived(EFalse),
+    iIsResetRequestSignaled(EFalse),
     iConnectionMgr(&aConnectionMgr)
     {
     CActiveScheduler::Add(this);
@@ -1233,7 +1242,7 @@
 void CMTPUsbConnection::ProcessControlRequestDeviceResetL(const TMTPUsbControlRequestSetup& /*aRequest*/)
     {
     __FLOG(_L8("ProcessControlRequestDeviceResetL - Entry"));
-                
+    
     // Clear stalled endpoints and re-open connection
     BulkEndpointsStallClearL();
     StartConnectionL();
@@ -1243,9 +1252,18 @@
     sequence and initiate the next control request sequence. 
     */
     static_cast<CMTPUsbEpControl*>(iEndpoints[EMTPUsbEpControl])->SendControlRequestStatus();
-    StopConnection();
+    TBool connIsStopped = StopConnection();
     InitiateControlRequestSequenceL();
-    StartConnectionL();
+    
+    if (connIsStopped)
+        {
+        StartConnectionL();
+        }
+    else
+        {
+        iIsResetRequestSignaled = ETrue;
+        }
+
     __FLOG(_L8("ProcessControlRequestDeviceResetL - Exit"));
     }
     
@@ -1261,8 +1279,7 @@
     
     TUint offset = 0;
     for(TUint i(EMTPUsbEpControl); i<EMTPUsbEpNumEndpoints; ++i)
-    	{
-        
+    	{        
         if ( IsEpStalled(i) )
             {
             TInt epSize(0);
@@ -1277,16 +1294,11 @@
             //but in practice, it's requested by host with a 32-bit value, so we plus offset with 4 to reflect this.
             TUint32 epAddress = epDesc[KEpAddressOffsetInEpDesc];
             iUsbControlRequestDeviceStatus.SetUint32((offset + TMTPUsbControlRequestDeviceStatus::EParameter1), epAddress);            
-            CleanupStack::PopAndDestroy(); // calls epDesc.Close()
-            
+            CleanupStack::PopAndDestroy(); // calls epDesc.Close()            
             ++offset;
             }
         }
-   
 
-  
-   
-    
     // if the current status is OK and a cancel event has been received but the device has not respond 
     // transaction_cancelled yet, return transaction_cancelled firstly.
     TUint16 originalStatus = iDeviceStatusCode;
@@ -1296,10 +1308,7 @@
     	  // clear the transaction cancelled flag
         isResponseTransactionCancelledNeeded = false;
     	}
-    
-    
 
-    
     // Set the Code and wLength fields and send the dataset.
     iUsbControlRequestDeviceStatus.SetUint16(TMTPUsbControlRequestDeviceStatus::ECode, iDeviceStatusCode);
     iUsbControlRequestDeviceStatus.SetUint16(TMTPUsbControlRequestDeviceStatus::EwLength, iUsbControlRequestDeviceStatus.Size());
@@ -1511,7 +1520,6 @@
     __FLOG(_L8("BulkEndpointsStallL - Entry"));
     EndpointStallL(EMTPUsbEpBulkIn);
     EndpointStallL(EMTPUsbEpBulkOut);
-    SetDeviceStatus(EMTPUsbDeviceStatusTransactionCancelled);
     __FLOG(_L8("BulkEndpointsStallL - Exit"));
     }
 
@@ -1523,7 +1531,6 @@
     __FLOG(_L8("BulkEndpointsStallClearL - Entry"));
     EndpointStallClearL(EMTPUsbEpBulkIn);
     EndpointStallClearL(EMTPUsbEpBulkOut);
-    SetDeviceStatus(EMTPUsbDeviceStatusOK);
     __FLOG(_L8("BulkEndpointsStallClearL - Exit"));  
     }
 
@@ -1582,14 +1589,9 @@
     CMTPUsbEpBase& ep(*iEndpoints[aId]);
     ep.Stall();
     
-    // Stop the connection.
-    StopConnection();
+    // Update the connection state.
+    SetConnectionState(EStalled);
     
-    // Update the connection state.
-    if (!(ConnectionState() & EStalled))
-        {
-        SetConnectionState(EStalled);
-        }
     __FLOG(_L8("EndpointStallL - Exit"));
     }
     
@@ -1617,7 +1619,7 @@
         else if (!IsEpStalled( aId ) )
             {
             // All data endpoint stall conditions are clear.
-          	SetConnectionState(EIdlePhase);
+          	SetConnectionState(EIdle);
             }
         }
     __FLOG(_L8("EndpointStallClearL - Exit"));
@@ -1651,8 +1653,9 @@
     if (ConnectionClosed())
         {
         __FLOG(_L8("Notifying protocol layer connection opened"));
-        iConnectionMgr->ConnectionOpenedL(*this);  
+        iConnectionMgr->ConnectionOpenedL(*this);
         SetConnectionState(EOpen);
+        SetDeviceStatus(EMTPUsbDeviceStatusOK);
         InitiateBulkRequestSequenceL();
         }
     __FLOG(_L8("StartConnectionL - Exit"));
@@ -1661,10 +1664,11 @@
 /**
 Halts USB MTP device class processing.
 */ 
-void CMTPUsbConnection::StopConnection()
+TBool CMTPUsbConnection::StopConnection()
     {
     __FLOG(_L8("StopConnection - Entry"));
     
+    TBool ret = ETrue;
     // Stop all data transfer activity.
     DataEndpointsStop();    
     
@@ -1672,13 +1676,16 @@
     if (ConnectionOpen())
         {
         __FLOG(_L8("Notifying protocol layer connection closed"));
-        iConnectionMgr->ConnectionClosed(*this);
+        ret = iConnectionMgr->ConnectionClosed(*this);
         SetBulkTransactionState(EUndefined);
         SetConnectionState(EIdle);
         SetSuspendState(ENotSuspended);
+        SetDeviceStatus(EMTPUsbDeviceStatusBusy);
         }
     
     __FLOG(_L8("StopConnection - Exit"));
+    
+    return ret;
     }
        
 /**
@@ -1706,7 +1713,7 @@
 */
 void CMTPUsbConnection::StartUsbL()
     {
-    __FLOG(_L8("StartUsbL - Exit"));
+    __FLOG(_L8("StartUsbL - Entry"));
     
     // Open the USB device interface.
     User::LeaveIfError(iLdd.Open(KDefaultUsbClientController));
--- a/obex/obexprotocol/obex/public/obexbase.h	Tue Feb 02 01:11:40 2010 +0200
+++ b/obex/obexprotocol/obex/public/obexbase.h	Fri Mar 19 09:40:39 2010 +0200
@@ -164,10 +164,17 @@
 	IMPORT_C TBool IsConnected() const;
 	IMPORT_C TBool IsStrictPeer() const;
 	IMPORT_C const TObexConnectInfo& LocalInfo() const;
-	IMPORT_C TInt SetLocalWho(const TDesC8& aInfo); 
-    IMPORT_C const TObexConnectInfo& RemoteInfo() const;
-   	IMPORT_C void SuppressAuthenticationHeaderElements(TObexSuppressedAuthElements aSuppressedObexAuthElements);
+	IMPORT_C TInt SetLocalWho(const TDesC8& aInfo);
+	IMPORT_C const TObexConnectInfo& RemoteInfo() const;
+	IMPORT_C void SuppressAuthenticationHeaderElements(TObexSuppressedAuthElements aSuppressedObexAuthElements);
 	
+public: // Implementation of MObexNotify Interface (No longer used)
+	virtual void Process(CObexPacket& aPacket);
+	virtual void Error(TInt aError);
+	virtual void TransportUp();
+	virtual void TransportDown(TBool aForceTransportDeletion);
+	
+public:
 	virtual void UserPasswordL( const TDesC& aPassword) = 0; 
 	IMPORT_C void RemoteAddr(TSockAddr& anAddr); 
 
@@ -181,12 +188,6 @@
 	void NotifyTransportUp();
 	void NotifyTransportDown(TBool);
 	
-public: // Implementation of MObexNotify Interface (No longer used)
-	virtual void Process(CObexPacket& aPacket);
-	virtual void Error(TInt aError) ;
-	virtual void TransportUp();
-	virtual void TransportDown(TBool aForceTransportDeletion);
-	
 protected:
 	CObex();
 	virtual void ConstructL(TObexTransportInfo& aObexTransportInfo);
--- a/obex/obexprotocol/obexusbtransport/src/usbconn.cpp	Tue Feb 02 01:11:40 2010 +0200
+++ b/obex/obexprotocol/obexusbtransport/src/usbconn.cpp	Fri Mar 19 09:40:39 2010 +0200
@@ -1056,6 +1056,15 @@
 				maxSize = maxPacketSize;
 				}
 			dataifc2().iEndpointData[KTransmitEndpoint - 1].iSize  = maxSize;
+			
+			// Allocate dma if requested and the device support resource allocation scheme version 2
+			// for resource allocation scheme version1, refer to AllocateDma()
+			if (iRequestDmaOnInEndpoint && 
+				((dCaps().iFeatureWord1 & KUsbDevCapsFeatureWord1_EndpointResourceAllocV2) != 0))
+				{
+				dataifc2().iEndpointData[KTransmitEndpoint - 1].iFeatureWord1 |= KUsbcEndpointInfoFeatureWord1_DMA;
+				}
+
 			foundIn = ETrue;
 			}
 		else if (!foundOut && (caps->iTypesAndDir & KBulkOutFlags) == KBulkOutFlags)
@@ -1068,6 +1077,15 @@
 				maxSize = maxPacketSize;
 				}
 			dataifc2().iEndpointData[KReceiveEndpoint - 1].iSize  = maxSize;
+			
+			//Allocate dma here if requested and the device support resource allocation scheme version 2
+			// for resource allocation scheme version1, refer to AllocateDma()
+			if (iRequestDmaOnOutEndpoint && 
+				((dCaps().iFeatureWord1 & KUsbDevCapsFeatureWord1_EndpointResourceAllocV2) != 0))
+				{
+				dataifc2().iEndpointData[KReceiveEndpoint - 1].iFeatureWord1 |= KUsbcEndpointInfoFeatureWord1_DMA;
+				}
+			
 			foundOut = ETrue;
 			}
 		}
@@ -1155,6 +1173,14 @@
 	{
 	LOG_FUNC
 
+	TUsbDeviceCaps dCaps;
+	iUsb.DeviceCaps(dCaps);
+	if ((dCaps().iFeatureWord1 & KUsbDevCapsFeatureWord1_EndpointResourceAllocV2) != 0)
+		{
+		// for resource allocation version2, refer to CObexUsbHandler::RegInterfacesL()
+		return;
+		}
+
 	if (iRequestDmaOnInEndpoint)
 		{
 		TInt err = iUsb.AllocateEndpointResource(KTransmitEndpoint, EUsbcEndpointResourceDMA);