201039
authorhgs
Thu, 07 Oct 2010 06:25:45 +0300
changeset 77 b01c07dfcf84
parent 74 1505405bc645
child 78 175a0d824084
201039
appfw/viewserver/group/bld.inf
appsupport_pub/network_status_api/tsrc/bc/networkstatus/group/NetworkStatusTest.mmp
coreapplicationuis/Rfs/Plugins/rfscustcmd/tsrc/rfscustcmdtest/group/rfscustcmdtest.mmp
coreapplicationuis/SysAp/Data/qtg_anim_battery_charging_01.svg
coreapplicationuis/SysAp/Data/qtg_anim_battery_charging_02.svg
coreapplicationuis/SysAp/Data/qtg_anim_battery_charging_03.svg
coreapplicationuis/SysAp/Data/qtg_anim_battery_charging_04.svg
coreapplicationuis/SysAp/Data/qtg_anim_battery_charging_05.svg
coreapplicationuis/SysAp/Data/qtg_anim_battery_charging_06.svg
coreapplicationuis/SysAp/Data/qtg_anim_battery_charging_07.svg
coreapplicationuis/SysAp/Data/qtg_anim_battery_charging_08.svg
coreapplicationuis/SysAp/Data/qtg_anim_battery_charging_09.svg
coreapplicationuis/SysAp/Data/qtg_anim_battery_charging_10.svg
coreapplicationuis/SysAp/Data/qtg_anim_battery_full_01.svg
coreapplicationuis/SysAp/Data/qtg_anim_battery_full_02.svg
coreapplicationuis/SysAp/Data/qtg_anim_battery_full_03.svg
coreapplicationuis/SysAp/Data/qtg_anim_battery_full_04.svg
coreapplicationuis/SysAp/Data/qtg_anim_battery_full_05.svg
coreapplicationuis/SysAp/Data/qtg_anim_battery_full_06.svg
coreapplicationuis/SysAp/Data/qtg_anim_battery_full_07.svg
coreapplicationuis/SysAp/Data/qtg_anim_battery_full_08.svg
coreapplicationuis/SysAp/Data/qtg_anim_battery_full_09.svg
coreapplicationuis/SysAp/Data/qtg_anim_battery_full_10.svg
coreapplicationuis/SysAp/Group/SysAp.mmp
coreapplicationuis/SysAp/Group/bld.inf
coreapplicationuis/SysAp/Inc/SysAp.hrh
coreapplicationuis/SysAp/Inc/SysApAppUi.h
coreapplicationuis/SysAp/Inc/SysApConfirmationQuery.h
coreapplicationuis/SysAp/Inc/SysApMsgSimMemLowQuery.h
coreapplicationuis/SysAp/Inc/SysApPowerKeyMenuObserver.h
coreapplicationuis/SysAp/Inc/SysApProfileObserver.h
coreapplicationuis/SysAp/Inc/SysApShutdownImage.h
coreapplicationuis/SysAp/Inc/SysApSsSettingsObserver.h
coreapplicationuis/SysAp/Inc/SysApWaitNote.h
coreapplicationuis/SysAp/Inc/sysapcharginganimation.h
coreapplicationuis/SysAp/Src/CenRepObservers/SysApCenRepSilentModeObserver.cpp
coreapplicationuis/SysAp/Src/CenRepObservers/SysApCenRepSilentModeObserver.h
coreapplicationuis/SysAp/Src/SysApAppUi.cpp
coreapplicationuis/SysAp/Src/SysApConfirmationQuery.cpp
coreapplicationuis/SysAp/Src/SysApLightsController.cpp
coreapplicationuis/SysAp/Src/SysApMsgSimMemLowQuery.cpp
coreapplicationuis/SysAp/Src/SysApPowerKeyMenuObserver.cpp
coreapplicationuis/SysAp/Src/SysApProfileObserver.cpp
coreapplicationuis/SysAp/Src/SysApPubSubObserver.cpp
coreapplicationuis/SysAp/Src/SysApShutdownImage.cpp
coreapplicationuis/SysAp/Src/SysApSimChanged.cpp
coreapplicationuis/SysAp/Src/SysApSsSettingsObserver.cpp
coreapplicationuis/SysAp/Src/SysApWaitNote.cpp
coreapplicationuis/SysAp/Src/memorycard/sysapdriveunlockhandler.cpp
coreapplicationuis/SysAp/Src/sysapcharginganimation.cpp
coreapplicationuis/SysAp/Src/sysapdefaultkeyhandler.cpp
coreapplicationuis/SysAp/rom/SysAp.iby
coreapplicationuis/SysAp/rom/SysApResources.iby
coreapplicationuis/accfwuinotifier/tsrc/AccFwUiNotifierTestModule/Bmarm/AccFwUiNotifierTestModuleU.DEF
coreapplicationuis/accfwuinotifier/tsrc/AccFwUiNotifierTestModule/Bwins/AccFwUiNotifierTestModuleu.def
coreapplicationuis/accfwuinotifier/tsrc/AccFwUiNotifierTestModule/conf/ui_AccFwUiNotifierTestModule.cfg
coreapplicationuis/accfwuinotifier/tsrc/AccFwUiNotifierTestModule/eabi/AccFwUiNotifierTestModuleu.def
coreapplicationuis/accfwuinotifier/tsrc/AccFwUiNotifierTestModule/group/AccFwUiNotifierTestModule-tmp.SIS
coreapplicationuis/accfwuinotifier/tsrc/AccFwUiNotifierTestModule/group/AccFwUiNotifierTestModule.mmp
coreapplicationuis/accfwuinotifier/tsrc/AccFwUiNotifierTestModule/group/AccFwUiNotifierTestModule.pkg
coreapplicationuis/accfwuinotifier/tsrc/AccFwUiNotifierTestModule/group/AccFwUiNotifierTestModule_DoxyFile.txt
coreapplicationuis/accfwuinotifier/tsrc/AccFwUiNotifierTestModule/group/bld.inf
coreapplicationuis/accfwuinotifier/tsrc/AccFwUiNotifierTestModule/inc/AccFwUiNotifierTestModule.h
coreapplicationuis/accfwuinotifier/tsrc/AccFwUiNotifierTestModule/init/TestFramework.ini
coreapplicationuis/accfwuinotifier/tsrc/AccFwUiNotifierTestModule/rom/AccFwUiNotifierTestModule.iby
coreapplicationuis/accfwuinotifier/tsrc/AccFwUiNotifierTestModule/src/AccFwUiNotifierTestModule.cpp
coreapplicationuis/advancedtspcontroller/inc/tsptriggerevents.h
coreapplicationuis/advancedtspcontroller/tsrc/testtspcontroller/group/bld.inf
coreapplicationuis/advancedtspcontroller/tsrc/testtspcontroller/group/ctc2result.bat
coreapplicationuis/advancedtspcontroller/tsrc/testtspcontroller/group/testtspcontroller.mmp
coreapplicationuis/advancedtspcontroller/tsrc/testtspcontroller/inc/RemConDebug.h
coreapplicationuis/advancedtspcontroller/tsrc/testtspcontroller/inc/mockcfactionindicationimpl.h
coreapplicationuis/advancedtspcontroller/tsrc/testtspcontroller/inc/mockremcontspobserver.h
coreapplicationuis/advancedtspcontroller/tsrc/testtspcontroller/inc/testtspcontroller.h
coreapplicationuis/advancedtspcontroller/tsrc/testtspcontroller/sis/testtspcontroller_EKA2.pkg
coreapplicationuis/advancedtspcontroller/tsrc/testtspcontroller/src/mockcfactionindicationimpl.cpp
coreapplicationuis/advancedtspcontroller/tsrc/testtspcontroller/src/mockremconidlelistener.cpp
coreapplicationuis/advancedtspcontroller/tsrc/testtspcontroller/src/mockremcontspobserver.cpp
coreapplicationuis/advancedtspcontroller/tsrc/testtspcontroller/src/testtspcontroller.cpp
coreapplicationuis/advancedtspcontroller/tsrc/ut_atsp/Bwins/ut_atspu.def
coreapplicationuis/advancedtspcontroller/tsrc/ut_atsp/eabi/ut_atspu.def
coreapplicationuis/advancedtspcontroller/tsrc/ut_atsp/group/bld.inf
coreapplicationuis/advancedtspcontroller/tsrc/ut_atsp/group/ut_atsp.mmp
coreapplicationuis/advancedtspcontroller/tsrc/ut_atsp/group/ut_atsp.pkg
coreapplicationuis/advancedtspcontroller/tsrc/ut_atsp/inc/mockremcontspcontroller.h
coreapplicationuis/advancedtspcontroller/tsrc/ut_atsp/inc/ut_atsptspeventsstub.h
coreapplicationuis/advancedtspcontroller/tsrc/ut_atsp/src/mockremcontspcontroller.cpp
coreapplicationuis/advancedtspcontroller/tsrc/ut_atsp/src/ut_atsp.cpp
coreapplicationuis/advancedtspcontroller/tsrc/ut_atsp/src/ut_atspcases.cpp
coreapplicationuis/advancedtspcontroller/tsrc/ut_atsp/src/ut_atsptspeventsstub.cpp
coreapplicationuis/advancedtspcontroller/tsrc/ut_atsp/ut_atspaudioproperty/group/bld.inf
coreapplicationuis/advancedtspcontroller/tsrc/ut_atsp/ut_atspaudioproperty/group/ut_atspaudioproperty.mmp
coreapplicationuis/advancedtspcontroller/tsrc/ut_atsp/ut_atspaudioproperty/inc/ut_atspaudioproperty.h
coreapplicationuis/advancedtspcontroller/tsrc/ut_atsp/ut_atspaudioproperty/src/ut_atspaudioproperty.cpp
coreapplicationuis/hbdeviceinputdialogplugin/hbdeviceinputdialogplugin.pro
coreapplicationuis/hbdeviceinputdialogplugin/rom/hbdeviceinputdialogplugin_resources.iby
coreapplicationuis/powersaveutilities/pluginlauncher/pluginlauncher.pro
coreapplicationuis/powersaveutilities/pluginlauncher/rom/pluginlauncher.iby
coreapplicationuis/powersaveutilities/pluginlauncher/src/main.cpp
coreapplicationuis/powersaveutilities/pluginlauncher/src/mainview.cpp
coreapplicationuis/powersaveutilities/pluginlauncher/src/mainview.h
coreapplicationuis/powersaveutilities/powersaveutilities.pro
coreapplicationuis/powersaveutilities/psmindicatorplugin/inc/psmindicator.h
coreapplicationuis/powersaveutilities/psmindicatorplugin/psmindicatorplugin.pro
coreapplicationuis/powersaveutilities/psmindicatorplugin/src/psmindicator.cpp
coreapplicationuis/rfsplugins/tsrc/rfspluginstest/ClockRFSPluginTestModule/src/ClockRFSPluginTestModule.cpp
coreapplicationuis/rfsplugins/tsrc/rfspluginstest/msgcentrerfsplugintest/conf/msgcentrerfsplugintest.cfg
coreapplicationuis/rfsplugins/tsrc/rfspluginstest/msgcentrerfsplugintest/conf/ui_msgcentrerfsplugintest.cfg
coreapplicationuis/rfsplugins/tsrc/rfspluginstest/msgcentrerfsplugintest/group/bld.inf
coreapplicationuis/rfsplugins/tsrc/rfspluginstest/msgcentrerfsplugintest/group/msgcentrerfsplugintest.mmp
coreapplicationuis/rfsplugins/tsrc/rfspluginstest/msgcentrerfsplugintest/inc/msgcentrerfsplugintest.h
coreapplicationuis/rfsplugins/tsrc/rfspluginstest/msgcentrerfsplugintest/inc/traceconfiguration.hrh
coreapplicationuis/rfsplugins/tsrc/rfspluginstest/msgcentrerfsplugintest/init/msgcentrerfsplugintest.ini
coreapplicationuis/rfsplugins/tsrc/rfspluginstest/msgcentrerfsplugintest/rom/msgcentrerfsplugintest.iby
coreapplicationuis/rfsplugins/tsrc/rfspluginstest/msgcentrerfsplugintest/src/msgcentrerfsplugintest.cpp
coreapplicationuis/rfsplugins/tsrc/rfspluginstest/secureformattertest/group/secureformattertest.mmp
coreapplicationuis/sensordatacompensatorplugin/tsrc/sensordatacompensatorplgtest/group/sensordatacompensatorplgtest.mmp
package_definition.xml
startupservices/SplashScreen/src/SplashScreen.cpp
startupservices/Startup/src/StartupAppUi.cpp
startupservices/Startup/syserrcmd/tsrc/group/bld.inf
startupservices/Startup/syserrcmd/tsrc/inc/syserrcmdtestsstub.h
startupservices/Startup/syserrcmd/tsrc/syserrcmdtest/bwins/syserrcmdtestu.def
startupservices/Startup/syserrcmd/tsrc/syserrcmdtest/conf/syserrcmdtest.cfg
startupservices/Startup/syserrcmd/tsrc/syserrcmdtest/eabi/syserrcmdtestu.def
startupservices/Startup/syserrcmd/tsrc/syserrcmdtest/group/bld.inf
startupservices/Startup/syserrcmd/tsrc/syserrcmdtest/group/envrecall.cmd
startupservices/Startup/syserrcmd/tsrc/syserrcmdtest/group/envsetup.cmd
startupservices/Startup/syserrcmd/tsrc/syserrcmdtest/group/syserrcmdtest.mmp
startupservices/Startup/syserrcmd/tsrc/syserrcmdtest/group/syserrcmdtest.pkg
startupservices/Startup/syserrcmd/tsrc/syserrcmdtest/inc/asyncrequesthandler.h
startupservices/Startup/syserrcmd/tsrc/syserrcmdtest/inc/syserrcmdtest.h
startupservices/Startup/syserrcmd/tsrc/syserrcmdtest/inc/trace.h
startupservices/Startup/syserrcmd/tsrc/syserrcmdtest/inc/traceconfiguration.hrh
startupservices/Startup/syserrcmd/tsrc/syserrcmdtest/init/syserrcmdtest.ini
startupservices/Startup/syserrcmd/tsrc/syserrcmdtest/src/syserrcmdtest.cpp
startupservices/Startup/syserrcmd/tsrc/syserrcmdtestsstub/bwins/syserrcmdtestsstubu.def
startupservices/Startup/syserrcmd/tsrc/syserrcmdtestsstub/eabi/syserrcmdtestsstubu.def
startupservices/Startup/syserrcmd/tsrc/syserrcmdtestsstub/group/bld.inf
startupservices/Startup/syserrcmd/tsrc/syserrcmdtestsstub/group/syserrcmdtestsstub.mmp
startupservices/Startup/syserrcmd/tsrc/syserrcmdtestsstub/inc/syserrcmdtestsstub.h
startupservices/Startup/syserrcmd/tsrc/syserrcmdtestsstub/src/ssmcustomcommandenvstub.cpp
startupservices/Startup/syserrcmd/tsrc/syserrcmdtestsstub/src/syserrcmdtestsstub.cpp
startupservices/startupanimation/tsrc/TSanimctrl/Bmarm/TSanimctrlU.DEF
startupservices/startupanimation/tsrc/TSanimctrl/Bwins/TSanimctrlu.def
startupservices/startupanimation/tsrc/TSanimctrl/conf/UI_TSanimctrl.cfg
startupservices/startupanimation/tsrc/TSanimctrl/eabi/TSanimctrlu.def
startupservices/startupanimation/tsrc/TSanimctrl/group/TSanimctrl.mmp
startupservices/startupanimation/tsrc/TSanimctrl/group/TSanimctrl.pkg
startupservices/startupanimation/tsrc/TSanimctrl/group/TSanimctrl_DoxyFile.txt
startupservices/startupanimation/tsrc/TSanimctrl/group/bld.inf
startupservices/startupanimation/tsrc/TSanimctrl/group/profile.txt
startupservices/startupanimation/tsrc/TSanimctrl/group/t.txt
startupservices/startupanimation/tsrc/TSanimctrl/inc/TSanimctrl.h
startupservices/startupanimation/tsrc/TSanimctrl/inc/sanimctrlrootsuite.h
startupservices/startupanimation/tsrc/TSanimctrl/inc/sanimmockview.h
startupservices/startupanimation/tsrc/TSanimctrl/inc/testwaiter.h
startupservices/startupanimation/tsrc/TSanimctrl/init/TestFramework.ini
startupservices/startupanimation/tsrc/TSanimctrl/init/UI_TSanimctrl.cfg
startupservices/startupanimation/tsrc/TSanimctrl/rom/UI_TSanimctrl.iby
startupservices/startupanimation/tsrc/TSanimctrl/src/TSanimctrl.cpp
startupservices/startupanimation/tsrc/TSanimctrl/src/TSanimctrlBlocks.cpp
startupservices/startupanimation/tsrc/TSanimctrl/src/sanimctrlrootsuite.cpp
startupservices/startupanimation/tsrc/TSanimctrl/src/sanimmockview.cpp
startupservices/startupanimation/tsrc/TSanimctrl/src/testwaiter.cpp
startupservices/startupanimation/tsrc/TSanimengine/Bmarm/TSanimengineU.DEF
startupservices/startupanimation/tsrc/TSanimengine/Bwins/TSanimengineu.def
startupservices/startupanimation/tsrc/TSanimengine/conf/UI_TSanimEngine.cfg
startupservices/startupanimation/tsrc/TSanimengine/eabi/TSanimengineu.def
startupservices/startupanimation/tsrc/TSanimengine/group/TSanimengine.mmp
startupservices/startupanimation/tsrc/TSanimengine/group/TSanimengine.pkg
startupservices/startupanimation/tsrc/TSanimengine/group/TSanimengine_DoxyFile.txt
startupservices/startupanimation/tsrc/TSanimengine/group/bld.inf
startupservices/startupanimation/tsrc/TSanimengine/group/ctcerr.txt
startupservices/startupanimation/tsrc/TSanimengine/inc/TSanimengine.h
startupservices/startupanimation/tsrc/TSanimengine/inc/testwaiter.h
startupservices/startupanimation/tsrc/TSanimengine/rom/TSanimengine.iby
startupservices/startupanimation/tsrc/TSanimengine/src/TSanimengine.cpp
startupservices/startupanimation/tsrc/TSanimengine/src/TSanimengineBlocks.cpp
startupservices/startupanimation/tsrc/TSanimengine/src/testwaiter.cpp
startupservices/startupanimation/tsrc/TSanimmif/.cproject
startupservices/startupanimation/tsrc/TSanimmif/.project
startupservices/startupanimation/tsrc/TSanimmif/Bmarm/TSanimmifU.DEF
startupservices/startupanimation/tsrc/TSanimmif/Bwins/TSanimmifu.def
startupservices/startupanimation/tsrc/TSanimmif/conf/UI_TSanimmif.cfg
startupservices/startupanimation/tsrc/TSanimmif/data/corrupt.mif
startupservices/startupanimation/tsrc/TSanimmif/eabi/TSanimmifu.def
startupservices/startupanimation/tsrc/TSanimmif/group/TSanimmif.mmp
startupservices/startupanimation/tsrc/TSanimmif/group/TSanimmif.pkg
startupservices/startupanimation/tsrc/TSanimmif/group/TSanimmif_DoxyFile.txt
startupservices/startupanimation/tsrc/TSanimmif/group/bld.inf
startupservices/startupanimation/tsrc/TSanimmif/group/ctcerr.txt
startupservices/startupanimation/tsrc/TSanimmif/group/profile.txt
startupservices/startupanimation/tsrc/TSanimmif/inc/TSanimmif.h
startupservices/startupanimation/tsrc/TSanimmif/inc/sanimmifplugintestsuite.h
startupservices/startupanimation/tsrc/TSanimmif/inc/testwaiter.h
startupservices/startupanimation/tsrc/TSanimmif/rom/TSanimmif.iby
startupservices/startupanimation/tsrc/TSanimmif/src/TSanimmif.cpp
startupservices/startupanimation/tsrc/TSanimmif/src/TSanimmifBlocks.cpp
startupservices/startupanimation/tsrc/TSanimmif/src/testwaiter.cpp
startupservices/startupanimation/tsrc/TSanimmmf/Bmarm/TSanimmmfpluginU.DEF
startupservices/startupanimation/tsrc/TSanimmmf/Bwins/TSanimmmfpluginu.def
startupservices/startupanimation/tsrc/TSanimmmf/conf/UI_TSanimmmf.cfg
startupservices/startupanimation/tsrc/TSanimmmf/eabi/TSanimmmfpluginu.def
startupservices/startupanimation/tsrc/TSanimmmf/group/TSanimmmf.iby
startupservices/startupanimation/tsrc/TSanimmmf/group/TSanimmmf.mmp
startupservices/startupanimation/tsrc/TSanimmmf/group/TSanimmmfplugin.pkg
startupservices/startupanimation/tsrc/TSanimmmf/group/TSanimmmfplugin_DoxyFile.txt
startupservices/startupanimation/tsrc/TSanimmmf/group/bld.inf
startupservices/startupanimation/tsrc/TSanimmmf/inc/TSanimmmfplugin.h
startupservices/startupanimation/tsrc/TSanimmmf/inc/testwaiter.h
startupservices/startupanimation/tsrc/TSanimmmf/init/TestFramework.ini
startupservices/startupanimation/tsrc/TSanimmmf/rom/TSanimmmf.iby
startupservices/startupanimation/tsrc/TSanimmmf/src/TSanimmmfplugin.cpp
startupservices/startupanimation/tsrc/TSanimmmf/src/TSanimmmfpluginBlocks.cpp
startupservices/startupanimation/tsrc/TSanimmmf/src/testwaiter.cpp
startupservices/startupanimation/tsrc/Tsanimihl/Bmarm/TsanimihlU.DEF
startupservices/startupanimation/tsrc/Tsanimihl/Bwins/Tsanimihlu.def
startupservices/startupanimation/tsrc/Tsanimihl/conf/UI_Tsanimihl.cfg
startupservices/startupanimation/tsrc/Tsanimihl/eabi/Tsanimihlu.def
startupservices/startupanimation/tsrc/Tsanimihl/group/MON.dat
startupservices/startupanimation/tsrc/Tsanimihl/group/Tsanimihl.mmp
startupservices/startupanimation/tsrc/Tsanimihl/group/Tsanimihl.pkg
startupservices/startupanimation/tsrc/Tsanimihl/group/Tsanimihl_DoxyFile.txt
startupservices/startupanimation/tsrc/Tsanimihl/group/Tsanimihl_nrm.mmp
startupservices/startupanimation/tsrc/Tsanimihl/group/bld.inf
startupservices/startupanimation/tsrc/Tsanimihl/inc/Tsanimihl.h
startupservices/startupanimation/tsrc/Tsanimihl/inc/testwaiter.h
startupservices/startupanimation/tsrc/Tsanimihl/init/TestFramework.ini
startupservices/startupanimation/tsrc/Tsanimihl/rom/TSanimihl.iby
startupservices/startupanimation/tsrc/Tsanimihl/src/Tsanimihl.cpp
startupservices/startupanimation/tsrc/Tsanimihl/src/TsanimihlBlocks.cpp
startupservices/startupanimation/tsrc/Tsanimihl/src/testwaiter.cpp
startupservices/startupanimation/tsrc/init/TestFramework.ini
startupservices/startupanimation/tsrc/rom/Tstartuptest.iby
startupservices/startupanimation/tsrc/tsanimsvg/Bmarm/TSanimsvgU.DEF
startupservices/startupanimation/tsrc/tsanimsvg/Bwins/TSanimsvgu.def
startupservices/startupanimation/tsrc/tsanimsvg/conf/UI_TSanimsvg.cfg
startupservices/startupanimation/tsrc/tsanimsvg/eabi/TSanimsvgu.def
startupservices/startupanimation/tsrc/tsanimsvg/group/TSanimsvg.pkg
startupservices/startupanimation/tsrc/tsanimsvg/group/TSanimsvg_DoxyFile.txt
startupservices/startupanimation/tsrc/tsanimsvg/group/bld.inf
startupservices/startupanimation/tsrc/tsanimsvg/group/ctcerr.txt
startupservices/startupanimation/tsrc/tsanimsvg/group/profile.txt
startupservices/startupanimation/tsrc/tsanimsvg/group/tsanimsvg.mmp
startupservices/startupanimation/tsrc/tsanimsvg/inc/TSanimsvg.h
startupservices/startupanimation/tsrc/tsanimsvg/inc/sanimsvgplugintestsuite.h
startupservices/startupanimation/tsrc/tsanimsvg/inc/testwaiter.h
startupservices/startupanimation/tsrc/tsanimsvg/rom/TSanimSvg.iby
startupservices/startupanimation/tsrc/tsanimsvg/src/TSanimsvg.cpp
startupservices/startupanimation/tsrc/tsanimsvg/src/TSanimsvgBlocks.cpp
startupservices/startupanimation/tsrc/tsanimsvg/src/testwaiter.cpp
sysresmonitoring/oodmonitor/inc/Ood.h
sysresmonitoring/oodmonitor/oodmonitor2/inc/outofdiskmonitor.h
sysresmonitoring/oodmonitor/oodmonitor2/src/outofdiskmonitor.cpp
sysresmonitoring/oodmonitor/oodmonitor2/src/outofdisknotifyobserver.cpp
sysresmonitoring/oodmonitor/src/lafshut.cpp
sysresmonitoring/oodmonitor/tsrc/group/bld.inf
sysresmonitoring/oodmonitor/tsrc/group/readme.txt
sysresmonitoring/oodmonitor/tsrc/ut_oodmonitor/Bwins/ut_oodmonitoru.def
sysresmonitoring/oodmonitor/tsrc/ut_oodmonitor/eabi/ut_oodmonitoru.def
sysresmonitoring/oodmonitor/tsrc/ut_oodmonitor/group/bld.inf
sysresmonitoring/oodmonitor/tsrc/ut_oodmonitor/group/ut_oodmonitor.mmp
sysresmonitoring/oodmonitor/tsrc/ut_oodmonitor/group/ut_oodmonitor.pkg
sysresmonitoring/oodmonitor/tsrc/ut_oodmonitor/group/v2CTCHTML.rar
sysresmonitoring/oodmonitor/tsrc/ut_oodmonitor/inc/mockshutdowneventobserver.h
sysresmonitoring/oodmonitor/tsrc/ut_oodmonitor/inc/utoutofdiskpsobserver.h
sysresmonitoring/oodmonitor/tsrc/ut_oodmonitor/src/mockshutdowneventobserver.cpp
sysresmonitoring/oodmonitor/tsrc/ut_oodmonitor/src/ut_oodmonitor.cpp
sysresmonitoring/oodmonitor/tsrc/ut_oodmonitor/src/ut_oodmonitorCases.cpp
sysresmonitoring/oodmonitor/tsrc/ut_oodmonitor/src/utoutofdiskpsobserver.cpp
sysresmonitoring/oodmonitor/tsrc/ut_oodmonitorv1/Bmarm/ut_oodmonitorU.DEF
sysresmonitoring/oodmonitor/tsrc/ut_oodmonitorv1/Bwins/ut_oodmonitoru.def
sysresmonitoring/oodmonitor/tsrc/ut_oodmonitorv1/eabi/ut_oodmonitoru.def
sysresmonitoring/oodmonitor/tsrc/ut_oodmonitorv1/group/bld.inf
sysresmonitoring/oodmonitor/tsrc/ut_oodmonitorv1/group/ut_oodmonitor.pkg
sysresmonitoring/oodmonitor/tsrc/ut_oodmonitorv1/group/ut_oodmonitorv1.mmp
sysresmonitoring/oodmonitor/tsrc/ut_oodmonitorv1/group/v1CTCHTML.rar
sysresmonitoring/oodmonitor/tsrc/ut_oodmonitorv1/inc/mockshutdowneventobserver.h
sysresmonitoring/oodmonitor/tsrc/ut_oodmonitorv1/inc/ut_lafshutdownmanager.h
sysresmonitoring/oodmonitor/tsrc/ut_oodmonitorv1/inc/ut_oodmonitor_const.h
sysresmonitoring/oodmonitor/tsrc/ut_oodmonitorv1/inc/ut_oodmonitor_timer.h
sysresmonitoring/oodmonitor/tsrc/ut_oodmonitorv1/src/mockshutdowneventobserver.cpp
sysresmonitoring/oodmonitor/tsrc/ut_oodmonitorv1/src/ut_lafshutdownmanager.cpp
sysresmonitoring/oodmonitor/tsrc/ut_oodmonitorv1/src/ut_oodmonitor.cpp
sysresmonitoring/oodmonitor/tsrc/ut_oodmonitorv1/src/ut_oodmonitorCases.cpp
sysresmonitoring/oodmonitor/tsrc/ut_oodmonitorv1/src/ut_oodmonitor_timer.cpp
sysresmonitoring/oodmonitor/tsrc/ut_oodsubscriber/Bwins/ut_oodsubscriberu.def
sysresmonitoring/oodmonitor/tsrc/ut_oodsubscriber/eabi/ut_oodsubscriberu.def
sysresmonitoring/oodmonitor/tsrc/ut_oodsubscriber/group/bld.inf
sysresmonitoring/oodmonitor/tsrc/ut_oodsubscriber/group/subcriberCTCHTML.rar
sysresmonitoring/oodmonitor/tsrc/ut_oodsubscriber/group/ut_oodsubscriber.mmp
sysresmonitoring/oodmonitor/tsrc/ut_oodsubscriber/group/ut_oodsubscriber.pkg
sysresmonitoring/oodmonitor/tsrc/ut_oodsubscriber/inc/utoodsubscriberconst.h
sysresmonitoring/oodmonitor/tsrc/ut_oodsubscriber/src/mockoutofdiskpsobserver.cpp
sysresmonitoring/oodmonitor/tsrc/ut_oodsubscriber/src/ut_oodsubscriber.cpp
sysresmonitoring/oodmonitor/tsrc/ut_oodsubscriber/src/ut_oodsubscriberCases.cpp
sysresmonitoring/oommonitor/inc/oommemorymonitor.h
sysresmonitoring/oommonitor/inc/oommonitorclientserver.h
sysresmonitoring/oommonitor/src/oomactionlist.cpp
sysresmonitoring/oommonitor/src/oomconfig.cpp
sysresmonitoring/oommonitor/src/oommemorymonitor.cpp
sysresmonitoring/oommonitor/src/oommonitor.cpp
sysresmonitoring/oommonitor/tsrc/appfortest/group/appfortest.mmp
sysresmonitoring/oommonitor/tsrc/appfortest/group/bld.inf
sysresmonitoring/oommonitor/tsrc/appfortest/inc/controler.h
sysresmonitoring/oommonitor/tsrc/appfortest/inc/eventmonitor.h
sysresmonitoring/oommonitor/tsrc/appfortest/inc/redrawmonitor.h
sysresmonitoring/oommonitor/tsrc/appfortest/rom/appfortest.iby
sysresmonitoring/oommonitor/tsrc/appfortest/sis/appfortest_eka2.pkg
sysresmonitoring/oommonitor/tsrc/appfortest/src/controler.cpp
sysresmonitoring/oommonitor/tsrc/appfortest/src/eventmonitor.cpp
sysresmonitoring/oommonitor/tsrc/appfortest/src/main.cpp
sysresmonitoring/oommonitor/tsrc/appfortest/src/redrawmonitor.cpp
sysresmonitoring/oommonitor/tsrc/group/bld.inf
sysresmonitoring/oommonitor/tsrc/oomtest/t_oomdummyapp/group/t_oomdummyapp.mmp
sysresmonitoring/oommonitor/tsrc/oomtest/t_oomdummyapp/inc/t_oomdummyappAppUi.h
sysresmonitoring/oommonitor/tsrc/oomtest/t_oomdummyapp/src/t_oomdummyappAppUi.cpp
sysresmonitoring/oommonitor/tsrc/oomtest/t_oomharness_stif/group/t_oomharness_stif.mmp
sysresmonitoring/oommonitor/tsrc/readme for oommonitor and others.txt
sysresmonitoring/oommonitor/tsrc/readme for utooomclientrequestqueue and utoomconfigparser.txt
sysresmonitoring/oommonitor/tsrc/ut_oom/Bwins/ut_oomu.def
sysresmonitoring/oommonitor/tsrc/ut_oom/eabi/ut_oomu.def
sysresmonitoring/oommonitor/tsrc/ut_oom/group/bld.inf
sysresmonitoring/oommonitor/tsrc/ut_oom/group/ut_oom.mmp
sysresmonitoring/oommonitor/tsrc/ut_oom/group/ut_oom.pkg
sysresmonitoring/oommonitor/tsrc/ut_oom/group/ut_oomlib.mmp
sysresmonitoring/oommonitor/tsrc/ut_oom/inc/mock_oomactionlist.h
sysresmonitoring/oommonitor/tsrc/ut_oom/inc/oomfriendclass.h
sysresmonitoring/oommonitor/tsrc/ut_oom/inc/ut_oom.h
sysresmonitoring/oommonitor/tsrc/ut_oom/inc/ut_oomtesttimer.h
sysresmonitoring/oommonitor/tsrc/ut_oom/src/mock_oomactionlist.cpp
sysresmonitoring/oommonitor/tsrc/ut_oom/src/oomfriendclass.cpp
sysresmonitoring/oommonitor/tsrc/ut_oom/src/ut_oom.cpp
sysresmonitoring/oommonitor/tsrc/ut_oom/src/ut_oomcases.cpp
sysresmonitoring/oommonitor/tsrc/ut_oom/src/ut_oomtesttimer.cpp
sysresmonitoring/oommonitor/tsrc/ut_oom/ut_oomplugin/data/ut_oomplugin.rss
sysresmonitoring/oommonitor/tsrc/ut_oom/ut_oomplugin/group/ut_oomplugin.mmp
sysresmonitoring/oommonitor/tsrc/ut_oom/ut_oomplugin/inc/ut_oomplugin.h
sysresmonitoring/oommonitor/tsrc/ut_oom/ut_oomplugin/src/ut_oomplugin.cpp
sysresmonitoring/oommonitor/tsrc/ut_oom/ut_oomplugin2/data/ut_oomplugin2.rss
sysresmonitoring/oommonitor/tsrc/ut_oom/ut_oomplugin2/group/ut_oomplugin2.mmp
sysresmonitoring/oommonitor/tsrc/ut_oom/ut_oomplugin2/inc/ut_oomplugin2.h
sysresmonitoring/oommonitor/tsrc/ut_oom/ut_oomplugin2/src/ut_oomplugin2.cpp
sysresmonitoring/oommonitor/tsrc/ut_oom_closeapp/Bwins/ut_oom_closeappu.def
sysresmonitoring/oommonitor/tsrc/ut_oom_closeapp/eabi/ut_oom_closeappu.def
sysresmonitoring/oommonitor/tsrc/ut_oom_closeapp/group/bld.inf
sysresmonitoring/oommonitor/tsrc/ut_oom_closeapp/group/ut_oom_closeapp.mmp
sysresmonitoring/oommonitor/tsrc/ut_oom_closeapp/group/ut_oom_closeapp.pkg
sysresmonitoring/oommonitor/tsrc/ut_oom_closeapp/inc/moc_oomactionlist.h
sysresmonitoring/oommonitor/tsrc/ut_oom_closeapp/inc/mytimer.h
sysresmonitoring/oommonitor/tsrc/ut_oom_closeapp/src/moc_oomactionlist.cpp
sysresmonitoring/oommonitor/tsrc/ut_oom_closeapp/src/moc_oommemorymonitor.cpp
sysresmonitoring/oommonitor/tsrc/ut_oom_closeapp/src/mytimer.cpp
sysresmonitoring/oommonitor/tsrc/ut_oom_closeapp/src/ut_oom_closeapp.cpp
sysresmonitoring/oommonitor/tsrc/ut_oom_closeapp/src/ut_oom_closeappCases.cpp
sysresmonitoring/oommonitor/tsrc/ut_oom_memorymonitor/Bmarm/ut_oom_memorymonitorU.DEF
sysresmonitoring/oommonitor/tsrc/ut_oom_memorymonitor/Bwins/ut_oom_memorymonitoru.def
sysresmonitoring/oommonitor/tsrc/ut_oom_memorymonitor/data/oomconfig.xml
sysresmonitoring/oommonitor/tsrc/ut_oom_memorymonitor/eabi/ut_oom_memorymonitoru.def
sysresmonitoring/oommonitor/tsrc/ut_oom_memorymonitor/group/bld.inf
sysresmonitoring/oommonitor/tsrc/ut_oom_memorymonitor/group/ut_oom_memorymonitor.mmp
sysresmonitoring/oommonitor/tsrc/ut_oom_memorymonitor/group/ut_oom_memorymonitor.pkg
sysresmonitoring/oommonitor/tsrc/ut_oom_memorymonitor/inc/diclog.h
sysresmonitoring/oommonitor/tsrc/ut_oom_memorymonitor/inc/globaldata.h
sysresmonitoring/oommonitor/tsrc/ut_oom_memorymonitor/inc/oomfriendclass.h
sysresmonitoring/oommonitor/tsrc/ut_oom_memorymonitor/src/diclog.cpp
sysresmonitoring/oommonitor/tsrc/ut_oom_memorymonitor/src/mockoomIdletimerule.cpp
sysresmonitoring/oommonitor/tsrc/ut_oom_memorymonitor/src/mockoomactionconfig.cpp
sysresmonitoring/oommonitor/tsrc/ut_oom_memorymonitor/src/mockoomactionlist.cpp
sysresmonitoring/oommonitor/tsrc/ut_oom_memorymonitor/src/mockoomapplicationconfig.cpp
sysresmonitoring/oommonitor/tsrc/ut_oom_memorymonitor/src/mockoomclientrequestqueue.cpp
sysresmonitoring/oommonitor/tsrc/ut_oom_memorymonitor/src/mockoomcloseappconfig.cpp
sysresmonitoring/oommonitor/tsrc/ut_oom_memorymonitor/src/mockoomconfig.cpp
sysresmonitoring/oommonitor/tsrc/ut_oom_memorymonitor/src/mockoomconfigparser.cpp
sysresmonitoring/oommonitor/tsrc/ut_oom_memorymonitor/src/mockoomforegroundrule.cpp
sysresmonitoring/oommonitor/tsrc/ut_oom_memorymonitor/src/mockoomglobalconfig.cpp
sysresmonitoring/oommonitor/tsrc/ut_oom_memorymonitor/src/mockoomlog.cpp
sysresmonitoring/oommonitor/tsrc/ut_oom_memorymonitor/src/mockoommemorymonitorserver.cpp
sysresmonitoring/oommonitor/tsrc/ut_oom_memorymonitor/src/mockoommemorymonitorsession.cpp
sysresmonitoring/oommonitor/tsrc/ut_oom_memorymonitor/src/mockoommonitorplugin.cpp
sysresmonitoring/oommonitor/tsrc/ut_oom_memorymonitor/src/mockoomoutofmemorywatcher.cpp
sysresmonitoring/oommonitor/tsrc/ut_oom_memorymonitor/src/mockoompanic.cpp
sysresmonitoring/oommonitor/tsrc/ut_oom_memorymonitor/src/mockoomrunpluginconfig.cpp
sysresmonitoring/oommonitor/tsrc/ut_oom_memorymonitor/src/mockoomwindowgrouplist.cpp
sysresmonitoring/oommonitor/tsrc/ut_oom_memorymonitor/src/mockoomwserveventreceiver.cpp
sysresmonitoring/oommonitor/tsrc/ut_oom_memorymonitor/src/oomfriendclass.cpp
sysresmonitoring/oommonitor/tsrc/ut_oom_memorymonitor/src/ut_oom_memorymonitor.cpp
sysresmonitoring/oommonitor/tsrc/ut_oom_memorymonitor/src/ut_oom_memorymonitorCases.cpp
sysresmonitoring/oommonitor/tsrc/ut_oomwatcher/.cproject
sysresmonitoring/oommonitor/tsrc/ut_oomwatcher/.project
sysresmonitoring/oommonitor/tsrc/ut_oomwatcher/Bwins/ut_oomwatcheru.def
sysresmonitoring/oommonitor/tsrc/ut_oomwatcher/eabi/ut_oomwatcheru.def
sysresmonitoring/oommonitor/tsrc/ut_oomwatcher/group/bld.inf
sysresmonitoring/oommonitor/tsrc/ut_oomwatcher/group/ut_mockoomserver.mmp
sysresmonitoring/oommonitor/tsrc/ut_oomwatcher/group/ut_oomwatcher.mmp
sysresmonitoring/oommonitor/tsrc/ut_oomwatcher/group/ut_oomwatcher.pkg
sysresmonitoring/oommonitor/tsrc/ut_oomwatcher/inc/ut_mockoomserver.h
sysresmonitoring/oommonitor/tsrc/ut_oomwatcher/inc/ut_oomwatchercommon.h
sysresmonitoring/oommonitor/tsrc/ut_oomwatcher/src/ut_mockoomclientrequestqueue.cpp
sysresmonitoring/oommonitor/tsrc/ut_oomwatcher/src/ut_mockoommonitor.cpp
sysresmonitoring/oommonitor/tsrc/ut_oomwatcher/src/ut_mockoomserver.cpp
sysresmonitoring/oommonitor/tsrc/ut_oomwatcher/src/ut_oomwatcher.cpp
sysresmonitoring/oommonitor/tsrc/ut_oomwatcher/src/ut_oomwatchercases.cpp
sysresmonitoring/oommonitor/tsrc/utoomclientrequestqueue/.cproject
sysresmonitoring/oommonitor/tsrc/utoomclientrequestqueue/.project
sysresmonitoring/oommonitor/tsrc/utoomclientrequestqueue/Bwins/utoomclientrequestqueueu.def
sysresmonitoring/oommonitor/tsrc/utoomclientrequestqueue/eabi/mockoommemorymonitorserveru.def
sysresmonitoring/oommonitor/tsrc/utoomclientrequestqueue/eabi/utoomclientrequestqueueu.def
sysresmonitoring/oommonitor/tsrc/utoomclientrequestqueue/group/bld.inf
sysresmonitoring/oommonitor/tsrc/utoomclientrequestqueue/group/mockoommemorymonitorserver.mmp
sysresmonitoring/oommonitor/tsrc/utoomclientrequestqueue/group/utoomclientrequestqueue.mmp
sysresmonitoring/oommonitor/tsrc/utoomclientrequestqueue/group/utoomclientrequestqueue.pkg
sysresmonitoring/oommonitor/tsrc/utoomclientrequestqueue/inc/utoommockclientserver.h
sysresmonitoring/oommonitor/tsrc/utoomclientrequestqueue/src/mockoommemorymonitor.cpp
sysresmonitoring/oommonitor/tsrc/utoomclientrequestqueue/src/utoomclientrequestqueue.cpp
sysresmonitoring/oommonitor/tsrc/utoomclientrequestqueue/src/utoomclientrequestqueueCases.cpp
sysresmonitoring/oommonitor/tsrc/utoomconfigparser/.cproject
sysresmonitoring/oommonitor/tsrc/utoomconfigparser/.project
sysresmonitoring/oommonitor/tsrc/utoomconfigparser/Bmarm/utoomconfigparserU.DEF
sysresmonitoring/oommonitor/tsrc/utoomconfigparser/Bwins/utoomconfigparseru.def
sysresmonitoring/oommonitor/tsrc/utoomconfigparser/eabi/utoomconfigparseru.def
sysresmonitoring/oommonitor/tsrc/utoomconfigparser/group/bld.inf
sysresmonitoring/oommonitor/tsrc/utoomconfigparser/group/utoomconfigparser.mmp
sysresmonitoring/oommonitor/tsrc/utoomconfigparser/group/utoomconfigparser.pkg
sysresmonitoring/oommonitor/tsrc/utoomconfigparser/src/utoomconfigparser.cpp
sysresmonitoring/oommonitor/tsrc/utoomconfigparser/src/utoomconfigparserCases.cpp
systemsettings/accindicatorplugin/inc/accindicator.h
systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/Bmarm/utaccindicatorpluginU.DEF
systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/Bwins/utaccindicatorpluginu.def
systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/CTCHTML/blue.gif
systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/CTCHTML/ctc.css
systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/CTCHTML/ctc.js
systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/CTCHTML/index.html
systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/CTCHTML/indexA.html
systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/CTCHTML/indexB1.html
systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/CTCHTML/indexB2.html
systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/CTCHTML/indexC.html
systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/CTCHTML/indexD1.html
systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/CTCHTML/indexD2.html
systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/CTCHTML/indexD3.html
systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/CTCHTML/indexD4.html
systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/CTCHTML/indexE.html
systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/CTCHTML/indexF.html
systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/CTCHTML/indexG.html
systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/CTCHTML/indexH.html
systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/CTCHTML/red.gif
systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/CTCHTML/sorttable.js
systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/CTCHTML/white.gif
systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/CTCHTML/yellow.gif
systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/bld.inf
systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/eabi/utaccindicatorpluginu.def
systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/group/bld.inf
systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/group/utaccindicatorplugin.mmp
systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/group/utaccindicatorplugin.pkg
systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/group/utaccindicatorplugin_nrm.mmp
systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/inc/UTSlot.h
systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/src/UTSlot.cpp
systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/src/utaccindicatorplugin.cpp
systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/src/utaccindicatorpluginCases.cpp
systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/utaccindicatorplugin.pro
tzservices/tzlocrscfactory/res/timezonegroups.rss
tzservices/tzserver/Server/Source/timezoneconfig.cpp
--- a/appfw/viewserver/group/bld.inf	Wed Sep 29 15:24:56 2010 +0300
+++ b/appfw/viewserver/group/bld.inf	Thu Oct 07 06:25:45 2010 +0300
@@ -1,4 +1,4 @@
-// Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 1999-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"
@@ -21,7 +21,7 @@
 */
 
 // include test code
-#include "../test/group/BLD.INF"
+#include "../test/group/bld.inf"
 
 PRJ_EXPORTS
 ../inc/VWSDEF.H SYMBIAN_MW_LAYER_PUBLIC_EXPORT_PATH(vwsdef.h)
--- a/appsupport_pub/network_status_api/tsrc/bc/networkstatus/group/NetworkStatusTest.mmp	Wed Sep 29 15:24:56 2010 +0300
+++ b/appsupport_pub/network_status_api/tsrc/bc/networkstatus/group/NetworkStatusTest.mmp	Thu Oct 07 06:25:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2002-10 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -39,7 +39,7 @@
 MW_LAYER_SYSTEMINCLUDE
 
 LIBRARY         euser.lib
-LIBRARY         stiftestinterface.lib
+LIBRARY         StifTestInterface.lib
 LIBRARY			centralrepository.lib
 
 LANG            SC
--- a/coreapplicationuis/Rfs/Plugins/rfscustcmd/tsrc/rfscustcmdtest/group/rfscustcmdtest.mmp	Wed Sep 29 15:24:56 2010 +0300
+++ b/coreapplicationuis/Rfs/Plugins/rfscustcmd/tsrc/rfscustcmdtest/group/rfscustcmdtest.mmp	Thu Oct 07 06:25:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009-10 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -35,6 +35,6 @@
 MW_LAYER_SYSTEMINCLUDE
 
 LIBRARY         euser.lib
-LIBRARY         stiftestinterface.lib
+LIBRARY         StifTestInterface.lib
 LIBRARY         rfscustcmd.lib
 LIBRARY         efsrv.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/SysAp/Data/qtg_anim_battery_charging_01.svg	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
+	<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
+]>
+<svg version="1.1"
+	 xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+	 x="0px" y="0px" width="228px" height="228px" viewBox="0 0 228 228" enable-background="new 0 0 228 228" xml:space="preserve">
+<defs>
+</defs>
+<rect fill="#000000" width="228" height="228"/>
+<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="96.6294" y1="20" x2="131.3696" y2="20">
+	<stop  offset="0.2335" style="stop-color:#9C9C9C"/>
+	<stop  offset="0.7" style="stop-color:#1A1A1A"/>
+	<stop  offset="0.8922" style="stop-color:#656565"/>
+	<stop  offset="1" style="stop-color:#272727"/>
+</linearGradient>
+<path fill="url(#SVGID_1_)" d="M131.37,24.5v-6c0-1.658-1.342-3-3-3h-28.74c-1.656,0-3,1.342-3,3v6H131.37z"/>
+<radialGradient id="SVGID_2_" cx="113.9995" cy="17.5" r="12.3637" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.6108" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<path fill-opacity="0.5" fill="url(#SVGID_2_)" d="M128.37,15.5h-28.74c-1.656,0-3,1.342-3,3v1c0-1.658,1.344-3,3-3h28.74
+	c1.658,0,3,1.342,3,3v-1C131.37,16.842,130.028,15.5,128.37,15.5z"/>
+<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="68.9995" y1="118.5" x2="158.9995" y2="118.5">
+	<stop  offset="0.006" style="stop-color:#262626"/>
+	<stop  offset="0.0719" style="stop-color:#4D4D4D"/>
+	<stop  offset="0.2335" style="stop-color:#CCCCCC"/>
+	<stop  offset="0.7" style="stop-color:#1A1A1A"/>
+	<stop  offset="0.8922" style="stop-color:#656565"/>
+	<stop  offset="1" style="stop-color:#262626"/>
+</linearGradient>
+<path fill="url(#SVGID_3_)" d="M72,212.5c-1.656,0-3-1.344-3-3v-182c0-1.657,1.344-3,3-3h84c1.658,0,3,1.343,3,3v182
+	c0,1.656-1.342,3-3,3H72z"/>
+<radialGradient id="SVGID_4_" cx="113.9995" cy="26.5" r="45.5004" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.6108" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<path fill-opacity="0.5" fill="url(#SVGID_4_)" d="M156,24.5H72c-1.656,0-3,1.343-3,3v1c0-1.657,1.344-3,3-3h84c1.658,0,3,1.343,3,3v-1
+	C159,25.843,157.658,24.5,156,24.5z"/>
+<rect x="96.629" y="23.5" fill-opacity="0.35" width="34.74" height="1"/>
+<rect x="96.629" y="22.5" fill-opacity="0.15" width="34.74" height="1"/>
+<linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="68.9995" y1="118.5" x2="158.9995" y2="118.5">
+	<stop  offset="0.0061" style="stop-color:#49494A"/>
+	<stop  offset="0.6545" style="stop-color:#121212"/>
+	<stop  offset="1" style="stop-color:#49494A"/>
+</linearGradient>
+<rect x="69" y="34.5" fill="url(#SVGID_5_)" width="90" height="168"/>
+<linearGradient id="SVGID_6_" gradientUnits="userSpaceOnUse" x1="113.9995" y1="37.917" x2="113.9995" y2="201.0923">
+	<stop  offset="0.0061" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.125" style="stop-color:#999999"/>
+	<stop  offset="0.25" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.375" style="stop-color:#999999"/>
+	<stop  offset="0.5" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.625" style="stop-color:#999999"/>
+	<stop  offset="0.75" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.875" style="stop-color:#999999"/>
+	<stop  offset="1" style="stop-color:#FFFFFF"/>
+</linearGradient>
+<rect x="69" y="35" fill-opacity="0.1" fill="url(#SVGID_6_)" width="90" height="167.5"/>
+<linearGradient id="SVGID_7_" gradientUnits="userSpaceOnUse" x1="93.9995" y1="21.564" x2="93.9995" y2="197.6018">
+	<stop  offset="0" style="stop-color:#FBFBFF"/>
+	<stop  offset="1" style="stop-color:#FFFFFF;stop-opacity:0.2"/>
+</linearGradient>
+<rect x="79" y="24.5" fill-opacity="0.5" fill="url(#SVGID_7_)" width="30" height="188"/>
+<rect x="136" y="24.5" fill-opacity="0.15" fill="#FFFFFF" width="14" height="188"/>
+<linearGradient id="SVGID_8_" gradientUnits="userSpaceOnUse" x1="68.9995" y1="34" x2="158.9995" y2="34">
+	<stop  offset="0" style="stop-color:#000000"/>
+	<stop  offset="0.5" style="stop-color:#333333"/>
+	<stop  offset="1" style="stop-color:#000000"/>
+</linearGradient>
+<rect x="69" y="33.5" fill="url(#SVGID_8_)" width="90" height="1"/>
+<radialGradient id="SVGID_9_" cx="113.9995" cy="35" r="48.3338" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.6108" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<rect x="69" y="34.5" fill-opacity="0.75" fill="url(#SVGID_9_)" width="90" height="1"/>
+<radialGradient id="SVGID_10_" cx="113.9995" cy="203" r="45.0001" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.7" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<rect x="69" y="202.5" fill-opacity="0.75" fill="url(#SVGID_10_)" width="90" height="1"/>
+<linearGradient id="SVGID_11_" gradientUnits="userSpaceOnUse" x1="68.9995" y1="202" x2="158.9995" y2="202">
+	<stop  offset="0" style="stop-color:#000000"/>
+	<stop  offset="0.5" style="stop-color:#666666"/>
+	<stop  offset="1" style="stop-color:#151515"/>
+</linearGradient>
+<rect x="69" y="201.5" fill="url(#SVGID_11_)" width="90" height="1"/>
+<rect x="121" y="15.5" fill-opacity="0.15" fill="#FFFFFF" width="7" height="9"/>
+<rect x="101" y="15.5" fill-opacity="0.25" fill="#FFFFFF" width="9" height="9"/>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/SysAp/Data/qtg_anim_battery_charging_02.svg	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
+	<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
+]>
+<svg version="1.1"
+	 xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+	 x="0px" y="0px" width="228px" height="228px" viewBox="0 0 228 228" enable-background="new 0 0 228 228" xml:space="preserve">
+<defs>
+</defs>
+<rect fill="#000000" width="228" height="228"/>
+<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="96.6294" y1="20" x2="131.3696" y2="20">
+	<stop  offset="0.2335" style="stop-color:#9C9C9C"/>
+	<stop  offset="0.7" style="stop-color:#1A1A1A"/>
+	<stop  offset="0.8922" style="stop-color:#656565"/>
+	<stop  offset="1" style="stop-color:#272727"/>
+</linearGradient>
+<path fill="url(#SVGID_1_)" d="M131.37,24.5v-6c0-1.658-1.342-3-3-3h-28.74c-1.656,0-3,1.342-3,3v6H131.37z"/>
+<radialGradient id="SVGID_2_" cx="113.9995" cy="17.5" r="12.3637" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.6108" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<path fill-opacity="0.5" fill="url(#SVGID_2_)" d="M128.37,15.5h-28.74c-1.656,0-3,1.342-3,3v1c0-1.658,1.344-3,3-3h28.74
+	c1.658,0,3,1.342,3,3v-1C131.37,16.842,130.028,15.5,128.37,15.5z"/>
+<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="68.9995" y1="118.5" x2="158.9995" y2="118.5">
+	<stop  offset="0.006" style="stop-color:#262626"/>
+	<stop  offset="0.0719" style="stop-color:#4D4D4D"/>
+	<stop  offset="0.2335" style="stop-color:#CCCCCC"/>
+	<stop  offset="0.7" style="stop-color:#1A1A1A"/>
+	<stop  offset="0.8922" style="stop-color:#656565"/>
+	<stop  offset="1" style="stop-color:#262626"/>
+</linearGradient>
+<path fill="url(#SVGID_3_)" d="M72,212.5c-1.656,0-3-1.344-3-3v-182c0-1.657,1.344-3,3-3h84c1.658,0,3,1.343,3,3v182
+	c0,1.656-1.342,3-3,3H72z"/>
+<radialGradient id="SVGID_4_" cx="113.9995" cy="26.5" r="45.5004" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.6108" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<path fill-opacity="0.5" fill="url(#SVGID_4_)" d="M156,24.5H72c-1.656,0-3,1.343-3,3v1c0-1.657,1.344-3,3-3h84c1.658,0,3,1.343,3,3v-1
+	C159,25.843,157.658,24.5,156,24.5z"/>
+<rect x="96.629" y="23.5" fill-opacity="0.35" width="34.74" height="1"/>
+<rect x="96.629" y="22.5" fill-opacity="0.15" width="34.74" height="1"/>
+<linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="68.9995" y1="118.5" x2="158.9995" y2="118.5">
+	<stop  offset="0.0061" style="stop-color:#49494A"/>
+	<stop  offset="0.6545" style="stop-color:#121212"/>
+	<stop  offset="1" style="stop-color:#49494A"/>
+</linearGradient>
+<rect x="69" y="34.5" fill="url(#SVGID_5_)" width="90" height="168"/>
+<linearGradient id="SVGID_6_" gradientUnits="userSpaceOnUse" x1="68.9995" y1="193.5" x2="158.9995" y2="193.5">
+	<stop  offset="0" style="stop-color:#5AA913"/>
+	<stop  offset="0.3" style="stop-color:#B3F241"/>
+	<stop  offset="0.7006" style="stop-color:#58A813"/>
+	<stop  offset="0.8563" style="stop-color:#AAD774"/>
+	<stop  offset="1" style="stop-color:#8FD31D"/>
+</linearGradient>
+<rect x="69" y="184.5" fill="url(#SVGID_6_)" width="90" height="18"/>
+<linearGradient id="SVGID_7_" gradientUnits="userSpaceOnUse" x1="113.9995" y1="37.917" x2="113.9995" y2="201.0923">
+	<stop  offset="0.0061" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.125" style="stop-color:#999999"/>
+	<stop  offset="0.25" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.375" style="stop-color:#999999"/>
+	<stop  offset="0.5" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.625" style="stop-color:#999999"/>
+	<stop  offset="0.75" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.875" style="stop-color:#999999"/>
+	<stop  offset="1" style="stop-color:#FFFFFF"/>
+</linearGradient>
+<rect x="69" y="35" fill-opacity="0.1" fill="url(#SVGID_7_)" width="90" height="167.5"/>
+<linearGradient id="SVGID_8_" gradientUnits="userSpaceOnUse" x1="93.9995" y1="21.564" x2="93.9995" y2="197.6018">
+	<stop  offset="0" style="stop-color:#FBFBFF"/>
+	<stop  offset="1" style="stop-color:#FFFFFF;stop-opacity:0.2"/>
+</linearGradient>
+<rect x="79" y="24.5" fill-opacity="0.5" fill="url(#SVGID_8_)" width="30" height="188"/>
+<rect x="136" y="24.5" fill-opacity="0.15" fill="#FFFFFF" width="14" height="188"/>
+<linearGradient id="SVGID_9_" gradientUnits="userSpaceOnUse" x1="68.9995" y1="34" x2="158.9995" y2="34">
+	<stop  offset="0" style="stop-color:#000000"/>
+	<stop  offset="0.5" style="stop-color:#333333"/>
+	<stop  offset="1" style="stop-color:#000000"/>
+</linearGradient>
+<rect x="69" y="33.5" fill="url(#SVGID_9_)" width="90" height="1"/>
+<radialGradient id="SVGID_10_" cx="113.9995" cy="35" r="48.3338" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.6108" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<rect x="69" y="34.5" fill-opacity="0.75" fill="url(#SVGID_10_)" width="90" height="1"/>
+<radialGradient id="SVGID_11_" cx="113.9995" cy="203" r="45.0001" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.7" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<rect x="69" y="202.5" fill-opacity="0.75" fill="url(#SVGID_11_)" width="90" height="1"/>
+<linearGradient id="SVGID_12_" gradientUnits="userSpaceOnUse" x1="68.9995" y1="202" x2="158.9995" y2="202">
+	<stop  offset="0" style="stop-color:#000000"/>
+	<stop  offset="0.5" style="stop-color:#666666"/>
+	<stop  offset="1" style="stop-color:#151515"/>
+</linearGradient>
+<rect x="69" y="201.5" fill="url(#SVGID_12_)" width="90" height="1"/>
+<rect x="121" y="15.5" fill-opacity="0.15" fill="#FFFFFF" width="7" height="9"/>
+<rect x="101" y="15.5" fill-opacity="0.25" fill="#FFFFFF" width="9" height="9"/>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/SysAp/Data/qtg_anim_battery_charging_03.svg	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
+	<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
+]>
+<svg version="1.1"
+	 xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+	 x="0px" y="0px" width="228px" height="228px" viewBox="0 0 228 228" enable-background="new 0 0 228 228" xml:space="preserve">
+<defs>
+</defs>
+<rect fill="#000000" width="228" height="228"/>
+<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="96.6294" y1="20" x2="131.3696" y2="20">
+	<stop  offset="0.2335" style="stop-color:#9C9C9C"/>
+	<stop  offset="0.7" style="stop-color:#1A1A1A"/>
+	<stop  offset="0.8922" style="stop-color:#656565"/>
+	<stop  offset="1" style="stop-color:#272727"/>
+</linearGradient>
+<path fill="url(#SVGID_1_)" d="M131.37,24.5v-6c0-1.658-1.342-3-3-3h-28.74c-1.656,0-3,1.342-3,3v6H131.37z"/>
+<radialGradient id="SVGID_2_" cx="113.9995" cy="17.5" r="12.3637" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.6108" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<path fill-opacity="0.5" fill="url(#SVGID_2_)" d="M128.37,15.5h-28.74c-1.656,0-3,1.342-3,3v1c0-1.658,1.344-3,3-3h28.74
+	c1.658,0,3,1.342,3,3v-1C131.37,16.842,130.028,15.5,128.37,15.5z"/>
+<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="68.9995" y1="118.5" x2="158.9995" y2="118.5">
+	<stop  offset="0.006" style="stop-color:#262626"/>
+	<stop  offset="0.0719" style="stop-color:#4D4D4D"/>
+	<stop  offset="0.2335" style="stop-color:#CCCCCC"/>
+	<stop  offset="0.7" style="stop-color:#1A1A1A"/>
+	<stop  offset="0.8922" style="stop-color:#656565"/>
+	<stop  offset="1" style="stop-color:#262626"/>
+</linearGradient>
+<path fill="url(#SVGID_3_)" d="M72,212.5c-1.656,0-3-1.344-3-3v-182c0-1.657,1.344-3,3-3h84c1.658,0,3,1.343,3,3v182
+	c0,1.656-1.342,3-3,3H72z"/>
+<radialGradient id="SVGID_4_" cx="113.9995" cy="26.5" r="45.5004" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.6108" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<path fill-opacity="0.5" fill="url(#SVGID_4_)" d="M156,24.5H72c-1.656,0-3,1.343-3,3v1c0-1.657,1.344-3,3-3h84c1.658,0,3,1.343,3,3v-1
+	C159,25.843,157.658,24.5,156,24.5z"/>
+<rect x="96.629" y="23.5" fill-opacity="0.35" width="34.74" height="1"/>
+<rect x="96.629" y="22.5" fill-opacity="0.15" width="34.74" height="1"/>
+<linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="68.9995" y1="118.5" x2="158.9995" y2="118.5">
+	<stop  offset="0.0061" style="stop-color:#49494A"/>
+	<stop  offset="0.6545" style="stop-color:#121212"/>
+	<stop  offset="1" style="stop-color:#49494A"/>
+</linearGradient>
+<rect x="69" y="34.5" fill="url(#SVGID_5_)" width="90" height="168"/>
+<linearGradient id="SVGID_6_" gradientUnits="userSpaceOnUse" x1="68.9995" y1="184.5" x2="158.9995" y2="184.5">
+	<stop  offset="0" style="stop-color:#5AA913"/>
+	<stop  offset="0.3" style="stop-color:#B3F241"/>
+	<stop  offset="0.7006" style="stop-color:#58A813"/>
+	<stop  offset="0.8563" style="stop-color:#AAD774"/>
+	<stop  offset="1" style="stop-color:#8FD31D"/>
+</linearGradient>
+<rect x="69" y="166.5" fill="url(#SVGID_6_)" width="90" height="36"/>
+<linearGradient id="SVGID_7_" gradientUnits="userSpaceOnUse" x1="113.9995" y1="37.917" x2="113.9995" y2="201.0923">
+	<stop  offset="0.0061" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.125" style="stop-color:#999999"/>
+	<stop  offset="0.25" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.375" style="stop-color:#999999"/>
+	<stop  offset="0.5" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.625" style="stop-color:#999999"/>
+	<stop  offset="0.75" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.875" style="stop-color:#999999"/>
+	<stop  offset="1" style="stop-color:#FFFFFF"/>
+</linearGradient>
+<rect x="69" y="35" fill-opacity="0.1" fill="url(#SVGID_7_)" width="90" height="167.5"/>
+<linearGradient id="SVGID_8_" gradientUnits="userSpaceOnUse" x1="93.9995" y1="21.564" x2="93.9995" y2="197.6018">
+	<stop  offset="0" style="stop-color:#FBFBFF"/>
+	<stop  offset="1" style="stop-color:#FFFFFF;stop-opacity:0.2"/>
+</linearGradient>
+<rect x="79" y="24.5" fill-opacity="0.5" fill="url(#SVGID_8_)" width="30" height="188"/>
+<rect x="136" y="24.5" fill-opacity="0.15" fill="#FFFFFF" width="14" height="188"/>
+<linearGradient id="SVGID_9_" gradientUnits="userSpaceOnUse" x1="68.9995" y1="34" x2="158.9995" y2="34">
+	<stop  offset="0" style="stop-color:#000000"/>
+	<stop  offset="0.5" style="stop-color:#333333"/>
+	<stop  offset="1" style="stop-color:#000000"/>
+</linearGradient>
+<rect x="69" y="33.5" fill="url(#SVGID_9_)" width="90" height="1"/>
+<radialGradient id="SVGID_10_" cx="113.9995" cy="35" r="48.3338" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.6108" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<rect x="69" y="34.5" fill-opacity="0.75" fill="url(#SVGID_10_)" width="90" height="1"/>
+<radialGradient id="SVGID_11_" cx="113.9995" cy="203" r="45.0001" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.7" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<rect x="69" y="202.5" fill-opacity="0.75" fill="url(#SVGID_11_)" width="90" height="1"/>
+<linearGradient id="SVGID_12_" gradientUnits="userSpaceOnUse" x1="68.9995" y1="202" x2="158.9995" y2="202">
+	<stop  offset="0" style="stop-color:#000000"/>
+	<stop  offset="0.5" style="stop-color:#666666"/>
+	<stop  offset="1" style="stop-color:#151515"/>
+</linearGradient>
+<rect x="69" y="201.5" fill="url(#SVGID_12_)" width="90" height="1"/>
+<rect x="121" y="15.5" fill-opacity="0.15" fill="#FFFFFF" width="7" height="9"/>
+<rect x="101" y="15.5" fill-opacity="0.25" fill="#FFFFFF" width="9" height="9"/>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/SysAp/Data/qtg_anim_battery_charging_04.svg	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
+	<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
+]>
+<svg version="1.1"
+	 xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+	 x="0px" y="0px" width="228px" height="228px" viewBox="0 0 228 228" enable-background="new 0 0 228 228" xml:space="preserve">
+<defs>
+</defs>
+<rect fill="#000000" width="228" height="228"/>
+<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="96.6284" y1="20" x2="131.3687" y2="20">
+	<stop  offset="0.2335" style="stop-color:#9C9C9C"/>
+	<stop  offset="0.7" style="stop-color:#1A1A1A"/>
+	<stop  offset="0.8922" style="stop-color:#656565"/>
+	<stop  offset="1" style="stop-color:#272727"/>
+</linearGradient>
+<path fill="url(#SVGID_1_)" d="M131.369,24.5v-6c0-1.658-1.342-3-3-3h-28.74c-1.656,0-3,1.342-3,3v6H131.369z"/>
+<radialGradient id="SVGID_2_" cx="113.9985" cy="17.5" r="12.3637" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.6108" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<path fill-opacity="0.5" fill="url(#SVGID_2_)" d="M128.369,15.5h-28.74c-1.656,0-3,1.342-3,3v1c0-1.658,1.344-3,3-3h28.74
+	c1.658,0,3,1.342,3,3v-1C131.369,16.842,130.027,15.5,128.369,15.5z"/>
+<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="68.9995" y1="118.5" x2="158.9995" y2="118.5">
+	<stop  offset="0.006" style="stop-color:#262626"/>
+	<stop  offset="0.0719" style="stop-color:#4D4D4D"/>
+	<stop  offset="0.2335" style="stop-color:#CCCCCC"/>
+	<stop  offset="0.7" style="stop-color:#1A1A1A"/>
+	<stop  offset="0.8922" style="stop-color:#656565"/>
+	<stop  offset="1" style="stop-color:#262626"/>
+</linearGradient>
+<path fill="url(#SVGID_3_)" d="M72,212.5c-1.656,0-3-1.344-3-3v-182c0-1.657,1.344-3,3-3h84c1.658,0,3,1.343,3,3v182
+	c0,1.656-1.342,3-3,3H72z"/>
+<radialGradient id="SVGID_4_" cx="113.9995" cy="26.5" r="45.5004" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.6108" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<path fill-opacity="0.5" fill="url(#SVGID_4_)" d="M156,24.5H72c-1.656,0-3,1.343-3,3v1c0-1.657,1.344-3,3-3h84c1.658,0,3,1.343,3,3v-1
+	C159,25.843,157.658,24.5,156,24.5z"/>
+<rect x="96.628" y="23.5" fill-opacity="0.35" width="34.74" height="1"/>
+<rect x="96.628" y="22.5" fill-opacity="0.15" width="34.74" height="1"/>
+<linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="68.9995" y1="118.5" x2="158.9995" y2="118.5">
+	<stop  offset="0.0061" style="stop-color:#49494A"/>
+	<stop  offset="0.6545" style="stop-color:#121212"/>
+	<stop  offset="1" style="stop-color:#49494A"/>
+</linearGradient>
+<rect x="69" y="34.5" fill="url(#SVGID_5_)" width="90" height="168"/>
+<linearGradient id="SVGID_6_" gradientUnits="userSpaceOnUse" x1="68.9995" y1="175.5" x2="158.9995" y2="175.5">
+	<stop  offset="0" style="stop-color:#5AA913"/>
+	<stop  offset="0.3" style="stop-color:#B3F241"/>
+	<stop  offset="0.7006" style="stop-color:#58A813"/>
+	<stop  offset="0.8563" style="stop-color:#AAD774"/>
+	<stop  offset="1" style="stop-color:#8FD31D"/>
+</linearGradient>
+<rect x="69" y="148.5" fill="url(#SVGID_6_)" width="90" height="54"/>
+<linearGradient id="SVGID_7_" gradientUnits="userSpaceOnUse" x1="113.9995" y1="37.917" x2="113.9995" y2="201.0923">
+	<stop  offset="0.0061" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.125" style="stop-color:#999999"/>
+	<stop  offset="0.25" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.375" style="stop-color:#999999"/>
+	<stop  offset="0.5" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.625" style="stop-color:#999999"/>
+	<stop  offset="0.75" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.875" style="stop-color:#999999"/>
+	<stop  offset="1" style="stop-color:#FFFFFF"/>
+</linearGradient>
+<rect x="69" y="35" fill-opacity="0.1" fill="url(#SVGID_7_)" width="90" height="167.5"/>
+<linearGradient id="SVGID_8_" gradientUnits="userSpaceOnUse" x1="93.9995" y1="21.564" x2="93.9995" y2="197.6018">
+	<stop  offset="0" style="stop-color:#FBFBFF"/>
+	<stop  offset="1" style="stop-color:#FFFFFF;stop-opacity:0.2"/>
+</linearGradient>
+<rect x="79" y="24.5" fill-opacity="0.5" fill="url(#SVGID_8_)" width="30" height="188"/>
+<rect x="136" y="24.5" fill-opacity="0.15" fill="#FFFFFF" width="14" height="188"/>
+<linearGradient id="SVGID_9_" gradientUnits="userSpaceOnUse" x1="68.9995" y1="34" x2="158.9995" y2="34">
+	<stop  offset="0" style="stop-color:#000000"/>
+	<stop  offset="0.5" style="stop-color:#333333"/>
+	<stop  offset="1" style="stop-color:#000000"/>
+</linearGradient>
+<rect x="69" y="33.5" fill="url(#SVGID_9_)" width="90" height="1"/>
+<radialGradient id="SVGID_10_" cx="113.9995" cy="35" r="48.3338" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.6108" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<rect x="69" y="34.5" fill-opacity="0.75" fill="url(#SVGID_10_)" width="90" height="1"/>
+<radialGradient id="SVGID_11_" cx="113.9995" cy="203" r="45.0001" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.7" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<rect x="69" y="202.5" fill-opacity="0.75" fill="url(#SVGID_11_)" width="90" height="1"/>
+<linearGradient id="SVGID_12_" gradientUnits="userSpaceOnUse" x1="68.9995" y1="202" x2="158.9995" y2="202">
+	<stop  offset="0" style="stop-color:#000000"/>
+	<stop  offset="0.5" style="stop-color:#666666"/>
+	<stop  offset="1" style="stop-color:#151515"/>
+</linearGradient>
+<rect x="69" y="201.5" fill="url(#SVGID_12_)" width="90" height="1"/>
+<rect x="121" y="15.5" fill-opacity="0.15" fill="#FFFFFF" width="7" height="9"/>
+<rect x="101" y="15.5" fill-opacity="0.25" fill="#FFFFFF" width="9" height="9"/>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/SysAp/Data/qtg_anim_battery_charging_05.svg	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
+	<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
+]>
+<svg version="1.1"
+	 xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+	 x="0px" y="0px" width="228px" height="228px" viewBox="0 0 228 228" enable-background="new 0 0 228 228" xml:space="preserve">
+<defs>
+</defs>
+<rect fill="#000000" width="228" height="228"/>
+<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="96.6294" y1="20" x2="131.3696" y2="20">
+	<stop  offset="0.2335" style="stop-color:#9C9C9C"/>
+	<stop  offset="0.7" style="stop-color:#1A1A1A"/>
+	<stop  offset="0.8922" style="stop-color:#656565"/>
+	<stop  offset="1" style="stop-color:#272727"/>
+</linearGradient>
+<path fill="url(#SVGID_1_)" d="M131.37,24.5v-6c0-1.658-1.342-3-3-3h-28.74c-1.656,0-3,1.342-3,3v6H131.37z"/>
+<radialGradient id="SVGID_2_" cx="113.9995" cy="17.5" r="12.3637" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.6108" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<path fill-opacity="0.5" fill="url(#SVGID_2_)" d="M128.37,15.5h-28.74c-1.656,0-3,1.342-3,3v1c0-1.658,1.344-3,3-3h28.74
+	c1.658,0,3,1.342,3,3v-1C131.37,16.842,130.028,15.5,128.37,15.5z"/>
+<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="68.9995" y1="118.5" x2="158.9995" y2="118.5">
+	<stop  offset="0.006" style="stop-color:#262626"/>
+	<stop  offset="0.0719" style="stop-color:#4D4D4D"/>
+	<stop  offset="0.2335" style="stop-color:#CCCCCC"/>
+	<stop  offset="0.7" style="stop-color:#1A1A1A"/>
+	<stop  offset="0.8922" style="stop-color:#656565"/>
+	<stop  offset="1" style="stop-color:#262626"/>
+</linearGradient>
+<path fill="url(#SVGID_3_)" d="M72,212.5c-1.656,0-3-1.344-3-3v-182c0-1.657,1.344-3,3-3h84c1.658,0,3,1.343,3,3v182
+	c0,1.656-1.342,3-3,3H72z"/>
+<radialGradient id="SVGID_4_" cx="113.9995" cy="26.5" r="45.5004" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.6108" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<path fill-opacity="0.5" fill="url(#SVGID_4_)" d="M156,24.5H72c-1.656,0-3,1.343-3,3v1c0-1.657,1.344-3,3-3h84c1.658,0,3,1.343,3,3v-1
+	C159,25.843,157.658,24.5,156,24.5z"/>
+<rect x="96.629" y="23.5" fill-opacity="0.35" width="34.74" height="1"/>
+<rect x="96.629" y="22.5" fill-opacity="0.15" width="34.74" height="1"/>
+<linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="68.9995" y1="118.5" x2="158.9995" y2="118.5">
+	<stop  offset="0.0061" style="stop-color:#49494A"/>
+	<stop  offset="0.6545" style="stop-color:#121212"/>
+	<stop  offset="1" style="stop-color:#49494A"/>
+</linearGradient>
+<rect x="69" y="34.5" fill="url(#SVGID_5_)" width="90" height="168"/>
+<linearGradient id="SVGID_6_" gradientUnits="userSpaceOnUse" x1="68.9995" y1="166.5" x2="158.9995" y2="166.5">
+	<stop  offset="0" style="stop-color:#5AA913"/>
+	<stop  offset="0.3" style="stop-color:#B3F241"/>
+	<stop  offset="0.7006" style="stop-color:#58A813"/>
+	<stop  offset="0.8563" style="stop-color:#AAD774"/>
+	<stop  offset="1" style="stop-color:#8FD31D"/>
+</linearGradient>
+<rect x="69" y="130.5" fill="url(#SVGID_6_)" width="90" height="72"/>
+<linearGradient id="SVGID_7_" gradientUnits="userSpaceOnUse" x1="113.9995" y1="37.917" x2="113.9995" y2="201.0923">
+	<stop  offset="0.0061" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.125" style="stop-color:#999999"/>
+	<stop  offset="0.25" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.375" style="stop-color:#999999"/>
+	<stop  offset="0.5" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.625" style="stop-color:#999999"/>
+	<stop  offset="0.75" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.875" style="stop-color:#999999"/>
+	<stop  offset="1" style="stop-color:#FFFFFF"/>
+</linearGradient>
+<rect x="69" y="35" fill-opacity="0.1" fill="url(#SVGID_7_)" width="90" height="167.5"/>
+<linearGradient id="SVGID_8_" gradientUnits="userSpaceOnUse" x1="93.9995" y1="21.564" x2="93.9995" y2="197.6018">
+	<stop  offset="0" style="stop-color:#FBFBFF"/>
+	<stop  offset="1" style="stop-color:#FFFFFF;stop-opacity:0.2"/>
+</linearGradient>
+<rect x="79" y="24.5" fill-opacity="0.5" fill="url(#SVGID_8_)" width="30" height="188"/>
+<rect x="136" y="24.5" fill-opacity="0.15" fill="#FFFFFF" width="14" height="188"/>
+<linearGradient id="SVGID_9_" gradientUnits="userSpaceOnUse" x1="68.9995" y1="34" x2="158.9995" y2="34">
+	<stop  offset="0" style="stop-color:#000000"/>
+	<stop  offset="0.5" style="stop-color:#333333"/>
+	<stop  offset="1" style="stop-color:#000000"/>
+</linearGradient>
+<rect x="69" y="33.5" fill="url(#SVGID_9_)" width="90" height="1"/>
+<radialGradient id="SVGID_10_" cx="113.9995" cy="35" r="48.3338" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.6108" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<rect x="69" y="34.5" fill-opacity="0.75" fill="url(#SVGID_10_)" width="90" height="1"/>
+<radialGradient id="SVGID_11_" cx="113.9995" cy="203" r="45.0001" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.7" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<rect x="69" y="202.5" fill-opacity="0.75" fill="url(#SVGID_11_)" width="90" height="1"/>
+<linearGradient id="SVGID_12_" gradientUnits="userSpaceOnUse" x1="68.9995" y1="202" x2="158.9995" y2="202">
+	<stop  offset="0" style="stop-color:#000000"/>
+	<stop  offset="0.5" style="stop-color:#666666"/>
+	<stop  offset="1" style="stop-color:#151515"/>
+</linearGradient>
+<rect x="69" y="201.5" fill="url(#SVGID_12_)" width="90" height="1"/>
+<rect x="121" y="15.5" fill-opacity="0.15" fill="#FFFFFF" width="7" height="9"/>
+<rect x="101" y="15.5" fill-opacity="0.25" fill="#FFFFFF" width="9" height="9"/>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/SysAp/Data/qtg_anim_battery_charging_06.svg	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
+	<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
+]>
+<svg version="1.1"
+	 xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+	 x="0px" y="0px" width="228px" height="228px" viewBox="0 0 228 228" enable-background="new 0 0 228 228" xml:space="preserve">
+<defs>
+</defs>
+<rect fill="#000000" width="228" height="228"/>
+<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="96.6289" y1="20" x2="131.3691" y2="20">
+	<stop  offset="0.2335" style="stop-color:#9C9C9C"/>
+	<stop  offset="0.7" style="stop-color:#1A1A1A"/>
+	<stop  offset="0.8922" style="stop-color:#656565"/>
+	<stop  offset="1" style="stop-color:#272727"/>
+</linearGradient>
+<path fill="url(#SVGID_1_)" d="M131.369,24.5v-6c0-1.658-1.342-3-3-3h-28.74c-1.656,0-3,1.342-3,3v6H131.369z"/>
+<radialGradient id="SVGID_2_" cx="113.999" cy="17.5" r="12.3637" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.6108" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<path fill-opacity="0.5" fill="url(#SVGID_2_)" d="M128.369,15.5h-28.74c-1.656,0-3,1.342-3,3v1c0-1.658,1.344-3,3-3h28.74
+	c1.658,0,3,1.342,3,3v-1C131.369,16.842,130.027,15.5,128.369,15.5z"/>
+<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="69" y1="118.5" x2="159" y2="118.5">
+	<stop  offset="0.006" style="stop-color:#262626"/>
+	<stop  offset="0.0719" style="stop-color:#4D4D4D"/>
+	<stop  offset="0.2335" style="stop-color:#CCCCCC"/>
+	<stop  offset="0.7" style="stop-color:#1A1A1A"/>
+	<stop  offset="0.8922" style="stop-color:#656565"/>
+	<stop  offset="1" style="stop-color:#262626"/>
+</linearGradient>
+<path fill="url(#SVGID_3_)" d="M72,212.5c-1.656,0-3-1.344-3-3v-182c0-1.657,1.344-3,3-3h84c1.658,0,3,1.343,3,3v182
+	c0,1.656-1.342,3-3,3H72z"/>
+<radialGradient id="SVGID_4_" cx="114" cy="26.5" r="45.5004" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.6108" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<path fill-opacity="0.5" fill="url(#SVGID_4_)" d="M156,24.5H72c-1.656,0-3,1.343-3,3v1c0-1.657,1.344-3,3-3h84c1.658,0,3,1.343,3,3v-1
+	C159,25.843,157.658,24.5,156,24.5z"/>
+<rect x="96.629" y="23.5" fill-opacity="0.35" width="34.74" height="1"/>
+<rect x="96.629" y="22.5" fill-opacity="0.15" width="34.74" height="1"/>
+<linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="69" y1="118.5" x2="159" y2="118.5">
+	<stop  offset="0.0061" style="stop-color:#49494A"/>
+	<stop  offset="0.6545" style="stop-color:#121212"/>
+	<stop  offset="1" style="stop-color:#49494A"/>
+</linearGradient>
+<rect x="69" y="34.5" fill="url(#SVGID_5_)" width="90" height="168"/>
+<linearGradient id="SVGID_6_" gradientUnits="userSpaceOnUse" x1="69" y1="157.5" x2="159" y2="157.5">
+	<stop  offset="0" style="stop-color:#5AA913"/>
+	<stop  offset="0.3" style="stop-color:#B3F241"/>
+	<stop  offset="0.7006" style="stop-color:#58A813"/>
+	<stop  offset="0.8563" style="stop-color:#AAD774"/>
+	<stop  offset="1" style="stop-color:#8FD31D"/>
+</linearGradient>
+<rect x="69" y="112.5" fill="url(#SVGID_6_)" width="90" height="90"/>
+<linearGradient id="SVGID_7_" gradientUnits="userSpaceOnUse" x1="114" y1="37.917" x2="114" y2="201.0923">
+	<stop  offset="0.0061" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.125" style="stop-color:#999999"/>
+	<stop  offset="0.25" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.375" style="stop-color:#999999"/>
+	<stop  offset="0.5" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.625" style="stop-color:#999999"/>
+	<stop  offset="0.75" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.875" style="stop-color:#999999"/>
+	<stop  offset="1" style="stop-color:#FFFFFF"/>
+</linearGradient>
+<rect x="69" y="35" fill-opacity="0.1" fill="url(#SVGID_7_)" width="90" height="167.5"/>
+<linearGradient id="SVGID_8_" gradientUnits="userSpaceOnUse" x1="94" y1="21.564" x2="94" y2="197.6018">
+	<stop  offset="0" style="stop-color:#FBFBFF"/>
+	<stop  offset="1" style="stop-color:#FFFFFF;stop-opacity:0.2"/>
+</linearGradient>
+<rect x="79" y="24.5" fill-opacity="0.5" fill="url(#SVGID_8_)" width="30" height="188"/>
+<rect x="136" y="24.5" fill-opacity="0.15" fill="#FFFFFF" width="14" height="188"/>
+<linearGradient id="SVGID_9_" gradientUnits="userSpaceOnUse" x1="69" y1="34" x2="159" y2="34">
+	<stop  offset="0" style="stop-color:#000000"/>
+	<stop  offset="0.5" style="stop-color:#333333"/>
+	<stop  offset="1" style="stop-color:#000000"/>
+</linearGradient>
+<rect x="69" y="33.5" fill="url(#SVGID_9_)" width="90" height="1"/>
+<radialGradient id="SVGID_10_" cx="114" cy="35" r="48.3338" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.6108" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<rect x="69" y="34.5" fill-opacity="0.75" fill="url(#SVGID_10_)" width="90" height="1"/>
+<radialGradient id="SVGID_11_" cx="114" cy="203" r="45.0001" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.7" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<rect x="69" y="202.5" fill-opacity="0.75" fill="url(#SVGID_11_)" width="90" height="1"/>
+<linearGradient id="SVGID_12_" gradientUnits="userSpaceOnUse" x1="69" y1="202" x2="159" y2="202">
+	<stop  offset="0" style="stop-color:#000000"/>
+	<stop  offset="0.5" style="stop-color:#666666"/>
+	<stop  offset="1" style="stop-color:#151515"/>
+</linearGradient>
+<rect x="69" y="201.5" fill="url(#SVGID_12_)" width="90" height="1"/>
+<rect x="121" y="15.5" fill-opacity="0.15" fill="#FFFFFF" width="7" height="9"/>
+<rect x="101" y="15.5" fill-opacity="0.25" fill="#FFFFFF" width="9" height="9"/>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/SysAp/Data/qtg_anim_battery_charging_07.svg	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
+	<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
+]>
+<svg version="1.1"
+	 xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+	 x="0px" y="0px" width="228px" height="228px" viewBox="0 0 228 228" enable-background="new 0 0 228 228" xml:space="preserve">
+<defs>
+</defs>
+<rect fill="#000000" width="228" height="228"/>
+<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="96.6289" y1="20" x2="131.3691" y2="20">
+	<stop  offset="0.2335" style="stop-color:#9C9C9C"/>
+	<stop  offset="0.7" style="stop-color:#1A1A1A"/>
+	<stop  offset="0.8922" style="stop-color:#656565"/>
+	<stop  offset="1" style="stop-color:#272727"/>
+</linearGradient>
+<path fill="url(#SVGID_1_)" d="M131.369,24.5v-6c0-1.658-1.342-3-3-3h-28.74c-1.656,0-3,1.342-3,3v6H131.369z"/>
+<radialGradient id="SVGID_2_" cx="113.999" cy="17.5" r="12.3637" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.6108" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<path fill-opacity="0.5" fill="url(#SVGID_2_)" d="M128.369,15.5h-28.74c-1.656,0-3,1.342-3,3v1c0-1.658,1.344-3,3-3h28.74
+	c1.658,0,3,1.342,3,3v-1C131.369,16.842,130.027,15.5,128.369,15.5z"/>
+<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="69" y1="118.5" x2="159" y2="118.5">
+	<stop  offset="0.006" style="stop-color:#262626"/>
+	<stop  offset="0.0719" style="stop-color:#4D4D4D"/>
+	<stop  offset="0.2335" style="stop-color:#CCCCCC"/>
+	<stop  offset="0.7" style="stop-color:#1A1A1A"/>
+	<stop  offset="0.8922" style="stop-color:#656565"/>
+	<stop  offset="1" style="stop-color:#262626"/>
+</linearGradient>
+<path fill="url(#SVGID_3_)" d="M72,212.5c-1.656,0-3-1.344-3-3v-182c0-1.657,1.344-3,3-3h84c1.658,0,3,1.343,3,3v182
+	c0,1.656-1.342,3-3,3H72z"/>
+<radialGradient id="SVGID_4_" cx="114" cy="26.5" r="45.5004" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.6108" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<path fill-opacity="0.5" fill="url(#SVGID_4_)" d="M156,24.5H72c-1.656,0-3,1.343-3,3v1c0-1.657,1.344-3,3-3h84c1.658,0,3,1.343,3,3v-1
+	C159,25.843,157.658,24.5,156,24.5z"/>
+<rect x="96.629" y="23.5" fill-opacity="0.35" width="34.74" height="1"/>
+<rect x="96.629" y="22.5" fill-opacity="0.15" width="34.74" height="1"/>
+<linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="69" y1="118.5" x2="159" y2="118.5">
+	<stop  offset="0.0061" style="stop-color:#49494A"/>
+	<stop  offset="0.6545" style="stop-color:#121212"/>
+	<stop  offset="1" style="stop-color:#49494A"/>
+</linearGradient>
+<rect x="69" y="34.5" fill="url(#SVGID_5_)" width="90" height="168"/>
+<linearGradient id="SVGID_6_" gradientUnits="userSpaceOnUse" x1="69" y1="148.5" x2="159" y2="148.5">
+	<stop  offset="0" style="stop-color:#5AA913"/>
+	<stop  offset="0.3" style="stop-color:#B3F241"/>
+	<stop  offset="0.7006" style="stop-color:#58A813"/>
+	<stop  offset="0.8563" style="stop-color:#AAD774"/>
+	<stop  offset="1" style="stop-color:#8FD31D"/>
+</linearGradient>
+<rect x="69" y="94.5" fill="url(#SVGID_6_)" width="90" height="108"/>
+<linearGradient id="SVGID_7_" gradientUnits="userSpaceOnUse" x1="114" y1="37.917" x2="114" y2="201.0923">
+	<stop  offset="0.0061" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.125" style="stop-color:#999999"/>
+	<stop  offset="0.25" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.375" style="stop-color:#999999"/>
+	<stop  offset="0.5" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.625" style="stop-color:#999999"/>
+	<stop  offset="0.75" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.875" style="stop-color:#999999"/>
+	<stop  offset="1" style="stop-color:#FFFFFF"/>
+</linearGradient>
+<rect x="69" y="35" fill-opacity="0.1" fill="url(#SVGID_7_)" width="90" height="167.5"/>
+<linearGradient id="SVGID_8_" gradientUnits="userSpaceOnUse" x1="94" y1="21.564" x2="94" y2="197.6018">
+	<stop  offset="0" style="stop-color:#FBFBFF"/>
+	<stop  offset="1" style="stop-color:#FFFFFF;stop-opacity:0.2"/>
+</linearGradient>
+<rect x="79" y="24.5" fill-opacity="0.5" fill="url(#SVGID_8_)" width="30" height="188"/>
+<rect x="136" y="24.5" fill-opacity="0.15" fill="#FFFFFF" width="14" height="188"/>
+<linearGradient id="SVGID_9_" gradientUnits="userSpaceOnUse" x1="69" y1="34" x2="159" y2="34">
+	<stop  offset="0" style="stop-color:#000000"/>
+	<stop  offset="0.5" style="stop-color:#333333"/>
+	<stop  offset="1" style="stop-color:#000000"/>
+</linearGradient>
+<rect x="69" y="33.5" fill="url(#SVGID_9_)" width="90" height="1"/>
+<radialGradient id="SVGID_10_" cx="114" cy="35" r="48.3338" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.6108" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<rect x="69" y="34.5" fill-opacity="0.75" fill="url(#SVGID_10_)" width="90" height="1"/>
+<radialGradient id="SVGID_11_" cx="114" cy="203" r="45.0001" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.7" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<rect x="69" y="202.5" fill-opacity="0.75" fill="url(#SVGID_11_)" width="90" height="1"/>
+<linearGradient id="SVGID_12_" gradientUnits="userSpaceOnUse" x1="69" y1="202" x2="159" y2="202">
+	<stop  offset="0" style="stop-color:#000000"/>
+	<stop  offset="0.5" style="stop-color:#666666"/>
+	<stop  offset="1" style="stop-color:#151515"/>
+</linearGradient>
+<rect x="69" y="201.5" fill="url(#SVGID_12_)" width="90" height="1"/>
+<rect x="121" y="15.5" fill-opacity="0.15" fill="#FFFFFF" width="7" height="9"/>
+<rect x="101" y="15.5" fill-opacity="0.25" fill="#FFFFFF" width="9" height="9"/>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/SysAp/Data/qtg_anim_battery_charging_08.svg	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
+	<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
+]>
+<svg version="1.1"
+	 xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+	 x="0px" y="0px" width="228px" height="228px" viewBox="0 0 228 228" enable-background="new 0 0 228 228" xml:space="preserve">
+<defs>
+</defs>
+<rect fill="#000000" width="228" height="228"/>
+<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="96.6289" y1="20" x2="131.3691" y2="20">
+	<stop  offset="0.2335" style="stop-color:#9C9C9C"/>
+	<stop  offset="0.7" style="stop-color:#1A1A1A"/>
+	<stop  offset="0.8922" style="stop-color:#656565"/>
+	<stop  offset="1" style="stop-color:#272727"/>
+</linearGradient>
+<path fill="url(#SVGID_1_)" d="M131.369,24.5v-6c0-1.658-1.342-3-3-3h-28.74c-1.656,0-3,1.342-3,3v6H131.369z"/>
+<radialGradient id="SVGID_2_" cx="113.999" cy="17.5" r="12.3637" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.6108" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<path fill-opacity="0.5" fill="url(#SVGID_2_)" d="M128.369,15.5h-28.74c-1.656,0-3,1.342-3,3v1c0-1.658,1.344-3,3-3h28.74
+	c1.658,0,3,1.342,3,3v-1C131.369,16.842,130.027,15.5,128.369,15.5z"/>
+<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="69" y1="118.5" x2="159" y2="118.5">
+	<stop  offset="0.006" style="stop-color:#262626"/>
+	<stop  offset="0.0719" style="stop-color:#4D4D4D"/>
+	<stop  offset="0.2335" style="stop-color:#CCCCCC"/>
+	<stop  offset="0.7" style="stop-color:#1A1A1A"/>
+	<stop  offset="0.8922" style="stop-color:#656565"/>
+	<stop  offset="1" style="stop-color:#262626"/>
+</linearGradient>
+<path fill="url(#SVGID_3_)" d="M72,212.5c-1.656,0-3-1.344-3-3v-182c0-1.657,1.344-3,3-3h84c1.658,0,3,1.343,3,3v182
+	c0,1.656-1.342,3-3,3H72z"/>
+<radialGradient id="SVGID_4_" cx="114" cy="26.5" r="45.5004" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.6108" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<path fill-opacity="0.5" fill="url(#SVGID_4_)" d="M156,24.5H72c-1.656,0-3,1.343-3,3v1c0-1.657,1.344-3,3-3h84c1.658,0,3,1.343,3,3v-1
+	C159,25.843,157.658,24.5,156,24.5z"/>
+<rect x="96.629" y="23.5" fill-opacity="0.35" width="34.74" height="1"/>
+<rect x="96.629" y="22.5" fill-opacity="0.15" width="34.74" height="1"/>
+<linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="69" y1="118.5" x2="159" y2="118.5">
+	<stop  offset="0.0061" style="stop-color:#49494A"/>
+	<stop  offset="0.6545" style="stop-color:#121212"/>
+	<stop  offset="1" style="stop-color:#49494A"/>
+</linearGradient>
+<rect x="69" y="34.5" fill="url(#SVGID_5_)" width="90" height="168"/>
+<linearGradient id="SVGID_6_" gradientUnits="userSpaceOnUse" x1="69" y1="138" x2="159" y2="138">
+	<stop  offset="0" style="stop-color:#5AA913"/>
+	<stop  offset="0.3" style="stop-color:#B3F241"/>
+	<stop  offset="0.7006" style="stop-color:#58A813"/>
+	<stop  offset="0.8563" style="stop-color:#AAD774"/>
+	<stop  offset="1" style="stop-color:#8FD31D"/>
+</linearGradient>
+<rect x="69" y="73.5" fill="url(#SVGID_6_)" width="90" height="129"/>
+<linearGradient id="SVGID_7_" gradientUnits="userSpaceOnUse" x1="114" y1="37.917" x2="114" y2="201.0923">
+	<stop  offset="0.0061" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.125" style="stop-color:#999999"/>
+	<stop  offset="0.25" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.375" style="stop-color:#999999"/>
+	<stop  offset="0.5" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.625" style="stop-color:#999999"/>
+	<stop  offset="0.75" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.875" style="stop-color:#999999"/>
+	<stop  offset="1" style="stop-color:#FFFFFF"/>
+</linearGradient>
+<rect x="69" y="35" fill-opacity="0.1" fill="url(#SVGID_7_)" width="90" height="167.5"/>
+<linearGradient id="SVGID_8_" gradientUnits="userSpaceOnUse" x1="94" y1="21.564" x2="94" y2="197.6018">
+	<stop  offset="0" style="stop-color:#FBFBFF"/>
+	<stop  offset="1" style="stop-color:#FFFFFF;stop-opacity:0.2"/>
+</linearGradient>
+<rect x="79" y="24.5" fill-opacity="0.5" fill="url(#SVGID_8_)" width="30" height="188"/>
+<rect x="136" y="24.5" fill-opacity="0.15" fill="#FFFFFF" width="14" height="188"/>
+<linearGradient id="SVGID_9_" gradientUnits="userSpaceOnUse" x1="69" y1="34" x2="159" y2="34">
+	<stop  offset="0" style="stop-color:#000000"/>
+	<stop  offset="0.5" style="stop-color:#333333"/>
+	<stop  offset="1" style="stop-color:#000000"/>
+</linearGradient>
+<rect x="69" y="33.5" fill="url(#SVGID_9_)" width="90" height="1"/>
+<radialGradient id="SVGID_10_" cx="114" cy="35" r="48.3338" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.6108" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<rect x="69" y="34.5" fill-opacity="0.75" fill="url(#SVGID_10_)" width="90" height="1"/>
+<radialGradient id="SVGID_11_" cx="114" cy="203" r="45.0001" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.7" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<rect x="69" y="202.5" fill-opacity="0.75" fill="url(#SVGID_11_)" width="90" height="1"/>
+<linearGradient id="SVGID_12_" gradientUnits="userSpaceOnUse" x1="69" y1="202" x2="159" y2="202">
+	<stop  offset="0" style="stop-color:#000000"/>
+	<stop  offset="0.5" style="stop-color:#666666"/>
+	<stop  offset="1" style="stop-color:#151515"/>
+</linearGradient>
+<rect x="69" y="201.5" fill="url(#SVGID_12_)" width="90" height="1"/>
+<rect x="121" y="15.5" fill-opacity="0.15" fill="#FFFFFF" width="7" height="9"/>
+<rect x="101" y="15.5" fill-opacity="0.25" fill="#FFFFFF" width="9" height="9"/>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/SysAp/Data/qtg_anim_battery_charging_09.svg	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
+	<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
+]>
+<svg version="1.1"
+	 xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+	 x="0px" y="0px" width="228px" height="228px" viewBox="0 0 228 228" enable-background="new 0 0 228 228" xml:space="preserve">
+<defs>
+</defs>
+<rect fill="#000000" width="228" height="228"/>
+<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="96.6309" y1="20" x2="131.3711" y2="20">
+	<stop  offset="0.2335" style="stop-color:#9C9C9C"/>
+	<stop  offset="0.7" style="stop-color:#1A1A1A"/>
+	<stop  offset="0.8922" style="stop-color:#656565"/>
+	<stop  offset="1" style="stop-color:#272727"/>
+</linearGradient>
+<path fill="url(#SVGID_1_)" d="M131.371,24.5v-6c0-1.658-1.342-3-3-3h-28.74c-1.656,0-3,1.342-3,3v6H131.371z"/>
+<radialGradient id="SVGID_2_" cx="114.001" cy="17.5" r="12.3637" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.6108" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<path fill-opacity="0.5" fill="url(#SVGID_2_)" d="M128.371,15.5h-28.74c-1.656,0-3,1.342-3,3v1c0-1.658,1.344-3,3-3h28.74
+	c1.658,0,3,1.342,3,3v-1C131.371,16.842,130.029,15.5,128.371,15.5z"/>
+<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="69" y1="118.5" x2="159" y2="118.5">
+	<stop  offset="0.006" style="stop-color:#262626"/>
+	<stop  offset="0.0719" style="stop-color:#4D4D4D"/>
+	<stop  offset="0.2335" style="stop-color:#CCCCCC"/>
+	<stop  offset="0.7" style="stop-color:#1A1A1A"/>
+	<stop  offset="0.8922" style="stop-color:#656565"/>
+	<stop  offset="1" style="stop-color:#262626"/>
+</linearGradient>
+<path fill="url(#SVGID_3_)" d="M72,212.5c-1.656,0-3-1.344-3-3v-182c0-1.657,1.344-3,3-3h84c1.658,0,3,1.343,3,3v182
+	c0,1.656-1.342,3-3,3H72z"/>
+<radialGradient id="SVGID_4_" cx="114" cy="26.5" r="45.5004" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.6108" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<path fill-opacity="0.5" fill="url(#SVGID_4_)" d="M156,24.5H72c-1.656,0-3,1.343-3,3v1c0-1.657,1.344-3,3-3h84c1.658,0,3,1.343,3,3v-1
+	C159,25.843,157.658,24.5,156,24.5z"/>
+<rect x="96.631" y="23.5" fill-opacity="0.35" width="34.74" height="1"/>
+<rect x="96.631" y="22.5" fill-opacity="0.15" width="34.74" height="1"/>
+<linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="69" y1="118.5" x2="159" y2="118.5">
+	<stop  offset="0.0061" style="stop-color:#49494A"/>
+	<stop  offset="0.6545" style="stop-color:#121212"/>
+	<stop  offset="1" style="stop-color:#49494A"/>
+</linearGradient>
+<rect x="69" y="34.5" fill="url(#SVGID_5_)" width="90" height="168"/>
+<linearGradient id="SVGID_6_" gradientUnits="userSpaceOnUse" x1="69" y1="127.5" x2="159" y2="127.5">
+	<stop  offset="0" style="stop-color:#5AA913"/>
+	<stop  offset="0.3" style="stop-color:#B3F241"/>
+	<stop  offset="0.7006" style="stop-color:#58A813"/>
+	<stop  offset="0.8563" style="stop-color:#AAD774"/>
+	<stop  offset="1" style="stop-color:#8FD31D"/>
+</linearGradient>
+<rect x="69" y="52.5" fill="url(#SVGID_6_)" width="90" height="150"/>
+<linearGradient id="SVGID_7_" gradientUnits="userSpaceOnUse" x1="114" y1="37.917" x2="114" y2="201.0923">
+	<stop  offset="0.0061" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.125" style="stop-color:#999999"/>
+	<stop  offset="0.25" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.375" style="stop-color:#999999"/>
+	<stop  offset="0.5" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.625" style="stop-color:#999999"/>
+	<stop  offset="0.75" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.875" style="stop-color:#999999"/>
+	<stop  offset="1" style="stop-color:#FFFFFF"/>
+</linearGradient>
+<rect x="69" y="35" fill-opacity="0.1" fill="url(#SVGID_7_)" width="90" height="167.5"/>
+<linearGradient id="SVGID_8_" gradientUnits="userSpaceOnUse" x1="94" y1="21.564" x2="94" y2="197.6018">
+	<stop  offset="0" style="stop-color:#FBFBFF"/>
+	<stop  offset="1" style="stop-color:#FFFFFF;stop-opacity:0.2"/>
+</linearGradient>
+<rect x="79" y="24.5" fill-opacity="0.5" fill="url(#SVGID_8_)" width="30" height="188"/>
+<rect x="136" y="24.5" fill-opacity="0.15" fill="#FFFFFF" width="14" height="188"/>
+<linearGradient id="SVGID_9_" gradientUnits="userSpaceOnUse" x1="69" y1="34" x2="159" y2="34">
+	<stop  offset="0" style="stop-color:#000000"/>
+	<stop  offset="0.5" style="stop-color:#333333"/>
+	<stop  offset="1" style="stop-color:#000000"/>
+</linearGradient>
+<rect x="69" y="33.5" fill="url(#SVGID_9_)" width="90" height="1"/>
+<radialGradient id="SVGID_10_" cx="114" cy="35" r="48.3338" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.6108" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<rect x="69" y="34.5" fill-opacity="0.75" fill="url(#SVGID_10_)" width="90" height="1"/>
+<radialGradient id="SVGID_11_" cx="114" cy="203" r="45.0001" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.7" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<rect x="69" y="202.5" fill-opacity="0.75" fill="url(#SVGID_11_)" width="90" height="1"/>
+<linearGradient id="SVGID_12_" gradientUnits="userSpaceOnUse" x1="69" y1="202" x2="159" y2="202">
+	<stop  offset="0" style="stop-color:#000000"/>
+	<stop  offset="0.5" style="stop-color:#666666"/>
+	<stop  offset="1" style="stop-color:#151515"/>
+</linearGradient>
+<rect x="69" y="201.5" fill="url(#SVGID_12_)" width="90" height="1"/>
+<rect x="121" y="15.5" fill-opacity="0.15" fill="#FFFFFF" width="7" height="9"/>
+<rect x="101" y="15.5" fill-opacity="0.25" fill="#FFFFFF" width="9" height="9"/>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/SysAp/Data/qtg_anim_battery_charging_10.svg	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,115 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
+	<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
+]>
+<svg version="1.1"
+	 xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+	 x="0px" y="0px" width="228px" height="228px" viewBox="0 0 228 228" enable-background="new 0 0 228 228" xml:space="preserve">
+<defs>
+</defs>
+<rect fill="#000000" width="228" height="228"/>
+<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="96.6289" y1="20" x2="131.3691" y2="20">
+	<stop  offset="0.2335" style="stop-color:#9C9C9C"/>
+	<stop  offset="0.7" style="stop-color:#1A1A1A"/>
+	<stop  offset="0.8922" style="stop-color:#656565"/>
+	<stop  offset="1" style="stop-color:#272727"/>
+</linearGradient>
+<path fill="url(#SVGID_1_)" d="M131.369,24.5v-6c0-1.658-1.342-3-3-3h-28.74c-1.656,0-3,1.342-3,3v6H131.369z"/>
+<radialGradient id="SVGID_2_" cx="113.999" cy="17.5" r="12.3637" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.6108" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<path fill-opacity="0.5" fill="url(#SVGID_2_)" d="M128.369,15.5h-28.74c-1.656,0-3,1.342-3,3v1c0-1.658,1.344-3,3-3h28.74
+	c1.658,0,3,1.342,3,3v-1C131.369,16.842,130.027,15.5,128.369,15.5z"/>
+<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="69" y1="118.5" x2="159" y2="118.5">
+	<stop  offset="0.006" style="stop-color:#262626"/>
+	<stop  offset="0.0719" style="stop-color:#4D4D4D"/>
+	<stop  offset="0.2335" style="stop-color:#CCCCCC"/>
+	<stop  offset="0.7" style="stop-color:#1A1A1A"/>
+	<stop  offset="0.8922" style="stop-color:#656565"/>
+	<stop  offset="1" style="stop-color:#262626"/>
+</linearGradient>
+<path fill="url(#SVGID_3_)" d="M72,212.5c-1.656,0-3-1.344-3-3v-182c0-1.657,1.344-3,3-3h84c1.658,0,3,1.343,3,3v182
+	c0,1.656-1.342,3-3,3H72z"/>
+<radialGradient id="SVGID_4_" cx="114" cy="26.5" r="45.5004" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.6108" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<path fill-opacity="0.5" fill="url(#SVGID_4_)" d="M156,24.5H72c-1.656,0-3,1.343-3,3v1c0-1.657,1.344-3,3-3h84c1.658,0,3,1.343,3,3v-1
+	C159,25.843,157.658,24.5,156,24.5z"/>
+<rect x="96.629" y="23.5" fill-opacity="0.35" width="34.74" height="1"/>
+<rect x="96.629" y="22.5" fill-opacity="0.15" width="34.74" height="1"/>
+<linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="69" y1="118.5" x2="159" y2="118.5">
+	<stop  offset="0.0061" style="stop-color:#49494A"/>
+	<stop  offset="0.6545" style="stop-color:#121212"/>
+	<stop  offset="1" style="stop-color:#49494A"/>
+</linearGradient>
+<rect x="69" y="34.5" fill="url(#SVGID_5_)" width="90" height="168"/>
+<linearGradient id="SVGID_6_" gradientUnits="userSpaceOnUse" x1="114" y1="37.917" x2="114" y2="201.0923">
+	<stop  offset="0.0061" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.125" style="stop-color:#999999"/>
+	<stop  offset="0.25" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.375" style="stop-color:#999999"/>
+	<stop  offset="0.5" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.625" style="stop-color:#999999"/>
+	<stop  offset="0.75" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.875" style="stop-color:#999999"/>
+	<stop  offset="1" style="stop-color:#FFFFFF"/>
+</linearGradient>
+<rect x="69" y="35" fill-opacity="0.05" fill="url(#SVGID_6_)" width="90" height="167.5"/>
+<linearGradient id="SVGID_7_" gradientUnits="userSpaceOnUse" x1="69" y1="118.5" x2="159" y2="118.5">
+	<stop  offset="0" style="stop-color:#5AA913"/>
+	<stop  offset="0.3" style="stop-color:#B3F241"/>
+	<stop  offset="0.7006" style="stop-color:#58A813"/>
+	<stop  offset="0.8563" style="stop-color:#AAD774"/>
+	<stop  offset="1" style="stop-color:#8FD31D"/>
+</linearGradient>
+<rect x="69" y="34.5" fill="url(#SVGID_7_)" width="90" height="168"/>
+<linearGradient id="SVGID_8_" gradientUnits="userSpaceOnUse" x1="114" y1="37.917" x2="114" y2="201.0923">
+	<stop  offset="0.0061" style="stop-color:#F4FFB0;stop-opacity:0.8"/>
+	<stop  offset="0.125" style="stop-color:#51A307"/>
+	<stop  offset="0.25" style="stop-color:#F4FFB0;stop-opacity:0.8"/>
+	<stop  offset="0.375" style="stop-color:#51A307"/>
+	<stop  offset="0.5" style="stop-color:#F4FFB0;stop-opacity:0.8"/>
+	<stop  offset="0.625" style="stop-color:#51A307"/>
+	<stop  offset="0.75" style="stop-color:#F4FFB0;stop-opacity:0.8"/>
+	<stop  offset="0.875" style="stop-color:#51A307"/>
+	<stop  offset="1" style="stop-color:#F4FFB0;stop-opacity:0.8"/>
+</linearGradient>
+<rect x="69" y="35" fill-opacity="0.15" fill="url(#SVGID_8_)" width="90" height="167.5"/>
+<linearGradient id="SVGID_9_" gradientUnits="userSpaceOnUse" x1="94" y1="21.564" x2="94" y2="197.6018">
+	<stop  offset="0" style="stop-color:#FBFBFF"/>
+	<stop  offset="1" style="stop-color:#FFFFFF;stop-opacity:0.2"/>
+</linearGradient>
+<rect x="79" y="24.5" fill-opacity="0.5" fill="url(#SVGID_9_)" width="30" height="188"/>
+<rect x="136" y="24.5" fill-opacity="0.15" fill="#FFFFFF" width="14" height="188"/>
+<linearGradient id="SVGID_10_" gradientUnits="userSpaceOnUse" x1="69" y1="34" x2="159" y2="34">
+	<stop  offset="0" style="stop-color:#000000"/>
+	<stop  offset="0.5" style="stop-color:#333333"/>
+	<stop  offset="1" style="stop-color:#000000"/>
+</linearGradient>
+<rect x="69" y="33.5" fill="url(#SVGID_10_)" width="90" height="1"/>
+<radialGradient id="SVGID_11_" cx="114" cy="35" r="48.3338" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.6108" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<rect x="69" y="34.5" fill-opacity="0.75" fill="url(#SVGID_11_)" width="90" height="1"/>
+<radialGradient id="SVGID_12_" cx="114" cy="203" r="45.0001" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.7" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<rect x="69" y="202.5" fill-opacity="0.75" fill="url(#SVGID_12_)" width="90" height="1"/>
+<linearGradient id="SVGID_13_" gradientUnits="userSpaceOnUse" x1="69" y1="202" x2="159" y2="202">
+	<stop  offset="0" style="stop-color:#000000"/>
+	<stop  offset="0.5" style="stop-color:#666666"/>
+	<stop  offset="1" style="stop-color:#151515"/>
+</linearGradient>
+<rect x="69" y="201.5" fill="url(#SVGID_13_)" width="90" height="1"/>
+<rect x="121" y="15.5" fill-opacity="0.15" fill="#FFFFFF" width="7" height="9"/>
+<rect x="101" y="15.5" fill-opacity="0.25" fill="#FFFFFF" width="9" height="9"/>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/SysAp/Data/qtg_anim_battery_full_01.svg	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,116 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
+	<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
+]>
+<svg version="1.1"
+	 xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+	 x="0px" y="0px" width="228px" height="228px" viewBox="0 0 228 228" enable-background="new 0 0 228 228" xml:space="preserve">
+<defs>
+</defs>
+<rect fill="#000000" width="228" height="228"/>
+<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="96.8027" y1="20.0005" x2="131.543" y2="20.0005">
+	<stop  offset="0.2335" style="stop-color:#9C9C9C"/>
+	<stop  offset="0.7" style="stop-color:#1A1A1A"/>
+	<stop  offset="0.8922" style="stop-color:#656565"/>
+	<stop  offset="1" style="stop-color:#272727"/>
+</linearGradient>
+<path fill="url(#SVGID_1_)" d="M131.543,24.5v-6c0-1.658-1.342-3-3-3h-28.74c-1.656,0-3,1.342-3,3v6H131.543z"/>
+<radialGradient id="SVGID_2_" cx="114.1729" cy="17.5005" r="12.3637" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.6108" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<path fill-opacity="0.5" fill="url(#SVGID_2_)" d="M128.543,15.5h-28.74c-1.656,0-3,1.342-3,3v1c0-1.658,1.344-3,3-3h28.74
+	c1.658,0,3,1.342,3,3v-1C131.543,16.842,130.201,15.5,128.543,15.5z"/>
+<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="69.1738" y1="118.5" x2="159.1738" y2="118.5">
+	<stop  offset="0.006" style="stop-color:#262626"/>
+	<stop  offset="0.0719" style="stop-color:#4D4D4D"/>
+	<stop  offset="0.2335" style="stop-color:#CCCCCC"/>
+	<stop  offset="0.7" style="stop-color:#1A1A1A"/>
+	<stop  offset="0.8922" style="stop-color:#656565"/>
+	<stop  offset="1" style="stop-color:#262626"/>
+</linearGradient>
+<path fill="url(#SVGID_3_)" d="M72.174,212.5c-1.656,0-3-1.344-3-3v-182c0-1.657,1.344-3,3-3h84c1.658,0,3,1.343,3,3v182
+	c0,1.656-1.342,3-3,3H72.174z"/>
+<radialGradient id="SVGID_4_" cx="114.1738" cy="26.5005" r="45.5004" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.6108" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<path fill-opacity="0.5" fill="url(#SVGID_4_)" d="M156.174,24.5h-84c-1.656,0-3,1.343-3,3v1c0-1.657,1.344-3,3-3h84c1.658,0,3,1.343,3,3
+	v-1C159.174,25.843,157.832,24.5,156.174,24.5z"/>
+<rect x="96.803" y="23.5" fill-opacity="0.35" width="34.74" height="1"/>
+<rect x="96.803" y="22.5" fill-opacity="0.15" width="34.74" height="1"/>
+<linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="69.1738" y1="118.5" x2="159.1738" y2="118.5">
+	<stop  offset="0.0061" style="stop-color:#49494A"/>
+	<stop  offset="0.6545" style="stop-color:#121212"/>
+	<stop  offset="1" style="stop-color:#49494A"/>
+</linearGradient>
+<rect x="69.174" y="34.5" fill="url(#SVGID_5_)" width="90" height="168"/>
+<linearGradient id="SVGID_6_" gradientUnits="userSpaceOnUse" x1="114.1738" y1="37.9175" x2="114.1738" y2="201.0923">
+	<stop  offset="0.0061" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.125" style="stop-color:#999999"/>
+	<stop  offset="0.25" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.375" style="stop-color:#999999"/>
+	<stop  offset="0.5" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.625" style="stop-color:#999999"/>
+	<stop  offset="0.75" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.875" style="stop-color:#999999"/>
+	<stop  offset="1" style="stop-color:#FFFFFF"/>
+</linearGradient>
+<rect x="69.174" y="35" fill-opacity="0.05" fill="url(#SVGID_6_)" width="90" height="167.5"/>
+<linearGradient id="SVGID_7_" gradientUnits="userSpaceOnUse" x1="69.1738" y1="118.5" x2="159.1738" y2="118.5">
+	<stop  offset="0" style="stop-color:#5AA913"/>
+	<stop  offset="0.3" style="stop-color:#B3F241"/>
+	<stop  offset="0.7006" style="stop-color:#58A813"/>
+	<stop  offset="0.8563" style="stop-color:#AAD774"/>
+	<stop  offset="1" style="stop-color:#8FD31D"/>
+</linearGradient>
+<rect x="69.174" y="34.5" fill="url(#SVGID_7_)" width="90" height="168"/>
+<linearGradient id="SVGID_8_" gradientUnits="userSpaceOnUse" x1="114.1738" y1="37.9175" x2="114.1738" y2="201.0923">
+	<stop  offset="0.0061" style="stop-color:#F4FFB0;stop-opacity:0.8"/>
+	<stop  offset="0.125" style="stop-color:#51A307"/>
+	<stop  offset="0.25" style="stop-color:#F4FFB0;stop-opacity:0.8"/>
+	<stop  offset="0.375" style="stop-color:#51A307"/>
+	<stop  offset="0.5" style="stop-color:#F4FFB0;stop-opacity:0.8"/>
+	<stop  offset="0.625" style="stop-color:#51A307"/>
+	<stop  offset="0.75" style="stop-color:#F4FFB0;stop-opacity:0.8"/>
+	<stop  offset="0.875" style="stop-color:#51A307"/>
+	<stop  offset="1" style="stop-color:#F4FFB0;stop-opacity:0.8"/>
+</linearGradient>
+<rect x="69.174" y="35" fill-opacity="0.15" fill="url(#SVGID_8_)" width="90" height="167.5"/>
+<linearGradient id="SVGID_9_" gradientUnits="userSpaceOnUse" x1="94.1738" y1="21.5645" x2="94.1738" y2="197.6018">
+	<stop  offset="0" style="stop-color:#FBFBFF"/>
+	<stop  offset="1" style="stop-color:#FFFFFF;stop-opacity:0.2"/>
+</linearGradient>
+<rect x="79.174" y="24.5" fill-opacity="0.5" fill="url(#SVGID_9_)" width="30" height="188"/>
+<rect x="136.174" y="24.5" fill-opacity="0.15" fill="#FFFFFF" width="14" height="188"/>
+<linearGradient id="SVGID_10_" gradientUnits="userSpaceOnUse" x1="69.1738" y1="34.0005" x2="159.1738" y2="34.0005">
+	<stop  offset="0" style="stop-color:#000000"/>
+	<stop  offset="0.5" style="stop-color:#333333"/>
+	<stop  offset="1" style="stop-color:#000000"/>
+</linearGradient>
+<rect x="69.174" y="33.5" fill="url(#SVGID_10_)" width="90" height="1"/>
+<radialGradient id="SVGID_11_" cx="114.1738" cy="35.0005" r="48.3338" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.6108" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<rect x="69.174" y="34.5" fill-opacity="0.75" fill="url(#SVGID_11_)" width="90" height="1"/>
+<radialGradient id="SVGID_12_" cx="114.1738" cy="203" r="45.0001" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.7" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<rect x="69.174" y="202.5" fill-opacity="0.75" fill="url(#SVGID_12_)" width="90" height="1"/>
+<linearGradient id="SVGID_13_" gradientUnits="userSpaceOnUse" x1="69.1738" y1="202" x2="159.1738" y2="202">
+	<stop  offset="0" style="stop-color:#000000"/>
+	<stop  offset="0.5" style="stop-color:#666666"/>
+	<stop  offset="1" style="stop-color:#151515"/>
+</linearGradient>
+<rect x="69.174" y="201.5" fill="url(#SVGID_13_)" width="90" height="1"/>
+<rect x="121.174" y="15.5" fill-opacity="0.15" fill="#FFFFFF" width="7" height="9"/>
+<rect x="101.174" y="15.5" fill-opacity="0.25" fill="#FFFFFF" width="9" height="9"/>
+<rect id="_x3C_Slice_x3E__10_" fill="none" width="228" height="228"/>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/SysAp/Data/qtg_anim_battery_full_02.svg	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,132 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
+	<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
+]>
+<svg version="1.1"
+	 xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+	 x="0px" y="0px" width="228px" height="228px" viewBox="0 0 228 228" enable-background="new 0 0 228 228" xml:space="preserve">
+<defs>
+</defs>
+<rect fill="#000000" width="228" height="228"/>
+<path fill-opacity="0.1" fill="#E6E6E6" d="M72.174,218.5c-4.963,0-9-4.037-9-9v-182c0-4.963,4.037-9,9-9h18.629c0-4.963,4.037-9,9-9
+	h28.74c4.963,0,9,4.037,9,9h18.631c4.963,0,9,4.037,9,9v182c0,4.963-4.037,9-9,9H72.174z"/>
+<path fill-opacity="0.1" fill="#E6E6E6" d="M72.174,216.5c-3.859,0-7-3.141-7-7v-182c0-3.86,3.141-7,7-7h20.629v-2c0-3.86,3.141-7,7-7
+	h28.74c3.859,0,7,3.14,7,7v2h20.631c3.859,0,7,3.14,7,7v182c0,3.859-3.141,7-7,7H72.174z"/>
+<path fill-opacity="0.1" fill="#E6E6E6" d="M72.174,214.5c-2.758,0-5-2.242-5-5v-182c0-2.757,2.242-5,5-5h22.629v-4c0-2.757,2.242-5,5-5
+	h28.74c2.756,0,5,2.243,5,5v4h22.631c2.756,0,5,2.243,5,5v182c0,2.758-2.244,5-5,5H72.174z"/>
+<path fill-opacity="0.1" fill="#E6E6E6" d="M72.174,213.5c-2.207,0-4-1.795-4-4v-182c0-2.206,1.793-4,4-4h23.629v-5c0-2.206,1.793-4,4-4
+	h28.74c2.205,0,4,1.794,4,4v5h23.631c2.205,0,4,1.794,4,4v182c0,2.205-1.795,4-4,4H72.174z"/>
+<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="96.8027" y1="20.0005" x2="131.543" y2="20.0005">
+	<stop  offset="0.2335" style="stop-color:#9C9C9C"/>
+	<stop  offset="0.7" style="stop-color:#1A1A1A"/>
+	<stop  offset="0.8922" style="stop-color:#656565"/>
+	<stop  offset="1" style="stop-color:#272727"/>
+</linearGradient>
+<path fill="url(#SVGID_1_)" d="M131.543,24.5v-6c0-1.658-1.342-3-3-3h-28.74c-1.656,0-3,1.342-3,3v6H131.543z"/>
+<radialGradient id="SVGID_2_" cx="114.1729" cy="17.5005" r="12.3637" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.6108" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<path fill-opacity="0.5" fill="url(#SVGID_2_)" d="M128.543,15.5h-28.74c-1.656,0-3,1.342-3,3v1c0-1.658,1.344-3,3-3h28.74
+	c1.658,0,3,1.342,3,3v-1C131.543,16.842,130.201,15.5,128.543,15.5z"/>
+<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="69.1738" y1="118.5" x2="159.1738" y2="118.5">
+	<stop  offset="0.006" style="stop-color:#262626"/>
+	<stop  offset="0.0719" style="stop-color:#4D4D4D"/>
+	<stop  offset="0.2335" style="stop-color:#CCCCCC"/>
+	<stop  offset="0.7" style="stop-color:#1A1A1A"/>
+	<stop  offset="0.8922" style="stop-color:#656565"/>
+	<stop  offset="1" style="stop-color:#262626"/>
+</linearGradient>
+<path fill="url(#SVGID_3_)" d="M72.174,212.5c-1.656,0-3-1.344-3-3v-182c0-1.657,1.344-3,3-3h84c1.658,0,3,1.343,3,3v182
+	c0,1.656-1.342,3-3,3H72.174z"/>
+<radialGradient id="SVGID_4_" cx="114.1738" cy="26.5005" r="45.5004" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.6108" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<path fill-opacity="0.5" fill="url(#SVGID_4_)" d="M156.174,24.5h-84c-1.656,0-3,1.343-3,3v1c0-1.657,1.344-3,3-3h84c1.658,0,3,1.343,3,3
+	v-1C159.174,25.843,157.832,24.5,156.174,24.5z"/>
+<rect x="96.803" y="23.5" fill-opacity="0.35" width="34.74" height="1"/>
+<rect x="96.803" y="22.5" fill-opacity="0.15" width="34.74" height="1"/>
+<linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="69.1738" y1="118.5" x2="159.1738" y2="118.5">
+	<stop  offset="0.0061" style="stop-color:#49494A"/>
+	<stop  offset="0.6545" style="stop-color:#121212"/>
+	<stop  offset="1" style="stop-color:#49494A"/>
+</linearGradient>
+<rect x="69.174" y="34.5" fill="url(#SVGID_5_)" width="90" height="168"/>
+<linearGradient id="SVGID_6_" gradientUnits="userSpaceOnUse" x1="114.1738" y1="37.9175" x2="114.1738" y2="201.0923">
+	<stop  offset="0.0061" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.125" style="stop-color:#999999"/>
+	<stop  offset="0.25" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.375" style="stop-color:#999999"/>
+	<stop  offset="0.5" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.625" style="stop-color:#999999"/>
+	<stop  offset="0.75" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.875" style="stop-color:#999999"/>
+	<stop  offset="1" style="stop-color:#FFFFFF"/>
+</linearGradient>
+<rect x="69.174" y="35" fill-opacity="0.05" fill="url(#SVGID_6_)" width="90" height="167.5"/>
+<linearGradient id="SVGID_7_" gradientUnits="userSpaceOnUse" x1="69.1738" y1="118.5" x2="159.1738" y2="118.5">
+	<stop  offset="0" style="stop-color:#B8D400"/>
+	<stop  offset="0.3" style="stop-color:#EBED6F"/>
+	<stop  offset="0.7152" style="stop-color:#ABD600"/>
+	<stop  offset="0.8563" style="stop-color:#D0DB53"/>
+	<stop  offset="1" style="stop-color:#B8D400"/>
+</linearGradient>
+<rect x="69.174" y="34.5" fill="url(#SVGID_7_)" width="90" height="168"/>
+<linearGradient id="SVGID_8_" gradientUnits="userSpaceOnUse" x1="69.1738" y1="118.5" x2="159.1738" y2="118.5">
+	<stop  offset="0" style="stop-color:#5AA913"/>
+	<stop  offset="0.3" style="stop-color:#B3F241"/>
+	<stop  offset="0.7006" style="stop-color:#58A813"/>
+	<stop  offset="0.8563" style="stop-color:#AAD774"/>
+	<stop  offset="1" style="stop-color:#8FD31D"/>
+</linearGradient>
+<rect x="69.174" y="34.5" fill-opacity="0.75" fill="url(#SVGID_8_)" width="90" height="168"/>
+<linearGradient id="SVGID_9_" gradientUnits="userSpaceOnUse" x1="114.1738" y1="37.2651" x2="114.1738" y2="200.5855">
+	<stop  offset="0.0061" style="stop-color:#F4FFB0;stop-opacity:0.8"/>
+	<stop  offset="0.125" style="stop-color:#51A307"/>
+	<stop  offset="0.25" style="stop-color:#F4FFB0;stop-opacity:0.8"/>
+	<stop  offset="0.375" style="stop-color:#51A307"/>
+	<stop  offset="0.5" style="stop-color:#F4FFB0;stop-opacity:0.8"/>
+	<stop  offset="0.625" style="stop-color:#51A307"/>
+	<stop  offset="0.75" style="stop-color:#F4FFB0;stop-opacity:0.8"/>
+	<stop  offset="0.875" style="stop-color:#51A307"/>
+	<stop  offset="1" style="stop-color:#F4FFB0;stop-opacity:0.8"/>
+</linearGradient>
+<rect x="69.174" y="35" fill-opacity="0.1" fill="url(#SVGID_9_)" width="90" height="167.5"/>
+<linearGradient id="SVGID_10_" gradientUnits="userSpaceOnUse" x1="94.1738" y1="21.5645" x2="94.1738" y2="197.6018">
+	<stop  offset="0" style="stop-color:#FBFBFF"/>
+	<stop  offset="1" style="stop-color:#FFFFFF;stop-opacity:0.2"/>
+</linearGradient>
+<rect x="79.174" y="24.5" fill-opacity="0.5" fill="url(#SVGID_10_)" width="30" height="188"/>
+<rect x="136.174" y="24.5" fill-opacity="0.15" fill="#FFFFFF" width="14" height="188"/>
+<linearGradient id="SVGID_11_" gradientUnits="userSpaceOnUse" x1="69.1738" y1="34.0005" x2="159.1738" y2="34.0005">
+	<stop  offset="0" style="stop-color:#000000"/>
+	<stop  offset="0.5" style="stop-color:#333333"/>
+	<stop  offset="1" style="stop-color:#000000"/>
+</linearGradient>
+<rect x="69.174" y="33.5" fill="url(#SVGID_11_)" width="90" height="1"/>
+<radialGradient id="SVGID_12_" cx="114.1738" cy="35.0005" r="48.3338" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.6108" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<rect x="69.174" y="34.5" fill-opacity="0.75" fill="url(#SVGID_12_)" width="90" height="1"/>
+<radialGradient id="SVGID_13_" cx="114.1738" cy="203" r="45.0001" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.7" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<rect x="69.174" y="202.5" fill-opacity="0.75" fill="url(#SVGID_13_)" width="90" height="1"/>
+<linearGradient id="SVGID_14_" gradientUnits="userSpaceOnUse" x1="69.1738" y1="202" x2="159.1738" y2="202">
+	<stop  offset="0" style="stop-color:#000000"/>
+	<stop  offset="0.5" style="stop-color:#666666"/>
+	<stop  offset="1" style="stop-color:#151515"/>
+</linearGradient>
+<rect x="69.174" y="201.5" fill="url(#SVGID_14_)" width="90" height="1"/>
+<rect x="121.174" y="15.5" fill-opacity="0.15" fill="#FFFFFF" width="7" height="9"/>
+<rect x="101.174" y="15.5" fill-opacity="0.25" fill="#FFFFFF" width="9" height="9"/>
+<rect id="_x3C_Slice_x3E__10_" fill="none" width="228" height="228"/>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/SysAp/Data/qtg_anim_battery_full_03.svg	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,134 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
+	<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
+]>
+<svg version="1.1"
+	 xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+	 x="0px" y="0px" width="228px" height="228px" viewBox="0 0 228 228" enable-background="new 0 0 228 228" xml:space="preserve">
+<defs>
+</defs>
+<rect fill="#000000" width="228" height="228"/>
+<path fill-opacity="0.15" fill="#E6E6E6" d="M72.174,218.5c-4.963,0-9-4.037-9-9v-182c0-4.963,4.037-9,9-9h18.629c0-4.963,4.037-9,9-9
+	h28.74c4.963,0,9,4.037,9,9h18.631c4.963,0,9,4.037,9,9v182c0,4.963-4.037,9-9,9H72.174z"/>
+<path fill-opacity="0.15" fill="#E6E6E6" d="M72.174,216.5c-3.859,0-7-3.141-7-7v-182c0-3.86,3.141-7,7-7h20.629v-2c0-3.86,3.141-7,7-7
+	h28.74c3.859,0,7,3.14,7,7v2h20.631c3.859,0,7,3.14,7,7v182c0,3.859-3.141,7-7,7H72.174z"/>
+<path fill-opacity="0.15" fill="#E6E6E6" d="M72.174,214.5c-2.757,0-5-2.242-5-5v-182c0-2.757,2.243-5,5-5h22.629v-4c0-2.757,2.243-5,5-5
+	h28.74c2.757,0,5,2.243,5,5v4h22.631c2.757,0,5,2.243,5,5v182c0,2.758-2.243,5-5,5H72.174z"/>
+<path fill-opacity="0.15" fill="#E6E6E6" d="M72.174,213.5c-2.206,0-4-1.795-4-4v-182c0-2.206,1.794-4,4-4h23.629v-5c0-2.206,1.794-4,4-4
+	h28.74c2.206,0,4,1.794,4,4v5h23.631c2.206,0,4,1.794,4,4v182c0,2.205-1.794,4-4,4H72.174z"/>
+<path fill-opacity="0.1" fill="#E6E6E6" d="M156.174,24.5h-24.631v-6c0-1.658-1.342-3-3-3h-28.74c-1.656,0-3,1.342-3,3v6H72.174
+	c-1.656,0-3,1.343-3,3v182c0,1.656,1.344,3,3,3h84c1.658,0,3-1.344,3-3v-182C159.174,25.843,157.832,24.5,156.174,24.5z"/>
+<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="96.8027" y1="20.0005" x2="131.543" y2="20.0005">
+	<stop  offset="0.2335" style="stop-color:#9C9C9C"/>
+	<stop  offset="0.7" style="stop-color:#1A1A1A"/>
+	<stop  offset="0.8922" style="stop-color:#656565"/>
+	<stop  offset="1" style="stop-color:#272727"/>
+</linearGradient>
+<path fill="url(#SVGID_1_)" d="M131.543,24.5v-6c0-1.658-1.342-3-3-3h-28.74c-1.656,0-3,1.342-3,3v6H131.543z"/>
+<radialGradient id="SVGID_2_" cx="114.1729" cy="17.5005" r="12.3637" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.6108" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<path fill-opacity="0.5" fill="url(#SVGID_2_)" d="M128.543,15.5h-28.74c-1.656,0-3,1.342-3,3v1c0-1.658,1.344-3,3-3h28.74
+	c1.658,0,3,1.342,3,3v-1C131.543,16.842,130.201,15.5,128.543,15.5z"/>
+<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="69.1738" y1="118.5" x2="159.1738" y2="118.5">
+	<stop  offset="0.006" style="stop-color:#262626"/>
+	<stop  offset="0.0719" style="stop-color:#4D4D4D"/>
+	<stop  offset="0.2335" style="stop-color:#CCCCCC"/>
+	<stop  offset="0.7" style="stop-color:#1A1A1A"/>
+	<stop  offset="0.8922" style="stop-color:#656565"/>
+	<stop  offset="1" style="stop-color:#262626"/>
+</linearGradient>
+<path fill="url(#SVGID_3_)" d="M72.174,212.5c-1.656,0-3-1.344-3-3v-182c0-1.657,1.344-3,3-3h84c1.658,0,3,1.343,3,3v182
+	c0,1.656-1.342,3-3,3H72.174z"/>
+<radialGradient id="SVGID_4_" cx="114.1738" cy="26.5005" r="45.5004" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.6108" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<path fill-opacity="0.5" fill="url(#SVGID_4_)" d="M156.174,24.5h-84c-1.656,0-3,1.343-3,3v1c0-1.657,1.344-3,3-3h84c1.658,0,3,1.343,3,3
+	v-1C159.174,25.843,157.832,24.5,156.174,24.5z"/>
+<rect x="96.803" y="23.5" fill-opacity="0.35" width="34.74" height="1"/>
+<rect x="96.803" y="22.5" fill-opacity="0.15" width="34.74" height="1"/>
+<linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="69.1738" y1="118.5" x2="159.1738" y2="118.5">
+	<stop  offset="0.0061" style="stop-color:#49494A"/>
+	<stop  offset="0.6545" style="stop-color:#121212"/>
+	<stop  offset="1" style="stop-color:#49494A"/>
+</linearGradient>
+<rect x="69.174" y="34.5" fill="url(#SVGID_5_)" width="90" height="168"/>
+<linearGradient id="SVGID_6_" gradientUnits="userSpaceOnUse" x1="114.1738" y1="37.9175" x2="114.1738" y2="201.0923">
+	<stop  offset="0.0061" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.125" style="stop-color:#999999"/>
+	<stop  offset="0.25" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.375" style="stop-color:#999999"/>
+	<stop  offset="0.5" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.625" style="stop-color:#999999"/>
+	<stop  offset="0.75" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.875" style="stop-color:#999999"/>
+	<stop  offset="1" style="stop-color:#FFFFFF"/>
+</linearGradient>
+<rect x="69.174" y="35" fill-opacity="0.05" fill="url(#SVGID_6_)" width="90" height="167.5"/>
+<linearGradient id="SVGID_7_" gradientUnits="userSpaceOnUse" x1="69.1738" y1="118.5" x2="159.1738" y2="118.5">
+	<stop  offset="0" style="stop-color:#B8D400"/>
+	<stop  offset="0.3" style="stop-color:#EBED6F"/>
+	<stop  offset="0.7152" style="stop-color:#ABD600"/>
+	<stop  offset="0.8563" style="stop-color:#D0DB53"/>
+	<stop  offset="1" style="stop-color:#B8D400"/>
+</linearGradient>
+<rect x="69.174" y="34.5" fill="url(#SVGID_7_)" width="90" height="168"/>
+<linearGradient id="SVGID_8_" gradientUnits="userSpaceOnUse" x1="69.1738" y1="118.5" x2="159.1738" y2="118.5">
+	<stop  offset="0" style="stop-color:#5AA913"/>
+	<stop  offset="0.3" style="stop-color:#B3F241"/>
+	<stop  offset="0.7006" style="stop-color:#58A813"/>
+	<stop  offset="0.8563" style="stop-color:#AAD774"/>
+	<stop  offset="1" style="stop-color:#8FD31D"/>
+</linearGradient>
+<rect x="69.174" y="34.5" fill-opacity="0.5" fill="url(#SVGID_8_)" width="90" height="168"/>
+<linearGradient id="SVGID_9_" gradientUnits="userSpaceOnUse" x1="114.1738" y1="37.2651" x2="114.1738" y2="200.5855">
+	<stop  offset="0.0061" style="stop-color:#F4FFB0;stop-opacity:0.8"/>
+	<stop  offset="0.125" style="stop-color:#51A307"/>
+	<stop  offset="0.25" style="stop-color:#F4FFB0;stop-opacity:0.8"/>
+	<stop  offset="0.375" style="stop-color:#51A307"/>
+	<stop  offset="0.5" style="stop-color:#F4FFB0;stop-opacity:0.8"/>
+	<stop  offset="0.625" style="stop-color:#51A307"/>
+	<stop  offset="0.75" style="stop-color:#F4FFB0;stop-opacity:0.8"/>
+	<stop  offset="0.875" style="stop-color:#51A307"/>
+	<stop  offset="1" style="stop-color:#F4FFB0;stop-opacity:0.8"/>
+</linearGradient>
+<rect x="69.174" y="35" fill-opacity="0.1" fill="url(#SVGID_9_)" width="90" height="167.5"/>
+<linearGradient id="SVGID_10_" gradientUnits="userSpaceOnUse" x1="94.1738" y1="21.5645" x2="94.1738" y2="197.6018">
+	<stop  offset="0" style="stop-color:#FBFBFF"/>
+	<stop  offset="1" style="stop-color:#FFFFFF;stop-opacity:0.2"/>
+</linearGradient>
+<rect x="79.174" y="24.5" fill-opacity="0.5" fill="url(#SVGID_10_)" width="30" height="188"/>
+<rect x="136.174" y="24.5" fill-opacity="0.15" fill="#FFFFFF" width="14" height="188"/>
+<linearGradient id="SVGID_11_" gradientUnits="userSpaceOnUse" x1="69.1738" y1="34.0005" x2="159.1738" y2="34.0005">
+	<stop  offset="0" style="stop-color:#000000"/>
+	<stop  offset="0.5" style="stop-color:#333333"/>
+	<stop  offset="1" style="stop-color:#000000"/>
+</linearGradient>
+<rect x="69.174" y="33.5" fill="url(#SVGID_11_)" width="90" height="1"/>
+<radialGradient id="SVGID_12_" cx="114.1738" cy="35.0005" r="48.3338" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.6108" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<rect x="69.174" y="34.5" fill-opacity="0.75" fill="url(#SVGID_12_)" width="90" height="1"/>
+<radialGradient id="SVGID_13_" cx="114.1738" cy="203" r="45.0001" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.7" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<rect x="69.174" y="202.5" fill-opacity="0.75" fill="url(#SVGID_13_)" width="90" height="1"/>
+<linearGradient id="SVGID_14_" gradientUnits="userSpaceOnUse" x1="69.1738" y1="202" x2="159.1738" y2="202">
+	<stop  offset="0" style="stop-color:#000000"/>
+	<stop  offset="0.5" style="stop-color:#666666"/>
+	<stop  offset="1" style="stop-color:#151515"/>
+</linearGradient>
+<rect x="69.174" y="201.5" fill="url(#SVGID_14_)" width="90" height="1"/>
+<rect x="121.174" y="15.5" fill-opacity="0.15" fill="#FFFFFF" width="7" height="9"/>
+<rect x="101.174" y="15.5" fill-opacity="0.25" fill="#FFFFFF" width="9" height="9"/>
+<rect id="_x3C_Slice_x3E__10_" fill="none" width="228" height="228"/>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/SysAp/Data/qtg_anim_battery_full_04.svg	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,134 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
+	<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
+]>
+<svg version="1.1"
+	 xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+	 x="0px" y="0px" width="228px" height="228px" viewBox="0 0 228 228" enable-background="new 0 0 228 228" xml:space="preserve">
+<defs>
+</defs>
+<rect fill="#000000" width="228" height="228"/>
+<path fill-opacity="0.15" fill="#E6E6E6" d="M72.174,218.5c-4.963,0-9-4.037-9-9v-182c0-4.963,4.037-9,9-9h18.629c0-4.963,4.037-9,9-9
+	h28.74c4.963,0,9,4.037,9,9h18.631c4.963,0,9,4.037,9,9v182c0,4.963-4.037,9-9,9H72.174z"/>
+<path fill-opacity="0.15" fill="#E6E6E6" d="M72.174,216.5c-3.859,0-7-3.141-7-7v-182c0-3.86,3.141-7,7-7h20.629v-2c0-3.86,3.141-7,7-7
+	h28.74c3.859,0,7,3.14,7,7v2h20.631c3.859,0,7,3.14,7,7v182c0,3.859-3.141,7-7,7H72.174z"/>
+<path fill-opacity="0.15" fill="#E6E6E6" d="M72.174,214.5c-2.757,0-5-2.242-5-5v-182c0-2.757,2.243-5,5-5h22.629v-4c0-2.757,2.243-5,5-5
+	h28.74c2.757,0,5,2.243,5,5v4h22.631c2.757,0,5,2.243,5,5v182c0,2.758-2.243,5-5,5H72.174z"/>
+<path fill-opacity="0.15" fill="#E6E6E6" d="M72.174,213.5c-2.206,0-4-1.795-4-4v-182c0-2.206,1.794-4,4-4h23.629v-5c0-2.206,1.794-4,4-4
+	h28.74c2.206,0,4,1.794,4,4v5h23.631c2.206,0,4,1.794,4,4v182c0,2.205-1.794,4-4,4H72.174z"/>
+<path fill-opacity="0.1" fill="#E6E6E6" d="M156.174,24.5h-24.631v-6c0-1.658-1.342-3-3-3h-28.74c-1.656,0-3,1.342-3,3v6H72.174
+	c-1.656,0-3,1.343-3,3v182c0,1.656,1.344,3,3,3h84c1.658,0,3-1.344,3-3v-182C159.174,25.843,157.832,24.5,156.174,24.5z"/>
+<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="96.8027" y1="20.0005" x2="131.543" y2="20.0005">
+	<stop  offset="0.2335" style="stop-color:#9C9C9C"/>
+	<stop  offset="0.7" style="stop-color:#1A1A1A"/>
+	<stop  offset="0.8922" style="stop-color:#656565"/>
+	<stop  offset="1" style="stop-color:#272727"/>
+</linearGradient>
+<path fill="url(#SVGID_1_)" d="M131.543,24.5v-6c0-1.658-1.342-3-3-3h-28.74c-1.656,0-3,1.342-3,3v6H131.543z"/>
+<radialGradient id="SVGID_2_" cx="114.1729" cy="17.5005" r="12.3637" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.6108" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<path fill-opacity="0.5" fill="url(#SVGID_2_)" d="M128.543,15.5h-28.74c-1.656,0-3,1.342-3,3v1c0-1.658,1.344-3,3-3h28.74
+	c1.658,0,3,1.342,3,3v-1C131.543,16.842,130.201,15.5,128.543,15.5z"/>
+<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="69.1738" y1="118.5" x2="159.1738" y2="118.5">
+	<stop  offset="0.006" style="stop-color:#262626"/>
+	<stop  offset="0.0719" style="stop-color:#4D4D4D"/>
+	<stop  offset="0.2335" style="stop-color:#CCCCCC"/>
+	<stop  offset="0.7" style="stop-color:#1A1A1A"/>
+	<stop  offset="0.8922" style="stop-color:#656565"/>
+	<stop  offset="1" style="stop-color:#262626"/>
+</linearGradient>
+<path fill="url(#SVGID_3_)" d="M72.174,212.5c-1.656,0-3-1.344-3-3v-182c0-1.657,1.344-3,3-3h84c1.658,0,3,1.343,3,3v182
+	c0,1.656-1.342,3-3,3H72.174z"/>
+<radialGradient id="SVGID_4_" cx="114.1738" cy="26.5005" r="45.5004" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.6108" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<path fill-opacity="0.5" fill="url(#SVGID_4_)" d="M156.174,24.5h-84c-1.656,0-3,1.343-3,3v1c0-1.657,1.344-3,3-3h84c1.658,0,3,1.343,3,3
+	v-1C159.174,25.843,157.832,24.5,156.174,24.5z"/>
+<rect x="96.803" y="23.5" fill-opacity="0.35" width="34.74" height="1"/>
+<rect x="96.803" y="22.5" fill-opacity="0.15" width="34.74" height="1"/>
+<linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="69.1738" y1="118.5" x2="159.1738" y2="118.5">
+	<stop  offset="0.0061" style="stop-color:#49494A"/>
+	<stop  offset="0.6545" style="stop-color:#121212"/>
+	<stop  offset="1" style="stop-color:#49494A"/>
+</linearGradient>
+<rect x="69.174" y="34.5" fill="url(#SVGID_5_)" width="90" height="168"/>
+<linearGradient id="SVGID_6_" gradientUnits="userSpaceOnUse" x1="114.1738" y1="37.9175" x2="114.1738" y2="201.0923">
+	<stop  offset="0.0061" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.125" style="stop-color:#999999"/>
+	<stop  offset="0.25" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.375" style="stop-color:#999999"/>
+	<stop  offset="0.5" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.625" style="stop-color:#999999"/>
+	<stop  offset="0.75" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.875" style="stop-color:#999999"/>
+	<stop  offset="1" style="stop-color:#FFFFFF"/>
+</linearGradient>
+<rect x="69.174" y="35" fill-opacity="0.05" fill="url(#SVGID_6_)" width="90" height="167.5"/>
+<linearGradient id="SVGID_7_" gradientUnits="userSpaceOnUse" x1="69.1738" y1="118.5" x2="159.1738" y2="118.5">
+	<stop  offset="0" style="stop-color:#B8D400"/>
+	<stop  offset="0.3" style="stop-color:#EBED6F"/>
+	<stop  offset="0.7152" style="stop-color:#ABD600"/>
+	<stop  offset="0.8563" style="stop-color:#D0DB53"/>
+	<stop  offset="1" style="stop-color:#B8D400"/>
+</linearGradient>
+<rect x="69.174" y="34.5" fill="url(#SVGID_7_)" width="90" height="168"/>
+<linearGradient id="SVGID_8_" gradientUnits="userSpaceOnUse" x1="69.1738" y1="118.5" x2="159.1738" y2="118.5">
+	<stop  offset="0" style="stop-color:#5AA913"/>
+	<stop  offset="0.3" style="stop-color:#B3F241"/>
+	<stop  offset="0.7006" style="stop-color:#58A813"/>
+	<stop  offset="0.8563" style="stop-color:#AAD774"/>
+	<stop  offset="1" style="stop-color:#8FD31D"/>
+</linearGradient>
+<rect x="69.174" y="34.5" fill-opacity="0.25" fill="url(#SVGID_8_)" width="90" height="168"/>
+<linearGradient id="SVGID_9_" gradientUnits="userSpaceOnUse" x1="114.1738" y1="37.2651" x2="114.1738" y2="200.5855">
+	<stop  offset="0.0061" style="stop-color:#F4FFB0;stop-opacity:0.8"/>
+	<stop  offset="0.125" style="stop-color:#51A307"/>
+	<stop  offset="0.25" style="stop-color:#F4FFB0;stop-opacity:0.8"/>
+	<stop  offset="0.375" style="stop-color:#51A307"/>
+	<stop  offset="0.5" style="stop-color:#F4FFB0;stop-opacity:0.8"/>
+	<stop  offset="0.625" style="stop-color:#51A307"/>
+	<stop  offset="0.75" style="stop-color:#F4FFB0;stop-opacity:0.8"/>
+	<stop  offset="0.875" style="stop-color:#51A307"/>
+	<stop  offset="1" style="stop-color:#F4FFB0;stop-opacity:0.8"/>
+</linearGradient>
+<rect x="69.174" y="35" fill-opacity="0.05" fill="url(#SVGID_9_)" width="90" height="167.5"/>
+<linearGradient id="SVGID_10_" gradientUnits="userSpaceOnUse" x1="94.1738" y1="21.5645" x2="94.1738" y2="197.6018">
+	<stop  offset="0" style="stop-color:#FBFBFF"/>
+	<stop  offset="1" style="stop-color:#FFFFFF;stop-opacity:0.2"/>
+</linearGradient>
+<rect x="79.174" y="24.5" fill-opacity="0.5" fill="url(#SVGID_10_)" width="30" height="188"/>
+<rect x="136.174" y="24.5" fill-opacity="0.15" fill="#FFFFFF" width="14" height="188"/>
+<linearGradient id="SVGID_11_" gradientUnits="userSpaceOnUse" x1="69.1738" y1="34.0005" x2="159.1738" y2="34.0005">
+	<stop  offset="0" style="stop-color:#000000"/>
+	<stop  offset="0.5" style="stop-color:#333333"/>
+	<stop  offset="1" style="stop-color:#000000"/>
+</linearGradient>
+<rect x="69.174" y="33.5" fill="url(#SVGID_11_)" width="90" height="1"/>
+<radialGradient id="SVGID_12_" cx="114.1738" cy="35.0005" r="48.3338" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.6108" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<rect x="69.174" y="34.5" fill-opacity="0.75" fill="url(#SVGID_12_)" width="90" height="1"/>
+<radialGradient id="SVGID_13_" cx="114.1738" cy="203" r="45.0001" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.7" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<rect x="69.174" y="202.5" fill-opacity="0.75" fill="url(#SVGID_13_)" width="90" height="1"/>
+<linearGradient id="SVGID_14_" gradientUnits="userSpaceOnUse" x1="69.1738" y1="202" x2="159.1738" y2="202">
+	<stop  offset="0" style="stop-color:#000000"/>
+	<stop  offset="0.5" style="stop-color:#666666"/>
+	<stop  offset="1" style="stop-color:#151515"/>
+</linearGradient>
+<rect x="69.174" y="201.5" fill="url(#SVGID_14_)" width="90" height="1"/>
+<rect x="121.174" y="15.5" fill-opacity="0.15" fill="#FFFFFF" width="7" height="9"/>
+<rect x="101.174" y="15.5" fill-opacity="0.25" fill="#FFFFFF" width="9" height="9"/>
+<rect id="_x3C_Slice_x3E__10_" fill="none" width="228" height="228"/>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/SysAp/Data/qtg_anim_battery_full_05.svg	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,134 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
+	<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
+]>
+<svg version="1.1"
+	 xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+	 x="0px" y="0px" width="228px" height="228px" viewBox="0 0 228 228" enable-background="new 0 0 228 228" xml:space="preserve">
+<defs>
+</defs>
+<rect fill="#000000" width="228" height="228"/>
+<path fill-opacity="0.2" fill="#E6E6E6" d="M72.174,218.5c-4.963,0-9-4.037-9-9v-182c0-4.963,4.037-9,9-9h18.629c0-4.963,4.037-9,9-9
+	h28.74c4.963,0,9,4.037,9,9h18.631c4.963,0,9,4.037,9,9v182c0,4.963-4.037,9-9,9H72.174z"/>
+<path fill-opacity="0.2" fill="#E6E6E6" d="M72.174,216.5c-3.859,0-7-3.141-7-7v-182c0-3.86,3.141-7,7-7h20.629v-2c0-3.86,3.141-7,7-7
+	h28.74c3.859,0,7,3.14,7,7v2h20.631c3.859,0,7,3.14,7,7v182c0,3.859-3.141,7-7,7H72.174z"/>
+<path fill-opacity="0.2" fill="#E6E6E6" d="M72.174,214.5c-2.757,0-5-2.242-5-5v-182c0-2.757,2.243-5,5-5h22.629v-4c0-2.757,2.243-5,5-5
+	h28.74c2.757,0,5,2.243,5,5v4h22.631c2.757,0,5,2.243,5,5v182c0,2.758-2.243,5-5,5H72.174z"/>
+<path fill-opacity="0.2" fill="#E6E6E6" d="M72.174,213.5c-2.206,0-4-1.795-4-4v-182c0-2.206,1.794-4,4-4h23.629v-5c0-2.206,1.794-4,4-4
+	h28.74c2.206,0,4,1.794,4,4v5h23.631c2.206,0,4,1.794,4,4v182c0,2.205-1.794,4-4,4H72.174z"/>
+<path fill-opacity="0.1" fill="#E6E6E6" d="M156.174,24.5h-24.631v-6c0-1.658-1.342-3-3-3h-28.74c-1.656,0-3,1.342-3,3v6H72.174
+	c-1.656,0-3,1.343-3,3v182c0,1.656,1.344,3,3,3h84c1.658,0,3-1.344,3-3v-182C159.174,25.843,157.832,24.5,156.174,24.5z"/>
+<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="96.8027" y1="20.0005" x2="131.543" y2="20.0005">
+	<stop  offset="0.2335" style="stop-color:#9C9C9C"/>
+	<stop  offset="0.7" style="stop-color:#1A1A1A"/>
+	<stop  offset="0.8922" style="stop-color:#656565"/>
+	<stop  offset="1" style="stop-color:#272727"/>
+</linearGradient>
+<path fill="url(#SVGID_1_)" d="M131.543,24.5v-6c0-1.658-1.342-3-3-3h-28.74c-1.656,0-3,1.342-3,3v6H131.543z"/>
+<radialGradient id="SVGID_2_" cx="114.1729" cy="17.5005" r="12.3637" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.6108" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<path fill-opacity="0.5" fill="url(#SVGID_2_)" d="M128.543,15.5h-28.74c-1.656,0-3,1.342-3,3v1c0-1.658,1.344-3,3-3h28.74
+	c1.658,0,3,1.342,3,3v-1C131.543,16.842,130.201,15.5,128.543,15.5z"/>
+<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="69.1738" y1="118.5" x2="159.1738" y2="118.5">
+	<stop  offset="0.006" style="stop-color:#262626"/>
+	<stop  offset="0.0719" style="stop-color:#4D4D4D"/>
+	<stop  offset="0.2335" style="stop-color:#CCCCCC"/>
+	<stop  offset="0.7" style="stop-color:#1A1A1A"/>
+	<stop  offset="0.8922" style="stop-color:#656565"/>
+	<stop  offset="1" style="stop-color:#262626"/>
+</linearGradient>
+<path fill="url(#SVGID_3_)" d="M72.174,212.5c-1.656,0-3-1.344-3-3v-182c0-1.657,1.344-3,3-3h84c1.658,0,3,1.343,3,3v182
+	c0,1.656-1.342,3-3,3H72.174z"/>
+<radialGradient id="SVGID_4_" cx="114.1738" cy="26.5005" r="45.5004" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.6108" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<path fill-opacity="0.5" fill="url(#SVGID_4_)" d="M156.174,24.5h-84c-1.656,0-3,1.343-3,3v1c0-1.657,1.344-3,3-3h84c1.658,0,3,1.343,3,3
+	v-1C159.174,25.843,157.832,24.5,156.174,24.5z"/>
+<rect x="96.803" y="23.5" fill-opacity="0.35" width="34.74" height="1"/>
+<rect x="96.803" y="22.5" fill-opacity="0.15" width="34.74" height="1"/>
+<linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="69.1738" y1="118.5" x2="159.1738" y2="118.5">
+	<stop  offset="0.0061" style="stop-color:#49494A"/>
+	<stop  offset="0.6545" style="stop-color:#121212"/>
+	<stop  offset="1" style="stop-color:#49494A"/>
+</linearGradient>
+<rect x="69.174" y="34.5" fill="url(#SVGID_5_)" width="90" height="168"/>
+<linearGradient id="SVGID_6_" gradientUnits="userSpaceOnUse" x1="114.1738" y1="37.9175" x2="114.1738" y2="201.0923">
+	<stop  offset="0.0061" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.125" style="stop-color:#999999"/>
+	<stop  offset="0.25" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.375" style="stop-color:#999999"/>
+	<stop  offset="0.5" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.625" style="stop-color:#999999"/>
+	<stop  offset="0.75" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.875" style="stop-color:#999999"/>
+	<stop  offset="1" style="stop-color:#FFFFFF"/>
+</linearGradient>
+<rect x="69.174" y="35" fill-opacity="0.05" fill="url(#SVGID_6_)" width="90" height="167.5"/>
+<linearGradient id="SVGID_7_" gradientUnits="userSpaceOnUse" x1="69.1738" y1="118.5" x2="159.1738" y2="118.5">
+	<stop  offset="0" style="stop-color:#B8D400"/>
+	<stop  offset="0.3" style="stop-color:#EBED6F"/>
+	<stop  offset="0.7152" style="stop-color:#ABD600"/>
+	<stop  offset="0.8563" style="stop-color:#D0DB53"/>
+	<stop  offset="1" style="stop-color:#B8D400"/>
+</linearGradient>
+<rect x="69.174" y="34.5" fill="url(#SVGID_7_)" width="90" height="168"/>
+<linearGradient id="SVGID_8_" gradientUnits="userSpaceOnUse" x1="69.1738" y1="118.5" x2="159.1738" y2="118.5">
+	<stop  offset="0" style="stop-color:#5AA913"/>
+	<stop  offset="0.3" style="stop-color:#B3F241"/>
+	<stop  offset="0.7006" style="stop-color:#58A813"/>
+	<stop  offset="0.8563" style="stop-color:#AAD774"/>
+	<stop  offset="1" style="stop-color:#8FD31D"/>
+</linearGradient>
+<rect x="69.174" y="34.5" fill-opacity="0" fill="url(#SVGID_8_)" width="90" height="168"/>
+<linearGradient id="SVGID_9_" gradientUnits="userSpaceOnUse" x1="114.1738" y1="37.2651" x2="114.1738" y2="200.5855">
+	<stop  offset="0.0061" style="stop-color:#F4FFB0;stop-opacity:0.8"/>
+	<stop  offset="0.125" style="stop-color:#51A307"/>
+	<stop  offset="0.25" style="stop-color:#F4FFB0;stop-opacity:0.8"/>
+	<stop  offset="0.375" style="stop-color:#51A307"/>
+	<stop  offset="0.5" style="stop-color:#F4FFB0;stop-opacity:0.8"/>
+	<stop  offset="0.625" style="stop-color:#51A307"/>
+	<stop  offset="0.75" style="stop-color:#F4FFB0;stop-opacity:0.8"/>
+	<stop  offset="0.875" style="stop-color:#51A307"/>
+	<stop  offset="1" style="stop-color:#F4FFB0;stop-opacity:0.8"/>
+</linearGradient>
+<rect x="69.174" y="35" fill-opacity="0.05" fill="url(#SVGID_9_)" width="90" height="167.5"/>
+<linearGradient id="SVGID_10_" gradientUnits="userSpaceOnUse" x1="94.1738" y1="21.5645" x2="94.1738" y2="197.6018">
+	<stop  offset="0" style="stop-color:#FBFBFF"/>
+	<stop  offset="1" style="stop-color:#FFFFFF;stop-opacity:0.2"/>
+</linearGradient>
+<rect x="79.174" y="24.5" fill-opacity="0.5" fill="url(#SVGID_10_)" width="30" height="188"/>
+<rect x="136.174" y="24.5" fill-opacity="0.15" fill="#FFFFFF" width="14" height="188"/>
+<linearGradient id="SVGID_11_" gradientUnits="userSpaceOnUse" x1="69.1738" y1="34.0005" x2="159.1738" y2="34.0005">
+	<stop  offset="0" style="stop-color:#000000"/>
+	<stop  offset="0.5" style="stop-color:#333333"/>
+	<stop  offset="1" style="stop-color:#000000"/>
+</linearGradient>
+<rect x="69.174" y="33.5" fill="url(#SVGID_11_)" width="90" height="1"/>
+<radialGradient id="SVGID_12_" cx="114.1738" cy="35.0005" r="48.3338" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.6108" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<rect x="69.174" y="34.5" fill-opacity="0.75" fill="url(#SVGID_12_)" width="90" height="1"/>
+<radialGradient id="SVGID_13_" cx="114.1738" cy="203" r="45.0001" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.7" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<rect x="69.174" y="202.5" fill-opacity="0.75" fill="url(#SVGID_13_)" width="90" height="1"/>
+<linearGradient id="SVGID_14_" gradientUnits="userSpaceOnUse" x1="69.1738" y1="202" x2="159.1738" y2="202">
+	<stop  offset="0" style="stop-color:#000000"/>
+	<stop  offset="0.5" style="stop-color:#666666"/>
+	<stop  offset="1" style="stop-color:#151515"/>
+</linearGradient>
+<rect x="69.174" y="201.5" fill="url(#SVGID_14_)" width="90" height="1"/>
+<rect x="121.174" y="15.5" fill-opacity="0.15" fill="#FFFFFF" width="7" height="9"/>
+<rect x="101.174" y="15.5" fill-opacity="0.25" fill="#FFFFFF" width="9" height="9"/>
+<rect id="_x3C_Slice_x3E__10_" fill="none" width="228" height="228"/>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/SysAp/Data/qtg_anim_battery_full_06.svg	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,134 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
+	<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
+]>
+<svg version="1.1"
+	 xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+	 x="0px" y="0px" width="228px" height="228px" viewBox="0 0 228 228" enable-background="new 0 0 228 228" xml:space="preserve">
+<defs>
+</defs>
+<rect fill="#000000" width="228" height="228"/>
+<path fill-opacity="0.15" fill="#E6E6E6" d="M72.174,218.5c-4.963,0-9-4.037-9-9v-182c0-4.963,4.037-9,9-9h18.629c0-4.963,4.037-9,9-9
+	h28.74c4.963,0,9,4.037,9,9h18.631c4.963,0,9,4.037,9,9v182c0,4.963-4.037,9-9,9H72.174z"/>
+<path fill-opacity="0.15" fill="#E6E6E6" d="M72.174,216.5c-3.859,0-7-3.141-7-7v-182c0-3.86,3.141-7,7-7h20.629v-2c0-3.86,3.141-7,7-7
+	h28.74c3.859,0,7,3.14,7,7v2h20.631c3.859,0,7,3.14,7,7v182c0,3.859-3.141,7-7,7H72.174z"/>
+<path fill-opacity="0.15" fill="#E6E6E6" d="M72.174,214.5c-2.757,0-5-2.242-5-5v-182c0-2.757,2.243-5,5-5h22.629v-4c0-2.757,2.243-5,5-5
+	h28.74c2.757,0,5,2.243,5,5v4h22.631c2.757,0,5,2.243,5,5v182c0,2.758-2.243,5-5,5H72.174z"/>
+<path fill-opacity="0.15" fill="#E6E6E6" d="M72.174,213.5c-2.206,0-4-1.795-4-4v-182c0-2.206,1.794-4,4-4h23.629v-5c0-2.206,1.794-4,4-4
+	h28.74c2.206,0,4,1.794,4,4v5h23.631c2.206,0,4,1.794,4,4v182c0,2.205-1.794,4-4,4H72.174z"/>
+<path fill-opacity="0.1" fill="#E6E6E6" d="M156.174,24.5h-24.631v-6c0-1.658-1.342-3-3-3h-28.74c-1.656,0-3,1.342-3,3v6H72.174
+	c-1.656,0-3,1.343-3,3v182c0,1.656,1.344,3,3,3h84c1.658,0,3-1.344,3-3v-182C159.174,25.843,157.832,24.5,156.174,24.5z"/>
+<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="96.8027" y1="20.0005" x2="131.543" y2="20.0005">
+	<stop  offset="0.2335" style="stop-color:#9C9C9C"/>
+	<stop  offset="0.7" style="stop-color:#1A1A1A"/>
+	<stop  offset="0.8922" style="stop-color:#656565"/>
+	<stop  offset="1" style="stop-color:#272727"/>
+</linearGradient>
+<path fill="url(#SVGID_1_)" d="M131.543,24.5v-6c0-1.658-1.342-3-3-3h-28.74c-1.656,0-3,1.342-3,3v6H131.543z"/>
+<radialGradient id="SVGID_2_" cx="114.1729" cy="17.5005" r="12.3637" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.6108" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<path fill-opacity="0.5" fill="url(#SVGID_2_)" d="M128.543,15.5h-28.74c-1.656,0-3,1.342-3,3v1c0-1.658,1.344-3,3-3h28.74
+	c1.658,0,3,1.342,3,3v-1C131.543,16.842,130.201,15.5,128.543,15.5z"/>
+<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="69.1738" y1="118.5" x2="159.1738" y2="118.5">
+	<stop  offset="0.006" style="stop-color:#262626"/>
+	<stop  offset="0.0719" style="stop-color:#4D4D4D"/>
+	<stop  offset="0.2335" style="stop-color:#CCCCCC"/>
+	<stop  offset="0.7" style="stop-color:#1A1A1A"/>
+	<stop  offset="0.8922" style="stop-color:#656565"/>
+	<stop  offset="1" style="stop-color:#262626"/>
+</linearGradient>
+<path fill="url(#SVGID_3_)" d="M72.174,212.5c-1.656,0-3-1.344-3-3v-182c0-1.657,1.344-3,3-3h84c1.658,0,3,1.343,3,3v182
+	c0,1.656-1.342,3-3,3H72.174z"/>
+<radialGradient id="SVGID_4_" cx="114.1738" cy="26.5005" r="45.5004" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.6108" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<path fill-opacity="0.5" fill="url(#SVGID_4_)" d="M156.174,24.5h-84c-1.656,0-3,1.343-3,3v1c0-1.657,1.344-3,3-3h84c1.658,0,3,1.343,3,3
+	v-1C159.174,25.843,157.832,24.5,156.174,24.5z"/>
+<rect x="96.803" y="23.5" fill-opacity="0.35" width="34.74" height="1"/>
+<rect x="96.803" y="22.5" fill-opacity="0.15" width="34.74" height="1"/>
+<linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="69.1738" y1="118.5" x2="159.1738" y2="118.5">
+	<stop  offset="0.0061" style="stop-color:#49494A"/>
+	<stop  offset="0.6545" style="stop-color:#121212"/>
+	<stop  offset="1" style="stop-color:#49494A"/>
+</linearGradient>
+<rect x="69.174" y="34.5" fill="url(#SVGID_5_)" width="90" height="168"/>
+<linearGradient id="SVGID_6_" gradientUnits="userSpaceOnUse" x1="114.1738" y1="37.9175" x2="114.1738" y2="201.0923">
+	<stop  offset="0.0061" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.125" style="stop-color:#999999"/>
+	<stop  offset="0.25" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.375" style="stop-color:#999999"/>
+	<stop  offset="0.5" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.625" style="stop-color:#999999"/>
+	<stop  offset="0.75" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.875" style="stop-color:#999999"/>
+	<stop  offset="1" style="stop-color:#FFFFFF"/>
+</linearGradient>
+<rect x="69.174" y="35" fill-opacity="0.05" fill="url(#SVGID_6_)" width="90" height="167.5"/>
+<linearGradient id="SVGID_7_" gradientUnits="userSpaceOnUse" x1="69.1738" y1="118.5" x2="159.1738" y2="118.5">
+	<stop  offset="0" style="stop-color:#B8D400"/>
+	<stop  offset="0.3" style="stop-color:#EBED6F"/>
+	<stop  offset="0.7152" style="stop-color:#ABD600"/>
+	<stop  offset="0.8563" style="stop-color:#D0DB53"/>
+	<stop  offset="1" style="stop-color:#B8D400"/>
+</linearGradient>
+<rect x="69.174" y="34.5" fill="url(#SVGID_7_)" width="90" height="168"/>
+<linearGradient id="SVGID_8_" gradientUnits="userSpaceOnUse" x1="69.1738" y1="118.5" x2="159.1738" y2="118.5">
+	<stop  offset="0" style="stop-color:#5AA913"/>
+	<stop  offset="0.3" style="stop-color:#B3F241"/>
+	<stop  offset="0.7006" style="stop-color:#58A813"/>
+	<stop  offset="0.8563" style="stop-color:#AAD774"/>
+	<stop  offset="1" style="stop-color:#8FD31D"/>
+</linearGradient>
+<rect x="69.174" y="34.5" fill-opacity="0.2" fill="url(#SVGID_8_)" width="90" height="168"/>
+<linearGradient id="SVGID_9_" gradientUnits="userSpaceOnUse" x1="114.1738" y1="37.2651" x2="114.1738" y2="200.5855">
+	<stop  offset="0.0061" style="stop-color:#F4FFB0;stop-opacity:0.8"/>
+	<stop  offset="0.125" style="stop-color:#51A307"/>
+	<stop  offset="0.25" style="stop-color:#F4FFB0;stop-opacity:0.8"/>
+	<stop  offset="0.375" style="stop-color:#51A307"/>
+	<stop  offset="0.5" style="stop-color:#F4FFB0;stop-opacity:0.8"/>
+	<stop  offset="0.625" style="stop-color:#51A307"/>
+	<stop  offset="0.75" style="stop-color:#F4FFB0;stop-opacity:0.8"/>
+	<stop  offset="0.875" style="stop-color:#51A307"/>
+	<stop  offset="1" style="stop-color:#F4FFB0;stop-opacity:0.8"/>
+</linearGradient>
+<rect x="69.174" y="35" fill-opacity="0.05" fill="url(#SVGID_9_)" width="90" height="167.5"/>
+<linearGradient id="SVGID_10_" gradientUnits="userSpaceOnUse" x1="94.1738" y1="21.5645" x2="94.1738" y2="197.6018">
+	<stop  offset="0" style="stop-color:#FBFBFF"/>
+	<stop  offset="1" style="stop-color:#FFFFFF;stop-opacity:0.2"/>
+</linearGradient>
+<rect x="79.174" y="24.5" fill-opacity="0.5" fill="url(#SVGID_10_)" width="30" height="188"/>
+<rect x="136.174" y="24.5" fill-opacity="0.15" fill="#FFFFFF" width="14" height="188"/>
+<linearGradient id="SVGID_11_" gradientUnits="userSpaceOnUse" x1="69.1738" y1="34.0005" x2="159.1738" y2="34.0005">
+	<stop  offset="0" style="stop-color:#000000"/>
+	<stop  offset="0.5" style="stop-color:#333333"/>
+	<stop  offset="1" style="stop-color:#000000"/>
+</linearGradient>
+<rect x="69.174" y="33.5" fill="url(#SVGID_11_)" width="90" height="1"/>
+<radialGradient id="SVGID_12_" cx="114.1738" cy="35.0005" r="48.3338" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.6108" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<rect x="69.174" y="34.5" fill-opacity="0.75" fill="url(#SVGID_12_)" width="90" height="1"/>
+<radialGradient id="SVGID_13_" cx="114.1738" cy="203" r="45.0001" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.7" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<rect x="69.174" y="202.5" fill-opacity="0.75" fill="url(#SVGID_13_)" width="90" height="1"/>
+<linearGradient id="SVGID_14_" gradientUnits="userSpaceOnUse" x1="69.1738" y1="202" x2="159.1738" y2="202">
+	<stop  offset="0" style="stop-color:#000000"/>
+	<stop  offset="0.5" style="stop-color:#666666"/>
+	<stop  offset="1" style="stop-color:#151515"/>
+</linearGradient>
+<rect x="69.174" y="201.5" fill="url(#SVGID_14_)" width="90" height="1"/>
+<rect x="121.174" y="15.5" fill-opacity="0.15" fill="#FFFFFF" width="7" height="9"/>
+<rect x="101.174" y="15.5" fill-opacity="0.25" fill="#FFFFFF" width="9" height="9"/>
+<rect id="_x3C_Slice_x3E__10_" fill="none" width="228" height="228"/>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/SysAp/Data/qtg_anim_battery_full_07.svg	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,134 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
+	<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
+]>
+<svg version="1.1"
+	 xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+	 x="0px" y="0px" width="228px" height="228px" viewBox="0 0 228 228" enable-background="new 0 0 228 228" xml:space="preserve">
+<defs>
+</defs>
+<rect fill="#000000" width="228" height="228"/>
+<path fill-opacity="0.15" fill="#E6E6E6" d="M72.174,218.5c-4.963,0-9-4.037-9-9v-182c0-4.963,4.037-9,9-9h18.629c0-4.963,4.037-9,9-9
+	h28.74c4.963,0,9,4.037,9,9h18.631c4.963,0,9,4.037,9,9v182c0,4.963-4.037,9-9,9H72.174z"/>
+<path fill-opacity="0.15" fill="#E6E6E6" d="M72.174,216.5c-3.859,0-7-3.141-7-7v-182c0-3.86,3.141-7,7-7h20.629v-2c0-3.86,3.141-7,7-7
+	h28.74c3.859,0,7,3.14,7,7v2h20.631c3.859,0,7,3.14,7,7v182c0,3.859-3.141,7-7,7H72.174z"/>
+<path fill-opacity="0.15" fill="#E6E6E6" d="M72.174,214.5c-2.757,0-5-2.242-5-5v-182c0-2.757,2.243-5,5-5h22.629v-4c0-2.757,2.243-5,5-5
+	h28.74c2.757,0,5,2.243,5,5v4h22.631c2.757,0,5,2.243,5,5v182c0,2.758-2.243,5-5,5H72.174z"/>
+<path fill-opacity="0.15" fill="#E6E6E6" d="M72.174,213.5c-2.206,0-4-1.795-4-4v-182c0-2.206,1.794-4,4-4h23.629v-5c0-2.206,1.794-4,4-4
+	h28.74c2.206,0,4,1.794,4,4v5h23.631c2.206,0,4,1.794,4,4v182c0,2.205-1.794,4-4,4H72.174z"/>
+<path fill-opacity="0.1" fill="#E6E6E6" d="M156.174,24.5h-24.631v-6c0-1.658-1.342-3-3-3h-28.74c-1.656,0-3,1.342-3,3v6H72.174
+	c-1.656,0-3,1.343-3,3v182c0,1.656,1.344,3,3,3h84c1.658,0,3-1.344,3-3v-182C159.174,25.843,157.832,24.5,156.174,24.5z"/>
+<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="96.8027" y1="20.0005" x2="131.543" y2="20.0005">
+	<stop  offset="0.2335" style="stop-color:#9C9C9C"/>
+	<stop  offset="0.7" style="stop-color:#1A1A1A"/>
+	<stop  offset="0.8922" style="stop-color:#656565"/>
+	<stop  offset="1" style="stop-color:#272727"/>
+</linearGradient>
+<path fill="url(#SVGID_1_)" d="M131.543,24.5v-6c0-1.658-1.342-3-3-3h-28.74c-1.656,0-3,1.342-3,3v6H131.543z"/>
+<radialGradient id="SVGID_2_" cx="114.1729" cy="17.5005" r="12.3637" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.6108" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<path fill-opacity="0.5" fill="url(#SVGID_2_)" d="M128.543,15.5h-28.74c-1.656,0-3,1.342-3,3v1c0-1.658,1.344-3,3-3h28.74
+	c1.658,0,3,1.342,3,3v-1C131.543,16.842,130.201,15.5,128.543,15.5z"/>
+<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="69.1738" y1="118.5" x2="159.1738" y2="118.5">
+	<stop  offset="0.006" style="stop-color:#262626"/>
+	<stop  offset="0.0719" style="stop-color:#4D4D4D"/>
+	<stop  offset="0.2335" style="stop-color:#CCCCCC"/>
+	<stop  offset="0.7" style="stop-color:#1A1A1A"/>
+	<stop  offset="0.8922" style="stop-color:#656565"/>
+	<stop  offset="1" style="stop-color:#262626"/>
+</linearGradient>
+<path fill="url(#SVGID_3_)" d="M72.174,212.5c-1.656,0-3-1.344-3-3v-182c0-1.657,1.344-3,3-3h84c1.658,0,3,1.343,3,3v182
+	c0,1.656-1.342,3-3,3H72.174z"/>
+<radialGradient id="SVGID_4_" cx="114.1738" cy="26.5005" r="45.5004" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.6108" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<path fill-opacity="0.5" fill="url(#SVGID_4_)" d="M156.174,24.5h-84c-1.656,0-3,1.343-3,3v1c0-1.657,1.344-3,3-3h84c1.658,0,3,1.343,3,3
+	v-1C159.174,25.843,157.832,24.5,156.174,24.5z"/>
+<rect x="96.803" y="23.5" fill-opacity="0.35" width="34.74" height="1"/>
+<rect x="96.803" y="22.5" fill-opacity="0.15" width="34.74" height="1"/>
+<linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="69.1738" y1="118.5" x2="159.1738" y2="118.5">
+	<stop  offset="0.0061" style="stop-color:#49494A"/>
+	<stop  offset="0.6545" style="stop-color:#121212"/>
+	<stop  offset="1" style="stop-color:#49494A"/>
+</linearGradient>
+<rect x="69.174" y="34.5" fill="url(#SVGID_5_)" width="90" height="168"/>
+<linearGradient id="SVGID_6_" gradientUnits="userSpaceOnUse" x1="114.1738" y1="37.9175" x2="114.1738" y2="201.0923">
+	<stop  offset="0.0061" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.125" style="stop-color:#999999"/>
+	<stop  offset="0.25" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.375" style="stop-color:#999999"/>
+	<stop  offset="0.5" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.625" style="stop-color:#999999"/>
+	<stop  offset="0.75" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.875" style="stop-color:#999999"/>
+	<stop  offset="1" style="stop-color:#FFFFFF"/>
+</linearGradient>
+<rect x="69.174" y="35" fill-opacity="0.05" fill="url(#SVGID_6_)" width="90" height="167.5"/>
+<linearGradient id="SVGID_7_" gradientUnits="userSpaceOnUse" x1="69.1738" y1="118.5" x2="159.1738" y2="118.5">
+	<stop  offset="0" style="stop-color:#B8D400"/>
+	<stop  offset="0.3" style="stop-color:#EBED6F"/>
+	<stop  offset="0.7152" style="stop-color:#ABD600"/>
+	<stop  offset="0.8563" style="stop-color:#D0DB53"/>
+	<stop  offset="1" style="stop-color:#B8D400"/>
+</linearGradient>
+<rect x="69.174" y="34.5" fill="url(#SVGID_7_)" width="90" height="168"/>
+<linearGradient id="SVGID_8_" gradientUnits="userSpaceOnUse" x1="69.1738" y1="118.5" x2="159.1738" y2="118.5">
+	<stop  offset="0" style="stop-color:#5AA913"/>
+	<stop  offset="0.3" style="stop-color:#B3F241"/>
+	<stop  offset="0.7006" style="stop-color:#58A813"/>
+	<stop  offset="0.8563" style="stop-color:#AAD774"/>
+	<stop  offset="1" style="stop-color:#8FD31D"/>
+</linearGradient>
+<rect x="69.174" y="34.5" fill-opacity="0.4" fill="url(#SVGID_8_)" width="90" height="168"/>
+<linearGradient id="SVGID_9_" gradientUnits="userSpaceOnUse" x1="114.1738" y1="37.2651" x2="114.1738" y2="200.5855">
+	<stop  offset="0.0061" style="stop-color:#F4FFB0;stop-opacity:0.8"/>
+	<stop  offset="0.125" style="stop-color:#51A307"/>
+	<stop  offset="0.25" style="stop-color:#F4FFB0;stop-opacity:0.8"/>
+	<stop  offset="0.375" style="stop-color:#51A307"/>
+	<stop  offset="0.5" style="stop-color:#F4FFB0;stop-opacity:0.8"/>
+	<stop  offset="0.625" style="stop-color:#51A307"/>
+	<stop  offset="0.75" style="stop-color:#F4FFB0;stop-opacity:0.8"/>
+	<stop  offset="0.875" style="stop-color:#51A307"/>
+	<stop  offset="1" style="stop-color:#F4FFB0;stop-opacity:0.8"/>
+</linearGradient>
+<rect x="69.174" y="35" fill-opacity="0.1" fill="url(#SVGID_9_)" width="90" height="167.5"/>
+<linearGradient id="SVGID_10_" gradientUnits="userSpaceOnUse" x1="94.1738" y1="21.5645" x2="94.1738" y2="197.6018">
+	<stop  offset="0" style="stop-color:#FBFBFF"/>
+	<stop  offset="1" style="stop-color:#FFFFFF;stop-opacity:0.2"/>
+</linearGradient>
+<rect x="79.174" y="24.5" fill-opacity="0.5" fill="url(#SVGID_10_)" width="30" height="188"/>
+<rect x="136.174" y="24.5" fill-opacity="0.15" fill="#FFFFFF" width="14" height="188"/>
+<linearGradient id="SVGID_11_" gradientUnits="userSpaceOnUse" x1="69.1738" y1="34.0005" x2="159.1738" y2="34.0005">
+	<stop  offset="0" style="stop-color:#000000"/>
+	<stop  offset="0.5" style="stop-color:#333333"/>
+	<stop  offset="1" style="stop-color:#000000"/>
+</linearGradient>
+<rect x="69.174" y="33.5" fill="url(#SVGID_11_)" width="90" height="1"/>
+<radialGradient id="SVGID_12_" cx="114.1738" cy="35.0005" r="48.3338" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.6108" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<rect x="69.174" y="34.5" fill-opacity="0.75" fill="url(#SVGID_12_)" width="90" height="1"/>
+<radialGradient id="SVGID_13_" cx="114.1738" cy="203" r="45.0001" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.7" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<rect x="69.174" y="202.5" fill-opacity="0.75" fill="url(#SVGID_13_)" width="90" height="1"/>
+<linearGradient id="SVGID_14_" gradientUnits="userSpaceOnUse" x1="69.1738" y1="202" x2="159.1738" y2="202">
+	<stop  offset="0" style="stop-color:#000000"/>
+	<stop  offset="0.5" style="stop-color:#666666"/>
+	<stop  offset="1" style="stop-color:#151515"/>
+</linearGradient>
+<rect x="69.174" y="201.5" fill="url(#SVGID_14_)" width="90" height="1"/>
+<rect x="121.174" y="15.5" fill-opacity="0.15" fill="#FFFFFF" width="7" height="9"/>
+<rect x="101.174" y="15.5" fill-opacity="0.25" fill="#FFFFFF" width="9" height="9"/>
+<rect id="_x3C_Slice_x3E__10_" fill="none" width="228" height="228"/>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/SysAp/Data/qtg_anim_battery_full_08.svg	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,132 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
+	<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
+]>
+<svg version="1.1"
+	 xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+	 x="0px" y="0px" width="228px" height="228px" viewBox="0 0 228 228" enable-background="new 0 0 228 228" xml:space="preserve">
+<defs>
+</defs>
+<rect fill="#000000" width="228" height="228"/>
+<path fill-opacity="0.1" fill="#E6E6E6" d="M72.174,218.5c-4.963,0-9-4.037-9-9v-182c0-4.963,4.037-9,9-9h18.629c0-4.963,4.037-9,9-9
+	h28.74c4.963,0,9,4.037,9,9h18.631c4.963,0,9,4.037,9,9v182c0,4.963-4.037,9-9,9H72.174z"/>
+<path fill-opacity="0.1" fill="#E6E6E6" d="M72.174,216.5c-3.859,0-7-3.141-7-7v-182c0-3.86,3.141-7,7-7h20.629v-2c0-3.86,3.141-7,7-7
+	h28.74c3.859,0,7,3.14,7,7v2h20.631c3.859,0,7,3.14,7,7v182c0,3.859-3.141,7-7,7H72.174z"/>
+<path fill-opacity="0.1" fill="#E6E6E6" d="M72.174,214.5c-2.757,0-5-2.242-5-5v-182c0-2.757,2.243-5,5-5h22.629v-4c0-2.757,2.243-5,5-5
+	h28.74c2.757,0,5,2.243,5,5v4h22.631c2.757,0,5,2.243,5,5v182c0,2.758-2.243,5-5,5H72.174z"/>
+<path fill-opacity="0.1" fill="#E6E6E6" d="M72.174,213.5c-2.206,0-4-1.795-4-4v-182c0-2.206,1.794-4,4-4h23.629v-5c0-2.206,1.794-4,4-4
+	h28.74c2.206,0,4,1.794,4,4v5h23.631c2.206,0,4,1.794,4,4v182c0,2.205-1.794,4-4,4H72.174z"/>
+<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="96.8027" y1="20.0005" x2="131.543" y2="20.0005">
+	<stop  offset="0.2335" style="stop-color:#9C9C9C"/>
+	<stop  offset="0.7" style="stop-color:#1A1A1A"/>
+	<stop  offset="0.8922" style="stop-color:#656565"/>
+	<stop  offset="1" style="stop-color:#272727"/>
+</linearGradient>
+<path fill="url(#SVGID_1_)" d="M131.543,24.5v-6c0-1.658-1.342-3-3-3h-28.74c-1.656,0-3,1.342-3,3v6H131.543z"/>
+<radialGradient id="SVGID_2_" cx="114.1729" cy="17.5005" r="12.3637" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.6108" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<path fill-opacity="0.5" fill="url(#SVGID_2_)" d="M128.543,15.5h-28.74c-1.656,0-3,1.342-3,3v1c0-1.658,1.344-3,3-3h28.74
+	c1.658,0,3,1.342,3,3v-1C131.543,16.842,130.201,15.5,128.543,15.5z"/>
+<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="69.1738" y1="118.5" x2="159.1738" y2="118.5">
+	<stop  offset="0.006" style="stop-color:#262626"/>
+	<stop  offset="0.0719" style="stop-color:#4D4D4D"/>
+	<stop  offset="0.2335" style="stop-color:#CCCCCC"/>
+	<stop  offset="0.7" style="stop-color:#1A1A1A"/>
+	<stop  offset="0.8922" style="stop-color:#656565"/>
+	<stop  offset="1" style="stop-color:#262626"/>
+</linearGradient>
+<path fill="url(#SVGID_3_)" d="M72.174,212.5c-1.656,0-3-1.344-3-3v-182c0-1.657,1.344-3,3-3h84c1.658,0,3,1.343,3,3v182
+	c0,1.656-1.342,3-3,3H72.174z"/>
+<radialGradient id="SVGID_4_" cx="114.1738" cy="26.5005" r="45.5004" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.6108" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<path fill-opacity="0.5" fill="url(#SVGID_4_)" d="M156.174,24.5h-84c-1.656,0-3,1.343-3,3v1c0-1.657,1.344-3,3-3h84c1.658,0,3,1.343,3,3
+	v-1C159.174,25.843,157.832,24.5,156.174,24.5z"/>
+<rect x="96.803" y="23.5" fill-opacity="0.35" width="34.74" height="1"/>
+<rect x="96.803" y="22.5" fill-opacity="0.15" width="34.74" height="1"/>
+<linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="69.1738" y1="118.5" x2="159.1738" y2="118.5">
+	<stop  offset="0.0061" style="stop-color:#49494A"/>
+	<stop  offset="0.6545" style="stop-color:#121212"/>
+	<stop  offset="1" style="stop-color:#49494A"/>
+</linearGradient>
+<rect x="69.174" y="34.5" fill="url(#SVGID_5_)" width="90" height="168"/>
+<linearGradient id="SVGID_6_" gradientUnits="userSpaceOnUse" x1="114.1738" y1="37.9175" x2="114.1738" y2="201.0923">
+	<stop  offset="0.0061" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.125" style="stop-color:#999999"/>
+	<stop  offset="0.25" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.375" style="stop-color:#999999"/>
+	<stop  offset="0.5" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.625" style="stop-color:#999999"/>
+	<stop  offset="0.75" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.875" style="stop-color:#999999"/>
+	<stop  offset="1" style="stop-color:#FFFFFF"/>
+</linearGradient>
+<rect x="69.174" y="35" fill-opacity="0.05" fill="url(#SVGID_6_)" width="90" height="167.5"/>
+<linearGradient id="SVGID_7_" gradientUnits="userSpaceOnUse" x1="69.1738" y1="118.5" x2="159.1738" y2="118.5">
+	<stop  offset="0" style="stop-color:#B8D400"/>
+	<stop  offset="0.3" style="stop-color:#EBED6F"/>
+	<stop  offset="0.7152" style="stop-color:#ABD600"/>
+	<stop  offset="0.8563" style="stop-color:#D0DB53"/>
+	<stop  offset="1" style="stop-color:#B8D400"/>
+</linearGradient>
+<rect x="69.174" y="34.5" fill="url(#SVGID_7_)" width="90" height="168"/>
+<linearGradient id="SVGID_8_" gradientUnits="userSpaceOnUse" x1="69.1738" y1="118.5" x2="159.1738" y2="118.5">
+	<stop  offset="0" style="stop-color:#5AA913"/>
+	<stop  offset="0.3" style="stop-color:#B3F241"/>
+	<stop  offset="0.7006" style="stop-color:#58A813"/>
+	<stop  offset="0.8563" style="stop-color:#AAD774"/>
+	<stop  offset="1" style="stop-color:#8FD31D"/>
+</linearGradient>
+<rect x="69.174" y="34.5" fill-opacity="0.6" fill="url(#SVGID_8_)" width="90" height="168"/>
+<linearGradient id="SVGID_9_" gradientUnits="userSpaceOnUse" x1="114.1738" y1="37.2651" x2="114.1738" y2="200.5855">
+	<stop  offset="0.0061" style="stop-color:#F4FFB0;stop-opacity:0.8"/>
+	<stop  offset="0.125" style="stop-color:#51A307"/>
+	<stop  offset="0.25" style="stop-color:#F4FFB0;stop-opacity:0.8"/>
+	<stop  offset="0.375" style="stop-color:#51A307"/>
+	<stop  offset="0.5" style="stop-color:#F4FFB0;stop-opacity:0.8"/>
+	<stop  offset="0.625" style="stop-color:#51A307"/>
+	<stop  offset="0.75" style="stop-color:#F4FFB0;stop-opacity:0.8"/>
+	<stop  offset="0.875" style="stop-color:#51A307"/>
+	<stop  offset="1" style="stop-color:#F4FFB0;stop-opacity:0.8"/>
+</linearGradient>
+<rect x="69.174" y="35" fill-opacity="0.1" fill="url(#SVGID_9_)" width="90" height="167.5"/>
+<linearGradient id="SVGID_10_" gradientUnits="userSpaceOnUse" x1="94.1738" y1="21.5645" x2="94.1738" y2="197.6018">
+	<stop  offset="0" style="stop-color:#FBFBFF"/>
+	<stop  offset="1" style="stop-color:#FFFFFF;stop-opacity:0.2"/>
+</linearGradient>
+<rect x="79.174" y="24.5" fill-opacity="0.5" fill="url(#SVGID_10_)" width="30" height="188"/>
+<rect x="136.174" y="24.5" fill-opacity="0.15" fill="#FFFFFF" width="14" height="188"/>
+<linearGradient id="SVGID_11_" gradientUnits="userSpaceOnUse" x1="69.1738" y1="34.0005" x2="159.1738" y2="34.0005">
+	<stop  offset="0" style="stop-color:#000000"/>
+	<stop  offset="0.5" style="stop-color:#333333"/>
+	<stop  offset="1" style="stop-color:#000000"/>
+</linearGradient>
+<rect x="69.174" y="33.5" fill="url(#SVGID_11_)" width="90" height="1"/>
+<radialGradient id="SVGID_12_" cx="114.1738" cy="35.0005" r="48.3338" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.6108" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<rect x="69.174" y="34.5" fill-opacity="0.75" fill="url(#SVGID_12_)" width="90" height="1"/>
+<radialGradient id="SVGID_13_" cx="114.1738" cy="203" r="45.0001" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.7" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<rect x="69.174" y="202.5" fill-opacity="0.75" fill="url(#SVGID_13_)" width="90" height="1"/>
+<linearGradient id="SVGID_14_" gradientUnits="userSpaceOnUse" x1="69.1738" y1="202" x2="159.1738" y2="202">
+	<stop  offset="0" style="stop-color:#000000"/>
+	<stop  offset="0.5" style="stop-color:#666666"/>
+	<stop  offset="1" style="stop-color:#151515"/>
+</linearGradient>
+<rect x="69.174" y="201.5" fill="url(#SVGID_14_)" width="90" height="1"/>
+<rect x="121.174" y="15.5" fill-opacity="0.15" fill="#FFFFFF" width="7" height="9"/>
+<rect x="101.174" y="15.5" fill-opacity="0.25" fill="#FFFFFF" width="9" height="9"/>
+<rect id="_x3C_Slice_x3E__10_" fill="none" width="228" height="228"/>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/SysAp/Data/qtg_anim_battery_full_09.svg	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,134 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
+	<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
+]>
+<svg version="1.1"
+	 xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+	 x="0px" y="0px" width="228px" height="228px" viewBox="0 0 228 228" enable-background="new 0 0 228 228" xml:space="preserve">
+<defs>
+</defs>
+<rect fill="#000000" width="228" height="228"/>
+<path fill-opacity="0.05" fill="#E6E6E6" d="M72.174,218.5c-4.963,0-9-4.037-9-9v-182c0-4.963,4.037-9,9-9h18.629c0-4.963,4.037-9,9-9
+	h28.74c4.963,0,9,4.037,9,9h18.631c4.963,0,9,4.037,9,9v182c0,4.963-4.037,9-9,9H72.174z"/>
+<path fill-opacity="0.05" fill="#E6E6E6" d="M72.174,216.5c-3.859,0-7-3.141-7-7v-182c0-3.86,3.141-7,7-7h20.629v-2c0-3.86,3.141-7,7-7
+	h28.74c3.859,0,7,3.14,7,7v2h20.631c3.859,0,7,3.14,7,7v182c0,3.859-3.141,7-7,7H72.174z"/>
+<path fill-opacity="0.05" fill="#E6E6E6" d="M72.174,214.5c-2.758,0-5-2.242-5-5v-182c0-2.757,2.242-5,5-5h22.629v-4c0-2.757,2.242-5,5-5
+	h28.74c2.756,0,5,2.243,5,5v4h22.631c2.756,0,5,2.243,5,5v182c0,2.758-2.244,5-5,5H72.174z"/>
+<path fill-opacity="0.05" fill="#E6E6E6" d="M72.174,213.5c-2.207,0-4-1.795-4-4v-182c0-2.206,1.793-4,4-4h23.629v-5c0-2.206,1.793-4,4-4
+	h28.74c2.205,0,4,1.794,4,4v5h23.631c2.205,0,4,1.794,4,4v182c0,2.205-1.795,4-4,4H72.174z"/>
+<path fill-opacity="0.1" fill="#E6E6E6" d="M156.174,24.5h-24.631v-6c0-1.658-1.342-3-3-3h-28.74c-1.656,0-3,1.342-3,3v6H72.174
+	c-1.656,0-3,1.343-3,3v182c0,1.656,1.344,3,3,3h84c1.658,0,3-1.344,3-3v-182C159.174,25.843,157.832,24.5,156.174,24.5z"/>
+<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="96.8027" y1="20.0005" x2="131.543" y2="20.0005">
+	<stop  offset="0.2335" style="stop-color:#9C9C9C"/>
+	<stop  offset="0.7" style="stop-color:#1A1A1A"/>
+	<stop  offset="0.8922" style="stop-color:#656565"/>
+	<stop  offset="1" style="stop-color:#272727"/>
+</linearGradient>
+<path fill="url(#SVGID_1_)" d="M131.543,24.5v-6c0-1.658-1.342-3-3-3h-28.74c-1.656,0-3,1.342-3,3v6H131.543z"/>
+<radialGradient id="SVGID_2_" cx="114.1729" cy="17.5005" r="12.3637" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.6108" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<path fill-opacity="0.5" fill="url(#SVGID_2_)" d="M128.543,15.5h-28.74c-1.656,0-3,1.342-3,3v1c0-1.658,1.344-3,3-3h28.74
+	c1.658,0,3,1.342,3,3v-1C131.543,16.842,130.201,15.5,128.543,15.5z"/>
+<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="69.1738" y1="118.5" x2="159.1738" y2="118.5">
+	<stop  offset="0.006" style="stop-color:#262626"/>
+	<stop  offset="0.0719" style="stop-color:#4D4D4D"/>
+	<stop  offset="0.2335" style="stop-color:#CCCCCC"/>
+	<stop  offset="0.7" style="stop-color:#1A1A1A"/>
+	<stop  offset="0.8922" style="stop-color:#656565"/>
+	<stop  offset="1" style="stop-color:#262626"/>
+</linearGradient>
+<path fill="url(#SVGID_3_)" d="M72.174,212.5c-1.656,0-3-1.344-3-3v-182c0-1.657,1.344-3,3-3h84c1.658,0,3,1.343,3,3v182
+	c0,1.656-1.342,3-3,3H72.174z"/>
+<radialGradient id="SVGID_4_" cx="114.1738" cy="26.5005" r="45.5004" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.6108" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<path fill-opacity="0.5" fill="url(#SVGID_4_)" d="M156.174,24.5h-84c-1.656,0-3,1.343-3,3v1c0-1.657,1.344-3,3-3h84c1.658,0,3,1.343,3,3
+	v-1C159.174,25.843,157.832,24.5,156.174,24.5z"/>
+<rect x="96.803" y="23.5" fill-opacity="0.35" width="34.74" height="1"/>
+<rect x="96.803" y="22.5" fill-opacity="0.15" width="34.74" height="1"/>
+<linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="69.1738" y1="118.5" x2="159.1738" y2="118.5">
+	<stop  offset="0.0061" style="stop-color:#49494A"/>
+	<stop  offset="0.6545" style="stop-color:#121212"/>
+	<stop  offset="1" style="stop-color:#49494A"/>
+</linearGradient>
+<rect x="69.174" y="34.5" fill="url(#SVGID_5_)" width="90" height="168"/>
+<linearGradient id="SVGID_6_" gradientUnits="userSpaceOnUse" x1="114.1738" y1="37.9175" x2="114.1738" y2="201.0923">
+	<stop  offset="0.0061" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.125" style="stop-color:#999999"/>
+	<stop  offset="0.25" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.375" style="stop-color:#999999"/>
+	<stop  offset="0.5" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.625" style="stop-color:#999999"/>
+	<stop  offset="0.75" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.875" style="stop-color:#999999"/>
+	<stop  offset="1" style="stop-color:#FFFFFF"/>
+</linearGradient>
+<rect x="69.174" y="35" fill-opacity="0.05" fill="url(#SVGID_6_)" width="90" height="167.5"/>
+<linearGradient id="SVGID_7_" gradientUnits="userSpaceOnUse" x1="69.1738" y1="118.5" x2="159.1738" y2="118.5">
+	<stop  offset="0" style="stop-color:#B8D400"/>
+	<stop  offset="0.3" style="stop-color:#EBED6F"/>
+	<stop  offset="0.7152" style="stop-color:#ABD600"/>
+	<stop  offset="0.8563" style="stop-color:#D0DB53"/>
+	<stop  offset="1" style="stop-color:#B8D400"/>
+</linearGradient>
+<rect x="69.174" y="34.5" fill="url(#SVGID_7_)" width="90" height="168"/>
+<linearGradient id="SVGID_8_" gradientUnits="userSpaceOnUse" x1="69.1738" y1="118.5" x2="159.1738" y2="118.5">
+	<stop  offset="0" style="stop-color:#5AA913"/>
+	<stop  offset="0.3" style="stop-color:#B3F241"/>
+	<stop  offset="0.7006" style="stop-color:#58A813"/>
+	<stop  offset="0.8563" style="stop-color:#AAD774"/>
+	<stop  offset="1" style="stop-color:#8FD31D"/>
+</linearGradient>
+<rect x="69.174" y="34.5" fill-opacity="0.8" fill="url(#SVGID_8_)" width="90" height="168"/>
+<linearGradient id="SVGID_9_" gradientUnits="userSpaceOnUse" x1="114.1738" y1="37.2651" x2="114.1738" y2="200.5855">
+	<stop  offset="0.0061" style="stop-color:#F4FFB0;stop-opacity:0.8"/>
+	<stop  offset="0.125" style="stop-color:#51A307"/>
+	<stop  offset="0.25" style="stop-color:#F4FFB0;stop-opacity:0.8"/>
+	<stop  offset="0.375" style="stop-color:#51A307"/>
+	<stop  offset="0.5" style="stop-color:#F4FFB0;stop-opacity:0.8"/>
+	<stop  offset="0.625" style="stop-color:#51A307"/>
+	<stop  offset="0.75" style="stop-color:#F4FFB0;stop-opacity:0.8"/>
+	<stop  offset="0.875" style="stop-color:#51A307"/>
+	<stop  offset="1" style="stop-color:#F4FFB0;stop-opacity:0.8"/>
+</linearGradient>
+<rect x="69.174" y="35" fill-opacity="0.15" fill="url(#SVGID_9_)" width="90" height="167.5"/>
+<linearGradient id="SVGID_10_" gradientUnits="userSpaceOnUse" x1="94.1738" y1="21.5645" x2="94.1738" y2="197.6018">
+	<stop  offset="0" style="stop-color:#FBFBFF"/>
+	<stop  offset="1" style="stop-color:#FFFFFF;stop-opacity:0.2"/>
+</linearGradient>
+<rect x="79.174" y="24.5" fill-opacity="0.5" fill="url(#SVGID_10_)" width="30" height="188"/>
+<rect x="136.174" y="24.5" fill-opacity="0.15" fill="#FFFFFF" width="14" height="188"/>
+<linearGradient id="SVGID_11_" gradientUnits="userSpaceOnUse" x1="69.1738" y1="34.0005" x2="159.1738" y2="34.0005">
+	<stop  offset="0" style="stop-color:#000000"/>
+	<stop  offset="0.5" style="stop-color:#333333"/>
+	<stop  offset="1" style="stop-color:#000000"/>
+</linearGradient>
+<rect x="69.174" y="33.5" fill="url(#SVGID_11_)" width="90" height="1"/>
+<radialGradient id="SVGID_12_" cx="114.1738" cy="35.0005" r="48.3338" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.6108" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<rect x="69.174" y="34.5" fill-opacity="0.75" fill="url(#SVGID_12_)" width="90" height="1"/>
+<radialGradient id="SVGID_13_" cx="114.1738" cy="203" r="45.0001" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.7" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<rect x="69.174" y="202.5" fill-opacity="0.75" fill="url(#SVGID_13_)" width="90" height="1"/>
+<linearGradient id="SVGID_14_" gradientUnits="userSpaceOnUse" x1="69.1738" y1="202" x2="159.1738" y2="202">
+	<stop  offset="0" style="stop-color:#000000"/>
+	<stop  offset="0.5" style="stop-color:#666666"/>
+	<stop  offset="1" style="stop-color:#151515"/>
+</linearGradient>
+<rect x="69.174" y="201.5" fill="url(#SVGID_14_)" width="90" height="1"/>
+<rect x="121.174" y="15.5" fill-opacity="0.15" fill="#FFFFFF" width="7" height="9"/>
+<rect x="101.174" y="15.5" fill-opacity="0.25" fill="#FFFFFF" width="9" height="9"/>
+<rect id="_x3C_Slice_x3E__10_" fill="none" width="228" height="228"/>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/SysAp/Data/qtg_anim_battery_full_10.svg	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,116 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
+	<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
+]>
+<svg version="1.1"
+	 xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+	 x="0px" y="0px" width="228px" height="228px" viewBox="0 0 228 228" enable-background="new 0 0 228 228" xml:space="preserve">
+<defs>
+</defs>
+<rect fill="#000000" width="228" height="228"/>
+<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="96.8027" y1="20.0005" x2="131.543" y2="20.0005">
+	<stop  offset="0.2335" style="stop-color:#9C9C9C"/>
+	<stop  offset="0.7" style="stop-color:#1A1A1A"/>
+	<stop  offset="0.8922" style="stop-color:#656565"/>
+	<stop  offset="1" style="stop-color:#272727"/>
+</linearGradient>
+<path fill="url(#SVGID_1_)" d="M131.543,24.5v-6c0-1.658-1.342-3-3-3h-28.74c-1.656,0-3,1.342-3,3v6H131.543z"/>
+<radialGradient id="SVGID_2_" cx="114.1729" cy="17.5005" r="12.3637" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.6108" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<path opacity="0.5" fill="url(#SVGID_2_)" d="M128.543,15.5h-28.74c-1.656,0-3,1.342-3,3v1c0-1.658,1.344-3,3-3h28.74
+	c1.658,0,3,1.342,3,3v-1C131.543,16.842,130.201,15.5,128.543,15.5z"/>
+<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="69.1738" y1="118.5" x2="159.1738" y2="118.5">
+	<stop  offset="0.006" style="stop-color:#262626"/>
+	<stop  offset="0.0719" style="stop-color:#4D4D4D"/>
+	<stop  offset="0.2335" style="stop-color:#CCCCCC"/>
+	<stop  offset="0.7" style="stop-color:#1A1A1A"/>
+	<stop  offset="0.8922" style="stop-color:#656565"/>
+	<stop  offset="1" style="stop-color:#262626"/>
+</linearGradient>
+<path fill="url(#SVGID_3_)" d="M72.174,212.5c-1.656,0-3-1.344-3-3v-182c0-1.657,1.344-3,3-3h84c1.658,0,3,1.343,3,3v182
+	c0,1.656-1.342,3-3,3H72.174z"/>
+<radialGradient id="SVGID_4_" cx="114.1738" cy="26.5005" r="45.5004" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.6108" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<path opacity="0.5" fill="url(#SVGID_4_)" d="M156.174,24.5h-84c-1.656,0-3,1.343-3,3v1c0-1.657,1.344-3,3-3h84c1.658,0,3,1.343,3,3
+	v-1C159.174,25.843,157.832,24.5,156.174,24.5z"/>
+<rect x="96.803" y="23.5" opacity="0.35" width="34.74" height="1"/>
+<rect x="96.803" y="22.5" opacity="0.15" width="34.74" height="1"/>
+<linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="69.1738" y1="118.5" x2="159.1738" y2="118.5">
+	<stop  offset="0.0061" style="stop-color:#49494A"/>
+	<stop  offset="0.6545" style="stop-color:#121212"/>
+	<stop  offset="1" style="stop-color:#49494A"/>
+</linearGradient>
+<rect x="69.174" y="34.5" fill="url(#SVGID_5_)" width="90" height="168"/>
+<linearGradient id="SVGID_6_" gradientUnits="userSpaceOnUse" x1="114.1738" y1="37.9175" x2="114.1738" y2="201.0923">
+	<stop  offset="0.0061" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.125" style="stop-color:#999999"/>
+	<stop  offset="0.25" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.375" style="stop-color:#999999"/>
+	<stop  offset="0.5" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.625" style="stop-color:#999999"/>
+	<stop  offset="0.75" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.875" style="stop-color:#999999"/>
+	<stop  offset="1" style="stop-color:#FFFFFF"/>
+</linearGradient>
+<rect x="69.174" y="35" opacity="0.05" fill="url(#SVGID_6_)" width="90" height="167.5"/>
+<linearGradient id="SVGID_7_" gradientUnits="userSpaceOnUse" x1="69.1738" y1="118.5" x2="159.1738" y2="118.5">
+	<stop  offset="0" style="stop-color:#5AA913"/>
+	<stop  offset="0.3" style="stop-color:#B3F241"/>
+	<stop  offset="0.7006" style="stop-color:#58A813"/>
+	<stop  offset="0.8563" style="stop-color:#AAD774"/>
+	<stop  offset="1" style="stop-color:#8FD31D"/>
+</linearGradient>
+<rect x="69.174" y="34.5" fill="url(#SVGID_7_)" width="90" height="168"/>
+<linearGradient id="SVGID_8_" gradientUnits="userSpaceOnUse" x1="114.1738" y1="37.9175" x2="114.1738" y2="201.0923">
+	<stop  offset="0.0061" style="stop-color:#F4FFB0;stop-opacity:0.8"/>
+	<stop  offset="0.125" style="stop-color:#51A307"/>
+	<stop  offset="0.25" style="stop-color:#F4FFB0;stop-opacity:0.8"/>
+	<stop  offset="0.375" style="stop-color:#51A307"/>
+	<stop  offset="0.5" style="stop-color:#F4FFB0;stop-opacity:0.8"/>
+	<stop  offset="0.625" style="stop-color:#51A307"/>
+	<stop  offset="0.75" style="stop-color:#F4FFB0;stop-opacity:0.8"/>
+	<stop  offset="0.875" style="stop-color:#51A307"/>
+	<stop  offset="1" style="stop-color:#F4FFB0;stop-opacity:0.8"/>
+</linearGradient>
+<rect x="69.174" y="35" opacity="0.15" fill="url(#SVGID_8_)" width="90" height="167.5"/>
+<linearGradient id="SVGID_9_" gradientUnits="userSpaceOnUse" x1="94.1738" y1="21.5645" x2="94.1738" y2="197.6018">
+	<stop  offset="0" style="stop-color:#FBFBFF"/>
+	<stop  offset="1" style="stop-color:#FFFFFF;stop-opacity:0.2"/>
+</linearGradient>
+<rect x="79.174" y="24.5" opacity="0.5" fill="url(#SVGID_9_)" width="30" height="188"/>
+<rect x="136.174" y="24.5" opacity="0.15" fill="#FFFFFF" width="14" height="188"/>
+<linearGradient id="SVGID_10_" gradientUnits="userSpaceOnUse" x1="69.1738" y1="34.0005" x2="159.1738" y2="34.0005">
+	<stop  offset="0" style="stop-color:#000000"/>
+	<stop  offset="0.5" style="stop-color:#333333"/>
+	<stop  offset="1" style="stop-color:#000000"/>
+</linearGradient>
+<rect x="69.174" y="33.5" fill="url(#SVGID_10_)" width="90" height="1"/>
+<radialGradient id="SVGID_11_" cx="114.1738" cy="35.0005" r="48.3338" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.6108" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<rect x="69.174" y="34.5" opacity="0.75" fill="url(#SVGID_11_)" width="90" height="1"/>
+<radialGradient id="SVGID_12_" cx="114.1738" cy="203" r="45.0001" gradientUnits="userSpaceOnUse">
+	<stop  offset="0" style="stop-color:#FFFFFF"/>
+	<stop  offset="0.7" style="stop-color:#BABABA"/>
+	<stop  offset="1" style="stop-color:#757575"/>
+</radialGradient>
+<rect x="69.174" y="202.5" opacity="0.75" fill="url(#SVGID_12_)" width="90" height="1"/>
+<linearGradient id="SVGID_13_" gradientUnits="userSpaceOnUse" x1="69.1738" y1="202" x2="159.1738" y2="202">
+	<stop  offset="0" style="stop-color:#000000"/>
+	<stop  offset="0.5" style="stop-color:#666666"/>
+	<stop  offset="1" style="stop-color:#151515"/>
+</linearGradient>
+<rect x="69.174" y="201.5" fill="url(#SVGID_13_)" width="90" height="1"/>
+<rect x="121.174" y="15.5" opacity="0.15" fill="#FFFFFF" width="7" height="9"/>
+<rect x="101.174" y="15.5" opacity="0.25" fill="#FFFFFF" width="9" height="9"/>
+<rect id="_x3C_Slice_x3E__10_" fill="none" width="228" height="228"/>
+</svg>
--- a/coreapplicationuis/SysAp/Group/SysAp.mmp	Wed Sep 29 15:24:56 2010 +0300
+++ b/coreapplicationuis/SysAp/Group/SysAp.mmp	Thu Oct 07 06:25:45 2010 +0300
@@ -31,10 +31,40 @@
 EPOCSTACKSIZE 0x5000
 EPOCHEAPSIZE  0x800 0x400000 // min 2kB, max 4MB - some shutdown animations may use quite a lot of heap
 
+EPOCALLOWDLLDATA
+
 #ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
 MACRO SYSAP_USE_STARTUP_UI_PHASE
 #endif // RD_STARTUP_ANIMATION_CUSTOMIZATION 
 
+// Qt Macros
+MACRO		UNICODE
+MACRO		QT_KEYPAD_NAVIGATION
+MACRO		QT_SOFTKEYS_ENABLED
+MACRO		QT_USE_MATH_H_FLOATS
+MACRO		HB_HAVE_QT_MOBILITY
+MACRO		HB_EFFECTS_OPENVG
+MACRO		HB_FILTER_EFFECTS
+MACRO		HB_HAVE_PROTECTED_CHUNK
+MACRO		HB_TOUCHFEEDBACK_TYPE_IS_LONGPRESS
+MACRO		HB_WSERV_HAS_RENDER_ORIENTATION
+MACRO		HB_GESTURE_FW
+MACRO		HB_EFFECTS
+MACRO		HB_TEXT_MEASUREMENT_UTILITY
+MACRO		HB_HAVE_QT_MOBILITY
+MACRO		HB_EFFECTS_OPENVG
+MACRO		HB_FILTER_EFFECTS
+MACRO		HB_HAVE_PROTECTED_CHUNK
+MACRO		HB_TOUCHFEEDBACK_TYPE_IS_LONGPRESS
+MACRO		HB_WSERV_HAS_RENDER_ORIENTATION
+MACRO		HB_GESTURE_FW
+MACRO		HB_EFFECTS
+MACRO		HB_TEXT_MEASUREMENT_UTILITY
+MACRO		QT_PLUGIN
+MACRO		QT_SVG_LIB
+MACRO		QT_GUI_LIB
+MACRO		QT_NETWORK_LIB
+MACRO		QT_CORE_LIB
 
 SOURCEPATH  ../Src
 SOURCE SysApApp.cpp
@@ -53,6 +83,7 @@
 SOURCE SysApShutdownImage.cpp
 SOURCE hbdevicepowermenusymbian.cpp
 SOURCE hbdeviceinputdialogsymbian.cpp
+SOURCE sysapcharginganimation.cpp
 
 #ifdef __OFFLINE_MODE
 SOURCE OfflineModeController/SysApOfflineModeControllerImpl.cpp
@@ -61,9 +92,9 @@
 
 SYSTEMINCLUDE		/epoc32/include/mw/hb/hbwidgets
 SYSTEMINCLUDE		/epoc32/include/mw/hb/hbcore
-
-SYSTEMINCLUDE      	/epoc32/include/mw
-
+SYSTEMINCLUDE		/epoc32/include/mw/QtCore
+SYSTEMINCLUDE		/epoc32/include/mw/QtGui
+SYSTEMINCLUDE		/epoc32/include/stdapis/stlportv5
 
 USERINCLUDE        . 
 USERINCLUDE        ../Inc
@@ -77,7 +108,7 @@
 USERINCLUDE        ../Src/memorycard
 
 MW_LAYER_SYSTEMINCLUDE 
-APP_LAYER_SYSTEMINCLUDE
+
 
 START RESOURCE ../Data/SysAp.rss
 HEADER
@@ -156,6 +187,7 @@
 SOURCE CenRepObservers/sysapcenreplightsettingsobserver.cpp
 SOURCE CenRepObservers/SysApCenRepLogsObserver.cpp
 SOURCE CenRepObservers/sysapcenrepofflinemodeobserver.cpp
+SOURCE CenRepObservers/SysApCenRepSilentModeObserver.cpp
 
 LIBRARY centralrepository.lib
 LIBRARY cenrepnotifhandler.lib
@@ -166,7 +198,7 @@
 #ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
 LIBRARY sanimctrl.lib
 #else // RD_STARTUP_ANIMATION_CUSTOMIZATION
-LIBRARY MediaClientAudio.lib
+LIBRARY mediaclientaudio.lib
 #endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
 
 LIBRARY bmpanim.lib
@@ -185,7 +217,6 @@
 SOURCE SysApBtControllerImpl.cpp
 SOURCEPATH ../Src/BtSap
 SOURCE SysApBtSapControllerImpl.cpp
-
 //LIBRARY eikcoctl.lib
 //LIBRARY etelpckt.lib
 
@@ -230,5 +261,33 @@
 SOURCE SysApEtelNetworkStatusNspsObserver.cpp SysApEtelConnector.cpp SysApEtelNetworkBarObserver.cpp SysApEtelSmsStoreObserver.cpp sysapeteldatabearerobserver.cpp sysapetelnetworkbargetter.cpp sysapetelnetworkinfoobserver.cpp
 
 LIBRARY etelpckt.lib
+LIBRARY logcli.lib
+LIBRARY sssettings.lib
 
+//QtHighway lib for invoking logs app
+LIBRARY xqservice.lib
+LIBRARY xqserviceutil.lib
+LIBRARY		QtCore.lib
 
+//Required to use by EndKey
+LIBRARY		afactivitylauncher.lib
+
+LIBRARY		libstdcppv5.lib
+LIBRARY		libpthread.lib
+LIBRARY		libc.lib
+LIBRARY		libdl.lib
+//Required for OpenLibC 
+OPTION CW -cwd include -wchar_t on
+OPTION ARMCC --visibility_inlines_hidden
+#if defined(ARMCC_4_0)
+OPTION ARMCC --import_all_vtbl
+#endif
+OPTION GCCE -fvisibility-inlines-hidden
+
+VERSION 10.0
+ARMFPU softvfp
+BYTEPAIRCOMPRESSTARGET
+OPTION_REPLACE ARMCC --export_all_vtbl -D__QT_NOEFFECTMACRO_DONOTUSE
+
+STDCPP
+
--- a/coreapplicationuis/SysAp/Group/bld.inf	Wed Sep 29 15:24:56 2010 +0300
+++ b/coreapplicationuis/SysAp/Group/bld.inf	Thu Oct 07 06:25:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2004-2007 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2004-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"
@@ -45,6 +45,47 @@
 /epoc32/s60/icons/qgn_startup_screen.svg          /epoc32/data/z/resource/apps/qgn_sysap_screen.svg
 /epoc32/s60/icons/qgn_startup_screen.svg          /epoc32/release/winscw/udeb/z/resource/apps/qgn_sysap_screen.svg
 /epoc32/s60/icons/qgn_startup_screen.svg          /epoc32/release/winscw/urel/z/resource/apps/qgn_sysap_screen.svg
+../data/qtg_anim_battery_charging_01.svg /epoc32/data/z/resource/apps/qtg_anim_battery_charging_01.svg
+../data/qtg_anim_battery_charging_01.svg /epoc32/release/winscw/udeb/z/resource/apps/qtg_anim_battery_charging_01.svg
+../data/qtg_anim_battery_charging_02.svg /epoc32/data/z/resource/apps/qtg_anim_battery_charging_02.svg
+../data/qtg_anim_battery_charging_02.svg /epoc32/release/winscw/udeb/z/resource/apps/qtg_anim_battery_charging_02.svg
+../data/qtg_anim_battery_charging_03.svg /epoc32/data/z/resource/apps/qtg_anim_battery_charging_03.svg
+../data/qtg_anim_battery_charging_03.svg /epoc32/release/winscw/udeb/z/resource/apps/qtg_anim_battery_charging_03.svg
+../data/qtg_anim_battery_charging_04.svg /epoc32/data/z/resource/apps/qtg_anim_battery_charging_04.svg
+../data/qtg_anim_battery_charging_04.svg /epoc32/release/winscw/udeb/z/resource/apps/qtg_anim_battery_charging_04.svg
+../data/qtg_anim_battery_charging_05.svg /epoc32/data/z/resource/apps/qtg_anim_battery_charging_05.svg
+../data/qtg_anim_battery_charging_05.svg /epoc32/release/winscw/udeb/z/resource/apps/qtg_anim_battery_charging_05.svg
+../data/qtg_anim_battery_charging_06.svg /epoc32/data/z/resource/apps/qtg_anim_battery_charging_06.svg
+../data/qtg_anim_battery_charging_06.svg /epoc32/release/winscw/udeb/z/resource/apps/qtg_anim_battery_charging_06.svg
+../data/qtg_anim_battery_charging_07.svg /epoc32/data/z/resource/apps/qtg_anim_battery_charging_07.svg
+../data/qtg_anim_battery_charging_07.svg /epoc32/release/winscw/udeb/z/resource/apps/qtg_anim_battery_charging_07.svg
+../data/qtg_anim_battery_charging_08.svg /epoc32/data/z/resource/apps/qtg_anim_battery_charging_08.svg
+../data/qtg_anim_battery_charging_08.svg /epoc32/release/winscw/udeb/z/resource/apps/qtg_anim_battery_charging_08.svg
+../data/qtg_anim_battery_charging_09.svg /epoc32/data/z/resource/apps/qtg_anim_battery_charging_09.svg
+../data/qtg_anim_battery_charging_09.svg /epoc32/release/winscw/udeb/z/resource/apps/qtg_anim_battery_charging_09.svg
+../data/qtg_anim_battery_charging_10.svg /epoc32/data/z/resource/apps/qtg_anim_battery_charging_10.svg
+../data/qtg_anim_battery_charging_10.svg /epoc32/release/winscw/udeb/z/resource/apps/qtg_anim_battery_charging_10.svg
+
+../data/qtg_anim_battery_full_01.svg /epoc32/data/z/resource/apps/qtg_anim_battery_full_01.svg
+../data/qtg_anim_battery_full_01.svg /epoc32/release/winscw/udeb/z/resource/apps/qtg_anim_battery_full_01.svg
+../data/qtg_anim_battery_full_02.svg /epoc32/data/z/resource/apps/qtg_anim_battery_full_02.svg
+../data/qtg_anim_battery_full_02.svg /epoc32/release/winscw/udeb/z/resource/apps/qtg_anim_battery_full_02.svg
+../data/qtg_anim_battery_full_03.svg /epoc32/data/z/resource/apps/qtg_anim_battery_full_03.svg
+../data/qtg_anim_battery_full_03.svg /epoc32/release/winscw/udeb/z/resource/apps/qtg_anim_battery_full_03.svg
+../data/qtg_anim_battery_full_04.svg /epoc32/data/z/resource/apps/qtg_anim_battery_full_04.svg
+../data/qtg_anim_battery_full_04.svg /epoc32/release/winscw/udeb/z/resource/apps/qtg_anim_battery_full_04.svg
+../data/qtg_anim_battery_full_05.svg /epoc32/data/z/resource/apps/qtg_anim_battery_full_05.svg
+../data/qtg_anim_battery_full_05.svg /epoc32/release/winscw/udeb/z/resource/apps/qtg_anim_battery_full_05.svg
+../data/qtg_anim_battery_full_06.svg /epoc32/data/z/resource/apps/qtg_anim_battery_full_06.svg
+../data/qtg_anim_battery_full_06.svg /epoc32/release/winscw/udeb/z/resource/apps/qtg_anim_battery_full_06.svg
+../data/qtg_anim_battery_full_07.svg /epoc32/data/z/resource/apps/qtg_anim_battery_full_07.svg
+../data/qtg_anim_battery_full_07.svg /epoc32/release/winscw/udeb/z/resource/apps/qtg_anim_battery_full_07.svg
+../data/qtg_anim_battery_full_08.svg /epoc32/data/z/resource/apps/qtg_anim_battery_full_08.svg
+../data/qtg_anim_battery_full_08.svg /epoc32/release/winscw/udeb/z/resource/apps/qtg_anim_battery_full_08.svg
+../data/qtg_anim_battery_full_09.svg /epoc32/data/z/resource/apps/qtg_anim_battery_full_09.svg
+../data/qtg_anim_battery_full_09.svg /epoc32/release/winscw/udeb/z/resource/apps/qtg_anim_battery_full_09.svg
+../data/qtg_anim_battery_full_10.svg /epoc32/data/z/resource/apps/qtg_anim_battery_full_10.svg
+../data/qtg_anim_battery_full_10.svg /epoc32/release/winscw/udeb/z/resource/apps/qtg_anim_battery_full_10.svg
 PRJ_MMPFILES
 //gnumakefile sysap_icons.mk 
 
--- a/coreapplicationuis/SysAp/Inc/SysAp.hrh	Wed Sep 29 15:24:56 2010 +0300
+++ b/coreapplicationuis/SysAp/Inc/SysAp.hrh	Thu Oct 07 06:25:45 2010 +0300
@@ -95,7 +95,8 @@
     EPowerSaveModeActivated,
     EPowerSaveModeDeactivated,
     ECannotActivatePowerSaveMode,
-    ECannotDeactivatePowerSaveMode
+    ECannotDeactivatePowerSaveMode,
+    ESysApRestartPhone
     };
 
 enum TSysApWaitNoteIds
@@ -114,7 +115,6 @@
 enum TSysApConfirmationQueryIds
     {
     ESysApNoQuery=0,
-    ESysApRestartPhoneQuery,
     ESysApLeaveOfflineModeQuery,
     ESysApRemoveMmcNote,
     ESysApEjectMmcQuery,
--- a/coreapplicationuis/SysAp/Inc/SysApAppUi.h	Wed Sep 29 15:24:56 2010 +0300
+++ b/coreapplicationuis/SysAp/Inc/SysApAppUi.h	Thu Oct 07 06:25:45 2010 +0300
@@ -47,6 +47,7 @@
 #endif // RD_MULTIPLE_DRIVE
 
 #include <eikappui.h>
+#include <sysapcharginganimation.h>
 
 
 class CSysApFeatureManager;
@@ -63,6 +64,7 @@
 class CSysApCenRepLightSettingsObserver;
 class CSysApCenRepBtObserver;
 class CSysApCenRepHacSettingObserver;
+class CSysApCenRepSilentModeObserver;
 class CSysApAudioRoutingObserver;
 class CSysApSsSettingsObserver;
 class CSystemLock;
@@ -73,6 +75,7 @@
 class CSysApCenRepLogsObserver;
 class MSysApUsbIndicator;
 class CKeyguardAccessApi;
+class CSysApChargingAnimation;
 class CHbIndicatorSymbian;	
 class CSysApShutdownAnimation;
 
@@ -182,12 +185,6 @@
         */
         void ExecQueryL( TSysapQuery aQuery, TDes8& aReturn, const TDesC8& aParam );
         
-//    private:
-        /**
-        * EPOC default constructor.
-        * @param None
-        * @return void
-        */
         
 #ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
     void
@@ -209,7 +206,7 @@
         * @param aType The type of resources that have changed.
         * @return None.
         */
-//        void HandleResourceChangeL(TInt aType);
+				// void HandleResourceChangeL(TInt aType);
         
     private:
         /**
@@ -229,6 +226,14 @@
         void HandleApplicationSpecificEventL(TInt aType,const TWsEvent& aEvent);
       
      public:
+
+				/*
+        * Get pointer to RTelServer
+        *
+        * @return pointer to RTelServer if iSysApEtelConnector is initialized. Otherwise return NULL.
+        */
+        RTelServer* GetTelServer();
+
      	//	void CallFromMain();
      		
      		 /**
@@ -261,14 +266,14 @@
         void ActivateKeyeventForwardingForLights(TBool aActivate);
         
         TBool IsEncryptionOperationOngoingL() const;
-//        void ConnectToFileServerL();
-//        void ConnectToWindowServerL();
-        void ShowExampleUiNoteL ( const TDesC& noteText )const;
+        void HandleSendKeyEventL();
+        void HandleEndKeyEventL();
+        
+        void ShowNoteL ( const TDesC& noteText )const;
         void ShowNotificationDialog(const TDesC& noteText)const;
         void PopupNote();
-//        void CreateWindowGroup();
         TBool ResourcesFreed() const;
-        void ShowUiNoteL( const TSysApNoteIds aNote ) const;        
+        void ShowUiNoteL( const TSysApNoteIds aNote );        
         TInt StateOfProperty( const TUid& aCategory, const TUint aKey ) const;
         TBool OfflineModeActive();
         void GoOnlineL( TBool aDoProfileChange = ETrue );
@@ -449,6 +454,9 @@
         void UpdateSignalBarsL();
         
         void ReleaseMemoryForMemoryCardDialog();
+        void StartChargingAnimationL();
+        void StopChargingAnimationL();
+        void StartChargingFullAnimationL();
         
      private:
          /**
@@ -483,14 +491,11 @@
 #endif // RD_MULTIPLE_DRIVE
         
      private:
-//          CSysApWsClient*                 iSysApWsClient;
           CSysApLightsController*         iSysApLightsController;
           CSysApFeatureManager*           iSysApFeatureManager;
           CSysApNspsHandler*              iSysApNspsHandler;
-          CSysApPubSubObserver*           iSysApPubSubObserver;
-    
+          CSysApPubSubObserver*           iSysApPubSubObserver;    
           CSysApDefaultKeyHandler*          iSysApDefaultKeyHandler;
-//          RWindowGroup                      groupWin;
           CSysApStartupController*        iSysApStartupController;
           MSysApOfflineModeController*    iSysApOfflineModeController;
           RStarterSession                 iStarterSession;
@@ -503,11 +508,11 @@
           CSysApCenRepLightSettingsObserver*  iSysApCenRepLightSettingsObserver;
           CSysApCenRepBtObserver*                  iSysApCenRepBtObserver;
           CSysApCenRepHacSettingObserver* iSysApCenRepHacSettingObserver;
+          CSysApCenRepSilentModeObserver* iSysApCenRepSilentModeObserver;
           
           CSysApAudioRoutingObserver* iSysApAudioRoutingObserver;
           CSysApPsmController* iSysApPsmController;
-		  CHbSymbianVariant* iVariantAccState ;
-          CSysApSsSettingsObserver*       iSysApSsSettingsObserver;
+		  		CHbSymbianVariant* iVariantAccState ;
           CSystemLock*                    iSysApSystemLock;
           CSysApCenRepCallForwardingObserver* iSysApCenRepCallForwardingObserver;
           CSysApBatteryInfoController* iSysApBatteryInfoController;
@@ -515,12 +520,12 @@
           CPeriodic*                      iSapTimer;
           MSysApBtController*             iSysApBtController;
           CSysApCenRepLogsObserver*                iSysApCenRepLogsObserver;
-		  MSysApUsbIndicator*             iSysApUsbIndicatorController;
-		  CKeyguardAccessApi*             iKeyguardController;
-		  CHbDevicePowerMenuSymbian*            iPowerMenuDialog;
-	      CSysApKeyManagement*            iSysApKeyManagement;
-	      CSysApMMCObserver*              iSysApMMCObserver;
-	      CSysApEtelConnector*            iSysApEtelConnector;
+		  		MSysApUsbIndicator*             iSysApUsbIndicatorController;
+		  		CKeyguardAccessApi*             iKeyguardController;
+		  		CHbDevicePowerMenuSymbian*            iPowerMenuDialog;
+	      	CSysApKeyManagement*            iSysApKeyManagement;
+	      	CSysApMMCObserver*              iSysApMMCObserver;
+	      	CSysApEtelConnector*            iSysApEtelConnector;
 		  
 	public:		  
 		  CHbIndicatorSymbian* 			  iHbIndicatorSymbian;
@@ -536,6 +541,9 @@
         TBool                           iResourcesFreed;        
         TInt                            iCapturedEKeyPowerOff;
         TInt                            iCapturedEKeyPowerOffUpAndDowns;
+        TInt                            iCapturedEKeySendKey;
+        TInt                            iCapturedEKeyEndKey;
+        
         TBool                           iOfflineModeActive;
         TBool                           iShutdownStarted;
         
@@ -627,7 +635,8 @@
         
         TBool                           iMMCEjectUsed;
         CHbDeviceInputDialogSymbian* iMemCardPwdDialog;
-        
+       
+        CSysApChargingAnimation *iChargingAnimation;		
 	};
 	
 #endif
--- a/coreapplicationuis/SysAp/Inc/SysApConfirmationQuery.h	Wed Sep 29 15:24:56 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,119 +0,0 @@
-/*
-* Copyright (c) 2003-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:  CSysapConfirmationQuery header file. The clas can be used for
-*                showing global confirmation queries.
-*
-*/
-
-
-#ifndef SYSAPCONFIRMATIONQUERY_H
-#define SYSAPCONFIRMATIONQUERY_H
-
-// INCLUDES
-#include <e32base.h>
-#include <AknGlobalConfirmationQuery.h>
-#include "SysAp.hrh"
-
-// CONSTANTS
-
-// FORWARD DECLARATIONS
-
-class CSysApAppUi;
-
-// CLASS DECLARATION
-/**
-*  CSysApConfirmationQuery
-*  
-*  @lib   sysap
-*  @since 1.2S 
-*/
-
-class CSysApConfirmationQuery: public CActive
-{
-public:
-
-    /**
-    * Constructor
-    */         
-    static CSysApConfirmationQuery* NewL( CSysApAppUi& aSysApAppUi );
-
-    /**
-    * Destructor.
-    */
-    virtual ~CSysApConfirmationQuery();
-
-    /**
-    * This method shows the note
-    * @param TSysApConfirmationQueryIds
-    * @param CCoeEnv*
-    * @return void
-    */         
-    void ShowQueryL( const TSysApConfirmationQueryIds aQueryId, CCoeEnv* aLoaderEnv = NULL );
-
-    /**
-    * This method shows the note
-    * @param aQueryId Query id defined by TSysApConfirmationQueryIds
-    * @param aValue Query related value
-    * @param aLoaderEnv Pointer to control environment
-    */         
-    void ShowQueryL( const TSysApConfirmationQueryIds aQueryId,
-        const TDesC& aValue, CCoeEnv* aLoaderEnv = NULL );
-
-    /**
-    * From CActive. Cancels the active object from observing the list query
-    * @param  None
-    * @return void
-    */
-    void DoCancel();
-    /**
-    * From CActive. Gets called by active object when a selection is done.
-    * @param  None
-    * @return void
-    */
-    void RunL();
-
-    /**
-    * From CActive. Gets called by active object when leave happens inside RunL
-    * @param None
-    * @return void
-    */
-    TInt RunError( TInt aError );
-    
-    /**
-    * Gets current query ID
-    * @return Current query ID (TSysApConfirmationQueryIds)
-    */
-    TInt CurrentQuery();
-
-private:
-
-    /**
-    * Constructors
-    */         
-    CSysApConfirmationQuery( CSysApAppUi& aSysApAppUi );
-    CSysApConfirmationQuery();
-    void ConstructL();
-
-private:
-
-    CSysApAppUi&                 iSysApAppUi;
-    TSysApConfirmationQueryIds   iQueryId;
-    CAknGlobalConfirmationQuery* iQuery;   
-    TSysApConfirmationQueryIds   iPendingQuery;               
-};
-
-#endif // SYSAPCONFIRMATIONQUERYNOTE_H
-
-// End of File
-
--- a/coreapplicationuis/SysAp/Inc/SysApMsgSimMemLowQuery.h	Wed Sep 29 15:24:56 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,91 +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:  CSysApMsgSimMemLowQuery class definition. This class is
-*                responsible for showing a query when SIM card's SMS memory
-*                is full and there is a SIM specific SMS coming.
-*
-*/
-
-
-#ifndef SYSAPMSGSIMMEMLOWQUERY_H
-#define SYSAPMSGSIMMEMLOWQUERY_H
-
-// INCLUDES
-#include <e32base.h>
-
-// FORWARD DECLARATIONS
-class CAknGlobalConfirmationQuery;
-
-// CLASS DECLARATION
-/**
-*  CSysApMsgSimMemLowQuery
-*  
-*  @lib   sysap
-*  @since 1.0* 
-*/
-
-class CSysApMsgSimMemLowQuery : public CActive
-    {
-public:
-    /**
-    * Constructor
-    * @param ETrue if cover display is supported
-    * @return void
-    */         
-    CSysApMsgSimMemLowQuery(TBool aCoverDisplaySupported);
-
-    /**
-    * Destructor.
-    */
-    virtual ~CSysApMsgSimMemLowQuery();
-
-    /**
-    * This method activates the active object. The iStatus is given to
-    * CAknGlobalListQuery with a call iGlobalListQuery->ShowListQueryL( 
-    * profileNameArray, iSysApPowerKeyMenuObserver->iStatus, KProfileListInitialIndex ); 
-    * from CSysApAppUi
-    * @param note
-    * @return void
-    */         
-    void StartL( const TDesC& aPrompt );
-
-private:
-    /**
-    * From CActive. Cancels the active object from observing the list query
-    * @param None
-    * @return void
-    */
-    void DoCancel();
-    /**
-    * From CActive. Gets called by active object when a selection is done.
-    * @param None
-    * @return void
-    */
-    void RunL();
-
-    /**
-    * From CActive. Gets called by active object when leave happens inside RunL
-    * @param None
-    * @return void
-    */
-    TInt RunError( TInt aError );
-
-private:
-    CAknGlobalConfirmationQuery* iSimMemoryLowQuery;
-    TBool iCoverDisplaySupported;
-    };
-
-#endif //SYSAPPOWERKEYMENUOBSERVER_H
-
-// End of File
--- a/coreapplicationuis/SysAp/Inc/SysApPowerKeyMenuObserver.h	Wed Sep 29 15:24:56 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,97 +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:  CSysApPowerKeyMenuObserver class definition. This class
-*                implements the observer for getting the menu selection from
-*                CAknGlobalListQuery.
-*
-*/
-
-
-#ifndef SYSAPPOWERKEYMENUOBSERVER_H
-#define SYSAPPOWERKEYMENUOBSERVER_H
-
-// INCLUDES
-#include <e32base.h>
-
-// FORWARD DECLARATIONS
-class CSysApAppUi;
-
-/**
-*  CSysApPowerKeyMenuObserver
-*  
-*  @lib   sysap
-*  @since 1.0 
-*/
-
-class CSysApPowerKeyMenuObserver : public CActive
-    {
-public:
-    /**
-    * Constructor
-    * @param CSysApAppUi& aSysApAppUi
-    * @return void
-    */         
-    CSysApPowerKeyMenuObserver( CSysApAppUi& aSysApAppUi );
-
-    /**
-    * Destructor.
-    */
-    virtual ~CSysApPowerKeyMenuObserver();
-
-    /**
-    * This method activates the active object. The iStatus is given to
-    * CAknGlobalListQuery with a call iGlobalListQuery->ShowListQueryL( 
-    * profileNameArray, iSysApPowerKeyMenuObserver->iStatus, KProfileListInitialIndex ); 
-    * from CSysApAppUi
-    * @param note
-    * @return void
-    */         
-    void Start();
-
-private:
-    /**
-    * C++ default constructor.
-    * @param None
-    * @return void
-    */
-    CSysApPowerKeyMenuObserver();
-    
-private:
-    /**
-    * From CActive. Cancels the active object from observing the list query
-    * @param None
-    * @return void
-    */
-    void DoCancel();
-    /**
-    * From CActive. Gets called by active object when a selection is done.
-    * @param None
-    * @return void
-    */
-    void RunL();
-
-    /**
-    * From CActive. Gets called by active object when leave happens inside RunL
-    * @param None
-    * @return void
-    */
-    TInt RunError( TInt aError );
-
-private:
-    CSysApAppUi&    iSysApAppUi;
-    };
-
-#endif //SYSAPPOWERKEYMENUOBSERVER_H
-
-// End of File
--- a/coreapplicationuis/SysAp/Inc/SysApProfileObserver.h	Wed Sep 29 15:24:56 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,101 +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:  CSysApProfileObserver class definition. 
-*
-*/
-
-
-#ifndef SYSAPPROFILEOBSERVER_H
-#define SYSAPPROFILEOBSERVER_H
-
-// INCLUDES
-#include <e32base.h>
-#include <MProfileChangeObserver.h>
-#include <CProfileChangeNotifyHandler.h>
-#include "SysAp.hrh"
-
-// FORWARD DECLARATIONS
-class CSysApAppUi;
-
-// CLASS DECLARATION
-
-/**
-*  CSysApProfileObserver
-*
-*  @lib   sysap
-*  @since 3.0
-*/
-
-class CSysApProfileObserver : public CBase, public MProfileChangeObserver
-    {
-    public: // Constructors and destructor
-        /**
-        * Default constructor
-        */
-        static CSysApProfileObserver* NewL( CSysApAppUi& aSysApAppUi );
-
-        /**
-        * Destructor.
-        */
-        virtual ~CSysApProfileObserver();
-
-    private:
-
-        /**
-        * EPOC default constructor.
-        * @param None
-        * @return void
-        */
-        void ConstructL( );
-        
-        /**
-        * Constructor
-        * @param CSysApAppUi& aSysApAppUi
-        * @return void
-        */         
-        CSysApProfileObserver( CSysApAppUi& aSysApAppUi );
-    
-        /**
-        * C++ default constructor.
-        * @param None
-        * @return void
-        */
-        CSysApProfileObserver();
-        
-    public: // From MProfileChangeObserver
-
-        /**
-        * This is a callback function which is called when a active profile event
-        * completes. User must derive his class from MProfileChangeObserver
-        * and implement this method if he is to use notify services.
-        * @param aProfileEvent Profile event
-        * @param aProfileId Active profile id
-        */
-        void HandleActiveProfileEventL( TProfileEvent aProfileEvent, TInt aProfileId );
-
-    private:
-        // By default, prohibit copy constructor
-        CSysApProfileObserver( const CSysApProfileObserver& );
-    
-        // Prohibit assigment operator
-        CSysApProfileObserver& operator= ( const CSysApProfileObserver& );
-    
-    private:
-        CSysApAppUi&                 iSysApAppUi;
-        CProfileChangeNotifyHandler* iHandler;
-    };
-
-#endif      // SYSAPPROFILEOBSERVER_H
-            
-// End of File
--- a/coreapplicationuis/SysAp/Inc/SysApShutdownImage.h	Wed Sep 29 15:24:56 2010 +0300
+++ b/coreapplicationuis/SysAp/Inc/SysApShutdownImage.h	Thu Oct 07 06:25:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002-2008 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2002-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"
@@ -133,7 +133,7 @@
         */
         TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType);
 
-        CFbsBitmap* ReadSVGL (TFileName aFileName);
+        CFbsBitmap* ReadSVGL (const TFileName& aFileName);
     private:    // Data
 
         //Used for showing user selected image
--- a/coreapplicationuis/SysAp/Inc/SysApSsSettingsObserver.h	Wed Sep 29 15:24:56 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,106 +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:  CSysApSsSettingsObserver class definition. This class
-*                implements methods needed for handling SsSettings functionality
-*                that tells what is the currently used ALS line for outgoing
-*                calls.
-*
-*/
-
-
-#ifndef SYSAPSSSETTINGSOBSERVER_H
-#define SYSAPSSSETTINGSOBSERVER_H
-
-// INCLUDES
-#include <e32base.h>
-#include <msssettingsobserver.h>
-
-// FORWARD DECLARATIONS
-class CSysApAppUi;
-
-// CLASS DECLARATION
-/**
-*  CSysApSsSettingsObserver
-*
-*  @lib   sysap
-*  @since 1.0
-*/
-
-class CSysApSsSettingsObserver : public CBase, public MSSSettingsObserver
-    {
-    public: // Constructors and destructor
-        /**
-        * EPOC default constructor.
-        */
-        static CSysApSsSettingsObserver* NewL( CSysApAppUi& aSysApAppUi );
-
-        /**
-        * Destructor.
-        */
-        virtual ~CSysApSsSettingsObserver();
-    
-    public:     
-        /**
-        * CallBack function from MSSSettingsObserver. 
-        * Gets called when SS settings are changed.
-        * @param None
-        * @return void
-        */
-        void PhoneSettingChanged( TSSSettingsSetting aSetting, TInt aNewValue );
-    
-    private:
-        /**
-        * EPOC default constructor.
-        * @param None
-        * @return void
-        */
-        void ConstructL( );
-        
-        /**
-        * Constructor
-        * @param CSysApAppUi& aSysApAppUi
-        * @return void
-        */         
-        CSysApSsSettingsObserver( CSysApAppUi& aSysApAppUi );
-    
-        /**
-        * C++ default constructor.
-        * @param None
-        * @return void
-        */
-        CSysApSsSettingsObserver();
-        
-    private:
-        // By default, prohibit copy constructor
-        CSysApSsSettingsObserver( const CSysApSsSettingsObserver& );
-    
-        // Prohibit assigment operator
-        CSysApSsSettingsObserver& operator= ( const CSysApSsSettingsObserver& );
-    
-    private:
-        /**
-        * Method for setting the state of Second line indicator
-        * @param None
-        * @return void
-        */
-        void SetSecondLineIndicatorL( TInt aSsSettingsAlsLineValue ) const;
-    
-    private:
-        RSSSettings         iSysApSsSettings;
-        CSysApAppUi&        iSysApAppUi;
-    };
-
-#endif      // SYSAPSSSETTINGSOBSERVER_H
-            
-// End of File
--- a/coreapplicationuis/SysAp/Inc/SysApWaitNote.h	Wed Sep 29 15:24:56 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,86 +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:  CSysApWaitNote class definition. The class uses CAknGlobalNote
-*                to show a wait note..
-*
-*/
-
-
-#ifndef SYSAPWAITNOTE_H
-#define SYSAPWAITNOTE_H
-
-// INCLUDES
-#include <e32base.h>
-#include <AknGlobalNote.h>
-#include "SysAp.hrh"
-
-// CONSTANTS
-
-
-// CLASS DECLARATION
-/**
-*  CSysApWaitNote
-*  
-*  @lib   sysap
-*  @since 1.2* 
-*/
-
-class CSysApWaitNote: public CBase
-{
-public:
-
-    /**
-    * Constructor
-    */         
-    static CSysApWaitNote* NewL(TBool aCoverDisplaySupported);
-
-    /**
-    * Destructor.
-    */
-    virtual ~CSysApWaitNote();
-
-    /**
-    * This method shows the waitnote.
-    * @param  aNote          -- note id from sysap.hrh 
-    * @param  aNoteStringBuf -- localized text 
-    * @return void
-    */         
-    void ShowNoteL(const TSysApWaitNoteIds aNote, HBufC* aNoteStringBuf);
-    
-    /**
-    * This method cancels the waitnote..
-    * @param  None
-    * @return void
-    */         
-    void Cancel();
-
-private:
-
-    /**
-    * Constructors
-    */         
-    CSysApWaitNote(TBool aCoverDisplaySupported);
-    void ConstructL();
-
-private:
-
-    CAknGlobalNote*          iWaitNote;
-    TInt                     iNoteId;
-    TBool                    iActive;
-    TBool                    iCoverDisplaySupported;
-};
-
-#endif // SYSAPWAITNOTE_H
-
-// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/SysAp/Inc/sysapcharginganimation.h	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,88 @@
+/*
+ ============================================================================
+ Name		: sysapcharginganimation.h
+ Author	  : 
+ Version	 : 1.0
+ Copyright   : 
+ Description : CSysApChargingAnimation declaration
+ ============================================================================
+ */
+
+#ifndef CCHARGINGANIMATION_H
+#define CCHARGINGANIMATION_H
+
+// INCLUDES
+#include <e32std.h>
+#include <e32base.h>
+#include <coecntrl.h>
+
+// CLASS DECLARATION
+class   CFbsBitmap;
+/**
+ *  CSysApChargingAnimation
+ * 
+ */
+
+enum KChargingMode
+{
+    KChargingModeUnknown=-1,
+    KChargingModeChargingOn=0,
+    KChargingModeFull
+};
+ 
+
+class CSysApChargingAnimation : public CCoeControl
+    {
+public:
+    // Constructors and destructor
+
+    /**
+     * Destructor.
+     */
+    ~CSysApChargingAnimation();
+
+    /**
+     * Two-phased constructor.
+     */
+    static CSysApChargingAnimation* NewL();
+
+    /**
+     * Two-phased constructor.
+     */
+    static CSysApChargingAnimation* NewLC();
+    
+    void Draw(const TRect& aRect) const;
+    
+    static TInt TimerExpired( TAny* aObject );
+    
+    void StartChargingAnimationL();
+    void StopAnimation();
+    void StartChargingFullAnimationL();
+private:
+    void SetModeL(TInt aMode);    
+    void SetFullFramesL();
+    void SetChargingFramesL();
+    void DeleteFrames();
+    void SetNextFrame();
+
+    void ResetTimer();
+    void StopTimer();
+    /**
+     * Constructor for performing 1st stage construction
+     */
+    CSysApChargingAnimation();
+
+    /**
+     * EPOC default constructor for performing 2nd stage construction
+     */
+    void ConstructL();
+
+    CFbsBitmap* ReadSVGL (TFileName aFileName);
+    
+    CFbsBitmap *iBitmap;
+    TInt iFrameCount,iCurrentFrame,iMode;
+    CPeriodic *iAnimTimer;
+    RPointerArray<CFbsBitmap> iAnimation;
+    };
+
+#endif // CCHARGINGANIMATION_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/SysAp/Src/CenRepObservers/SysApCenRepSilentModeObserver.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,124 @@
+/*
+* 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:  CSysApCenRepSilentModeObserver implementation.
+ *
+*/
+
+
+// INCLUDE FILES
+#include "SysApCenRepSilentModeObserver.h"
+#include "SysApAppUi.h"
+#include <hbindicatorsymbian.h>
+
+// ========================== MEMBER FUNCTIONS ================================
+
+// ----------------------------------------------------------------------------
+// ----------------------------------------------------------------------------
+
+CSysApCenRepSilentModeObserver* CSysApCenRepSilentModeObserver::NewL( )
+    {       
+    TRACES( RDebug::Print( _L("CSysApCenRepSilentModeObserver::NewL" ) ) );
+    CSysApCenRepSilentModeObserver* self = new ( ELeave ) CSysApCenRepSilentModeObserver(  );
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop(); //self
+    return self;
+    }
+
+// ----------------------------------------------------------------------------
+// ----------------------------------------------------------------------------
+
+CSysApCenRepSilentModeObserver::CSysApCenRepSilentModeObserver(  )
+    {
+    TRACES( RDebug::Print( _L("CSysApCenRepSilentModeObserver::CSysApCenRepSilentModeObserver" ) ) );
+    }
+
+// ----------------------------------------------------------------------------
+// ----------------------------------------------------------------------------
+
+CSysApCenRepSilentModeObserver::~CSysApCenRepSilentModeObserver()
+    {
+    TRACES( RDebug::Print( _L("~CSysApCenRepSilentModeObserver") ) );
+    if ( iSilentModeHandler )
+        {
+        iSilentModeHandler->StopListening();
+        }
+    delete iSilentModeHandler;
+    delete iSession;
+    }
+
+// ----------------------------------------------------------------------------
+// ----------------------------------------------------------------------------
+
+void CSysApCenRepSilentModeObserver::ConstructL()
+    {
+    TRACES( RDebug::Print( _L("CSysApCenRepSilentModeObserver::ConstructL: trying CRepository::NewL( KCRUidBluetoothPowerState )") ) );
+    iSession = CRepository::NewL( KCRUidProfileEngine );
+    
+    iSilentModeHandler = 
+        CCenRepNotifyHandler::NewL( *this, 
+                                    *iSession, 
+                                    CCenRepNotifyHandler::EIntKey, 
+                                    KProEngSilenceMode );
+    iSilentModeHandler->StartListeningL();
+    }
+
+// ----------------------------------------------------------------------------
+// ----------------------------------------------------------------------------
+
+void CSysApCenRepSilentModeObserver::HandleNotifyInt( TUint32 aId, TInt aNewValue  )
+    {
+    TRACES( RDebug::Print( _L("CSysApCenRepSilentModeObserver::HandleNotifyInt(), aId=0x%x, aNewValue=%d" ), aId, aNewValue ) );
+     
+    SilenceIndicatorL(aNewValue);
+        
+    }
+
+// ----------------------------------------------------------------------------
+// ----------------------------------------------------------------------------
+
+void CSysApCenRepSilentModeObserver::HandleNotifyError( TUint32 /* aId */, TInt /* error */, CCenRepNotifyHandler* /* aHandler */ )
+    {
+    TRACES( RDebug::Print( _L("CSysApCenRepSilentModeObserver::HandleNotifyError()" ) ) );
+    }
+
+// ----------------------------------------------------------------------------
+// ----------------------------------------------------------------------------
+
+void CSysApCenRepSilentModeObserver::SilenceIndicatorL(TInt aValue)
+    {
+    TRACES( RDebug::Print( _L(" CSysApCenRepSilentModeObserver::SilenceIndicatorL" )));
+    CHbIndicatorSymbian* indicator = CHbIndicatorSymbian::NewL();
+    CleanupStack::PushL(indicator);
+    _LIT(KSilentmodeindicator,"com.nokia.hb.indicator.controlpanel.cpsilenceindicatorplugin/1.0");
+    
+    
+    if (aValue) 
+       {
+       TRACES( RDebug::Print( _L("CSysApCenRepSilentModeObserver::HandleNotifyInt() activate silence indicator" )));
+       // activate the indicator plugin to display the icon in status bar        
+       indicator->Activate(KSilentmodeindicator); 
+       } 
+    else
+       {
+       TRACES( RDebug::Print( _L("CSysApCenRepSilentModeObserver::HandleNotifyInt() Deactivate silence indicator" )));
+       // deactivate the indicator plugin to remove the icon in the status bar  
+       indicator->Deactivate(KSilentmodeindicator);
+       }
+    CleanupStack::PopAndDestroy(indicator); // indicator
+    }
+    
+
+// End of File
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/SysAp/Src/CenRepObservers/SysApCenRepSilentModeObserver.h	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,81 @@
+/*
+* 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:  CSysApCenRepSilentModeObserver class definition. 
+*
+*/
+
+
+#ifndef SYSAPCENREPSILENTMODEOBSERVER_H
+#define SYSAPCENREPSILENTMODEOBSERVER_H
+
+// INCLUDES
+#include <e32base.h>
+#include <centralrepository.h>
+#include "SysAp.hrh"
+#include <cenrepnotifyhandler.h>
+#include <ProfileEngineDomainCRKeys.h>
+
+// CLASS DECLARATION
+
+
+class CSysApCenRepSilentModeObserver : public CBase, public MCenRepNotifyHandlerCallback
+    {
+    public: // Constructors and destructor
+        /**
+        * Default constructor
+        */
+        static CSysApCenRepSilentModeObserver* NewL(  );
+
+        /**
+        * Destructor.
+        */
+        ~CSysApCenRepSilentModeObserver();
+        
+        // From MCenRepNotifyHandlerCallback
+        void HandleNotifyInt( TUint32 aId, TInt aNewValue );
+        void HandleNotifyError( TUint32 aId, TInt error, CCenRepNotifyHandler* aHandler );
+
+    private:
+
+        /**
+        * @param None
+        * @return void
+        */
+        void ConstructL( );
+        
+        
+        /**
+        * C++ default constructor.
+        * @param None
+        * @return void
+        */
+        CSysApCenRepSilentModeObserver();
+       
+        
+        //To activate and Deactivate the indicator
+        void SilenceIndicatorL(TInt avalue);
+        
+   
+
+  
+    private:
+               
+        CRepository*          iSession;
+        //To listen to the silentmodekey
+        CCenRepNotifyHandler* iSilentModeHandler;
+    };
+
+#endif      // SYSAPCENREPSILENTMODEOBSERVER_H
+            
+// End of File
--- a/coreapplicationuis/SysAp/Src/SysApAppUi.cpp	Wed Sep 29 15:24:56 2010 +0300
+++ b/coreapplicationuis/SysAp/Src/SysApAppUi.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -55,7 +55,7 @@
 #include "sysapkeymanagement.h"
 #include "SysApShutdownImage.h"
 #include "SysApKeySndHandler.h"
-
+#include "SysApCenRepSilentModeObserver.h"
 #include "SysApShutdownAnimation.h"
 #include "SysApEtelConnector.h"
 
@@ -74,6 +74,21 @@
 #include <usbpersonalityids.h>
 #include "sysap.rsg"
 #include <hbindicatorsymbian.h>
+//Qt Highway
+#include <xqappmgr.h>
+#include <xqaiwdecl.h>
+#include <xqaiwrequest.h>
+#include <QString.h>
+#include <QVariant.h>
+#include <QMap.h>
+#include <QList.h>
+//For End Key
+#include <APGWGNAM.H>
+//For HS RPropertyKey
+#include <homescreendomainpskeys.h>
+//For Hs Changes
+#include <afactivitylauncher.h>
+#include <apgcli.h>
 
 class CHbSymbianVariant;
 const TInt KModifierMask( 0 );
@@ -156,7 +171,10 @@
     RWindowGroup groupWin = iCoeEnv->RootWin();
     User::LeaveIfError ( iCapturedEKeyPowerOff = groupWin.CaptureKey( EKeyPowerOff, KModifierMask, KModifierMask ) );
     User::LeaveIfError ( iCapturedEKeyPowerOffUpAndDowns = groupWin.CaptureKeyUpAndDowns( EStdKeyDevice2, KModifierMask, KModifierMask ) );
-     
+    //Capture SEND and END keys
+    User::LeaveIfError ( iCapturedEKeySendKey = groupWin.CaptureKey( EKeyPhoneSend, KModifierMask, KModifierMask ) );
+    User::LeaveIfError ( iCapturedEKeyEndKey = groupWin.CaptureKey( EKeyPhoneEnd, KModifierMask, KModifierMask ) );
+    
     TRACES ( RDebug::Print( _L("CSysApAppUi::ConstructL: trying CSysApDefaultKeyHandler::NewL()") ) );
     iSysApDefaultKeyHandler = CSysApDefaultKeyHandler::NewL(*this);
     
@@ -256,6 +274,10 @@
     TRACES( RDebug::Print( _L("CCSysApAppUi::ConstructL  trying CSysApCenRepHacSettingObserver::NewL") ) );
     iSysApCenRepHacSettingObserver = CSysApCenRepHacSettingObserver::NewL( *this ); 
     
+    TRACES( RDebug::Print( _L("CCSysApAppUi::ConstructL  trying CSysApCenRepSilentModeObserver::NewL") ) );
+    iSysApCenRepSilentModeObserver = CSysApCenRepSilentModeObserver::NewL( ); 
+    
+    
 #ifndef RD_MULTIPLE_DRIVE
     if ( iSysApFeatureManager->MmcSupported() )
         {
@@ -320,7 +342,10 @@
     delete iVariantAccState; 
 
     delete iSysApAudioRoutingObserver;
-    
+
+    delete iChargingAnimation;
+    iChargingAnimation=NULL;
+
     if (iMemCardPwdDialog!=NULL)
         {
         //PowerMenu already exist
@@ -344,13 +369,17 @@
     RWindowGroup groupWin = iCoeEnv->RootWin();
     groupWin.CancelCaptureKey( iCapturedEKeyPowerOff );
     groupWin.CancelCaptureKeyUpAndDowns( iCapturedEKeyPowerOffUpAndDowns );
+    //Deregister SendKey
+    groupWin.CancelCaptureKey( iCapturedEKeySendKey );
+    //Deregister EndKey
+    groupWin.CancelCaptureKey( iCapturedEKeyEndKey );
     
     delete iSysApDefaultKeyHandler;
     delete iSysApCenRepLightSettingsObserver;
     delete iSysApCenRepBtObserver;
     delete iSysApCenRepHacSettingObserver;
     delete iSysApCenRepController;
-
+    delete iSysApCenRepSilentModeObserver;
     delete iSysApPubSubObserver;
     
     delete iSysApLightsController;
@@ -491,7 +520,7 @@
 
     if ( iSysApPsmController )
        {
-	   if ( iCharging ) // if charger is connected on boot PSM queries may need to be shown
+	   if ( iCharging ) // 
         {
          HandleChargingStatusL( StateOfProperty( KPSUidHWRMPowerState, KHWRMChargingStatus ) );
         }
@@ -516,14 +545,7 @@
         // low and empty battery states are informed to the user in device startup
         HandleBatteryStatusL( batteryStatus );
         }
-    else if ( iSysApPsmController && !iCharging )
-        {
-            TRACES( RDebug::Print(_L("CSysApAppUi::HandleUiReadyAfterBootL: batteryStatus %d, iCharging %d -> disable partial psm" ), batteryStatus, iCharging ) );
-
-            iSysApPsmController->BatteryLow( EFalse );
-            iSysApPsmController->DoEnablePartialPsm( EFalse );
-        }
-    
+        
     if ( ! iSysApUsbIndicatorController )
         {
         TRAPD ( usbErr, iSysApUsbIndicatorController = CreateSysApUsbIndicatorL( *this ) );
@@ -556,16 +578,23 @@
             iSysApPsmController = CSysApPsmController::NewL( *this );        
             }
 
-        // in charger boot explicitly disable  power save mode
+        // In charger boot explicitly disable  power save mode
         if ( aSwState == RStarterSession::ECharging )
             {
             iSysApPsmController->ChargerConnected();
-            iSysApPsmController->DoEnableFullPsm(EFalse); // disable  power save now
+            iSysApPsmController->DoEnableFullPsm(EFalse); // disable  power save mode now
             }
         }
 
     if ( aSwState == RStarterSession::ECharging || aSwState == RStarterSession::EAlarm )
         {
+        if(aSwState == RStarterSession::ECharging )
+            {
+	        TRACES( RDebug::Print(_L("CSysApAppUi::DoStateChangedL: Stop the splash screen and start charging animation.") ) );			
+            //Stop the splash screen and start charging animation
+            RProperty::Set( KPSUidStartup, KPSSplashShutdown, ESplashShutdown);
+            }
+       
         TInt state( StateOfProperty( KPSUidHWRMPowerState, KHWRMBatteryLevel ) );
         //Also Charging status will be updated with the following function.
         UpdateBatteryBarsL( state );    
@@ -665,14 +694,14 @@
     return iResourcesFreed;
     }
 
-void CSysApAppUi::ShowExampleUiNoteL( const TDesC& noteText )const
+void CSysApAppUi::ShowNoteL( const TDesC& noteText )const
     {          
- 	TRACES( RDebug::Print( _L("CSysApAppUi::ShowExampleUiNoteL:: constructing CHbDeviceMessageBoxSymbian:BeGIN") ) );    
+ 	TRACES( RDebug::Print( _L("CSysApAppUi::ShowNoteL:: constructing CHbDeviceMessageBoxSymbian:BeGIN") ) );    
     CHbDeviceMessageBoxSymbian *note = CHbDeviceMessageBoxSymbian::NewL(CHbDeviceMessageBoxSymbian::EInformation);
  	CleanupStack::PushL(note);
-    TRACES( RDebug::Print( _L("CSysApAppUi::ShowExampleUiNoteL:: construction of CHbDeviceMessageBoxSymbian:END") ) ); 
+    TRACES( RDebug::Print( _L("CSysApAppUi::ShowNoteL:: construction of CHbDeviceMessageBoxSymbian:END") ) ); 
     note->SetTextL(noteText);
-	note->SetTimeout(300);
+	note->SetTimeout(3000);
  	TRACES( RDebug::Print( _L("CSysApAppUi:: Display of  CHbDeviceMessageBoxSymbian::Begin") ) );    
     note->ShowL();
 	TRACES( RDebug::Print( _L("CSysApAppUi:: Display of  CHbDeviceMessageBoxSymbian::End") ) );
@@ -1133,6 +1162,9 @@
         if( !iIgnoreNextPowerKeyRepeats )
             {
             iIgnoreNextPowerKeyRepeats = ETrue;
+			
+            delete iChargingAnimation;
+            iChargingAnimation=NULL;
 
             SetStarterState( RStarterSession::ENormal );
             }
@@ -1263,7 +1295,7 @@
     TPtrC aStringPointer = aString->Des();
     aStringPointer.Set(KPowerPressKey);
     TRACES( RDebug::Print( _L("CSysApWsClient::RunL(): Key EEventKeyUp 01") ) );   
-    ShowExampleUiNoteL( aStringPointer );  
+    ShowNoteL( aStringPointer );  
     CleanupStack::PopAndDestroy(); // aString
     }
 
@@ -2014,8 +2046,7 @@
         {
         if ( iSysApPsmController && UiReady() )
             {
-            iSysApPsmController->BatteryLow( ETrue );
-            
+                    
                        
             if ( enableAutoPsm)
                 {
@@ -2056,64 +2087,42 @@
 // CSysApAppUi::ShowUiNoteL( const TSysApNoteIds aNote ) const
 // ----------------------------------------------------------------------------
 
-void CSysApAppUi::ShowUiNoteL( const TSysApNoteIds aNote ) const
+void CSysApAppUi::ShowUiNoteL( const TSysApNoteIds aNote ) 
     {
-    TRACES( RDebug::Print( _L("CSysApAppUi::ShowUiNoteL aNote: %d"), aNote ) );
-    
+	TRACES( RDebug::Print( _L("CSysApAppUi::ShowUiNoteL aNote") ) );
     TInt swState( StateOfProperty( KPSUidStartup, KPSGlobalSystemState ) );
-
     if( UiReady() || swState == ESwStateSecurityCheck)
-      {
+		{
+		TRACES( RDebug::Print( _L("CSysApAppUi::ShowUiNoteL aNote: %d"), aNote ) );
           switch ( aNote )
             {
             case EBatteryLowNote:
                 {
-                 _LIT(KPowerPressKey,"Battery low");
-                 HBufC* aString = HBufC16::NewLC(100);
-                 TPtrC aStringPointer = aString->Des();
-                 aStringPointer.Set(KPowerPressKey);
-                 TRACES( RDebug::Print( _L("CSysApWsClient::RunL(): Key EEventKeyUp 01") ) );   
-                 ShowExampleUiNoteL( aStringPointer );
-                 CleanupStack::PopAndDestroy(); // aString
+                 _LIT(KLowBattery,"Battery low");
+                 ShowNoteL( KLowBattery() );
                 }
                 break;
             case EBatteryFullNote:
                 {
-                _LIT(KPowerPressKey,"Battery full");
-                HBufC* aString = HBufC16::NewLC(100);
-                TPtrC aStringPointer = aString->Des();
-                aStringPointer.Set(KPowerPressKey);
-                TRACES( RDebug::Print( _L("CSysApWsClient::RunL(): Key EEventKeyUp 01") ) );   
-                ShowExampleUiNoteL( aStringPointer );
-                CleanupStack::PopAndDestroy(); // aString
+                _LIT(KBatteryFull,"Battery full");
+                ShowNoteL( KBatteryFull() );
                 }
                 break;
             case ERechargeBatteryNote:
                 {
                 iSysApLightsController->BatteryEmptyL( ETrue );
-                _LIT(KPowerPressKey,"Battery empty. Recharge");
-                HBufC* aString = HBufC16::NewLC(100);
-                TPtrC aStringPointer = aString->Des();
-                aStringPointer.Set(KPowerPressKey);
-                TRACES( RDebug::Print( _L("CSysApWsClient::RunL(): Key EEventKeyUp 01") ) );   
-                ShowExampleUiNoteL( aStringPointer );
-                CleanupStack::PopAndDestroy(); // aString
+                _LIT(KRechargeBattery,"Battery empty. Recharge");
+                ShowNoteL( KRechargeBattery() );
                 }
                 break;
             case ENotChargingNote:
                 {
-                _LIT(KPowerPressKey,"Not charging");
-                HBufC* aString = HBufC16::NewLC(100);
-                TPtrC aStringPointer = aString->Des();
-                aStringPointer.Set(KPowerPressKey);
-                TRACES( RDebug::Print( _L("CSysApWsClient::RunL(): Key EEventKeyUp 01") ) );   
-                ShowExampleUiNoteL( aStringPointer );
-                CleanupStack::PopAndDestroy(); // aString
+                _LIT(KNotCharging,"Not charging");
+                ShowNoteL( KNotCharging() );
                 }
                 break;
             case EBatteryFullUnplugChargerNote:
                 {
-                TRACES( RDebug::Print( _L("CSysApWsClient::RunL(): Key EEventKeyUp 01") ) ); 
                 iSysApLightsController->BatteryEmptyL( ETrue );
                  _LIT(KunplugCharger,"txt_power_dpopinfo_unplug_charger_to_save_energy");                 
                  HBufC* unplugCharger = HbTextResolverSymbian::LoadL(KunplugCharger);
@@ -2124,22 +2133,28 @@
                 break;
             case EUnplugChargerNote:
                 {
-                _LIT(KPowerPressKey,"Unplug charger from power supply to save energy");
-                HBufC* aString = HBufC16::NewLC(250);
-                TPtrC aStringPointer = aString->Des();
-                aStringPointer.Set(KPowerPressKey);
-                TRACES( RDebug::Print( _L("CSysApWsClient::RunL(): Key EEventKeyUp 01") ) );   
-                ShowExampleUiNoteL( aStringPointer );
-                CleanupStack::PopAndDestroy(); // aString
+                _LIT(KUnplugCharger,"Unplug charger from power supply to save energy");
+                ShowNoteL( KUnplugCharger() );
                 }
                 break;
+            case ESysApRestartPhone:
+                {
+				//Show the restart note
+				_LIT(KRestartPhone,"Phone will be restarted");
+				ShowNoteL( KRestartPhone() );
+				//wait for 3 seconds to close note. Other wise the shutdown will continue
+				//without waiting for note to complete.
+				User::After(4000000);
+				//Now restart the device
+				DoShutdownL( ETrue, RStarterSession::EDataRestoreReset );	                
+				}
+                break;
             default:
                 break;
             }
         }
     }
-
-
+	
 // ----------------------------------------------------------------------------
 // CSysApAppUi::BatteryEmptyL()
 // ----------------------------------------------------------------------------
@@ -2296,6 +2311,16 @@
             {
             TRACES( RDebug::Print( _L("CSysApAppUi::UpdateBatteryBarsL: Starting Charging") ) );
             iCharging = ETrue;
+            
+            TInt swState;
+            RProperty::Get( KPSUidStartup, KPSGlobalSystemState, swState );
+            if(swState == ESwStateCharging)
+                {
+                if(!iChargingAnimation)
+                    iChargingAnimation= CSysApChargingAnimation::NewL(); 
+				
+                iChargingAnimation->StartChargingAnimationL();
+                }
             }
         }
     else
@@ -2304,6 +2329,14 @@
             {
             TRACES( RDebug::Print( _L("CSysApAppUi::UpdateBatteryBarsL: Stopping Charging") ) );
             iCharging = EFalse;
+            
+            TInt swState;
+            RProperty::Get( KPSUidStartup, KPSGlobalSystemState, swState );
+            if(swState == ESwStateCharging)
+                {
+                delete iChargingAnimation;
+                iChargingAnimation=NULL;
+                }
             }
         }
     
@@ -2355,10 +2388,7 @@
         if ( showNote ) // Power Mgmt UI spec defines that no Charging note is shown while the phone is ringing/alerting
             {
             TRACES( RDebug::Print( _L("CSysApWsClient::RunL(): Key EEventKeyUp 01") ) );   
-            _LIT(KChargingNote,"txt_power_management_dblist_charging");
-            HBufC* chargingNote = HbTextResolverSymbian::LoadL(KChargingNote);
-            CHbDeviceNotificationDialogSymbian::NotificationL(KNullDesC,*chargingNote);     
-                    
+                             
             }
         }
     }
@@ -2776,6 +2806,30 @@
                     Exit();
                     break;
 #endif
+                case EKeyPhoneSend:
+                    {
+                    TRACES( RDebug::Print(_L("CSysApAppUi::HandleKeyEventL, Send  key event received::Start") ) );
+                    if (UiReady()&& aKeyEvent.iRepeats == 0)
+                        {
+                        //Ignore LongPress on SEND key event as Long press generates Short press event too, 
+                        //And there is no Different use case for long press. 
+                        HandleSendKeyEventL();
+                        }
+                    TRACES( RDebug::Print(_L("CSysApAppUi::HandleKeyEventL, Send  key event received::End") ) );
+                    break;
+                    }
+                case EKeyPhoneEnd:
+                    {
+                    TRACES( RDebug::Print(_L("CSysApAppUi::HandleKeyEventL, End  key event received") ) );
+                    if (UiReady() && aKeyEvent.iRepeats == 0)
+                        {
+                        //Ignore LongPress on END key event as Long press generates Short press event too, 
+                        //And there is no Different use case for long press. 
+                        HandleEndKeyEventL();
+                        }
+                    TRACES( RDebug::Print(_L("CSysApAppUi::HandleKeyEventL()::EKeyPhoneEnd: End" ) ) );
+                    break;
+                    }
                 case EKeyPowerOff:
                     //Short power key press
                     iKeyBoardRepeatCount++;
@@ -3104,19 +3158,8 @@
 
 void CSysApAppUi::ShowEjectWaitNoteL( TInt /* aDriveToEject */ )
     {
- /*   if ( iSysApWaitNote )
-        {
-        return;
-        }
-    HBufC* text = iSysApDriveList->GetFormattedDriveNameLC(
-        aDriveToEject,
-        0, // Not used
-        R_QTN_EJECTING_MEMORY_NAME_WAIT );
-    iSysApWaitNote = CSysApWaitNote::NewL(
-        iSysApFeatureManager->CoverDisplaySupported() );
-    iSysApWaitNote->ShowNoteL( EClosingApplicationsNote, text );
-    CleanupStack::PopAndDestroy( text );
- */   }
+ 		// removed code , it can  be needed if the wait note required in 10.1
+    }
 
 // ----------------------------------------------------------------------------
 // CSysApAppUi::IsEjectQueryVisible
@@ -3142,9 +3185,6 @@
     iSysApDriveList->GetMemoryCardsL(
         iInsertedMemoryCards, CSysApDriveList::EIncludeInserted );
 
-    // Update memory card indicator status
-//    SetMemoryCardIndicatorL();
-
     // Handle unlock
     RunUnlockNotifierL();
     }
@@ -3721,15 +3761,6 @@
                         iSysApDriveList->MarkDriveInsertBeepIgnored( aDrive );
                         }
                     }
-
-//                if ( iDriveToDismount == aDrive && iSysApConfirmationQuery )
-                    {
-//                    if ( iSysApConfirmationQuery->CurrentQuery() == ESysApRemoveMmcNote )
-                        {
-                        // User put back ejected memory card or did not remove it
-//                        iSysApConfirmationQuery->Cancel();
-                        }
-                    }
                 RunUnlockNotifierL();
                 }
             break;
@@ -3754,8 +3785,6 @@
                     iSysApDriveList->ResetDriveInsertBeepIgnored( aDrive );
                     }
 
-//                CancelGlobalListQuery(); // Cancel power menu
-
                 if ( aDrive == defaultMemoryCard )
                     {
                     RProperty::Set( KPSUidUikon, KUikMMCInserted, 0 );
@@ -3814,9 +3843,6 @@
     iSysApDriveList->GetMemoryCardsL(
         iInsertedMemoryCards, CSysApDriveList::EIncludeInserted );
 
-    // Update memory card indicator status
-//    SetMemoryCardIndicatorL();
-
     TRACES( RDebug::Print(
         _L( "CSysApAppUi::MMCStatusChangedL END: MMCCount: %d, iMMCEjectUsed: %d" ),
         iInsertedMemoryCards.Count(), iMMCEjectUsed ) );
@@ -4055,6 +4081,147 @@
         }
     }
 
+/**
+ * Handles SEND key events
+ * If SEND key is pressed in idle Home screen view, This will bring LOGS View without DialPad.
+ * otherwise, it brings LOGS&Dial pad.
+ */
+void CSysApAppUi::HandleSendKeyEventL()
+    {
+    TRACES( RDebug::Print( _L("CSysApAppUi::HandleSendKeyEventL: START") ) );    
+    //Check whether ForeGround app is HomeScreen
+    TInt hsStatus(EHomeScreenIdleState) ;
+    //Get the RProperty
+    User::LeaveIfError( RProperty::Get(KHsCategoryUid, KHsCategoryStateKey, hsStatus));
+    //Enable dialpad in Non-HS view
+    const TBool enableDialPad( EHomeScreenIdleState != hsStatus ); 
+    
+    //invoke LOGS/Dialer app
+    XQApplicationManager appMgr;
+    QScopedPointer<XQAiwRequest> request(appMgr.create(QString("logs"), XQI_LOGS_VIEW, XQOP_LOGS_SHOW, false));   
+    
+    if (!request.isNull()) 
+        {
+        TRACES( RDebug::Print( _L("CSysApAppUi::HandleSendKeyEventL::Request::Begin") ) );
+        int retValue = -1; 
+        
+        QVariantMap map;
+        map.insert(XQLOGS_VIEW_INDEX, QVariant(0)); 
+        map.insert(XQLOGS_SHOW_DIALPAD, QVariant(enableDialPad));
+        map.insert(XQLOGS_DIALPAD_TEXT, QVariant(QString()));
+        
+        QList<QVariant> arglist;
+
+        arglist.append(QVariant(map));
+        request->setArguments(arglist);
+        QVariant ret(retValue);        
+        request->send(ret);
+        TRACES( RDebug::Print( _L("CSysApAppUi::InvokeApp::Request::End") ) );
+        }
+    
+    TRACES( RDebug::Print( _L("CSysApAppUi::HandleSendKeyEventL: End") ) );
+    }
+
+/**
+ * Handles END key events
+ * If END key is pressed, Fore ground app will be exits and 
+ * Home screen view will brought to Foreground
+ */
+void CSysApAppUi::HandleEndKeyEventL()
+    {
+    TRACES( RDebug::Print( _L("CSysApAppUi::HandleEndKeyEventL: Start") ) );
+    //Get ForeGround App
+    TInt foregroundWindowGroupId = iEikonEnv->WsSession().GetFocusWindowGroup();
+    CApaWindowGroupName* doomedApp = CApaWindowGroupName::NewLC(iEikonEnv->WsSession(),foregroundWindowGroupId );
+    
+    //Bring the HS before killing the ForeGround App.
+    _LIT(KHsActivactionUri, "appto://20022F35?activityname=HsIdleView");
+    RApaLsSession apaLsSession;
+    CleanupClosePushL(apaLsSession);
+    User::LeaveIfError(apaLsSession.Connect());
+    CAfActivityLauncher *activityEnabler = CAfActivityLauncher::NewLC(apaLsSession, iEikonEnv->WsSession());
+    activityEnabler->launchActivityL(KHsActivactionUri);
+    CleanupStack::PopAndDestroy(activityEnabler);
+    CleanupStack::PopAndDestroy(&apaLsSession);
+        
+    //End or Kill the Foreground App
+    //If Phone is in HS idle view, End key have no impact.
+    if ( !doomedApp->IsSystem() )
+       {
+       TApaTask task( iEikonEnv->WsSession() );
+       task.SetWgId( foregroundWindowGroupId );
+       TRACES (
+               const TDesC& caption = doomedApp->Caption();
+               const TDesC& docname = doomedApp->DocName();
+               const TDesC& wgname = doomedApp->WindowGroupName();
+               TUid uid = doomedApp->AppUid();
+               RDebug::Print( _L("CSysApAppUi::HandleEndKeyEventL: Closing app \"%S\" (ThreadId %d, WgId %d, UID 0x%X); Docname: %S, WGName : %S"),
+                              &caption,
+                              (TUint)(task.ThreadId()),
+                              foregroundWindowGroupId,
+                              uid.iUid,
+                              &docname,
+                              &wgname);
+               );
+      task.EndTask();
+      TRACES( RDebug::Print(_L("CSysApAppUi::HandleKeyEventL::HandleEndKeyEventL, End  task event triggered") ) );
+       }
+    CleanupStack::PopAndDestroy(doomedApp);//doomedApp
+    TRACES( RDebug::Print( _L("CSysApAppUi::HandleEndKeyEventL: End") ) );    
+    }
+
+// ----------------------------------------------------------------------------
+// CSysApAppUi::GetTelServerL()
+// ----------------------------------------------------------------------------
+
+RTelServer* CSysApAppUi::GetTelServer()
+    {
+    if ( iSysApEtelConnector )
+        {
+        return iSysApEtelConnector->GetTelServer();
+        }
+    else
+        {
+        return NULL;
+        }
+    }
+
+// ----------------------------------------------------------------------------
+// CSysApAppUi::StartChargingAnimationL
+// ----------------------------------------------------------------------------
+//
+void CSysApAppUi::StartChargingAnimationL() 
+    {
+    TRACES( RDebug::Print( _L("CSysApAppUi::StartChargingAnimationL") ) );
+    if(!iChargingAnimation)
+        iChargingAnimation= CSysApChargingAnimation::NewL();
+    
+    iChargingAnimation->StartChargingAnimationL();
+    }
+    
+// ----------------------------------------------------------------------------
+// CSysApAppUi::StartChargingFullAnimationL
+// ----------------------------------------------------------------------------
+//
+void CSysApAppUi::StartChargingFullAnimationL() 
+    {
+    TRACES( RDebug::Print( _L("CSysApAppUi::StartChargingFullAnimationL") ) );
+    if(!iChargingAnimation)
+        iChargingAnimation= CSysApChargingAnimation::NewL();
+    
+    iChargingAnimation->StartChargingFullAnimationL();
+    }
+
+// ----------------------------------------------------------------------------
+// CSysApAppUi::StopChargingAnimationL
+// ----------------------------------------------------------------------------
+//
+void CSysApAppUi::StopChargingAnimationL()
+    {
+    TRACES( RDebug::Print( _L("CSysApAppUi::StopChargingAnimationL") ) );
+    if(iChargingAnimation)    
+        iChargingAnimation->StopAnimation();
+    }
 
 
 //end of file
--- a/coreapplicationuis/SysAp/Src/SysApConfirmationQuery.cpp	Wed Sep 29 15:24:56 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,382 +0,0 @@
-/*
-* Copyright (c) 2004-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:  CSysApConfirmationQuery implementation.
-*
-*/
-
-
-// INCLUDES
-
-#include <avkon.hrh>
-#include <avkon.rsg>
-#include "SysAp.hrh"
-#include "SysApConfirmationQuery.h"
-#include "SysApAppUi.h"
-#include <StringLoader.h>
-#include <avkon.hrh>
-#include <avkon.rsg>
-#include <SysAp.rsg>
-#include <SecondaryDisplay/SecondaryDisplaySysApAPI.h>
-#include <aknSDData.h>
-
-// Constants
-_LIT( KEmptyString, "" );
-
-
-
-// ============================ MEMBER FUNCTIONS ==============================
-
-// ----------------------------------------------------------------------------
-// CSysApConfirmationQuery::NewL() 
-// ----------------------------------------------------------------------------
-CSysApConfirmationQuery* CSysApConfirmationQuery::NewL( CSysApAppUi& aSysApAppUi )
-    {
-    CSysApConfirmationQuery* self = new(ELeave) CSysApConfirmationQuery( aSysApAppUi );
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    CleanupStack::Pop();
-    return self;
-    }
-
-// ----------------------------------------------------------------------------
-// CSysApConfirmationQuery::ConstructL() 
-// ----------------------------------------------------------------------------
-void CSysApConfirmationQuery::ConstructL()
-    {
-    CActiveScheduler::Add(this);
-    iQuery = CAknGlobalConfirmationQuery::NewL();           
-    iQueryId = ESysApNoQuery;
-    }
-
-// ----------------------------------------------------------------------------
-// CSysApConfirmationQuery::CSysApConfirmationQuery( CSysApAppUi& aSysApAppUi )
-// ----------------------------------------------------------------------------
-
-CSysApConfirmationQuery::CSysApConfirmationQuery( CSysApAppUi& aSysApAppUi ) 
-  : CActive( EPriorityStandard ), iSysApAppUi( aSysApAppUi )
-    {
-    }
-
-// ----------------------------------------------------------------------------
-// CSysApConfirmationQuery::~CSysApConfirmationQuery() 
-// ----------------------------------------------------------------------------
-
-CSysApConfirmationQuery::~CSysApConfirmationQuery() 
-    {
-    Cancel();
-    delete iQuery;
-    iQuery = NULL;
-    }
-
-
-// ----------------------------------------------------------------------------
-// CSysApConfirmationQuery::DoCancel() 
-// ----------------------------------------------------------------------------
-
-void CSysApConfirmationQuery::DoCancel() 
-    {
-    TRACES( RDebug::Print( _L("CSysApConfirmationQuery::DoCancel()" ) ) );
-    iQuery->CancelConfirmationQuery();
-    }
-
-// ----------------------------------------------------------------------------
-// CSysApConfirmationQuery::ShowQueryL()
-// ----------------------------------------------------------------------------
-
-void CSysApConfirmationQuery::ShowQueryL( const TSysApConfirmationQueryIds aQueryId, CCoeEnv* aLoaderEnv )
-    {
-    ShowQueryL( aQueryId, KNullDesC, aLoaderEnv );
-    }
-
-// ----------------------------------------------------------------------------
-// CSysApConfirmationQuery::ShowQueryL()
-// ----------------------------------------------------------------------------
-
-#ifdef RD_MULTIPLE_DRIVE
-void CSysApConfirmationQuery::ShowQueryL( const TSysApConfirmationQueryIds aQueryId, const TDesC& aValue, CCoeEnv* aLoaderEnv )
-#else // RD_MULTIPLE_DRIVE
-void CSysApConfirmationQuery::ShowQueryL( const TSysApConfirmationQueryIds aQueryId,  const TDesC& /*aValue*/, CCoeEnv* aLoaderEnv )
-#endif // RD_MULTIPLE_DRIVE
-    {
-    TRACES( RDebug::Print( _L("CSysApConfirmationQuery::ShowQueryL( %d )"), aQueryId ) );
-    HBufC* queryStringBuf = NULL;
-    HBufC* deviceNameBuf = NULL;
-    CAknQueryDialog::TTone tone = CAknQueryDialog::ENoTone;    
-    
-    if( !IsActive() )
-        {
-        iQueryId = aQueryId;
-        TInt secondaryDisplayCmdId(SecondaryDisplay::ECmdNoNote);
-        TInt keys(0);
-        TInt anim(0);        
-
-        switch ( iQueryId )
-            {
-            case ESysApRestartPhoneQuery:
-                queryStringBuf = StringLoader::LoadLC( R_QTN_RESTART_QUERY, aLoaderEnv );
-                keys = R_AVKON_SOFTKEYS_OK_EMPTY;
-                anim = R_QGN_NOTE_WARNING_ANIM;
-                secondaryDisplayCmdId = SecondaryDisplay::ECmdShowRestartPhoneQuery;
-                break;
-            case ESysApLeaveOfflineModeQuery:
-                queryStringBuf = StringLoader::LoadLC( R_QTN_LEAVE_OFFLINE_MODE_QUERY, aLoaderEnv );
-                keys = R_AVKON_SOFTKEYS_YES_NO;
-                secondaryDisplayCmdId = SecondaryDisplay::ECmdShowLeaveOfflineModeQuery;
-                break;
-#ifndef RD_MULTIPLE_DRIVE
-            case ESysApRemoveMmcNote:
-                queryStringBuf = StringLoader::LoadLC( R_QTN_MEMC_INFO_EJECT, aLoaderEnv );
-                keys = R_AVKON_SOFTKEYS_OK_EMPTY;
-                anim = R_QGN_NOTE_INFO_ANIM;
-                secondaryDisplayCmdId = SecondaryDisplay::ECmdShowRemoveMmcQuery;
-                break;
-            case ESysApEjectMmcQuery:
-                queryStringBuf = StringLoader::LoadLC( R_QTN_MEMC_CONF_EJECT, aLoaderEnv );
-                keys = R_AVKON_SOFTKEYS_YES_NO;
-                secondaryDisplayCmdId = SecondaryDisplay::ECmdShowEjectMmcQuery;
-                break;
-#else // RD_MULTIPLE_DRIVE
-            case ESysApRemoveMmcNote:
-                queryStringBuf = aValue.AllocLC();
-                keys = R_AVKON_SOFTKEYS_OK_EMPTY;
-                anim = R_QGN_NOTE_INFO_ANIM;
-                secondaryDisplayCmdId = SecondaryDisplay::ECmdShowRemoveMmcQuery;
-                break;
-            case ESysApEjectMmcQuery:
-                queryStringBuf = aValue.AllocLC();
-                keys = R_AVKON_SOFTKEYS_YES_NO;
-                secondaryDisplayCmdId = SecondaryDisplay::ECmdShowEjectMmcQuery;
-                break;
-#endif // RD_MULTIPLE_DRIVE
-            case ESysApBtSapDisconnectQuery:
-                deviceNameBuf = iSysApAppUi.GetBtSapDeviceNameL();
-                if ( deviceNameBuf )
-                    {
-                    CleanupStack::PushL(deviceNameBuf);
-                    queryStringBuf = StringLoader::LoadL( R_QTN_BT_DISCONN_FROM, *deviceNameBuf, aLoaderEnv );
-                    }
-                else
-                    {
-                    queryStringBuf = StringLoader::LoadL( R_QTN_BT_DISCONN_FROM, KEmptyString, aLoaderEnv ); 
-                    }
-                CleanupStack::PushL(queryStringBuf);
-                keys = R_AVKON_SOFTKEYS_YES_NO;
-                secondaryDisplayCmdId = SecondaryDisplay::ECmdShowBtSapDisconnectQuery;
-                break;
-            case ESysApMemoryCardLockedNote:
-                iPendingQuery = ESysApMemoryCardLockedNote;
-                queryStringBuf = StringLoader::LoadLC( R_QTN_MEMC_LOCKED_NOT_SUPPORTED, aLoaderEnv );
-                keys = R_AVKON_SOFTKEYS_OK_EMPTY;
-                anim = R_QGN_NOTE_INFO_ANIM;
-                secondaryDisplayCmdId = SecondaryDisplay::ECmdShowMemoryCardLockedQuery;
-                break;
-/*            case ESysApUseFmTxInOfflineQuery:
-                 queryStringBuf 
-                     = StringLoader::LoadLC( R_QTN_FMTX_SYSAP_NOTE_ACTIVATE_IN_OFFLINE,
-                                             aLoaderEnv );
-                 keys = R_AVKON_SOFTKEYS_YES_NO;
-                 secondaryDisplayCmdId = SecondaryDisplay::ECmdShowFmTxKeepOnInOfflineQuery;
-                 break;
-*/            case ESysApBattChargingPowerSavingQuery:
-                queryStringBuf = StringLoader::LoadLC( R_QTN_BATTERY_CHARGING_POWER_SAVING_QUERY, aLoaderEnv );
-                keys = R_AVKON_SOFTKEYS_YES_NO;
-                secondaryDisplayCmdId = SecondaryDisplay::ECmdShowChargingDeactivatePowerSavingQuery;
-                tone = static_cast<CAknQueryDialog::TTone>( EAvkonSIDChargingBatteryTone );                
-                break;
-            
-            case ESysApBattLowPowerSavingQuery:
-                queryStringBuf = StringLoader::LoadLC( R_QTN_BATTERY_CONF_QUERY, aLoaderEnv );
-                keys = R_AVKON_SOFTKEYS_YES_NO;
-                secondaryDisplayCmdId = SecondaryDisplay::ECmdShowBattLowActivatePowerSavingQuery;
-                break;
-            
-            default:
-                break;
-            }
-
-        if ( iSysApAppUi.CoverDisplaySupported() && secondaryDisplayCmdId != SecondaryDisplay::ECmdNoNote )
-            {
-            TRACES( RDebug::Print( _L("CSysApConfirmationQuery::ShowQueryL - Notifying secondary display") ) );
-            CAknSDData* sd = NULL;
-            if ( secondaryDisplayCmdId == SecondaryDisplay::ECmdShowBtSapDisconnectQuery )
-                {
-                SecondaryDisplay::TDeviceName sdDeviceName;
-                sdDeviceName.Append(deviceNameBuf->Left(SecondaryDisplay::KMaxDeviceNameLen));
-                SecondaryDisplay::TBtSapDisconnectQueryPckg pckg(sdDeviceName);
-                sd = CAknSDData::NewL(SecondaryDisplay::KCatSysAp, SecondaryDisplay::ECmdShowBtSapDisconnectQuery, pckg);
-                }
-            else
-                {
-                sd = CAknSDData::NewL(SecondaryDisplay::KCatSysAp, secondaryDisplayCmdId, KNullDesC8);
-                }
-            iQuery->SetSecondaryDisplayData(sd); // ownership to notifier client
-            }
-
-        if ( keys && queryStringBuf )
-            {
-            if ( anim )
-                {
-                iQuery->ShowConfirmationQueryL( iStatus, 
-                                                queryStringBuf->Des(), 
-                                                keys,
-                                                anim,
-                                                KNullDesC,
-                                                0,
-                                                0,
-                                                tone );
-                }
-            else
-                {
-                iQuery->ShowConfirmationQueryL( iStatus, 
-                                                queryStringBuf->Des(), 
-                                                keys,
-                                                0,
-                                                KNullDesC,
-                                                0,
-                                                0,
-                                                tone );
-                }
-            }
-
-        SetActive();
-        }    
-     else
-        {
-        // If another query is wanted when ESysApMemoryCardLockedNote is active, override it (Continues in RunL which handles cancel).
-        if ( iQueryId == ESysApMemoryCardLockedNote && aQueryId != ESysApMemoryCardLockedNote )
-            {
-            iPendingQuery = aQueryId;
-            iQuery->CancelConfirmationQuery();
-            }
-        }
-
-    if ( queryStringBuf )
-        {
-        CleanupStack::PopAndDestroy( queryStringBuf ); // queryStringbuf
-        }
-
-    if ( deviceNameBuf )
-        {
-        CleanupStack::PopAndDestroy( deviceNameBuf ); // deviceNameBuf
-        }
-
-    }       
-
-// ----------------------------------------------------------------------------
-// CSysApConfirmationQuery::RunL() 
-// ----------------------------------------------------------------------------
-
-void CSysApConfirmationQuery::RunL() 
-    {
-    TRACES( RDebug::Print( _L( "CSysApConfirmationQuery::RunL: iQueryId = %d, iStatus = %d" ), iQueryId, iStatus.Int() ) );
-    switch ( iQueryId ) 
-        {
-        case ESysApRestartPhoneQuery: 
-            {    
-            TRACES( RDebug::Print( _L( "CSysApConfirmationQuery::RunL: calling CSysApAppUi::DoShutdownL( ETrue, EDataRestoreReset )" ) ) );
-            iSysApAppUi.DoShutdownL( ETrue, RStarterSession::EDataRestoreReset );
-            }
-            break;
-        case ESysApLeaveOfflineModeQuery:                  
-            if ( iStatus.Int() == EAknSoftkeyYes )
-                {
-                TRACES( RDebug::Print( _L( "CSysApConfirmationQuery::RunL: calling CSysApAppUi::ActivateOnlineProfileL()" ) ) );
-                iSysApAppUi.ActivateOnlineProfileL();
-                }
-            break;
-        case ESysApRemoveMmcNote:
-            TRACES( RDebug::Print( _L( "CSysApConfirmationQuery::RunL: calling CSysApAppUi::MMCDismountedDialogConfirmed()" ) ) );
-            iSysApAppUi.MMCDismountedDialogConfirmed();
-            break;
-        case ESysApEjectMmcQuery:
-            if ( iStatus.Int() == EAknSoftkeyYes || iStatus.Int() == EEikBidOk )
-                {
-                TRACES( RDebug::Print( _L( "CSysApConfirmationQuery::RunL: calling CSysApAppUi::EjectMMCL()" ) ) );
-                iSysApAppUi.EjectMMCL();
-                }
-            else
-                {
-                iSysApAppUi.EjectMMCCanceled();
-                }
-            break;
-        case ESysApBtSapDisconnectQuery:
-            if ( iStatus.Int() == EAknSoftkeyYes )
-                {
-                TRACES( RDebug::Print( _L( "CSysApConfirmationQuery::RunL: calling CSysApAppUi::DisconnectBtSap()" ) ) );
-                iSysApAppUi.DisconnectBtSap();
-                }
-            break;
-        case ESysApMemoryCardLockedNote:
-            // In case of MMC locked note we are only interested about error, as it means there is overriding query
-            if ( iStatus.Int() < 0 && iPendingQuery != ESysApMemoryCardLockedNote )
-                {
-                TRACES( RDebug::Print( _L( "CSysApConfirmationQuery::RunL: Canceled ESysApMemoryCardLockedNote because more important query" ) ) );
-                ShowQueryL( iPendingQuery, CCoeEnv::Static() );
-                }
-            break;
-/*         case ESysApUseFmTxInOfflineQuery:
-             if ( iStatus.Int() == EAknSoftkeyNo )
-                 {
-                 TRACES( RDebug::Print( _L( "CSysApConfirmationQuery::RunL: calling CSysApAppUi::ChangeFmTxStateL( EFalse )" ) ) );
-                 iSysApAppUi.ChangeFmTxStateL( EFalse ); // disable FM TX
-                 }
-             break;
-*/         case ESysApBattChargingPowerSavingQuery:
-            iSysApAppUi.HandleDeactivatePsmQueryResponse( iStatus.Int() == EAknSoftkeyYes );
-            break;
-            
-         case ESysApBattLowPowerSavingQuery:
-            iSysApAppUi.HandleActivatePsmQueryResponse( iStatus.Int() == EAknSoftkeyYes );
-            break;           
-         
-         default:
-            TRACES( RDebug::Print( _L( "CSysApConfirmationQuery::RunL: default" ) ) );
-            break;
-        }
-    }
-
-// ----------------------------------------------------------------------------
-// CSysApConfirmationQuery::RunError( TInt aError )
-// ----------------------------------------------------------------------------
-
-#ifdef _DEBUG
-TInt CSysApConfirmationQuery::RunError( TInt aError )
-#else
-TInt CSysApConfirmationQuery::RunError( TInt /* aError */ )
-#endif
-    {
-    TRACES( RDebug::Print( _L( "CSysApConfirmationQuery::RunError: error code: %d " ), aError ) );
-    return KErrNone;            
-    }
-    
-// ----------------------------------------------------------------------------
-// CSysApConfirmationQuery::CurrentQuery()
-// ----------------------------------------------------------------------------
-
-TInt CSysApConfirmationQuery::CurrentQuery()
-    {
-    TInt retval(ESysApNoQuery);
-    
-    if( IsActive() )
-        {
-        retval = iQueryId;
-        }
-        
-    return retval;
-    }
-
-// End of File
-
-
-
--- a/coreapplicationuis/SysAp/Src/SysApLightsController.cpp	Wed Sep 29 15:24:56 2010 +0300
+++ b/coreapplicationuis/SysAp/Src/SysApLightsController.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2005-2008 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2005-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"
@@ -29,6 +29,8 @@
 #endif // RD_LIGHT_CONTROL_CHANGE
 
 #include "SysApFeatureManager.h"
+#include <startupdomainpskeys.h>
+#include <hwrmpowerstatesdkpskeys.h>
 
 // CONSTANTS
 
@@ -971,14 +973,26 @@
 
     TInt err(KErrNone);
     
-#ifdef RD_LIGHT_CONTROL_CHANGE
-    if ( !iLightPluginHandler->HandleCommand( SysApLightExtension::ELightCommandOff ) )
+    TInt state( 0 );
+    TInt error = RProperty::Get( KPSUidStartup, KPSGlobalSystemState, state );
+    
+    if ( error == KErrNone && state != ESwStateCharging ) 
+        {
+        #ifdef RD_LIGHT_CONTROL_CHANGE
+            if ( !iLightPluginHandler->HandleCommand( SysApLightExtension::ELightCommandOff ) )
+                {
+                TRAP(err, iLight->LightOffL(CHWRMLight::ESystemTarget));
+                }
+        #else //  RD_LIGHT_CONTROL_CHANGE
+            TRAP(err, iLight->LightOffL(CHWRMLight::ESystemTarget));
+        #endif // RD_LIGHT_CONTROL_CHANGE       
+        }
+    else
         {
         TRAP(err, iLight->LightOffL(CHWRMLight::ESystemTarget));
+        TRAP_IGNORE(iSysApAppUi.StopChargingAnimationL());
         }
-#else //  RD_LIGHT_CONTROL_CHANGE
-    TRAP(err, iLight->LightOffL(CHWRMLight::ESystemTarget));
-#endif // RD_LIGHT_CONTROL_CHANGE            
+         
     // Ignore unreserved in use warnings.
     if ( err != KErrNone && err != KErrInUse )
         {
@@ -1078,6 +1092,27 @@
                 iLightsCurrentlyOn = ETrue;
                 iLastLightsOnTime.HomeTime(); 
                 }
+            
+            TInt state( 0 );
+            TInt error = RProperty::Get( KPSUidStartup, KPSGlobalSystemState, state );
+            TRACES( RDebug::Print( _L( "CSysApLightsController::SetLightsOnL - KPSGlobalSystemState: %d  Error: %d"), state,error) );
+            if ( error == KErrNone && state == ESwStateCharging ) 
+                {
+                TInt value = iSysApAppUi.StateOfProperty( KPSUidHWRMPowerState, KHWRMChargingStatus );
+                TRACES( RDebug::Print( _L( "CSysApLightsController::SetLightsOnL - KHWRMChargingStatus: %d"), value) );
+                
+                if (value == EChargingStatusChargingComplete )
+                    {
+                    TRAP_IGNORE(iSysApAppUi.StartChargingFullAnimationL());
+                    }
+                else if((value==EChargingStatusCharging)||
+                        (value==EChargingStatusAlmostComplete)||
+                        (value==EChargingStatusChargingContinued))
+                    {
+                    TRAP_IGNORE(iSysApAppUi.StartChargingAnimationL());
+                    }
+                }   
+            
             }
         else
             {
--- a/coreapplicationuis/SysAp/Src/SysApMsgSimMemLowQuery.cpp	Wed Sep 29 15:24:56 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,118 +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:  CSysApMsgSimMemLowQuery implementation.
-*
-*/
-
-
-// INCLUDES
-#include <AknGlobalConfirmationQuery.h>
-#include "SysApMsgSimMemLowQuery.h"
-#include "SysAp.hrh"
-#include <SecondaryDisplay/SecondaryDisplaySysApAPI.h>
-#include <aknSDData.h>
-
-// ============================ MEMBER FUNCTIONS ==============================
-
-// ----------------------------------------------------------------------------
-// CSysApMsgSimMemLowQuery::CSysApMsgSimMemLowQuery()
-// ----------------------------------------------------------------------------
-
-CSysApMsgSimMemLowQuery::CSysApMsgSimMemLowQuery(TBool aCoverDisplaySupported) 
-    : CActive( EPriorityStandard ), iCoverDisplaySupported(aCoverDisplaySupported)
-    {
-    CActiveScheduler::Add(this);
-    }
-
-// ----------------------------------------------------------------------------
-// CSysApMsgSimMemLowQuery::~CSysApMsgSimMemLowQuery() 
-// ----------------------------------------------------------------------------
-
-CSysApMsgSimMemLowQuery::~CSysApMsgSimMemLowQuery() 
-    {
-    Cancel();
-    delete iSimMemoryLowQuery;
-    }
-
-
-// ----------------------------------------------------------------------------
-// CSysApMsgSimMemLowQuery::DoCancel() 
-// ----------------------------------------------------------------------------
-
-void CSysApMsgSimMemLowQuery::DoCancel() 
-    {
-    }
-
-// ----------------------------------------------------------------------------
-// CSysApMsgSimMemLowQuery::StartL()
-// ----------------------------------------------------------------------------
-
-void CSysApMsgSimMemLowQuery::StartL( const TDesC& aPrompt )
-    {
-    if( !IsActive() )
-        {
-        iSimMemoryLowQuery = CAknGlobalConfirmationQuery::NewL();
-
-        // Set secondary display data if necessary
-        if ( iCoverDisplaySupported )
-            {
-            CAknSDData* sd = CAknSDData::NewL(SecondaryDisplay::KCatSysAp, SecondaryDisplay::ECmdShowSimMemoryLowQuery, KNullDesC8);
-            iSimMemoryLowQuery->SetSecondaryDisplayData(sd); // ownership to notifier client
-            }
-
-        iSimMemoryLowQuery->ShowConfirmationQueryL( 
-                                        iStatus, 
-                                        aPrompt, 
-                                        R_AVKON_SOFTKEYS_OK_EMPTY, 
-                                        R_QGN_NOTE_ERROR_ANIM,
-                                        KNullDesC,
-                                        0,
-                                        0,
-                                        CAknQueryDialog::EErrorTone,
-                                        EFalse
-                                        );
-        SetActive();
-        }
-    }
-
-// ----------------------------------------------------------------------------
-// CSysApMsgSimMemLowQuery::RunL() 
-// ----------------------------------------------------------------------------
-
-void CSysApMsgSimMemLowQuery::RunL() 
-    {
-    TRACES( RDebug::Print( _L( "CSysApMsgSimMemLowQuery::RunL: started, %d selected" ), iStatus.Int() ) );
-    delete iSimMemoryLowQuery;
-    iSimMemoryLowQuery = NULL;
-    TRACES( RDebug::Print( _L( "CSysApMsgSimMemLowQuery::RunL: completed" ) ) );
-    }
-
-// ----------------------------------------------------------------------------
-// CSysApMsgSimMemLowQuery::RunError( TInt aError )
-// ----------------------------------------------------------------------------
-
-#ifdef _DEBUG
-TInt CSysApMsgSimMemLowQuery::RunError( TInt aError )
-#else
-TInt CSysApMsgSimMemLowQuery::RunError( TInt /* aError */ )
-#endif
-    {
-    TRACES( RDebug::Print( _L( "CSysApMsgSimMemLowQuery::RunError: %d started" ), aError ) );
-    delete iSimMemoryLowQuery;
-    iSimMemoryLowQuery = NULL;
-    TRACES( RDebug::Print( _L( "CSysApMsgSimMemLowQuery::RunError: completed" ) ) );
-    return KErrNone;            
-    }
-
-// End of File
--- a/coreapplicationuis/SysAp/Src/SysApPowerKeyMenuObserver.cpp	Wed Sep 29 15:24:56 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,98 +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:  CSysApPowerKeyMenuObserver implementation.
-*
-*/
-
-
-// INCLUDES
-#include "SysApPowerKeyMenuObserver.h"
-#include "SysApAppUi.h"
-#include <avkondomainpskeys.h> // KAknPowerMenuStatus
-
-// ============================ MEMBER FUNCTIONS ==============================
-
-// ----------------------------------------------------------------------------
-// CSysApPowerKeyMenuObserver::CSysApPowerKeyMenuObserver( CSysApAppUi& aSysApAppUi )
-// ----------------------------------------------------------------------------
-
-CSysApPowerKeyMenuObserver::CSysApPowerKeyMenuObserver( CSysApAppUi& aSysApAppUi ) 
-    : CActive( EPriorityStandard ), 
-    iSysApAppUi( aSysApAppUi )
-    {
-    CActiveScheduler::Add(this);
-    }
-
-// ----------------------------------------------------------------------------
-// CSysApPowerKeyMenuObserver::~CSysApPowerKeyMenuObserver() 
-// ----------------------------------------------------------------------------
-
-CSysApPowerKeyMenuObserver::~CSysApPowerKeyMenuObserver() 
-    {
-    Cancel() ;
-    }
-
-
-// ----------------------------------------------------------------------------
-// CSysApPowerKeyMenuObserver::DoCancel() 
-// ----------------------------------------------------------------------------
-
-void CSysApPowerKeyMenuObserver::DoCancel() 
-    {
-    RProperty::Set( KPSUidAvkonDomain, KAknPowerMenuStatus, EPowerMenuNotOpen );
-    }
-
-// ----------------------------------------------------------------------------
-// CSysApPowerKeyMenuObserver::Start()
-// ----------------------------------------------------------------------------
-
-void CSysApPowerKeyMenuObserver::Start()
-    {
-    if( !IsActive() )
-        {
-        RProperty::Set( KPSUidAvkonDomain, KAknPowerMenuStatus, EPowerMenuOpen ); 
-        SetActive();
-        }
-    }
-
-// ----------------------------------------------------------------------------
-// CSysApPowerKeyMenuObserver::RunL() 
-// ----------------------------------------------------------------------------
-
-void CSysApPowerKeyMenuObserver::RunL() 
-    {
-    TRACES( RDebug::Print( _L( "CSysApPowerKeyMenuObserver::RunL: started, %d selected" ), iStatus.Int() ) );
-    RProperty::Set( KPSUidAvkonDomain, KAknPowerMenuStatus, EPowerMenuNotOpen );
-    iSysApAppUi.PowerKeyPopUpMenuSelectionDoneL( iStatus.Int() );
-    TRACES( RDebug::Print( _L( "CSysApPowerKeyMenuObserver::RunL: completed" ) ) );
-    }
-
-// ----------------------------------------------------------------------------
-// CSysApPowerKeyMenuObserver::RunError( TInt aError )
-// ----------------------------------------------------------------------------
-
-TInt CSysApPowerKeyMenuObserver::RunError( TInt aError )
-    {
-    TRACES( RDebug::Print( _L( "CSysApPowerKeyMenuObserver::RunError: %d started" ), aError ) );
-    if( aError == KErrNoMemory || aError == KErrDiskFull )
-        {
-        return aError;            
-        }
-    else 
-        {
-        return KErrNone;
-        }
-    }
-
-// End of File
--- a/coreapplicationuis/SysAp/Src/SysApProfileObserver.cpp	Wed Sep 29 15:24:56 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,86 +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:  CSysApProfileObserver implementation.
-*
-*/
-
-
-// INCLUDE FILES
-#include "SysApProfileObserver.h"
-#include "SysApAppUi.h"
-
-// ========================== MEMBER FUNCTIONS ================================
-
-// ----------------------------------------------------------------------------
-// CSysApProfileObserver* CSysApProfileObserver::NewL()
-// ----------------------------------------------------------------------------
-
-CSysApProfileObserver* CSysApProfileObserver::NewL( CSysApAppUi& aSysApAppUi )
-    {       
-    TRACES( RDebug::Print( _L("CSysApProfileObserver::NewL" ) ) );
-    CSysApProfileObserver* self = new ( ELeave ) CSysApProfileObserver( aSysApAppUi );
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop(); //self
-    return self;
-    }
-
-// ----------------------------------------------------------------------------
-// CSysApProfileObserver::CSysApProfileObserver( CSysApAppUi& aSysApAppUi )
-// ----------------------------------------------------------------------------
-
-CSysApProfileObserver::CSysApProfileObserver( CSysApAppUi& aSysApAppUi  )
-    : iSysApAppUi( aSysApAppUi )
-    {
-    TRACES( RDebug::Print( _L("CSysApProfileObserver::CSysApProfileObserver" ) ) );
-    }
-
-// ----------------------------------------------------------------------------
-// CSysApProfileObserver::~CSysApProfileObserver()
-// ----------------------------------------------------------------------------
-
-CSysApProfileObserver::~CSysApProfileObserver()
-    {
-    TRACES( RDebug::Print( _L("~CSysApProfileObserver") ) );
-    delete iHandler;
-    }
-
-// ----------------------------------------------------------------------------
-// CSysApProfileObserver::ConstructL()
-// ----------------------------------------------------------------------------
-
-void CSysApProfileObserver::ConstructL()
-    {
-    TRACES( RDebug::Print( _L("CSysApProfileObserver::ConstructL()") ) );
-    iHandler = CProfileChangeNotifyHandler::NewL( this );
-    }
-
-// ----------------------------------------------------------------------------
-// CSysApProfileObserver::HandleActiveProfileEventL()
-// ----------------------------------------------------------------------------
-void CSysApProfileObserver::HandleActiveProfileEventL( TProfileEvent aProfileEvent, TInt aProfileId )
-    {
-    TRACES( RDebug::Print( _L("CSysApProfileObserver::HandleActiveProfileEventL(): aProfileId=%d"), aProfileId ) );
-    if ( aProfileEvent == EProfileNewActiveProfile )
-        {
-        iSysApAppUi.HandleProfileChangedL( aProfileId );
-        }
-    else if ( aProfileEvent == EProfileActiveProfileModified )
-        {
-        iSysApAppUi.CheckSilentModeL();
-        }
-    }
-
-// End of File
-
--- a/coreapplicationuis/SysAp/Src/SysApPubSubObserver.cpp	Wed Sep 29 15:24:56 2010 +0300
+++ b/coreapplicationuis/SysAp/Src/SysApPubSubObserver.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2005-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* 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"
@@ -636,8 +636,7 @@
             else if ( iRestoreOngoing )
                 {
                 TRACES( RDebug::Print( _L("CSysApPubSubObserver::HandleSystemCategoryL: restore finished, make the device reset" ) ) ); 
-                User::After( 1000000 );
-                iSysApAppUi.ShowQueryL( ESysApRestartPhoneQuery );   
+                iSysApAppUi.ShowUiNoteL( ESysApRestartPhone );   
                 }
             }
             break;
--- a/coreapplicationuis/SysAp/Src/SysApShutdownImage.cpp	Wed Sep 29 15:24:56 2010 +0300
+++ b/coreapplicationuis/SysAp/Src/SysApShutdownImage.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2005-2008 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2005-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"
@@ -166,7 +166,7 @@
 // ----------------------------------------------------------------------------
 // CSysApShutdownImage::ShowShutdownImage()
 // ----------------------------------------------------------------------------
-CFbsBitmap* CSysApShutdownImage::ReadSVGL (TFileName aFileName)
+CFbsBitmap* CSysApShutdownImage::ReadSVGL (const TFileName& aFileName)
     {
     TRACES( RDebug::Print(_L("CSysApShutdownImage::ReadSVGL:start" ) ) );    
     TFontSpec fontspec;
--- a/coreapplicationuis/SysAp/Src/SysApSimChanged.cpp	Wed Sep 29 15:24:56 2010 +0300
+++ b/coreapplicationuis/SysAp/Src/SysApSimChanged.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2005-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"
@@ -117,13 +117,13 @@
     dateTime.Set( 2100, EJanuary, 1, 0, 0, 0, 0 );
     TTime date(dateTime);
     
-/*    TRACES( RDebug::Print( _L("CSysApSimChanged::ClearLogsL(): trying CLogClient::NewL") ) );
+    TRACES( RDebug::Print( _L("CSysApSimChanged::ClearLogsL(): trying CLogClient::NewL") ) );
     CLogClient* logClient = CLogClient::NewL( iFs );    
     logClient->ClearLog( date, active->iStatus );
-*/    
+   
     CActiveScheduler::Start();
 
-//    delete logClient;
+   delete logClient;
     CleanupStack::PopAndDestroy( active );
     }
     
@@ -136,7 +136,7 @@
     TRACES( RDebug::Print( _L("CSysApSimChanged::ClearSsSettingsL()") ) );
     
     // Reset SSSettings values
-/*    RSSSettings ssSettings;
+    RSSSettings ssSettings;
     User::LeaveIfError( ssSettings.Open( iSysApAppUi.GetTelServer() ) );
     
     TRACES( RDebug::Print( _L("CSysApSimChanged::ClearSsSettingsL(): trying RSSSettings::HandleSIMChanged") ) );
@@ -144,7 +144,7 @@
     ssSettings.Close();    
     
     User::LeaveIfError( err );
-*/
+
     }
 
 // -----------------------------------------------------------------------------
@@ -171,7 +171,7 @@
     if ( simNotOwned )
         {
         ClearRepositoriesL();
-//        ClearLogsL();
+        ClearLogsL();
         }
     }
 // =============== CShareActive MEMBER FUNCTIONS ===============================
--- a/coreapplicationuis/SysAp/Src/SysApSsSettingsObserver.cpp	Wed Sep 29 15:24:56 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,111 +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:  CSysApSSSettingsObserver implementation.
-*
-*/
-
-
-// INCLUDE FILES
-#include "SysApSsSettingsObserver.h"
-#include "SysApAppUi.h"
-#include <avkon.hrh>
-#include <rsssettings.h>
-
-//CONSTANTS
-
-// ========================== MEMBER FUNCTIONS ================================
-
-// ----------------------------------------------------------------------------
-// CSysApSsSettingsObserver* CSysApSsSettingsObserver::NewL( CSysApAppUi& aSysApAppUi )
-// ----------------------------------------------------------------------------
-
-CSysApSsSettingsObserver* CSysApSsSettingsObserver::NewL( CSysApAppUi& aSysApAppUi )
-    {       
-    TRACES( RDebug::Print( _L("CSysApSsSettingsObserver::CSysApSsSettingsObserver::NewL" ) ) );
-    CSysApSsSettingsObserver* self = new ( ELeave ) CSysApSsSettingsObserver( aSysApAppUi );
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop(); //self
-    return self;
-    }
-
-// ----------------------------------------------------------------------------
-// CSysApSsSettingsObserver::CSysApSsSettingsObserver( CSysApAppUi& aSysApAppUi )
-// ----------------------------------------------------------------------------
-
-CSysApSsSettingsObserver::CSysApSsSettingsObserver( CSysApAppUi& aSysApAppUi ) :
-    iSysApAppUi( aSysApAppUi )
-    {
-    }
-
-// ----------------------------------------------------------------------------
-// CSysApSsSettingsObserver::~CSysApSsSettingsObserver()
-// ----------------------------------------------------------------------------
-
-CSysApSsSettingsObserver::~CSysApSsSettingsObserver()
-    {
-    TRACES( RDebug::Print( _L("CSysApSsSettingsObserver::~CSysApSsSettingsObserver") ) );
-    iSysApSsSettings.CancelAll( *this );
-    iSysApSsSettings.Close();
-    }
-
-// ----------------------------------------------------------------------------
-// CSysApSsSettingsObserver::PhoneSettingChanged( TSSSettingsSetting aSetting, TInt aNewValue )
-// ----------------------------------------------------------------------------
-
-void CSysApSsSettingsObserver::PhoneSettingChanged( TSSSettingsSetting aSetting, TInt aNewValue )
-    {
-    TRACES( RDebug::Print( _L("CSysApSsSettingsObserver::PhoneSettingChanged( aSetting:%d, aNewValue:%d )"), aSetting, aNewValue ) );
-    if( aSetting == ESSSettingsAls )
-        {
-        TRAPD( err, SetSecondLineIndicatorL( aNewValue ) );
-        if ( err ) err = 0; // hide compiler warning about not using variable
-        }
-    }
-
-// ----------------------------------------------------------------------------
-// CSysApSsSettingsObserver::ConstructL()
-// ----------------------------------------------------------------------------
-
-void CSysApSsSettingsObserver::ConstructL(  )
-    {
-    User::LeaveIfError(iSysApSsSettings.Open(iSysApAppUi.GetTelServer()));
-    iSysApSsSettings.Register( ESSSettingsAls, *this );
-    TSSSettingsSetting ssSetting( ESSSettingsAls );
-    TInt ssSettingAlsValue( 0 );
-    TInt err( iSysApSsSettings.Get( ssSetting, ssSettingAlsValue ) );
-    if( err == KErrNone )
-        {
-        SetSecondLineIndicatorL( ssSettingAlsValue );
-        }
-    }
-
-// ----------------------------------------------------------------------------
-// CSysApSsSettingsObserver::SetSecondLineIndicatorL( TInt aSsSettingsAlsLineValue )
-// ----------------------------------------------------------------------------
-
-void CSysApSsSettingsObserver::SetSecondLineIndicatorL( const TInt aSsSettingsAlsLineValue ) const
-    {
-    TRACES( RDebug::Print( _L("CSysApSsSettingsObserver::SetSecondLineIndicatorL( aSsSettingsAlsLineValue:%d, "), aSsSettingsAlsLineValue ) );
-    if( aSsSettingsAlsLineValue == ESSSettingsAlsAlternate )
-        {
-        iSysApAppUi.SetIndicatorStateL( EAknIndicatorSelectedLine, EAknIndicatorStateOn );        
-        }
-    else 
-        {
-        iSysApAppUi.SetIndicatorStateL( EAknIndicatorSelectedLine, EAknIndicatorStateOff );        
-        } 
-    }
-
-// End of File
--- a/coreapplicationuis/SysAp/Src/SysApWaitNote.cpp	Wed Sep 29 15:24:56 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,122 +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:  CSysApWaitNote implementation.
-*
-*/
-
-
-// INCLUDES
-
-#include <avkon.hrh>
-#include <avkon.rsg>
-#include "SysAp.hrh"
-#include "SysApWaitNote.h"
-#include <SecondaryDisplay/SecondaryDisplaySysApAPI.h>
-#include <aknSDData.h>
-
-
-// ============================ MEMBER FUNCTIONS ==============================
-
-// ----------------------------------------------------------------------------
-// CSysApWaitNote::NewL() 
-// ----------------------------------------------------------------------------
-CSysApWaitNote* CSysApWaitNote::NewL(TBool aCoverDisplaySupported)
-    {
-    CSysApWaitNote* self = new(ELeave) CSysApWaitNote(aCoverDisplaySupported);
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    CleanupStack::Pop();
-    return self;
-    }
-
-// ----------------------------------------------------------------------------
-// CSysApWaitNote::ConstructL() 
-// ----------------------------------------------------------------------------
-void CSysApWaitNote::ConstructL()
-    {
-    iWaitNote = CAknGlobalNote::NewL();           
-    iWaitNote->SetSoftkeys( R_AVKON_SOFTKEYS_EMPTY );
-    }
-
-// ----------------------------------------------------------------------------
-// CSysApWaitNote::CSysApWaitNote()
-// ----------------------------------------------------------------------------
-
-CSysApWaitNote::CSysApWaitNote(TBool aCoverDisplaySupported) : iActive( EFalse ),
-    iCoverDisplaySupported(aCoverDisplaySupported)
-    {
-    }
-
-// ----------------------------------------------------------------------------
-// CSysApWaitNote::~CSysApWaitNote() 
-// ----------------------------------------------------------------------------
-
-CSysApWaitNote::~CSysApWaitNote() 
-    {
-    Cancel();
-    delete iWaitNote;
-    iWaitNote = NULL;
-    }
-
-
-// ----------------------------------------------------------------------------
-// CSysApWaitNote::Cancel() 
-// ----------------------------------------------------------------------------
-
-void CSysApWaitNote::Cancel() 
-    {
-    TRACES( RDebug::Print( _L("CSysApWaitNote::Cancel()" ) ) );
-    TRAPD ( err, iWaitNote->CancelNoteL( iNoteId ) );
-    iActive = EFalse;
-    if ( err )
-        {
-        TRACES( RDebug::Print( _L("CSysApWaitNote::Cancel(), error: %d" ), err ) );
-        }
-    }
-
-// ----------------------------------------------------------------------------
-// CSysApWaitNote::ShowNoteL()
-// ----------------------------------------------------------------------------
-
-void CSysApWaitNote::ShowNoteL( const TSysApWaitNoteIds aNote, HBufC* aNoteStringBuf )
-    {
-    TRACES( RDebug::Print( _L("CSysApWaitNote::ShowNoteL") ) );
-
-    if ( iActive )
-        {
-        Cancel();
-        }
-    iActive = ETrue;
-    TInt tone ( EAvkonSIDNoSound );
-    iWaitNote->SetTone( tone );
-    TRACES( RDebug::Print( _L("CSysApWaitNote::StartL: ShowNoteL()" ) ) );
-    
-    if ( aNote == EClosingApplicationsNote )
-        {
-        // Set secondary display data if necessary
-        if ( iCoverDisplaySupported )
-            {
-            CAknSDData* sd = CAknSDData::NewL(SecondaryDisplay::KCatSysAp, SecondaryDisplay::ECmdShowClosingApplicationsNote, KNullDesC8);
-            iWaitNote->SetSecondaryDisplayData(sd); // ownership to notifier client
-            }
-        
-        }
-    
-    iNoteId = iWaitNote->ShowNoteL( EAknGlobalWaitNote, aNoteStringBuf->Des() );
-    }
-
-// End of File
-
-
-
--- a/coreapplicationuis/SysAp/Src/memorycard/sysapdriveunlockhandler.cpp	Wed Sep 29 15:24:56 2010 +0300
+++ b/coreapplicationuis/SysAp/Src/memorycard/sysapdriveunlockhandler.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -211,7 +211,7 @@
         TPtrC aStringPointer = aString->Des();
         aStringPointer.Set(KChargingNote);
         TRACES( RDebug::Print( _L("CSysApWsClient::RunL(): Key EEventKeyUp 01") ) );   
-        iSysApAppUi.ShowExampleUiNoteL( aStringPointer );
+        iSysApAppUi.ShowNoteL( aStringPointer );
         CleanupStack::PopAndDestroy(); // aString         
         return;
         }
@@ -228,7 +228,7 @@
         TPtrC aStringPointer = aString->Des();
         aStringPointer.Set(KChargingNote);
         TRACES( RDebug::Print( _L("CSysApWsClient::RunL(): Key EEventKeyUp 01") ) );   
-        iSysApAppUi.ShowExampleUiNoteL( aStringPointer );
+        iSysApAppUi.ShowNoteL( aStringPointer );
         CleanupStack::PopAndDestroy(); // aString    
         iSysApDriveList.MarkDriveUnlockQueryShown( iDriveToUnlock );
         }
@@ -300,7 +300,7 @@
         HBufC* aString = HBufC16::NewLC(150);
         TPtrC aStringPointer = aString->Des();
         aStringPointer.Set(KUnlockNote);   
-        iSysApAppUi.ShowExampleUiNoteL( aStringPointer );
+        iSysApAppUi.ShowNoteL( aStringPointer );
         CleanupStack::PopAndDestroy(); // aString
         return ETrue;
         }
@@ -311,7 +311,7 @@
         HBufC* aString = HBufC16::NewLC(150);
         TPtrC aStringPointer = aString->Des();
         aStringPointer.Set(KUnlockDeniedNote);   
-        iSysApAppUi.ShowExampleUiNoteL( aStringPointer );
+        iSysApAppUi.ShowNoteL( aStringPointer );
         CleanupStack::PopAndDestroy(); // aString
         return EFalse;
         }
@@ -322,7 +322,7 @@
         HBufC* aString = HBufC16::NewLC(150);
         TPtrC aStringPointer = aString->Des();
         aStringPointer.Set(KUnlockAlreadyExistNote);
-        iSysApAppUi.ShowExampleUiNoteL( aStringPointer );
+        iSysApAppUi.ShowNoteL( aStringPointer );
         CleanupStack::PopAndDestroy(); // aString
         return ETrue;
         }
@@ -334,7 +334,7 @@
         TPtrC aStringPointer = aString->Des();
         aStringPointer.Set(KUnlockNotSupporrtedNote);
         TRACES( RDebug::Print( _L("CSysApWsClient::RunL(): Key EEventKeyUp 01") ) );   
-        iSysApAppUi.ShowExampleUiNoteL( aStringPointer );
+        iSysApAppUi.ShowNoteL( aStringPointer );
         CleanupStack::PopAndDestroy(); // aString
         return ETrue;
         }
@@ -346,7 +346,7 @@
         TPtrC aStringPointer = aString->Des();
         aStringPointer.Set(KUnlockOperationCancelNote);
         TRACES( RDebug::Print( _L("CSysApWsClient::RunL(): Key EEventKeyUp 01") ) );   
-        iSysApAppUi.ShowExampleUiNoteL( aStringPointer );
+        iSysApAppUi.ShowNoteL( aStringPointer );
         CleanupStack::PopAndDestroy(); // aString
         return ETrue;
         }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/SysAp/Src/sysapcharginganimation.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,307 @@
+/*
+* 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:  CSysApLightsController implementation.
+*
+*/
+
+
+#include "sysapcharginganimation.h"
+#include <eikenv.h>
+#include <SVGEngineInterfaceImpl.h>
+#include <startupdomainpskeys.h>
+#include <hwrmpowerstatesdkpskeys.h>
+
+_LIT(KFrameDir, "z:\\resource\\apps\\");
+_LIT(KFrame1, "qtg_anim_battery_charging_01.svg");
+_LIT(KFrame2, "qtg_anim_battery_charging_02.svg");
+_LIT(KFrame3, "qtg_anim_battery_charging_03.svg");
+_LIT(KFrame4, "qtg_anim_battery_charging_04.svg");
+_LIT(KFrame5, "qtg_anim_battery_charging_05.svg");
+_LIT(KFrame6, "qtg_anim_battery_charging_06.svg");
+_LIT(KFrame7, "qtg_anim_battery_charging_07.svg");
+_LIT(KFrame8, "qtg_anim_battery_charging_08.svg");
+_LIT(KFrame9, "qtg_anim_battery_charging_09.svg");
+_LIT(KFrame10,"qtg_anim_battery_charging_10.svg");
+_LIT(KFullFrame1, "qtg_anim_battery_full_01.svg");
+_LIT(KFullFrame2, "qtg_anim_battery_full_02.svg");
+_LIT(KFullFrame3, "qtg_anim_battery_full_03.svg");
+_LIT(KFullFrame4, "qtg_anim_battery_full_04.svg");
+_LIT(KFullFrame5, "qtg_anim_battery_full_05.svg");
+_LIT(KFullFrame6, "qtg_anim_battery_full_06.svg");
+_LIT(KFullFrame7, "qtg_anim_battery_full_07.svg");
+_LIT(KFullFrame8, "qtg_anim_battery_full_08.svg");
+_LIT(KFullFrame9, "qtg_anim_battery_full_09.svg");
+_LIT(KFullFrame10,"qtg_anim_battery_full_10.svg");
+#define SIZE_X 228//360 //360
+#define SIZE_Y 228 //640
+static TInt KChargingFrameDuration=800000;
+static TInt KFullFrameDuration=200000;
+
+CSysApChargingAnimation::CSysApChargingAnimation()
+    {
+    // No implementation required
+    }
+
+CSysApChargingAnimation::~CSysApChargingAnimation()
+    {
+    iAnimation.ResetAndDestroy();
+    iAnimTimer->Cancel();
+    delete iAnimTimer;
+    iAnimTimer=NULL;    
+    }
+
+CSysApChargingAnimation* CSysApChargingAnimation::NewLC()
+    {
+    CSysApChargingAnimation* self = new (ELeave) CSysApChargingAnimation();
+    CleanupStack::PushL(self);
+    self->ConstructL();
+    return self;
+    }
+
+CSysApChargingAnimation* CSysApChargingAnimation::NewL()
+    {
+    CSysApChargingAnimation* self = CSysApChargingAnimation::NewLC();
+    CleanupStack::Pop(); // self;
+    return self;
+    }
+
+void CSysApChargingAnimation::DeleteFrames()
+    {
+    iAnimation.ResetAndDestroy();
+    }
+
+void CSysApChargingAnimation::ResetTimer()
+    {
+    if(iAnimTimer)
+        {
+        iAnimTimer->Cancel();
+        delete iAnimTimer;
+        iAnimTimer=NULL;
+        }
+
+    TRAPD( err, iAnimTimer = CPeriodic::NewL( EPriorityNormal ) );
+    if(err==KErrNone)
+        {
+            if(iMode==KChargingModeFull)
+                iAnimTimer->Start(KFullFrameDuration,KFullFrameDuration,TCallBack( TimerExpired, this ));
+            else if(iMode==KChargingModeChargingOn)
+                iAnimTimer->Start(KChargingFrameDuration,KChargingFrameDuration,TCallBack( TimerExpired, this ));
+        }
+    }
+
+void CSysApChargingAnimation::StopTimer()
+    {
+    if(iAnimTimer)
+        {
+        iAnimTimer->Cancel();
+        delete iAnimTimer;
+        iAnimTimer=NULL;
+        }    
+    }
+
+void CSysApChargingAnimation::SetChargingFramesL()
+    {
+    DeleteFrames();
+    TParse* fp = new(ELeave) TParse();
+    fp->Set(KFrame1, &KFrameDir, NULL);
+    iAnimation.Append(ReadSVGL (fp->FullName()));
+    fp->Set(KFrame2, &KFrameDir, NULL);
+    iAnimation.Append(ReadSVGL (fp->FullName()));
+    fp->Set(KFrame3, &KFrameDir, NULL);
+    iAnimation.Append(ReadSVGL (fp->FullName()));
+    fp->Set(KFrame4, &KFrameDir, NULL);
+    iAnimation.Append(ReadSVGL (fp->FullName()));
+    fp->Set(KFrame5, &KFrameDir, NULL);
+    iAnimation.Append(ReadSVGL (fp->FullName()));
+    fp->Set(KFrame6, &KFrameDir, NULL);
+    iAnimation.Append(ReadSVGL (fp->FullName()));
+    fp->Set(KFrame7, &KFrameDir, NULL);
+    iAnimation.Append(ReadSVGL (fp->FullName()));
+    fp->Set(KFrame8, &KFrameDir, NULL);
+    iAnimation.Append(ReadSVGL (fp->FullName()));
+    fp->Set(KFrame9, &KFrameDir, NULL);
+    iAnimation.Append(ReadSVGL (fp->FullName()));
+    fp->Set(KFrame10, &KFrameDir, NULL);
+    iAnimation.Append(ReadSVGL (fp->FullName()));    
+    }
+
+void CSysApChargingAnimation::SetFullFramesL()
+    {
+    DeleteFrames();
+    TParse* fp = new(ELeave) TParse();
+    fp->Set(KFullFrame1, &KFrameDir, NULL);
+    iAnimation.Append(ReadSVGL (fp->FullName()));
+    fp->Set(KFullFrame2, &KFrameDir, NULL);
+    iAnimation.Append(ReadSVGL (fp->FullName()));
+    fp->Set(KFullFrame3, &KFrameDir, NULL);
+    iAnimation.Append(ReadSVGL (fp->FullName()));
+    fp->Set(KFullFrame4, &KFrameDir, NULL);
+    iAnimation.Append(ReadSVGL (fp->FullName()));
+    fp->Set(KFullFrame5, &KFrameDir, NULL);
+    iAnimation.Append(ReadSVGL (fp->FullName()));
+    fp->Set(KFullFrame6, &KFrameDir, NULL);
+    iAnimation.Append(ReadSVGL (fp->FullName()));
+    fp->Set(KFullFrame7, &KFrameDir, NULL);
+    iAnimation.Append(ReadSVGL (fp->FullName()));
+    fp->Set(KFullFrame8, &KFrameDir, NULL);
+    iAnimation.Append(ReadSVGL (fp->FullName()));
+    fp->Set(KFullFrame9, &KFrameDir, NULL);
+    iAnimation.Append(ReadSVGL (fp->FullName()));
+    fp->Set(KFullFrame10, &KFrameDir, NULL);
+    iAnimation.Append(ReadSVGL (fp->FullName()));
+    }
+
+void CSysApChargingAnimation::SetModeL(TInt aMode)
+    {
+    if(iMode==aMode) return;
+
+    if(aMode==KChargingModeChargingOn)
+        {
+        SetChargingFramesL();
+        }
+    else if(aMode==KChargingModeFull)
+        {
+        SetFullFramesL();
+        }
+
+    iMode=aMode;
+    iCurrentFrame=0;     
+    if(aMode!=KChargingModeUnknown)
+        {
+        iBitmap = iAnimation[iCurrentFrame];
+        iFrameCount = iAnimation.Count();
+        DrawDeferred();
+        }
+    else
+        {
+        DeleteFrames();
+        iBitmap=NULL;
+        iFrameCount=0;
+        }
+    }
+
+void CSysApChargingAnimation::ConstructL()
+    {
+    iMode=KChargingModeUnknown;
+    
+    CreateWindowL();                                      
+    SetExtentToWholeScreen();
+    ActivateL();
+    iEikonEnv->RootWin().SetOrdinalPosition(0, ECoeWinPriorityAlwaysAtFront );
+    }
+
+void CSysApChargingAnimation::Draw(const TRect& aRect) const
+{
+    if(iBitmap && iBitmap->Handle())
+        {
+        CWindowGc& gc=SystemGc();    
+        TSize bmpSizeInPixels = iBitmap->SizeInPixels();
+        //center image to the center of the screen
+        TInt xDelta = ( aRect.Width() - bmpSizeInPixels.iWidth ) / 2;
+        TInt yDelta = ( aRect.Height() - bmpSizeInPixels.iHeight ) / 2;
+        TPoint pos = TPoint( xDelta , yDelta );
+        gc.BitBlt(pos, iBitmap);
+        }
+}
+
+CFbsBitmap* CSysApChargingAnimation::ReadSVGL (TFileName aFileName)
+    {
+    TFontSpec fontspec;
+    TDisplayMode mode = EColor16MA;    
+    TSize size(SIZE_X, SIZE_Y);
+
+    CFbsBitmap* frameBuffer = new ( ELeave ) CFbsBitmap;
+    CleanupStack::PushL( frameBuffer );
+    frameBuffer->Create( size, mode );
+    
+    CSvgEngineInterfaceImpl* svgEngine = NULL;
+    svgEngine = CSvgEngineInterfaceImpl::NewL(frameBuffer, NULL, fontspec );    
+    
+    if (svgEngine == NULL)
+        {
+            return NULL;
+        }
+    
+    CleanupStack::PushL( svgEngine );
+    TInt domHandle = 0;
+    svgEngine->PrepareDom( aFileName, domHandle ) ;
+    if (domHandle == 0)
+        {
+            return NULL;
+        }
+    TBool b = svgEngine->IsPanPossible(0,200,NULL);
+    CFbsBitmap* bitmap = new(ELeave) CFbsBitmap;    
+    CleanupStack::PushL( bitmap );
+    User::LeaveIfError( bitmap->Create( size, mode) );
+
+    svgEngine->UseDom( domHandle, bitmap, NULL ) ;
+     
+    MSvgError* err;
+    svgEngine->Start( err );
+    if (err->HasError())
+        {
+            return NULL;
+        }
+
+    svgEngine->DeleteDom( domHandle );
+    
+    CleanupStack::Pop( bitmap );
+    CleanupStack::PopAndDestroy( svgEngine );
+    CleanupStack::PopAndDestroy( frameBuffer );
+    
+    return bitmap;
+    }
+
+void CSysApChargingAnimation::SetNextFrame()
+    {
+    if(iFrameCount<=0)
+        return;
+    
+    iCurrentFrame++;
+    if(iCurrentFrame>=iFrameCount)
+        {
+            iCurrentFrame=0;
+        }
+    
+    iBitmap=iAnimation[iCurrentFrame];
+    
+    DrawDeferred();
+    }
+
+TInt CSysApChargingAnimation::TimerExpired( TAny* aObject )
+    {
+    static_cast<CSysApChargingAnimation*>(aObject)->SetNextFrame();
+    return 0;
+    }
+
+void CSysApChargingAnimation::StartChargingAnimationL()
+    {
+    if(iMode!=KChargingModeChargingOn)
+        SetModeL(KChargingModeChargingOn);
+    
+    ResetTimer();
+    }
+
+void CSysApChargingAnimation::StopAnimation()
+    {
+    StopTimer();
+    }
+
+void CSysApChargingAnimation::StartChargingFullAnimationL()
+    {
+    if(iMode!=KChargingModeFull)
+        SetModeL(KChargingModeFull);
+    
+    ResetTimer();
+    }
--- a/coreapplicationuis/SysAp/Src/sysapdefaultkeyhandler.cpp	Wed Sep 29 15:24:56 2010 +0300
+++ b/coreapplicationuis/SysAp/Src/sysapdefaultkeyhandler.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2006-2008 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2006-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"
@@ -41,6 +41,7 @@
 #include <AknSgcc.h>
 //#include "sysapappui.h"
 #include <w32std.h>
+#include <avkondomainpskeys.h>
 
 
 const TInt KModifierMask( 0 );
@@ -288,8 +289,8 @@
     TInt value(0);
     TBool retval(EFalse);
 
-    RProperty::Get( KPSUidCoreApplicationUIs, KCoreAppUIsAutolockStatus, value );
-    if ( value > EAutolockOff )
+    RProperty::Get(  KPSUidAvkonDomain, KAknKeyguardStatus, value );
+    if ( value > EKeyguardNotActive )
         {
         retval = ETrue;
         }
--- a/coreapplicationuis/SysAp/rom/SysAp.iby	Wed Sep 29 15:24:56 2010 +0300
+++ b/coreapplicationuis/SysAp/rom/SysAp.iby	Thu Oct 07 06:25:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002-2006 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2002-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"
@@ -22,6 +22,28 @@
 file=ABI_DIR\BUILD_DIR\NspsWsPlugin.dll         SHARED_LIB_DIR\NspsWsPlugin.dll
 data=DATAZ_\resource\apps\qgn_sysap_screen.svg        resource\apps\qgn_sysap_screen.svg
 
+data=DATAZ_\APP_RESOURCE_DIR\qtg_anim_battery_charging_01.svg                                  APP_RESOURCE_DIR\qtg_anim_battery_charging_01.svg
+data=DATAZ_\APP_RESOURCE_DIR\qtg_anim_battery_charging_02.svg                                  APP_RESOURCE_DIR\qtg_anim_battery_charging_02.svg
+data=DATAZ_\APP_RESOURCE_DIR\qtg_anim_battery_charging_03.svg                                  APP_RESOURCE_DIR\qtg_anim_battery_charging_03.svg
+data=DATAZ_\APP_RESOURCE_DIR\qtg_anim_battery_charging_04.svg                                  APP_RESOURCE_DIR\qtg_anim_battery_charging_04.svg
+data=DATAZ_\APP_RESOURCE_DIR\qtg_anim_battery_charging_05.svg                                  APP_RESOURCE_DIR\qtg_anim_battery_charging_05.svg
+data=DATAZ_\APP_RESOURCE_DIR\qtg_anim_battery_charging_06.svg                                  APP_RESOURCE_DIR\qtg_anim_battery_charging_06.svg
+data=DATAZ_\APP_RESOURCE_DIR\qtg_anim_battery_charging_07.svg                                  APP_RESOURCE_DIR\qtg_anim_battery_charging_07.svg
+data=DATAZ_\APP_RESOURCE_DIR\qtg_anim_battery_charging_08.svg                                  APP_RESOURCE_DIR\qtg_anim_battery_charging_08.svg
+data=DATAZ_\APP_RESOURCE_DIR\qtg_anim_battery_charging_09.svg                                  APP_RESOURCE_DIR\qtg_anim_battery_charging_09.svg
+data=DATAZ_\APP_RESOURCE_DIR\qtg_anim_battery_charging_10.svg                                  APP_RESOURCE_DIR\qtg_anim_battery_charging_10.svg
+
+data=DATAZ_\APP_RESOURCE_DIR\qtg_anim_battery_full_01.svg                                  APP_RESOURCE_DIR\qtg_anim_battery_full_01.svg
+data=DATAZ_\APP_RESOURCE_DIR\qtg_anim_battery_full_02.svg                                  APP_RESOURCE_DIR\qtg_anim_battery_full_02.svg
+data=DATAZ_\APP_RESOURCE_DIR\qtg_anim_battery_full_03.svg                                  APP_RESOURCE_DIR\qtg_anim_battery_full_03.svg
+data=DATAZ_\APP_RESOURCE_DIR\qtg_anim_battery_full_04.svg                                  APP_RESOURCE_DIR\qtg_anim_battery_full_04.svg
+data=DATAZ_\APP_RESOURCE_DIR\qtg_anim_battery_full_05.svg                                  APP_RESOURCE_DIR\qtg_anim_battery_full_05.svg
+data=DATAZ_\APP_RESOURCE_DIR\qtg_anim_battery_full_06.svg                                  APP_RESOURCE_DIR\qtg_anim_battery_full_06.svg
+data=DATAZ_\APP_RESOURCE_DIR\qtg_anim_battery_full_07.svg                                  APP_RESOURCE_DIR\qtg_anim_battery_full_07.svg
+data=DATAZ_\APP_RESOURCE_DIR\qtg_anim_battery_full_08.svg                                  APP_RESOURCE_DIR\qtg_anim_battery_full_08.svg
+data=DATAZ_\APP_RESOURCE_DIR\qtg_anim_battery_full_09.svg                                  APP_RESOURCE_DIR\qtg_anim_battery_full_09.svg
+data=DATAZ_\APP_RESOURCE_DIR\qtg_anim_battery_full_10.svg                                  APP_RESOURCE_DIR\qtg_anim_battery_full_10.svg
+
 S60_APP_EXE(SysAp)
 S60_APP_AIF_RSC(SysAp)
 
--- a/coreapplicationuis/SysAp/rom/SysApResources.iby	Wed Sep 29 15:24:56 2010 +0300
+++ b/coreapplicationuis/SysAp/rom/SysApResources.iby	Thu Oct 07 06:25:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002-2006 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2002-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"
@@ -22,4 +22,27 @@
 //Localized resource file(s) for Sysap application (SysAp.iby)
 data=DATAZ_\APP_RESOURCE_DIR\sysap.RSC                                  APP_RESOURCE_DIR\SysAp.rsc
 
+data=DATAZ_\APP_RESOURCE_DIR\qtg_anim_battery_charging_01.svg                                  APP_RESOURCE_DIR\qtg_anim_battery_charging_01.svg
+data=DATAZ_\APP_RESOURCE_DIR\qtg_anim_battery_charging_02.svg                                  APP_RESOURCE_DIR\qtg_anim_battery_charging_02.svg
+data=DATAZ_\APP_RESOURCE_DIR\qtg_anim_battery_charging_03.svg                                  APP_RESOURCE_DIR\qtg_anim_battery_charging_03.svg
+data=DATAZ_\APP_RESOURCE_DIR\qtg_anim_battery_charging_04.svg                                  APP_RESOURCE_DIR\qtg_anim_battery_charging_04.svg
+data=DATAZ_\APP_RESOURCE_DIR\qtg_anim_battery_charging_05.svg                                  APP_RESOURCE_DIR\qtg_anim_battery_charging_05.svg
+data=DATAZ_\APP_RESOURCE_DIR\qtg_anim_battery_charging_06.svg                                  APP_RESOURCE_DIR\qtg_anim_battery_charging_06.svg
+data=DATAZ_\APP_RESOURCE_DIR\qtg_anim_battery_charging_07.svg                                  APP_RESOURCE_DIR\qtg_anim_battery_charging_07.svg
+data=DATAZ_\APP_RESOURCE_DIR\qtg_anim_battery_charging_08.svg                                  APP_RESOURCE_DIR\qtg_anim_battery_charging_08.svg
+data=DATAZ_\APP_RESOURCE_DIR\qtg_anim_battery_charging_09.svg                                  APP_RESOURCE_DIR\qtg_anim_battery_charging_09.svg
+data=DATAZ_\APP_RESOURCE_DIR\qtg_anim_battery_charging_10.svg                                  APP_RESOURCE_DIR\qtg_anim_battery_charging_10.svg
+
+data=DATAZ_\APP_RESOURCE_DIR\qtg_anim_battery_full_01.svg                                  APP_RESOURCE_DIR\qtg_anim_battery_full_01.svg
+data=DATAZ_\APP_RESOURCE_DIR\qtg_anim_battery_full_02.svg                                  APP_RESOURCE_DIR\qtg_anim_battery_full_02.svg
+data=DATAZ_\APP_RESOURCE_DIR\qtg_anim_battery_full_03.svg                                  APP_RESOURCE_DIR\qtg_anim_battery_full_03.svg
+data=DATAZ_\APP_RESOURCE_DIR\qtg_anim_battery_full_04.svg                                  APP_RESOURCE_DIR\qtg_anim_battery_full_04.svg
+data=DATAZ_\APP_RESOURCE_DIR\qtg_anim_battery_full_05.svg                                  APP_RESOURCE_DIR\qtg_anim_battery_full_05.svg
+data=DATAZ_\APP_RESOURCE_DIR\qtg_anim_battery_full_06.svg                                  APP_RESOURCE_DIR\qtg_anim_battery_full_06.svg
+data=DATAZ_\APP_RESOURCE_DIR\qtg_anim_battery_full_07.svg                                  APP_RESOURCE_DIR\qtg_anim_battery_full_07.svg
+data=DATAZ_\APP_RESOURCE_DIR\qtg_anim_battery_full_08.svg                                  APP_RESOURCE_DIR\qtg_anim_battery_full_08.svg
+data=DATAZ_\APP_RESOURCE_DIR\qtg_anim_battery_full_09.svg                                  APP_RESOURCE_DIR\qtg_anim_battery_full_09.svg
+data=DATAZ_\APP_RESOURCE_DIR\qtg_anim_battery_full_10.svg                                  APP_RESOURCE_DIR\qtg_anim_battery_full_10.svg
+
+
 #endif
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/accfwuinotifier/tsrc/AccFwUiNotifierTestModule/Bmarm/AccFwUiNotifierTestModuleU.DEF	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,3 @@
+EXPORTS
+	LibEntryL__FR13CTestModuleIf @ 1 NONAME R3UNUSED ; LibEntryL(CTestModuleIf &)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/accfwuinotifier/tsrc/AccFwUiNotifierTestModule/Bwins/AccFwUiNotifierTestModuleu.def	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,3 @@
+EXPORTS
+	?LibEntryL@@YAPAVCScriptBase@@AAVCTestModuleIf@@@Z @ 1 NONAME ; class CScriptBase * __cdecl LibEntryL(class CTestModuleIf &)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/accfwuinotifier/tsrc/AccFwUiNotifierTestModule/conf/ui_AccFwUiNotifierTestModule.cfg	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,36 @@
+[Test]
+title CreateAndDestroyPlugin 
+create AccFwUiNotifierTestModule AccFwUiNotifier
+AccFwUiNotifier CreateNotifierPlugin
+delete AccFwUiNotifier
+[Endtest]
+
+[Test]
+title ShowAccessoryUiNote
+create AccFwUiNotifierTestModule AccFwUiNotifier
+AccFwUiNotifier TestSupportedAccessoryUiNoteL
+delete AccFwUiNotifier
+[Endtest]
+
+[Test]
+title TestUnsupportedAccessoryUiNoteL
+create AccFwUiNotifierTestModule AccFwUiNotifier
+AccFwUiNotifier TestUnsupportedAccessoryUiNoteL
+delete AccFwUiNotifier
+[Endtest]
+
+
+[Test]
+title TestUpdateNotifierL
+create AccFwUiNotifierTestModule AccFwUiNotifier
+AccFwUiNotifier TestUpdateNotifierL
+delete AccFwUiNotifier
+[Endtest]
+
+[Test]
+title TestStart2L
+create AccFwUiNotifierTestModule AccFwUiNotifier
+AccFwUiNotifier TestStartNotifierL
+delete AccFwUiNotifier
+[Endtest]
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/accfwuinotifier/tsrc/AccFwUiNotifierTestModule/eabi/AccFwUiNotifierTestModuleu.def	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,3 @@
+EXPORTS
+	_Z9LibEntryLR13CTestModuleIf @ 1 NONAME
+
Binary file coreapplicationuis/accfwuinotifier/tsrc/AccFwUiNotifierTestModule/group/AccFwUiNotifierTestModule-tmp.SIS has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/accfwuinotifier/tsrc/AccFwUiNotifierTestModule/group/AccFwUiNotifierTestModule.mmp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,90 @@
+/*TYPE TESTCLASS*/
+/*
+* 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: MMP file for STIF Test Framework's TestScripter 
+* testclass test module.
+*
+*/
+
+#include <platform_paths.hrh>
+
+SMPSAFE
+
+TARGET          AccFwUiNotifierTestModule.dll
+TARGETTYPE      dll
+UID             0x1000008D 0x101FB3E3
+
+CAPABILITY      ALL -TCB
+/* Remove comments and replace 0x00000000 with correct vendor id */
+// VENDORID     0x00000000
+/* Remove comments and replace 0x00000000 with correct secure id */
+// SECUREID     0x00000000
+
+//TARGETPATH      ?target_path
+DEFFILE         AccFwUiNotifierTestModule.def
+
+//USERINCLUDE     ../inc
+USERINCLUDE		../../../inc 
+USERINCLUDE     ../inc
+
+
+MW_LAYER_SYSTEMINCLUDE
+OS_LAYER_SYSTEMINCLUDE
+SYSTEMINCLUDE   /epoc32/include/ecom
+
+
+
+SOURCEPATH      ../src
+SOURCE          AccFwUiNotifierTestModule.cpp
+
+//SOURCEPATH 		../../../src
+//SOURCE			AccFwUiNoteNotifier.cpp
+
+
+
+//RESOURCE        resource_file
+//RESOURCE        resource_file2
+
+LIBRARY         euser.lib
+LIBRARY         stiftestinterface.lib
+LIBRARY         stiftestengine.lib
+LIBRARY         ecom.lib
+
+
+
+LANG            SC
+
+/*
+START WINS      
+?wins_specific_information
+END
+
+START MARM
+?marm_specific_information
+END
+*/
+// Other possible keywords:
+ 
+// DOCUMENT     ?file, that is not compiled, but added to MSVC project workspace (i.e. release notes)
+/*
+START BITMAP ?target
+TARGETPATH   ?emulated_path_on_target_machine
+HEADER
+SOURCE       ?color_depth ?source_bitmap
+END
+*/
+// DEFFILE ?filename
+// AIF ?filename
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/accfwuinotifier/tsrc/AccFwUiNotifierTestModule/group/AccFwUiNotifierTestModule.pkg	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,60 @@
+;
+; 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:
+;
+; 	Installation file for STIF
+;
+
+; Languages
+&EN
+
+; Provide value for uid
+#{"STIF"},(0x00000000),1,1,0,TYPE=SA
+
+; Series60 product id for S60 3.0
+[0x101F7961], 0, 0, 0, {"Series60ProductID"}
+
+; Localised Vendor name
+%{"Nokia"}
+
+; Unique Vendor name
+:"Nokia"
+
+; Logo
+; None
+
+; Package signature - Optional
+; None
+
+; Start of Package body
+
+; Condition blocks
+; None
+
+; Options list
+; None
+
+; Install files
+"\epoc32\release\armv5\udeb\AccFwUiNotifierTestModule.dll"   -   "!:\Sys\Bin\AccFwUiNotifierTestModule.dll"
+  
+; Embedded SIS 
+; None
+
+; End of Package body
+
+; PKG dependencies
+; None
+
+; PKG capabilities
+; None
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/accfwuinotifier/tsrc/AccFwUiNotifierTestModule/group/AccFwUiNotifierTestModule_DoxyFile.txt	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,240 @@
+#
+# 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:
+#
+#
+
+# Doxyfile 1.4.1
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+PROJECT_NAME           = AccFwUiNotifierTestModule
+PROJECT_NUMBER         = 
+OUTPUT_DIRECTORY       = P:\Synergy\accfwuinotifier-bh1dsgasanobroy\accfwuinotifier\tsrc\\AccFwUiNotifierTestModule\
+CREATE_SUBDIRS         = NO
+OUTPUT_LANGUAGE        = English
+USE_WINDOWS_ENCODING   = YES
+BRIEF_MEMBER_DESC      = YES
+REPEAT_BRIEF           = YES
+ABBREVIATE_BRIEF       = 
+ALWAYS_DETAILED_SEC    = NO
+INLINE_INHERITED_MEMB  = NO
+FULL_PATH_NAMES        = NO
+STRIP_FROM_PATH        = 
+STRIP_FROM_INC_PATH    = 
+SHORT_NAMES            = NO
+JAVADOC_AUTOBRIEF      = NO
+MULTILINE_CPP_IS_BRIEF = NO
+DETAILS_AT_TOP         = NO
+INHERIT_DOCS           = YES
+DISTRIBUTE_GROUP_DOC   = NO
+TAB_SIZE               = 8
+ALIASES                = 
+OPTIMIZE_OUTPUT_FOR_C  = YES
+OPTIMIZE_OUTPUT_JAVA   = NO
+SUBGROUPING            = YES
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+EXTRACT_ALL            = YES
+EXTRACT_PRIVATE        = NO
+EXTRACT_STATIC         = NO
+EXTRACT_LOCAL_CLASSES  = NO
+EXTRACT_LOCAL_METHODS  = NO
+HIDE_UNDOC_MEMBERS     = NO
+HIDE_UNDOC_CLASSES     = NO
+HIDE_FRIEND_COMPOUNDS  = NO
+HIDE_IN_BODY_DOCS      = NO
+INTERNAL_DOCS          = YES
+CASE_SENSE_NAMES       = YES
+HIDE_SCOPE_NAMES       = NO
+SHOW_INCLUDE_FILES     = YES
+INLINE_INFO            = YES
+SORT_MEMBER_DOCS       = YES
+SORT_BRIEF_DOCS        = NO
+SORT_BY_SCOPE_NAME     = NO
+GENERATE_TODOLIST      = NO
+GENERATE_TESTLIST      = NO
+GENERATE_BUGLIST       = NO
+GENERATE_DEPRECATEDLIST= YES
+ENABLED_SECTIONS       = 
+MAX_INITIALIZER_LINES  = 30
+SHOW_USED_FILES        = YES
+SHOW_DIRECTORIES       = YES
+FILE_VERSION_FILTER    = 
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+QUIET                  = NO
+WARNINGS               = YES
+WARN_IF_UNDOCUMENTED   = YES
+WARN_IF_DOC_ERROR      = YES
+WARN_NO_PARAMDOC       = NO
+WARN_FORMAT            = "$file:$line: $text"
+WARN_LOGFILE           = 
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+INPUT                  = P:\Synergy\accfwuinotifier-bh1dsgasanobroy\accfwuinotifier\tsrc\\AccFwUiNotifierTestModule\
+FILE_PATTERNS          = *.h \
+                         *.rh \
+                         *.hrh
+RECURSIVE              = YES
+EXCLUDE                = 
+EXCLUDE_SYMLINKS       = NO
+EXCLUDE_PATTERNS       = 
+EXAMPLE_PATH           = 
+EXAMPLE_PATTERNS       = 
+EXAMPLE_RECURSIVE      = NO
+IMAGE_PATH             = 
+INPUT_FILTER           = 
+FILTER_PATTERNS        = 
+FILTER_SOURCE_FILES    = NO
+#---------------------------------------------------------------------------
+# configuration options related to source browsing
+#---------------------------------------------------------------------------
+SOURCE_BROWSER         = NO
+INLINE_SOURCES         = NO
+STRIP_CODE_COMMENTS    = YES
+REFERENCED_BY_RELATION = YES
+REFERENCES_RELATION    = YES
+VERBATIM_HEADERS       = YES
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+ALPHABETICAL_INDEX     = NO
+COLS_IN_ALPHA_INDEX    = 5
+IGNORE_PREFIX          = 
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+GENERATE_HTML          = NO
+HTML_OUTPUT            = html
+HTML_FILE_EXTENSION    = .html
+HTML_HEADER            = 
+HTML_FOOTER            = 
+HTML_STYLESHEET        = 
+HTML_ALIGN_MEMBERS     = YES
+GENERATE_HTMLHELP      = YES
+CHM_FILE               = 
+HHC_LOCATION           = 
+GENERATE_CHI           = NO
+BINARY_TOC             = YES
+TOC_EXPAND             = YES
+DISABLE_INDEX          = YES
+ENUM_VALUES_PER_LINE   = 4
+GENERATE_TREEVIEW      = YES
+TREEVIEW_WIDTH         = 250
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+GENERATE_LATEX         = NO
+LATEX_OUTPUT           = latex
+LATEX_CMD_NAME         = latex
+MAKEINDEX_CMD_NAME     = makeindex
+COMPACT_LATEX          = NO
+PAPER_TYPE             = a4wide
+EXTRA_PACKAGES         = 
+LATEX_HEADER           = 
+PDF_HYPERLINKS         = NO
+USE_PDFLATEX           = NO
+LATEX_BATCHMODE        = NO
+LATEX_HIDE_INDICES     = NO
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+GENERATE_RTF           = YES
+RTF_OUTPUT             = Doc
+COMPACT_RTF            = YES
+RTF_HYPERLINKS         = YES
+RTF_STYLESHEET_FILE    = 
+RTF_EXTENSIONS_FILE    = 
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+GENERATE_MAN           = NO
+MAN_OUTPUT             = man
+MAN_EXTENSION          = .3
+MAN_LINKS              = NO
+#---------------------------------------------------------------------------
+# configuration options related to the XML output
+#---------------------------------------------------------------------------
+GENERATE_XML           = NO
+XML_OUTPUT             = xml
+XML_SCHEMA             = 
+XML_DTD                = 
+XML_PROGRAMLISTING     = YES
+#---------------------------------------------------------------------------
+# configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+GENERATE_AUTOGEN_DEF   = NO
+#---------------------------------------------------------------------------
+# configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+GENERATE_PERLMOD       = NO
+PERLMOD_LATEX          = NO
+PERLMOD_PRETTY         = YES
+PERLMOD_MAKEVAR_PREFIX = 
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor   
+#---------------------------------------------------------------------------
+ENABLE_PREPROCESSING   = YES
+MACRO_EXPANSION        = YES
+EXPAND_ONLY_PREDEF     = NO
+SEARCH_INCLUDES        = YES
+INCLUDE_PATH           = 
+INCLUDE_FILE_PATTERNS  = 
+PREDEFINED             = NONSHARABLE_CLASS
+EXPAND_AS_DEFINED      = 
+SKIP_FUNCTION_MACROS   = YES
+#---------------------------------------------------------------------------
+# Configuration::additions related to external references   
+#---------------------------------------------------------------------------
+TAGFILES               = 
+GENERATE_TAGFILE       = 
+ALLEXTERNALS           = NO
+EXTERNAL_GROUPS        = YES
+PERL_PATH              = /usr/bin/perl
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool   
+#---------------------------------------------------------------------------
+CLASS_DIAGRAMS         = YES
+HIDE_UNDOC_RELATIONS   = YES
+HAVE_DOT               = NO
+CLASS_GRAPH            = YES
+COLLABORATION_GRAPH    = YES
+GROUP_GRAPHS           = YES
+UML_LOOK               = NO
+TEMPLATE_RELATIONS     = YES
+INCLUDE_GRAPH          = YES
+INCLUDED_BY_GRAPH      = YES
+CALL_GRAPH             = NO
+GRAPHICAL_HIERARCHY    = YES
+DIRECTORY_GRAPH        = YES
+DOT_IMAGE_FORMAT       = png
+DOT_PATH               = 
+DOTFILE_DIRS           = 
+MAX_DOT_GRAPH_WIDTH    = 1024
+MAX_DOT_GRAPH_HEIGHT   = 1024
+MAX_DOT_GRAPH_DEPTH    = 0
+DOT_TRANSPARENT        = NO
+DOT_MULTI_TARGETS      = NO
+GENERATE_LEGEND        = YES
+DOT_CLEANUP            = YES
+#---------------------------------------------------------------------------
+# Configuration::additions related to the search engine   
+#---------------------------------------------------------------------------
+SEARCHENGINE           = NO
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/accfwuinotifier/tsrc/AccFwUiNotifierTestModule/group/bld.inf	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,66 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+* 
+* Description:
+*
+*/
+
+PRJ_PLATFORMS
+// specify the platforms your component needs to be built for here
+// defaults to WINS MARM so you can ignore this if you just build these
+	
+	DEFAULT
+
+PRJ_TESTEXPORTS
+// NOTE: If using ARS requirements all export operations should be done under this.
+// 'abld test export'
+../init/TestFramework.ini /epoc32/winscw/c/TestFramework/TestFramework.ini
+../init/TestFramework.ini /epoc32/data/z/system/data/TestFramework.ini
+
+../conf/ui_AccFwUiNotifierTestModule.cfg /epoc32/winscw/c/TestFramework/ui_AccFwUiNotifierTestModule.cfg
+../conf/ui_AccFwUiNotifierTestModule.cfg /epoc32/data/z/system/data/ui_AccFwUiNotifierTestModule.cfg
+
+../rom/AccFwUiNotifierTestModule.iby                              CORE_MW_LAYER_IBY_EXPORT_PATH(AccFwUiNotifierTestModule.iby)
+
+PRJ_EXPORTS
+// Specify the source file followed by its destination here
+// copy will be used to copy the source file to its destination
+// If there's no destination then the source file will be copied
+// to the same name in \epoc32\include
+// Example: 
+/*
+\agnmodel\inc\AGMCOMON.H
+*/
+
+PRJ_TESTMMPFILES
+
+	AccFwUiNotifierTestModule.mmp
+
+PRJ_MMPFILES
+
+
+// Specify the .mmp files required for building the important component
+// releasables.
+//
+// Specify "tidy" if the component you need to build doesn't need to be
+// released. Specify "ignore" if the MMP file exists but should be
+// ignored.
+// Example:
+/*
+\agnmodel\group\agnmodel.mmp
+#if defined(MARM)
+\agnmodel\group\agsvexe.mmp
+#endif
+*/
+
+//  End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/accfwuinotifier/tsrc/AccFwUiNotifierTestModule/inc/AccFwUiNotifierTestModule.h	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,191 @@
+/*
+* 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: STIF testclass declaration
+*
+*/
+
+#ifndef ACCFWUINOTIFIERTESTMODULE_H
+#define ACCFWUINOTIFIERTESTMODULE_H
+
+//  INCLUDES
+#include <StifLogger.h>
+#include <TestScripterInternal.h>
+#include <StifTestModule.h>
+#include <TestclassAssert.h>
+#include <ecom/implementationproxy.h>
+#include <ecom/implementationinformation.h>
+#include <ecom/ecom.h>
+
+
+
+
+
+// CONSTANTS
+//const ?type ?constant_var = ?constant;
+
+// MACROS
+//#define ?macro ?macro_def
+#define TEST_CLASS_VERSION_MAJOR 0
+#define TEST_CLASS_VERSION_MINOR 0
+#define TEST_CLASS_VERSION_BUILD 0
+
+// Logging path
+_LIT( KAccFwUiNotifierTestModuleLogPath, "\\logs\\testframework\\AccFwUiNotifierTestModule\\" ); 
+// Log file
+_LIT( KAccFwUiNotifierTestModuleLogFile, "AccFwUiNotifierTestModule.txt" ); 
+_LIT( KAccFwUiNotifierTestModuleLogFileWithTitle, "AccFwUiNotifierTestModule_[%S].txt" );
+
+// FUNCTION PROTOTYPES
+//?type ?function_name(?arg_list);
+
+// FORWARD DECLARATIONS
+//class ?FORWARD_CLASSNAME;
+class CAccFwUiNoteNotifier;
+class CAccFwUiNotifierTestModule;
+
+// DATA TYPES
+//enum 
+// Forward Declarations
+enum TTestPanic
+     {
+     EPanicBadDescriptor,
+     EPanicIllegalFunction,
+     EPanicAlreadyReceiving
+     };
+
+//typedef ?declaration
+//extern ?data_type;
+
+// CLASS DECLARATION
+
+/**
+*  CAccFwUiNotifierTestModule test class for STIF Test Framework TestScripter.
+*  ?other_description_lines
+*
+*  @lib ?library
+*  @since ?Series60_version
+*/
+NONSHARABLE_CLASS(CAccFwUiNotifierTestModule) : public CScriptBase, public RSessionBase
+    {
+    public:  // Constructors and destructor
+
+        /**
+        * Two-phased constructor.
+        */
+        static CAccFwUiNotifierTestModule* NewL( CTestModuleIf& aTestModuleIf );
+
+        /**
+        * Destructor.
+        */
+        virtual ~CAccFwUiNotifierTestModule();
+
+    public: // New functions
+        
+
+    public: // Functions from base classes
+
+        /**
+        * From CScriptBase Runs a script line.
+        * @since ?Series60_version
+        * @param aItem Script line containing method name and parameters
+        * @return Symbian OS error code
+        */
+        virtual TInt RunMethodL( CStifItemParser& aItem );
+
+    protected:  // New functions
+
+        /**
+        * ?member_description.
+        * @since ?Series60_version
+        * @param ?arg1 ?description
+        * @return ?description
+        */
+        //?type ?member_function( ?type ?arg1 );
+
+    protected:  // Functions from base classes
+
+        /**
+        * From ?base_class ?member_description
+        */
+        //?type ?member_function();
+
+    private:
+
+        /**
+        * C++ default constructor.
+        */
+        CAccFwUiNotifierTestModule( CTestModuleIf& aTestModuleIf );
+
+        /**
+        * By default Symbian 2nd phase constructor is private.
+        */
+        void ConstructL();
+
+        // Prohibit copy constructor if not deriving from CBase.
+        // ?classname( const ?classname& );
+        // Prohibit assigment operator if not deriving from CBase.
+        // ?classname& operator=( const ?classname& );
+
+        /**
+        * Frees all resources allocated from test methods.
+        * @since ?Series60_version
+        */
+        void Delete();
+        
+        /**
+         * Panic Client
+         */
+        void PanicClient(TInt panic);
+
+        /**
+        * Test methods are listed below. 
+        */
+        TInt CreateNotifierPlugin( CStifItemParser& aItem );
+        TInt TestSupportedAccessoryUiNoteL (CStifItemParser& aItem);
+        TInt TestUnsupportedAccessoryUiNoteL (CStifItemParser& aItem);
+        TInt TestUpdateNotifierL (CStifItemParser& aItem);
+        TInt TestStartNotifierL (CStifItemParser& aItem);
+        /**
+         * Method used to log version of test class
+         */
+        void SendTestClassVersion();
+
+        //ADD NEW METHOD DEC HERE
+        //[TestMethods] - Do not remove
+
+    public:     // Data
+        // ?one_line_short_description_of_data
+        //?data_declaration;
+
+    protected:  // Data
+        // ?one_line_short_description_of_data
+        //?data_declaration;
+
+    private:    // Data
+        CAccFwUiNoteNotifier* iNotifierPlugin;
+        TUid idtorID;
+        RImplInfoPtrArray iImplementations;
+        RMessagePtr2 iMessagePtr;
+    public:     // Friend classes
+        //?friend_class_declaration;
+    protected:  // Friend classes
+        //?friend_class_declaration;
+    private:    // Friend classes
+        //?friend_class_declaration;
+
+    };
+
+#endif      // ACCFWUINOTIFIERTESTMODULE_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/accfwuinotifier/tsrc/AccFwUiNotifierTestModule/init/TestFramework.ini	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,219 @@
+#
+# This is STIF initialization file
+# Comment lines start with '#'-character.
+# See STIF TestFramework users guide.doc for instructions
+
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+# Set following test engine settings:
+#	- Set Test Reporting mode. TestReportMode's possible values are:
+#		+ 'Summary': Summary of the tested test cases.
+#		+ 'Environment': Hardware and software info.
+#		+ 'TestCases': Test case report.
+#		+ 'FullReport': Set of all above ones.
+#		+ Example 'TestReportMode= Summary TestCases'
+#
+# 	- CreateTestReport setting controls report creation mode
+#		+ YES, Test report will created.
+#		+ NO, No Test report.
+#
+# 	- File path indicates the base path of the test report.
+# 	- File name indicates the name of the test report.
+#
+# 	- File format indicates the type of the test report.
+#		+ TXT, Test report file will be txt type, for example 'TestReport.txt'.
+#		+ HTML, Test report will be html type, for example 'TestReport.html'.
+#   + XML, Test report will be xml type, for example 'TestReport.xml'.
+#          Note, that xml format is available only when output is set to FILE.
+#
+# 	- File output indicates output source of the test report.
+#		+ FILE, Test report logging to file.
+#		+ RDEBUG, Test report logging to using rdebug.
+#
+# 	- File Creation Mode indicates test report overwriting if file exist.
+#		+ OVERWRITE, Overwrites if the Test report file exist.
+#		+ APPEND, Continue logging after the old Test report information if
+#                 report exist.
+# 	- Sets a device reset module's dll name(Reboot).
+#		+ If Nokia specific reset module is not available or it is not correct one
+#		  StifHWResetStub module may use as a template for user specific reset
+#		  module.
+# 	- Sets STIF test measurement disable options. e.g. pluging1 and pluging2 disablation
+#		DisableMeasurement= stifmeasurementplugin01 stifmeasurementplugin02
+#
+
+[Engine_Defaults]
+
+TestReportMode= FullReport    # Possible values are: 'Empty', 'Summary', 'Environment',
+                              #                      'TestCases' or 'FullReport'
+
+CreateTestReport= YES         # Possible values: YES or NO
+
+TestReportFilePath= C:\LOGS\TestFramework\
+TestReportFileName= TestReport
+
+TestReportFormat= TXT         # Possible values: TXT, HTML or XML
+TestReportOutput= FILE        # Possible values: FILE or RDEBUG
+TestReportFileCreationMode= OVERWRITE # Possible values: OVERWRITE or APPEND
+
+DeviceResetDllName= StifResetForNokia.dll # e.g. 'StifHWResetStub.dll' for user specific reseting
+
+DisableMeasurement= stifmeasurementdisablenone  # Possible values are:
+              # 'stifmeasurementdisablenone', 'stifmeasurementdisableall'
+              # 'stifmeasurementplugin01', 'stifmeasurementplugin02',
+              # 'stifmeasurementplugin03', 'stifmeasurementplugin04',
+              # 'stifmeasurementplugin05' or 'stifbappeaprofiler'
+
+Timeout= 0                    # Default timeout value for each test case. In milliseconds
+UITestingSupport= YES        # Possible values: YES or NO
+#SeparateProcesses= YES       # Possible values: YES or NO (default: NO)
+[End_Defaults]
+
+[New_Module]
+ModuleName= testscripter 
+TestCaseFile= Z:\TestFramework\ui_AccFwUiNotifierTestModule.cfg 
+[End_Module]
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+
+
+
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+# Module configurations start
+# Modules are added between module tags
+# tags. Module name is specified after ModuleName= tag, like
+# ModuleName= XXXXXXXXX
+# Modules might have initialisation file, specified as
+# IniFile= c:\testframework\YYYYYY
+# Modules might have several configuration files, like
+# TestCaseFile= c:\testframework\NormalCases.txt
+# TestCaseFile= c:\testframework\SmokeCases.txt
+# TestCaseFile= c:\testframework\ManualCases.txt
+
+# (TestCaseFile is synonym for old term ConfigFile)
+
+# Following case specifies demo module settings. Demo module
+# does not read any settings from file, so tags 
+# IniFile and TestCaseFile are not used.
+# In the simplest case it is enough to specify only the
+# name of the test module when adding new test module
+
+
+
+# Load testmoduleXXX, optionally with initialization file and/or test case files
+#[New_Module]
+#ModuleName= testmodulexxx
+
+#TestModuleXXX used initialization file
+#IniFile= c:\testframework\init.txt
+
+#TestModuleXXX used configuration file(s)
+#TestCaseFile= c:\testframework\testcases1.cfg
+#TestCaseFile= c:\testframework\testcases2.cfg
+#TestCaseFile= c:\testframework\manualtestcases.cfg
+
+#[End_Module]
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+
+
+
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+# Set STIF logging overwrite parameters for Logger.
+# 	Hardware and emulator environment logging path and styles can
+# 	be configured from here to overwrite the Logger's implemented values.
+#	
+#	Settings description:
+#	- Indicates option for creation log directory/directories. If log directory/directories
+#         is/are not created by user they will make by software.
+#		+ YES, Create log directory/directories if not allready exist.
+#		+ NO, Log directory/directories not created. Only created one is used.
+#
+#	- Overwrite emulator path setting.
+#		+ Example: If 'EmulatorBasePath= C:\LOGS\TestFramework\' and in code is defined 
+#		           Logger's path 'D:\\LOGS\\Module\\' with those definition the path
+#		           will be 'C:\LOGS\TestFramework\LOGS\Module\'
+#
+#	- Overwrite emulator's logging format.
+#		+ TXT, Log file(s) will be txt type(s), for example 'Module.txt'.
+#		+ HTML, Log file(s) will be html type(s), for example 'Module.html'.
+#
+#	- Overwrited emulator logging output source.
+#		+ FILE, Logging to file(s).
+#		+ RDEBUG, Logging to using rdebug(s).
+#
+#	- Overwrite hardware path setting (Same description as above in emulator path).
+#	- Overwrite hardware's logging format(Same description as above in emulator format).
+#	- Overwrite hardware's logging output source(Same description as above in emulator output).
+#
+#	- File Creation Mode indicates file overwriting if file exist.
+#		+ OVERWRITE, Overwrites if file(s) exist.
+#		+ APPEND, Continue logging after the old logging information if file(s) exist.
+#
+#	- Will thread id include to the log filename.
+#		+ YES, Thread id to log file(s) name, Example filename 'Module_b9.txt'.
+#		+ NO, No thread id to log file(s), Example filename 'Module.txt'.
+#
+#	- Will time stamps include the to log file.
+#		+ YES, Time stamp added to each line in log file(s). Time stamp is 
+#                 for example'12.Nov.2003 115958    LOGGING INFO'
+#		+ NO, No time stamp(s).
+#
+#	- Will line breaks include to the log file.
+#		+ YES, Each logging event includes line break and next log event is in own line.
+#		+ NO, No line break(s).
+#
+#	- Will event ranking include to the log file.
+#		+ YES, Event ranking number added to each line in log file(s). Ranking number
+#                 depends on environment's tics, for example(includes time stamp also)
+#                 '012   12.Nov.2003 115958    LOGGING INFO'
+#		+ NO, No event ranking.
+#
+#	- Will write log file in unicode format.
+#		+ YES, Log file will be written in unicode format
+#		+ NO, Log will be written as normal, not unicode, file.
+#
+
+[Logger_Defaults]
+
+#NOTE: If you want to set Logger using next setting(s) remove comment(s)'#'
+#NOTE: TestEngine and TestServer logging settings cannot change here
+
+#CreateLogDirectories= YES    # Possible values: YES or NO
+
+#EmulatorBasePath= C:\LOGS\TestFramework\
+#EmulatorFormat= HTML         # Possible values: TXT or HTML
+#EmulatorOutput= FILE         # Possible values: FILE or RDEBUG
+
+#HardwareBasePath= D:\LOGS\TestFramework\
+#HardwareFormat= HTML         # Possible values: TXT or HTML
+#HardwareOutput= FILE         # Possible values: FILE or RDEBUG
+
+#FileCreationMode= OVERWRITE  # Possible values: OVERWRITE or APPEND
+
+#ThreadIdToLogFile= YES       # Possible values: YES or NO
+#WithTimeStamp= YES           # Possible values: YES or NO
+#WithLineBreak= YES           # Possible values: YES or NO
+#WithEventRanking= YES        # Possible values: YES or NO
+
+#FileUnicode= YES             # Possible values: YES or NO
+#AddTestCaseTitle= YES        # Possible values: YES or NO
+[End_Logger_Defaults]
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+
+
+
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+# Set filters to be used by ConsoleUI.
+# 	If you want to use filter with ConsoleUI, simply remove comments
+# 	from section below and provide valid filter entries.
+#   Each filter line has to start with "filter= " keyword.
+#   Filter can contain special wildcard characters:
+#     *  which stands for none or any literal;
+#     ?  which stands for single character.
+#   Filters are not case-sensitive.
+
+#[Filters]
+#filter= *math*
+#filter= *radio*
+#[End_Filters]
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+
+# End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/accfwuinotifier/tsrc/AccFwUiNotifierTestModule/rom/AccFwUiNotifierTestModule.iby	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/
+
+#ifndef __ACCFWUINOTIFIERTESTMODULE_IBY__
+#define __ACCFWUINOTIFIERTESTMODULE_IBY__
+
+file=ABI_DIR\BUILD_DIR\AccFwUiNotifierTestModule.dll                      SHARED_LIB_DIR\AccFwUiNotifierTestModule.dll
+
+//data=\epoc32\data\z\system\data\TestFramework.ini             \testframework\TestFramework.ini
+
+data=\epoc32\data\z\system\data\ui_AccFwUiNotifierTestModule.cfg                      \testframework\ui_AccFwUiNotifierTestModule.cfg
+
+
+
+#endif
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/accfwuinotifier/tsrc/AccFwUiNotifierTestModule/src/AccFwUiNotifierTestModule.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,380 @@
+/*
+* 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: This file contains testclass implementation.
+*
+*/
+
+// INCLUDE FILES
+#include <StifTestInterface.h>
+#include "AccFwUiNotifierTestModule.h"
+#include <SettingServerClient.h>
+#include "AccFwUiNoteNotifier.h"
+
+#include <accfwnoteuinotifier.rsg>
+//#include <e32des8.h>
+
+// EXTERNAL DATA STRUCTURES
+//extern  ?external_data;
+
+// EXTERNAL FUNCTION PROTOTYPES  
+//extern ?external_function( ?arg_type,?arg_type );
+
+// CONSTANTS
+// CONSTANTS
+
+
+// MACROS
+//#define ?macro ?macro_def
+
+// LOCAL CONSTANTS AND MACROS
+
+
+// MODULE DATA STRUCTURES
+//enum ?declaration
+//typedef ?declaration
+
+// LOCAL FUNCTION PROTOTYPES
+//?type ?function_name( ?arg_type, ?arg_type );
+
+// FORWARD DECLARATIONS
+//class ?FORWARD_CLASSNAME;
+
+// ============================= LOCAL FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// ?function_name ?description.
+// ?description
+// Returns: ?value_1: ?description
+//          ?value_n: ?description_line1
+//                    ?description_line2
+// -----------------------------------------------------------------------------
+//
+/*
+?type ?function_name(
+    ?arg_type arg,  // ?description
+    ?arg_type arg)  // ?description
+    {
+
+    ?code  // ?comment
+
+    // ?comment
+    ?code
+    }
+*/
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CAccFwUiNotifierTestModule::CAccFwUiNotifierTestModule
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// -----------------------------------------------------------------------------
+//
+CAccFwUiNotifierTestModule::CAccFwUiNotifierTestModule( 
+    CTestModuleIf& aTestModuleIf ):
+        CScriptBase( aTestModuleIf )
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CAccFwUiNotifierTestModule::ConstructL
+// Symbian 2nd phase constructor can leave.
+// -----------------------------------------------------------------------------
+//
+void CAccFwUiNotifierTestModule::ConstructL()
+    {
+    //Read logger settings to check whether test case name is to be
+    //appended to log file name.
+    RSettingServer settingServer;
+    TInt ret = settingServer.Connect();
+    if(ret != KErrNone)
+        {
+        User::Leave(ret);
+        }
+    // Struct to StifLogger settigs.
+    TLoggerSettings loggerSettings; 
+    // Parse StifLogger defaults from STIF initialization file.
+    ret = settingServer.GetLoggerSettings(loggerSettings);
+    if(ret != KErrNone)
+        {
+        User::Leave(ret);
+        } 
+    // Close Setting server session
+    settingServer.Close();
+
+    TFileName logFileName;
+    
+    if(loggerSettings.iAddTestCaseTitle)
+        {
+        TName title;
+        TestModuleIf().GetTestCaseTitleL(title);
+        logFileName.Format(KAccFwUiNotifierTestModuleLogFileWithTitle, &title);
+        }
+    else
+        {
+        logFileName.Copy(KAccFwUiNotifierTestModuleLogFile);
+        }
+
+    iLog = CStifLogger::NewL( KAccFwUiNotifierTestModuleLogPath, 
+                          logFileName,
+                          CStifLogger::ETxt,
+                          CStifLogger::EFile,
+                          EFalse );
+    
+    SendTestClassVersion();
+    }
+
+// -----------------------------------------------------------------------------
+// CAccFwUiNotifierTestModule::NewL
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CAccFwUiNotifierTestModule* CAccFwUiNotifierTestModule::NewL( 
+    CTestModuleIf& aTestModuleIf )
+    {
+    CAccFwUiNotifierTestModule* self = new (ELeave) CAccFwUiNotifierTestModule( aTestModuleIf );
+
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop();
+
+    return self;
+
+    }
+
+// -----------------------------------------------------------------------------
+// CAccFwUiNotifierTestModule::Delete
+// Delete here all resources allocated and opened from test methods. 
+// Called from destructor. 
+// -----------------------------------------------------------------------------
+//
+void CAccFwUiNotifierTestModule::Delete() 
+    {
+
+    }
+
+
+// Destructor
+CAccFwUiNotifierTestModule::~CAccFwUiNotifierTestModule()
+    { 
+
+    // Delete resources allocated from test methods
+    Delete();
+
+    // Delete logger
+    delete iLog; 
+
+    }
+
+//-----------------------------------------------------------------------------
+// CAccFwUiNotifierTestModule::SendTestClassVersion
+// Method used to send version of test class
+//-----------------------------------------------------------------------------
+//
+void CAccFwUiNotifierTestModule::SendTestClassVersion()
+	{
+	TVersion moduleVersion;
+	moduleVersion.iMajor = TEST_CLASS_VERSION_MAJOR;
+	moduleVersion.iMinor = TEST_CLASS_VERSION_MINOR;
+	moduleVersion.iBuild = TEST_CLASS_VERSION_BUILD;
+	
+	TFileName moduleName;
+	moduleName = _L("AccFwUiNotifierTestModule.dll");
+
+	TBool newVersionOfMethod = ETrue;
+	TestModuleIf().SendTestModuleVersion(moduleVersion, moduleName, newVersionOfMethod);
+	}
+
+// ------------------------------------------------------------------------------
+// PanicClient
+// ------------------------------------------------------------------------------
+//
+void CAccFwUiNotifierTestModule::PanicClient(TInt aPanic)
+    {
+    _LIT(KAccFwUiNotifierTestModulePanic, "AccFwUiNotifierTestModule");
+    User::Panic(KAccFwUiNotifierTestModulePanic, aPanic);
+    }
+// -----------------------------------------------------------------------------
+// CAccFwUiNotifierTestModule::RunMethodL
+// Run specified method. Contains also table of test mothods and their names.
+// -----------------------------------------------------------------------------
+//
+TInt CAccFwUiNotifierTestModule::RunMethodL( 
+    CStifItemParser& aItem ) 
+    {
+
+    static TStifFunctionInfo const KFunctions[] =
+        {  
+        // Copy this line for every implemented function.
+        // First string is the function name used in TestScripter script file.
+        // Second is the actual implementation member function. 
+        ENTRY( "CreateNotifierPlugin", CAccFwUiNotifierTestModule::CreateNotifierPlugin ),
+        ENTRY( "TestSupportedAccessoryUiNoteL", CAccFwUiNotifierTestModule::TestSupportedAccessoryUiNoteL ),
+        ENTRY( "TestUnsupportedAccessoryUiNoteL", CAccFwUiNotifierTestModule::TestUnsupportedAccessoryUiNoteL ),
+        ENTRY( "TestUpdateNotifierL", CAccFwUiNotifierTestModule::TestUpdateNotifierL ),
+        ENTRY( "TestStartNotifierL", CAccFwUiNotifierTestModule::TestStartNotifierL ),
+    
+        
+        //ADD NEW ENTRY HERE
+        // [test cases entries] - Do not remove
+
+        };
+
+    const TInt count = sizeof( KFunctions ) / 
+                        sizeof( TStifFunctionInfo );
+
+    return RunInternalL( KFunctions, count, aItem );
+
+    }
+
+
+TInt CAccFwUiNotifierTestModule::CreateNotifierPlugin(CStifItemParser& /*aItem */)
+    {
+    RDebug::Print(_L("CAccFwUiNotifierTestModule::CreatePlugin"));
+    TUid accfwuinotifierUID = {0x10205060};
+    iNotifierPlugin = reinterpret_cast < CAccFwUiNoteNotifier* >(REComSession::CreateImplementationL (accfwuinotifierUID, idtorID ) );
+
+    STIF_ASSERT_NOT_NULL( iNotifierPlugin );
+    RDebug::Print(_L("iNotifierPlugin = %x"),iNotifierPlugin);
+        
+    return KErrNone;
+    
+    }
+
+TInt CAccFwUiNotifierTestModule::TestSupportedAccessoryUiNoteL(CStifItemParser& /*aItem*/ )
+    {
+    RDebug::Print(_L("CAccFwUiNotifierTestModule::AccessoryUiNote"));
+    RNotifier notifier;
+    notifier.Connect();
+    TInt selectionListBitmask = 255;
+
+    TInt reply = 0;
+    
+    
+    TPckg<TInt> replyPck( reply);
+    
+    TPckg<TUint32> selectionBitmaskPackage( selectionListBitmask);
+    //activate active object
+    TRequestStatus status;
+    status = KRequestPending;
+    
+    //open ui
+    
+    notifier.StartNotifierAndGetResponse( status, KAccFwUiNoteNotifierUid, selectionBitmaskPackage, replyPck);
+    User::WaitForRequest( status);
+    
+    notifier.Close();
+
+    return KErrNone;
+    }
+
+TInt CAccFwUiNotifierTestModule::TestUnsupportedAccessoryUiNoteL(CStifItemParser& /*aItem*/ )
+    {
+     RDebug::Print(_L("CAccFwUiNotifierTestModule::AccessoryUiNote"));
+     RNotifier notifier;
+     notifier.Connect();
+     //TInt selectionListBitmask = 255;
+
+     TInt reply = 0;
+     
+     
+     TPckg<TInt> replyPck( reply);
+
+     //activate active object
+     TRequestStatus status;
+     status = KRequestPending;
+     
+     //open ui
+     
+     notifier.StartNotifierAndGetResponse( status, KAccFwUiNoteNotifierUid, KNullDesC8, replyPck);
+     User::WaitForRequest( status);
+
+     notifier.Close();
+
+    return KErrNone;
+    }
+
+TInt CAccFwUiNotifierTestModule::TestUpdateNotifierL(CStifItemParser& /*aItem*/ )
+    {
+    RDebug::Print(_L("CAccFwUiNotifierTestModule::TestUpdateNotifierL"));
+    RNotifier notifier;
+    notifier.Connect();
+    //TInt selectionListBitmask = 255;
+    
+    TInt reply = 0;
+    
+    
+    TPckg<TInt> replyPck( reply);
+    
+    //activate active object
+    TRequestStatus status;
+    status = KRequestPending;
+    
+    //open ui
+    
+    notifier.StartNotifierAndGetResponse( status, KAccFwUiNoteNotifierUid, KNullDesC8, replyPck);
+    User::WaitForRequest( status);
+    
+    TBuf8<1> answer;
+    TInt err = notifier.UpdateNotifier(KAccFwUiNoteNotifierUid, KNullDesC8, answer);
+    if (err)
+        {
+        TBuf<4> error;
+        error.Zero();
+        error.AppendNum(err);
+        //CEikonEnv::InfoWinL(_L("Error:"), error);
+        }
+
+    User::WaitForRequest( status);
+    
+    notifier.Close();
+
+    return KErrNone;
+    }
+
+TInt CAccFwUiNotifierTestModule::TestStartNotifierL(CStifItemParser& /*aItem*/ )
+    {
+    RDebug::Print(_L("CAccFwUiNotifierTestModule::TestStart2L-enter"));
+    const TInt KGeneralBufferLength = 32;
+    
+    TBuf8<KGeneralBufferLength> responseBuffer;
+     
+     RNotifier notifier;
+     User::LeaveIfError( notifier.Connect() );
+     
+     //Call Info() function.
+     notifier.StartNotifier( KAccFwUiNoteNotifierUid,KNullDesC8, responseBuffer);
+     
+     notifier.Close();
+
+    
+    return KErrNone;
+    }
+
+// ========================== OTHER EXPORTED FUNCTIONS =========================
+
+// -----------------------------------------------------------------------------
+// LibEntryL is a polymorphic Dll entry point.
+// Returns: CScriptBase: New CScriptBase derived object
+// -----------------------------------------------------------------------------
+//
+EXPORT_C CScriptBase* LibEntryL( 
+    CTestModuleIf& aTestModuleIf ) // Backpointer to STIF Test Framework
+    {
+
+    return ( CScriptBase* ) CAccFwUiNotifierTestModule::NewL( aTestModuleIf );
+
+    }
+
+// End of File
--- a/coreapplicationuis/advancedtspcontroller/inc/tsptriggerevents.h	Wed Sep 29 15:24:56 2010 +0300
+++ b/coreapplicationuis/advancedtspcontroller/inc/tsptriggerevents.h	Thu Oct 07 06:25:45 2010 +0300
@@ -14,6 +14,9 @@
 * Description: Observes changes in the default player that should be used for a bearer
 */
 
+#ifndef TSPTRIGGEREVENTS_H
+#define TSPTRIGGEREVENTS_H
+
 #include <e32base.h>
 #include <e32property.h>
 #include <w32std.h>
@@ -102,3 +105,4 @@
     CTspClientMapperObserver* iClientMapperObserver;
     };
 
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/advancedtspcontroller/tsrc/testtspcontroller/group/bld.inf	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,15 @@
+/*
+============================================================================
+ Name		: bld.inf
+ Author	  : 
+ Copyright   : Your copyright notice
+ Description : This file provides the information required for building the
+				whole of a testtspcontroller.
+============================================================================
+*/
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_MMPFILES
+testtspcontroller.mmp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/advancedtspcontroller/tsrc/testtspcontroller/group/ctc2result.bat	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,3 @@
+ctc2dat -i ctcdata.txt
+ctcpost -p profile.txt
+ctc2html -i profile.txt
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/advancedtspcontroller/tsrc/testtspcontroller/group/testtspcontroller.mmp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,49 @@
+/*
+============================================================================
+ Name		: testtspcontroller.mmp
+ Author	  : 
+ Copyright   : Your copyright notice
+ Description : This is the project specification file for testtspcontroller.
+============================================================================
+*/
+
+TARGET		  testtspcontroller.exe
+TARGETTYPE	  exe
+UID			 0 0x2002CAD1
+
+USERINCLUDE	 ..\inc
+USERINCLUDE	 ..\..\..\inc
+SYSTEMINCLUDE   \epoc32\include
+MW_LAYER_SYSTEMINCLUDE
+OS_LAYER_SYSTEMINCLUDE
+SYSTEMINCLUDE   /epoc32/include/mmf/common
+
+SOURCEPATH	  ..\src
+SOURCE		  testtspcontroller.cpp 
+SOURCE		  mockcfactionindicationimpl.cpp 
+SOURCE		  mockremconidlelistener.cpp 
+SOURCE		  mockremcontspobserver.cpp 
+
+SOURCEPATH	  ..\..\..\src
+SOURCE		  remconeventtable.cpp 
+SOURCE		  remcontspcontroller.cpp 
+SOURCE		  tsptriggerevents.cpp
+
+LIBRARY		 	euser.lib
+LIBRARY         c32.lib 
+LIBRARY         cone.lib
+LIBRARY         apparc.lib
+LIBRARY         remcontargetselectorplugin.lib
+LIBRARY         remcontypes.lib
+LIBRARY         cfclient.lib
+LIBRARY         cfservices.lib
+LIBRARY         ws32.lib
+LIBRARY         apgrfx.lib
+LIBRARY         tspclientmapper.lib
+LIBRARY         stiftestengine.lib
+LIBRARY         stiftestinterface.lib
+
+//LIBRARY         ctcrts.lib
+#ifdef ENABLE_ABIV2_MODE
+DEBUGGABLE_UDEBONLY
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/advancedtspcontroller/tsrc/testtspcontroller/inc/RemConDebug.h	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,258 @@
+/*
+* 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:  Macro definitions for tracing and debugging purposes.
+*
+*/
+
+
+#ifndef REMCONDEBUG_H
+#define REMCONDEBUG_H
+
+#ifdef _DEBUG
+
+// INCLUDES
+#include <e32svr.h>
+
+// CONSTANTS
+_LIT( KComponent, "[ACCREMCON]" );
+_LIT( KThisFile,  "[ACCREMCON] - Trace this file: %s, line: %d, compiled: %s %s" );
+_LIT( KAssertion, "[ACCREMCON] - Assertion failed: File: %s, line: %d, compiled: %s %s" );
+_LIT( KPanic,     "[ACCREMCON] - Panic occurred: File: %s, line: %d, compiled: %s %s" );
+_LIT( KMystic,    "[ACCREMCON] - Mystic failure: File: %s, line: %d, compiled: %s %s" );
+_LIT8( KDATE, __DATE__ );
+_LIT8( KTIME, __TIME__ );
+
+const TInt KTraceMaxSize = 256;
+
+// DATA TYPES
+enum TTraceType
+    {
+    ETraceInit,
+    ETraceAssert,
+    ETracePanic
+    };
+
+// INLINE FUNCTIONS
+
+    // -----------------------------------------------------------------------------
+    // ThisFileFunc
+    // -----------------------------------------------------------------------------
+    inline void ThisFileFunc( const TDesC8& aFile,
+                              TInt aLine,
+                              TTraceType aType = ETraceInit )
+        {
+        HBufC* fileBuf = HBufC::New( aFile.Length() + 1 );
+        HBufC* dateBuf = HBufC::New( 32 );
+        HBufC* timeBuf = HBufC::New( 32 );
+
+        if ( fileBuf != NULL && dateBuf != NULL && timeBuf != NULL )
+            {
+            fileBuf->Des().Copy( aFile );
+            timeBuf->Des().Copy( KTIME );
+            dateBuf->Des().Copy( KDATE );
+
+            if ( aType == ETraceInit )
+                {
+                RDebug::Print( KThisFile,
+                               fileBuf->Des().PtrZ(),
+                               aLine,
+                               dateBuf->Des().PtrZ(),
+                               timeBuf->Des().PtrZ() );
+                }
+
+            else if ( aType == ETraceAssert )
+                {
+                RDebug::Print( KAssertion,
+                               fileBuf->Des().PtrZ(),
+                               aLine,
+                               dateBuf->Des().PtrZ(),
+                               timeBuf->Des().PtrZ() );
+                }
+
+            else if ( aType == ETracePanic )
+                {
+                RDebug::Print( KPanic,
+                               fileBuf->Des().PtrZ(),
+                               aLine,
+                               dateBuf->Des().PtrZ(),
+                               timeBuf->Des().PtrZ() );
+                }
+
+            else
+                {
+                RDebug::Print( KMystic,
+                               fileBuf->Des().PtrZ(),
+                               aLine,
+                               dateBuf->Des().PtrZ(),
+                               timeBuf->Des().PtrZ() );
+                }
+            }
+
+        else
+            {
+            RDebug::Print( _L( "Assertion and memory allocation failed!" ) );
+            }
+
+        delete fileBuf;
+        delete dateBuf;
+        delete timeBuf;
+        }
+
+    // -----------------------------------------------------------------------------
+    // TraceAssertFunc
+    // -----------------------------------------------------------------------------
+    inline void TraceAssertFunc( const TDesC8& aFile, TInt aLine )
+        {
+        ThisFileFunc( aFile, aLine, ETraceAssert );
+        }
+
+    // -----------------------------------------------------------------------------
+    // TracePanicFunc
+    // -----------------------------------------------------------------------------
+    inline void TracePanicFunc( const TDesC8& aFile, TInt aLine )
+        {
+        ThisFileFunc( aFile, aLine, ETracePanic );
+        User::Panic( KComponent, KErrGeneral );
+        }
+
+// MACROS
+    #define PANIC_IF_FALSE( a ) if ( !( a ) )\
+            TracePanicFunc( TPtrC8( ( TText8* ) __FILE__), __LINE__ )
+
+    #define PANIC_IF_TRUE( a ) if ( ( a ) )\
+            TracePanicFunc( TPtrC8( ( TText8* ) __FILE__), __LINE__ )
+
+    #define PANIC_ALWAYS\
+            TracePanicFunc( TPtrC8( ( TText8* ) __FILE__), __LINE__ )
+
+    // -----------------------------------------------------------------------------
+    // COMPONENT_TRACE_FLAG
+    // -----------------------------------------------------------------------------
+    #ifdef COMPONENT_TRACE_FLAG
+
+        #define COMPONENT_TRACE_THIS_FILE\
+            ThisFileFunc( TPtrC8( ( TText8* ) __FILE__), __LINE__ )
+
+        #define COM_TRACE_( AAA ) do\
+            { _LIT( logStr, AAA ); RDebug::Print( logStr ); } while ( 0 )
+
+        #define COM_TRACE_1( AAA, BBB ) do\
+             { _LIT( logStr, AAA ); RDebug::Print( logStr, BBB ); } while ( 0 )
+
+        #define COM_TRACE_2( AAA, BBB, CCC ) do\
+             { _LIT( logStr, AAA ); RDebug::Print( logStr, BBB, CCC ); } while ( 0 )
+
+        #define COM_TRACE_3( AAA, BBB, CCC, DDD ) do\
+             { _LIT( logStr, AAA ); RDebug::Print( logStr, BBB, CCC, DDD ); } while ( 0 )
+
+        #define COM_TRACE_4( AAA, BBB, CCC, DDD, EEE ) do\
+             { _LIT( logStr, AAA ); RDebug::Print( logStr, BBB, CCC, DDD, EEE ); } while ( 0 )
+
+        #define COM_TRACE_RAW_( AAA ) do\
+            { RDebug::RawPrint( AAA ); } while ( 0 )
+            
+        #define COM_TRACE_RAW_1( AAA, BBB ) do\
+             { _LIT( logStr, AAA ); TBuf<KTraceMaxSize> buffer; buffer.Append( logStr ); buffer.Append( BBB );\
+             RDebug::RawPrint( buffer ); } while ( 0 )
+        
+    #else
+
+        #define COMPONENT_TRACE_THIS_FILE
+
+        #define COM_TRACE_( AAA )
+        #define COM_TRACE_1( AAA, BBB )
+        #define COM_TRACE_2( AAA, BBB, CCC )
+        #define COM_TRACE_3( AAA, BBB, CCC, DDD )
+        #define COM_TRACE_4( AAA, BBB, CCC, DDD, EEE )
+        #define COM_TRACE_RAW_( AAA )
+        #define COM_TRACE_RAW_1( AAA, BBB )
+
+    #endif // COMPONENT_TRACE_FLAG
+
+    #define TRACE_ASSERT( a ) if ( !( a ) )\
+            TraceAssertFunc( TPtrC8( ( TText8* ) __FILE__), __LINE__ )
+
+    #define TRACE_ASSERT_RETURN( a ) if ( !( ( a ) == KErrNone ) )\
+            TraceAssertFunc( TPtrC8( ( TText8* ) __FILE__), __LINE__ )
+
+    #define TRACE_ASSERT_ALWAYS\
+            TraceAssertFunc( TPtrC8( ( TText8* ) __FILE__ ), __LINE__ )
+
+    // -----------------------------------------------------------------------------
+    // API_TRACE_FLAG
+    // -----------------------------------------------------------------------------
+    #ifdef API_TRACE_FLAG
+
+        #define API_TRACE_( AAA ) do\
+            { _LIT( logStr, AAA ); RDebug::Print( logStr ); } while ( 0 )
+
+        #define API_TRACE_1( AAA, BBB ) do\
+             { _LIT( logStr, AAA ); RDebug::Print( logStr, BBB ); } while ( 0 )
+
+        #define API_TRACE_2( AAA, BBB, CCC ) do\
+             { _LIT( logStr, AAA ); RDebug::Print( logStr, BBB, CCC ); } while ( 0 )
+
+        #define API_TRACE_3( AAA, BBB, CCC, DDD ) do\
+             { _LIT( logStr, AAA ); RDebug::Print( logStr, BBB, CCC, DDD ); } while ( 0 )
+
+        #define API_TRACE_4( AAA, BBB, CCC, DDD, EEE ) do\
+             { _LIT( logStr, AAA ); RDebug::Print( logStr, BBB, CCC, DDD, EEE ); } while ( 0 )
+             
+        #define API_TRACE_RAW_1( AAA, BBB ) do\
+             { _LIT( logStr, AAA ); TBuf<KTraceMaxSize> buffer; buffer.Append( logStr ); buffer.Append( BBB );\
+             RDebug::RawPrint( buffer ); } while ( 0 )
+
+    #else
+
+        #define API_TRACE_( AAA )
+        #define API_TRACE_1( AAA, BBB )
+        #define API_TRACE_2( AAA, BBB, CCC )
+        #define API_TRACE_3( AAA, BBB, CCC, DDD )
+        #define API_TRACE_4( AAA, BBB, CCC, DDD, EEE )
+        #define API_TRACE_RAW_1( AAA, BBB )
+
+    #endif // API_TRACE_FLAG
+
+#else // _DEBUG
+
+    #define TRACE_ASSERT( a )
+    #define TRACE_ASSERT_RETURN( a ) a
+    #define TRACE_ASSERT_ALWAYS
+
+    #define COM_TRACE_( AAA )
+    #define COM_TRACE_1( AAA, BBB )
+    #define COM_TRACE_2( AAA, BBB, CCC )
+    #define COM_TRACE_3( AAA, BBB, CCC, DDD )
+    #define COM_TRACE_4( AAA, BBB, CCC, DDD, EEE )
+    #define COM_TRACE_RAW_( AAA )
+    #define COM_TRACE_RAW_1( AAA, BBB )
+
+    #define API_TRACE_( AAA )
+    #define API_TRACE_1( AAA, BBB )
+    #define API_TRACE_2( AAA, BBB, CCC )
+    #define API_TRACE_3( AAA, BBB, CCC, DDD )
+    #define API_TRACE_4( AAA, BBB, CCC, DDD, EEE )
+    #define API_TRACE_RAW_1( AAA, BBB )
+
+    #define COMPONENT_TRACE_THIS_FILE
+
+    #define PANIC_IF_FALSE( a )
+    #define PANIC_IF_TRUE( a )
+    #define PANIC_ALWAYS
+
+#endif // _DEBUG
+
+#endif // REMCONDEBUG_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/advancedtspcontroller/tsrc/testtspcontroller/inc/mockcfactionindicationimpl.h	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,53 @@
+
+
+#ifndef MOCKCFACTIONINDICATIONIMPL_H
+#define MOCKCFACTIONINDICATIONIMPL_H
+
+#include <cfactionindication.h>
+#include <cfkeyvaluepair.h>
+
+/**
+* Action indication implementation.
+* 
+* @since S60 5.0
+* @lib cfservices.lib
+*/
+NONSHARABLE_CLASS( CMockCFActionIndicationImpl ): public CCFActionIndication
+    {
+    public:
+
+        // Two phased constructors
+        IMPORT_C static CMockCFActionIndicationImpl* NewL ();
+        IMPORT_C static CMockCFActionIndicationImpl* NewLC ();
+        
+        // Destructor
+        ~CMockCFActionIndicationImpl();
+
+    public: // From base classes
+    
+        // From CCFActionIndication
+        void SetIdentifierL( const TDesC& aIdentifier );
+
+        // From CCFActionIndication
+        const TDesC& Identifier() const;
+        
+        // From CCFActionIndication
+        void AddParameterL( const TDesC& aKey, const TDesC& aValue );
+        
+        // From CCFActionIndication    
+        const RKeyValueArray& Parameters() const;
+
+    private:
+    
+        CMockCFActionIndicationImpl();
+        void ConstructL();
+
+    private: // Data
+    
+        // Own: Parameters
+        RKeyValueArray iParameters;
+
+        // Own: Identifier
+        HBufC* iIdentifier;
+    };
+#endif  //MOCKCFACTIONINDICATIONIMPL_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/advancedtspcontroller/tsrc/testtspcontroller/inc/mockremcontspobserver.h	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,64 @@
+/*
+ * MockRemConTSPObserver.h
+ *
+ *  Created on: 21.7.2010
+ *      Author: tongsun
+ */
+
+#ifndef MOCKREMCONTSPOBSERVER_H
+#define MOCKREMCONTSPOBSERVER_H
+
+#include <e32base.h>
+#include <remcon/remcontargetselectorpluginobserver.h>
+
+
+// CLASS DEFINITION
+/**
+ * Unit test mock class.
+ */
+NONSHARABLE_CLASS(CMockRemConTSPObserver) 
+    : public MRemConTargetSelectorPluginObserver //,public MCFListener
+    {
+public:          
+        // Constructors and destructor
+        static CMockRemConTSPObserver* NewL();
+        static CMockRemConTSPObserver* NewLC();
+        ~CMockRemConTSPObserver();
+
+        // from MRemConTargetSelectorPluginObserver
+        void OutgoingCommandAddressed(TInt aError) ;
+        void OutgoingCommandPermitted(TBool aIsPermitted);
+        void IncomingCommandAddressed(TInt aError);
+        void OutgoingResponsePermitted(TBool aIsPermitted) ;
+        void IncomingNotifyAddressed(TClientInfo* aClientInfo, TInt aError); 
+        void ReAddressNotifies() ;
+        TInt GetConnections(TSglQue<TRemConAddress>& aConnections) ;
+public:
+        TInt Response();
+        void SetResponse(TInt aValue) ;
+        TUid BearerUid() {return iBearerUid;}
+        TClientInfo ClientInfo() {return iClientInfo; }
+private:
+        virtual void MrctspoDoOutgoingCommandAddressed(TInt aError);
+        virtual void MrctspoDoOutgoingCommandPermitted(TBool /*aIsPermitted*/) ;
+        virtual void MrctspoDoIncomingCommandAddressed(TInt aError );
+        virtual TInt MrctspoDoGetConnections(TSglQue<TRemConAddress>& /*aConnections*/) ;
+        virtual void MrctspoDoOutgoingResponsePermitted(TBool /*aIsPermitted*/);
+        virtual void MrctspoDoIncomingNotifyAddressed(TClientInfo* /*aClientInfo*/, TInt aError );
+        virtual void MrctspoDoReAddressNotifies() ;
+
+        virtual void MrctspoDoOutgoingNotifyCommandAddressed(TRemConAddress* aConnection, TInt aError);        
+        virtual void MrctspoDoOutgoingNotifyCommandPermitted(TBool aIsPermitted) ;
+        virtual void MrctspoDoIncomingCommandPermitted(TBool aIsPermitted) ;
+        virtual void MrctspoDoIncomingNotifyPermitted(TBool aIsPermitted) ;
+        virtual TInt MrctspoSetLocalAddressedClient(const TUid& aBearerUid, const TClientInfo& aClientInfo) ;
+
+    private: // Constructors
+        CMockRemConTSPObserver();
+        void ConstructL();
+    private:
+        TInt iObserverResponse;
+        TUid iBearerUid;
+        TClientInfo iClientInfo;
+    };
+#endif  //MOCKREMCONTSPOBSERVER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/advancedtspcontroller/tsrc/testtspcontroller/inc/testtspcontroller.h	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,22 @@
+/*
+ ============================================================================
+ Name		: testtspcontroller.h
+ Author	  : 
+ Copyright   : Your copyright notice
+ Description : Exe header file
+ ============================================================================
+ */
+
+#ifndef __TESTTSPCONTROLLER_H__
+#define __TESTTSPCONTROLLER_H__
+
+//  Include Files
+
+#include <e32base.h>
+
+//  Function Prototypes
+
+GLDEF_C TInt E32Main();
+
+#endif  // __TESTTSPCONTROLLER_H__
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/advancedtspcontroller/tsrc/testtspcontroller/sis/testtspcontroller_EKA2.pkg	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,24 @@
+; Installation file for Symbian OS 9.x for generic console application
+; Installation file for testtspcontroller EXE
+;
+; This is an auto-generated PKG file by Carbide.
+; This file uses variables specific to Carbide builds that will not work
+; on command-line builds. If you want to use this generated PKG file from the
+; command-line tools you will need to modify the variables with the appropriate
+; values: $(EPOCROOT), $(PLATFORM), $(TARGET)
+;
+
+;
+; UID is the exe's UID
+;
+#{"testtspcontroller EXE"},(0xE7DE3189),1,0,0
+
+
+;Localised Vendor name
+%{"Vendor-EN"}
+
+;Unique Vendor name
+:"Vendor"
+
+"$(EPOCROOT)Epoc32\release\$(PLATFORM)\$(TARGET)\testtspcontroller.exe"		  -"!:\sys\bin\testtspcontroller.exe"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/advancedtspcontroller/tsrc/testtspcontroller/src/mockcfactionindicationimpl.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,96 @@
+
+#include "mockcfactionindicationimpl.h"
+
+EXPORT_C CMockCFActionIndicationImpl* CMockCFActionIndicationImpl::NewL()
+    {
+    
+    CMockCFActionIndicationImpl* self = CMockCFActionIndicationImpl::NewLC();
+    CleanupStack::Pop( self );
+    
+    return self;
+    }
+
+EXPORT_C CMockCFActionIndicationImpl* CMockCFActionIndicationImpl::NewLC()
+    {
+    
+    CMockCFActionIndicationImpl* self = new( ELeave ) CMockCFActionIndicationImpl;
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    
+    return self;
+    }
+
+CMockCFActionIndicationImpl::~CMockCFActionIndicationImpl()
+    {
+    
+    delete iIdentifier;
+    iParameters.ResetAndDestroy();
+    }
+    
+CMockCFActionIndicationImpl::CMockCFActionIndicationImpl()
+    {
+    }
+    
+void CMockCFActionIndicationImpl::ConstructL()
+    {
+    
+    iIdentifier = KNullDesC().AllocL();
+    }
+    
+// METHODS
+
+//-----------------------------------------------------------------------------
+// CCFActionIndicationImpl::SetIdentifierL
+//-----------------------------------------------------------------------------
+//
+void CMockCFActionIndicationImpl::SetIdentifierL(
+    const TDesC& aIdentifier )
+    {
+    
+    TPtr identifierPtr = iIdentifier->Des();
+    if( identifierPtr.MaxLength() >= aIdentifier.Length() )
+        {
+        // Just copy
+        identifierPtr.Copy( aIdentifier );
+        }
+    else
+        {
+        // Delete and create a new one
+        delete iIdentifier;
+        iIdentifier = NULL;
+        iIdentifier = aIdentifier.AllocL();
+        }
+    }
+
+//-----------------------------------------------------------------------------
+// CCFActionIndicationImpl::Identifier
+//-----------------------------------------------------------------------------
+//
+const TDesC& CMockCFActionIndicationImpl::Identifier() const
+    {
+    
+    return *iIdentifier;
+    }
+
+//-----------------------------------------------------------------------------
+// CCFActionIndicationImpl::AddParameterL
+//-----------------------------------------------------------------------------
+//
+void CMockCFActionIndicationImpl::AddParameterL( const TDesC& aKey,
+    const TDesC& aValue )
+    {
+    
+    CCFKeyValuePair* obj = CCFKeyValuePair::NewLC( aKey, aValue );
+    iParameters.AppendL( obj );
+    CleanupStack::Pop( obj );
+    }
+
+//-----------------------------------------------------------------------------
+// CCFActionIndicationImpl::Parameters
+//-----------------------------------------------------------------------------
+//
+const RKeyValueArray& CMockCFActionIndicationImpl::Parameters() const
+    {
+    return iParameters;
+    }
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/advancedtspcontroller/tsrc/testtspcontroller/src/mockremconidlelistener.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,244 @@
+/*
+* 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:  Idle state listener
+*
+*/
+
+
+// INCLUDE FILES
+#include "remconidlelistener.h"
+#include "RemConDebug.h"
+#include "remcontspcontroller.h"
+
+// EXTERNAL DATA STRUCTURES
+
+// EXTERNAL FUNCTION PROTOTYPES
+
+// CONSTANTS
+
+// MACROS
+
+// LOCAL CONSTANTS AND MACROS
+
+// MODULE DATA STRUCTURES
+
+// LOCAL FUNCTION PROTOTYPES
+
+// FORWARD DECLARATIONS
+
+// ============================= LOCAL FUNCTIONS ===============================
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CRemConIdleListener::~CRemConIdleListener
+// -----------------------------------------------------------------------------
+//
+CRemConIdleListener::~CRemConIdleListener()
+    {
+    /*
+    COM_TRACE_( "[REMCONTSPCONTROLLER] CRemConIdleListener::~CRemConIdleListener()" );
+
+    Cancel();
+    iProperty.Close();
+    delete iPeriodic;
+    if ( iDeleteInd ) // Update delete indicator
+        {
+        *iDeleteInd = ETrue;
+        }
+
+    COM_TRACE_( "[REMCONTSPCONTROLLER] CRemConIdleListener::~CRemConIdleListener() - return" );
+    */
+    }
+
+// -----------------------------------------------------------------------------
+// CRemConIdleListener::CRemConIdleListener
+// -----------------------------------------------------------------------------
+//
+CRemConIdleListener::CRemConIdleListener( CRemConTspController& aController )
+    : CActive ( EPriorityNormal ),
+      iController( aController )
+    {
+    COM_TRACE_( "[REMCONTSPCONTROLLER] CRemConIdleListener::CRemConIdleListener()" );
+    }
+
+// -----------------------------------------------------------------------------
+// CRemConIdleListener::ConstructL
+// Symbian 2nd phase constructor can leave.
+// -----------------------------------------------------------------------------
+//
+void CRemConIdleListener::ConstructL()
+    {
+    /*
+    COM_TRACE_( "[REMCONTSPCONTROLLER] CRemConIdleListener::ConstructL()" );
+
+    CActiveScheduler::Add( this );
+    User::LeaveIfError( iProperty.Attach( KPSUidStartup,
+                        KPSIdlePhase1Ok ) );                  
+    RunL(); // Start listening
+
+    COM_TRACE_( "[REMCONTSPCONTROLLER] CRemConIdleListener::ConstructL() - return void" );
+    */
+    }
+
+// -----------------------------------------------------------------------------
+// CRemConIdleListener::NewL
+// Symbian 2nd phase constructor can leave.
+// -----------------------------------------------------------------------------
+//
+CRemConIdleListener* CRemConIdleListener::NewL( CRemConTspController& aController )
+    {
+    COM_TRACE_( "[REMCONTSPCONTROLLER] CRemConIdleListener::NewL()" );
+
+    CRemConIdleListener * self = new ( ELeave ) CRemConIdleListener( aController );
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop( self );
+
+    COM_TRACE_( "[REMCONTSPCONTROLLER] CRemConIdleListener::NewL() - return void" );
+    return self;
+    }
+
+// -----------------------------------------------------------------------------
+// CRemConIdleListener::RetryCB()
+// 
+// -----------------------------------------------------------------------------
+//
+TInt CRemConIdleListener::RetryCB( TAny* aPtr )
+    {   
+    /*
+    COM_TRACE_( "[REMCONTSPCONTROLLER] CRemConIdleListener::RetryCB()" );
+
+    static_cast<CRemConIdleListener*>( aPtr )->CreateController();
+
+    COM_TRACE_( "[REMCONTSPCONTROLLER] CRemConIdleListener::RetryCB() - return" );
+    */
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CRemConIdleListener::CreateController()
+// 
+// -----------------------------------------------------------------------------
+//
+void CRemConIdleListener::CreateController()
+    {
+    /*
+    COM_TRACE_( "[REMCONTSPCONTROLLER] CRemConIdleListener::CreateController()" );
+
+    // Setup delete indicator to detect listener deletion from controller and try to create
+    TBool deleteInd( EFalse );
+    iDeleteInd = &deleteInd;
+    TRAPD( err, iController.CreateAfterIdleL() );
+    COM_TRACE_1( "[REMCONTSPCONTROLLER] CRemConIdleListener::CreateController() - Create err=%d", err );
+
+    if ( !deleteInd )
+        {
+        iDeleteInd = NULL; // Reset delete indicator
+        if ( err == KErrNone )
+            {
+            // Stop retry callback on success
+            delete iPeriodic;
+            iPeriodic = NULL;
+            }
+        else if ( !iPeriodic )
+            {
+            // Start retry callback on error
+            iPeriodic = CPeriodic::New( CActive::EPriorityStandard );
+            if( iPeriodic )
+                {
+                iPeriodic->Start( KRetryInterval, KRetryInterval, TCallBack( RetryCB, this ) );
+                }
+            else
+                {
+                COM_TRACE_( "[REMCONTSPCONTROLLER] CRemConIdleListener::CreateController() - Retry out of memory" );
+                }
+            }
+        if ( iPeriodic )
+            {
+            COM_TRACE_1( "[REMCONTSPCONTROLLER] CRemConIdleListener::CreateController() - Retry after %d us",
+                KRetryInterval );
+            }
+        }
+
+    COM_TRACE_( "[REMCONTSPCONTROLLER] CRemConIdleListener::CreateController() - return" );
+    */
+    }
+
+// -----------------------------------------------------------------------------
+// CRemConIdleListener::DoCancel()
+// 
+// -----------------------------------------------------------------------------
+//
+void CRemConIdleListener::DoCancel()
+    {
+    /*
+    COM_TRACE_( "[REMCONTSPCONTROLLER] CRemConIdleListener::DoCancel()" );
+
+    iProperty.Cancel();
+
+    COM_TRACE_( "[REMCONTSPCONTROLLER] CRemConIdleListener::DoCancel() - return void" );
+    */
+    }
+
+// -----------------------------------------------------------------------------
+// CRemConIdleListener::RunL()
+// 
+// -----------------------------------------------------------------------------
+//
+void CRemConIdleListener::RunL()
+    {
+    /*
+    COM_TRACE_( "[REMCONTSPCONTROLLER] CRemConIdleListener::RunL()" );
+
+    iProperty.Subscribe( iStatus );
+    TInt value( 0 );
+    TInt err( iProperty.Get( value ) );
+    COM_TRACE_1( "[REMCONTSPCONTROLLER] CRemConIdleListener::RunL() - Value err", err );
+    SetActive();
+
+    if ( err == KErrNone && value == EIdlePhase1Ok )
+        {
+        // Cancel listening and create controller
+        COM_TRACE_( "[REMCONTSPCONTROLLER] CRemConIdleListener::RunL() - Idle detected!" );
+        Cancel();
+        CreateController();
+        }
+    else
+        {
+        // Listening continues 
+        COM_TRACE_( "[REMCONTSPCONTROLLER] CRemConIdleListener::RunL() - No idle detected, subscribe and wait idle key" );
+        }
+
+    COM_TRACE_( "[REMCONTSPCONTROLLER] CRemConIdleListener::RunL() - return void" );    
+    */
+    }
+
+// -----------------------------------------------------------------------------
+// CRemConIdleListener::RunError
+// Handle error in RunL
+// -----------------------------------------------------------------------------
+//
+#ifdef _DEBUG
+TInt CRemConIdleListener::RunError(TInt aError)
+#else
+TInt CRemConIdleListener::RunError(TInt /*aError*/)
+#endif
+    {
+    COM_TRACE_1( "[REMCONTSPCONTROLLER] CRemConIdleListener::RunError(%d)", aError );        
+    // Error occurred while trying to communicate with context framework.    
+    // Return KErrNone to avoid panic.
+    return KErrNone;
+    }   
+// End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/advancedtspcontroller/tsrc/testtspcontroller/src/mockremcontspobserver.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,124 @@
+
+#include <e32base.h>
+#include <remcon/clientinfo.h>
+#include "mockremcontspobserver.h"
+
+CMockRemConTSPObserver* CMockRemConTSPObserver::NewL()
+    {
+    CMockRemConTSPObserver * self = new ( ELeave ) CMockRemConTSPObserver( );
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop( self );
+    return self;
+    }
+CMockRemConTSPObserver::~CMockRemConTSPObserver()
+    {
+    
+    }
+CMockRemConTSPObserver::CMockRemConTSPObserver()
+    {
+    
+    }
+void CMockRemConTSPObserver::ConstructL()
+    {
+    
+
+    }
+
+TInt CMockRemConTSPObserver::Response()
+    {return iObserverResponse; } 
+
+void CMockRemConTSPObserver::SetResponse(TInt aValue) 
+    { iObserverResponse = aValue; }
+
+
+void CMockRemConTSPObserver::MrctspoDoOutgoingCommandAddressed(TInt aError) 
+    { 
+    iObserverResponse = aError; 
+    }
+void CMockRemConTSPObserver::MrctspoDoOutgoingCommandPermitted(TBool aIsPermitted) 
+    {
+    if( aIsPermitted )
+        {
+        iObserverResponse = KErrNone;
+        }
+    else
+        {
+        iObserverResponse = KErrNotFound;
+        }
+    }
+void CMockRemConTSPObserver::MrctspoDoIncomingCommandAddressed(TInt aError ) 
+    { 
+    iObserverResponse = aError;
+    }
+TInt CMockRemConTSPObserver::MrctspoDoGetConnections(TSglQue<TRemConAddress>& /*aConnections*/) 
+    { return 0; }
+void CMockRemConTSPObserver::MrctspoDoOutgoingResponsePermitted(TBool aIsPermitted)
+    {
+    if( aIsPermitted )
+        {
+        iObserverResponse = KErrNone; 
+        }
+    else
+        {
+        iObserverResponse = KErrNotFound;
+        }
+    }
+void CMockRemConTSPObserver::MrctspoDoIncomingNotifyAddressed(TClientInfo* aClientInfo, TInt aError )
+    {
+    iObserverResponse = aError;
+    if( aClientInfo )
+        {
+        iClientInfo = *aClientInfo; 
+        }
+    else
+        {
+        iClientInfo.SecureId().iId = 0;
+        }
+    }
+void CMockRemConTSPObserver::MrctspoDoReAddressNotifies() 
+    {}
+
+void CMockRemConTSPObserver::MrctspoDoOutgoingNotifyCommandAddressed(TRemConAddress* aConnection, TInt aError)
+    {}        
+void CMockRemConTSPObserver::MrctspoDoOutgoingNotifyCommandPermitted(TBool aIsPermitted) 
+    {
+    if( aIsPermitted )
+        {
+        iObserverResponse = KErrNone; 
+        }
+    else
+        {
+        iObserverResponse = KErrNotFound;
+        }
+    }
+void CMockRemConTSPObserver::MrctspoDoIncomingCommandPermitted(TBool aIsPermitted) 
+    {
+    if( aIsPermitted )
+        {
+        iObserverResponse = KErrNone; 
+        }
+    else
+        {
+        iObserverResponse = KErrNotFound;
+        }
+    }
+void CMockRemConTSPObserver::MrctspoDoIncomingNotifyPermitted(TBool aIsPermitted) 
+    {
+    if( aIsPermitted )
+        {
+        iObserverResponse = KErrNone; 
+        }
+    else
+        {
+        iObserverResponse = KErrNotFound;
+        }
+    }
+TInt CMockRemConTSPObserver::MrctspoSetLocalAddressedClient(const TUid& aBearerUid, const TClientInfo& aClientInfo) 
+    {
+    iObserverResponse = KErrNone;
+    iBearerUid = aBearerUid;
+    iClientInfo = aClientInfo;
+    return KErrNone;
+    }
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/advancedtspcontroller/tsrc/testtspcontroller/src/testtspcontroller.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,735 @@
+/*
+ ============================================================================
+ Name		: testtspcontroller.cpp
+ Author	  : 
+ Copyright   : Your copyright notice
+ Description : Exe source file
+ ============================================================================
+ */
+
+//  Include Files  
+
+#include "testtspcontroller.h"
+#include <e32base.h>
+#include <e32std.h>
+#include <e32cons.h>			// Console
+#include <apgtask.h>
+
+#include <e32math.h>
+#include <remconcoreapi.h>
+#include <tspclientmapper.h>
+#include <absolutevolumeapi.h>
+#include <remcon/bearersecurity.h>
+#include <remconaddress.h>
+
+#include <StifLogger.h>
+
+#include "remcontspcontroller.h"
+#include "mockremcontspobserver.h"
+#include "mockcfactionindicationimpl.h"
+
+#define RUN_TEST_CASE(_tt, _tp, tf) \
+{\
+    _tt++;                  \
+    if( KErrNone==tf )      \
+        _tp++;              \
+}        
+
+//  Constants
+const TUint32 KUid3BTAudioMan = 0x10208971;
+
+_LIT(KTextConsoleTitle, "Console");
+_LIT(KTextFailed, " failed, leave code = %d");
+_LIT(KTextPressAnyKey, " [press any key]\n");
+
+// constant for stif log
+// Logging path
+_LIT( KutremcontspcontrollerLogPath, "\\logs\\testframework\\" ); 
+// Log file
+_LIT( KutremcontspcontrollerLogFile, "testtspcontroller.txt" ); 
+//_LIT( KutremcontspcontrollerLogFileWithTitle, "testtspcontroller_[%S].txt" );
+
+_LIT(KTTestNumberStart, "Test%d start. \n");
+_LIT(KTTestNumberPassed, "Test%d passed. \n");
+
+// literal constants for set event table
+_LIT( KTsp, "Tsp" );    
+_LIT( KRoutingTable, "routingTable" );
+/*
+_LIT( KRemConKeyEvent, "keyEventRemCon*" );
+_LIT( KRemConKeyEventExt, "keyEventRemConExt*" );
+_LIT( KRemConKeyEventExtCall, "keyEventRemConExtCall*" );
+_LIT( KRemConKeyEventExtPoc, "keyEventRemConExtPoc*" );
+_LIT( KRemConKeyEventExtSync, "keyEventRemConExtSync*" );
+_LIT( KRuleText, "rule*" );
+_LIT( KDefaultAppText, "defaultApplication*" );
+_LIT( KTransparentAppText, "transparentApplication*" );
+_LIT( KRemoveRoutingTable, "removeRoutingTable" );
+_LIT( KDefaultLaunchAppText, "defaultLaunchApp*" );
+_LIT( KStoreRoutingTable, "storeRoutingTable" );
+_LIT( KRestoreRoutingTable, "restoreRoutingTable" );
+*/
+//  Global Variables
+
+LOCAL_D CConsoleBase* console; // write all messages to this
+
+// stif logger pointer
+CStifLogger* stifLog;
+// variables for all test cases
+CMockRemConTSPObserver* mockObserver(NULL);
+CRemConTspController* remconTspController(NULL);
+MCFListener* cfListener(NULL);
+TSglQue<TClientInfo> clients;
+RProcess thisProc;
+TClientInfo thisClient;
+TProcessId fakeId( thisProc.Id() + 100 );
+TClientInfo fakeClient;
+TClientInfo anotherFakeClient;
+TClientInfo fakeClientPhone;
+TClientInfo fakeTransparentClient;
+TClientInfo* client(NULL);
+MRemConTargetSelectorPluginInterfaceV2* tspIf2(NULL);
+MRemConTargetSelectorPluginInterfaceV4* tspIf4(NULL);
+MRemConTargetSelectorPluginInterfaceV5* tspIf5(NULL);
+TInt err(KErrNone);    
+TInt testCasesTotal(0);
+TInt testCasesPassed(0);
+
+
+/** Rules assumed by this test suite. 
+<Tsp
+routingTable='01'
+keyEventRemConVolumeUp='41'
+keyEventRemConVolumeDown='42'
+/>
+
+<Tsp
+routingTable='01'
+ruleForeground='01'
+ruleActiveAudio='00'
+ruleLastPlayedAudio='03'
+ruleDefaultApp='02'
+defaultApplicationPhone='100058B3'
+/>
+                    
+<Tsp
+routingTable='09'
+keyEventRemConF4='74'            
+/>
+
+<Tsp
+routingTable='09'
+ruleDefaultLaunchApp='04'
+defaultLaunchApp='EFFFFFFF'
+/>
+*/
+
+LOCAL_C void TestSetupL()
+    {
+    _LIT(KSetupStart, "TestSetup start");
+    stifLog->Log(KSetupStart);
+
+    // create mock observer
+    mockObserver = CMockRemConTSPObserver::NewL();
+    // instantiate remote controller tsp controller
+    remconTspController = CRemConTspController::NewL(*mockObserver);
+    // get various interfaces for each test cases
+    CRemConTargetSelectorPlugin* tspp(remconTspController);
+    tspIf2 = static_cast<MRemConTargetSelectorPluginInterfaceV2*>( tspp->GetInterface( TUid::Uid( KRemConTargetSelectorInterface2 ) ) );
+    tspIf4 = static_cast<MRemConTargetSelectorPluginInterfaceV4*>( tspp->GetInterface( TUid::Uid( KRemConTargetSelectorInterface4 ) ) );
+    tspIf5 = static_cast<MRemConTargetSelectorPluginInterfaceV5*>( tspp->GetInterface( TUid::Uid( KRemConTargetSelectorInterface5 ) ) );
+       
+    // create action parameters according to test rule table, see comments for 
+    // event table before this function
+    CMockCFActionIndicationImpl* cfActInd(NULL);
+    cfActInd= CMockCFActionIndicationImpl::NewL();
+    CleanupStack::PushL(cfActInd);
+    
+    cfActInd->SetIdentifierL(KTsp);
+    
+    cfActInd->AddParameterL(KRoutingTable,_L("01"));
+    cfActInd->AddParameterL(_L("keyEventRemConVolumeUp"),_L("41"));
+    cfActInd->AddParameterL(_L("keyEventRemConVolumeDown"),_L("42"));
+    cfActInd->AddParameterL(_L("keyEventRemConPlay"),_L("44"));
+
+    cfActInd->AddParameterL(KRoutingTable,_L("01"));
+    cfActInd->AddParameterL(_L("ruleForeground"),_L("01"));
+    cfActInd->AddParameterL(_L("ruleActiveAudio"),_L("00"));
+    cfActInd->AddParameterL(_L("ruleLastPlayedAudio"),_L("03"));
+    cfActInd->AddParameterL(_L("ruleDefaultApp"),_L("02"));
+    cfActInd->AddParameterL(_L("defaultApplicationPhone"),_L("100058B3"));    
+    cfActInd->AddParameterL(_L("transparentApplication1"),_L("10005555"));
+        
+    cfActInd->AddParameterL(KRoutingTable,_L("09"));
+    cfActInd->AddParameterL(_L("keyEventRemConF4"),_L("74"));
+
+    cfActInd->AddParameterL(KRoutingTable,_L("09"));
+    cfActInd->AddParameterL(_L("ruleDefaultLaunchApp"),_L("04"));
+    cfActInd->AddParameterL(_L("defaultLaunchApp"),_L("EFFFFFFF"));
+    
+    // call ActionIndication through MCFListener interface
+    cfListener = static_cast<MCFListener*> (remconTspController);
+    cfListener->ActionIndicationL(*cfActInd);
+    CleanupStack::PopAndDestroy(cfActInd);
+
+    // itinilize all client for testing
+    thisClient.ProcessId() = thisProc.Id();
+    fakeClient.ProcessId() = fakeId.Id();
+    anotherFakeClient.ProcessId() = fakeId.Id() + 100;
+    fakeClientPhone.ProcessId() = fakeId.Id() + 200;
+    fakeClientPhone.SecureId() = TUid::Uid( 0x100058B3 );
+    fakeTransparentClient.ProcessId() = fakeId.Id() + 300;
+    fakeTransparentClient.SecureId() = TUid::Uid( 0x10005555 );    
+    }
+LOCAL_C void TestTearDown()
+    {
+    _LIT(KSetupStart, "TestTearDown start");
+    stifLog->Log(KSetupStart);
+    if ( remconTspController!=NULL )
+        {
+        delete remconTspController;
+        }
+    if ( mockObserver!=NULL )
+        {
+        delete mockObserver;
+        }    
+    }
+LOCAL_C TInt Test01()
+    {
+    stifLog->Log(KTTestNumberStart, 1);
+    console->Printf(KTTestNumberStart, 1);
+        
+    //1.Test the foreground application rule    
+    //Test the foreground application rule
+    clients.AddLast( thisClient );
+    clients.AddLast( fakeClient );
+    clients.AddLast( anotherFakeClient );
+    clients.AddLast( fakeClientPhone );
+    clients.AddLast( fakeTransparentClient );
+    
+    mockObserver->SetResponse(KErrGeneral);
+    tspIf2->AddressIncomingCommand( TUid::Uid(KRemConCoreApiUid), ERemConCoreApiVolumeUp, clients );    
+    
+    if( mockObserver->Response() == KErrGeneral)
+        {
+        stifLog->Log(_L("test case failed: MRemConTargetSelectorPluginObserver was not called\n"));
+        console->Printf(_L("test case failed: MRemConTargetSelectorPluginObserver was not called\n"));
+        return KErrGeneral;
+        }
+        
+    if( clients.IsEmpty() )
+        {
+        stifLog->Log(_L("test case failed: no client found and returned.\n"));
+        console->Printf(_L("test case failed: no client found and returned.\n"));
+        return KErrGeneral;
+        }
+    
+    client = clients.Last();
+    TClientInfo* clientFirst = clients.First();
+    
+    //RProcess currProc;    
+    //RThread thread;
+    //TInt err = thread.Open( ( TUint )RThread().Id(), EOwnerProcess );
+    if( (client->ProcessId() == thisProc.Id()) && 
+        (clientFirst->SecureId() == fakeTransparentClient.SecureId()))         
+        {
+        }
+    else if ( (clientFirst->ProcessId() == thisProc.Id()) && 
+            (client->SecureId() == fakeTransparentClient.SecureId()))
+        {
+        }
+    else
+        {
+        stifLog->Log(_L("test case failed: wrong client returned\n"));
+        console->Printf(_L("test case failed: wrong client returned\n"));
+        return KErrGeneral;
+        }
+    stifLog->Log(KTTestNumberPassed, 1);
+    console->Printf(KTTestNumberPassed,1);
+    return KErrNone;
+    }
+LOCAL_C TInt Test02()
+    {
+    stifLog->Log(KTTestNumberStart, 2);
+    console->Printf(KTTestNumberStart, 2);
+    // by now this function are empty, so call it here for just a coverage
+    cfListener->Extension(TUid::Uid(0));
+
+    stifLog->Log(KTTestNumberPassed, 2);
+    console->Printf(KTTestNumberPassed,2);
+    return KErrNone;
+    }
+LOCAL_C TInt Test03()
+    {
+    stifLog->Log(KTTestNumberStart, 3);
+    console->Printf(KTTestNumberStart, 3);
+    
+    // test 03
+    // 3. Test the active audio rule
+    // current process is not added to list because events must not fall to foreground application
+    clients.Reset();
+    clients.AddLast( fakeClient );
+    clients.AddLast( anotherFakeClient );
+    clients.AddLast( fakeClientPhone );
+    
+    CTspClientMapper* tspCm(NULL);
+    TRAP(err, tspCm = CTspClientMapper::NewL()); // register fake client to TSP client mapper, so it is considered as active audio
+    if( err!=KErrNone)
+        {
+        delete tspCm;
+        return KErrGeneral;
+        }
+    CleanupStack::PushL(tspCm);
+    tspCm->SetTspTargetClient( CTspClientMapper::EPlayingClients, fakeId );
+    mockObserver->SetResponse(KErrGeneral);
+
+    tspIf2->AddressIncomingCommand( TUid::Uid(KRemConCoreApiUid), ERemConCoreApiVolumeUp, clients );
+    tspCm->RemoveTspTargetClient( CTspClientMapper::EPlayingClients, fakeId );
+    CleanupStack::PopAndDestroy( tspCm );
+    
+    if( mockObserver->Response() == KErrGeneral)
+        {
+        stifLog->Log(_L("test case failed: MRemConTargetSelectorPluginObserver was not called\n"));
+        console->Printf(_L("test case failed: MRemConTargetSelectorPluginObserver was not called\n"));
+        return KErrGeneral;
+        }
+
+    if( clients.IsEmpty() )
+        {
+        stifLog->Log(_L("test case failed: no client found and returned.\n"));
+        console->Printf(_L("test case failed: no client found and returned.\n"));
+        return KErrGeneral;
+        }
+    client = clients.Last();
+    
+    if( client->ProcessId() != fakeId)
+        {
+        stifLog->Log(_L("test case failed: wrong client returned\n"));
+        console->Printf(_L("test case failed: wrong client returned\n"));
+        return KErrGeneral;
+        }
+    stifLog->Log(KTTestNumberPassed, 3);
+    console->Printf(KTTestNumberPassed,3);
+    return KErrNone;
+    }
+LOCAL_C TInt Test04()
+    {
+    stifLog->Log(KTTestNumberStart, 4);
+    console->Printf(KTTestNumberStart, 4);
+    // test 04
+    // 4. Test the last played application rule
+    clients.Reset();
+    clients.AddLast( anotherFakeClient );
+    clients.AddLast( fakeClient );
+    clients.AddLast( fakeClientPhone );
+
+    mockObserver->SetResponse(KErrGeneral);
+    tspIf2->AddressIncomingCommand( TUid::Uid(KRemConCoreApiUid), ERemConCoreApiVolumeUp, clients );
+    if( mockObserver->Response() == KErrGeneral)
+        {
+        stifLog->Log(_L("test case failed: MRemConTargetSelectorPluginObserver was not called\n"));
+        console->Printf(_L("test case failed: MRemConTargetSelectorPluginObserver was not called\n"));
+        return KErrGeneral;
+        }
+
+    if( clients.IsEmpty() )
+        {
+        stifLog->Log(_L("test case failed: no client found and returned.\n"));
+        console->Printf(_L("test case failed: no client found and returned.\n"));
+        return KErrGeneral;
+        }
+    client = clients.Last();
+    
+    if( client->ProcessId() != fakeId)
+        {
+        stifLog->Log(_L("test case failed: wrong client returned\n"));
+        console->Printf(_L("test case failed: wrong client returned\n"));
+        return KErrGeneral;
+        }
+    stifLog->Log(KTTestNumberPassed, 4);
+    console->Printf(KTTestNumberPassed,4);
+    return KErrNone;
+    }
+LOCAL_C TInt Test05()
+    {
+    stifLog->Log(KTTestNumberStart, 5);
+    console->Printf(KTTestNumberStart, 5);
+    // test 05    
+    // 5. Test the default application (=Phone) rule
+    // drop the 1st fake client so we won't fall to last played application rule
+    clients.Reset();
+    clients.AddLast( anotherFakeClient );
+    clients.AddLast( fakeClientPhone );
+
+    mockObserver->SetResponse(KErrGeneral);
+    tspIf2->AddressIncomingCommand( TUid::Uid(KRemConCoreApiUid), ERemConCoreApiVolumeUp, clients );
+            
+    if( mockObserver->Response() == KErrGeneral)
+        {
+        stifLog->Log(_L("test case failed: MRemConTargetSelectorPluginObserver was not called\n"));
+        console->Printf(_L("test case failed: MRemConTargetSelectorPluginObserver was not called\n"));
+        return KErrGeneral;
+        }
+
+    if( clients.IsEmpty() )
+        {
+        stifLog->Log(_L("test case failed: no client found and returned.\n"));
+        console->Printf(_L("test case failed: no client found and returned.\n"));
+        return KErrGeneral;
+        }
+    client = clients.Last();
+    if( client->ProcessId() != fakeClientPhone.ProcessId())
+        {
+        stifLog->Log(_L("test case failed: wrong client returned\n"));
+        console->Printf(_L("test case failed: wrong client returned\n"));
+        return KErrGeneral;
+        }
+    stifLog->Log(KTTestNumberPassed, 5);
+    console->Printf(KTTestNumberPassed,5);
+    return KErrNone;
+    }
+LOCAL_C TInt Test06()
+    {
+    stifLog->Log(KTTestNumberStart, 6);
+    console->Printf(KTTestNumberStart, 6);
+
+    // test 06
+    // 6. Test an key event that does not have a rule assigned to it
+    clients.Reset();
+    clients.AddLast( anotherFakeClient );
+    clients.AddLast( fakeClientPhone );
+    mockObserver->SetResponse(KErrGeneral);
+    tspIf2->AddressIncomingCommand( TUid::Uid(KRemConCoreApiUid), ERemConCoreApiF5, clients );
+    if( mockObserver->Response() == KErrGeneral)
+        {
+        stifLog->Log(_L("test case failed: MRemConTargetSelectorPluginObserver was not called\n"));
+        console->Printf(_L("test case failed: MRemConTargetSelectorPluginObserver was not called\n"));
+        return KErrGeneral;
+        }
+    
+    stifLog->Log(KTTestNumberPassed, 6);
+    console->Printf(KTTestNumberPassed,6);
+    return KErrNone;
+    }
+LOCAL_C TInt Test07()
+    {
+    stifLog->Log(KTTestNumberStart, 7);
+    console->Printf(KTTestNumberStart, 7);
+    // 7. Test a key event that attempts to launch an (non-existing) application
+    clients.Reset();
+    clients.AddLast( anotherFakeClient );
+    clients.AddLast( fakeClientPhone );
+    mockObserver->SetResponse(KErrGeneral);
+    tspIf2->AddressIncomingCommand( TUid::Uid(KRemConCoreApiUid), ERemConCoreApiF4, clients );
+    if( mockObserver->Response() == KErrGeneral)
+        {
+        stifLog->Log(_L("test case failed: MRemConTargetSelectorPluginObserver was not called\n"));
+        console->Printf(_L("test case failed: MRemConTargetSelectorPluginObserver was not called\n"));
+        return KErrGeneral;
+        }
+    
+    stifLog->Log(KTTestNumberPassed, 7);
+    console->Printf(KTTestNumberPassed,7);
+    return KErrNone;
+    }
+LOCAL_C TInt Test08()
+    {
+    stifLog->Log(KTTestNumberStart, 8);
+    console->Printf(KTTestNumberStart, 8);
+    // 8. addressincomingnotify
+    anotherFakeClient.SecureId().iId = KUid3BTAudioMan;
+    clients.Reset();    
+    clients.AddLast( anotherFakeClient );
+    clients.AddLast( fakeClientPhone );
+    mockObserver->SetResponse(KErrGeneral);
+    // set par1 and par2, so that par1 in notification to observer's -- a client info
+    // is not null
+    tspIf2->AddressIncomingNotify(TUid::Uid(KRemConAbsoluteVolumeControllerApiUid), ERemConCoreApiF4, clients);
+    
+    // if the notification's first par is not null, then response is 
+    if( mockObserver->Response()==KErrGeneral )
+        {
+        stifLog->Log(_L("test case failed: MRemConTargetSelectorPluginObserver was not called\n"));
+        console->Printf(_L("test case failed: MRemConTargetSelectorPluginObserver was not called\n"));
+        return KErrGeneral;
+        }
+    if( mockObserver->ClientInfo().SecureId()!=anotherFakeClient.SecureId() )
+        {
+        stifLog->Log(_L("test case failed: wrong client returned\n"));
+        console->Printf(_L("test case failed: wrong client returned\n"));
+        return KErrGeneral;
+        }
+    
+    stifLog->Log(KTTestNumberPassed, 8);
+    console->Printf(KTTestNumberPassed,8);
+    return KErrNone;
+    }
+LOCAL_C TInt Test09()
+    {
+    stifLog->Log(KTTestNumberStart, 9);
+    console->Printf(KTTestNumberStart, 9);
+
+    // 9. addressincomingnotify
+    anotherFakeClient.SecureId().iId = KUid3BTAudioMan - 1;
+    clients.Reset();    
+    clients.AddLast( anotherFakeClient );
+    clients.AddLast( fakeClientPhone );
+    mockObserver->SetResponse(KErrGeneral);
+    tspIf2->AddressIncomingNotify(TUid::Uid(KRemConAbsoluteVolumeControllerApiUid), ERemConCoreApiF4, clients);
+    
+    if( mockObserver->Response()==KErrGeneral )
+        {
+        stifLog->Log(_L("test case failed: MRemConTargetSelectorPluginObserver was not called\n"));
+        console->Printf(_L("test case failed: MRemConTargetSelectorPluginObserver was not called\n"));
+        return KErrGeneral;
+        }
+    if( mockObserver->ClientInfo().SecureId()==anotherFakeClient.SecureId() )
+        {
+        stifLog->Log(_L("test case failed: wrong client returned\n"));
+        console->Printf(_L("test case failed: wrong client returned\n"));
+        return KErrGeneral;
+        }
+    stifLog->Log(KTTestNumberPassed, 9);
+    console->Printf(KTTestNumberPassed,9);
+    return KErrNone;
+    }
+LOCAL_C TInt Test10()
+    {
+    stifLog->Log(KTTestNumberStart, 10);
+    console->Printf(KTTestNumberStart, 10);
+        
+    // test 10 AddressOutgoingCommand
+    TSglQue<TBearerSecurity> bearers;
+    TSecurityPolicy secPolicy;
+    TBearerSecurity bearer(TUid::Uid(100), secPolicy);
+    TBearerSecurity anotherBearer(TUid::Uid(200), secPolicy);
+    TSglQue<TRemConAddress> connections;
+    
+    bearers.AddLast(bearer);
+    bearers.AddLast(anotherBearer);
+    mockObserver->SetResponse(KErrGeneral);
+    tspIf2->AddressOutgoingCommand(
+            TUid::Uid(KRemConAbsoluteVolumeControllerApiUid), 
+            ERemConCoreApiF4,
+            anotherFakeClient,
+            connections,
+            bearers
+            );
+
+    if( mockObserver->Response()== KErrGeneral )
+        {
+        stifLog->Log(_L("test case failed: MRemConTargetSelectorPluginObserver was not called\n"));
+        console->Printf(_L("test case failed: MRemConTargetSelectorPluginObserver was not called\n"));
+        return KErrGeneral;
+        }
+
+    TRemConAddress* conn(connections.First());
+    TRemConAddress* anotherConn(connections.Last());
+    
+    
+    if( conn->BearerUid().iUid == bearer.BearerUid().iUid &&
+        anotherConn->BearerUid().iUid == anotherBearer.BearerUid().iUid )
+        {
+        }
+    else if( conn->BearerUid().iUid == anotherBearer.BearerUid().iUid &&
+            anotherConn->BearerUid().iUid == bearer.BearerUid().iUid )
+        {
+        
+        }
+    else        
+        {
+        stifLog->Log(_L("test case failed: wrong connection returned\n"));
+        console->Printf(_L("test case failed: wrong connection returned\n"));
+        return KErrGeneral;
+        }
+    stifLog->Log(KTTestNumberPassed, 10);
+    console->Printf(KTTestNumberPassed,10);
+    return KErrNone;
+    }
+LOCAL_C TInt Test11()
+    {
+    stifLog->Log(KTTestNumberStart, 11);
+    console->Printf(KTTestNumberStart, 11);
+        
+    // test 11 PermitOutgoingResponse
+    mockObserver->SetResponse(KErrGeneral);
+    TClientInfoConstIter iter(clients);
+    tspIf2->PermitOutgoingResponse(
+            TUid::Uid(KRemConCoreApiUid), 
+            ERemConCoreApiF4, 
+            anotherFakeClient,
+            iter);
+    
+    if( mockObserver->Response()== KErrGeneral )
+        {
+        stifLog->Log(_L("test case failed: MRemConTargetSelectorPluginObserver was not called\n"));
+        console->Printf(_L("test case failed: MRemConTargetSelectorPluginObserver was not called\n"));
+        return KErrGeneral;
+        }
+    
+    stifLog->Log(KTTestNumberPassed, 11);
+    console->Printf(KTTestNumberPassed,11);
+    return KErrNone;
+    }
+LOCAL_C TInt Test12()
+    {
+    stifLog->Log(KTTestNumberStart, 12);
+    console->Printf(KTTestNumberStart, 12);
+        
+    
+    // test 12 PermitIncomingCommand
+    mockObserver->SetResponse(KErrGeneral);
+    tspIf4->PermitIncomingCommand(
+            TUid::Uid(KRemConCoreApiUid),
+                    ERemConCoreApiPlay,
+                    anotherFakeClient);
+    
+    if( mockObserver->Response()== KErrGeneral )
+        {
+        stifLog->Log(_L("test case failed: MRemConTargetSelectorPluginObserver was not called\n"));
+        console->Printf(_L("test case failed: MRemConTargetSelectorPluginObserver was not called\n"));
+        return KErrGeneral;
+        }
+    
+    stifLog->Log(KTTestNumberPassed, 12);
+    console->Printf(KTTestNumberPassed,12);
+    return KErrNone;
+    }
+LOCAL_C TInt Test14()
+    {
+    stifLog->Log(KTTestNumberStart, 14);
+    console->Printf(KTTestNumberStart, 14);        
+    
+    // test 14 TargetClientAvailable
+    
+    // this client will serve for 
+    // TRAPD(err, GetCorrectClientL(TUid::Uid(KRemConCoreApiUid), ERemConCoreApiPlay, iTargetsForAddressing, EFalse));
+    // as first rule is foreground, so this client should be the test process its self
+    
+    //14.1
+    err = tspIf5->RegisterLocalAddressedClientObserver(TUid::Uid(300));
+    if( err!=KErrNone)
+        {
+        stifLog->Log(_L("test case failed: RegisterLocalAddressedClientObserver return error = %d\n"), err);
+        console->Printf(_L("test case failed: RegisterLocalAddressedClientObserver return error = %d\n"), err);
+        return err;
+        }
+    //14.2
+    mockObserver->SetResponse(KErrGeneral);
+    tspIf5->TargetClientAvailable(thisClient);    
+    if(mockObserver->Response() == KErrGeneral)
+        {
+        stifLog->Log(_L("test case 14.2 failed: MRemConTargetSelectorPluginObserver was not called\n"));
+        console->Printf(_L("test case 14.2 failed: MRemConTargetSelectorPluginObserver was not called\n"));
+        return KErrGeneral;
+        }
+    //14.3
+    mockObserver->SetResponse(KErrGeneral);
+    tspIf5->TargetClientAvailable(thisClient);
+    if(mockObserver->Response() != KErrGeneral)
+        {
+        stifLog->Log(_L("test case 14.3 failed: MRemConTargetSelectorPluginObserver was not called\n"));
+        console->Printf(_L("test case 14.3 failed: MRemConTargetSelectorPluginObserver was not called\n"));
+        return KErrGeneral;
+        }
+    //14.4
+    mockObserver->SetResponse(KErrGeneral);
+    tspIf5->TargetClientUnavailable(thisClient);    
+    if(mockObserver->Response() != KErrGeneral)
+        {
+        stifLog->Log(_L("test case 14.4 failed: MRemConTargetSelectorPluginObserver was not called\n"));
+        console->Printf(_L("test case 14.4 failed: MRemConTargetSelectorPluginObserver was not called\n"));
+        return KErrGeneral;
+        }
+    //14.5
+    err = tspIf5->UnregisterLocalAddressedClientObserver(TUid::Uid(300));
+    if( err != KErrNone)
+        {
+        stifLog->Log(_L("test case failed: UnregisterLocalAddressedClientObserver return error = %d\n"), err);
+        console->Printf(_L("test case failed: UnregisterLocalAddressedClientObserver return error = %d\n"), err);
+        return err;
+        }
+    
+    stifLog->Log(KTTestNumberPassed, 14);
+    console->Printf(KTTestNumberPassed,14);
+    return KErrNone;
+    }
+
+
+LOCAL_C void MainL()
+    {
+    //
+    // add your program code here, example code below
+    //
+    // create stif logger
+    stifLog = CStifLogger::NewL( KutremcontspcontrollerLogPath, 
+                          KutremcontspcontrollerLogFile);
+    _LIT( KLogStart, "utremcontspcontroller logging starts!" );
+    stifLog->Log( KLogStart );
+    TInt err;
+    TRAP(err, TestSetupL());
+    if( err==KErrNone )
+        {
+        RUN_TEST_CASE(testCasesTotal, testCasesPassed, Test01());
+        RUN_TEST_CASE(testCasesTotal, testCasesPassed, Test02());
+        RUN_TEST_CASE(testCasesTotal, testCasesPassed, Test03());
+        RUN_TEST_CASE(testCasesTotal, testCasesPassed, Test04());
+        RUN_TEST_CASE(testCasesTotal, testCasesPassed, Test05());
+        RUN_TEST_CASE(testCasesTotal, testCasesPassed, Test06());
+        RUN_TEST_CASE(testCasesTotal, testCasesPassed, Test07());
+        RUN_TEST_CASE(testCasesTotal, testCasesPassed, Test08());
+        RUN_TEST_CASE(testCasesTotal, testCasesPassed, Test09());
+        RUN_TEST_CASE(testCasesTotal, testCasesPassed, Test10());
+        RUN_TEST_CASE(testCasesTotal, testCasesPassed, Test11());
+        RUN_TEST_CASE(testCasesTotal, testCasesPassed, Test12());
+        RUN_TEST_CASE(testCasesTotal, testCasesPassed, Test14());
+        }
+    TestTearDown();
+    stifLog->Log(_L("=========================================\n"));
+    stifLog->Log(_L("Test Run Summary:\n"));
+    stifLog->Log(_L("Test cases total:  %d\n"), testCasesTotal);
+    stifLog->Log(_L("Test cases Passed: %d\n"), testCasesPassed);    
+    stifLog->Log(_L("=========================================\n"));
+    delete stifLog;
+    }
+
+LOCAL_C void DoStartL()
+    {
+    // Create active scheduler (to run active objects)
+    CActiveScheduler* scheduler = new (ELeave) CActiveScheduler();
+    CleanupStack::PushL(scheduler);
+    CActiveScheduler::Install(scheduler);
+
+    MainL();
+
+    // Delete active scheduler
+    CleanupStack::PopAndDestroy(scheduler);
+    }
+
+//  Global Functions
+
+GLDEF_C TInt E32Main()
+    {
+    // Create cleanup stack
+    __UHEAP_MARK;
+    CTrapCleanup* cleanup = CTrapCleanup::New();
+
+    // Create output console
+    TRAPD(createError, console = Console::NewL(KTextConsoleTitle, TSize(
+            KConsFullScreen, KConsFullScreen)));
+    if (createError)
+        return createError;
+
+    // Run application code inside TRAP harness, wait keypress when terminated
+    TRAPD(mainError, DoStartL());
+    if (mainError)
+        console->Printf(KTextFailed, mainError);
+    console->Printf(KTextPressAnyKey);
+    //console->Getch();
+
+    delete console;
+    delete cleanup;
+    __UHEAP_MARKEND;
+    return KErrNone;
+    }
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/advancedtspcontroller/tsrc/ut_atsp/Bwins/ut_atspu.def	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,4 @@
+EXPORTS
+	?LibEntryL@@YAPAVCTestModuleBase@@XZ @ 1 NONAME ; class CTestModuleBase * __cdecl LibEntryL(void)
+	?SetRequirements@@YAHAAPAVCTestModuleParam@@AAK@Z @ 2 NONAME ; int __cdecl SetRequirements(class CTestModuleParam * &,unsigned long &)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/advancedtspcontroller/tsrc/ut_atsp/eabi/ut_atspu.def	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,8 @@
+EXPORTS
+	_Z9LibEntryLv @ 1 NONAME
+	_Z15SetRequirementsRP16CTestModuleParamRm @ 2 NONAME
+	_ZTI20CRemConTspController @ 3 NONAME
+	_ZTV20CRemConTspController @ 4 NONAME
+	_ZTI21CUt_AtspTspEventsStub @ 5 NONAME
+	_ZTV21CUt_AtspTspEventsStub @ 6 NONAME
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/advancedtspcontroller/tsrc/ut_atsp/group/bld.inf	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,31 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+* 
+* Description:
+*
+*/
+
+#include "../ut_atspaudioproperty/group/bld.inf"
+
+PRJ_PLATFORMS
+// specify the platforms your component needs to be built for here
+// defaults to WINS MARM so you can ignore this if you just build these
+
+	DEFAULT
+
+PRJ_TESTEXPORTS
+
+PRJ_TESTMMPFILES
+ut_atsp.mmp
+
+//  End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/advancedtspcontroller/tsrc/ut_atsp/group/ut_atsp.mmp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,52 @@
+/*TYPE STIFUNIT*/
+/*
+* 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: MMP file for STIF Test Framework's STIFUnit test module.
+*
+*/
+
+#include <platform_paths.hrh>
+
+SMPSAFE
+
+TARGET          ut_atsp.dll
+TARGETTYPE      dll
+UID             0x1000008D 0x2002CAD0
+
+CAPABILITY      ALL -TCB
+
+DEFFILE         ut_atsp.def
+
+USERINCLUDE     ../inc 
+USERINCLUDE     ../../../inc
+SYSTEMINCLUDE   /epoc32/include/mmf/common
+OS_LAYER_SYSTEMINCLUDE
+MW_LAYER_SYSTEMINCLUDE
+
+SOURCEPATH      ../src
+SOURCE          ut_atsp.cpp
+SOURCE          ut_atspcases.cpp
+SOURCE          mockremcontspcontroller.cpp
+SOURCE          ut_atsptspeventsstub.cpp
+ 
+SOURCEPATH      ../../../src
+SOURCE          remconeventtable.cpp
+SOURCE          remconidlelistener.cpp
+SOURCE          tsptriggerevents.cpp
+
+LIBRARY         euser.lib
+LIBRARY         stiftestinterface.lib
+LIBRARY         ws32.lib
+
+LANG            SC
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/advancedtspcontroller/tsrc/ut_atsp/group/ut_atsp.pkg	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,32 @@
+;
+; 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:
+;
+; 	Installation file for STIF
+;
+
+; Languages
+&EN
+
+; Provide value for uid
+#{"STIF"},(0x2002CAD0),1,1,0,TYPE=SA
+
+; Localised Vendor name
+%{"Nokia"}
+
+; Unique Vendor name
+:"Nokia"
+
+; Install files
+"\epoc32\release\armv5\udeb\ut_atsp.dll"   -   "!:\Sys\Bin\ut_atsp.dll"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/advancedtspcontroller/tsrc/ut_atsp/inc/mockremcontspcontroller.h	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,74 @@
+/*
+* 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: This file contains a mock CRemConTspControllerNoError declaration whose CreateAfterIdleL can return different value according the parameter passed by NewL.
+*
+*/
+#ifndef MOCK_CREMCONTSPCONTROLLER_H
+#define MOCK_CREMCONTSPCONTROLLER_H
+
+//  INCLUDES
+#include <e32base.h>
+#include "remconidlelistener.h"
+
+// DATA TYPES
+enum MockControllerCtlValue
+    {
+    ECorrect = 0,
+    ELeaveNoChange,
+    ELeaveChange
+    };
+
+// CLASS DECLARATION
+
+/**
+*  Controls delivering of commands between Series 60 components and remote 
+*  targets.
+*/
+class CRemConTspController : public CBase
+    {
+    public:     // Constructors and destructor
+        
+        /**
+        * Two-phased constructor.
+        */
+        static CRemConTspController* NewL(MockControllerCtlValue aCtlValue);
+        
+        /**
+        * Destructor.
+        */
+        virtual ~CRemConTspController();
+    
+    public:     // Functions from base classes
+    
+        void CreateAfterIdleL();
+    
+    private:
+        
+        /**
+        * C++ default constructor.
+        */
+        CRemConTspController(MockControllerCtlValue aCtlValue);
+    
+    protected:  // Data
+    
+        void ConstructL();
+
+    private:    // Data
+        // owned
+        CRemConIdleListener* iIdle;
+        
+        MockControllerCtlValue iCtlValue;
+    };
+
+#endif      // MOCK_CREMCONTSPCONTROLLER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/advancedtspcontroller/tsrc/ut_atsp/inc/ut_atsptspeventsstub.h	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,54 @@
+/*
+* 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: The stub for testing tsp events
+*
+*/
+
+#ifndef UT_ATSPTSPEVENTSSTUB_H
+#define UT_ATSPTSPEVENTSSTUB_H
+
+#include <e32base.h>
+#include "tsptriggerevents.h"
+
+class CUt_AtspTspEventsStub
+    : public CTimer,
+      public MTspRulesTriggerObserver
+    {
+public:  // Constructors and destructor
+    static CUt_AtspTspEventsStub* NewL();
+    ~CUt_AtspTspEventsStub();
+
+public: // Issue test event
+    void IssueAudioPropertyL();
+    void IssueTspPropertyL();
+    void IssueWsEventL(const TInt aType);
+public: // From MTspRulesTriggerObserver
+    void MtrtoEvaluateRoutingRules();
+    
+protected: // From CTimer
+    void RunL();
+    void DoCancel();
+
+private: // Constructors
+    CUt_AtspTspEventsStub();
+    void ConstructL();
+
+public: // Data
+    TBool iIsRunLCalled;
+    TBool iIsTimerElapsed;
+    
+private:
+    };
+
+#endif /* UT_ATSPTSPEVENTSSTUB_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/advancedtspcontroller/tsrc/ut_atsp/src/mockremcontspcontroller.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,87 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+* 
+* Description: This file contains a mock CRemConTspControllerNoError implementation whose CreateAfterIdleL can return different value according the parameter passed by NewL.
+*
+*/
+
+#include "mockremcontspcontroller.h"
+
+// -----------------------------------------------------------------------------
+// CRemConTspController::CRemConTspController
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// -----------------------------------------------------------------------------
+//
+
+CRemConTspController::CRemConTspController(MockControllerCtlValue aCtlValue) : iCtlValue(aCtlValue)
+    {
+    }
+    
+// -----------------------------------------------------------------------------
+// CRemConTspController::NewL
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CRemConTspController* CRemConTspController::NewL(MockControllerCtlValue aCtlValue)
+    {    
+    CRemConTspController* self = new( ELeave ) CRemConTspController(aCtlValue);
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop( self );
+    return self;
+    }
+
+void CRemConTspController::ConstructL()
+    {
+    iIdle = CRemConIdleListener::NewL(*this);
+    }
+
+// Destructor
+CRemConTspController::~CRemConTspController()
+    {
+    if( iIdle )
+        {
+        delete iIdle;
+        iIdle = NULL;
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CRemConTspController::CreateAfterIdleL
+// Define the contexts when idle state has been loaded.
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//    
+void CRemConTspController::CreateAfterIdleL()
+    {
+    if (iCtlValue == ECorrect)
+        {
+        return;
+        }
+    
+    if (iCtlValue == ELeaveNoChange)
+        {
+        User::Leave(KErrNoMemory);
+        }
+    
+    if (iCtlValue == ELeaveChange)
+        {
+        // delete iIdle now, so that CRemConIdleListener won't call this method again if a leave occurs hereafter
+        if( iIdle )
+            {
+            delete iIdle;
+            iIdle = NULL;
+            }
+        }
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/advancedtspcontroller/tsrc/ut_atsp/src/ut_atsp.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,124 @@
+/*
+* 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: This file contains STIFUnit module implementation.
+*
+*/
+
+/******************************************************************************/
+/*
+ *
+ * Test module configuration 
+*/
+
+// Version
+#define TEST_MODULE_VERSION_MAJOR 0
+#define TEST_MODULE_VERSION_MINOR 0
+#define TEST_MODULE_VERSION_BUILD 0
+
+// Uncomment following defines, if you want to provide implementation
+// of enlisted virtual methods of test module.
+// Implementation part is located at the end of this file.
+//#define STIFUNIT_OOMTESTQUERYL
+//#define STIFUNIT_OOMTESTINITIALIZEL
+//#define STIFUNIT_OOMHANDLEWARNINGL
+//#define STIFUNIT_OOMTESTFINALIZEL
+// Uncomment following define, if you want to increase heap or stack size.
+// #define STIFUNIT_SETHEAPANDSTACKSIZE
+/******************************************************************************/
+
+
+/*
+ * Test module internals. Please do not edit them. 
+*/
+
+// Includes
+#include <e32base.h>
+
+// Literals
+_LIT( KUnitLogPath, "\\logs\\testframework\\ut_atsp\\" ); 
+_LIT( KUnitLogFile, "ut_atsp.txt" ); 
+_LIT( KLogStart, "ut_atsp logging starts!" );
+
+// Defines
+#define STIF_UNIT_TEST_CASES "../src/ut_atspCases.cpp"
+#define STIF_UNIT_MODULE_CLASS_NAME Cut_atsp
+#define STIF_UNIT_MODULE_NAME _L("ut_atsp.dll")
+
+// Include STIF unit generic file
+#include <StifUnitGeneric.h>
+
+/*
+ * Implementation of setHeapAndStack virtual methods.
+ * To changes heap and stack size provide new values to iTestThreadStackSize, iTestThreadMinHeap and iTestThreadMaxHeap. 
+*/
+
+#ifdef STIFUNIT_SETHEAPANDSTACKSIZE
+EXPORT_C TInt SetRequirements( CTestModuleParam*& aTestModuleParam, 
+                               TUint32& aParameterValid )
+    {
+    aParameterValid = KStifTestModuleParameterChanged;
+    CTestModuleParamVer01* param = CTestModuleParamVer01::NewL(); 
+    // Stack size 
+    param->iTestThreadStackSize= 16384; // 16K stack 
+    // Heap sizes 
+    param->iTestThreadMinHeap = 4096; // 4K heap min 
+    param->iTestThreadMaxHeap = 1048576;// 1M heap max 
+
+    return KErrNone;
+    }
+#undef STIFUNIT_SETHEAPANDSTACKSIZE
+#endif
+
+/*
+ * User implementation of OOM virtual methods.
+ * Providing own implementation requires uncommenting defines at the
+ * beginnig of this file.   
+*/
+#ifdef STIFUNIT_OOMTESTQUERYL
+TBool Cut_atsp::OOMTestQueryL( const TFileName& /*aTestCaseFile*/, 
+                                   const TInt aCaseNumber, 
+                                   TOOMFailureType& aFailureType, 
+                                   TInt& aFirstMemFailure, 
+                                   TInt& aLastMemFailure)
+    {
+    }
+#undef STIFUNIT_OOMTESTQUERYL
+#endif
+
+#ifdef STIFUNIT_OOMTESTINITIALIZEL
+void Cut_atsp::OOMTestInitializeL( const TFileName& /*aTestCaseFile*/, 
+                                       const TInt /*aCaseNumber*/ )
+    {
+    }
+#undef STIFUNIT_OOMTESTINITIALIZEL
+#endif
+
+#ifdef STIFUNIT_OOMHANDLEWARNINGL
+void Cut_atsp::OOMHandleWarningL( const TFileName& /*aTestCaseFile*/,
+                                      const TInt /*aCaseNumber*/, 
+                                      TInt& /*aFailNextValue*/)
+    {
+    }
+#undef STIFUNIT_OOMHANDLEWARNINGL
+#endif
+    
+#ifdef STIFUNIT_OOMTESTFINALIZEL
+void Cut_atsp::OOMTestFinalizeL( const TFileName& /*aTestCaseFile*/, 
+                                     const TInt /*aCaseNumber*/ )
+    {
+    }
+#undef STIFUNIT_OOMTESTFINALIZEL
+#endif
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/advancedtspcontroller/tsrc/ut_atsp/src/ut_atspcases.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,681 @@
+/*
+* 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: This file contains STIFUnit implementation.
+*
+*/
+
+/**
+ * STIF_UNIT_INCLUDE SECTION - put all #includes between STIF_UNIT_INCLUDE_SECTION
+ *                             and STIF_UNIT_INCLUDE_SECTION_END
+ */
+#ifdef STIF_UNIT_INCLUDE_SECTION
+#include "remconeventtable.h"
+#include "mockremcontspcontroller.h"
+#include "tsptriggerevents.h"
+#include "ut_atsptspeventsstub.h"
+
+#include <W32STD.H>
+
+#endif //STIF_UNIT_INCLUDE_SECTION_END
+
+/**
+ * GLOBAL VARIABLES SECTION
+ */
+#ifdef TEST_VAR_DECLARATIONS
+	 CRemConEventTable* table;
+	 CTspTriggerEventsWatcher* watcher;
+	 CUt_AtspTspEventsStub* tspstub;
+	 CActiveScheduler* scheduler;
+	 static const TInt KDefaultWaitTimeInMicroSeconds = 5000000;
+#endif
+/**
+ * END OF GLOBAL VARIABLES SECTION
+ */
+
+
+/**
+ * TEST CASES SECTION
+ */
+#ifdef TEST_CASES
+/**
+ * STIF_SETUP defines activities needed before every test case.
+ */
+STIF_SETUP
+{
+	 // Install active scheduler at start up
+	 scheduler = new (ELeave) CActiveScheduler();
+	 CleanupStack::PushL(scheduler);
+	 CActiveScheduler::Install(scheduler);
+}
+
+/**
+ * STIF_TEARDOWN defines activities needed after every test case
+ */
+STIF_TEARDOWN
+{
+    // Delete active scheduler at last
+    CActiveScheduler::Install(NULL);
+    CleanupStack::PopAndDestroy(scheduler);
+}
+
+/**
+ * STIF_TESTDEFINE defines a test case
+ *
+ */
+
+/**
+ * @SYMTestCaseID              GAPS-ATSP-EVENTTABLE-001
+ * @SYMTestCaseDesc            Make sure TableNum is fix after construction.
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1. Construct a CRemConEventTable object with table number as 5.
+ *                             2. TableNum() should return 5.
+ * @SYMTestExpectedResults     1. CRemConEventTable object was successfully constructed.
+ *                             2. TableNum() returns 5.
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            20-07-2010
+ */
+STIF_TESTDEFINE(GAPS-ATSP-EVENTTABLE-001)
+{
+    TInt tableNum = 5;
+    table = CRemConEventTable::NewL(tableNum);
+    CleanupStack::PushL(table);
+	
+	STIF_ASSERT_EQUALS(table->TableNum(), tableNum);
+	STIF_LOG("TableNum() returned correct table number.");
+	
+	CleanupStack::PopAndDestroy();
+}
+
+/**
+ * @SYMTestCaseID              GAPS-ATSP-EVENTTABLE-002
+ * @SYMTestCaseDesc            Add different kinds of remote control events into event table. 
+ *                             Check whether those events are really in event table. Check whether unadded events are not in event table.
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1. Construct a CRemConEventTable object with table number as 1.
+ *                             2. Add ERemConEvent into event table.
+ *                             3. Add ERemConExtEventCall into event table.
+ *                             4. Add ERemConExtEventPoc into event table.
+ *                             5. Add ERemConExtEventSync into event table.
+ *                             6. Add another ERemConEvent into event table.
+ *                             7. Add another ERemConExtEventCall into event table.
+ *                             8. Add another ERemConExtEventPoc into event table.
+ *                             9. Add another ERemConExtEventSync into event table.
+ *                             10. Check ERemConEvent in event table.
+ *                             11. Check ERemConExtEventCall in event table.
+ *                             12. Check ERemConExtEventPoc in event table.
+ *                             13. Check ERemConExtEventSync in event table.
+ *                             14. Check another ERemConEvent in event table.
+ *                             15. Check another ERemConExtEventCall in event table.
+ *                             16. Check another ERemConExtEventPoc in event table.
+ *                             17. Check another ERemConExtEventSync in event table.
+ *                             18. Check unadded events are not in event table.
+ * @SYMTestExpectedResults     1. CRemConEventTable object was successfully constructed.
+ *                             2. An ERemConEvent was added into event table.
+ *                             3. An ERemConExtEventCall was added into event table.
+ *                             4. An ERemConExtEventPoc was added into event table.
+ *                             5. An ERemConExtEventSync was added into event table.
+ *                             6. Another ERemConEvent was added into event table.
+ *                             7. Another ERemConExtEventCall was added into event table.
+ *                             8. Another ERemConExtEventPoc was added into event table.
+ *                             9. Another ERemConExtEventSync was added into event table.
+ *                             10. ERemConEvent was in event table.
+ *                             11. ERemConExtEventCall was in event table.
+ *                             12. ERemConExtEventPoc was in event table.
+ *                             13. ERemConExtEventSync was in event table.
+ *                             14. Another ERemConEvent was in event table.
+ *                             15. Another ERemConExtEventCall was in event table.
+ *                             16. Another ERemConExtEventPoc was in event table.
+ *                             17. Another ERemConExtEventSync was in event table.
+ *                             18. Unadded events are not in event table.
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            20-07-2010
+ */
+STIF_TESTDEFINE(GAPS-ATSP-EVENTTABLE-002)
+{
+    // 1. Construct a CRemConEventTable object with table number as 1.
+    TInt tableNum = 1;
+    table = CRemConEventTable::NewL(tableNum);
+    CleanupStack::PushL(table);
+    
+    // 2. Add ERemConEvent into event table.
+    // 3. Add ERemConExtEventCall into event table.
+    // 4. Add ERemConExtEventPoc into event table.
+    // 5. Add ERemConExtEventSync into event table.
+    TInt eventValue = 41;
+    table->AddRemConEventToTable(eventValue, CRemConEventTable::ERemConEvent);
+    table->AddRemConEventToTable(eventValue, CRemConEventTable::ERemConExtEventCall);
+    table->AddRemConEventToTable(eventValue, CRemConEventTable::ERemConExtEventPoc);
+    table->AddRemConEventToTable(eventValue, CRemConEventTable::ERemConExtEventSync);
+    
+    // 6. Add another ERemConEvent into event table.
+    // 7. Add another ERemConExtEventCall into event table.
+    // 8. Add another ERemConExtEventPoc into event table.
+    // 9. Add another ERemConExtEventSync into event table.
+    TInt eventValue2 = 40;
+    table->AddRemConEventToTable(eventValue2, CRemConEventTable::ERemConEvent);
+    table->AddRemConEventToTable(eventValue2, CRemConEventTable::ERemConExtEventCall);
+    table->AddRemConEventToTable(eventValue2, CRemConEventTable::ERemConExtEventPoc);
+    table->AddRemConEventToTable(eventValue2, CRemConEventTable::ERemConExtEventSync);
+    
+    // 10. Check ERemConEvent in event table.
+    // 11. Check ERemConExtEventCall in event table.
+    // 12. Check ERemConExtEventPoc in event table.
+    // 13. Check ERemConExtEventSync in event table.
+    STIF_ASSERT_EQUALS(table->IsRemConEventInTable(eventValue, CRemConEventTable::ERemConEvent), static_cast<TBool>(ETrue));
+    STIF_ASSERT_EQUALS(table->IsRemConEventInTable(eventValue, CRemConEventTable::ERemConExtEventCall), static_cast<TBool>(ETrue));
+    STIF_ASSERT_EQUALS(table->IsRemConEventInTable(eventValue, CRemConEventTable::ERemConExtEventPoc), static_cast<TBool>(ETrue));
+    STIF_ASSERT_EQUALS(table->IsRemConEventInTable(eventValue, CRemConEventTable::ERemConExtEventSync), static_cast<TBool>(ETrue));
+    
+    // 14. Check another ERemConEvent in event table.
+    // 15. Check another ERemConExtEventCall in event table.
+    // 16. Check another ERemConExtEventPoc in event table.
+    // 17. Check another ERemConExtEventSync in event table.
+    STIF_ASSERT_EQUALS(table->IsRemConEventInTable(eventValue2, CRemConEventTable::ERemConEvent), static_cast<TBool>(ETrue));
+    STIF_ASSERT_EQUALS(table->IsRemConEventInTable(eventValue2, CRemConEventTable::ERemConExtEventCall), static_cast<TBool>(ETrue));
+    STIF_ASSERT_EQUALS(table->IsRemConEventInTable(eventValue2, CRemConEventTable::ERemConExtEventPoc), static_cast<TBool>(ETrue));
+    STIF_ASSERT_EQUALS(table->IsRemConEventInTable(eventValue2, CRemConEventTable::ERemConExtEventSync), static_cast<TBool>(ETrue));
+    
+    // 18. Check unadded events are not in event table.
+    TInt unaddedEventValue = 39;
+    STIF_ASSERT_EQUALS(table->IsRemConEventInTable(unaddedEventValue, CRemConEventTable::ERemConEvent), static_cast<TBool>(EFalse));
+    STIF_ASSERT_EQUALS(table->IsRemConEventInTable(unaddedEventValue, CRemConEventTable::ERemConExtEventCall), static_cast<TBool>(EFalse));
+    STIF_ASSERT_EQUALS(table->IsRemConEventInTable(unaddedEventValue, CRemConEventTable::ERemConExtEventPoc), static_cast<TBool>(EFalse));
+    STIF_ASSERT_EQUALS(table->IsRemConEventInTable(unaddedEventValue, CRemConEventTable::ERemConExtEventSync), static_cast<TBool>(EFalse));
+    
+    CleanupStack::PopAndDestroy();
+}
+
+/**
+ * @SYMTestCaseID              GAPS-ATSP-EVENTTABLE-003
+ * @SYMTestCaseDesc            Add invalid remote control events into event table. Check whether invalid events exists in event table.
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1. Add invalid remote control events into event table.
+ *                             2. Check whether invalid events exist in event table.
+ * @SYMTestExpectedResults     1. There isn't any crash and leave.
+ *                             2. Invalid events are not in event table.
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            20-07-2010
+ */
+STIF_TESTDEFINE(GAPS-ATSP-EVENTTABLE-003)
+{
+    // Construct a CRemConEventTable object with table number as 1.
+    TInt tableNum = 1;
+    table = CRemConEventTable::NewL(tableNum);
+    CleanupStack::PushL(table);
+    
+    // 1. Add invalid remote control events into event table.
+    TInt eventValue = 41;
+    CRemConEventTable::RemConEventType invalidEventType = static_cast<CRemConEventTable::RemConEventType>(10);
+    table->AddRemConEventToTable(eventValue, invalidEventType);
+    
+    // 2. Check whether invalid events exist in event table.
+    STIF_ASSERT_EQUALS(table->IsRemConEventInTable(eventValue, invalidEventType), static_cast<TBool>(EFalse));
+
+    CleanupStack::PopAndDestroy();
+}
+
+/**
+ * @SYMTestCaseID              GAPS-ATSP-EVENTTABLE-004
+ * @SYMTestCaseDesc            Try to add valid rules, get rules.
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1. Construct a CRemConEventTable object with table number as 1.
+ *                             2. Get rules list from event table.
+ *                             3. Check EActiveAudio not in the rules list.
+ *                             4. Check EForegroundApplication not in the rules list.
+ *                             5. Check EDefaultApplicationGroup not in the rules list.
+ *                             6. Check ELastPlayedMediaApplication not in the rules list.
+ *                             7. Check ELaunchDefaultApp not in the rules list.
+ *                             8. Add EActiveAudio into event table.
+ *                             9. Add EForegroundApplication into event table.
+ *                             10. Add EDefaultApplicationGroup into event table.
+ *                             11. Add ELastPlayedMediaApplication into event table.
+ *                             12. Add ELaunchDefaultApp event table.
+ *                             13. Get rules list from event table.
+ *                             14. Check EActiveAudio in the rules list.
+ *                             15. Check EForegroundApplication in the rules list.
+ *                             16. Check EDefaultApplicationGroup in the rules list.
+ *                             17. Check ELastPlayedMediaApplication in the rules list.
+ *                             18. Check ELaunchDefaultApp in the rules list.
+ * @SYMTestExpectedResults     1. CRemConEventTable object was successfully constructed.
+ *                             2. Rules list was gotten.
+ *                             3. EActiveAudio was not in the rules list.
+ *                             4. EForegroundApplication was not in the rules list.
+ *                             5. EDefaultApplicationGroup was not in the rules list.
+ *                             6. ELastPlayedMediaApplication was not in the rules list.
+ *                             7. ELaunchDefaultApp was not in the rules list.
+ *                             8. An EActiveAudio was added into event table.
+ *                             9. An EForegroundApplication was added into event table.
+ *                             10. An EDefaultApplicationGroup was added into event table.
+ *                             11. An ELastPlayedMediaApplication was added into event table.
+ *                             12. An ELaunchDefaultApp was added into event table.
+ *                             13. Rules list was gotten.
+ *                             14. EActiveAudio was in the rules list.
+ *                             15. EForegroundApplication was in the rules list.
+ *                             16. EDefaultApplicationGroup was in the rules list.
+ *                             17. ELastPlayedMediaApplication was in the rules list.
+ *                             18. ELaunchDefaultApp was in the rules list.
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            20-07-2010
+ */
+STIF_TESTDEFINE(GAPS-ATSP-EVENTTABLE-004)
+{
+    // 1. Construct a CRemConEventTable object with table number as 1.
+    TInt tableNum = 1;
+    table = CRemConEventTable::NewL(tableNum);
+    CleanupStack::PushL(table);
+    
+    // 2. Get rules list from event table.
+    RArray<TInt> rulesForThisTable;
+    table->GetRulesForThisTable(rulesForThisTable);
+    
+    // 3. Check EActiveAudio not in the rules list.
+    // 4. Check EForegroundApplication not in the rules list.
+    // 5. Check EDefaultApplicationGroup not in the rules list.
+    // 6. Check ELastPlayedMediaApplication not in the rules list.
+    // 7. Check ELaunchDefaultApp not in the rules list.
+    STIF_ASSERT_EQUALS(rulesForThisTable.Find(CRemConEventTable::EActiveAudio), KErrNotFound);
+    STIF_ASSERT_EQUALS(rulesForThisTable.Find(CRemConEventTable::EForegroundApplication), KErrNotFound);
+    STIF_ASSERT_EQUALS(rulesForThisTable.Find(CRemConEventTable::EDefaultApplicationGroup), KErrNotFound);
+    STIF_ASSERT_EQUALS(rulesForThisTable.Find(CRemConEventTable::ELastPlayedMediaApplication), KErrNotFound);
+    STIF_ASSERT_EQUALS(rulesForThisTable.Find(CRemConEventTable::ELaunchDefaultApp), KErrNotFound);
+    
+    // 8. Add EActiveAudio into event table.
+    // 9. Add EForegroundApplication into event table.
+    // 10. Add EDefaultApplicationGroup into event table.
+    // 11. Add ELastPlayedMediaApplication into event table.
+    // 12. Add ELaunchDefaultApp event table.
+    table->AddRuleForThisTable(CRemConEventTable::EActiveAudio);
+    table->AddRuleForThisTable(CRemConEventTable::EForegroundApplication);
+    table->AddRuleForThisTable(CRemConEventTable::EDefaultApplicationGroup);
+    table->AddRuleForThisTable(CRemConEventTable::ELastPlayedMediaApplication);
+    table->AddRuleForThisTable(CRemConEventTable::ELaunchDefaultApp);
+    
+    // 13. Get rules list from event table.
+    rulesForThisTable.Reset();
+    table->GetRulesForThisTable(rulesForThisTable);
+    
+    // 14. Check EActiveAudio in the rules list.
+    // 15. Check EForegroundApplication in the rules list.
+    // 16. Check EDefaultApplicationGroup in the rules list.
+    // 17. Check ELastPlayedMediaApplication in the rules list.
+    // 18. Check ELaunchDefaultApp in the rules list.
+    STIF_ASSERT_NOT_EQUALS(rulesForThisTable.Find(CRemConEventTable::EActiveAudio), KErrNotFound);
+    STIF_ASSERT_NOT_EQUALS(rulesForThisTable.Find(CRemConEventTable::EForegroundApplication), KErrNotFound);
+    STIF_ASSERT_NOT_EQUALS(rulesForThisTable.Find(CRemConEventTable::EDefaultApplicationGroup), KErrNotFound);
+    STIF_ASSERT_NOT_EQUALS(rulesForThisTable.Find(CRemConEventTable::ELastPlayedMediaApplication), KErrNotFound);
+    STIF_ASSERT_NOT_EQUALS(rulesForThisTable.Find(CRemConEventTable::ELaunchDefaultApp), KErrNotFound);
+    
+    CleanupStack::PopAndDestroy();
+}
+
+/**
+ * @SYMTestCaseID              GAPS-ATSP-EVENTTABLE-005
+ * @SYMTestCaseDesc            Try to add default application, get default application.
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1. Construct a CRemConEventTable object with table number as 1.
+ *                             2. Get default application list from event table.
+ *                             3. Check the default application info not in the rules list.
+ *                             4. Add a default application into event table.
+ *                             5. Get default application list from event table.
+ *                             6. Check default application info is right in the rules list.
+ * @SYMTestExpectedResults     1. CRemConEventTable object was successfully constructed.
+ *                             2. Default application list was gotten.
+ *                             3. The default application info was not in the rules list.
+ *                             4. A default application was added into event table.
+ *                             5. Default application list was gotten.
+ *                             6. The default application info in the list is right.
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            20-07-2010
+ */
+STIF_TESTDEFINE(GAPS-ATSP-EVENTTABLE-005)
+{
+    // 1. Construct a CRemConEventTable object with table number as 1.
+    TInt tableNum = 1;
+    table = CRemConEventTable::NewL(tableNum);
+    CleanupStack::PushL(table);
+    
+    TInt defaultApplication = 0x100058B3;
+    
+    // 2. Get default application list from event table.
+    RArray<TInt> defaultApplicationsForThisTable;
+    table->GetDefaultApplicationsForTable(defaultApplicationsForThisTable);
+    
+    // 3. Check the default application info not in the rules list.
+    STIF_ASSERT_EQUALS(defaultApplicationsForThisTable.Find(defaultApplication), KErrNotFound);
+    
+    // 4. Add a default application into event table.
+    table->AddDefaultApplicationForThisTable(defaultApplication);
+    
+    // 5. Get default application list from event table.
+    defaultApplicationsForThisTable.Reset();
+    table->GetDefaultApplicationsForTable(defaultApplicationsForThisTable);
+    
+    // 6. Check default application info is right in the rules list.
+    STIF_ASSERT_NOT_EQUALS(defaultApplicationsForThisTable.Find(defaultApplication), KErrNotFound);
+    
+    CleanupStack::PopAndDestroy();
+}
+
+
+/**
+ * @SYMTestCaseID              GAPS-ATSP-EVENTTABLE-006
+ * @SYMTestCaseDesc            Try to add default launch application, get the default launch application.
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1. Construct a CRemConEventTable object with table number as 1.
+ *                             2. Add a default launch application into event table.
+ *                             3. Get default launch application from event table.
+ * @SYMTestExpectedResults     1. CRemConEventTable object was successfully constructed.
+ *                             2. The default launch application was set into event table.
+ *                             3. The default launch application uid is right.
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            20-07-2010
+ */
+STIF_TESTDEFINE(GAPS-ATSP-EVENTTABLE-006)
+{
+    // 1. Construct a CRemConEventTable object with table number as 1.
+    TInt tableNum = 1;
+    table = CRemConEventTable::NewL(tableNum);
+    CleanupStack::PushL(table);
+    
+    TInt32 defaultLaunchApplication = 0x100058B3;
+    // 2. Add a default launch application into event table.
+    table->AddDefaultLaunchAppForThisTable(defaultLaunchApplication);
+    
+    // 3. Get default launch application from event table.
+    TUid retUid;
+    table->GetDefaultLaunchAppForTable(retUid);
+    STIF_ASSERT_EQUALS(retUid.iUid, defaultLaunchApplication);
+    
+    CleanupStack::PopAndDestroy();
+}
+
+/**
+ * @SYMTestCaseID              GAPS-ATSP-EVENTTABLE-007
+ * @SYMTestCaseDesc            Try to add transparent application, get the transparent application.
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1. Construct a CRemConEventTable object with table number as 1.
+ *                             2. Add a transparent application into event table.
+ *                             3. Get transparent application list from event table.
+ *                             4. Check transparent application info is right in the list.
+ *                             5. Check unadded transparent application info is not in the list.
+ * @SYMTestExpectedResults     1. CRemConEventTable object was successfully constructed.
+ *                             2. A transparent application was added into event table.
+ *                             3. Transparent application list was gotten.
+ *                             4. The transparent application info in the list is right.
+ *                             5. Unadded transparent application info is not in the list.
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            20-07-2010
+ */
+STIF_TESTDEFINE(GAPS-ATSP-EVENTTABLE-007)
+{
+    // 1. Construct a CRemConEventTable object with table number as 1.
+    TInt tableNum = 1;
+    table = CRemConEventTable::NewL(tableNum);
+    CleanupStack::PushL(table);
+    
+    TInt transparentApplication = 0x100058B3;
+    TInt unaddedApplication = 0x100058B4;
+    // 2. Add a transparent application into event table.
+    table->AddTransparentApplicationForThisTable(transparentApplication);
+    
+    // 3. Get transparent application list from event table.
+    RArray<TInt> transparentApplicationsForThisTable;
+    table->GetTransparentApplicationsForTable(transparentApplicationsForThisTable);
+    
+    // 4. Check transparent application info is right in the list.
+    STIF_ASSERT_NOT_EQUALS(transparentApplicationsForThisTable.Find(transparentApplication), KErrNotFound);
+    
+    // 5. Check unadded transparent application info is not in the list.
+    STIF_ASSERT_EQUALS(transparentApplicationsForThisTable.Find(unaddedApplication), KErrNotFound);
+    
+    CleanupStack::PopAndDestroy();
+}
+
+/**
+ * @SYMTestCaseID              GAPS-ATSP-IDLELISTENER-001
+ * @SYMTestCaseDesc            Create CRemConIdleListener with mock CRemConTspController. CreateAfterIdleL no error.
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1. Construct a CRemConIdleListener object with mock CRemConTspController.
+ *                             2. CRemConIdleListener::CreateAfterIdleL returned with no error.
+ *                             3. Destruct CRemConIdleListener object.
+ * @SYMTestExpectedResults     1. A CRemConIdleListener object was constructed with mock CRemConTspController.
+ *                             2. CRemConIdleListener::CreateAfterIdleL returned with no error.
+ *                             3. The CRemConIdleListener object was destructed.
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            20-07-2010
+ */
+STIF_TESTDEFINE(GAPS-ATSP-IDLELISTENER-001)
+{
+    CRemConTspController* tspController = CRemConTspController::NewL(ECorrect);
+    
+    delete tspController;
+}
+
+/**
+ * @SYMTestCaseID              GAPS-ATSP-IDLELISTENER-002
+ * @SYMTestCaseDesc            Create CRemConIdleListener with mock CRemConTspController. CreateAfterIdleL leaves with deleteInd not changed.
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1. Construct a CRemConIdleListener object with mock CRemConTspController.
+ *                             2. CRemConIdleListener::CreateAfterIdleL leaved with deleteInd not changed.
+ *                             3. Destruct CRemConIdleListener object.
+ * @SYMTestExpectedResults     1. A CRemConIdleListener object was constructed with mock CRemConTspController.
+ *                             2. CRemConIdleListener::CreateAfterIdleL leaved with deleteInd not changed.
+ *                             3. The CRemConIdleListener object was destructed.
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            20-07-2010
+ */
+STIF_TESTDEFINE(GAPS-ATSP-IDLELISTENER-002)
+{
+    CRemConTspController* tspController = CRemConTspController::NewL(ELeaveNoChange);
+    
+    delete tspController;
+}
+
+/**
+ * @SYMTestCaseID              GAPS-ATSP-IDLELISTENER-003
+ * @SYMTestCaseDesc            Create CRemConIdleListener with mock CRemConTspController. CreateAfterIdleL leaves with deleteInd changed to ETrue.
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1. Construct a CRemConIdleListener object with mock CRemConTspController.
+ *                             2. CRemConIdleListener::CreateAfterIdleL leaved with deleteInd changed to ETrue.
+ *                             3. Destruct CRemConIdleListener object.
+ * @SYMTestExpectedResults     1. A CRemConIdleListener object was constructed with mock CRemConTspController.
+ *                             2. CRemConIdleListener::CreateAfterIdleL leaved with deleteInd changed to ETrue.
+ *                             3. The CRemConIdleListener object was destructed.
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            20-07-2010
+ */
+STIF_TESTDEFINE(GAPS-ATSP-IDLELISTENER-003)
+{
+    CRemConTspController* tspController = CRemConTspController::NewL(ELeaveChange);
+    
+    delete tspController;
+}
+
+/**
+ * @SYMTestCaseID              GAPS-ATSP-TSPEVENTS-001
+ * @SYMTestCaseDesc            Create CTspTriggerEventsWatcher and all observers
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1. Call CTspTriggerEventsWatcher::NewL() function 
+ *                             2. Delete the created object
+ * @SYMTestExpectedResults     1. Function returns a CTspTriggerEventsWatcher* pointer. All its members 
+ *                                (iAudioClientObserver; iWsEventsObserver; iClientMapperObserver;)are also created.
+ *                             2. The object is deleted, and no memory leak
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            20-07-2010
+ */
+STIF_TESTDEFINE(GAPS-ATSP-TSPEVENTS-001)
+{
+    TestModuleIf().SetBehavior(CTestModuleIf::ETestLeaksHandles);
+    tspstub = CUt_AtspTspEventsStub::NewL();
+    CleanupStack::PushL(tspstub);
+    watcher = CTspTriggerEventsWatcher::NewL(*tspstub);
+    CleanupStack::PushL(watcher);
+        
+    STIF_ASSERT_NOT_NULL(tspstub);
+    STIF_ASSERT_NOT_NULL(watcher);
+    STIF_LOG("CTspTriggerEventsWatcher created successfully");
+
+    CleanupStack::PopAndDestroy(2);
+}
+
+/**
+ * @SYMTestCaseID              GAPS-ATSP-TSPEVENTS-002
+ * @SYMTestCaseDesc            Event which CTspClientMapperObserver watch is triggered
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1. Create CTspClientMapperObserver object with parameter a pointer to a MTspRulesTriggerObserver type interface
+ *                             2. Trigger a Property change which has property category equals to 0x10200C70
+ *                             3. Delete the created object
+ * @SYMTestExpectedResults     1. Object created
+ *                             2. MTspRulesTriggerObserver::MtrtoEvaluateRoutingRules() is called by the object
+ *                             3. Object deleted
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            20-07-2010
+ */
+STIF_TESTDEFINE(GAPS-ATSP-TSPEVENTS-002)
+{
+    TestModuleIf().SetBehavior(CTestModuleIf::ETestLeaksHandles);
+    tspstub = CUt_AtspTspEventsStub::NewL();
+    CleanupStack::PushL(tspstub);
+    watcher = CTspTriggerEventsWatcher::NewL(*tspstub);
+    CleanupStack::PushL(watcher);
+        
+    STIF_ASSERT_NOT_NULL(tspstub);
+    STIF_ASSERT_NOT_NULL(watcher);
+    STIF_LOG("CTspTriggerEventsWatcher created successfully");
+    
+    tspstub->After(TTimeIntervalMicroSeconds32(KDefaultWaitTimeInMicroSeconds));
+    tspstub->IssueTspPropertyL();
+    CActiveScheduler::Start();
+
+    STIF_ASSERT_TRUE(tspstub->iIsRunLCalled);
+    STIF_ASSERT_FALSE(tspstub->iIsTimerElapsed);
+    STIF_LOG("Trigger of tsp client mapper is as expected");
+
+    CleanupStack::PopAndDestroy(2);
+}
+
+/**
+ * @SYMTestCaseID              GAPS-ATSP-TSPEVENTS-003
+ * @SYMTestCaseDesc            Event which CWsEventsObserver watch is triggered
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1. Create CWsEventsObserver object with parameter a pointer to a MTspRulesTriggerObserver type interface
+ *                             2. Trigger a window server event with type of EEventWindowGroupListChanged
+ *                             3. Delete the created object
+ * @SYMTestExpectedResults     1. Object created
+ *                             2. MTspRulesTriggerObserver::MtrtoEvaluateRoutingRules() is called by the object
+ *                             3. Object deleted
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            20-07-2010
+ */
+STIF_TESTDEFINE(GAPS-ATSP-TSPEVENTS-003)
+{
+    TestModuleIf().SetBehavior(CTestModuleIf::ETestLeaksHandles);
+    tspstub = CUt_AtspTspEventsStub::NewL();
+    CleanupStack::PushL(tspstub);
+    watcher = CTspTriggerEventsWatcher::NewL(*tspstub);
+    CleanupStack::PushL(watcher);
+        
+    STIF_ASSERT_NOT_NULL(tspstub);
+    STIF_ASSERT_NOT_NULL(watcher);
+    STIF_LOG("CTspTriggerEventsWatcher created successfully");
+    
+    tspstub->After(TTimeIntervalMicroSeconds32(KDefaultWaitTimeInMicroSeconds));
+    tspstub->IssueWsEventL(EEventWindowGroupListChanged);
+    CActiveScheduler::Start();
+
+    STIF_ASSERT_TRUE(tspstub->iIsRunLCalled);
+    STIF_ASSERT_FALSE(tspstub->iIsTimerElapsed);
+    STIF_LOG("Trigger of ws event is as expected");
+
+    CleanupStack::PopAndDestroy(2);
+}
+
+/**
+ * @SYMTestCaseID              GAPS-ATSP-TSPEVENTS-004
+ * @SYMTestCaseDesc            Event which CWsEventsObserver watch is triggered, but not interested type
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1. Create CWsEventsObserver object with parameter a pointer to a MTspRulesTriggerObserver type interface
+ *                             2. Trigger a window server event which type is not EEventWindowGroupListChanged
+ *                             3. Delete the created object
+ * @SYMTestExpectedResults     1. Object created
+ *                             2. RunL of CWsEventsObserver is called, but MTspRulesTriggerObserver::MtrtoEvaluateRoutingRules() is not called by the object
+ *                             3. Object deleted
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            20-07-2010
+ */
+STIF_TESTDEFINE(GAPS-ATSP-TSPEVENTS-004)
+{
+    TestModuleIf().SetBehavior(CTestModuleIf::ETestLeaksHandles);
+    tspstub = CUt_AtspTspEventsStub::NewL();
+    CleanupStack::PushL(tspstub);
+    watcher = CTspTriggerEventsWatcher::NewL(*tspstub);
+    CleanupStack::PushL(watcher);
+        
+    STIF_ASSERT_NOT_NULL(tspstub);
+    STIF_ASSERT_NOT_NULL(watcher);
+    STIF_LOG("CTspTriggerEventsWatcher created successfully");
+    
+    tspstub->After(TTimeIntervalMicroSeconds32(KDefaultWaitTimeInMicroSeconds));
+    tspstub->IssueWsEventL(EEventWindowVisibilityChanged);
+    CActiveScheduler::Start();
+
+    STIF_ASSERT_FALSE(tspstub->iIsRunLCalled);
+    STIF_ASSERT_TRUE(tspstub->iIsTimerElapsed);
+    STIF_LOG("Trigger of not cared ws event is as expected");
+
+    CleanupStack::PopAndDestroy(2);
+}
+
+/**
+ * @SYMTestCaseID              GAPS-ATSP-TSPEVENTS-005
+ * @SYMTestCaseDesc            Event which CActiveAudioClientObserver watch is triggered
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1. Create CActiveAudioClientObserver object with parameter a pointer to a MTspRulesTriggerObserver type interface
+ *                             2. Trigger a Property change which has property category equals to 0x101F457f
+ *                             3. Delete the created object
+ * @SYMTestExpectedResults     1. Object created
+ *                             2. MTspRulesTriggerObserver::MtrtoEvaluateRoutingRules() is called by the object
+ *                             3. Object deleted
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            20-07-2010
+ */
+STIF_TESTDEFINE(GAPS-ATSP-TSPEVENTS-005)
+{
+    TestModuleIf().SetBehavior(CTestModuleIf::ETestLeaksHandles);
+    tspstub = CUt_AtspTspEventsStub::NewL();
+    CleanupStack::PushL(tspstub);
+    CActiveAudioClientObserver* audioObserver = CActiveAudioClientObserver::NewL(*tspstub);
+    CleanupStack::PushL(audioObserver);
+        
+    STIF_ASSERT_NOT_NULL(tspstub);
+    STIF_ASSERT_NOT_NULL(watcher);
+    STIF_LOG("CTspTriggerEventsWatcher created successfully");
+    
+    tspstub->After(TTimeIntervalMicroSeconds32(KDefaultWaitTimeInMicroSeconds));
+    tspstub->IssueAudioPropertyL();
+    CActiveScheduler::Start();
+
+    STIF_ASSERT_TRUE(tspstub->iIsRunLCalled);
+    STIF_ASSERT_FALSE(tspstub->iIsTimerElapsed);
+    STIF_LOG("Trigger of audio client mapper is as expected");
+
+    CleanupStack::PopAndDestroy(2);
+}
+
+#endif
+/**
+ * END OF TEST CASES SECTION
+ */
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/advancedtspcontroller/tsrc/ut_atsp/src/ut_atsptspeventsstub.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,114 @@
+/*
+* 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: The stub for testing tsp events
+*
+*/
+
+#include "ut_atsptspeventsstub.h"
+#include "tsptriggerevents.h"
+
+#include <e32property.h> 
+#include <W32STD.H> 
+
+CUt_AtspTspEventsStub* CUt_AtspTspEventsStub::NewL()
+    {
+    CUt_AtspTspEventsStub* self = new( ELeave ) CUt_AtspTspEventsStub();
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop();
+    return self;
+    }
+
+CUt_AtspTspEventsStub::~CUt_AtspTspEventsStub()
+    {
+    Cancel(); 
+    }
+
+CUt_AtspTspEventsStub::CUt_AtspTspEventsStub()
+    : CTimer(CActive::EPriorityStandard), iIsRunLCalled(EFalse), iIsTimerElapsed(EFalse)
+    {
+    }
+
+void CUt_AtspTspEventsStub::ConstructL()
+    {
+    CTimer::ConstructL();
+    CActiveScheduler::Add(this);
+    }
+
+void CUt_AtspTspEventsStub::IssueAudioPropertyL()
+    {
+    _LIT(KAppName, "ut_atspaudioproperty.exe");
+    RProcess process;
+    TInt error = process.Create(KAppName, KNullDesC);
+    User::LeaveIfError(error);
+    CleanupClosePushL(process);
+    TRequestStatus status;
+    process.Rendezvous(status);
+    process.Resume();
+    User::WaitForRequest(status);
+    User::LeaveIfError(status.Int());
+    
+    CleanupStack::PopAndDestroy();
+    }
+
+void CUt_AtspTspEventsStub::IssueTspPropertyL()
+    {
+    const TUid KTspClientMapperProperty = { 0x10200C70 };
+    const TUint32 KTspClientMapperKeyPlaying = 0x00000001;
+    
+    RProperty myProperty;
+    CleanupClosePushL(myProperty);
+    // The value of the property 
+    TUint16 array[4] = {10,20,30,40};
+    TBuf16<10> buf;
+    buf.Copy(&array[0],sizeof(array));
+
+    // Attach and set the property
+    User::LeaveIfError(myProperty.Attach(KTspClientMapperProperty, KTspClientMapperKeyPlaying, EOwnerThread));
+    User::LeaveIfError(myProperty.Set(buf));
+
+    // CLose the property
+    CleanupStack::PopAndDestroy();
+    }
+
+void CUt_AtspTspEventsStub::IssueWsEventL(const TInt aType)
+    {
+    RWsSession  ws;
+    User::LeaveIfError(ws.Connect());
+    CleanupClosePushL(ws);
+
+    TWsEvent   event;
+    event.SetType(aType);
+    ws.SendEventToAllWindowGroups(event);
+    
+    ws.Finish();
+    CleanupStack::PopAndDestroy(&ws);
+    }
+
+void CUt_AtspTspEventsStub::MtrtoEvaluateRoutingRules()
+    {
+    iIsRunLCalled = ETrue;
+    CActiveScheduler::Stop();
+    }
+
+void CUt_AtspTspEventsStub::RunL()
+    {
+    iIsTimerElapsed = ETrue;
+    CActiveScheduler::Stop();
+    }
+
+void CUt_AtspTspEventsStub::DoCancel()
+    {
+    CTimer::DoCancel(); 
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/advancedtspcontroller/tsrc/ut_atsp/ut_atspaudioproperty/group/bld.inf	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,22 @@
+/*
+* 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: The test application to issue audio property with specified sid.
+*
+*/
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_MMPFILES
+ut_atspaudioproperty.mmp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/advancedtspcontroller/tsrc/ut_atsp/ut_atspaudioproperty/group/ut_atspaudioproperty.mmp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,35 @@
+/*
+* 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: The test application to issue audio property with specified sid.
+*
+*/
+
+TARGET		  ut_atspaudioproperty.exe
+TARGETTYPE	  exe
+UID			 0 0xA89FA86B
+SECUREID     0x101F457f
+
+USERINCLUDE	 ..\inc
+OS_LAYER_SYSTEMINCLUDE
+MW_LAYER_SYSTEMINCLUDE
+SYSTEMINCLUDE   \epoc32\include\mmf\common
+
+SOURCEPATH	  ..\src
+SOURCE		  ut_atspaudioproperty.cpp
+
+LIBRARY		 euser.lib
+
+#ifdef ENABLE_ABIV2_MODE
+DEBUGGABLE_UDEBONLY
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/advancedtspcontroller/tsrc/ut_atsp/ut_atspaudioproperty/inc/ut_atspaudioproperty.h	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,30 @@
+/*
+* 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: The test application to issue audio property with specified sid.
+*
+*/
+
+#ifndef UT_ATSPAUDIOPROPERTY_H
+#define UT_ATSPAUDIOPROPERTY_H
+
+//  Include Files
+
+#include <e32base.h>
+
+//  Function Prototypes
+
+GLDEF_C TInt E32Main();
+
+#endif  // UT_ATSPAUDIOPROPERTY_H
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/advancedtspcontroller/tsrc/ut_atsp/ut_atspaudioproperty/src/ut_atspaudioproperty.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,97 @@
+/*
+* 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: The test application to issue audio property with specified sid.
+*
+*/
+
+//  Include Files  
+
+#include "ut_atspaudioproperty.h"
+#include <e32base.h>
+#include <e32std.h>
+#include <e32cons.h>			// Console
+
+#include <e32property.h> 
+#include <AudioClientsListPSKeys.h>
+
+//  Constants
+
+_LIT(KTextConsoleTitle, "Console");
+_LIT(KTextFailed, " failed, leave code = %d");
+
+//  Global Variables
+
+LOCAL_D CConsoleBase* console; // write all messages to this
+
+
+//  Local Functions
+
+LOCAL_C void MainL()
+    {
+    RProperty myProperty;
+    CleanupClosePushL(myProperty);
+    // The value of the property 
+    TUint16 array[4] = {10,20,30,40};
+    TBuf16<10> buf;
+    buf.Copy(&array[0],sizeof(array));
+
+    // Attach and set the property
+    User::LeaveIfError(myProperty.Attach(KPSUidMMFAudioServer, KAudioPolicyApplicationAudioStatePlaying, EOwnerThread));
+    User::LeaveIfError(myProperty.Set(buf));
+
+    // CLose the property
+    CleanupStack::PopAndDestroy();  
+    }
+
+LOCAL_C void DoStartL()
+    {
+    // Create active scheduler (to run active objects)
+    CActiveScheduler* scheduler = new (ELeave) CActiveScheduler();
+    CleanupStack::PushL(scheduler);
+    CActiveScheduler::Install(scheduler);
+
+    MainL();
+
+    // Delete active scheduler
+    CleanupStack::PopAndDestroy(scheduler);
+    }
+
+//  Global Functions
+
+GLDEF_C TInt E32Main()
+    {
+    // Create cleanup stack
+    __UHEAP_MARK;
+    CTrapCleanup* cleanup = CTrapCleanup::New();
+
+    // Create output console
+    TRAPD(createError, console = Console::NewL(KTextConsoleTitle, TSize(
+            KConsFullScreen, KConsFullScreen)));
+    if (createError)
+        {
+        delete cleanup;
+        return createError;
+        }
+
+    // Run application code inside TRAP harness, wait keypress when terminated
+    TRAPD(mainError, DoStartL());
+    if (mainError)
+        console->Printf(KTextFailed, mainError);
+
+    delete console;
+    delete cleanup;
+    __UHEAP_MARKEND;
+    return KErrNone;
+    }
+
--- a/coreapplicationuis/hbdeviceinputdialogplugin/hbdeviceinputdialogplugin.pro	Wed Sep 29 15:24:56 2010 +0300
+++ b/coreapplicationuis/hbdeviceinputdialogplugin/hbdeviceinputdialogplugin.pro	Thu Oct 07 06:25:45 2010 +0300
@@ -52,8 +52,7 @@
 BLD_INF_RULES.prj_exports += \
   "$${LITERAL_HASH}include <platform_paths.hrh>" \
   "qmakepluginstubs/HbDeviceInputDialogPlugin.qtplugin   		/epoc32/data/z/pluginstub/HbDeviceInputDialogPlugin.qtplugin"\
-  ".\rom\hbdeviceinputdialogplugin.iby             				CORE_MW_LAYER_IBY_EXPORT_PATH(hbdeviceinputdialogplugin.iby)" \
-  ".\rom\hbdeviceinputdialogplugin_resources.iby 						LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(hbdeviceinputdialogplugin_resources.iby)"
+  ".\rom\hbdeviceinputdialogplugin.iby             				CORE_MW_LAYER_IBY_EXPORT_PATH(hbdeviceinputdialogplugin.iby)"
 }
 
 
--- a/coreapplicationuis/hbdeviceinputdialogplugin/rom/hbdeviceinputdialogplugin_resources.iby	Wed Sep 29 15:24:56 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-/*
- * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of "Eclipse Public License v1.0"
- * which accompanies this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html".
- *
- * Initial Contributors:
- * Nokia Corporation - initial contribution.
- *
- * Contributors:
- *
- * Description:
- *
- */
- 
-#ifndef __HBDEVICEINPUTDIALOGPLUGIN_RESOURCES_IBY__
-#define __HBDEVICEINPUTDIALOGPLUGIN_RESOURCES_IBY__
-
-//this iby is required for language specific things to be exported to Language iby layer
-#include <data_caging_paths_for_iby.hrh>
-
-data=DATAZ_\QT_TRANSLATIONS_DIR\device_input_dialog.qm	QT_TRANSLATIONS_DIR\device_input_dialog.qm
-
-
-#endif //__HBDEVICEINPUTDIALOGPLUGIN_RESOURCES_IBY__
--- a/coreapplicationuis/powersaveutilities/pluginlauncher/pluginlauncher.pro	Wed Sep 29 15:24:56 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
-#
-# Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
-# All rights reserved.
-# This component and the accompanying materials are made available
-# under the terms of "Eclipse Public License v1.0"
-# which accompanies this distribution, and is available
-# at the URL "http://www.eclipse.org/legal/epl-v10.html".
-#
-# Initial Contributors:
-# Nokia Corporation - initial contribution.
-#
-# Contributors:
-#
-# Description: cpframework source files
-#
-
-TEMPLATE = app
-TARGET = CpPsmPluginLauncher
-DEPENDPATH += .
-INCLUDEPATH += .
-
-HEADERS += src/*.h
-SOURCES += src/*.cpp
-
-CONFIG += hb
-CONFIG += no_icon
-
-MOC_DIR = moc
-OBJECT_DIR = obj
-RCC_DIR = rcc
-
-symbian: {
-    TARGET.UID3 = 0x2002DD0C 
-    INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE
-    TARGET.CAPABILITY =  ReadDeviceData  WriteDeviceData
-    TARGET.EPOCALLOWDLLDATA = 1
-}
-
-LIBS +=  -lcpframework
-BLD_INF_RULES.prj_exports += "$${LITERAL_HASH}include <platform_paths.hrh>" \
-    "rom/pluginlauncher.iby CORE_MW_LAYER_IBY_EXPORT_PATH(pluginlauncher.iby)" 
\ No newline at end of file
--- a/coreapplicationuis/powersaveutilities/pluginlauncher/rom/pluginlauncher.iby	Wed Sep 29 15:24:56 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,22 +0,0 @@
-
-/*
-* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: 
-*
-*/
-
-file=ABI_DIR\BUILD_DIR\CpPsmPluginLauncher.exe         			\sys\bin\CpPsmPluginLauncher.exe 
-CP_UPGRADABLE_APP_REG_RSC(CpPsmPluginLauncher)    
-S60_APP_RESOURCE(CpPsmPluginLauncher)   
-
--- a/coreapplicationuis/powersaveutilities/pluginlauncher/src/main.cpp	Wed Sep 29 15:24:56 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-/*
-* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0""
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  
-*
-*/
-
-#include <hbapplication.h>
-#include <QDir>
-#include <hbmainwindow.h>
-#include <cpbasepath.h>
-#include "mainview.h"
-#include <e32debug.h>
-
-int main(int argc, char **argv)
-{
-    RDebug::Print( _L("plugin launcher main begin  ") ); 
-    HbApplication app(argc, argv);
-        
-    HbMainWindow mainWindow;
-    MainView *mainView = new MainView();
-    mainWindow.addView(mainView);
-    mainWindow.show();
-    RDebug::Print( _L("plugin launcher main end") ); 
-    return app.exec();
-}
-
-//End of File
-
--- a/coreapplicationuis/powersaveutilities/pluginlauncher/src/mainview.cpp	Wed Sep 29 15:24:56 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,58 +0,0 @@
-/*
-* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0""
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  
-*
-*/
-#include "mainview.h"
-#include <hbmenu.h>
-#include <hbaction.h>
-#include <qcoreapplication.h>
-#include <cppluginlauncher.h>
-#include <QStringList>
-#include <cpbasesettingview.h>
-#include <hbmessagebox.h>
-#include <e32debug.h>
-
-
-MainView::MainView(QGraphicsItem *parent/* = 0*/)
-: HbView(parent)
-{
-	RDebug::Print( _L("plugin launcher MainView begin  ") ); 
-	init();
-	RDebug::Print( _L("plugin launcher MainView end  ") ); 
-}
-
-MainView::~MainView()
-{
-RDebug::Print( _L("plugin launcher MainView desructor  ") ); 
-}
-
-void MainView::init()
-{
-	RDebug::Print( _L("plugin launcher MainView init begin  ") ); 
-    launchInProcessProfileView();
-  RDebug::Print( _L("plugin launcher MainView init end  ") ) ;   
-}
-
-void MainView::launchInProcessProfileView()
-{
-   RDebug::Print( _L("plugin launcher MainView launchInProcessProfileView begin  ") );  
-    //static function which launches the psmplugin view
-   CpPluginLauncher::launchSettingView("C:/resource/qt/plugins/controlpanel/cppsmplugin.dll","psm_view");
-   RDebug::Print( _L("plugin launcher MainView launchInProcessProfileView end  "));  
-}
-
-
-
-//End of File
--- a/coreapplicationuis/powersaveutilities/pluginlauncher/src/mainview.h	Wed Sep 29 15:24:56 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-/*
-* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0""
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  
-*
-*/
-#ifndef MAINVIEW_H
-#define MAINVIEW_H
-
-#include <hbview.h>
-
-class MainView : public HbView
-{
-	Q_OBJECT
-public:
-    explicit MainView(QGraphicsItem *parent = 0);
-    virtual ~MainView();
-private:
-	void init();
-private slots:
-    void launchInProcessProfileView();
-private:
-    Q_DISABLE_COPY(MainView)
-};
-
-#endif
--- a/coreapplicationuis/powersaveutilities/powersaveutilities.pro	Wed Sep 29 15:24:56 2010 +0300
+++ b/coreapplicationuis/powersaveutilities/powersaveutilities.pro	Thu Oct 07 06:25:45 2010 +0300
@@ -19,8 +19,7 @@
 symbian: {
 :BLD_INF_RULES.prj_mmpfiles += $$LITERAL_HASH"include \"bsutil/group/bld.inf\""
 SUBDIRS = cppsmplugin \
-  			  psmindicatorplugin \
-  			  pluginlauncher 
-  			 
+  			  psmindicatorplugin 
+  			    			 
 } 
 CONFIG += ordered
\ No newline at end of file
--- a/coreapplicationuis/powersaveutilities/psmindicatorplugin/inc/psmindicator.h	Wed Sep 29 15:24:56 2010 +0300
+++ b/coreapplicationuis/powersaveutilities/psmindicatorplugin/inc/psmindicator.h	Thu Oct 07 06:25:45 2010 +0300
@@ -26,6 +26,7 @@
 #include <hbindicatorinterface.h>
 #include <hbindicatorplugininterface.h>
 #include <hbtranslator.h>
+#include <xqappmgr.h>
 
 
 /**
@@ -63,17 +64,20 @@
 
     QString iDisplayName;
     QString iIcon;
-    QProcess iProcess;
     QStringList iIndicatorTypes;
     HbTranslator *iTrans;
   
     
 private slots:
-    void processError(QProcess::ProcessError err); // handler for error codes
-
+    
+       
+    void closeSettingView();
 private:
     Q_DISABLE_COPY(PsmIndicatorPlugin)
     int mError;
+    //Qthighway methodology
+    XQApplicationManager mAppMgr;
+    XQAiwRequest *mRequest;
     };
 
 #endif // PSMINDICATOR_H
--- a/coreapplicationuis/powersaveutilities/psmindicatorplugin/psmindicatorplugin.pro	Wed Sep 29 15:24:56 2010 +0300
+++ b/coreapplicationuis/powersaveutilities/psmindicatorplugin/psmindicatorplugin.pro	Thu Oct 07 06:25:45 2010 +0300
@@ -33,7 +33,7 @@
     pluginstub.sources = psmindicatorplugin.dll
     pluginstub.path = /resource/plugins/indicators
     DEPLOYMENT += pluginstub
-    LIBS += -lcpframework 
+    LIBS += -lcpframework -lxqservice
 
 }
 BLD_INF_RULES.prj_exports += "$${LITERAL_HASH}include <platform_paths.hrh>" \
--- a/coreapplicationuis/powersaveutilities/psmindicatorplugin/src/psmindicator.cpp	Wed Sep 29 15:24:56 2010 +0300
+++ b/coreapplicationuis/powersaveutilities/psmindicatorplugin/src/psmindicator.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -26,6 +26,10 @@
 #include <hbaction.h>
 #include <cpbasesettingview.h>
 #include <e32debug.h>
+#include <hbmessagebox.h>
+#include <xqaiwrequest.h>
+#include <XQServiceRequest.h>
+#include <QTimer>
 
 
 Q_EXPORT_PLUGIN(PsmIndicatorPlugin)
@@ -33,7 +37,7 @@
 QString KPsm = "PSM";
 QString KCharging = "Charging";
 
-PsmIndicatorPlugin::PsmIndicatorPlugin():HbIndicatorInterface(IndicatorType,HbIndicatorInterface::NotificationCategory,InteractionActivated)
+PsmIndicatorPlugin::PsmIndicatorPlugin():HbIndicatorInterface(IndicatorType,HbIndicatorInterface::NotificationCategory,InteractionActivated),mRequest(NULL)
     {
     RDebug::Print( _L("PsmIndicatorPlugin constructor begin  ") );  
     iIndicatorTypes << "com.nokia.hb.powersavemodeplugin/1.0";
@@ -107,15 +111,44 @@
     RDebug::Print( _L("PsmIndicatorPlugin handleinteraction begin  ")); 
     if (type == InteractionActivated) 
         {
-         RDebug::Print( _L("PsmIndicatorPlugin handleinteraction inside interactionactivated  ") );	
-         QObject::connect( &iProcess, SIGNAL(error(QProcess::ProcessError)),                       
-                                          this, SLOT(processError(QProcess::ProcessError)));
-                                          
-         // Launch the process to show the view.
-         iProcess.start("CpPsmPluginLauncher");
-         handled = true;
+         RDebug::Print( _L("PsmIndicatorPlugin handleinteractiontype  interactionactivated  ") );	
+       //Qthighway methodology      
+       if (mRequest)
+       	{
+        delete mRequest;
+        mRequest = NULL;
+        }
+    
+        mRequest = mAppMgr.create("com.nokia.symbian.ICpPluginLauncher", "launchSettingView(QString,QVariant)", false);
+
+       if (!mRequest)
+       {
+        return handled;
+       }
+       
+
+
+       // Set arguments for request 
+       QList<QVariant> args;
+       args << QVariant( "cppsmplugin.dll" );
+       args << QVariant ( "psm_view" );
+       mRequest->setArguments(args);
+
+       mRequest->setSynchronous(false);
+    
+       QTimer::singleShot(20* 1000, this, SLOT(closeSettingView()));
+    
+       // Make the request
+       if (!mRequest->send())
+       {
+        //report error  
+        RDebug::Print( _L("PsmIndicatorPlugin handleinteraction error launching the psmview  "));    
+       }
+        
+        
+       handled = true;
                         
-        }   
+       }   
     RDebug::Print( _L("PsmIndicatorPlugin handleinteraction end  ") );         
     return handled;
     }
@@ -172,7 +205,7 @@
             else
               {
             RDebug::Print( _L("PsmIndicatorPlugin handleclientrequest requestactivate charging  ") );   	  	
-            iDisplayName.append(hbTrId("txt_power_management_dblist_charging"));
+            iDisplayName.append(hbTrId("txt_powermgt_dblist_charging"));
             iIcon.append(QString("qtg_mono_flash_charging"));
                }
 
@@ -199,26 +232,10 @@
     }
 
 
-// ----------------------------------------------------------------------------
-// psmIndicator::processError
-// handle the error conditions returned by the QProcess.
-// ----------------------------------------------------------------------------
-
-void PsmIndicatorPlugin::processError(QProcess::ProcessError err)
-    {
-    RDebug::Print( _L("PsmIndicatorPlugin processerror begin  "));   		
-    switch (err)
-        {   
-        case QProcess::FailedToStart: 
-        case QProcess::Crashed: 
-        case QProcess::Timedout: 
-        case QProcess::ReadError: 
-        case QProcess::WriteError: 
-        case QProcess::UnknownError:
-             break;  
-        default:
-            break;
-        }
+void PsmIndicatorPlugin::closeSettingView()
+{   
+    if (mRequest) {
+        delete mRequest;
+        mRequest = NULL;
     }
-
-
+}
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/tsrc/rfspluginstest/ClockRFSPluginTestModule/src/ClockRFSPluginTestModule.cpp	Wed Sep 29 15:24:56 2010 +0300
+++ b/coreapplicationuis/rfsplugins/tsrc/rfspluginstest/ClockRFSPluginTestModule/src/ClockRFSPluginTestModule.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -167,6 +167,7 @@
 
     // Delete resources allocated from test methods
     Delete();
+    REComSession::FinalClose();
 
     // Delete logger
     delete iLog; 
--- a/coreapplicationuis/rfsplugins/tsrc/rfspluginstest/msgcentrerfsplugintest/conf/msgcentrerfsplugintest.cfg	Wed Sep 29 15:24:56 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,244 +0,0 @@
-[Define]
-KMessageCentreRfsPluginUid 537013634
-ENormalRfs 0
-EDeepRfs 1
-EInitRfs 2
-EFooRfs -1
-[Enddefine]
-
-[StifSettings]
-CheckHeapBalance=on
-[EndStifSettings]
-
-[Test]
-title MessageCentreRFSPlugin create and destroy
-create msgcentrerfsplugintest testClass
-print About to create plugin
-testClass CreatePlugin KMessageCentreRfsPluginUid
-print Plugin created
-pause 100
-testClass DestroyPlugin
-print Plugin destroyed
-delete testClass
-[Endtest] 
-
-[Test]
-title MessageCentreRFSPlugin normal RFS
-create msgcentrerfsplugintest testClass
-testClass CreatePlugin KMessageCentreRfsPluginUid
-print Plugin created
-testClass RestoreFactorySettings ENormalRfs
-print Normal rfs done
-testClass DestroyPlugin
-print Plugin destroyed
-delete testClass
-[Endtest] 
-
-[Test]
-title MessageCentreRFSPlugin deep RFS
-create msgcentrerfsplugintest testClass
-testClass CreatePlugin KMessageCentreRfsPluginUid
-print Plugin created
-testClass RestoreFactorySettings EDeepRfs
-print Deep rfs done
-testClass DestroyPlugin
-print Plugin destroyed
-delete testClass
-[Endtest] 
-
-[Test]
-title MessageCentreRFSPlugin init RFS
-create msgcentrerfsplugintest testClass
-testClass CreatePlugin KMessageCentreRfsPluginUid
-print Plugin created
-testClass RestoreFactorySettings EInitRfs
-print Init rfs done
-testClass DestroyPlugin
-print Plugin destroyed
-delete testClass
-[Endtest] 
-
-[Test]
-title MessageCentreRFSPlugin foo RFS
-create msgcentrerfsplugintest testClass
-testClass CreatePlugin KMessageCentreRfsPluginUid
-print Plugin created
-testClass RestoreFactorySettings EFooRfs
-print Foo rfs done
-testClass DestroyPlugin
-print Plugin destroyed
-delete testClass
-[Endtest]
-
-[Test]
-title MessageCentreRFSPlugin normal RFS get script
-create msgcentrerfsplugintest testClass
-print About to normal rfs
-testClass CreatePlugin KMessageCentreRfsPluginUid
-print Plugin created
-testClass GetScript ENormalRfs
-print Get script done
-testClass DestroyPlugin
-print Plugin destroyed
-delete testClass
-[Endtest]
-
-[Test]
-title MessageCentreRFSPlugin deep RFS get script
-create msgcentrerfsplugintest testClass
-print About to normal rfs
-testClass CreatePlugin KMessageCentreRfsPluginUid
-print Plugin created
-testClass GetScript EDeepRfs
-print Get script done
-testClass DestroyPlugin
-print Plugin destroyed
-delete testClass
-[Endtest]
-
-[Test]
-title MessageCentreRFSPlugin init RFS get script
-create msgcentrerfsplugintest testClass
-print About to normal rfs
-testClass CreatePlugin KMessageCentreRfsPluginUid
-print Plugin created
-testClass GetScript EInitRfs
-print Get script done
-testClass DestroyPlugin
-print Plugin destroyed
-delete testClass
-[Endtest]
-
-[Test]
-title MessageCentreRFSPlugin foo RFS get script
-create msgcentrerfsplugintest testClass
-print About to normal rfs
-testClass CreatePlugin KMessageCentreRfsPluginUid
-print Plugin created
-testClass GetScript EFooRfs
-print Get script done
-testClass DestroyPlugin
-print Plugin destroyed
-delete testClass
-[Endtest]
-
-[Test]
-title MessageCentreRFSPlugin normal RFS custom cmd
-create msgcentrerfsplugintest testClass
-print About to normal rfs
-testClass CreatePlugin KMessageCentreRfsPluginUid
-print Plugin created
-testClass ExecuteCustomCommand ENormalRfs
-print Cmd done
-testClass DestroyPlugin
-print Plugin destroyed
-delete testClass
-[Endtest]
-
-[Test]
-title MessageCentreRFSPlugin deep RFS custom cmd
-create msgcentrerfsplugintest testClass
-print About to normal rfs
-testClass CreatePlugin KMessageCentreRfsPluginUid
-print Plugin created
-testClass ExecuteCustomCommand EDeepRfs
-print Cmd done
-testClass DestroyPlugin
-print Plugin destroyed
-delete testClass
-[Endtest]
-
-[Test]
-title MessageCentreRFSPlugin init RFS custom cmd
-create msgcentrerfsplugintest testClass
-print About to normal rfs
-testClass CreatePlugin KMessageCentreRfsPluginUid
-print Plugin created
-testClass ExecuteCustomCommand EInitRfs
-print Cmd done
-testClass DestroyPlugin
-print Plugin destroyed
-delete testClass
-[Endtest]
-
-[Test]
-title MessageCentreRFSPlugin foo RFS custom cmd
-create msgcentrerfsplugintest testClass
-print About to normal rfs
-testClass CreatePlugin KMessageCentreRfsPluginUid
-print Plugin created
-testClass ExecuteCustomCommand EFooRfs
-print Cmd done
-testClass DestroyPlugin
-print Plugin destroyed
-delete testClass
-[Endtest]
-
-
-[Test]
-title MessageCentreRFSPlugin normal RFS full seq
-create msgcentrerfsplugintest testClass
-print About to do seq
-testClass CreatePlugin KMessageCentreRfsPluginUid
-print Plugin created
-testClass RestoreFactorySettings ENormalRfs
-print Rfs done
-testClass GetScript ENormalRfs
-print Get script done
-testClass ExecuteCustomCommand ENormalRfs
-print Cmd done
-testClass DestroyPlugin
-print Plugin destroyed
-delete testClass
-[Endtest]
-
-[Test]
-title MessageCentreRFSPlugin deep RFS full seq
-create msgcentrerfsplugintest testClass
-print About to do seq
-testClass CreatePlugin KMessageCentreRfsPluginUid
-print Plugin created
-testClass RestoreFactorySettings EDeepRfs
-print Rfs done
-testClass GetScript EDeepRfs
-print Get script done
-testClass ExecuteCustomCommand EDeepRfs
-print Cmd done
-testClass DestroyPlugin
-print Plugin destroyed
-delete testClass
-[Endtest]
-
-[Test]
-title MessageCentreRFSPlugin init RFS full seq
-create msgcentrerfsplugintest testClass
-print About to do seq
-testClass CreatePlugin KMessageCentreRfsPluginUid
-print Plugin created
-testClass RestoreFactorySettings EInitRfs
-print Rfs done
-testClass GetScript EInitRfs
-print Get script done
-testClass ExecuteCustomCommand EInitRfs
-print Cmd done
-testClass DestroyPlugin
-print Plugin destroyed
-delete testClass
-[Endtest]
-
-[Test]
-title MessageCentreRFSPlugin foo RFS full seq
-create msgcentrerfsplugintest testClass
-print About to do seq
-testClass CreatePlugin KMessageCentreRfsPluginUid
-print Plugin created
-testClass RestoreFactorySettings EFooRfs
-print Rfs done
-testClass GetScript EFooRfs
-print Get script done
-testClass ExecuteCustomCommand EFooRfs
-print Cmd done
-testClass DestroyPlugin
-print Plugin destroyed
-delete testClass
-[Endtest]
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/rfsplugins/tsrc/rfspluginstest/msgcentrerfsplugintest/conf/ui_msgcentrerfsplugintest.cfg	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,244 @@
+[Define]
+KMessageCentreRfsPluginUid 537013634
+ENormalRfs 0
+EDeepRfs 1
+EInitRfs 2
+EFooRfs -1
+[Enddefine]
+
+[StifSettings]
+CheckHeapBalance=on
+[EndStifSettings]
+
+[Test]
+title MessageCentreRFSPlugin create and destroy
+create msgcentrerfsplugintest testClass
+print About to create plugin
+testClass CreatePlugin
+print Plugin created
+pause 100
+testClass DestroyPlugin
+print Plugin destroyed
+delete testClass
+[Endtest] 
+
+[Test]
+title MessageCentreRFSPlugin normal RFS
+create msgcentrerfsplugintest testClass
+testClass CreatePlugin
+print Plugin created
+testClass RestoreFactorySettings ENormalRfs
+print Normal rfs done
+testClass DestroyPlugin
+print Plugin destroyed
+delete testClass
+[Endtest] 
+
+[Test]
+title MessageCentreRFSPlugin deep RFS
+create msgcentrerfsplugintest testClass
+testClass CreatePlugin 
+print Plugin created
+testClass RestoreFactorySettings EDeepRfs
+print Deep rfs done
+testClass DestroyPlugin
+print Plugin destroyed
+delete testClass
+[Endtest] 
+
+[Test]
+title MessageCentreRFSPlugin init RFS
+create msgcentrerfsplugintest testClass
+testClass CreatePlugin 
+print Plugin created
+testClass RestoreFactorySettings EInitRfs
+print Init rfs done
+testClass DestroyPlugin
+print Plugin destroyed
+delete testClass
+[Endtest] 
+
+[Test]
+title MessageCentreRFSPlugin foo RFS
+create msgcentrerfsplugintest testClass
+testClass CreatePlugin 
+print Plugin created
+testClass RestoreFactorySettings EFooRfs
+print Foo rfs done
+testClass DestroyPlugin
+print Plugin destroyed
+delete testClass
+[Endtest]
+
+[Test]
+title MessageCentreRFSPlugin normal RFS get script
+create msgcentrerfsplugintest testClass
+print About to normal rfs
+testClass CreatePlugin 
+print Plugin created
+testClass GetScript ENormalRfs
+print Get script done
+testClass DestroyPlugin
+print Plugin destroyed
+delete testClass
+[Endtest]
+
+[Test]
+title MessageCentreRFSPlugin deep RFS get script
+create msgcentrerfsplugintest testClass
+print About to normal rfs
+testClass CreatePlugin 
+print Plugin created
+testClass GetScript EDeepRfs
+print Get script done
+testClass DestroyPlugin
+print Plugin destroyed
+delete testClass
+[Endtest]
+
+[Test]
+title MessageCentreRFSPlugin init RFS get script
+create msgcentrerfsplugintest testClass
+print About to normal rfs
+testClass CreatePlugin 
+print Plugin created
+testClass GetScript EInitRfs
+print Get script done
+testClass DestroyPlugin
+print Plugin destroyed
+delete testClass
+[Endtest]
+
+[Test]
+title MessageCentreRFSPlugin foo RFS get script
+create msgcentrerfsplugintest testClass
+print About to normal rfs
+testClass CreatePlugin 
+print Plugin created
+testClass GetScript EFooRfs
+print Get script done
+testClass DestroyPlugin
+print Plugin destroyed
+delete testClass
+[Endtest]
+
+[Test]
+title MessageCentreRFSPlugin normal RFS custom cmd
+create msgcentrerfsplugintest testClass
+print About to normal rfs
+testClass CreatePlugin 
+print Plugin created
+testClass ExecuteCustomCommand ENormalRfs
+print Cmd done
+testClass DestroyPlugin
+print Plugin destroyed
+delete testClass
+[Endtest]
+
+[Test]
+title MessageCentreRFSPlugin deep RFS custom cmd
+create msgcentrerfsplugintest testClass
+print About to normal rfs
+testClass CreatePlugin 
+print Plugin created
+testClass ExecuteCustomCommand EDeepRfs
+print Cmd done
+testClass DestroyPlugin
+print Plugin destroyed
+delete testClass
+[Endtest]
+
+[Test]
+title MessageCentreRFSPlugin init RFS custom cmd
+create msgcentrerfsplugintest testClass
+print About to normal rfs
+testClass CreatePlugin 
+print Plugin created
+testClass ExecuteCustomCommand EInitRfs
+print Cmd done
+testClass DestroyPlugin
+print Plugin destroyed
+delete testClass
+[Endtest]
+
+[Test]
+title MessageCentreRFSPlugin foo RFS custom cmd
+create msgcentrerfsplugintest testClass
+print About to normal rfs
+testClass CreatePlugin 
+print Plugin created
+testClass ExecuteCustomCommand EFooRfs
+print Cmd done
+testClass DestroyPlugin
+print Plugin destroyed
+delete testClass
+[Endtest]
+
+
+[Test]
+title MessageCentreRFSPlugin normal RFS full seq
+create msgcentrerfsplugintest testClass
+print About to do seq
+testClass CreatePlugin 
+print Plugin created
+testClass RestoreFactorySettings ENormalRfs
+print Rfs done
+testClass GetScript ENormalRfs
+print Get script done
+testClass ExecuteCustomCommand ENormalRfs
+print Cmd done
+testClass DestroyPlugin
+print Plugin destroyed
+delete testClass
+[Endtest]
+
+[Test]
+title MessageCentreRFSPlugin deep RFS full seq
+create msgcentrerfsplugintest testClass
+print About to do seq
+testClass CreatePlugin 
+print Plugin created
+testClass RestoreFactorySettings EDeepRfs
+print Rfs done
+testClass GetScript EDeepRfs
+print Get script done
+testClass ExecuteCustomCommand EDeepRfs
+print Cmd done
+testClass DestroyPlugin
+print Plugin destroyed
+delete testClass
+[Endtest]
+
+[Test]
+title MessageCentreRFSPlugin init RFS full seq
+create msgcentrerfsplugintest testClass
+print About to do seq
+testClass CreatePlugin 
+print Plugin created
+testClass RestoreFactorySettings EInitRfs
+print Rfs done
+testClass GetScript EInitRfs
+print Get script done
+testClass ExecuteCustomCommand EInitRfs
+print Cmd done
+testClass DestroyPlugin
+print Plugin destroyed
+delete testClass
+[Endtest]
+
+[Test]
+title MessageCentreRFSPlugin foo RFS full seq
+create msgcentrerfsplugintest testClass
+print About to do seq
+testClass CreatePlugin 
+print Plugin created
+testClass RestoreFactorySettings EFooRfs
+print Rfs done
+testClass GetScript EFooRfs
+print Get script done
+testClass ExecuteCustomCommand EFooRfs
+print Cmd done
+testClass DestroyPlugin
+print Plugin destroyed
+delete testClass
+[Endtest]
\ No newline at end of file
--- a/coreapplicationuis/rfsplugins/tsrc/rfspluginstest/msgcentrerfsplugintest/group/bld.inf	Wed Sep 29 15:24:56 2010 +0300
+++ b/coreapplicationuis/rfsplugins/tsrc/rfspluginstest/msgcentrerfsplugintest/group/bld.inf	Thu Oct 07 06:25:45 2010 +0300
@@ -25,8 +25,8 @@
 ../init/msgcentrerfsplugintest.ini /epoc32/winscw/c/testframework/testframework.ini
 ../init/msgcentrerfsplugintest.ini /epoc32/data/z/system/data/TestFramework.ini
 
-../conf/msgcentrerfsplugintest.cfg /epoc32/winscw/c/testframework/msgcentrerfsplugintest.cfg
-../conf/msgcentrerfsplugintest.cfg /epoc32/data/z/system/data/msgcentrerfsplugintest.cfg
+../conf/ui_msgcentrerfsplugintest.cfg /epoc32/winscw/c/testframework/ui_msgcentrerfsplugintest.cfg
+../conf/ui_msgcentrerfsplugintest.cfg /epoc32/data/z/system/data/ui_msgcentrerfsplugintest.cfg
 
 ../rom/msgcentrerfsplugintest.iby                              CORE_MW_LAYER_IBY_EXPORT_PATH(msgcentrerfsplugintest.iby)
 
--- a/coreapplicationuis/rfsplugins/tsrc/rfspluginstest/msgcentrerfsplugintest/group/msgcentrerfsplugintest.mmp	Wed Sep 29 15:24:56 2010 +0300
+++ b/coreapplicationuis/rfsplugins/tsrc/rfspluginstest/msgcentrerfsplugintest/group/msgcentrerfsplugintest.mmp	Thu Oct 07 06:25:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009-10 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -33,5 +33,6 @@
 
 LIBRARY     euser.lib
 LIBRARY     ecom.lib
-LIBRARY     stiftestinterface.lib
+LIBRARY     StifTestInterface.lib
+LIBRARY     StifTestEngine.lib
 LIBRARY     flogger.lib
--- a/coreapplicationuis/rfsplugins/tsrc/rfspluginstest/msgcentrerfsplugintest/inc/msgcentrerfsplugintest.h	Wed Sep 29 15:24:56 2010 +0300
+++ b/coreapplicationuis/rfsplugins/tsrc/rfspluginstest/msgcentrerfsplugintest/inc/msgcentrerfsplugintest.h	Thu Oct 07 06:25:45 2010 +0300
@@ -24,8 +24,11 @@
 #pragma once
 #endif
 
-#include <testscripterinternal.h>
 #include "trace.h"
+#include <StifLogger.h>
+#include <TestScripterInternal.h>
+#include <StifTestModule.h>
+#include <TestclassAssert.h>
 
 // CONSTANTS
 
--- a/coreapplicationuis/rfsplugins/tsrc/rfspluginstest/msgcentrerfsplugintest/inc/traceconfiguration.hrh	Wed Sep 29 15:24:56 2010 +0300
+++ b/coreapplicationuis/rfsplugins/tsrc/rfspluginstest/msgcentrerfsplugintest/inc/traceconfiguration.hrh	Thu Oct 07 06:25:45 2010 +0300
@@ -53,6 +53,8 @@
     #undef FUNC_TRACE
 #endif
 
+#define FUNC_TRACE
+
 /**
 * Timestamp tracing on
 */
--- a/coreapplicationuis/rfsplugins/tsrc/rfspluginstest/msgcentrerfsplugintest/init/msgcentrerfsplugintest.ini	Wed Sep 29 15:24:56 2010 +0300
+++ b/coreapplicationuis/rfsplugins/tsrc/rfspluginstest/msgcentrerfsplugintest/init/msgcentrerfsplugintest.ini	Thu Oct 07 06:25:45 2010 +0300
@@ -1,26 +1,8 @@
 #
-# 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 the License "Eclipse Public License v1.0"
-# which accompanies 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 STIFTestFramework initialization file
-#
-#
-
-
+# This is STIF initialization file
 # Comment lines start with '#'-character.
 # See STIF TestFramework users guide.doc for instructions
 
-
-
 # -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
 # Set following test engine settings:
 #	- Set Test Reporting mode. TestReportMode's possible values are:
@@ -40,6 +22,8 @@
 # 	- File format indicates the type of the test report.
 #		+ TXT, Test report file will be txt type, for example 'TestReport.txt'.
 #		+ HTML, Test report will be html type, for example 'TestReport.html'.
+#   + XML, Test report will be xml type, for example 'TestReport.xml'.
+#          Note, that xml format is available only when output is set to FILE.
 #
 # 	- File output indicates output source of the test report.
 #		+ FILE, Test report logging to file.
@@ -47,24 +31,47 @@
 #
 # 	- File Creation Mode indicates test report overwriting if file exist.
 #		+ OVERWRITE, Overwrites if the Test report file exist.
-#		+ APPEND, Continue logging after the old Test report information if 
+#		+ APPEND, Continue logging after the old Test report information if
 #                 report exist.
+# 	- Sets a device reset module's dll name(Reboot).
+#		+ If Nokia specific reset module is not available or it is not correct one
+#		  StifHWResetStub module may use as a template for user specific reset
+#		  module.
+# 	- Sets STIF test measurement disable options. e.g. pluging1 and pluging2 disablation
+#		DisableMeasurement= stifmeasurementplugin01 stifmeasurementplugin02
+#
 
 [Engine_Defaults]
 
-TestReportMode= FullReport		# Possible values are: 
-					# 'Summary', 'Environment', 'TestCases' or 'FullReport'
+TestReportMode= FullReport    # Possible values are: 'Empty', 'Summary', 'Environment',
+                              #                      'TestCases' or 'FullReport'
 
-CreateTestReport= YES			# Possible values: YES or NO
+CreateTestReport= YES         # Possible values: YES or NO
 
 TestReportFilePath= C:\LOGS\TestFramework\
 TestReportFileName= TestReport
 
-TestReportFormat= TXT			# Possible values: TXT or HTML
-TestReportOutput= FILE			# Possible values: FILE or RDEBUG
-TestReportFileCreationMode= OVERWRITE	# Possible values: OVERWRITE or APPEND
+TestReportFormat= TXT         # Possible values: TXT, HTML or XML
+TestReportOutput= FILE        # Possible values: FILE or RDEBUG
+TestReportFileCreationMode= OVERWRITE # Possible values: OVERWRITE or APPEND
+
+DeviceResetDllName= StifResetForNokia.dll # e.g. 'StifHWResetStub.dll' for user specific reseting
 
+DisableMeasurement= stifmeasurementdisablenone  # Possible values are:
+              # 'stifmeasurementdisablenone', 'stifmeasurementdisableall'
+              # 'stifmeasurementplugin01', 'stifmeasurementplugin02',
+              # 'stifmeasurementplugin03', 'stifmeasurementplugin04',
+              # 'stifmeasurementplugin05' or 'stifbappeaprofiler'
+
+Timeout= 0                    # Default timeout value for each test case. In milliseconds
+UITestingSupport= YES        # Possible values: YES or NO
+#SeparateProcesses= YES       # Possible values: YES or NO (default: NO)
 [End_Defaults]
+
+[New_Module]
+ModuleName= testscripter 
+TestCaseFile= Z:\TestFramework\ui_msgcentrerfsplugintest.cfg 
+[End_Module]
 # -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
 
 
@@ -75,11 +82,11 @@
 # tags. Module name is specified after ModuleName= tag, like
 # ModuleName= XXXXXXXXX
 # Modules might have initialisation file, specified as
-# IniFile= YYYYYY
+# IniFile= c:\testframework\YYYYYY
 # Modules might have several configuration files, like
-# TestCaseFile= NormalCases.txt
-# TestCaseFile= SmokeCases.txt
-# TestCaseFile= ManualCases.txt
+# TestCaseFile= c:\testframework\NormalCases.txt
+# TestCaseFile= c:\testframework\SmokeCases.txt
+# TestCaseFile= c:\testframework\ManualCases.txt
 
 # (TestCaseFile is synonym for old term ConfigFile)
 
@@ -89,10 +96,6 @@
 # In the simplest case it is enough to specify only the
 # name of the test module when adding new test module
 
-[New_Module]
-ModuleName= TestScripter
-TestCaseFile= Z:\testframework\msgcentrerfsplugintest.cfg
-[End_Module]
 
 
 # Load testmoduleXXX, optionally with initialization file and/or test case files
@@ -100,12 +103,12 @@
 #ModuleName= testmodulexxx
 
 #TestModuleXXX used initialization file
-#IniFile= init.txt
+#IniFile= c:\testframework\init.txt
 
 #TestModuleXXX used configuration file(s)
-#TestCaseFile= testcases1.cfg
-#TestCaseFile= testcases2.cfg
-#TestCaseFile= manualtestcases.cfg
+#TestCaseFile= c:\testframework\testcases1.cfg
+#TestCaseFile= c:\testframework\testcases2.cfg
+#TestCaseFile= c:\testframework\manualtestcases.cfg
 
 #[End_Module]
 # -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
@@ -113,7 +116,7 @@
 
 
 # -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-# Set STIFTestFramework logging overwrite parameters for Logger.
+# Set STIF logging overwrite parameters for Logger.
 # 	Hardware and emulator environment logging path and styles can
 # 	be configured from here to overwrite the Logger's implemented values.
 #	
@@ -158,34 +161,59 @@
 #		+ NO, No line break(s).
 #
 #	- Will event ranking include to the log file.
-#		+ YES, Event ranking number added to each line in log file(s). Ranking number 
+#		+ YES, Event ranking number added to each line in log file(s). Ranking number
 #                 depends on environment's tics, for example(includes time stamp also)
 #                 '012   12.Nov.2003 115958    LOGGING INFO'
 #		+ NO, No event ranking.
 #
+#	- Will write log file in unicode format.
+#		+ YES, Log file will be written in unicode format
+#		+ NO, Log will be written as normal, not unicode, file.
+#
 
 [Logger_Defaults]
 
-#NOTE: If you want to set Logger using next setting(s) remove comment(s)'#' 
+#NOTE: If you want to set Logger using next setting(s) remove comment(s)'#'
+#NOTE: TestEngine and TestServer logging settings cannot change here
 
-#CreateLogDirectories= YES		# Possible values: YES or NO
+#CreateLogDirectories= YES    # Possible values: YES or NO
 
 #EmulatorBasePath= C:\LOGS\TestFramework\
-#EmulatorFormat= HTML			# Possible values: TXT or HTML
-#EmulatorOutput= FILE			# Possible values: FILE or RDEBUG
+#EmulatorFormat= HTML         # Possible values: TXT or HTML
+#EmulatorOutput= FILE         # Possible values: FILE or RDEBUG
 
 #HardwareBasePath= D:\LOGS\TestFramework\
-#HardwareFormat= HTML			# Possible values: TXT or HTML
-#HardwareOutput= FILE			# Possible values: FILE or RDEBUG
+#HardwareFormat= HTML         # Possible values: TXT or HTML
+#HardwareOutput= FILE         # Possible values: FILE or RDEBUG
 
-#FileCreationMode= OVERWRITE		# Possible values: OVERWRITE or APPEND
+#FileCreationMode= OVERWRITE  # Possible values: OVERWRITE or APPEND
 
-#ThreadIdToLogFile= YES			# Possible values: YES or NO
-#WithTimeStamp= YES			# Possible values: YES or NO
-#WithLineBreak= YES			# Possible values: YES or NO
-#WithEventRanking= YES			# Possible values: YES or NO
+#ThreadIdToLogFile= YES       # Possible values: YES or NO
+#WithTimeStamp= YES           # Possible values: YES or NO
+#WithLineBreak= YES           # Possible values: YES or NO
+#WithEventRanking= YES        # Possible values: YES or NO
 
+#FileUnicode= YES             # Possible values: YES or NO
+#AddTestCaseTitle= YES        # Possible values: YES or NO
 [End_Logger_Defaults]
 # -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
 
+
+
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+# Set filters to be used by ConsoleUI.
+# 	If you want to use filter with ConsoleUI, simply remove comments
+# 	from section below and provide valid filter entries.
+#   Each filter line has to start with "filter= " keyword.
+#   Filter can contain special wildcard characters:
+#     *  which stands for none or any literal;
+#     ?  which stands for single character.
+#   Filters are not case-sensitive.
+
+#[Filters]
+#filter= *math*
+#filter= *radio*
+#[End_Filters]
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+
 # End of file
--- a/coreapplicationuis/rfsplugins/tsrc/rfspluginstest/msgcentrerfsplugintest/rom/msgcentrerfsplugintest.iby	Wed Sep 29 15:24:56 2010 +0300
+++ b/coreapplicationuis/rfsplugins/tsrc/rfspluginstest/msgcentrerfsplugintest/rom/msgcentrerfsplugintest.iby	Thu Oct 07 06:25:45 2010 +0300
@@ -22,7 +22,7 @@
 
 //data=\epoc32\data\z\system\data\TestFramework.ini             \testframework\TestFramework.ini
 
-data=\epoc32\data\z\system\data\msgcentrerfsplugintest.cfg                      \testframework\msgcentrerfsplugintest.cfg
+data=\epoc32\data\z\system\data\ui_msgcentrerfsplugintest.cfg                      \testframework\ui_msgcentrerfsplugintest.cfg
 
 
 
--- a/coreapplicationuis/rfsplugins/tsrc/rfspluginstest/msgcentrerfsplugintest/src/msgcentrerfsplugintest.cpp	Wed Sep 29 15:24:56 2010 +0300
+++ b/coreapplicationuis/rfsplugins/tsrc/rfspluginstest/msgcentrerfsplugintest/src/msgcentrerfsplugintest.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -126,16 +126,13 @@
 TInt CMsgCentreRfsPluginTest::CreatePlugin( CStifItemParser& aItem )
     {
     FUNC_LOG;
+    
+    STIF_ASSERT_NOT_LEAVES(iPlugin = CRFSPlugin::NewL( TUid::Uid( 0x20022D82 ) ) );
+    STIF_ASSERT_NOT_NULL( iPlugin );
+    
+    return KErrNone;
 
-    TUint uid(0);
-    TInt ret = aItem.GetNextInt( uid );
-    if ( ret == KErrNone )
-        {
-        TRAP(ret, iPlugin = CRFSPlugin::NewL( TUid::Uid( uid ) ) );
-        }
-    ERROR( ret, "Create plugin failed");
-    LOG_1("CreatePlugin %d", ret);
-    return ret;
+
     }
 
 // ---------------------------------------------------------
--- a/coreapplicationuis/rfsplugins/tsrc/rfspluginstest/secureformattertest/group/secureformattertest.mmp	Wed Sep 29 15:24:56 2010 +0300
+++ b/coreapplicationuis/rfsplugins/tsrc/rfspluginstest/secureformattertest/group/secureformattertest.mmp	Thu Oct 07 06:25:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2009-10 Nokia Corporation and/or its subsidiary(-ies). 
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -38,8 +38,6 @@
 
 LIBRARY         efsrv.lib
 LIBRARY         euser.lib
-LIBRARY         stiftestinterface.lib
+LIBRARY         StifTestInterface.lib
 
 MACRO __FUNC_TRACE__
-
-UNPAGED
--- a/coreapplicationuis/sensordatacompensatorplugin/tsrc/sensordatacompensatorplgtest/group/sensordatacompensatorplgtest.mmp	Wed Sep 29 15:24:56 2010 +0300
+++ b/coreapplicationuis/sensordatacompensatorplugin/tsrc/sensordatacompensatorplgtest/group/sensordatacompensatorplgtest.mmp	Thu Oct 07 06:25:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2008-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"
@@ -34,5 +34,5 @@
 MW_LAYER_SYSTEMINCLUDE
 
 LIBRARY     euser.lib
-LIBRARY     stiftestinterface.lib
+LIBRARY     StifTestInterface.lib
 
--- a/package_definition.xml	Wed Sep 29 15:24:56 2010 +0300
+++ b/package_definition.xml	Thu Oct 07 06:25:45 2010 +0300
@@ -162,8 +162,7 @@
    <component id="dbrecovery" filter="s60,build_as_app" name="Database Recovery">
     <unit bldFile="coreapplicationuis/dbrecovery/group"/>
    </component>
-   <component id="nspswsplugin" filter="s60,build_as_app" name="NSPS WS Plugin" class="plugin">
-    <!-- No Service Power Save? Window Server? Please elaborate-->
+   <component id="nspswsplugin" filter="s60,build_as_app" name="No Service Power Save Window Server Plugin" class="plugin">
     <unit bldFile="coreapplicationuis/nspswsplugin/group"/>
    </component>
    <component id="rfs" filter="s60,build_as_app" name="Restore Factory Settings">
@@ -209,6 +208,9 @@
    <component id="devicepowermenuplugin" name="Device Power Menu Plugin" class="plugin" introduced="^4" filter="s60,build_as_app">
       <unit bldFile="coreapplicationuis/devicepowermenuplugin" qt:proFile="devicepowermenuplugin.pro"/>
    </component>
+   <component id="hbdeviceinputdialogplugin" name="Orbit Device Input Dialog Plugin" class="plugin" introduced="^4" filter="s60,build_as_app">
+      <unit bldFile="coreapplicationuis/hbdeviceinputdialogplugin" qt:proFile="hbdeviceinputdialogplugin.pro"/>
+   </component>
   </collection>
   <collection id="flashliteapi_3_1" name="Flash Lite API 3.1" level="specific">
    <!--  collection is really a component. Move down a directory -->
--- a/startupservices/SplashScreen/src/SplashScreen.cpp	Wed Sep 29 15:24:56 2010 +0300
+++ b/startupservices/SplashScreen/src/SplashScreen.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -391,6 +391,8 @@
 	CWindow::ConstructL(aRect, aParent);
 
     TParse* fp = new(ELeave) TParse();
+	CleanupStack::PushL( fp );
+
     fp->Set(KSplashBitmapName, &KDC_APP_BITMAP_DIR, NULL);
     TRACES1("CMainWindow::ConstructL(): Load Bitmap from %S", &fp->FullName());
 
@@ -414,7 +416,8 @@
         TRACES("CMainWindow::ConstructL(): Image not found");
         }
 
-    delete fp;
+   
+	CleanupStack::PopAndDestroy(fp);
 
     TRACES("CMainWindow::ConstructL(): End");
 	}
--- a/startupservices/Startup/src/StartupAppUi.cpp	Wed Sep 29 15:24:56 2010 +0300
+++ b/startupservices/Startup/src/StartupAppUi.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -854,6 +854,7 @@
             iOfflineModeQueryShown = ETrue;
             CHbDeviceMessageBoxSymbian *aMessageBox = NULL;
         	aMessageBox = CHbDeviceMessageBoxSymbian::NewL(CHbDeviceMessageBoxSymbian::EQuestion);
+			CleanupStack::PushL(aMessageBox);
        	 	_LIT(KText, "Continue using phone in Offline mode?");
         	aMessageBox->SetTextL(KText);
         	_LIT(KAcceptText, "Yes");
@@ -864,6 +865,8 @@
         	//define the selection button to hold user's option choice
         	CHbDeviceMessageBoxSymbian::TButtonId selection;
         	selection = aMessageBox->ExecL();
+
+			CleanupStack::PopAndDestroy(aMessageBox);
             if ( selection == CHbDeviceMessageBoxSymbian::EAcceptButton )
                 {
                 TRACES("CStartupAppUi::ShowOfflineModeQueryL(): Offline Mode query: YES -> Boot to Offline");
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/Startup/syserrcmd/tsrc/group/bld.inf	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,29 @@
+/*
+* 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:
+* Build information file for sf/mw/appsupport/startupservices/Startup/syserrcmd/tsrc tests.
+*
+*/
+
+#include <platform_paths.hrh>
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_TESTEXPORTS
+
+PRJ_MMPFILES
+#include "../syserrcmdtest/group/bld.inf"
+#include "../syserrcmdtestsstub/group/bld.inf"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/Startup/syserrcmd/tsrc/inc/syserrcmdtestsstub.h	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,44 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* Declaration of SsmLangSelCmdTestStub class.
+*
+*/
+
+#ifndef SYSERRCMDTESTSSTUB_H
+#define SYSERRCMDTESTSSTUB_H
+
+#include <e32base.h>
+
+class CSsmCustomCommandEnv;
+class RFs;
+/**
+* Stub class for syserrcmd tests
+*
+*/
+NONSHARABLE_CLASS( SysErrCmdTestsStub )
+    {
+public:
+    /**
+     * Methods for mapping p&s, cenrep and feature Uids
+     *
+     * @param aUid The Uid to map
+     * @return The mapped Uid 
+     */
+    
+    IMPORT_C static CSsmCustomCommandEnv* CustomCommandEnvStubL( RFs& aRfs );
+
+    };
+
+#endif // SYSERRCMDTESTSSTUB_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/Startup/syserrcmd/tsrc/syserrcmdtest/bwins/syserrcmdtestu.def	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,3 @@
+EXPORTS
+	?LibEntryL@@YAPAVCSysErrCmdTest@@AAVCTestModuleIf@@@Z @ 1 NONAME ; class CSysErrCmdTest * LibEntryL(class CTestModuleIf &)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/Startup/syserrcmd/tsrc/syserrcmdtest/conf/syserrcmdtest.cfg	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,79 @@
+[Define]
+// Add general definitions here
+[Enddefine]
+
+[StifSettings]
+// Add stif settings here
+CheckHeapBalance= on
+[EndStifSettings]
+
+// ---------------------------------------------------------------------------
+// Test cases for Create and destroy
+// ---------------------------------------------------------------------------
+
+[Test]
+title Test Create and destroy
+create syserrcmdtest testClass
+testClass CreateAndDestroy 
+pause 1000
+delete testClass
+[Endtest]
+        
+// ---------------------------------------------------------------------------
+// Test cases for init and close
+// ---------------------------------------------------------------------------
+
+[Test]
+title Test Init and close
+create syserrcmdtest testClass
+testClass InitAndClose 
+pause 1000
+delete testClass
+[Endtest]
+// ---------------------------------------------------------------------------
+// Test cases for execute
+// ---------------------------------------------------------------------------
+        
+[Test]
+title Test Execute
+create syserrcmdtest testClass
+testClass Execute 
+pause 1000
+delete testClass
+[Endtest]
+
+// ---------------------------------------------------------------------------
+// Test cases for execute and cancel
+// ---------------------------------------------------------------------------
+
+[Test]
+title Test Execute and cancel
+create syserrcmdtest testClass
+testClass ExecuteCancel 
+pause 1000
+delete testClass
+[Endtest]
+
+// ---------------------------------------------------------------------------
+// Test cases for execute after global note
+// ---------------------------------------------------------------------------
+
+[Test]
+title Test Execute after global note
+create syserrcmdtest testClass
+testClass ExecuteAfterGlobalNote 
+pause 1000
+delete testClass
+[Endtest]
+
+// ---------------------------------------------------------------------------
+// Test cases for execute after Ui service global note
+// ---------------------------------------------------------------------------
+
+[Test]
+title Test Execute after Ui service global note
+create syserrcmdtest testClass
+testClass ExecuteAfterUiServiceGlobalNote 
+pause 1000
+delete testClass
+[Endtest]        
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/Startup/syserrcmd/tsrc/syserrcmdtest/eabi/syserrcmdtestu.def	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,3 @@
+EXPORTS
+	_Z9LibEntryLR13CTestModuleIf @ 1 NONAME
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/Startup/syserrcmd/tsrc/syserrcmdtest/group/bld.inf	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,30 @@
+/*
+* 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:
+* Build information file for syserrcmdtest tests.
+*
+*/
+
+#include <platform_paths.hrh>
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+../init/syserrcmdtest.ini /epoc32/winscw/c/testframework/syserrcmdtest.ini
+../conf/syserrcmdtest.cfg /epoc32/winscw/c/testframework/syserrcmdtest.cfg
+
+PRJ_MMPFILES
+syserrcmdtest.mmp
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/Startup/syserrcmd/tsrc/syserrcmdtest/group/envrecall.cmd	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,28 @@
+@echo off
+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:  Environment setup for ssmlangselcmd tests.
+REM
+REM
+@echo on
+
+
+@echo Recall environment for syserrcmdtest...
+@echo Cleaning up stub...
+pushd ..\..\ssmlangselcmdteststub\group
+call bldmake bldfiles
+call abld test reallyclean -k
+popd
+
+@echo Recall environment for syserrcmdtest... Finished.
+        
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/Startup/syserrcmd/tsrc/syserrcmdtest/group/envsetup.cmd	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,28 @@
+@echo off
+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:  Environment setup for ssmlangselcmd tests.
+REM
+REM
+@echo on
+
+
+@echo Setup environment for syserrcmdtest...
+@echo Setting up stub...
+pushd ..\..\syserrcmdtestsstub\group
+call bldmake bldfiles
+call abld test reallyclean
+call abld test build
+popd
+@echo Setup environment for syserrcmdtest... Finished.
+        
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/Startup/syserrcmd/tsrc/syserrcmdtest/group/syserrcmdtest.mmp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,49 @@
+/*
+* 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:
+* Project definition file for syserrcmdtest.
+*
+*/
+
+#include <platform_paths.hrh>
+
+TARGET          syserrcmdtest.dll
+TARGETTYPE      dll
+
+UID             0x1000008D 0x101FB3E7
+VENDORID        VID_DEFAULT
+CAPABILITY      ALL -TCB
+
+SOURCEPATH      ../src
+SOURCE          syserrcmdtest.cpp
+
+USERINCLUDE     ../inc
+USERINCLUDE	    ../../inc
+USERINCLUDE	    ../../../inc
+
+MW_LAYER_SYSTEMINCLUDE
+
+OS_LAYER_SYSTEMINCLUDE
+
+LIBRARY     syserrcmd.lib
+LIBRARY     syserrcmdtestsstub.lib
+LIBRARY     euser.lib
+LIBRARY     stiftestinterface.lib
+LIBRARY efsrv.lib
+//LIBRARY aknnotify.lib
+//LIBRARY akncapserverclient.lib
+LIBRARY apparc.lib
+LIBRARY eikcore.lib
+//LIBRARY     component_under_test.lib
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/Startup/syserrcmd/tsrc/syserrcmdtest/group/syserrcmdtest.pkg	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,34 @@
+;
+; Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description: 
+;
+;Languages
+&EN
+
+#{"syserrcmdtest"},(0x101FB3E7),1,0,0,TYPE=SA
+
+;Localised Vendor name
+%{"syserrcmdtest EN"}
+
+; Vendor name
+: "syserrcmdtest"
+
+"\epoc32\release\armv5\urel\syserrcmdtest.dll"-"c:\sys\bin\syserrcmdtest.dll"
+"..\init\syserrcmdtest.ini"-"c:\testframework\syserrcmdtest.ini"
+"..\conf\syserrcmdtest.cfg"-"c:\testframework\syserrcmdtest.cfg"
+
+; Stub for tests
+"\epoc32\release\armv5\urel\syserrcmdtestsstub.dll"-"c:\sys\bin\syserrcmdtestsstub.dll"
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/Startup/syserrcmd/tsrc/syserrcmdtest/inc/asyncrequesthandler.h	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,220 @@
+/*
+ * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ * 
+ * Description:
+ *
+ */
+
+#ifndef ASYNCREQUESTHANDLER_H
+#define ASYNCREQUESTHANDLER_H
+
+// SYSTEM INCLUDE FILES
+#include <e32base.h>
+
+// DATA TYPES
+_LIT( KPanicCat, "ASYNCREQUESTHANDLER" );
+
+/** Panic codes */
+enum TArhPanicCodes
+    {
+    EArhNone,
+    EArhRequestPending
+    };
+
+// CLASS DECLARATION
+
+/**
+ * A template class for handling asynchronous requests.
+ *
+ * @lib None.
+ * @since S60 TB9.2
+ */
+template <class T>
+NONSHARABLE_CLASS( CAsyncRequestHandler ): public CActive
+    {
+public:
+    
+    // TYPE DEFINTIONS
+    
+    /** HandleIssueRequest callback */
+    typedef void ( T::*HandleIssueRequest )( TRequestStatus& );
+    
+    /** HandleRunL callback */
+    typedef void ( T::*HandleRunL )( TInt );
+    
+    /** HandleRunError callback */
+    typedef TInt ( T::*HandleRunError )( TInt );
+    
+    /** HandleDoCancel callback */
+    typedef void ( T::*HandleDoCancel )();
+    
+    // DATA TYPES
+    
+    /** Request type */
+    enum TAsyncRequestType
+        {
+        ERequestOneShot,
+        ERequestContinuous
+        };
+    
+public:
+
+    /**
+     * Symbian two phased constructor.
+     * 
+     * @since S60 TB9.2
+     * @param None.
+     * @return CAsyncRequestHandler*
+     */
+    static CAsyncRequestHandler* NewL( T& aPtr,
+        HandleIssueRequest aHandleIssueRequest,
+        HandleRunL aHandleRunL,
+        HandleRunError aHandleRunError,
+        HandleDoCancel aHandleDoCancel,
+        TAsyncRequestType aType = ERequestContinuous )
+        {
+        CAsyncRequestHandler* self = CAsyncRequestHandler::NewLC( aPtr,
+            aHandleIssueRequest,
+            aHandleRunL,
+            aHandleRunError,
+            aHandleDoCancel,
+            aType );
+        CleanupStack::Pop( self );
+        return self;
+        }
+    
+    /**
+     * Symbian two phased constructor.
+     * Instance is left in the cleanup stack.
+     * 
+     * @since S60 TB9.2
+     * @param None.
+     * @return CAsyncRequestHandler*
+     */
+    static CAsyncRequestHandler* NewLC( T& aPtr,
+        HandleIssueRequest aHandleIssueRequest,
+        HandleRunL aHandleRunL,
+        HandleRunError aHandleRunError,
+        HandleDoCancel aHandleDoCancel,
+        TAsyncRequestType aType = ERequestContinuous )
+        {
+        CAsyncRequestHandler* self = new CAsyncRequestHandler( aPtr,
+            aHandleIssueRequest,
+            aHandleRunL,
+            aHandleRunError,
+            aHandleDoCancel,
+            aType );
+        CleanupStack::PushL( self );
+        return self;
+        }
+
+    /**
+     * C++ destructor.
+     */
+    virtual ~CAsyncRequestHandler()
+        {
+        Cancel();
+        }
+    
+public: // New methods
+    
+    /**
+     * Issues a new request.
+     * Panic will occur if there already is a request pending.
+     * 
+     * @since TB9.2
+     * @param None.
+     * @return None.
+     */
+    void IssueRequest()
+        {
+        __ASSERT_DEBUG( !IsActive(),
+            User::Panic( KPanicCat, EArhRequestPending ) );
+        
+        // Call the HandleIssueRequest from the template class and set active
+        ( iPtr.*iHandleIssueRequest )( iStatus );
+        SetActive();
+        }
+
+protected: // From base classes
+    
+    // @see CActive
+    void RunL()
+        {
+        // Check result and issue request again
+        TInt status = iStatus.Int();
+        if( iType == ERequestContinuous )
+            {
+            IssueRequest();
+            }
+        
+        // Call the HandleRunL from the template class
+        ( iPtr.*iHandleRunL )( status );
+        }
+
+    // @see CActive
+    TInt RunError( TInt aError )
+        {
+        // Call the HandleRunError from the template class
+        TInt err = ( iPtr.*iHandleRunError )( aError );
+        return err;
+        }
+
+    // @see CActive
+    void DoCancel()
+        {
+        // Call the HandleDoCancel from the template class
+        ( iPtr.*iHandleDoCancel )();
+        }
+
+private:
+
+    CAsyncRequestHandler( T& aPtr,
+        HandleIssueRequest aHandleIssueRequest,
+        HandleRunL aHandleRunL,
+        HandleRunError aHandleRunError,
+        HandleDoCancel aHandleDoCancel,
+        TAsyncRequestType aType = ERequestContinuous ):
+        CActive( CActive::EPriorityStandard ),
+        iPtr( aPtr ),
+        iHandleIssueRequest( aHandleIssueRequest ),
+        iHandleRunL( aHandleRunL ),
+        iHandleRunError( aHandleRunError ),
+        iHandleDoCancel( aHandleDoCancel ),
+        iType( aType )
+        {
+        CActiveScheduler::Add( this );
+        }
+
+private: // Data
+    
+    /** Pointer to the template class */
+    T& iPtr;
+    
+    /** HandleIssueRequest function pointer */
+    HandleIssueRequest iHandleIssueRequest;
+    
+    /** HandleRunL function pointer */
+    HandleRunL iHandleRunL;
+    
+    /** HandleRunError function pointer */
+    HandleRunError iHandleRunError;
+    
+    /** HandleDoCancel function pointer */
+    HandleDoCancel iHandleDoCancel;
+    
+    /** Request type */
+    TAsyncRequestType iType;
+    };
+
+#endif // ASYNCREQUESTHANDLER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/Startup/syserrcmd/tsrc/syserrcmdtest/inc/syserrcmdtest.h	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,147 @@
+/*
+* 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:
+* Csyserrcmdtest class declaration.
+*
+*/
+
+
+#ifndef SYSERRCMDTEST_H
+#define SYSERRCMDTEST_H
+
+#if defined (_MSC_VER) && (_MSC_VER >= 1000)
+#pragma once
+#endif
+
+// SYSTEM INCLUDES
+#include <testscripterinternal.h>
+
+#include "asyncrequesthandler.h"
+
+// FORWARD DECLARATIONS
+class TCaseInfo;
+class CSysErrCmdTest;
+class MSsmCustomCommand;
+class CSsmCustomCommandEnv;
+
+// DESCRIPTION
+// This a Test Module interface template
+// that does not really do anything.
+typedef TInt ( CSysErrCmdTest::*TestFunction )( TTestResult& );
+
+NONSHARABLE_CLASS( CSysErrCmdTest ) : public CScriptBase
+    {
+public: // Constructors and destructor
+
+    /**
+    * Two-phased constructor.
+    */
+    static CSysErrCmdTest* NewL( CTestModuleIf& aTestModuleIf );
+
+    /**
+    * Destructor.
+    */
+    virtual ~CSysErrCmdTest();
+
+public: // Functions from base classes
+
+    TInt RunMethodL( CStifItemParser& aItem );
+
+protected: // New functions
+
+    TInt CreateAndDestroyL( CStifItemParser& aItem );
+    TInt InitAndCloseL( CStifItemParser& aItem );
+    TInt ExecuteL( CStifItemParser& aItem );
+    TInt ExecuteCancelL( CStifItemParser& aItem );
+    TInt ShowAfterAknGlobalNoteL( CStifItemParser& aItem );
+    TInt ShowAfterUiServerGlobalNoteL( CStifItemParser& aItem );
+    
+    /** HandleIssueRequest callback */
+    void HandleIssueRequest( TRequestStatus& );
+       
+    /** HandleRunL callback */
+    void HandleRunL( TInt );
+       
+    /** HandleRunError callback */
+    TInt HandleRunError( TInt );
+       
+    /** HandleDoCancel callback */
+    void HandleDoCancel();
+
+private:
+
+    /**
+    * C++ default constructor.
+    */
+    CSysErrCmdTest( CTestModuleIf& aTestModuleIf );
+
+    /**
+    * By default Symbian OS constructor is private.
+    */
+    void ConstructL();
+
+    /**
+    * Function returning test case name and pointer to test case function
+    */
+    const TCaseInfo Case( const TInt aCaseNumber ) const;
+
+private: // Data
+
+    TestFunction iMethod;
+    
+    CAsyncRequestHandler<CSysErrCmdTest>*  iExecuteHandler;
+    
+    RFs                                    iFs;
+    
+    MSsmCustomCommand*                     iSysErrCmd;
+    
+    CSsmCustomCommandEnv*                  iCustCmdEnvStub;
+    
+    TInt                                   iExecutionResult;
+    };
+
+// Function pointer related internal definitions
+
+// Hack around known GCC bug.
+#ifndef __GCC32__
+    #define GETPTR
+#else
+    #define GETPTR &
+#endif
+
+
+// An internal structure containing a test case name and
+// the pointer to function doing the test
+class TCaseInfoInternal
+    {
+    public:
+        const TText* iCaseName;
+        TestFunction iMethod;
+    };
+
+// An internal structure containing a test case name and
+// the pointer to function doing the test
+class TCaseInfo
+    {
+    public:
+        TPtrC iCaseName;
+        TestFunction iMethod;
+
+    TCaseInfo( const TText* a ) : iCaseName( ( TText* ) a )
+        {
+        };
+    };
+
+#endif // SYSERRCMDTEST_H
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/Startup/syserrcmd/tsrc/syserrcmdtest/inc/trace.h	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,596 @@
+/*
+* 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:
+* Trace macro definitions.
+*
+*/
+
+#ifndef TRACE_H
+#define TRACE_H
+
+#include <e32base.h> // TCleanupItem
+#include "traceconfiguration.hrh"
+
+#ifdef TRACE_INTO_FILE
+#include <flogger.h> // RFileLogger
+#else
+#include <e32debug.h> // RDebug
+#endif
+
+//-----------------------------------------------------------------------------
+// Constants
+//-----------------------------------------------------------------------------
+//
+
+// NOTE!
+// Replace all COMPONENT_NAME occurnaces with your own component / module name.
+
+/**
+* Prefix trace macro to complete tracing with component name.
+* Returns TDesC which can be used directly with RDebug or RFileLogger.
+*/
+#define _PREFIX_TRACE( aMsg ) TPtrC( (const TText*)L"[syserrcmdtest]: " L##aMsg )
+
+/**
+* Prefix error trace
+*/
+#define _PREFIX_ERROR( aMsg ) _PREFIX_TRACE( "[ERROR: %d]: " L##aMsg )
+
+/**
+* Prefix info trace.
+*/
+#define _PREFIX_INFO( aMsg ) _PREFIX_TRACE( "[INFO]: " L##aMsg )
+
+/**
+* Prefix macro for strings
+*/
+#define _PREFIX_CHAR( aMsg ) (const char*)"[syserrcmdtest]: " ##aMsg
+
+/**
+* Define needed directories if TRACE_INTO_FILE macro in use
+*/
+#ifdef TRACE_INTO_FILE
+
+    _LIT( KDir, "syserrcmdtest" );
+    _LIT( KFile, "syserrcmdtest_log.txt" );
+    _LIT( KFullPath, "c:\\logs\\syserrcmdtest\\" );
+
+#endif
+
+//-----------------------------------------------------------------------------
+// Error trace macros
+//-----------------------------------------------------------------------------
+//
+#ifdef ERROR_TRACE
+
+    /**
+    * Error trace definitions.
+    */
+    #ifdef TRACE_INTO_FILE
+
+        #define ERROR( aErr, aMsg )\
+            {\
+            if( aErr < KErrNone )\
+                {\
+                RFileLogger::WriteFormat( KDir, KFile, EFileLoggingModeAppend, _PREFIX_ERROR( aMsg ), aErr );\
+                }\
+            }
+        #define ERROR_1( aErr, aMsg, aP1 )\
+            {\
+            if( aErr < KErrNone )\
+                {\
+                RFileLogger::WriteFormat( KDir, KFile, EFileLoggingModeAppend, _PREFIX_ERROR( aMsg ), aErr, aP1 );\
+                }\
+            }
+        #define ERROR_2( aErr, aMsg, aP1, aP2 )\
+            {\
+            if( aErr < KErrNone )\
+                {\
+                RFileLogger::WriteFormat( KDir, KFile, EFileLoggingModeAppend, _PREFIX_ERROR( aMsg ), aErr, aP1, aP2 );\
+                }\
+            }
+        #define ERROR_3( aErr, aMsg, aP1, aP2, aP3 )\
+            {\
+            if( aErr < KErrNone )\
+                {\
+                RFileLogger::WriteFormat( KDir, KFile, EFileLoggingModeAppend, _PREFIX_ERROR( aMsg ), aErr, aP1, aP2, aP3 );\
+                }\
+            }
+        #define ERROR_4( aErr, aMsg, aP1, aP2, aP3, aP4 )\
+            {\
+            if( aErr < KErrNone )\
+                {\
+                RFileLogger::WriteFormat( KDir, KFile, EFileLoggingModeAppend, _PREFIX_ERROR( aMsg ), aErr, aP1, aP2, aP3, aP4 );\
+                }\
+            }
+        #define ERROR_5( aErr, aMsg, aP1, aP2, aP3, aP4, aP5 )\
+            {\
+            if( aErr < KErrNone )\
+                {\
+                RFileLogger::WriteFormat( KDir, KFile, EFileLoggingModeAppend, _PREFIX_ERROR( aMsg ), aErr, aP1, aP2, aP3, aP4, aP5 );\
+                }\
+            }
+        #define ERROR_6( aErr, aMsg, aP1, aP2, aP3, aP4, aP5, aP6 )\
+            {\
+            if( aErr < KErrNone )\
+                {\
+                RFileLogger::WriteFormat( KDir, KFile, EFileLoggingModeAppend, _PREFIX_ERROR( aMsg ), aErr, aP1, aP2, aP3, aP4, aP5 );\
+                }\
+            }
+            
+    #else//TRACE_INTO_FILE not defined
+    
+        #define ERROR( aErr, aMsg )\
+            {\
+            if( aErr < KErrNone )\
+                {\
+                RDebug::Print( _PREFIX_ERROR( aMsg ), aErr );\
+                }\
+            }
+        #define ERROR_1( aErr, aMsg, aP1 )\
+            {\
+            if( aErr < KErrNone )\
+                {\
+                RDebug::Print( _PREFIX_ERROR( aMsg ), aErr, aP1 );\
+                }\
+            }
+        #define ERROR_2( aErr, aMsg, aP1, aP2 )\
+            {\
+            if( aErr < KErrNone )\
+                {\
+                RDebug::Print( _PREFIX_ERROR( aMsg ), aErr, aP1, aP2 );\
+                }\
+            }
+        #define ERROR_3( aErr, aMsg, aP1, aP2, aP3 )\
+            {\
+            if( aErr < KErrNone )\
+                {\
+                RDebug::Print( _PREFIX_ERROR( aMsg ), aErr, aP1, aP2, aP3 );\
+                }\
+            }
+        #define ERROR_4( aErr, aMsg, aP1, aP2, aP3, aP4 )\
+            {\
+            if( aErr < KErrNone )\
+                {\
+                RDebug::Print( _PREFIX_ERROR( aMsg ), aErr, aP1, aP2, aP3, aP4 );\
+                }\
+            }
+        #define ERROR_5( aErr, aMsg, aP1, aP2, aP3, aP4, aP5 )\
+            {\
+            if( aErr < KErrNone )\
+                {\
+                RDebug::Print( _PREFIX_ERROR( aMsg ), aErr, aP1, aP2, aP3, aP4, aP5 );\
+                }\
+            }
+        #define ERROR_6( aErr, aMsg, aP1, aP2, aP3, aP4, aP5, aP6 )\
+            {\
+            if( aErr < KErrNone )\
+                {\
+                RDebug::Print( _PREFIX_ERROR( aMsg ), aErr, aP1, aP2, aP3, aP4, aP5, aP6 );\
+                }\
+            }
+    
+    #endif//TRACE_INTO_FILE
+
+    #define ERROR_GEN( aMsg ) ERROR( KErrGeneral, aMsg )
+    #define ERROR_GEN_1( aMsg, aP1 ) ERROR_1( KErrGeneral, aMsg, aP1 )
+    #define ERROR_GEN_2( aMsg, aP1, aP2 ) ERROR_2( KErrGeneral, aMsg, aP1, aP2 )
+    #define ERROR_GEN_3( aMsg, aP1, aP2, aP3 ) ERROR_3( KErrGeneral, aMsg, aP1, aP3 )
+    #define ERROR_GEN_4( aMsg, aP1, aP2, aP3, aP4 ) ERROR_4( KErrGeneral, aMsg, aP1, aP3, aP4 )
+    #define ERROR_GEN_5( aMsg, aP1, aP2, aP3, aP4, aP5 ) ERROR_5( KErrGeneral, aMsg, aP1, aP3, aP4, aP5 )
+    #define ERROR_GEN_6( aMsg, aP1, aP2, aP3, aP4, aP5, aP6 ) ERROR_6( KErrGeneral, aMsg, aP1, aP3, aP4, aP5, aP6 )
+
+#else//ERROR_TRACE not defined
+
+    #define ERROR( aErr, aMsg )
+    #define ERROR_1( aErr, aMsg, aP1 )
+    #define ERROR_2( aErr, aMsg, aP1, aP2 )
+    #define ERROR_3( aErr, aMsg, aP1, aP2, aP3 )
+    #define ERROR_4( aErr, aMsg, aP1, aP2, aP3, aP4 )
+    #define ERROR_5( aErr, aMsg, aP1, aP2, aP3, aP4, aP5 )
+    #define ERROR_6( aErr, aMsg, aP1, aP2, aP3, aP4, aP5, aP6 )
+
+    #define ERROR_GEN( aMsg )
+    #define ERROR_GEN_1( aMsg, aP1 )
+    #define ERROR_GEN_2( aMsg, aP1, aP2 )
+    #define ERROR_GEN_3( aMsg, aP1, aP2, aP3 )
+    #define ERROR_GEN_4( aMsg, aP1, aP2, aP3, aP4 )
+    #define ERROR_GEN_5( aMsg, aP1, aP2, aP3, aP4, aP5 )
+    #define ERROR_GEN_6( aMsg, aP1, aP2, aP3, aP4, aP5, aP6 )
+
+#endif//ERROR_TRACE
+
+//-----------------------------------------------------------------------------
+// TRAP and trace with error macro
+//-----------------------------------------------------------------------------
+//
+#define TRAP_ERROR( aErr, aFunction )\
+    {\
+    TRAP( aErr, aFunction );\
+    TPtrC8 file( ( TText8* )__FILE__ );\
+    ERROR_2( aErr, "Trapped leave in '%S' line %d", &file, __LINE__);\
+    }
+
+//-----------------------------------------------------------------------------
+// Info trace macros
+//-----------------------------------------------------------------------------
+//
+#ifdef INFO_TRACE
+
+    /**
+    * Info log message definitions.
+    */
+    #ifdef TRACE_INTO_FILE
+    
+        #define INFO( aMsg )\
+            {\
+            RFileLogger::Write( KDir, KFile, EFileLoggingModeAppend, _PREFIX_INFO( aMsg ) );\
+            }
+        #define INFO_1( aMsg, aP1 )\
+            {\
+            RFileLogger::WriteFormat( KDir, KFile, EFileLoggingModeAppend, _PREFIX_INFO( aMsg ), aP1 );\
+            }
+        #define INFO_2( aMsg, aP1, aP2 )\
+            {\
+            RFileLogger::WriteFormat( KDir, KFile, EFileLoggingModeAppend, _PREFIX_INFO( aMsg ), aP1, aP2 );\
+            }
+        #define INFO_3( aMsg, aP1, aP2, aP3 )\
+            {\
+            RFileLogger::WriteFormat( KDir, KFile, EFileLoggingModeAppend, _PREFIX_INFO( aMsg ), aP1, aP2, aP3 );\
+            }
+        #define INFO_4( aMsg, aP1, aP2, aP3, aP4 )\
+            {\
+            RFileLogger::WriteFormat( KDir, KFile, EFileLoggingModeAppend, _PREFIX_INFO( aMsg ), aP1, aP2, aP3, aP4 );\
+            }
+        #define INFO_5( aMsg, aP1, aP2, aP3, aP4, aP5 )\
+            {\
+            RFileLogger::WriteFormat( KDir, KFile, EFileLoggingModeAppend, _PREFIX_INFO( aMsg ), aP1, aP2, aP3, aP4, aP5 );\
+            }
+        #define INFO_6( aMsg, aP1, aP2, aP3, aP4, aP5, aP6 )\
+            {\
+            RFileLogger::WriteFormat( KDir, KFile, EFileLoggingModeAppend, _PREFIX_INFO( aMsg ), aP1, aP2, aP3, aP4, aP5, aP6 );\
+            }
+
+    #else//TRACE_INTO_FILE not defined
+
+        #define INFO( aMsg )\
+            {\
+            RDebug::Print( _PREFIX_INFO( aMsg ) );\
+            }
+        #define INFO_1( aMsg, aP1 )\
+            {\
+            RDebug::Print( _PREFIX_INFO( aMsg ), aP1 );\
+            }
+        #define INFO_2( aMsg, aP1, aP2 )\
+            {\
+            RDebug::Print( _PREFIX_INFO( aMsg ), aP1, aP2 );\
+            }
+        #define INFO_3( aMsg, aP1, aP2, aP3 )\
+            {\
+            RDebug::Print( _PREFIX_INFO( aMsg ), aP1, aP2, aP3 );\
+            }
+        #define INFO_4( aMsg, aP1, aP2, aP3, aP4 )\
+            {\
+            RDebug::Print( _PREFIX_INFO( aMsg ), aP1, aP2, aP3, aP4 );\
+            }
+        #define INFO_5( aMsg, aP1, aP2, aP3, aP4, aP5 )\
+            {\
+            RDebug::Print( _PREFIX_INFO( aMsg ), aP1, aP2, aP3, aP4, aP5 );\
+            }
+        #define INFO_6( aMsg, aP1, aP2, aP3, aP4, aP5, aP6 )\
+            {\
+            RDebug::Print( _PREFIX_INFO( aMsg ), aP1, aP2, aP3, aP4, aP5, aP6 );\
+            }
+
+    #endif//TRACE_INTO_FILE
+        
+#else//INFO_TRACE not defined
+
+    #define INFO( aMsg )
+    #define INFO_1( aMsg, aP1 )
+    #define INFO_2( aMsg, aP1, aP2 )
+    #define INFO_3( aMsg, aP1, aP2, aP3 )
+    #define INFO_4( aMsg, aP1, aP2, aP3, aP4 )
+    #define INFO_5( aMsg, aP1, aP2, aP3, aP4, aP5 )
+    #define INFO_6( aMsg, aP1, aP2, aP3, aP4, aP5, aP6 )
+
+#endif//INFO_TRACE
+
+//-----------------------------------------------------------------------------
+// Trace current client thread name and process id
+//-----------------------------------------------------------------------------
+//
+#ifdef CLIENT_TRACE
+
+    #define CLIENT_PROCESS\
+        {\
+        CLIENT_PROCESS_PREFIX( "" );\
+        }        
+
+    #define CLIENT_PROCESS_PREFIX( aPrefix )\
+        {\
+        RProcess process;\
+        TPtrC name( process.Name() );\
+        TSecureId sid( process.SecureId() );\
+        TPtrC prefix( _S( aPrefix ) );\
+        if( prefix.Length() )\
+            {\
+            INFO_3( "%S: CLIENT - Name: [%S], Sid: [0x%x]", &prefix, &name, sid.iId );\
+            }\
+        else\
+            {\
+            INFO_2( "CLIENT - Name: [%S], Sid: [0x%x]", &name, sid.iId );\
+            }\
+        process.Close();\
+        }        
+
+    #define CLIENT_MESSAGE( aMsg )\
+        {\
+        CLIENT_MESSAGE_PREFIX( "", aMsg );\
+        }
+
+    #define CLIENT_MESSAGE_PREFIX( aPrefix, aMsg )\
+        {\
+        RThread thread;\
+        TInt err = aMsg.Client( thread );\
+        if( err == KErrNone )\
+            {\
+            RProcess process;\
+            err = thread.Process( process );\
+            if( err == KErrNone )\
+                {\
+                TPtrC threadName( thread.Name() );\
+                TUid processUid( process.SecureId() );\
+                TPtrC prefix( _S( aPrefix ) );\
+                if( prefix.Length() )\
+                    {\
+                    INFO_4( "%S: MSG - Name: [%S], Sid: [0x%x], Message ID: [%d]",\
+                        &prefix,\
+                        &threadName,\
+                        processUid,\
+                        aMsg.Function() );\
+                    }\
+                else\
+                    {\
+                    INFO_3( "MSG - Name: [%S], Sid: [0x%x], Message ID: [%d]",\
+                        &threadName,\
+                        processUid,\
+                        aMsg.Function() );\
+                    }\
+                }\
+            process.Close();\
+            }\
+        thread.Close();\
+        }
+
+#else
+
+    #define CLIENT_PROCESS
+    #define CLIENT_PROCESS_PREFIX( aPrefix )
+    #define CLIENT_MESSAGE( aMsg )
+    #define CLIENT_MESSAGE_PREFIX( aPrefix, aMsg )
+
+#endif
+
+//-----------------------------------------------------------------------------
+// Function trace macros
+//-----------------------------------------------------------------------------
+//
+#ifdef FUNC_TRACE
+
+    /**
+    * Function logging definitions.
+    */
+    #ifdef TRACE_INTO_FILE
+    
+        #define FUNC( aMsg, aP1 )\
+            {\
+            TPtrC8 trace( _S8( aMsg ) );\
+            RFileLogger::WriteFormat( KDir, KFile, EFileLoggingModeAppend, trace, aP1 );\
+            }\
+    
+    #else//TRACE_INTO_FILE not defined
+    
+        #define FUNC( aMsg, aP1 )\
+            {\
+            RDebug::Printf( aMsg, aP1 );\
+            }\
+    
+    #endif//TRACE_INTO_FILE
+        
+    /**
+    * Function trace helper class.
+    * 
+    * NOTE:
+    * LC -methods cannot be trapped. Therefore if LC -method leaves
+    * END trace is used instead of LEAVE trace.
+    * If you have an idea how to round this problem please tell.
+    */
+    _LIT8( KFuncNameTerminator, "(" );
+    _LIT8( KFuncLeavePatternL, "L" );
+    class TFuncLog
+        {
+        public:
+            static void Cleanup( TAny* aPtr )
+                {
+                TFuncLog* self = static_cast< TFuncLog* >( aPtr );
+                self->iLeft = ETrue;
+                FUNC( _PREFIX_CHAR("%S-LEAVE"), &self->iFunc ); // Leave detected
+                }
+            inline TFuncLog( const char* aFunc ) :
+                    iFunc( aFunc ? _S8( aFunc ) : _S8("") ),
+                    iLeft( EFalse ),
+                    iCleanupItem( Cleanup, this ),
+                    iCanLeave( EFalse )
+                {
+                TInt pos( iFunc.Find( KFuncNameTerminator ) );
+                if( pos != KErrNotFound )
+                    {
+                    iFunc.Set( iFunc.Left( pos ) );
+                    iCanLeave = !iFunc.Right( KFuncLeavePatternL().Length() ).Compare( KFuncLeavePatternL );
+                    if ( iCanLeave )
+                        {
+                        CleanupStack::PushL( iCleanupItem ); // Ignore warnings
+                        }
+                    }
+                FUNC( _PREFIX_CHAR("%S-START"), &iFunc );
+                }
+
+            inline ~TFuncLog()
+                {
+                if ( !iLeft )
+                    {
+                    if ( iCanLeave )
+                        {
+                        CleanupStack::Pop( this ); // Pop the cleanup item
+                        }
+                    FUNC( _PREFIX_CHAR("%S-END"), &iFunc ); // Normally finished
+                    }
+                }
+
+        private: // Data
+            TPtrC8 iFunc;
+            TBool iLeft;
+            TCleanupItem iCleanupItem;
+            TBool iCanLeave;
+        };
+    #define FUNC_LOG TFuncLog _fl( __PRETTY_FUNCTION__ );
+    
+#else//FUNC_TRACE not defined
+
+    #define FUNC_LOG
+
+#endif//FUNC_TRACE
+
+//-----------------------------------------------------------------------------
+// Timestamp trace macros
+//-----------------------------------------------------------------------------
+//
+#ifdef TIMESTAMP_TRACE
+
+    #ifdef TRACE_INTO_FILE
+    
+        #define TIMESTAMP( aCaption )\
+            {\
+            TTime t;\
+            t.HomeTime();\
+            TDateTime dt = t.DateTime();\
+            _LIT( KCaption, aCaption );\
+            RFileLogger::WriteFormat( KDir, KFile, EFileLoggingModeAppend,\
+                _PREFIX_TRACE("[TIMESTAMP] %S %d:%02d:%02d.%d us"),\
+                    &KCaption, dt.Hour(), dt.Minute(), dt.Second(), dt.MicroSecond() );\
+            }
+
+    #else//TRACE_INTO_FILE not defined
+    
+        #define TIMESTAMP( aCaption )\
+            {\
+            TTime t;\
+            t.HomeTime();\
+            TDateTime dt = t.DateTime();\
+            _LIT( KCaption, aCaption );\
+            RDebug::Print( _PREFIX_TRACE("[TIMESTAMP] %S %d:%02d:%02d.%d us"),\
+                &KCaption, dt.Hour(), dt.Minute(), dt.Second(), dt.MicroSecond() );\
+            }
+
+    #endif//TRACE_INTO_FILE
+
+#else//TIMESTAMP_TRACE not defined
+
+    #define TIMESTAMP( aCaption )
+
+#endif//TIMESTAMP_TRACE
+
+#ifdef HEAP_TRACE
+
+    #ifdef TRACE_INTO_FILE
+
+        #define HEAP( aMsg )\
+            {\
+            TInt totalAllocSpace = 0;\
+            User::AllocSize( totalAllocSpace );\
+            RFileLogger::WriteFormat( KDir, KFile, EFileLoggingModeAppend, _PREFIX_HEAP( aMsg ), totalAllocSpace );\
+            }
+        #define HEAP_1( aMsg, aP1 )\
+            {\
+            TInt totalAllocSpace = 0;\
+            User::AllocSize( totalAllocSpace );\
+            RFileLogger::WriteFormat( KDir, KFile, EFileLoggingModeAppend, _PREFIX_HEAP( aMsg ), totalAllocSpace, aP1 );\
+            }
+        #define HEAP_2( aMsg, aP1, aP2 )\
+            {\
+            TInt totalAllocSpace = 0;\
+            User::AllocSize( totalAllocSpace );\
+            RFileLogger::WriteFormat( KDir, KFile, EFileLoggingModeAppend, _PREFIX_HEAP( aMsg ), totalAllocSpace, aP1, aP2 );\
+            }
+        #define HEAP_3( aMsg, aP1, aP2, aP3 )\
+            {\
+            TInt totalAllocSpace = 0;\
+            User::AllocSize( totalAllocSpace );\
+            RFileLogger::WriteFormat( KDir, KFile, EFileLoggingModeAppend, _PREFIX_HEAP( aMsg ), totalAllocSpace, aP1, aP2, aP3 );\
+            }
+        #define HEAP_4( aMsg, aP1, aP2, aP3, aP4 )\
+            {\
+            TInt totalAllocSpace = 0;\
+            User::AllocSize( totalAllocSpace );\
+            RFileLogger::WriteFormat( KDir, KFile, EFileLoggingModeAppend, _PREFIX_HEAP( aMsg ), totalAllocSpace, aP1, aP2, aP3, aP4 );\
+            }
+
+    #else//TRACE_INTO_FILE not defined
+
+        #define HEAP( aMsg )\
+            {\
+            TInt totalAllocSpace = 0;\
+            User::AllocSize( totalAllocSpace );\
+            RDebug::Print( _PREFIX_HEAP( aMsg ), totalAllocSpace );\
+            }
+        #define HEAP_1( aMsg, aP1 )\
+            {\
+            TInt totalAllocSpace = 0;\
+            User::AllocSize( totalAllocSpace );\
+            RDebug::Print( _PREFIX_HEAP( aMsg ), totalAllocSpace, aP1 );\
+            }
+        #define HEAP_2( aMsg, aP1, aP2 )\
+            {\
+            TInt totalAllocSpace = 0;\
+            User::AllocSize( totalAllocSpace );\
+            RDebug::Print( _PREFIX_HEAP( aMsg ), totalAllocSpace, aP1, aP2 );\
+            }
+        #define HEAP_3( aMsg, aP1, aP2, aP3 )\
+            {\
+            TInt totalAllocSpace = 0;\
+            User::AllocSize( totalAllocSpace );\
+            RDebug::Print( _PREFIX_HEAP( aMsg ), totalAllocSpace, aP1, aP2, aP3 );\
+            }
+        #define HEAP_4( aMsg, aP1, aP2, aP3, aP4 )\
+            {\
+            TInt totalAllocSpace = 0;\
+            User::AllocSize( totalAllocSpace );\
+            RDebug::Print( _PREFIX_HEAP( aMsg ), totalAllocSpace, aP1, aP2, aP3, aP4 );\
+            }
+
+    #endif//TRACE_INTO_FILE
+
+#else//HEAP_TRACE not defined
+
+    #define HEAP( aMsg )
+    #define HEAP_1( aMsg, aP1 )
+    #define HEAP_2( aMsg, aP1, aP2 )
+    #define HEAP_3( aMsg, aP1, aP2, aP3 )
+    #define HEAP_4( aMsg, aP1, aP2, aP3, aP4 )
+
+#endif//HEAP_TRACE
+
+#endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/Startup/syserrcmd/tsrc/syserrcmdtest/inc/traceconfiguration.hrh	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,79 @@
+/*
+* 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: 
+* Trace Macro Configurations.
+*
+*/
+
+
+#ifndef TRACECONFIGURATION_HRH
+#define TRACECONFIGURATION_HRH
+
+//-----------------------------------------------------------------------------
+// Trace definitions
+//-----------------------------------------------------------------------------
+//
+
+/**
+* Error trace enabled
+*/
+#ifdef _DEBUG
+    #define ERROR_TRACE
+#else
+    #undef ERROR_TRACE
+#endif
+
+/**
+* Info trace enabled
+*/
+#ifdef _DEBUG
+    #define INFO_TRACE
+#else
+    #undef INFO_TRACE
+#endif
+
+/**
+* Timestamp tracing on
+*/
+#ifdef _DEBUG
+    #define TIMESTAMP_TRACE
+#else
+    #undef TIMESTAMP_TRACE
+#endif
+
+/**
+* Tracing current client process and thread
+*/
+#ifdef _DEBUG
+    #define CLIENT_TRACE
+#else
+    #undef CLIENT_TRACE
+#endif
+
+/**
+* Function trace enabled
+*/
+#ifdef _DEBUG
+    #define FUNC_TRACE
+#else
+    #undef FUNC_TRACE
+#endif
+
+/**
+* Tracing into file enabled, default RDebug
+*/
+#undef TRACE_INTO_FILE
+
+#endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/Startup/syserrcmd/tsrc/syserrcmdtest/init/syserrcmdtest.ini	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,186 @@
+#
+# This is STIFTestFramework initialization file
+# Comment lines start with '#'-character.
+# See STIF TestFramework users guide.doc for instructions
+
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+# Set following test engine settings:
+#	- Set Test Reporting mode. TestReportMode's possible values are:
+#		+ 'Summary': Summary of the tested test cases.
+#		+ 'Environment': Hardware and software info.
+#		+ 'TestCases': Test case report.
+#		+ 'FullReport': Set of all above ones.
+#		+ Example 'TestReportMode= Summary TestCases'
+#
+# 	- CreateTestReport setting controls report creation mode
+#		+ YES, Test report will created.
+#		+ NO, No Test report.
+#
+# 	- File path indicates the base path of the test report.
+# 	- File name indicates the name of the test report.
+#
+# 	- File format indicates the type of the test report.
+#		+ TXT, Test report file will be txt type, for example 'TestReport.txt'.
+#		+ HTML, Test report will be html type, for example 'TestReport.html'.
+#
+# 	- File output indicates output source of the test report.
+#		+ FILE, Test report logging to file.
+#		+ RDEBUG, Test report logging to using rdebug.
+#
+# 	- File Creation Mode indicates test report overwriting if file exist.
+#		+ OVERWRITE, Overwrites if the Test report file exist.
+#		+ APPEND, Continue logging after the old Test report information if 
+#                 report exist.
+# 	- Sets a device reset module's dll name(Reboot).
+#		+ If Nokia specific reset module is not available or it is not correct one
+#		  StifHWResetStub module may use as a template for user specific reset
+#		  module. 
+# 	- Sets STIF test measurement disable options. e.g. pluging1 and pluging2 disablation
+#		DisableMeasurement= stifmeasurementplugin01 stifmeasurementplugin02
+#
+
+[Engine_Defaults]
+
+TestReportMode= FullReport		# Possible values are: 'Empty', 'Summary', 'Environment', 'TestCases' or 'FullReport'
+
+CreateTestReport= YES			# Possible values: YES or NO
+
+TestReportFilePath= c:\LOGS\TestFramework\
+TestReportFileName= TestReport
+
+TestReportFormat= TXT			# Possible values: TXT or HTML
+TestReportOutput= FILE			# Possible values: FILE or RDEBUG
+TestReportFileCreationMode= OVERWRITE	# Possible values: OVERWRITE or APPEND
+
+DeviceResetDllName= StifResetForNokia.dll # e.g. 'StifHWResetStub.dll' for user specific reseting
+
+DisableMeasurement= stifmeasurementdisablenone	# Possible values are:
+						# 'stifmeasurementdisablenone', 'stifmeasurementdisableall'
+					  	# 'stifmeasurementplugin01', 'stifmeasurementplugin02',
+					  	# 'stifmeasurementplugin03', 'stifmeasurementplugin04',
+					  	# 'stifmeasurementplugin05' or 'stifbappeaprofiler'
+
+[End_Defaults]
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+
+
+
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+# Module configurations start
+# Modules are added between module tags
+# tags. Module name is specified after ModuleName= tag, like
+# ModuleName= XXXXXXXXX
+# Modules might have initialisation file, specified as
+# IniFile= c:\testframework\YYYYYY
+# Modules might have several configuration files, like
+# TestCaseFile= c:\testframework\NormalCases.txt
+# TestCaseFile= c:\testframework\SmokeCases.txt
+# TestCaseFile= c:\testframework\ManualCases.txt
+
+# (TestCaseFile is synonym for old term ConfigFile)
+
+# Following case specifies demo module settings. Demo module
+# does not read any settings from file, so tags 
+# IniFile and TestCaseFile are not used.
+# In the simplest case it is enough to specify only the
+# name of the test module when adding new test module
+[New_Module]
+ModuleName= TestScripter
+TestCaseFile= c:\testframework\syserrcmdtest.cfg
+[End_Module]
+
+# Load testmoduleXXX, optionally with initialization file and/or test case files
+#[New_Module]
+#ModuleName= testmodulexxx
+
+#TestModuleXXX used initialization file
+#IniFile= c:\testframework\init.txt
+
+#TestModuleXXX used configuration file(s)
+#TestCaseFile= c:\testframework\testcases1.cfg
+#TestCaseFile= c:\testframework\testcases2.cfg
+#TestCaseFile= c:\testframework\manualtestcases.cfg
+
+#[End_Module]
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+
+
+
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+# Set STIFTestFramework logging overwrite parameters for Logger.
+# 	Hardware and emulator environment logging path and styles can
+# 	be configured from here to overwrite the Logger's implemented values.
+#	
+#	Settings description:
+#	- Indicates option for creation log directory/directories. If log directory/directories
+#         is/are not created by user they will make by software.
+#		+ YES, Create log directory/directories if not allready exist.
+#		+ NO, Log directory/directories not created. Only created one is used.
+#
+#	- Overwrite emulator path setting.
+#		+ Example: If 'EmulatorBasePath= C:\LOGS\TestFramework\' and in code is defined 
+#		           Logger's path 'D:\LOGS\Module\' with those definition the path
+#		           will be 'C:\LOGS\TestFramework\LOGS\Module\'
+#
+#	- Overwrite emulator's logging format.
+#		+ TXT, Log file(s) will be txt type(s), for example 'Module.txt'.
+#		+ HTML, Log file(s) will be html type(s), for example 'Module.html'.
+#
+#	- Overwrited emulator logging output source.
+#		+ FILE, Logging to file(s).
+#		+ RDEBUG, Logging to using rdebug(s).
+#
+#	- Overwrite hardware path setting (Same description as above in emulator path).
+#	- Overwrite hardware's logging format(Same description as above in emulator format).
+#	- Overwrite hardware's logging output source(Same description as above in emulator output).
+#
+#	- File Creation Mode indicates file overwriting if file exist.
+#		+ OVERWRITE, Overwrites if file(s) exist.
+#		+ APPEND, Continue logging after the old logging information if file(s) exist.
+#
+#	- Will thread id include to the log filename.
+#		+ YES, Thread id to log file(s) name, Example filename 'Module_b9.txt'.
+#		+ NO, No thread id to log file(s), Example filename 'Module.txt'.
+#
+#	- Will time stamps include the to log file.
+#		+ YES, Time stamp added to each line in log file(s). Time stamp is 
+#                 for example'12.Nov.2003 115958    LOGGING INFO'
+#		+ NO, No time stamp(s).
+#
+#	- Will line breaks include to the log file.
+#		+ YES, Each logging event includes line break and next log event is in own line.
+#		+ NO, No line break(s).
+#
+#	- Will event ranking include to the log file.
+#		+ YES, Event ranking number added to each line in log file(s). Ranking number 
+#                 depends on environment's tics, for example(includes time stamp also)
+#                 '012   12.Nov.2003 115958    LOGGING INFO'
+#		+ NO, No event ranking.
+#
+
+[Logger_Defaults]
+
+#NOTE: If you want to set Logger using next setting(s) remove comment(s)'#' 
+#NOTE: TestEngine and TestServer logging settings cannot change here 
+
+#CreateLogDirectories= YES		# Possible values: YES or NO
+
+#EmulatorBasePath= C:\LOGS\TestFramework\
+#EmulatorFormat= HTML			# Possible values: TXT or HTML
+#EmulatorOutput= FILE			# Possible values: FILE or RDEBUG
+
+#HardwareBasePath= D:\LOGS\TestFramework\
+#HardwareFormat= HTML			# Possible values: TXT or HTML
+#HardwareOutput= FILE			# Possible values: FILE or RDEBUG
+
+#FileCreationMode= OVERWRITE		# Possible values: OVERWRITE or APPEND
+
+#ThreadIdToLogFile= YES			# Possible values: YES or NO
+#WithTimeStamp= YES			# Possible values: YES or NO
+#WithLineBreak= YES			# Possible values: YES or NO
+#WithEventRanking= YES			# Possible values: YES or NO
+
+[End_Logger_Defaults]
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+
+# End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/Startup/syserrcmd/tsrc/syserrcmdtest/src/syserrcmdtest.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,346 @@
+/*
+* 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:
+* CSysErrCmdTest class implementation.
+*
+*/
+
+#include <e32debug.h>
+#include <stifparser.h>
+#include <stiftestinterface.h>
+
+//#include <aknglobalnote.h>
+//#include <akncapserverclient.h>
+#include <ssm/ssmcustomcommand.h>
+
+#include "syserrcmdtest.h"
+#include "syserrcmdfactory.h"
+#include "syserrcmdtestsstub.h"
+#include "trace.h"
+
+//  INTERNAL INCLUDES
+NONSHARABLE_CLASS( TWaitInfo )
+    {
+    public:
+    
+        CPeriodic* iPeriodic;
+        CActiveSchedulerWait* iWait;
+    };
+    
+
+/**
+* Call back method when we need to stop active scheduler wait.
+*/
+LOCAL_C TInt WaitCallBack( TAny* aSelf )
+    {
+    if( aSelf )
+        {
+        TWaitInfo* info = static_cast<TWaitInfo*>( aSelf );
+        if( info->iPeriodic )
+            {
+            info->iPeriodic->Cancel();
+            }
+        if( info->iWait )
+            {
+            if( info->iWait->IsStarted() )
+                {
+                info->iWait->AsyncStop();
+                }
+            }
+        }
+    
+    return KErrNone;
+    }
+
+/**
+* Helper method to wait current scheduler before teardown is completed.
+*/
+LOCAL_C void WaitL( TInt aIntervalInMicorseconds )
+    {
+    TWaitInfo info;
+    
+    // Construct periodic
+    CPeriodic* periodic = CPeriodic::NewL( CActive::EPriorityStandard );
+    CleanupStack::PushL( periodic );
+    info.iPeriodic = periodic;
+    
+    // Construct active scheduler wait
+    CActiveSchedulerWait* wait = new( ELeave ) CActiveSchedulerWait;
+    CleanupStack::PushL( wait );
+    info.iWait = wait;
+    
+    // Start timer and wait
+    TCallBack cb( WaitCallBack, &info );
+    periodic->Start( aIntervalInMicorseconds, aIntervalInMicorseconds, cb );
+    wait->Start();
+    
+    // Cleanup
+    CleanupStack::PopAndDestroy( wait );
+    CleanupStack::PopAndDestroy( periodic );
+    }
+
+// ---------------------------------------------------------
+// CSysErrCmdTest::LibEntryL
+// Returns: Poiter to CSysErrCmdTest class
+// ---------------------------------------------------------
+EXPORT_C CSysErrCmdTest* LibEntryL( CTestModuleIf& aTestModuleIf )
+    {
+    FUNC_LOG;
+    
+    CSysErrCmdTest* libEntry( CSysErrCmdTest::NewL( aTestModuleIf ) );
+    return libEntry;
+    }
+
+// ---------------------------------------------------------
+// CSysErrCmdTest::CSysErrCmdTest
+// ---------------------------------------------------------
+CSysErrCmdTest::CSysErrCmdTest( CTestModuleIf& aTestModuleIf ) :
+    CScriptBase( aTestModuleIf )
+    {
+    FUNC_LOG;    
+    }
+
+// ---------------------------------------------------------
+// CSysErrCmdTest::ConstructL
+// ---------------------------------------------------------
+void CSysErrCmdTest::ConstructL()
+    {
+    FUNC_LOG;
+    
+    iExecuteHandler = CAsyncRequestHandler<CSysErrCmdTest>::NewL(
+                                    *this,
+                                    HandleIssueRequest,
+                                    HandleRunL,
+                                    HandleRunError,
+                                    HandleDoCancel,
+                    CAsyncRequestHandler<CSysErrCmdTest>::ERequestOneShot );
+
+    User::LeaveIfError( iFs.Connect() );
+    
+    iCustCmdEnvStub = SysErrCmdTestsStub::CustomCommandEnvStubL( iFs );
+    }
+
+// ---------------------------------------------------------
+// CSysErrCmdTest::NewL
+// ---------------------------------------------------------
+CSysErrCmdTest* CSysErrCmdTest::NewL( CTestModuleIf& aTestModuleIf )
+    {
+    FUNC_LOG;
+    
+    CSysErrCmdTest* self = new (ELeave) CSysErrCmdTest( aTestModuleIf );
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop( self );
+    return self;
+    }
+
+// ---------------------------------------------------------
+// CSysErrCmdTest::~CSysErrCmdTest
+// ---------------------------------------------------------
+CSysErrCmdTest::~CSysErrCmdTest()
+    {
+    iFs.Close();
+    delete iExecuteHandler;
+    delete iCustCmdEnvStub;
+    FUNC_LOG;    
+    }
+
+// ---------------------------------------------------------
+// CSysErrCmdTest::RunMethodL
+// ---------------------------------------------------------
+TInt CSysErrCmdTest::RunMethodL( CStifItemParser& aItem )
+    {
+    FUNC_LOG;
+    
+    const TStifFunctionInfo KFunctions[] =
+        {
+        // Copy this line for every implemented function.
+        // First string is the function name used in TestScripter script file.
+        // Second is the actual implementation member function.
+        ENTRY( "CreateAndDestroy", CSysErrCmdTest::CreateAndDestroyL ),
+        ENTRY( "InitAndClose", CSysErrCmdTest::InitAndCloseL ),
+        ENTRY( "Execute", CSysErrCmdTest::ExecuteL ),
+        ENTRY( "ExecuteCancel", CSysErrCmdTest::ExecuteCancelL ),
+        ENTRY( "ExecuteAfterGlobalNote", CSysErrCmdTest::ShowAfterAknGlobalNoteL ),
+        ENTRY( "ExecuteAfterUiServiceGlobalNote", CSysErrCmdTest::ShowAfterUiServerGlobalNoteL )
+        };
+    const TInt count( sizeof( KFunctions ) / sizeof( TStifFunctionInfo ) );
+    TInt ret( RunInternalL( KFunctions, count, aItem ) );
+    return ret;
+    }
+
+// ---------------------------------------------------------
+// CSysErrCmdTest::CreateAndDestroyL
+// ---------------------------------------------------------
+    
+TInt CSysErrCmdTest::CreateAndDestroyL( CStifItemParser& aItem )
+    {
+    FUNC_LOG;
+    ( void )aItem;
+    MSsmCustomCommand* sysErrCmd = SysErrCmdFactory::SysErrCmdNewL();
+    sysErrCmd->Release();
+    return KErrNone;
+    }
+
+// ---------------------------------------------------------
+// CSysErrCmdTest::InitAndCloseL
+// ---------------------------------------------------------
+TInt CSysErrCmdTest::InitAndCloseL( CStifItemParser& aItem )
+    {
+    FUNC_LOG;
+    ( void )aItem;
+
+    MSsmCustomCommand* sysErrCmd = SysErrCmdFactory::SysErrCmdNewL();
+     
+    TInt err( sysErrCmd->Initialize( iCustCmdEnvStub ) );
+    ERROR( err, "Failed to init syserrcmd" );
+    User::LeaveIfError( err );
+    
+    sysErrCmd->Close();    
+    sysErrCmd->Release();
+
+    return KErrNone;
+    }
+// ---------------------------------------------------------
+// CSysErrCmdTest::ExecuteL
+// ---------------------------------------------------------
+
+TInt CSysErrCmdTest::ExecuteL( CStifItemParser& aItem )
+    {
+    FUNC_LOG;
+    ( void )aItem;
+    iSysErrCmd = SysErrCmdFactory::SysErrCmdNewL();
+    TInt err( iSysErrCmd->Initialize( iCustCmdEnvStub ) );
+    ERROR( err, "Failed to init syserrcmd" );
+    User::LeaveIfError( err );
+    
+    iExecuteHandler->IssueRequest();
+    
+    WaitL( 5000 );
+    
+    iSysErrCmd->Close();
+    iSysErrCmd->Release();
+    
+    INFO_1( "Execution result %d", iExecutionResult );
+    
+    return iExecutionResult;
+    }
+
+// ---------------------------------------------------------
+// CSysErrCmdTest::ExecuteL
+// ---------------------------------------------------------
+
+TInt CSysErrCmdTest::ExecuteCancelL( CStifItemParser& aItem )
+    {
+    FUNC_LOG;
+    ( void )aItem;
+    iSysErrCmd = SysErrCmdFactory::SysErrCmdNewL();
+    TInt err( iSysErrCmd->Initialize( iCustCmdEnvStub ) );
+    ERROR( err, "Failed to init syserrcmd" );
+    User::LeaveIfError( err );
+    
+    iExecuteHandler->IssueRequest();
+    
+    WaitL( 5000 );
+
+    iSysErrCmd->ExecuteCancel();
+    
+    WaitL( 5000 );
+        
+    iSysErrCmd->Close();
+    iSysErrCmd->Release();
+    
+    INFO_1( "ExecutionCancel result %d", iExecutionResult );
+    
+    return ( iExecutionResult == KErrCancel ) ? KErrNone : KErrGeneral;    
+    }
+
+// ---------------------------------------------------------
+// CSysErrCmdTest::ShowAfterAknGlobalNoteL
+// ---------------------------------------------------------
+TInt CSysErrCmdTest::ShowAfterAknGlobalNoteL( CStifItemParser& aItem )
+    {/*
+    CAknGlobalNote* note = CAknGlobalNote::NewLC();
+    note->ShowNoteL( EAknGlobalInformationNote, _L("CAknGlobalNote::ShowNoteL()") );
+    CleanupStack::PopAndDestroy( note );
+
+    return ExecuteL( aItem );
+    */
+    return KErrNone;
+    }
+
+// ---------------------------------------------------------
+// CSysErrCmdTest::ShowAfterUiServerGlobalNoteL
+// ---------------------------------------------------------
+TInt CSysErrCmdTest::ShowAfterUiServerGlobalNoteL( CStifItemParser& aItem )
+    {
+  /*  RAknUiServer aknSrv;
+    
+    User::LeaveIfError( aknSrv.Connect() );
+    
+    CleanupClosePushL( aknSrv );
+    
+    aknSrv.ShowGlobalNoteL(  _L("RAknUiServer::ShowGlobalNoteL()"), EAknGlobalInformationNote );
+    
+    CleanupStack::PopAndDestroy( &aknSrv );
+    */
+    
+    return ExecuteL( aItem );
+    }
+
+// ---------------------------------------------------------
+// CSysErrCmdTest::HandleIssueRequest
+// ---------------------------------------------------------
+
+void CSysErrCmdTest::HandleIssueRequest( TRequestStatus& aRequest )
+    {
+    FUNC_LOG;
+    
+    iSysErrCmd->Execute( KNullDesC8, aRequest );
+
+    }
+// ---------------------------------------------------------
+// CSysErrCmdTest::HandleRunL
+// ---------------------------------------------------------
+   
+void CSysErrCmdTest::HandleRunL( TInt aStatus )
+    {
+    FUNC_LOG;
+    INFO_1( "CSysErrCmdTest::HandleRunL %d", aStatus );
+    
+    if ( KErrNone != aStatus )
+        {
+        iExecutionResult = aStatus;
+        }
+    }
+// ---------------------------------------------------------
+// CSysErrCmdTest::HandleRunError
+// ---------------------------------------------------------
+   
+TInt CSysErrCmdTest::HandleRunError( TInt aError )
+    {
+    FUNC_LOG;
+    ERROR( aError, "CSysErrCmdTest::HandleRunError" );
+    return KErrNone;
+    }
+// ---------------------------------------------------------
+// CSysErrCmdTest::HandleDoCancel
+// ---------------------------------------------------------
+   
+void CSysErrCmdTest::HandleDoCancel()
+    {
+    FUNC_LOG;
+    }
+
+    
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/Startup/syserrcmd/tsrc/syserrcmdtestsstub/bwins/syserrcmdtestsstubu.def	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,4 @@
+EXPORTS
+	?CustomCommandEnvStubL@SysErrCmdTestsStub@@SAPAVCSsmCustomCommandEnv@@AAVRFs@@@Z @ 1 NONAME ; class CSsmCustomCommandEnv * SysErrCmdTestsStub::CustomCommandEnvStubL(class RFs &)
+	?Rfs@CSsmCustomCommandEnv@@UBEABVRFs@@XZ @ 2 NONAME ; class RFs const & CSsmCustomCommandEnv::Rfs(void) const
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/Startup/syserrcmd/tsrc/syserrcmdtestsstub/eabi/syserrcmdtestsstubu.def	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,3 @@
+EXPORTS
+	_ZN18SysErrCmdTestsStub21CustomCommandEnvStubLER3RFs @ 1 NONAME
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/Startup/syserrcmd/tsrc/syserrcmdtestsstub/group/bld.inf	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,29 @@
+/*
+* 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:
+* Build information file for ssmlangselcmdtest tests.
+*
+*/
+
+#include <platform_paths.hrh>
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_TESTEXPORTS
+../inc/syserrcmdtestsstub.h                   |../../inc/syserrcmdtestsstub.h
+
+PRJ_TESTMMPFILES
+syserrcmdtestsstub.mmp
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/Startup/syserrcmd/tsrc/syserrcmdtestsstub/group/syserrcmdtestsstub.mmp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,41 @@
+/*
+* 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:
+* Project definition file for ssmlangselcmdtest.
+*
+*/
+
+#include <platform_paths.hrh>
+
+TARGET          syserrcmdtestsstub.dll
+TARGETTYPE      dll
+
+UID             0x1000008D 0x101FB3E9
+VENDORID        VID_DEFAULT
+CAPABILITY      ALL -TCB
+
+SOURCEPATH      ../src
+SOURCE 			    ssmcustomcommandenvstub.cpp
+SOURCE 			    syserrcmdtestsstub.cpp
+
+
+USERINCLUDE     ../inc
+
+OS_LAYER_SYSTEMINCLUDE
+
+LIBRARY     euser.lib
+
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/Startup/syserrcmd/tsrc/syserrcmdtestsstub/inc/syserrcmdtestsstub.h	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,44 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* Declaration of SsmLangSelCmdTestStub class.
+*
+*/
+
+#ifndef SYSERRCMDTESTSSTUB_H
+#define SYSERRCMDTESTSSTUB_H
+
+#include <e32base.h>
+
+class CSsmCustomCommandEnv;
+class RFs;
+/**
+* Stub class for syserrcmd tests
+*
+*/
+NONSHARABLE_CLASS( SysErrCmdTestsStub )
+    {
+public:
+    /**
+     * Methods for mapping p&s, cenrep and feature Uids
+     *
+     * @param aUid The Uid to map
+     * @return The mapped Uid 
+     */
+    
+    IMPORT_C static CSsmCustomCommandEnv* CustomCommandEnvStubL( RFs& aRfs );
+
+    };
+
+#endif // SYSERRCMDTESTSSTUB_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/Startup/syserrcmd/tsrc/syserrcmdtestsstub/src/ssmcustomcommandenvstub.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,63 @@
+/*
+ * 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:
+ *
+ */
+
+// SYSTEM INCLUDES
+
+// USER INCLUDES
+#include <ssm/ssmcustomcommand.h>
+
+// ======== MEMBER FUNCTIONS ========
+
+// ---------------------------------------------------------------------------
+// C++ constructor.
+// ---------------------------------------------------------------------------
+//
+CSsmCustomCommandEnv::CSsmCustomCommandEnv( RFs& aRfs )
+:iFs( aRfs )
+    {
+
+    }
+
+
+// ---------------------------------------------------------------------------
+// Symbian two phased constructor.
+// ---------------------------------------------------------------------------
+//
+CSsmCustomCommandEnv* CSsmCustomCommandEnv::NewL( RFs& aRfs )
+    {
+    CSsmCustomCommandEnv* self = new ( ELeave ) CSsmCustomCommandEnv( aRfs );
+    return self;
+    }
+
+
+// ---------------------------------------------------------------------------
+// C++ destructor.
+// ---------------------------------------------------------------------------
+//
+CSsmCustomCommandEnv::~CSsmCustomCommandEnv()
+    {
+
+    }
+// ---------------------------------------------------------------------------
+// CSsmCustomCommandEnv::Rfs
+// ---------------------------------------------------------------------------
+//
+const RFs& CSsmCustomCommandEnv::Rfs() const
+    {
+    return iFs;
+    }
+// End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/Startup/syserrcmd/tsrc/syserrcmdtestsstub/src/syserrcmdtestsstub.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,34 @@
+/*
+ * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ * 
+ * Description:
+ *
+ */
+
+// SYSTEM INCLUDES
+
+// USER INCLUDES
+#include "syserrcmdtestsstub.h"
+#include <ssm/ssmcustomcommand.h>
+
+// ---------------------------------------------------------------------------
+// C++ destructor.
+// ---------------------------------------------------------------------------
+//
+EXPORT_C CSsmCustomCommandEnv* SysErrCmdTestsStub::CustomCommandEnvStubL( 
+                                                                     RFs& aRfs )
+    {
+    return CSsmCustomCommandEnv::NewL( aRfs );
+    }
+
+// End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/TSanimctrl/Bmarm/TSanimctrlU.DEF	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,3 @@
+EXPORTS
+	LibEntryL__FR13CTestModuleIf @ 1 NONAME R3UNUSED ; LibEntryL(CTestModuleIf &)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/TSanimctrl/Bwins/TSanimctrlu.def	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,3 @@
+EXPORTS
+	?LibEntryL@@YAPAVCScriptBase@@AAVCTestModuleIf@@@Z @ 1 NONAME ; class CScriptBase * __cdecl LibEntryL(class CTestModuleIf &)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/TSanimctrl/conf/UI_TSanimctrl.cfg	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,303 @@
+[Test]
+title Example
+create TSanimctrl CSAnimStartupCtrl
+CSAnimStartupCtrl Example pa ra me ters
+delete CSAnimStartupCtrl
+[Endtest] 
+
+[Test]
+title TestConstructor
+create TSanimctrl CSAnimStartupCtrl
+CSAnimStartupCtrl SetupEmpty
+CSAnimStartupCtrl TestConstructor
+CSAnimStartupCtrl Teardown
+delete CSAnimStartupCtrl
+[Endtest] 
+
+[Test]
+title TestConstructorNoMemory
+create TSanimctrl CSAnimStartupCtrl
+CSAnimStartupCtrl SetupEmpty
+CSAnimStartupCtrl TestConstructorNoMemory
+CSAnimStartupCtrl Teardown
+delete CSAnimStartupCtrl
+[Endtest] 
+
+[Test]
+title SetupEmptyValues
+create TSanimctrl CSAnimStartupCtrl
+CSAnimStartupCtrl SetupEmptyValues
+CSAnimStartupCtrl TestLoadNoContent
+CSAnimStartupCtrl Teardown
+delete CSAnimStartupCtrl
+[Endtest] 
+
+[Test]
+title SetupUnknownFile
+create TSanimctrl CSAnimStartupCtrl
+CSAnimStartupCtrl SetupUnknownFile
+CSAnimStartupCtrl TestLoadNoContent
+CSAnimStartupCtrl Teardown
+delete CSAnimStartupCtrl
+[Endtest] 
+
+[Test]
+title SetupProtectedFile
+create TSanimctrl CSAnimStartupCtrl
+CSAnimStartupCtrl SetupProtectedFile
+CSAnimStartupCtrl TestLoadNoContent
+CSAnimStartupCtrl Teardown
+delete CSAnimStartupCtrl
+[Endtest] 
+
+[Test]
+title TestLoadHasContent
+create TSanimctrl CSAnimStartupCtrl
+CSAnimStartupCtrl SetupExistingImageFile
+CSAnimStartupCtrl TestLoadHasContent
+CSAnimStartupCtrl Teardown
+delete CSAnimStartupCtrl
+[Endtest] 
+
+[Test]
+title SetupExistingToneFileSilent
+create TSanimctrl CSAnimStartupCtrl
+CSAnimStartupCtrl SetupExistingToneFileSilent
+CSAnimStartupCtrl TestLoadHasContent
+CSAnimStartupCtrl Teardown
+delete CSAnimStartupCtrl
+[Endtest] 
+
+[Test]
+title SetupExistingToneFileVeryLowVolume
+create TSanimctrl CSAnimStartupCtrl
+CSAnimStartupCtrl SetupExistingToneFileVeryLowVolume
+CSAnimStartupCtrl TestLoadHasContent
+CSAnimStartupCtrl Teardown
+delete CSAnimStartupCtrl
+[Endtest] 
+
+[Test]
+title SetupExistingToneFileLowVolume
+create TSanimctrl CSAnimStartupCtrl
+CSAnimStartupCtrl SetupExistingToneFileLowVolume
+CSAnimStartupCtrl TestLoadHasContent
+CSAnimStartupCtrl Teardown
+delete CSAnimStartupCtrl
+[Endtest] 
+
+[Test]
+title SetupExistingToneFileNormalVolume
+create TSanimctrl CSAnimStartupCtrl
+CSAnimStartupCtrl SetupExistingToneFileNormalVolume
+CSAnimStartupCtrl TestLoadHasContent
+CSAnimStartupCtrl Teardown
+delete CSAnimStartupCtrl
+[Endtest] 
+
+[Test]
+title SetupExistingToneFileTooLowVolume
+create TSanimctrl CSAnimStartupCtrl
+CSAnimStartupCtrl SetupExistingToneFileTooLowVolume
+CSAnimStartupCtrl TestLoadHasContent
+CSAnimStartupCtrl Teardown
+delete CSAnimStartupCtrl
+[Endtest] 
+
+[Test]
+title SetupExistingToneFileTooHighVolume
+create TSanimctrl CSAnimStartupCtrl
+CSAnimStartupCtrl SetupExistingToneFileTooHighVolume
+CSAnimStartupCtrl TestLoadHasContent
+CSAnimStartupCtrl Teardown
+delete CSAnimStartupCtrl
+[Endtest] 
+
+
+[Test]
+title SetupUnknownToneFileNormalVolume
+create TSanimctrl CSAnimStartupCtrl
+CSAnimStartupCtrl SetupUnknownToneFileNormalVolume
+CSAnimStartupCtrl TestLoadHasContent
+CSAnimStartupCtrl Teardown
+delete CSAnimStartupCtrl
+[Endtest] 
+
+[Test]
+title TestLoadNoMemory
+create TSanimctrl CSAnimStartupCtrl
+CSAnimStartupCtrl SetupObj
+CSAnimStartupCtrl TestLoadNoMemory
+CSAnimStartupCtrl Teardown
+delete CSAnimStartupCtrl
+[Endtest] 
+
+[Test]
+title TestCancelLoad
+create TSanimctrl CSAnimStartupCtrl
+CSAnimStartupCtrl SetupObj
+CSAnimStartupCtrl TestCancelLoad
+CSAnimStartupCtrl Teardown
+delete CSAnimStartupCtrl
+[Endtest] 
+
+
+[Test]
+title TestLoadWhenActive
+create TSanimctrl CSAnimStartupCtrl
+CSAnimStartupCtrl SetupObj
+CSAnimStartupCtrl TestLoadWhenActive
+CSAnimStartupCtrl Teardown
+delete CSAnimStartupCtrl
+[Endtest] 
+
+[Test]
+title SetupEmptyShow
+create TSanimctrl CSAnimStartupCtrl
+CSAnimStartupCtrl SetupEmptyShow
+CSAnimStartupCtrl TestStart
+CSAnimStartupCtrl Teardown
+delete CSAnimStartupCtrl
+[Endtest] 
+
+[Test]
+title TestStart
+create TSanimctrl CSAnimStartupCtrl
+CSAnimStartupCtrl SetupShow
+CSAnimStartupCtrl TestStart
+CSAnimStartupCtrl Teardown
+delete CSAnimStartupCtrl
+[Endtest] 
+
+[Test]
+title TestCancelStart
+create TSanimctrl CSAnimStartupCtrl
+CSAnimStartupCtrl SetupShow
+CSAnimStartupCtrl TestCancelStart
+CSAnimStartupCtrl Teardown
+delete CSAnimStartupCtrl
+[Endtest] 
+
+[Test]
+title TestStartWhenActive
+create TSanimctrl CSAnimStartupCtrl
+CSAnimStartupCtrl SetupShow
+CSAnimStartupCtrl TestStartWhenActive
+CSAnimStartupCtrl Teardown
+delete CSAnimStartupCtrl
+[Endtest] 
+
+
+
+// Obj2
+// ---------------------------------------------------------------------------
+// Test table
+//
+// ---------------------------------------------------------------------------
+//
+
+[Test]
+title TestConstructorCtr
+create TSanimctrl CSAnimStartupCtrl
+CSAnimStartupCtrl SetupEmptyCtr
+CSAnimStartupCtrl TestConstructorCtr
+CSAnimStartupCtrl TeardownCtr
+delete CSAnimStartupCtrl
+[Endtest] 
+
+[Test]
+title TestConstructorNoMemoryCtr
+create TSanimctrl CSAnimStartupCtrl
+CSAnimStartupCtrl SetupEmptyCtr
+CSAnimStartupCtrl TestConstructorNoMemoryCtr
+CSAnimStartupCtrl TeardownCtr
+delete CSAnimStartupCtrl
+[Endtest] 
+
+
+[Test]
+title TestLoadEmpty2Ctr
+create TSanimctrl CSAnimStartupCtrl
+CSAnimStartupCtrl SetupObjCtr
+CSAnimStartupCtrl TestLoadEmptyCtr
+CSAnimStartupCtrl TeardownCtr
+delete CSAnimStartupCtrl
+[Endtest] 
+
+[Test]
+title TestLoadImageCtr
+create TSanimctrl CSAnimStartupCtrl
+CSAnimStartupCtrl SetupObjCtr
+CSAnimStartupCtrl TestLoadImageCtr
+CSAnimStartupCtrl TeardownCtr
+delete CSAnimStartupCtrl
+[Endtest] 
+
+[Test]
+title TestLoadToneCtr
+create TSanimctrl CSAnimStartupCtrl
+CSAnimStartupCtrl SetupObjCtr
+CSAnimStartupCtrl TestLoadToneCtr
+CSAnimStartupCtrl TeardownCtr
+delete CSAnimStartupCtrl
+[Endtest] 
+
+[Test]
+title TestLoadBothCtr
+create TSanimctrl CSAnimStartupCtrl
+CSAnimStartupCtrl SetupObjCtr
+CSAnimStartupCtrl TestLoadBothCtr
+CSAnimStartupCtrl TeardownCtr
+delete CSAnimStartupCtrl
+[Endtest] 
+
+
+[Test]
+title TestLoadWhenActiveCtr
+create TSanimctrl CSAnimStartupCtrl
+CSAnimStartupCtrl SetupObjCtr
+CSAnimStartupCtrl TestLoadWhenActiveCtr
+CSAnimStartupCtrl TeardownCtr
+delete CSAnimStartupCtrl
+[Endtest] 
+
+[Test]
+title TestCancelLoadCtr
+create TSanimctrl CSAnimStartupCtrl
+CSAnimStartupCtrl SetupObjCtr
+CSAnimStartupCtrl TestCancelLoadCtr
+CSAnimStartupCtrl TeardownCtr
+delete CSAnimStartupCtrl
+[Endtest] 
+
+
+[Test]
+title TestStartCtr
+create TSanimctrl CSAnimStartupCtrl
+CSAnimStartupCtrl SetupObjLoadedCtr
+CSAnimStartupCtrl TestStartCtr
+CSAnimStartupCtrl TeardownCtr
+delete CSAnimStartupCtrl
+[Endtest] 
+
+
+[Test]
+title TestStartNoMemoryCtr
+create TSanimctrl CSAnimStartupCtrl
+CSAnimStartupCtrl SetupObjLoadedCtr
+CSAnimStartupCtrl TestStartNoMemoryCtr
+CSAnimStartupCtrl TeardownCtr
+delete CSAnimStartupCtrl
+[Endtest]
+
+[Test]
+title TestStartWhenActiveCtr
+create TSanimctrl CSAnimStartupCtrl
+CSAnimStartupCtrl SetupObjLoadedCtr
+CSAnimStartupCtrl TestStartWhenActiveCtr
+CSAnimStartupCtrl TeardownCtr
+delete CSAnimStartupCtrl
+[Endtest]
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/TSanimctrl/eabi/TSanimctrlu.def	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,3 @@
+EXPORTS
+	_Z9LibEntryLR13CTestModuleIf @ 1 NONAME
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/TSanimctrl/group/TSanimctrl.mmp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,95 @@
+/*TYPE TESTCLASS*/
+/*
+* 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: MMP file for STIF Test Framework's TestScripter 
+* testclass test module.
+*
+*/
+
+#include <platform_paths.hrh>
+
+SMPSAFE
+
+TARGET          TSanimctrl.dll
+TARGETTYPE      dll
+UID             0x1000008D 0x101FB3E3
+
+CAPABILITY      ALL -TCB
+/* Remove comments and replace 0x00000000 with correct vendor id */
+// VENDORID     0x00000000
+/* Remove comments and replace 0x00000000 with correct secure id */
+// SECUREID     0x00000000
+
+//TARGETPATH      ?target_path
+DEFFILE         TSanimctrl.def
+
+USERINCLUDE     ../inc 
+USERINCLUDE     ../../inc
+USERINCLUDE     ../../../../../../inc
+USERINCLUDE     ../../../../sanimengine/inc
+
+OS_LAYER_SYSTEMINCLUDE
+
+SOURCEPATH      ../src
+
+SOURCE          TSanimctrl.cpp
+SOURCE          sanimmockview.cpp
+SOURCE          TSanimctrlBlocks.cpp testwaiter.cpp
+SOURCE          sanimctrlrootsuite.cpp             
+
+SYSTEMINCLUDE   /epoc32/include/mw/
+
+//RESOURCE        resource_file
+//RESOURCE        resource_file2
+
+LIBRARY         euser.lib
+LIBRARY         stiftestinterface.lib
+LIBRARY         stiftestengine.lib
+LIBRARY         centralrepository.lib
+LIBRARY         cone.lib
+LIBRARY         ecom.lib
+LIBRARY         euser.lib
+LIBRARY         sanimctrl.lib
+
+EPOCALLOWDLLDATA
+LANG            SC
+
+/*
+START WINS      
+?wins_specific_information
+END
+
+START MARM
+?marm_specific_information
+END
+
+//TARGET.EPOCALLOWDLLDATA=1
+
+
+
+*/
+// Other possible keywords:
+ 
+// DOCUMENT     ?file, that is not compiled, but added to MSVC project workspace (i.e. release notes)
+/*
+START BITMAP ?target
+TARGETPATH   ?emulated_path_on_target_machine
+HEADER
+SOURCE       ?color_depth ?source_bitmap
+END
+*/
+// DEFFILE ?filename
+// AIF ?filename
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/TSanimctrl/group/TSanimctrl.pkg	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,60 @@
+;
+; 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:
+;
+; 	Installation file for STIF
+;
+
+; Languages
+&EN
+
+; Provide value for uid
+#{"STIF"},(0x00000000),1,1,0,TYPE=SA
+
+; Series60 product id for S60 3.0
+[0x101F7961], 0, 0, 0, {"Series60ProductID"}
+
+; Localised Vendor name
+%{"Nokia"}
+
+; Unique Vendor name
+:"Nokia"
+
+; Logo
+; None
+
+; Package signature - Optional
+; None
+
+; Start of Package body
+
+; Condition blocks
+; None
+
+; Options list
+; None
+
+; Install files
+"\epoc32\release\armv5\udeb\TSanimctrl.dll"   -   "!:\Sys\Bin\TSanimctrl.dll"
+  
+; Embedded SIS 
+; None
+
+; End of Package body
+
+; PKG dependencies
+; None
+
+; PKG capabilities
+; None
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/TSanimctrl/group/TSanimctrl_DoxyFile.txt	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,240 @@
+#
+# 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:
+#
+#
+
+# Doxyfile 1.4.1
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+PROJECT_NAME           = TSanimctrl
+PROJECT_NUMBER         = 
+OUTPUT_DIRECTORY       = x:\TSanimctrl\
+CREATE_SUBDIRS         = NO
+OUTPUT_LANGUAGE        = English
+USE_WINDOWS_ENCODING   = YES
+BRIEF_MEMBER_DESC      = YES
+REPEAT_BRIEF           = YES
+ABBREVIATE_BRIEF       = 
+ALWAYS_DETAILED_SEC    = NO
+INLINE_INHERITED_MEMB  = NO
+FULL_PATH_NAMES        = NO
+STRIP_FROM_PATH        = 
+STRIP_FROM_INC_PATH    = 
+SHORT_NAMES            = NO
+JAVADOC_AUTOBRIEF      = NO
+MULTILINE_CPP_IS_BRIEF = NO
+DETAILS_AT_TOP         = NO
+INHERIT_DOCS           = YES
+DISTRIBUTE_GROUP_DOC   = NO
+TAB_SIZE               = 8
+ALIASES                = 
+OPTIMIZE_OUTPUT_FOR_C  = YES
+OPTIMIZE_OUTPUT_JAVA   = NO
+SUBGROUPING            = YES
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+EXTRACT_ALL            = YES
+EXTRACT_PRIVATE        = NO
+EXTRACT_STATIC         = NO
+EXTRACT_LOCAL_CLASSES  = NO
+EXTRACT_LOCAL_METHODS  = NO
+HIDE_UNDOC_MEMBERS     = NO
+HIDE_UNDOC_CLASSES     = NO
+HIDE_FRIEND_COMPOUNDS  = NO
+HIDE_IN_BODY_DOCS      = NO
+INTERNAL_DOCS          = YES
+CASE_SENSE_NAMES       = YES
+HIDE_SCOPE_NAMES       = NO
+SHOW_INCLUDE_FILES     = YES
+INLINE_INFO            = YES
+SORT_MEMBER_DOCS       = YES
+SORT_BRIEF_DOCS        = NO
+SORT_BY_SCOPE_NAME     = NO
+GENERATE_TODOLIST      = NO
+GENERATE_TESTLIST      = NO
+GENERATE_BUGLIST       = NO
+GENERATE_DEPRECATEDLIST= YES
+ENABLED_SECTIONS       = 
+MAX_INITIALIZER_LINES  = 30
+SHOW_USED_FILES        = YES
+SHOW_DIRECTORIES       = YES
+FILE_VERSION_FILTER    = 
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+QUIET                  = NO
+WARNINGS               = YES
+WARN_IF_UNDOCUMENTED   = YES
+WARN_IF_DOC_ERROR      = YES
+WARN_NO_PARAMDOC       = NO
+WARN_FORMAT            = "$file:$line: $text"
+WARN_LOGFILE           = 
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+INPUT                  = x:\TSanimctrl\
+FILE_PATTERNS          = *.h \
+                         *.rh \
+                         *.hrh
+RECURSIVE              = YES
+EXCLUDE                = 
+EXCLUDE_SYMLINKS       = NO
+EXCLUDE_PATTERNS       = 
+EXAMPLE_PATH           = 
+EXAMPLE_PATTERNS       = 
+EXAMPLE_RECURSIVE      = NO
+IMAGE_PATH             = 
+INPUT_FILTER           = 
+FILTER_PATTERNS        = 
+FILTER_SOURCE_FILES    = NO
+#---------------------------------------------------------------------------
+# configuration options related to source browsing
+#---------------------------------------------------------------------------
+SOURCE_BROWSER         = NO
+INLINE_SOURCES         = NO
+STRIP_CODE_COMMENTS    = YES
+REFERENCED_BY_RELATION = YES
+REFERENCES_RELATION    = YES
+VERBATIM_HEADERS       = YES
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+ALPHABETICAL_INDEX     = NO
+COLS_IN_ALPHA_INDEX    = 5
+IGNORE_PREFIX          = 
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+GENERATE_HTML          = NO
+HTML_OUTPUT            = html
+HTML_FILE_EXTENSION    = .html
+HTML_HEADER            = 
+HTML_FOOTER            = 
+HTML_STYLESHEET        = 
+HTML_ALIGN_MEMBERS     = YES
+GENERATE_HTMLHELP      = YES
+CHM_FILE               = 
+HHC_LOCATION           = 
+GENERATE_CHI           = NO
+BINARY_TOC             = YES
+TOC_EXPAND             = YES
+DISABLE_INDEX          = YES
+ENUM_VALUES_PER_LINE   = 4
+GENERATE_TREEVIEW      = YES
+TREEVIEW_WIDTH         = 250
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+GENERATE_LATEX         = NO
+LATEX_OUTPUT           = latex
+LATEX_CMD_NAME         = latex
+MAKEINDEX_CMD_NAME     = makeindex
+COMPACT_LATEX          = NO
+PAPER_TYPE             = a4wide
+EXTRA_PACKAGES         = 
+LATEX_HEADER           = 
+PDF_HYPERLINKS         = NO
+USE_PDFLATEX           = NO
+LATEX_BATCHMODE        = NO
+LATEX_HIDE_INDICES     = NO
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+GENERATE_RTF           = YES
+RTF_OUTPUT             = Doc
+COMPACT_RTF            = YES
+RTF_HYPERLINKS         = YES
+RTF_STYLESHEET_FILE    = 
+RTF_EXTENSIONS_FILE    = 
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+GENERATE_MAN           = NO
+MAN_OUTPUT             = man
+MAN_EXTENSION          = .3
+MAN_LINKS              = NO
+#---------------------------------------------------------------------------
+# configuration options related to the XML output
+#---------------------------------------------------------------------------
+GENERATE_XML           = NO
+XML_OUTPUT             = xml
+XML_SCHEMA             = 
+XML_DTD                = 
+XML_PROGRAMLISTING     = YES
+#---------------------------------------------------------------------------
+# configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+GENERATE_AUTOGEN_DEF   = NO
+#---------------------------------------------------------------------------
+# configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+GENERATE_PERLMOD       = NO
+PERLMOD_LATEX          = NO
+PERLMOD_PRETTY         = YES
+PERLMOD_MAKEVAR_PREFIX = 
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor   
+#---------------------------------------------------------------------------
+ENABLE_PREPROCESSING   = YES
+MACRO_EXPANSION        = YES
+EXPAND_ONLY_PREDEF     = NO
+SEARCH_INCLUDES        = YES
+INCLUDE_PATH           = 
+INCLUDE_FILE_PATTERNS  = 
+PREDEFINED             = NONSHARABLE_CLASS
+EXPAND_AS_DEFINED      = 
+SKIP_FUNCTION_MACROS   = YES
+#---------------------------------------------------------------------------
+# Configuration::additions related to external references   
+#---------------------------------------------------------------------------
+TAGFILES               = 
+GENERATE_TAGFILE       = 
+ALLEXTERNALS           = NO
+EXTERNAL_GROUPS        = YES
+PERL_PATH              = /usr/bin/perl
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool   
+#---------------------------------------------------------------------------
+CLASS_DIAGRAMS         = YES
+HIDE_UNDOC_RELATIONS   = YES
+HAVE_DOT               = NO
+CLASS_GRAPH            = YES
+COLLABORATION_GRAPH    = YES
+GROUP_GRAPHS           = YES
+UML_LOOK               = NO
+TEMPLATE_RELATIONS     = YES
+INCLUDE_GRAPH          = YES
+INCLUDED_BY_GRAPH      = YES
+CALL_GRAPH             = NO
+GRAPHICAL_HIERARCHY    = YES
+DIRECTORY_GRAPH        = YES
+DOT_IMAGE_FORMAT       = png
+DOT_PATH               = 
+DOTFILE_DIRS           = 
+MAX_DOT_GRAPH_WIDTH    = 1024
+MAX_DOT_GRAPH_HEIGHT   = 1024
+MAX_DOT_GRAPH_DEPTH    = 0
+DOT_TRANSPARENT        = NO
+DOT_MULTI_TARGETS      = NO
+GENERATE_LEGEND        = YES
+DOT_CLEANUP            = YES
+#---------------------------------------------------------------------------
+# Configuration::additions related to the search engine   
+#---------------------------------------------------------------------------
+SEARCHENGINE           = NO
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/TSanimctrl/group/bld.inf	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,61 @@
+/*
+* 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:
+*
+*/
+
+PRJ_PLATFORMS
+// specify the platforms your component needs to be built for here
+// defaults to WINS MARM so you can ignore this if you just build these
+	
+	DEFAULT
+
+PRJ_TESTEXPORTS
+// NOTE: If using ARS requirements all export operations should be done under this.
+// 'abld test export'
+
+PRJ_EXPORTS
+// Specify the source file followed by its destination here
+// copy will be used to copy the source file to its destination
+// If there's no destination then the source file will be copied
+// to the same name in \epoc32\include
+// Example: 
+/*
+\agnmodel\inc\AGMCOMON.H
+*/
+
+PRJ_TESTMMPFILES
+
+	TSanimctrl.mmp
+
+PRJ_MMPFILES
+
+	TSanimctrl.mmp
+
+
+// Specify the .mmp files required for building the important component
+// releasables.
+//
+// Specify "tidy" if the component you need to build doesn't need to be
+// released. Specify "ignore" if the MMP file exists but should be
+// ignored.
+// Example:
+/*
+\agnmodel\group\agnmodel.mmp
+#if defined(MARM)
+\agnmodel\group\agsvexe.mmp
+#endif
+*/
+
+//  End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/TSanimctrl/group/profile.txt	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,165 @@
+*****************************************************************************
+*           CTC++, Test Coverage Analyzer for C/C++, Version 6.5.5          *
+*                                                                           *
+*                         EXECUTION PROFILE LISTING                         *
+*                                                                           *
+*                    Copyright (c) 1993-2009 Testwell Oy                    *
+*****************************************************************************
+
+
+Symbol file(s) used   : MON.sym (Tue Aug 17 14:09:17 2010)
+Data file(s) used     : MON.dat (Tue Aug 17 14:38:19 2010)
+Listing produced at   : Tue Aug 17 14:38:22 2010
+Coverage view         : As instrumented
+
+
+
+MONITORED SOURCE FILE : Z:/startupservices/startupanimation/internal/test/TSanimctrl/src/sanimmockview.cpp
+INSTRUMENTATION MODE  : function
+
+    START/       END/
+      TRUE      FALSE    LINE DESCRIPTION
+=============================================================================
+
+        52          0      29 FUNCTION CSAnimMockView::NewL()
+         0          0 -    46 FUNCTION CSAnimMockView::~CSAnimMockView()
+        25         25      57 FUNCTION CSAnimMockView::SetComponent()
+         0          0 -    70 FUNCTION CSAnimMockView::RemoveComponent()
+        52         52      83 FUNCTION CSAnimMockView::CSAnimMockView()
+        52         52      94 FUNCTION CSAnimMockView::ConstructL()
+       171          0     108 FUNCTION CSAnimMockView::CountComponentControls()
+        50          0     120 FUNCTION CSAnimMockView::ComponentControl()
+        38         38     131 FUNCTION CSAnimMockView::Draw()
+
+***TER  78 % (  7/  9) of SOURCE FILE Z:/startupservices/startupanimation/internal/test/TSanimctrl/src/sanimmockview.cpp
+-----------------------------------------------------------------------------
+
+
+
+MONITORED SOURCE FILE : Z:/startupservices/startupanimation/internal/test/TSanimctrl/src/TSanimctrlBlocks.cpp
+INSTRUMENTATION MODE  : function
+
+    START/       END/
+      TRUE      FALSE    LINE DESCRIPTION
+=============================================================================
+
+        41         41      82 FUNCTION CTSanimctrl::Delete()
+        99          0      92 FUNCTION CTSanimctrl::RunMethodL()
+         7          0     165 FUNCTION CTSanimctrl::SetupEmptyCtrL()
+         0          0 -   179 FUNCTION CTSanimctrl::SetupObjCtrL()
+         8          0     194 FUNCTION CTSanimctrl::SetupObjLoadedCtrL()
+         4          0     213 FUNCTION CTSanimctrl::TeardownCtr()
+         2          0     232 FUNCTION CTSanimctrl::TestConstructorCtrL()
+         2          0     248 FUNCTION CTSanimctrl::TestConstructorNoMemoryCtrL()
+         3          0     262 FUNCTION CTSanimctrl::TestLoadEmptyCtrL()
+         0          0 -   280 FUNCTION CTSanimctrl::TestLoadImageCtrL()
+         0          0 -   298 FUNCTION CTSanimctrl::TestLoadToneCtrL()
+         0          0 -   316 FUNCTION CTSanimctrl::TestLoadBothCtrL()
+         0          0 -   334 FUNCTION CTSanimctrl::TestLoadWhenActiveCtrL()
+         0          0 -   359 FUNCTION CTSanimctrl::TestCancelLoadCtrL()
+         0          0 -   378 FUNCTION CTSanimctrl::TestStartCtrL()
+         0          0 -   393 FUNCTION CTSanimctrl::TestCancelStartCtrL()
+         0          0 -   409 FUNCTION CTSanimctrl::TestStartNoMemoryCtrL()
+         0          0 -   425 FUNCTION CTSanimctrl::TestStartWhenActiveCtrL()
+        51         51     449 FUNCTION CTSanimctrl::SetupParamsL()
+        51          0     470 FUNCTION CTSanimctrl::SetupProfileL()
+         4          0     485 FUNCTION CTSanimctrl::InitObjL()
+        26          0     504 FUNCTION CTSanimctrl::SetupEmptyL()
+         1          0     520 FUNCTION CTSanimctrl::SetupEmptyValuesL()
+         1          0     539 FUNCTION CTSanimctrl::SetupUnknownFileL()
+         1          0     557 FUNCTION CTSanimctrl::SetupProtectedFileL()
+         0          0 -   575 FUNCTION CTSanimctrl::SetupExistingImageFileL()
+         1          0     593 FUNCTION CTSanimctrl::SetupExistingToneFileSilentL()
+         1          0     611 FUNCTION CTSanimctrl::SetupExistingToneFileVeryLowVolumeL()
+         1          0     629 FUNCTION CTSanimctrl::SetupExistingToneFileLowVolumeL()
+         1          0     647 FUNCTION CTSanimctrl::SetupExistingToneFileNormalVolumeL()
+         1          0     665 FUNCTION CTSanimctrl::SetupExistingToneFileTooLowVolumeL()
+         1          0     683 FUNCTION CTSanimctrl::SetupExistingToneFileTooHighVolumeL()
+         1          0     701 FUNCTION CTSanimctrl::SetupUnknownToneFileNormalVolumeL()
+        11          0     719 FUNCTION CTSanimctrl::SetupObjL()
+         1          0     737 FUNCTION CTSanimctrl::SetupEmptyShowL()
+         3          0     752 FUNCTION CTSanimctrl::SetupShowL()
+        18          0     767 FUNCTION CTSanimctrl::Teardown()
+         0          0 -   786 FUNCTION CTSanimctrl::TestConstructorL()
+         1          0     803 FUNCTION CTSanimctrl::TestConstructorNoMemoryL()
+         3          0     818 FUNCTION CTSanimctrl::TestLoadNoContentL()
+         7          0     834 FUNCTION CTSanimctrl::TestLoadHasContentL()
+         1          0     850 FUNCTION CTSanimctrl::TestLoadNoMemoryL()
+         1          0     865 FUNCTION CTSanimctrl::TestCancelLoadL()
+         1          0     881 FUNCTION CTSanimctrl::TestLoadWhenActiveL()
+         2          0     900 FUNCTION CTSanimctrl::TestStartL()
+         1          0     915 FUNCTION CTSanimctrl::TestCancelStartL()
+         1          0     931 FUNCTION CTSanimctrl::TestStartWhenActiveL()
+         1          0     953 FUNCTION CTSanimctrl::ExampleL()
+
+***TER  75 % ( 36/ 48) of SOURCE FILE Z:/startupservices/startupanimation/internal/test/TSanimctrl/src/TSanimctrlBlocks.cpp
+-----------------------------------------------------------------------------
+
+
+
+MONITORED SOURCE FILE : Z:/startupservices/startupanimation/internal/test/TSanimctrl/src/testwaiter.cpp
+INSTRUMENTATION MODE  : function
+
+    START/       END/
+      TRUE      FALSE    LINE DESCRIPTION
+=============================================================================
+
+        66          0      30 FUNCTION CTestWaiter::NewL()
+        44         44      42 FUNCTION CTestWaiter::~CTestWaiter()
+        23         23      52 FUNCTION CTestWaiter::Activate()
+        66         66      65 FUNCTION CTestWaiter::CTestWaiter()
+         0          0 -    77 FUNCTION CTestWaiter::DoCancel()
+        23         23      87 FUNCTION CTestWaiter::RunL()
+
+***TER  83 % (  5/  6) of SOURCE FILE Z:/startupservices/startupanimation/internal/test/TSanimctrl/src/testwaiter.cpp
+-----------------------------------------------------------------------------
+
+
+
+MONITORED SOURCE FILE : Z:/startupservices/startupanimation/internal/test/TSanimctrl/src/TSanimctrl.cpp
+INSTRUMENTATION MODE  : function
+
+    START/       END/
+      TRUE      FALSE    LINE DESCRIPTION
+=============================================================================
+
+        52         52      85 FUNCTION CTSanimctrl::CTSanimctrl()
+        52         52      98 FUNCTION CTSanimctrl::ConstructL()
+        52          0     153 FUNCTION CTSanimctrl::NewL()
+        41         41     167 FUNCTION CTSanimctrl::~CTSanimctrl()
+        52         52     183 FUNCTION CTSanimctrl::SendTestClassVersion()
+        52          0     204 FUNCTION LibEntryL()
+
+***TER 100 % (  6/  6) of SOURCE FILE Z:/startupservices/startupanimation/internal/test/TSanimctrl/src/TSanimctrl.cpp
+-----------------------------------------------------------------------------
+
+
+
+MONITORED SOURCE FILE : Z:/startupservices/startupanimation/internal/test/TSanimctrl/src/sanimctrlrootsuite.cpp
+INSTRUMENTATION MODE  : function
+
+    START/       END/
+      TRUE      FALSE    LINE DESCRIPTION
+=============================================================================
+
+        52          0      31 FUNCTION CSAnimCtrlRootSuite::NewL()
+        52          0      44 FUNCTION CSAnimCtrlRootSuite::NewLC()
+         0          0 -    58 FUNCTION CSAnimCtrlRootSuite::~CSAnimCtrlRootSuite()
+        52          0      69 FUNCTION CSAnimCtrlRootSuite::MainView()
+        52         52      80 FUNCTION CSAnimCtrlRootSuite::CSAnimCtrlRootSuite()
+        52         52      90 FUNCTION CSAnimCtrlRootSuite::ConstructL()
+
+***TER  83 % (  5/  6) of SOURCE FILE Z:/startupservices/startupanimation/internal/test/TSanimctrl/src/sanimctrlrootsuite.cpp
+-----------------------------------------------------------------------------
+
+
+
+
+
+SUMMARY
+=======
+
+Number of monitored source files  : 5
+Number of source lines            : 1518
+Number of measurement points      : 150
+TER                               : 79% (function)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/TSanimctrl/group/t.txt	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,37 @@
+sbs: warning: Can't set attribute type for element var
+sbs: warning: Can't set attribute type for element var
+sbs: warning: Can't set attribute type for element var
+sbs: warning: Can't set attribute type for element var
+sbs: warning: Can't set attribute type for element var
+sbs: warning: Can't set attribute type for element var
+sbs: warning: Can't set attribute type for element var
+sbs: warning: Can't set attribute type for element var
+sbs: warning: Can't set attribute type for element var
+sbs: warning: Can't set attribute type for element var
+sbs: warning: Can't set attribute type for element var
+sbs: warning: Can't set attribute type for element var
+sbs: warning: Can't set attribute type for element var
+   mwldsym2.exe: Undefined symbol: 'class CSAnimMockView * CSAnimMockView::NewL(void) (?NewL@CSAnimMockView@@SAPAV1@XZ)'
+   mwldsym2.exe: referenced from 'class CTSanimctrl * CTSanimctrl::NewL(class CTestModuleIf &) (?NewL@CTSanimctrl@@SAPAV1@AAVCTestModuleIf@@@Z)' in TSanimctrl.cpp:154
+   mwldsym2.exe: referenced from 'void CTSanimctrl::TestConstructorL(void) (?TestConstructorL@CTSanimctrl@@AAEXXZ)' in TSanimctrlBlocks.cpp:828
+   mwldsym2.exe: referenced from 'void CTSanimctrl::TestConstructorNoMemoryL(void) (?TestConstructorNoMemoryL@CTSanimctrl@@AAEXXZ)' in TSanimctrlBlocks.cpp:844
+   mwldsym2.exe: Undefined symbol: 'void CSAnimMockView::SetComponent(class CCoeControl &) (?SetComponent@CSAnimMockView@@QAEXAAVCCoeControl@@@Z)'
+   mwldsym2.exe: referenced from 'void CTSanimctrl::InitObjL(void) (?InitObjL@CTSanimctrl@@AAEXXZ)' in TSanimctrlBlocks.cpp:548
+   mwldsym2.exe: referenced from 'void CTSanimctrl::SetupEmptyValuesL(void) (?SetupEmptyValuesL@CTSanimctrl@@AAEXXZ)' in TSanimctrlBlocks.cpp:584
+   mwldsym2.exe: referenced from 'void CTSanimctrl::SetupUnknownFileL(void) (?SetupUnknownFileL@CTSanimctrl@@AAEXXZ)' in TSanimctrlBlocks.cpp:601
+   mwldsym2.exe: referenced from 'void CTSanimctrl::SetupProtectedFileL(void) (?SetupProtectedFileL@CTSanimctrl@@AAEXXZ)' in TSanimctrlBlocks.cpp:618
+   mwldsym2.exe: referenced from 'void CTSanimctrl::SetupExistingImageFileL(void) (?SetupExistingImageFileL@CTSanimctrl@@AAEXXZ)' in TSanimctrlBlocks.cpp:635
+   mwldsym2.exe: referenced from 'void CTSanimctrl::SetupExistingToneFileSilentL(void) (?SetupExistingToneFileSilentL@CTSanimctrl@@AAEXXZ)' in TSanimctrlBlocks.cpp:652
+   mwldsym2.exe: referenced from 'void CTSanimctrl::SetupExistingToneFileVeryLowVolumeL(void) (?SetupExistingToneFileVeryLowVolumeL@CTSanimctrl@@AAEXXZ)' in TSanimctrlBlocks.cpp:669
+   mwldsym2.exe: referenced from 'void CTSanimctrl::SetupExistingToneFileLowVolumeL(void) (?SetupExistingToneFileLowVolumeL@CTSanimctrl@@AAEXXZ)' in TSanimctrlBlocks.cpp:686
+   mwldsym2.exe: ...
+   
+   Errors caused tool to abort.
+   
+
+sbs : warnings: 13
+sbs : errors: 3
+
+Run time 2 seconds
+
+sbs: build log in Z:/epoc32/build/Makefile.2010-08-13-14-05-28.log
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/TSanimctrl/inc/TSanimctrl.h	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,225 @@
+/*
+* 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: STIF testclass declaration
+*
+*/
+
+#ifndef TSANIMCTRL_H
+#define TSANIMCTRL_H
+
+//  INCLUDES
+#include <StifLogger.h>
+#include <TestScripterInternal.h>
+#include <StifTestModule.h>
+#include <TestclassAssert.h>
+
+// CONSTANTS
+//const ?type ?constant_var = ?constant;
+
+// MACROS
+//#define ?macro ?macro_def
+#define TEST_CLASS_VERSION_MAJOR 0
+#define TEST_CLASS_VERSION_MINOR 0
+#define TEST_CLASS_VERSION_BUILD 0
+
+// Logging path
+_LIT( KTSanimctrlLogPath, "\\logs\\testframework\\TSanimctrl\\" ); 
+// Log file
+_LIT( KTSanimctrlLogFile, "TSanimctrl.txt" ); 
+_LIT( KTSanimctrlLogFileWithTitle, "TSanimctrl_[%S].txt" );
+
+
+#include <e32def.h>
+#include "sanimstartupctrl.h"
+
+class CSAnimMockView;
+class CTestWaiter;
+class CTSanimctrl;
+
+NONSHARABLE_CLASS(CTSanimctrl) : public CScriptBase
+    {
+    public:  // Constructors and destructor
+
+        /**
+        * Two-phased constructor.
+        */
+        static CTSanimctrl* NewL( CTestModuleIf& aTestModuleIf,CSAnimMockView& aview  );
+
+        /**
+        * Destructor.
+        */
+        virtual ~CTSanimctrl();
+
+    public: // New functions
+
+        /**
+        * ?member_description.
+        * @since ?Series60_version
+        * @param ?arg1 ?description
+        * @return ?description
+        */
+        //?type ?member_function( ?type ?arg1 );
+
+    public: // Functions from base classes
+
+        /**
+        * From CScriptBase Runs a script line.
+        * @since ?Series60_version
+        * @param aItem Script line containing method name and parameters
+        * @return Symbian OS error code
+        */
+        virtual TInt RunMethodL( CStifItemParser& aItem );
+
+    protected:  // New functions
+
+        /**
+        * ?member_description.
+        * @since ?Series60_version
+        * @param ?arg1 ?description
+        * @return ?description
+        */
+        //?type ?member_function( ?type ?arg1 );
+
+    protected:  // Functions from base classes
+
+        /**
+        * From ?base_class ?member_description
+        */
+        //?type ?member_function();
+
+    private:
+
+        /**
+        * C++ default constructor.
+        */
+        CTSanimctrl( CTestModuleIf& aTestModuleIf,CSAnimMockView& aview );
+
+        /**
+        * By default Symbian 2nd phase constructor is private.
+        */
+        void ConstructL();
+
+        // Prohibit copy constructor if not deriving from CBase.
+        // ?classname( const ?classname& );
+        // Prohibit assigment operator if not deriving from CBase.
+        // ?classname& operator=( const ?classname& );
+
+        /**
+        * Frees all resources allocated from test methods.
+        * @since ?Series60_version
+        */
+        void Delete();
+
+        /**
+        * Test methods are listed below. 
+        */
+
+        /**
+        * Example test method.
+        * @since ?Series60_version
+        * @param aItem Script line containing parameters.
+        * @return Symbian OS error code.
+        */
+        virtual TInt ExampleL( CStifItemParser& aItem );
+        void SetupParamsL(
+            const TDesC& aImageFileName,
+            const TDesC& aToneFileName,
+            const TInt aFrameDelay,
+            const TInt aVolume,
+            const TInt aVolumeRamp );
+        TInt SetupProfileL( const TInt aRingingType, const TInt aRingingVolume );
+        TInt InitObjL();
+        TInt SetupEmptyL();
+        TInt SetupEmptyValuesL();
+        TInt SetupUnknownFileL();
+        TInt SetupProtectedFileL();
+        TInt SetupExistingImageFileL();
+        TInt SetupExistingToneFileSilentL();
+        TInt SetupExistingToneFileVeryLowVolumeL();
+        TInt SetupExistingToneFileLowVolumeL();
+        TInt SetupExistingToneFileNormalVolumeL();
+        TInt SetupExistingToneFileTooLowVolumeL();
+        TInt SetupExistingToneFileTooHighVolumeL();
+        TInt SetupUnknownToneFileNormalVolumeL();
+        TInt SetupObjL();
+        TInt SetupEmptyShowL();
+        TInt SetupShowL();
+        TInt Teardown();
+
+        TInt TestConstructorL();
+        TInt TestConstructorNoMemoryL();
+        TInt TestLoadNoContentL();
+        TInt TestLoadHasContentL();
+        TInt TestLoadNoMemoryL();
+        TInt TestCancelLoadL();
+        TInt TestLoadWhenActiveL();
+        TInt TestStartL();
+        TInt TestCancelStartL();
+        TInt TestStartWhenActiveL();
+        
+        
+        // CtrTestSuite
+        TInt SetupEmptyCtrL();
+        TInt SetupObjCtrL();
+        TInt SetupObjLoadedCtrL();
+        TInt TeardownCtr();
+
+        TInt TestConstructorCtrL();
+        TInt TestConstructorNoMemoryCtrL();
+        TInt TestLoadEmptyCtrL();
+        TInt TestLoadImageCtrL();
+        TInt TestLoadToneCtrL();
+        TInt TestLoadBothCtrL();
+        TInt TestLoadWhenActiveCtrL();
+        TInt TestCancelLoadCtrL();
+
+        TInt TestStartCtrL();
+        TInt TestCancelStartCtrL();
+        TInt TestStartNoMemoryCtrL();
+        TInt TestStartWhenActiveCtrL();
+
+        
+       
+        /**
+         * Method used to log version of test class
+         */
+        void SendTestClassVersion();
+    private: // data
+        //ADD NEW METHOD DEC HERE
+        //[TestMethods] - Do not remove
+
+        /** Parent control for the object to be tested. */
+        CSAnimMockView& iView;
+          
+
+          /** Parameters to use in testing. */
+          CSAnimStartupCtrl::TAnimationParams iParams;
+
+
+          /** Instance of the class that this test suite is testing. */
+          CSAnimStartupCtrl* iTestObj;
+          
+          /** Instance of the class that this test suite is testing. */
+          CSAnimCtrl* iTestObj2;
+
+          /** For testing async calls. */
+          CTestWaiter* iWaiter;
+          CTestWaiter* iWaiter2;
+          
+         
+    };
+
+#endif      // TSANIMCTRL_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/TSanimctrl/inc/sanimctrlrootsuite.h	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,84 @@
+/*
+* 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 the License "Symbian Foundation License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Declaration of CSAnimCtrlRootSuite class
+*
+*/
+
+
+#ifndef SANIMCTRLROOTSUITE_H
+#define SANIMCTRLROOTSUITE_H
+
+class CSAnimMockView;
+
+/**
+*  Root test suite for SAnimCtrl tests.
+*
+*  @lib None
+*  @since S60 3.2
+*/
+class CSAnimCtrlRootSuite 
+    {
+
+public:
+
+    /**
+    * Constructs a CSAnimCtrlRootSuite object.
+    *
+    * @since S60 3.2
+    *
+    * @return The new object
+    */
+    static CSAnimCtrlRootSuite* NewL();
+    static CSAnimCtrlRootSuite* NewLC();
+
+    /**
+    * Destructor.
+    *
+    * @since S60 3.2
+    */
+    virtual ~CSAnimCtrlRootSuite();
+
+    /**
+    * Return a reference to the main view.
+    *
+    * @since S60 3.2
+    *
+    * @return A reference to the main view.
+    */
+    CSAnimMockView& MainView();
+
+private:
+
+    /**
+    * First phase constructor.
+    *
+    * @since S60 3.2
+    */
+    CSAnimCtrlRootSuite();
+
+    /**
+    * Second phase constructor.
+    *
+    * @since S60 3.2
+    */
+    void ConstructL();
+
+private: // data
+
+    /** Parent control for the objects to be tested. */
+    CSAnimMockView* iView;
+
+    };
+
+#endif // SANIMCTRLROOTSUITE_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/TSanimctrl/inc/sanimmockview.h	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,116 @@
+/*
+* 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 the License "Symbian Foundation License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Declaration of CSAnimMockView class
+*
+*/
+
+
+#ifndef SANIMMOCKVIEW_H
+#define SANIMMOCKVIEW_H
+
+#include <coecntrl.h>
+
+/**
+*  For testing CSAnimCtrl.
+*
+*  @lib None
+*  @since S60 3.2
+*/
+class CSAnimMockView  : public CCoeControl
+    {
+
+public:
+
+    /**
+    * Constructs a CSAnimMockView object.
+    *
+    * @since S60 3.2
+    *
+    * @return The new object
+    */
+    static CSAnimMockView* NewL();
+
+    /**
+    * Destructor.
+    *
+    * @since S60 3.2
+    */
+    virtual ~CSAnimMockView();
+
+    /**
+    * Set a sub-control to this control.
+    *
+    * @since S60 3.2
+    */
+    void SetComponent( CCoeControl& aComponent );
+
+    /**
+    * Remove the sub-control from this control.
+    *
+    * @since S60 3.2
+    */
+    void RemoveComponent();
+
+protected:
+
+    /**
+    * First phase constructor.
+    *
+    * @since S60 3.2
+    */
+    CSAnimMockView();
+
+    /**
+    * Second phase constructor.
+    *
+    * @since S60 3.2
+    */
+    void ConstructL();
+
+    /**
+    * From CCoeControl.
+    *
+    * @since S60 3.2
+    *
+    * @return The number of controls contained in this control.
+    */
+    TInt CountComponentControls() const;
+
+    /**
+    * From CCoeControl.
+    *
+    * @since S60 3.2
+    *
+    * @param aIndex Identifies the component control to return.
+    * @return The component control at index given as parameter.
+    */
+    CCoeControl* ComponentControl( TInt aIndex ) const;
+
+    /**
+    * From CCoeControl.
+    *
+    * @since S60 3.2
+    *
+    * @param aRect The rectangle to draw into.
+    */
+    void Draw( const TRect& aRect ) const;
+
+private:
+
+    /** Component control. */
+    CCoeControl* iComponent;
+
+    };
+
+#endif // SANIMMOCKVIEW_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/TSanimctrl/inc/testwaiter.h	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,88 @@
+/*
+* 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 the License "Symbian Foundation License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Declaration of CTestWaiter class
+*
+*/
+
+
+#ifndef TESTWAITER_H
+#define TESTWAITER_H
+
+#include <e32base.h>
+
+/**
+*  Stops active scheduler in RunL.
+*
+*  @lib None
+*  @since S60 3.2
+*/
+class CTestWaiter  : public CActive
+    {
+
+public:
+
+    /**
+    * Constructs a CTestWaiter object.
+    *
+    * @return The new object
+    * @since S60 3.2
+    */
+    static CTestWaiter* NewL();
+
+    /**
+    * Destructor.
+    *
+    * @since S60 3.2
+    */
+    virtual ~CTestWaiter();
+
+    /**
+    * Set active.
+    *
+    * @since S60 3.2
+    */
+    void Activate();
+
+protected:
+
+    /**
+    * From CActive.
+    * Implements cancellation of an outstanding request.
+    *
+    * @since S60 3.2
+    */
+    virtual void DoCancel();
+
+    /**
+    * From CActive.
+    * Handles an active object's request completion event.
+    * Never leaves.
+    *
+    * @since S60 3.2
+    */
+    virtual void RunL();
+
+private:
+
+    /**
+    * First phase constructor.
+    *
+    */
+    CTestWaiter();
+
+private: // data
+
+    };
+
+#endif // TESTWAITER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/TSanimctrl/init/TestFramework.ini	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,221 @@
+#
+# This is STIF initialization file
+# Comment lines start with '#'-character.
+# See STIF TestFramework users guide.doc for instructions
+
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+# Set following test engine settings:
+#	- Set Test Reporting mode. TestReportMode's possible values are:
+#		+ 'Summary': Summary of the tested test cases.
+#		+ 'Environment': Hardware and software info.
+#		+ 'TestCases': Test case report.
+#		+ 'FullReport': Set of all above ones.
+#		+ Example 'TestReportMode= Summary TestCases'
+#
+# 	- CreateTestReport setting controls report creation mode
+#		+ YES, Test report will created.
+#		+ NO, No Test report.
+#
+# 	- File path indicates the base path of the test report.
+# 	- File name indicates the name of the test report.
+#
+# 	- File format indicates the type of the test report.
+#		+ TXT, Test report file will be txt type, for example 'TestReport.txt'.
+#		+ HTML, Test report will be html type, for example 'TestReport.html'.
+#   + XML, Test report will be xml type, for example 'TestReport.xml'.
+#          Note, that xml format is available only when output is set to FILE.
+#
+# 	- File output indicates output source of the test report.
+#		+ FILE, Test report logging to file.
+#		+ RDEBUG, Test report logging to using rdebug.
+#
+# 	- File Creation Mode indicates test report overwriting if file exist.
+#		+ OVERWRITE, Overwrites if the Test report file exist.
+#		+ APPEND, Continue logging after the old Test report information if
+#                 report exist.
+# 	- Sets a device reset module's dll name(Reboot).
+#		+ If Nokia specific reset module is not available or it is not correct one
+#		  StifHWResetStub module may use as a template for user specific reset
+#		  module.
+# 	- Sets STIF test measurement disable options. e.g. pluging1 and pluging2 disablation
+#		DisableMeasurement= stifmeasurementplugin01 stifmeasurementplugin02
+#
+
+[Engine_Defaults]
+
+TestReportMode= FullReport    # Possible values are: 'Empty', 'Summary', 'Environment',
+                              #                      'TestCases' or 'FullReport'
+
+CreateTestReport= YES         # Possible values: YES or NO
+
+TestReportFilePath= C:\LOGS\TestFramework\
+TestReportFileName= TestReport
+
+TestReportFormat= TXT         # Possible values: TXT, HTML or XML
+TestReportOutput= FILE        # Possible values: FILE or RDEBUG
+TestReportFileCreationMode= OVERWRITE # Possible values: OVERWRITE or APPEND
+
+DeviceResetDllName= StifResetForNokia.dll # e.g. 'StifHWResetStub.dll' for user specific reseting
+
+DisableMeasurement= stifmeasurementdisablenone  # Possible values are:
+              # 'stifmeasurementdisablenone', 'stifmeasurementdisableall'
+              # 'stifmeasurementplugin01', 'stifmeasurementplugin02',
+              # 'stifmeasurementplugin03', 'stifmeasurementplugin04',
+              # 'stifmeasurementplugin05' or 'stifbappeaprofiler'
+
+Timeout= 0                    # Default timeout value for each test case. In milliseconds
+UITestingSupport= YES        # Possible values: YES or NO
+#SeparateProcesses= YES       # Possible values: YES or NO (default: NO)
+[End_Defaults]
+
+[New_Module]
+ModuleName= testscripter 
+TestCaseFile= c:\testframework\UI_Tsanimctrl.cfg
+[End_Module]
+
+
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+
+
+
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+# Module configurations start
+# Modules are added between module tags
+# tags. Module name is specified after ModuleName= tag, like
+# ModuleName= XXXXXXXXX
+# Modules might have initialisation file, specified as
+# IniFile= c:\testframework\YYYYYY
+# Modules might have several configuration files, like
+# TestCaseFile= c:\testframework\NormalCases.txt
+# TestCaseFile= c:\testframework\SmokeCases.txt
+# TestCaseFile= c:\testframework\ManualCases.txt
+
+# (TestCaseFile is synonym for old term ConfigFile)
+
+# Following case specifies demo module settings. Demo module
+# does not read any settings from file, so tags 
+# IniFile and TestCaseFile are not used.
+# In the simplest case it is enough to specify only the
+# name of the test module when adding new test module
+
+
+
+# Load testmoduleXXX, optionally with initialization file and/or test case files
+#[New_Module]
+#ModuleName= testmodulexxx
+
+#TestModuleXXX used initialization file
+#IniFile= c:\testframework\init.txt
+
+#TestModuleXXX used configuration file(s)
+#TestCaseFile= c:\testframework\testcases1.cfg
+#TestCaseFile= c:\testframework\testcases2.cfg
+#TestCaseFile= c:\testframework\manualtestcases.cfg
+
+#[End_Module]
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+
+
+
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+# Set STIF logging overwrite parameters for Logger.
+# 	Hardware and emulator environment logging path and styles can
+# 	be configured from here to overwrite the Logger's implemented values.
+#	
+#	Settings description:
+#	- Indicates option for creation log directory/directories. If log directory/directories
+#         is/are not created by user they will make by software.
+#		+ YES, Create log directory/directories if not allready exist.
+#		+ NO, Log directory/directories not created. Only created one is used.
+#
+#	- Overwrite emulator path setting.
+#		+ Example: If 'EmulatorBasePath= C:\LOGS\TestFramework\' and in code is defined 
+#		           Logger's path 'D:\\LOGS\\Module\\' with those definition the path
+#		           will be 'C:\LOGS\TestFramework\LOGS\Module\'
+#
+#	- Overwrite emulator's logging format.
+#		+ TXT, Log file(s) will be txt type(s), for example 'Module.txt'.
+#		+ HTML, Log file(s) will be html type(s), for example 'Module.html'.
+#
+#	- Overwrited emulator logging output source.
+#		+ FILE, Logging to file(s).
+#		+ RDEBUG, Logging to using rdebug(s).
+#
+#	- Overwrite hardware path setting (Same description as above in emulator path).
+#	- Overwrite hardware's logging format(Same description as above in emulator format).
+#	- Overwrite hardware's logging output source(Same description as above in emulator output).
+#
+#	- File Creation Mode indicates file overwriting if file exist.
+#		+ OVERWRITE, Overwrites if file(s) exist.
+#		+ APPEND, Continue logging after the old logging information if file(s) exist.
+#
+#	- Will thread id include to the log filename.
+#		+ YES, Thread id to log file(s) name, Example filename 'Module_b9.txt'.
+#		+ NO, No thread id to log file(s), Example filename 'Module.txt'.
+#
+#	- Will time stamps include the to log file.
+#		+ YES, Time stamp added to each line in log file(s). Time stamp is 
+#                 for example'12.Nov.2003 115958    LOGGING INFO'
+#		+ NO, No time stamp(s).
+#
+#	- Will line breaks include to the log file.
+#		+ YES, Each logging event includes line break and next log event is in own line.
+#		+ NO, No line break(s).
+#
+#	- Will event ranking include to the log file.
+#		+ YES, Event ranking number added to each line in log file(s). Ranking number
+#                 depends on environment's tics, for example(includes time stamp also)
+#                 '012   12.Nov.2003 115958    LOGGING INFO'
+#		+ NO, No event ranking.
+#
+#	- Will write log file in unicode format.
+#		+ YES, Log file will be written in unicode format
+#		+ NO, Log will be written as normal, not unicode, file.
+#
+
+[Logger_Defaults]
+
+#NOTE: If you want to set Logger using next setting(s) remove comment(s)'#'
+#NOTE: TestEngine and TestServer logging settings cannot change here
+
+#CreateLogDirectories= YES    # Possible values: YES or NO
+
+#EmulatorBasePath= C:\LOGS\TestFramework\
+#EmulatorFormat= HTML         # Possible values: TXT or HTML
+#EmulatorOutput= FILE         # Possible values: FILE or RDEBUG
+
+#HardwareBasePath= D:\LOGS\TestFramework\
+#HardwareFormat= HTML         # Possible values: TXT or HTML
+#HardwareOutput= FILE         # Possible values: FILE or RDEBUG
+
+#FileCreationMode= OVERWRITE  # Possible values: OVERWRITE or APPEND
+
+#ThreadIdToLogFile= YES       # Possible values: YES or NO
+#WithTimeStamp= YES           # Possible values: YES or NO
+#WithLineBreak= YES           # Possible values: YES or NO
+#WithEventRanking= YES        # Possible values: YES or NO
+
+#FileUnicode= YES             # Possible values: YES or NO
+#AddTestCaseTitle= YES        # Possible values: YES or NO
+[End_Logger_Defaults]
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+
+
+
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+# Set filters to be used by ConsoleUI.
+# 	If you want to use filter with ConsoleUI, simply remove comments
+# 	from section below and provide valid filter entries.
+#   Each filter line has to start with "filter= " keyword.
+#   Filter can contain special wildcard characters:
+#     *  which stands for none or any literal;
+#     ?  which stands for single character.
+#   Filters are not case-sensitive.
+
+#[Filters]
+#filter= *math*
+#filter= *radio*
+#[End_Filters]
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+
+# End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/TSanimctrl/init/UI_TSanimctrl.cfg	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,336 @@
+[Test]
+title Example
+create TSanimctrl foobar
+foobar Example pa ra me ters
+delete foobar
+[Endtest] 
+
+[Test]
+title TestConstructorL
+create TSanimctrl CSAnimStartupCtrl
+CSAnimStartupCtrl SetupEmptyL
+CSAnimStartupCtrl TestConstructorL
+CSAnimStartupCtrl Teardown
+delete CSAnimStartupCtrl
+[Endtest] 
+
+[Test]
+title TestConstructorL
+create TSanimctrl CSAnimStartupCtrl
+CSAnimStartupCtrl SetupEmptyL
+CSAnimStartupCtrl TestConstructorNoMemoryL
+CSAnimStartupCtrl Teardown
+delete CSAnimStartupCtrl
+[Endtest] 
+
+[Test]
+title TestConstructorL
+create TSanimctrl CSAnimStartupCtrl
+CSAnimStartupCtrl SetupEmptyValuesL
+CSAnimStartupCtrl TestLoadNoContentL
+CSAnimStartupCtrl Teardown
+delete CSAnimStartupCtrl
+[Endtest] 
+
+[Test]
+title TestConstructorL
+create TSanimctrl CSAnimStartupCtrl
+CSAnimStartupCtrl SetupUnknownFileL
+CSAnimStartupCtrl TestLoadNoContentL
+CSAnimStartupCtrl Teardown
+delete CSAnimStartupCtrl
+[Endtest] 
+
+[Test]
+title TestConstructorL
+create TSanimctrl CSAnimStartupCtrl
+CSAnimStartupCtrl SetupProtectedFileL
+CSAnimStartupCtrl TestLoadNoContentL
+CSAnimStartupCtrl Teardown
+delete CSAnimStartupCtrl
+[Endtest] 
+
+[Test]
+title TestConstructorL
+create TSanimctrl CSAnimStartupCtrl
+CSAnimStartupCtrl SetupExistingImageFileL
+CSAnimStartupCtrl TestLoadHasContentL
+CSAnimStartupCtrl Teardown
+delete CSAnimStartupCtrl
+[Endtest] 
+
+[Test]
+title TestConstructorL
+create TSanimctrl CSAnimStartupCtrl
+CSAnimStartupCtrl SetupExistingToneFileSilentL
+CSAnimStartupCtrl TestLoadHasContentL
+CSAnimStartupCtrl Teardown
+delete CSAnimStartupCtrl
+[Endtest] 
+
+[Test]
+title TestConstructorL
+create TSanimctrl CSAnimStartupCtrl
+CSAnimStartupCtrl SetupExistingToneFileVeryLowVolumeL
+CSAnimStartupCtrl TestLoadHasContentL
+CSAnimStartupCtrl Teardown
+delete CSAnimStartupCtrl
+[Endtest] 
+
+[Test]
+title TestConstructorL
+create TSanimctrl CSAnimStartupCtrl
+CSAnimStartupCtrl SetupExistingToneFileLowVolumeL
+CSAnimStartupCtrl TestLoadHasContentL
+CSAnimStartupCtrl Teardown
+delete CSAnimStartupCtrl
+[Endtest] 
+
+[Test]
+title TestConstructorL
+create TSanimctrl CSAnimStartupCtrl
+CSAnimStartupCtrl SetupExistingToneFileNormalVolumeL
+CSAnimStartupCtrl TestLoadHasContentL
+CSAnimStartupCtrl Teardown
+delete CSAnimStartupCtrl
+[Endtest] 
+
+[Test]
+title TestConstructorL
+create TSanimctrl CSAnimStartupCtrl
+CSAnimStartupCtrl SetupExistingToneFileTooLowVolumeL
+CSAnimStartupCtrl TestLoadHasContentL
+CSAnimStartupCtrl Teardown
+delete CSAnimStartupCtrl
+[Endtest] 
+
+[Test]
+title TestConstructorL
+create TSanimctrl CSAnimStartupCtrl
+CSAnimStartupCtrl SetupExistingToneFileTooHighVolumeL
+CSAnimStartupCtrl TestLoadHasContentL
+CSAnimStartupCtrl Teardown
+delete CSAnimStartupCtrl
+[Endtest] 
+
+
+[Test]
+title TestConstructorL
+create TSanimctrl CSAnimStartupCtrl
+CSAnimStartupCtrl SetupUnknownToneFileNormalVolumeL
+CSAnimStartupCtrl TestLoadHasContentL
+CSAnimStartupCtrl Teardown
+delete CSAnimStartupCtrl
+[Endtest] 
+
+[Test]
+title TestConstructorL
+create TSanimctrl CSAnimStartupCtrl
+CSAnimStartupCtrl SetupObjL
+CSAnimStartupCtrl TestLoadNoMemoryL
+CSAnimStartupCtrl Teardown
+delete CSAnimStartupCtrl
+[Endtest] 
+
+[Test]
+title TestConstructorL
+create TSanimctrl CSAnimStartupCtrl
+CSAnimStartupCtrl SetupObjL
+CSAnimStartupCtrl TestCancelLoadL
+CSAnimStartupCtrl Teardown
+delete CSAnimStartupCtrl
+[Endtest] 
+
+
+[Test]
+title TestConstructorL
+create TSanimctrl CSAnimStartupCtrl
+CSAnimStartupCtrl SetupObjL
+CSAnimStartupCtrl TestLoadWhenActiveL
+CSAnimStartupCtrl Teardown
+delete CSAnimStartupCtrl
+[Endtest] 
+
+[Test]
+title TestConstructorL
+create TSanimctrl CSAnimStartupCtrl
+CSAnimStartupCtrl SetupEmptyShowL
+CSAnimStartupCtrl TestStartL
+CSAnimStartupCtrl Teardown
+delete CSAnimStartupCtrl
+[Endtest] 
+
+[Test]
+title TestConstructorL
+create TSanimctrl CSAnimStartupCtrl
+CSAnimStartupCtrl SetupShowL
+CSAnimStartupCtrl TestStartL
+CSAnimStartupCtrl Teardown
+delete CSAnimStartupCtrl
+[Endtest] 
+
+[Test]
+title TestConstructorL
+create TSanimctrl CSAnimStartupCtrl
+CSAnimStartupCtrl SetupShowL
+CSAnimStartupCtrl TestCancelStartL
+CSAnimStartupCtrl Teardown
+delete CSAnimStartupCtrl
+[Endtest] 
+
+[Test]
+title TestConstructorL
+create TSanimctrl CSAnimStartupCtrl
+CSAnimStartupCtrl SetupShowL
+CSAnimStartupCtrl TestStartWhenActiveL
+CSAnimStartupCtrl Teardown
+delete CSAnimStartupCtrl
+[Endtest] 
+
+
+
+// Obj2
+// ---------------------------------------------------------------------------
+// Test table
+//
+// ---------------------------------------------------------------------------
+//
+
+[Test]
+title TestConstructorL
+create TSanimctrl CSAnimStartupCtrl
+CSAnimStartupCtrl SetupEmptyCtr
+CSAnimStartupCtrl TestConstructorCtr
+CSAnimStartupCtrl TeardownCtr
+delete CSAnimStartupCtrl
+[Endtest] 
+
+[Test]
+title TestConstructorL
+create TSanimctrl CSAnimStartupCtrl
+CSAnimStartupCtrl SetupEmptyCtr
+CSAnimStartupCtrl TestConstructorNoMemoryCtr
+CSAnimStartupCtrl TeardownCtr
+delete CSAnimStartupCtrl
+[Endtest] 
+
+[Test]
+title TestConstructorL
+create TSanimctrl CSAnimStartupCtrl
+CSAnimStartupCtrl SetupEmptyCtr
+CSAnimStartupCtrl TestLoadEmptyCtr
+CSAnimStartupCtrl TeardownCtr
+delete CSAnimStartupCtrl
+[Endtest] 
+
+[Test]
+title TestConstructorL
+create TSanimctrl CSAnimStartupCtrl
+CSAnimStartupCtrl SetupObjCtr
+CSAnimStartupCtrl TestLoadEmptyCtr
+CSAnimStartupCtrl TeardownCtr
+delete CSAnimStartupCtrl
+[Endtest] 
+
+[Test]
+title TestConstructorL
+create TSanimctrl CSAnimStartupCtrl
+CSAnimStartupCtrl SetupObjCtr
+CSAnimStartupCtrl TestLoadImageCtr
+CSAnimStartupCtrl TeardownCtr
+delete CSAnimStartupCtrl
+[Endtest] 
+
+[Test]
+title TestConstructorL
+create TSanimctrl CSAnimStartupCtrl
+CSAnimStartupCtrl SetupObjCtr
+CSAnimStartupCtrl TestLoadImageCtr
+CSAnimStartupCtrl TeardownCtr
+delete CSAnimStartupCtrl
+[Endtest] 
+
+[Test]
+title TestConstructorL
+create TSanimctrl CSAnimStartupCtrl
+CSAnimStartupCtrl SetupObjCtr
+CSAnimStartupCtrl TestLoadToneCtr
+CSAnimStartupCtrl TeardownCtr
+delete CSAnimStartupCtrl
+[Endtest] 
+
+[Test]
+title TestConstructorL
+create TSanimctrl CSAnimStartupCtrl
+CSAnimStartupCtrl SetupObjCtr
+CSAnimStartupCtrl TestLoadBothCtr
+CSAnimStartupCtrl TeardownCtr
+delete CSAnimStartupCtrl
+[Endtest] 
+
+[Test]
+title TestConstructorL
+create TSanimctrl CSAnimStartupCtrl
+CSAnimStartupCtrl SetupObjCtr
+CSAnimStartupCtrl TestLoadBothCtr
+CSAnimStartupCtrl TeardownCtr
+delete CSAnimStartupCtrl
+[Endtest] 
+
+[Test]
+title TestConstructorL
+create TSanimctrl CSAnimStartupCtrl
+CSAnimStartupCtrl SetupObjCtr
+CSAnimStartupCtrl TestLoadWhenActiveCtr
+CSAnimStartupCtrl TeardownCtr
+delete CSAnimStartupCtrl
+[Endtest] 
+
+[Test]
+title TestConstructorL
+create TSanimctrl CSAnimStartupCtrl
+CSAnimStartupCtrl SetupObjCtr
+CSAnimStartupCtrl TestCancelLoadCtr
+CSAnimStartupCtrl TeardownCtr
+delete CSAnimStartupCtrl
+[Endtest] 
+
+
+[Test]
+title TestConstructorL
+create TSanimctrl CSAnimStartupCtrl
+CSAnimStartupCtrl SetupObjLoadedCtr
+CSAnimStartupCtrl TestStartCtr
+CSAnimStartupCtrl TeardownCtr
+delete CSAnimStartupCtrl
+[Endtest] 
+
+[Test]
+title TestConstructorL
+create TSanimctrl CSAnimStartupCtrl
+CSAnimStartupCtrl SetupObjLoadedCtr
+CSAnimStartupCtrl TestCancelStartCtr
+CSAnimStartupCtrl TeardownCtr
+delete CSAnimStartupCtrl
+[Endtest] 
+
+[Test]
+title TestConstructorL
+create TSanimctrl CSAnimStartupCtrl
+CSAnimStartupCtrl SetupObjLoadedCtr
+CSAnimStartupCtrl TestStartNoMemoryCtr
+CSAnimStartupCtrl TeardownCtr
+delete CSAnimStartupCtrl
+[Endtest]
+
+[Test]
+title TestConstructorL
+create TSanimctrl CSAnimStartupCtrl
+CSAnimStartupCtrl SetupObjLoadedCtr
+CSAnimStartupCtrl TestStartWhenActiveCtr
+CSAnimStartupCtrl TeardownCtr
+delete CSAnimStartupCtrl
+[Endtest]
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/TSanimctrl/rom/UI_TSanimctrl.iby	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,10 @@
+#ifndef __TSANIMCTRL_IBY__
+#define __TSANIMCTRL_IBY__
+
+file=ABI_DIR\BUILD_DIR\TSanimctrl.dll SHARED_LIB_DIR\TSanimctrl.dll
+
+//data=\epoc32\data\z\system\data\TestFramework.ini             \testframework\TestFramework.ini
+data=\epoc32\data\z\system\data\TSanimctrl.cfg \testframework\TSanimctrl.cfg
+
+
+#endif
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/TSanimctrl/src/TSanimctrl.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,212 @@
+/*
+* 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: This file contains testclass implementation.
+*
+*/
+
+// INCLUDE FILES
+#include <StifTestInterface.h>
+#include "TSanimctrl.h"
+#include <SettingServerClient.h>
+
+const TInt KTestRepository( 0x0AA0151E ); // Repository to use for testing
+#include "sanimmockview.h"
+#include "sanimctrlrootsuite.h"
+
+
+// EXTERNAL DATA STRUCTURES
+//extern  ?external_data;
+
+// EXTERNAL FUNCTION PROTOTYPES  
+//extern ?external_function( ?arg_type,?arg_type );
+
+// CONSTANTS
+//const ?type ?constant_var = ?constant;
+
+// MACROS
+//#define ?macro ?macro_def
+
+// LOCAL CONSTANTS AND MACROS
+//const ?type ?constant_var = ?constant;
+//#define ?macro_name ?macro_def
+
+// MODULE DATA STRUCTURES
+//enum ?declaration
+//typedef ?declaration
+
+// LOCAL FUNCTION PROTOTYPES
+//?type ?function_name( ?arg_type, ?arg_type );
+
+// FORWARD DECLARATIONS
+//class ?FORWARD_CLASSNAME;
+
+// ============================= LOCAL FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// ?function_name ?description.
+// ?description
+// Returns: ?value_1: ?description
+//          ?value_n: ?description_line1
+//                    ?description_line2
+// -----------------------------------------------------------------------------
+//
+/*
+?type ?function_name(
+    ?arg_type arg,  // ?description
+    ?arg_type arg)  // ?description
+    {
+
+    ?code  // ?comment
+
+    // ?comment
+    ?code
+    }
+*/
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CTSanimctrl::CTSanimctrl
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// -----------------------------------------------------------------------------
+//
+CTSanimctrl::CTSanimctrl( 
+    CTestModuleIf& aTestModuleIf,CSAnimMockView& view ):
+        CScriptBase( aTestModuleIf ),
+        iView(view)
+    {
+    
+    }
+
+// -----------------------------------------------------------------------------
+// CTSanimctrl::ConstructL
+// Symbian 2nd phase constructor can leave.
+// -----------------------------------------------------------------------------
+//
+void CTSanimctrl::ConstructL()
+    {
+    //Read logger settings to check whether test case name is to be
+    //appended to log file name.
+   // iView = CSAnimMockView::NewL();
+    RSettingServer settingServer;
+    TInt ret = settingServer.Connect();
+    if(ret != KErrNone)
+        {
+        User::Leave(ret);
+        }
+    // Struct to StifLogger settigs.
+    TLoggerSettings loggerSettings; 
+    // Parse StifLogger defaults from STIF initialization file.
+    ret = settingServer.GetLoggerSettings(loggerSettings);
+    if(ret != KErrNone)
+        {
+        User::Leave(ret);
+        } 
+    // Close Setting server session
+    settingServer.Close();
+
+    TFileName logFileName;
+    
+    if(loggerSettings.iAddTestCaseTitle)
+        {
+        TName title;
+        TestModuleIf().GetTestCaseTitleL(title);
+        logFileName.Format(KTSanimctrlLogFileWithTitle, &title);
+        }
+    else
+        {
+        logFileName.Copy(KTSanimctrlLogFile);
+        }
+
+    iLog = CStifLogger::NewL( KTSanimctrlLogPath, 
+                          logFileName,
+                          CStifLogger::ETxt,
+                          CStifLogger::EFile,
+                          EFalse );
+    
+    SendTestClassVersion();
+    iParams.iRepositoryUid = TUid::Uid( KTestRepository );
+          iParams.iAnimationPathKey = 1;
+          iParams.iFrameDelayKey = 2;
+          iParams.iTonePathKey = 3;
+          iParams.iVolumeKey = 4;
+       
+    }
+
+// -----------------------------------------------------------------------------
+// CTSanimctrl::NewL
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CTSanimctrl* CTSanimctrl::NewL( 
+    CTestModuleIf& aTestModuleIf,CSAnimMockView& aview )
+    {
+    CTSanimctrl* self = new (ELeave) CTSanimctrl( aTestModuleIf,aview );
+   // CSAnimMockView *iView = CSAnimMockView::NewL();
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop();
+
+    return self;
+
+    }
+
+// Destructor
+CTSanimctrl::~CTSanimctrl()
+    { 
+
+    // Delete resources allocated from test methods
+    Delete();
+
+    // Delete logger
+    delete iLog; 
+
+    }
+
+//-----------------------------------------------------------------------------
+// CTSanimctrl::SendTestClassVersion
+// Method used to send version of test class
+//-----------------------------------------------------------------------------
+//
+void CTSanimctrl::SendTestClassVersion()
+	{
+	TVersion moduleVersion;
+	moduleVersion.iMajor = TEST_CLASS_VERSION_MAJOR;
+	moduleVersion.iMinor = TEST_CLASS_VERSION_MINOR;
+	moduleVersion.iBuild = TEST_CLASS_VERSION_BUILD;
+	
+	TFileName moduleName;
+	moduleName = _L("TSanimctrl.dll");
+
+	TBool newVersionOfMethod = ETrue;
+	TestModuleIf().SendTestModuleVersion(moduleVersion, moduleName, newVersionOfMethod);
+	}
+
+// ========================== OTHER EXPORTED FUNCTIONS =========================
+
+// -----------------------------------------------------------------------------
+// LibEntryL is a polymorphic Dll entry point.
+// Returns: CScriptBase: New CScriptBase derived object
+// -----------------------------------------------------------------------------
+//
+EXPORT_C CScriptBase* LibEntryL( 
+    CTestModuleIf& aTestModuleIf ) // Backpointer to STIF Test Framework
+    {
+    CSAnimCtrlRootSuite* rootSuite = CSAnimCtrlRootSuite::NewL();
+    return ( CScriptBase* ) CTSanimctrl::NewL( aTestModuleIf ,rootSuite->MainView());
+
+    }
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/TSanimctrl/src/TSanimctrlBlocks.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,1026 @@
+/*
+* 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: This file contains testclass implementation.
+*
+*/
+
+// [INCLUDE FILES] - do not remove
+#include <e32svr.h>
+#include <StifParser.h>
+#include <StifTestInterface.h>
+#include "TSanimctrl.h"
+
+#include <centralrepository.h>
+
+#include <profile.hrh>
+#include <profileenginesdkcrkeys.h>
+
+//#include "sanimstartupctrltestsuite.h"
+#include "sanimmockview.h"
+#include "testwaiter.h"
+
+
+#include "sanimctrl.h"
+//#include "sanimctrltestsuite.h"
+
+
+//#pragma tagging OFF // To disable CodeTest tagging
+
+_LIT( KDummyImageFile, "C:\\temp\\test.ti2" ); // There is a plug-in for this type
+_LIT( KDummyToneFile, "C:\\temp\\test.tt2" ); // There is a plug-in for this type
+//#pragma tagging OFF // To disable CodeTest tagging
+
+const TInt KTestRepository( 0x0AA0151E ); // Repository to use for testing
+
+_LIT( KUnknownFile, "C:\\temp\\unknown.unk" );
+_LIT( KProtectedFile, "Z:\\sys\\bin\\sysap.exe" );
+//_LIT( KDummyImageFile, "C:\\temp\\test.ti2" ); // There is a plug-in for this type
+//_LIT( KDummyToneFile, "C:\\temp\\test.tt2" ); // There is a plug-in for this type
+
+// ============================= LOCAL FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// ?function_name ?description.
+// ?description
+// Returns: ?value_1: ?description
+//          ?value_n: ?description_line1
+//                    ?description_line2
+// -----------------------------------------------------------------------------
+//
+/*
+?type ?function_name(
+    ?arg_type arg,  // ?description
+    ?arg_type arg)  // ?description
+    {
+
+    ?code  // ?comment
+
+    // ?comment
+    ?code
+    }
+*/
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CTSanimctrl::Delete
+// Delete here all resources allocated and opened from test methods. 
+// Called from destructor. 
+// -----------------------------------------------------------------------------
+//
+void CTSanimctrl::Delete() 
+    {
+
+    }
+
+// -----------------------------------------------------------------------------
+// CTSanimctrl::RunMethodL
+// Run specified method. Contains also table of test mothods and their names.
+// -----------------------------------------------------------------------------
+//
+TInt CTSanimctrl::RunMethodL( 
+    CStifItemParser& aItem ) 
+    {
+
+    static  TStifFunctionInfo const KFunctions[] =
+        {  
+        // Copy this line for every implemented function.
+        // First string is the function name used in TestScripter script file.
+        // Second is the actual implementation member function. 
+        ENTRY("Example", CTSanimctrl::ExampleL),
+        ENTRY("InitObj", CTSanimctrl::InitObjL),
+        ENTRY("SetupEmpty", CTSanimctrl::SetupEmptyL),
+        ENTRY("SetupEmptyValues", CTSanimctrl::SetupEmptyValuesL),
+        ENTRY("SetupUnknownFile", CTSanimctrl::SetupUnknownFileL),
+        ENTRY("SetupProtectedFile", CTSanimctrl::SetupProtectedFileL),
+        ENTRY("SetupExistingImageFile", CTSanimctrl::SetupExistingImageFileL),
+        ENTRY("SetupExistingToneFileSilent", CTSanimctrl::SetupExistingToneFileSilentL),
+        ENTRY("SetupExistingToneFileVeryLowVolume", CTSanimctrl::SetupExistingToneFileVeryLowVolumeL),
+        ENTRY("SetupExistingToneFileLowVolume", CTSanimctrl::SetupExistingToneFileLowVolumeL),
+        ENTRY("SetupExistingToneFileNormalVolume", CTSanimctrl::SetupExistingToneFileNormalVolumeL),
+        ENTRY("SetupExistingToneFileTooLowVolume", CTSanimctrl::SetupExistingToneFileTooLowVolumeL),
+        ENTRY("SetupExistingToneFileTooHighVolume", CTSanimctrl::SetupExistingToneFileTooHighVolumeL),
+        ENTRY("SetupUnknownToneFileNormalVolume", CTSanimctrl::SetupUnknownToneFileNormalVolumeL),
+        ENTRY("SetupObj", CTSanimctrl::SetupObjL),
+        ENTRY("SetupEmptyShow", CTSanimctrl::SetupEmptyShowL),
+        ENTRY("SetupShow", CTSanimctrl::SetupShowL),
+        ENTRY("Teardown", CTSanimctrl::Teardown),
+        ENTRY("TestConstructor", CTSanimctrl::TestConstructorL),
+        ENTRY("TestConstructorNoMemory", CTSanimctrl::TestConstructorNoMemoryL),
+        ENTRY( "TestLoadNoContent", CTSanimctrl::TestLoadNoContentL),
+        ENTRY("TestLoadHasContent", CTSanimctrl::TestLoadHasContentL),
+        ENTRY("TestLoadNoMemory", CTSanimctrl::TestLoadNoMemoryL),
+        ENTRY("TestCancelLoad", CTSanimctrl::TestCancelLoadL),
+        ENTRY("TestLoadWhenActive", CTSanimctrl::TestLoadWhenActiveL),
+        ENTRY("TestStart", CTSanimctrl::TestStartL),
+        ENTRY("TestCancelStart", CTSanimctrl::TestCancelStartL),
+        ENTRY("TestStartWhenActive", CTSanimctrl::TestStartWhenActiveL),
+       
+        ENTRY("SetupEmptyCtr", CTSanimctrl::SetupEmptyCtrL),
+        ENTRY("SetupObjCtr", CTSanimctrl::SetupObjCtrL),
+        ENTRY("SetupObjLoadedCtr", CTSanimctrl::SetupObjLoadedCtrL),
+        ENTRY("TeardownCtr", CTSanimctrl::TeardownCtr),
+        ENTRY("TestConstructorCtr", CTSanimctrl::TestConstructorCtrL),
+        ENTRY("TestConstructorNoMemoryCtr", CTSanimctrl::TestConstructorNoMemoryCtrL),
+        ENTRY("TestLoadEmptyCtr", CTSanimctrl::TestLoadEmptyCtrL),
+        ENTRY("TestLoadImageCtr", CTSanimctrl::TestLoadImageCtrL),
+        ENTRY("TestLoadToneCtr", CTSanimctrl::TestLoadToneCtrL),
+        ENTRY("TestLoadBothCtr", CTSanimctrl::TestLoadBothCtrL),
+        ENTRY("TestLoadWhenActiveCtr", CTSanimctrl::TestLoadWhenActiveCtrL),
+        ENTRY("TestCancelLoadCtr", CTSanimctrl::TestCancelLoadCtrL),
+        ENTRY("TestStartCtr", CTSanimctrl::TestStartCtrL),
+        ENTRY("TestCancelStartCtr", CTSanimctrl::TestCancelStartCtrL),
+        ENTRY("TestStartNoMemoryCtr",CTSanimctrl::TestStartNoMemoryCtrL),
+        ENTRY("TestStartWhenActiveCtr",CTSanimctrl::TestStartWhenActiveCtrL)
+        //ADD NEW ENTRY HERE
+        // [test cases entries] - Do not remove
+
+        };
+
+    const TInt count = sizeof( KFunctions ) / 
+                        sizeof( TStifFunctionInfo );
+
+    return RunInternalL( KFunctions, count, aItem );
+
+    }
+
+// Praveen-2
+
+// ---------------------------------------------------------------------------
+// CSAnimCtrlTestSuite::SetupEmptyL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimctrl::SetupEmptyCtrL()
+    {
+    iTestObj2 = NULL;
+    iWaiter = CTestWaiter::NewL();
+    iWaiter2 = CTestWaiter::NewL();
+    iView.SetComponent( *iTestObj2 );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimCtrlTestSuite::SetupObjL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimctrl::SetupObjCtrL()
+    {
+    SetupEmptyCtrL();
+    //CSAnimMockView& view = *iView;
+    iTestObj2 = CSAnimCtrl::NewL( iView.Rect(), iView );
+    iView.SetComponent( *iTestObj2 );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimCtrlTestSuite::SetupObjLoadedL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimctrl::SetupObjLoadedCtrL()
+    {
+    SetupObjCtrL();
+    iTestObj2->Load(
+        KDummyImageFile, 1000, ETrue, 1,
+        KDummyToneFile, 4, 0, 1,
+        iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+   // User::LeaveIfError( iWaiter->iStatus.Int() );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimCtrlTestSuite::Teardown
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimctrl::TeardownCtr()
+    {
+    delete iWaiter;
+    iWaiter = NULL;
+    delete iWaiter2;
+    iWaiter2 = NULL;
+    delete iTestObj;
+    iTestObj2 = NULL;
+
+    REComSession::FinalClose();
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimCtrlTestSuite::TestConstructorL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimctrl::TestConstructorCtrL()
+    {
+    //CSAnimMockView& view = *iView;
+    iTestObj2 = CSAnimCtrl::NewL( iView.Rect(), iView );
+    //STIF_ASSERT_EQUALS( iTestObj,KErrNone );
+    delete iTestObj;
+    iTestObj = NULL;
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimCtrlTestSuite::TestConstructorNoMemoryL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimctrl::TestConstructorNoMemoryCtrL()
+    {
+    //CSAnimMockView& view = *iView;
+    iTestObj2 = CSAnimCtrl::NewL( iView.Rect(), iView );
+    //STIF_ASSERT_EQUALS( !iTestObj , KErrNone);
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimCtrlTestSuite::TestLoadEmptyL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimctrl::TestLoadEmptyCtrL()
+    {
+    /*
+     * Returns panic.. valid condition
+    [Test]
+    title TestLoadEmptyCtr
+    create TSanimctrl CSAnimStartupCtrl
+    CSAnimStartupCtrl SetupEmptyCtr
+    CSAnimStartupCtrl TestLoadEmptyCtr
+    CSAnimStartupCtrl TeardownCtr
+    delete CSAnimStartupCtrl
+    [Endtest] 
+
+    iTestObj2->Load(
+        KNullDesC, 1000, ETrue, 1,
+        KNullDesC, 4, 0, 1,
+        iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+ //   STIF_ASSERT_EQUALS( iWaiter->iStatus.Int(), KErrNone );
+  * 
+  */
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimCtrlTestSuite::TestLoadImageL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimctrl::TestLoadImageCtrL()
+    {
+    iTestObj2->Load(
+        KDummyImageFile, 1000, ETrue, 1,
+        KNullDesC, 4, 0, 1,
+        iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+//    STIF_ASSERT_EQUALS( iWaiter->iStatus.Int(), KErrNone );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimCtrlTestSuite::TestLoadToneL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimctrl::TestLoadToneCtrL()
+    {
+    iTestObj2->Load(
+        KNullDesC, 1000, ETrue, 1,
+        KDummyToneFile, 4, 0, 1,
+        iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+  //  STIF_ASSERT_EQUALS( iWaiter->iStatus.Int(), KErrNone );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimCtrlTestSuite::TestLoadBothL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimctrl::TestLoadBothCtrL()
+    {
+    iTestObj2->Load(
+        KDummyImageFile, 1000, ETrue, 1,
+        KDummyToneFile, 4, 0, 1,
+        iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+ //   STIF_ASSERT_EQUALS( iWaiter->iStatus.Int(), KErrNone );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimCtrlTestSuite::TestLoadWhenActiveL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimctrl::TestLoadWhenActiveCtrL()
+    {
+    iTestObj2->Load(
+        KDummyImageFile, 1000, ETrue, 1,
+        KNullDesC, 4, 0, 1,
+        iWaiter->iStatus );
+    iWaiter->Activate();
+    iTestObj2->Load(
+        KNullDesC, 1000, ETrue, 1,
+        KDummyToneFile, 4, 0, 1,
+        iWaiter2->iStatus );
+    iWaiter2->Activate();
+    CActiveScheduler::Start(); // Waiter2 stops it when request completes.
+//    STIF_ASSERT_EQUALS( iWaiter2->iStatus.Int(), KErrNotReady );
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+ //   STIF_ASSERT_EQUALS( iWaiter->iStatus.Int(), KErrNone );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimCtrlTestSuite::TestCancelLoadL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimctrl::TestCancelLoadCtrL()
+    {
+    iTestObj2->Load(
+        KDummyImageFile, 1000, ETrue, 1,
+        KDummyToneFile, 4, 0, 1,
+        iWaiter->iStatus );
+    iWaiter->Activate();
+    iTestObj2->Cancel();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+  //  STIF_ASSERT_EQUALS( iWaiter->iStatus.Int(), KErrCancel );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimCtrlTestSuite::TestStartL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimctrl::TestStartCtrL()
+    {
+    iTestObj2->Start( iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+    //STIF_ASSERT_EQUALS( iWaiter->iStatus.Int(), KErrNone );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimCtrlTestSuite::TestCancelStartL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimctrl::TestCancelStartCtrL()
+    {
+    /*
+    [Test]
+    title TestCancelStartCtr
+    create TSanimctrl CSAnimStartupCtrl
+    CSAnimStartupCtrl SetupObjLoadedCtr
+    CSAnimStartupCtrl TestCancelStartCtr
+    CSAnimStartupCtrl TeardownCtr
+    delete CSAnimStartupCtrl
+    [Endtest] 
+     
+    iTestObj2->Start( iWaiter->iStatus );
+    iWaiter->Activate();
+    iTestObj2->Cancel();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+   // if ( iWaiter->iStatus.Int() == KErrCancel )
+    * 
+    */
+      return KErrNone;
+      
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimCtrlTestSuite::TestStartNoMemoryL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimctrl::TestStartNoMemoryCtrL()
+    {
+    iTestObj2->Start( iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+    //STIF_ASSERT_EQUALS( iWaiter->iStatus.Int(), KErrNone ); // Mock plug-in does not reserve memory in Load
+    return KErrNone;
+    }
+
+
+
+// ---------------------------------------------------------------------------
+// CSAnimCtrlTestSuite::TestStartWhenActiveL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimctrl::TestStartWhenActiveCtrL()
+    {
+    iTestObj2->Start( iWaiter->iStatus );
+    iWaiter->Activate();
+    iTestObj2->Start( iWaiter2->iStatus );
+    iWaiter2->Activate();
+    CActiveScheduler::Start(); // Waiter2 stops it when request completes.
+   // STIF_ASSERT_EQUALS( iWaiter2->iStatus.Int(), KErrNotReady );
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+   // STIF_ASSERT_EQUALS( iWaiter->iStatus.Int(), KErrNone );
+    return KErrNone;
+    }
+
+
+//Praveen-2
+
+// ======== MEMBER FUNCTIONS ========
+
+
+// ---------------------------------------------------------------------------
+// CSAnimStartupCtrlTestSuite::SetupParamsL
+//
+// ---------------------------------------------------------------------------
+//
+void CTSanimctrl::SetupParamsL(
+    const TDesC& aImageFileName,
+    const TDesC& aToneFileName,
+    const TInt aFrameDelay,
+    const TInt aVolume,
+    const TInt /*aVolumeRamp*/ )
+    {
+    CRepository* repository = CRepository::NewLC( TUid::Uid( KTestRepository ) );
+    User::LeaveIfError( repository->Set( iParams.iAnimationPathKey, aImageFileName ) );
+    User::LeaveIfError( repository->Set( iParams.iTonePathKey, aToneFileName ) );
+    User::LeaveIfError( repository->Set( iParams.iFrameDelayKey, aFrameDelay ) );
+    User::LeaveIfError( repository->Set( iParams.iVolumeKey, aVolume ) );
+    CleanupStack::PopAndDestroy( repository );
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimStartupCtrlTestSuite::SetupProfileL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimctrl::SetupProfileL( const TInt aRingingType, const TInt aRingingVolume )
+    {
+    CRepository* repository = CRepository::NewLC( KCRUidProfileEngine );
+    User::LeaveIfError( repository->Set( KProEngActiveRingingType, aRingingType ) );
+    User::LeaveIfError( repository->Set( KProEngActiveRingingVolume, aRingingVolume ) );
+    CleanupStack::PopAndDestroy( repository );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimStartupCtrlTestSuite::InitObjL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimctrl::InitObjL()
+    {
+  //  iView = CSAnimMockView::NewL();
+    //CSAnimMockView& view = *iView;
+    iTestObj = CSAnimStartupCtrl::NewL( iView.Rect(), iView );
+    iView.SetComponent( *iTestObj );
+    iTestObj->Load (iParams,ETrue,0,iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+    return KErrNone;
+    }
+
+
+
+// ---------------------------------------------------------------------------
+// CSAnimStartupCtrlTestSuite::SetupEmptyL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimctrl::SetupEmptyL()
+    {
+    SetupParamsL( KNullDesC, KNullDesC, 0, 0, 0 );
+    SetupProfileL( EProfileRingingTypeRinging, 4 );
+    iTestObj = NULL;
+    iWaiter = CTestWaiter::NewL();
+    iWaiter2 = CTestWaiter::NewL();
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimStartupCtrlTestSuite::SetupEmptyValuesL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimctrl::SetupEmptyValuesL()
+    {
+    SetupEmptyL();
+    SetupParamsL( KNullDesC, KNullDesC, 0, 0, 0 );
+    SetupProfileL( EProfileRingingTypeRinging, 4 );
+    
+   // iView = CSAnimMockView::NewL();
+    //CSAnimMockView& view = *iView;
+    iTestObj = CSAnimStartupCtrl::NewL( iView.Rect(), iView );
+    iView.SetComponent( *iTestObj );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimStartupCtrlTestSuite::SetupUnknownFileL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimctrl::SetupUnknownFileL()
+    {
+    SetupEmptyL();
+    SetupParamsL( KUnknownFile, KNullDesC, 0, 0, 0 );
+    SetupProfileL( EProfileRingingTypeRinging, 4 );
+    //iView = CSAnimMockView::NewL();
+    //CSAnimMockView& view = *iView;
+    iTestObj = CSAnimStartupCtrl::NewL( iView.Rect(), iView );
+    iView.SetComponent( *iTestObj );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimStartupCtrlTestSuite::SetupProtectedFileL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimctrl::SetupProtectedFileL()
+    {
+    SetupEmptyL();
+    SetupParamsL( KProtectedFile, KNullDesC, 0, 0, 0 );
+    SetupProfileL( EProfileRingingTypeRinging, 4 );
+  //  iView = CSAnimMockView::NewL();
+   // CSAnimMockView& view = *iView;
+    iTestObj = CSAnimStartupCtrl::NewL( iView.Rect(), iView );
+    iView.SetComponent( *iTestObj );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimStartupCtrlTestSuite::SetupExistingImageFileL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimctrl::SetupExistingImageFileL()
+    {
+    SetupEmptyL();
+    SetupParamsL( KDummyImageFile, KNullDesC, 0, 0, 0 );
+    SetupProfileL( EProfileRingingTypeRinging, 4 );
+   // iView = CSAnimMockView::NewL();
+    //CSAnimMockView& view = *iView;
+    iTestObj = CSAnimStartupCtrl::NewL( iView.Rect(), iView );
+    iView.SetComponent( *iTestObj );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimStartupCtrlTestSuite::SetupExistingToneFileSilentL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimctrl::SetupExistingToneFileSilentL()
+    {
+    SetupEmptyL();
+    SetupParamsL( KNullDesC, KDummyToneFile, 0, 2, 0 );
+    SetupProfileL( EProfileRingingTypeSilent, 4 );
+   // iView = CSAnimMockView::NewL();
+    //CSAnimMockView& view = *iView;
+    iTestObj = CSAnimStartupCtrl::NewL( iView.Rect(), iView );
+    iView.SetComponent( *iTestObj );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimStartupCtrlTestSuite::SetupExistingToneFileVeryLowVolumeL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimctrl::SetupExistingToneFileVeryLowVolumeL()
+    {
+    SetupEmptyL();
+    SetupParamsL( KNullDesC, KDummyToneFile, 0, 2, 0 );
+    SetupProfileL( EProfileRingingTypeRinging, 0 );
+ //   iView = CSAnimMockView::NewL();
+    //CSAnimMockView& view = *iView;
+    iTestObj = CSAnimStartupCtrl::NewL( iView.Rect(), iView );
+    iView.SetComponent( *iTestObj );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimStartupCtrlTestSuite::SetupExistingToneFileLowVolumeL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimctrl::SetupExistingToneFileLowVolumeL()
+    {
+    SetupEmptyL();
+    SetupParamsL( KNullDesC, KDummyToneFile, 0, 2, 0 );
+    SetupProfileL( EProfileRingingTypeRinging, 1 );
+  //  iView = CSAnimMockView::NewL();
+  //  CSAnimMockView& view = *iView;
+    iTestObj = CSAnimStartupCtrl::NewL( iView.Rect(), iView );
+    iView.SetComponent( *iTestObj );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimStartupCtrlTestSuite::SetupExistingToneFileNormalVolumeL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimctrl::SetupExistingToneFileNormalVolumeL()
+    {
+    SetupEmptyL();
+    SetupParamsL( KNullDesC, KDummyToneFile, 0, 2, 0 );
+    SetupProfileL( EProfileRingingTypeRinging, 4 );
+  //  iView = CSAnimMockView::NewL();
+    //CSAnimMockView& view = *iView;
+    iTestObj = CSAnimStartupCtrl::NewL( iView.Rect(), iView );
+    iView.SetComponent( *iTestObj );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimStartupCtrlTestSuite::SetupExistingToneFileTooLowVolumeL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimctrl::SetupExistingToneFileTooLowVolumeL()
+    {
+    SetupEmptyL();
+    SetupParamsL( KNullDesC, KDummyToneFile, 0, -1, 0 );
+    SetupProfileL( EProfileRingingTypeRinging, 4 );
+   // iView = CSAnimMockView::NewL();
+    //CSAnimMockView& view = *iView;
+    iTestObj = CSAnimStartupCtrl::NewL( iView.Rect(), iView );
+    iView.SetComponent( *iTestObj );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimStartupCtrlTestSuite::SetupExistingToneFileTooHighVolumeL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimctrl::SetupExistingToneFileTooHighVolumeL()
+    {
+    SetupEmptyL();
+    SetupParamsL( KNullDesC, KDummyToneFile, 0, 11, 0 );
+    SetupProfileL( EProfileRingingTypeRinging, 4 );
+   // iView = CSAnimMockView::NewL();
+    //CSAnimMockView& view = *iView;
+    iTestObj = CSAnimStartupCtrl::NewL( iView.Rect(), iView );
+    iView.SetComponent( *iTestObj );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimStartupCtrlTestSuite::SetupUnknownToneFileNormalVolumeL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimctrl::SetupUnknownToneFileNormalVolumeL()
+    {
+    SetupEmptyL();
+    SetupParamsL( KNullDesC, KUnknownFile, 0, 2, 0 );
+    SetupProfileL( EProfileRingingTypeRinging, 4 );
+   // iView = CSAnimMockView::NewL();
+   // CSAnimMockView& view = *iView;
+    iTestObj = CSAnimStartupCtrl::NewL( iView.Rect(), iView );
+    iView.SetComponent( *iTestObj );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimStartupCtrlTestSuite::SetupObjL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimctrl::SetupObjL()
+    {
+    SetupEmptyL();
+    SetupParamsL( KDummyImageFile, KDummyToneFile, 0, 4, 0 );
+    SetupProfileL( EProfileRingingTypeRinging, 4 );
+    //iView = CSAnimMockView::NewL();
+    //CSAnimMockView& view = *iView;
+    iTestObj = CSAnimStartupCtrl::NewL( iView.Rect(), iView );
+    iView.SetComponent( *iTestObj );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimStartupCtrlTestSuite::SetupEmptyShowL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimctrl::SetupEmptyShowL()
+    {
+    SetupEmptyL();
+    SetupParamsL( KNullDesC, KNullDesC, 0, 0, 0 );
+    SetupProfileL( EProfileRingingTypeRinging, 4 );
+    InitObjL();
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimStartupCtrlTestSuite::SetupShowL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimctrl::SetupShowL()
+    {
+    SetupEmptyL();
+    SetupParamsL( KDummyImageFile, KDummyToneFile, 0, 4, 0 );
+    SetupProfileL( EProfileRingingTypeRinging, 4 );
+    InitObjL();
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimStartupCtrlTestSuite::Teardown
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimctrl::Teardown()
+    {
+    delete iWaiter;
+    iWaiter = NULL;
+    delete iWaiter2;
+    iWaiter2 = NULL;
+    delete iTestObj;
+    iTestObj = NULL;
+
+    REComSession::FinalClose();
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimStartupCtrlTestSuite::TestConstructorL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimctrl::TestConstructorL()
+    {
+     iView.SetComponent( *iTestObj );
+   // iView = CSAnimMockView::NewL();
+    //CSAnimMockView& view = *iView;
+    iTestObj =CSAnimStartupCtrl::NewL( iView.Rect(), iView );
+    //STIF_ASSERT_EQUALS( iTestObj,1 );
+    delete iTestObj;
+    iTestObj = NULL;
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimStartupCtrlTestSuite::TestConstructorNoMemoryL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimctrl::TestConstructorNoMemoryL()
+    {
+    //iView = CSAnimMockView::NewL();
+    //CSAnimMockView& view = *iView;
+    iTestObj = CSAnimStartupCtrl::NewL( iView.Rect(), iView );
+   // STIF_ASSERT_EQUALS( !iTestObj,0 );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimStartupCtrlTestSuite::TestLoadNoContentL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimctrl::TestLoadNoContentL()
+    {
+    iTestObj->Load( iParams, EFalse, 0, iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+    //STIF_ASSERT_EQUALS( iWaiter->iStatus.Int(), KErrNone );
+   // STIF_ASSERT_EQUALS( iTestObj->HasContent(), EFalse );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimStartupCtrlTestSuite::TestLoadHasContentL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimctrl::TestLoadHasContentL()
+    {
+    iTestObj->Load( iParams, ETrue, 1, iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+   // STIF_ASSERT_EQUALS( iWaiter->iStatus.Int(), KErrNone );
+   // STIF_ASSERT_EQUALS( iTestObj->HasContent(), ETrue );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimStartupCtrlTestSuite::TestLoadNoMemoryL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimctrl::TestLoadNoMemoryL()
+    {
+    iTestObj->Load( iParams, EFalse, 1, iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+   // STIF_ASSERT_EQUALS( iWaiter->iStatus.Int(), KErrNoMemory );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimStartupCtrlTestSuite::TestCancelLoadL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimctrl::TestCancelLoadL()
+    {
+    iTestObj->Load( iParams, ETrue, 0, iWaiter->iStatus );
+    iWaiter->Activate();
+    iTestObj->Cancel();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+  //  STIF_ASSERT_EQUALS( iWaiter->iStatus.Int(), KErrCancel );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimStartupCtrlTestSuite::TestLoadWhenActiveL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimctrl::TestLoadWhenActiveL()
+    {
+    iTestObj->Load( iParams, ETrue, 0, iWaiter->iStatus );
+    iWaiter->Activate();
+    iTestObj->Load( iParams, ETrue, 0, iWaiter2->iStatus );
+    iWaiter2->Activate();
+    CActiveScheduler::Start(); // Waiter2 stops it when request completes.
+  //  STIF_ASSERT_EQUALS( iWaiter2->iStatus.Int(), KErrNotReady );
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+   // STIF_ASSERT_EQUALS( iWaiter->iStatus.Int(), KErrNone );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimStartupCtrlTestSuite::TestStartL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimctrl::TestStartL()
+    {
+    iTestObj->Start( iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+   // STIF_ASSERT_EQUALS( iWaiter->iStatus.Int(), KErrNone );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimStartupCtrlTestSuite::TestCancelStartL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimctrl::TestCancelStartL()
+    {
+    iTestObj->Start( iWaiter->iStatus );
+    iWaiter->Activate();
+    iTestObj->Cancel();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+   // STIF_ASSERT_EQUALS( iWaiter->iStatus.Int(), KErrCancel );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimStartupCtrlTestSuite::TestStartWhenActiveL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimctrl::TestStartWhenActiveL()
+    {
+    iTestObj->Start( iWaiter->iStatus );
+    iWaiter->Activate();
+    iTestObj->Start( iWaiter2->iStatus );
+    iWaiter2->Activate();
+    CActiveScheduler::Start(); // Waiter2 stops it when request completes.
+   // STIF_ASSERT_EQUALS( iWaiter2->iStatus.Int(), KErrNotReady );
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+   // STIF_ASSERT_EQUALS( iWaiter->iStatus.Int(), KErrNone );
+    return KErrNone;
+    }
+
+
+
+
+// -----------------------------------------------------------------------------
+// CTSanimctrl::ExampleL
+// Example test method function.
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TInt CTSanimctrl::ExampleL( CStifItemParser& aItem )
+    {
+
+    // Print to UI
+    _LIT( KTSanimctrl, "TSanimctrl" );
+    _LIT( KExample, "In Example" );
+    TestModuleIf().Printf( 0, KTSanimctrl, KExample );
+    // Print to log file
+    iLog->Log( KExample );
+
+    TInt i = 0;
+    TPtrC string;
+    _LIT( KParam, "Param[%i]: %S" );
+    while ( aItem.GetNextString ( string ) == KErrNone )
+        {
+        TestModuleIf().Printf( i, KTSanimctrl, 
+                                KParam, i, &string );
+        i++;
+        }
+
+    return KErrNone;
+
+    }
+
+// -----------------------------------------------------------------------------
+// CTSanimctrl::?member_function
+// ?implementation_description
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+/*
+TInt CTSanimctrl::?member_function(
+   CItemParser& aItem )
+   {
+
+   ?code
+
+   }
+*/
+
+// ========================== OTHER EXPORTED FUNCTIONS =========================
+// None
+
+//  [End of File] - Do not remove
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/TSanimctrl/src/sanimctrlrootsuite.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,96 @@
+/*
+* 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 the License "Symbian Foundation License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Implementation of CSAnimCtrlRootSuite class
+*
+*/
+
+
+#include "sanimctrlrootsuite.h"
+#include "sanimmockview.h"
+
+#pragma tagging OFF // To disable CodeTest tagging
+
+// ======== MEMBER FUNCTIONS ========
+
+// ---------------------------------------------------------------------------
+// CSAnimCtrlRootSuite::NewL
+//
+// ---------------------------------------------------------------------------
+//
+CSAnimCtrlRootSuite* CSAnimCtrlRootSuite::NewL()
+    {
+    CSAnimCtrlRootSuite* self = CSAnimCtrlRootSuite::NewLC();
+    CleanupStack::Pop( self );
+    return self;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimCtrlRootSuite::NewLC
+//
+// ---------------------------------------------------------------------------
+//
+CSAnimCtrlRootSuite* CSAnimCtrlRootSuite::NewLC()
+    {
+    CSAnimCtrlRootSuite* self = new( ELeave ) CSAnimCtrlRootSuite;
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    return self;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimCtrlRootSuite::~CSAnimCtrlRootSuite
+//
+// ---------------------------------------------------------------------------
+//
+CSAnimCtrlRootSuite::~CSAnimCtrlRootSuite()
+    {
+    delete iView;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimCtrlRootSuite::MainView
+//
+// ---------------------------------------------------------------------------
+//
+CSAnimMockView& CSAnimCtrlRootSuite::MainView()
+    {
+    return *iView;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimCtrlRootSuite::CSAnimCtrlRootSuite
+//
+// ---------------------------------------------------------------------------
+//
+CSAnimCtrlRootSuite::CSAnimCtrlRootSuite()
+    {
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimCtrlRootSuite::ConstructL
+//
+// ---------------------------------------------------------------------------
+//
+void CSAnimCtrlRootSuite::ConstructL()
+    {
+    iView = CSAnimMockView::NewL();
+    }
+
+
+#pragma tagging ON // To stop disabling CodeTest tagging
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/TSanimctrl/src/sanimmockview.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,144 @@
+/*
+* 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 the License "Symbian Foundation License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Implementation of CSAnimMockView class
+*
+*/
+
+
+#include "sanimmockview.h"
+#include "trace.h"
+
+// ======== MEMBER FUNCTIONS ========
+
+// ---------------------------------------------------------------------------
+// CSAnimMockView::NewL
+//
+// ---------------------------------------------------------------------------
+//
+CSAnimMockView* CSAnimMockView::NewL()
+    {
+    FUNC_LOG;
+
+    CSAnimMockView* self = new( ELeave ) CSAnimMockView;
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop( self );
+    return self;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimMockView::~CSAnimMockView
+//
+// ---------------------------------------------------------------------------
+//
+CSAnimMockView::~CSAnimMockView()
+    {
+    FUNC_LOG;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimMockView::SetComponent
+//
+// ---------------------------------------------------------------------------
+//
+void CSAnimMockView::SetComponent( CCoeControl& aComponent )
+    {
+    FUNC_LOG;
+
+    iComponent = &aComponent;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimMockView::RemoveComponent
+//
+// ---------------------------------------------------------------------------
+//
+void CSAnimMockView::RemoveComponent()
+    {
+    FUNC_LOG;
+
+    iComponent = NULL;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimMockView::CSAnimMockView
+//
+// ---------------------------------------------------------------------------
+//
+CSAnimMockView::CSAnimMockView()
+    {
+    FUNC_LOG;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimMockView::ConstructL
+//
+// ---------------------------------------------------------------------------
+//
+void CSAnimMockView::ConstructL()
+    {
+    FUNC_LOG;
+
+    CreateWindowL();
+    SetRect( TRect( 0, 0, 256, 256 ) );
+    ActivateL();
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimMockView::CountComponentControls
+//
+// ---------------------------------------------------------------------------
+TInt CSAnimMockView::CountComponentControls() const
+    {
+    if ( iComponent ) return 1;
+    return 0;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimMockView::ComponentControl
+//
+// ---------------------------------------------------------------------------
+
+CCoeControl* CSAnimMockView::ComponentControl( TInt /*aIndex*/ ) const
+    {
+    return iComponent;
+    }
+
+
+// ---------------------------------------------------------
+// CSAnimMockView::Draw
+//
+// ---------------------------------------------------------
+//
+void CSAnimMockView::Draw( const TRect& aRect ) const
+    {
+    FUNC_LOG;
+
+	CWindowGc& gc = SystemGc();
+
+    gc.Clear( aRect );
+    gc.SetPenStyle( CGraphicsContext::ENullPen );
+    gc.SetBrushColor( KRgbDarkYellow );
+    gc.SetBrushStyle( CGraphicsContext::ESolidBrush );
+    gc.Clear();
+    
+    }
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/TSanimctrl/src/testwaiter.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,92 @@
+/*
+* 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 the License "Symbian Foundation License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Implementation of CTestWaiter class
+*
+*/
+
+
+#include "testwaiter.h"
+
+#pragma tagging OFF // To disable CodeTest tagging
+
+// ======== MEMBER FUNCTIONS ========
+
+// ---------------------------------------------------------------------------
+// CTestWaiter::NewL
+//
+// ---------------------------------------------------------------------------
+//
+CTestWaiter* CTestWaiter::NewL()
+    {
+    CTestWaiter* self = new( ELeave ) CTestWaiter;
+    return self;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTestWaiter::~CTestWaiter
+//
+// ---------------------------------------------------------------------------
+//
+CTestWaiter::~CTestWaiter()
+    {
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTestWaiter::Activate
+//
+// ---------------------------------------------------------------------------
+//
+void CTestWaiter::Activate()
+    {
+    __ASSERT_ALWAYS( !IsActive(), User::Invariant() );
+
+    SetActive();
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTestWaiter::CTestWaiter
+//
+// ---------------------------------------------------------------------------
+//
+CTestWaiter::CTestWaiter()
+  : CActive( EPriorityStandard )
+    {
+    CActiveScheduler::Add( this );
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTestWaiter::DoCancel
+//
+// ---------------------------------------------------------------------------
+//
+void CTestWaiter::DoCancel()
+    {
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTestWaiter::RunL
+//
+// ---------------------------------------------------------------------------
+//
+void CTestWaiter::RunL()
+    {
+    CActiveScheduler::Stop();
+    }
+
+#pragma tagging ON // To stop disabling CodeTest tagging
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/TSanimengine/Bmarm/TSanimengineU.DEF	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,3 @@
+EXPORTS
+	LibEntryL__FR13CTestModuleIf @ 1 NONAME R3UNUSED ; LibEntryL(CTestModuleIf &)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/TSanimengine/Bwins/TSanimengineu.def	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,3 @@
+EXPORTS
+	?LibEntryL@@YAPAVCScriptBase@@AAVCTestModuleIf@@@Z @ 1 NONAME ; class CScriptBase * __cdecl LibEntryL(class CTestModuleIf &)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/TSanimengine/conf/UI_TSanimEngine.cfg	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,525 @@
+[Test]
+title Example
+create TSanimengine CSAnimEngine
+CSAnimEngine Example pa ra me ters
+delete CSAnimEngine
+[Endtest] 
+
+
+[Test]
+title TestConstructor
+create TSanimengine CSAnimEngine
+CSAnimEngine SetupEmpty
+CSAnimEngine TestConstructor
+CSAnimEngine Teardown
+delete CSAnimEngine
+[Endtest] 
+
+[Test]
+title TestConstructorNoMemory
+create TSanimengine CSAnimEngine
+CSAnimEngine SetupEmpty
+CSAnimEngine TestConstructorNoMemory
+CSAnimEngine Teardown
+delete CSAnimEngine
+[Endtest] 
+
+[Test]
+title TestConstructor
+create TSanimengine CSAnimEngine
+CSAnimEngine SetupObj
+CSAnimEngine TestExtensionlessFile
+CSAnimEngine Teardown
+delete CSAnimEngine
+[Endtest] 
+
+[Test]
+title TestConstructor
+create TSanimengine CSAnimEngine
+CSAnimEngine SetupObj
+CSAnimEngine TestTooLongExtension
+CSAnimEngine Teardown
+delete CSAnimEngine
+[Endtest] 
+
+[Test]
+title SetImagePropertiesUnknownExtension
+create TSanimengine CSAnimEngine
+CSAnimEngine SetupObj
+CSAnimEngine SetImagePropertiesUnknownExtension
+CSAnimEngine Teardown
+delete CSAnimEngine
+[Endtest] 
+
+
+[Test]
+title SetImagePropertiesUnknownExtensionNoMemory
+create TSanimengine CSAnimEngine
+CSAnimEngine SetupObj
+CSAnimEngine SetImagePropertiesUnknownExtensionNoMemory
+CSAnimEngine Teardown
+delete CSAnimEngine
+[Endtest] 
+
+
+[Test]
+title SetImagePropertiesKnownExtension
+create TSanimengine CSAnimEngine
+CSAnimEngine SetupObj
+CSAnimEngine SetImagePropertiesKnownExtension
+CSAnimEngine Teardown
+delete CSAnimEngine
+[Endtest] 
+
+[Test]
+title SetImagePropertiesKnownExtensionNoMemory
+create TSanimengine CSAnimEngine
+CSAnimEngine SetupObj
+CSAnimEngine SetImagePropertiesKnownExtensionNoMemory
+CSAnimEngine Teardown
+delete CSAnimEngine
+[Endtest] 
+
+
+[Test]
+title SetImagePropertiesManyPlugins
+create TSanimengine CSAnimEngine
+CSAnimEngine SetupObj
+CSAnimEngine SetImagePropertiesManyPlugins
+CSAnimEngine Teardown
+delete CSAnimEngine
+[Endtest] 
+
+[Test]
+title SetImagePropertiesManyPluginsNoMemory
+create TSanimengine CSAnimEngine
+CSAnimEngine SetupObj
+CSAnimEngine SetImagePropertiesManyPluginsNoMemory
+CSAnimEngine Teardown
+delete CSAnimEngine
+[Endtest] 
+
+
+[Test]
+title SetImagePropertiesWildcardMatch
+create TSanimengine CSAnimEngine
+CSAnimEngine SetupObj
+CSAnimEngine SetImagePropertiesWildcardMatch
+CSAnimEngine Teardown
+delete CSAnimEngine
+[Endtest] 
+
+
+[Test]
+title SetImagePropertiesWildcardMatchNoMemory
+create TSanimengine CSAnimEngine
+CSAnimEngine SetupObj
+CSAnimEngine SetImagePropertiesWildcardMatchNoMemory
+CSAnimEngine Teardown
+delete CSAnimEngine
+[Endtest] 
+
+
+[Test]
+title SetImagePropertiesManyExtensions
+create TSanimengine CSAnimEngine
+CSAnimEngine SetupObj
+CSAnimEngine SetImagePropertiesManyExtensions
+CSAnimEngine Teardown
+delete CSAnimEngine
+[Endtest] 
+
+
+
+[Test]
+title SetImagePropertiesManyExtensionsNoMemory
+create TSanimengine CSAnimEngine
+CSAnimEngine SetupObj
+CSAnimEngine SetImagePropertiesManyExtensionsNoMemory
+CSAnimEngine Teardown
+delete CSAnimEngine
+[Endtest] 
+
+
+
+[Test]
+title SetTonePropertiesKnownExtension
+create TSanimengine CSAnimEngine
+CSAnimEngine SetupObj
+CSAnimEngine SetTonePropertiesKnownExtension
+CSAnimEngine Teardown
+delete CSAnimEngine
+[Endtest] 
+
+[Test]
+title SetTonePropertiesKnownExtensionNoMemory
+create TSanimengine CSAnimEngine
+CSAnimEngine SetupObj
+CSAnimEngine SetTonePropertiesKnownExtensionNoMemory
+CSAnimEngine Teardown
+delete CSAnimEngine
+[Endtest] 
+
+
+
+[Test]
+title SetTonePropertiesManyPlugins
+create TSanimengine CSAnimEngine
+CSAnimEngine SetupObj
+CSAnimEngine SetTonePropertiesManyPlugins
+CSAnimEngine Teardown
+delete CSAnimEngine
+[Endtest] 
+
+
+[Test]
+title SetTonePropertiesManyPluginsNoMemory
+create TSanimengine CSAnimEngine
+CSAnimEngine SetupObj
+CSAnimEngine SetTonePropertiesManyPluginsNoMemory
+CSAnimEngine Teardown
+delete CSAnimEngine
+[Endtest] 
+
+
+[Test]
+title SetTonePropertiesWildcardMatch
+create TSanimengine CSAnimEngine
+CSAnimEngine SetupObj
+CSAnimEngine SetTonePropertiesWildcardMatch
+CSAnimEngine Teardown
+delete CSAnimEngine
+[Endtest] 
+
+
+[Test]
+title SetTonePropertiesWildcardMatchNoMemory
+create TSanimengine CSAnimEngine
+CSAnimEngine SetupObj
+CSAnimEngine SetTonePropertiesWildcardMatchNoMemory
+CSAnimEngine Teardown
+delete CSAnimEngine
+[Endtest] 
+ 
+
+[Test]
+title TestLoadEmpty
+create TSanimengine CSAnimEngine
+CSAnimEngine SetupObj
+CSAnimEngine TestLoadEmpty
+CSAnimEngine Teardown
+delete CSAnimEngine
+[Endtest] 
+
+
+    
+[Test]
+title TestCancelLoadEmpty
+create TSanimengine CSAnimEngine
+CSAnimEngine SetupObj
+CSAnimEngine TestCancelLoadEmpty
+CSAnimEngine Teardown
+delete CSAnimEngine
+[Endtest] 
+
+
+[Test]
+title TestLoadNoMemory
+create TSanimengine CSAnimEngine
+CSAnimEngine SetupObj
+CSAnimEngine TestLoadNoMemory
+CSAnimEngine Teardown
+delete CSAnimEngine
+[Endtest] 
+
+
+
+
+[Test]
+title TestCancelLoad
+create TSanimengine CSAnimEngine
+CSAnimEngine SetupImagePlugin
+CSAnimEngine TestCancelLoad
+CSAnimEngine Teardown
+delete CSAnimEngine
+[Endtest] 
+
+
+[Test]
+title SetImagePropertiesUnknownExtensionNoMemory
+create TSanimengine CSAnimEngine
+CSAnimEngine SetupImagePlugin
+CSAnimEngine TestLoadNoMemory
+CSAnimEngine Teardown
+delete CSAnimEngine
+[Endtest] 
+
+
+[Test]
+title TestCancelLoad
+create TSanimengine CSAnimEngine
+CSAnimEngine SetupTonePlugin
+CSAnimEngine TestCancelLoad
+CSAnimEngine Teardown
+delete CSAnimEngine
+[Endtest] 
+
+
+[Test]
+title TestLoadNoMemory
+create TSanimengine CSAnimEngine
+CSAnimEngine SetupTonePlugin
+CSAnimEngine TestLoadNoMemory
+CSAnimEngine Teardown
+delete CSAnimEngine
+[Endtest] 
+
+
+[Test]
+title TestLoadImagePluginFaster
+create TSanimengine CSAnimEngine
+CSAnimEngine SetupImagePluginFaster
+CSAnimEngine TestLoadImagePluginFaster
+CSAnimEngine Teardown
+delete CSAnimEngine
+[Endtest] 
+
+
+[Test]
+title TestLoadTonePluginFaster
+create TSanimengine CSAnimEngine
+CSAnimEngine SetupTonePluginFaster
+CSAnimEngine TestLoadTonePluginFaster
+CSAnimEngine Teardown
+delete CSAnimEngine
+[Endtest] 
+
+
+[Test]
+title SetImagePropertiesUnknownExtensionNoMemory
+create TSanimengine CSAnimEngine
+CSAnimEngine SetupObj
+CSAnimEngine SetImagePropertiesUnknownExtensionNoMemory
+CSAnimEngine Teardown
+delete CSAnimEngine
+[Endtest] 
+
+
+[Test]
+title TestLoadImagePluginReturnsError
+create TSanimengine CSAnimEngine
+CSAnimEngine SetupImagePluginReturnsError
+CSAnimEngine TestLoadImagePluginReturnsError
+CSAnimEngine Teardown
+delete CSAnimEngine
+[Endtest] 
+
+[Test]
+title TestLoadTonePluginReturnsError
+create TSanimengine CSAnimEngine
+CSAnimEngine SetupTonePluginReturnsError
+CSAnimEngine TestLoadTonePluginReturnsError
+CSAnimEngine Teardown
+delete CSAnimEngine
+[Endtest] 
+
+
+[Test]
+title TestBackroundColour
+create TSanimengine CSAnimEngine
+CSAnimEngine SetupImageLoaded
+CSAnimEngine TestBackroundColour
+CSAnimEngine Teardown
+delete CSAnimEngine
+[Endtest] 
+
+
+[Test]
+title TestBackroundColour
+create TSanimengine CSAnimEngine
+CSAnimEngine SetupToneLoaded
+CSAnimEngine TestBackroundColour
+CSAnimEngine Teardown
+delete CSAnimEngine
+[Endtest] 
+
+
+[Test]
+title TestCancelNotActive
+create TSanimengine CSAnimEngine
+CSAnimEngine SetupImagePlugin
+CSAnimEngine TestCancelNotActive
+CSAnimEngine Teardown
+delete CSAnimEngine
+[Endtest] 
+
+
+[Test]
+title TestLoadWhenActive
+create TSanimengine CSAnimEngine
+CSAnimEngine SetupTonePlugin
+CSAnimEngine TestLoadWhenActive
+CSAnimEngine Teardown
+delete CSAnimEngine
+[Endtest] 
+
+
+[Test]
+title TestStartWhenActive
+create TSanimengine CSAnimEngine
+CSAnimEngine SetupImageLoaded
+CSAnimEngine TestStartWhenActive
+CSAnimEngine Teardown
+delete CSAnimEngine
+[Endtest] 
+
+
+[Test]
+title TestStartWhenActiveL
+create TSanimengine CSAnimEngine
+CSAnimEngine SetupToneLoaded
+CSAnimEngine TestStartWhenActive
+CSAnimEngine Teardown
+delete CSAnimEngine
+[Endtest] 
+
+
+
+[Test]
+title TestStart
+create TSanimengine CSAnimEngine
+CSAnimEngine SetupObj
+CSAnimEngine TestStart
+CSAnimEngine Teardown
+delete CSAnimEngine
+[Endtest] 
+
+
+
+[Test]
+title TestStartNotReady
+create TSanimengine CSAnimEngine
+CSAnimEngine SetupImagePlugin
+CSAnimEngine TestStartNotReady
+CSAnimEngine Teardown
+delete CSAnimEngine
+[Endtest] 
+
+
+[Test]
+title TestStart
+create TSanimengine CSAnimEngine
+CSAnimEngine SetupImageLoaded
+CSAnimEngine TestStart
+CSAnimEngine Teardown
+delete CSAnimEngine
+[Endtest] 
+
+
+[Test]
+title TestStart
+create TSanimengine CSAnimEngine
+CSAnimEngine SetupToneLoaded
+CSAnimEngine TestStart
+CSAnimEngine Teardown
+delete CSAnimEngine
+[Endtest] 
+
+
+[Test]
+title TestStart
+create TSanimengine CSAnimEngine
+CSAnimEngine SetupBothLoaded
+CSAnimEngine TestStart
+CSAnimEngine Teardown
+delete CSAnimEngine
+[Endtest] 
+
+
+
+[Test]
+title TestLoadAgain
+create TSanimengine CSAnimEngine
+CSAnimEngine SetupBothLoaded
+CSAnimEngine TestLoadAgain
+CSAnimEngine Teardown
+delete CSAnimEngine
+[Endtest] 
+
+
+[Test]
+title TestStartAgain
+create TSanimengine CSAnimEngine
+CSAnimEngine SetupBothFinished
+CSAnimEngine TestStartAgain
+CSAnimEngine Teardown
+delete CSAnimEngine
+[Endtest] 
+
+
+
+[Test]
+title TestLoadAndStartAnotherShow
+create TSanimengine CSAnimEngine
+CSAnimEngine SetupBothFinished
+CSAnimEngine TestLoadAndStartAnotherShow
+CSAnimEngine Teardown
+delete CSAnimEngine
+[Endtest] 
+
+
+[Test]
+title TestLoadAndStartEmptyShowAfterAnotherShow
+create TSanimengine CSAnimEngine
+CSAnimEngine SetupBothFinished
+CSAnimEngine TestLoadAndStartEmptyShowAfterAnotherShow
+CSAnimEngine Teardown
+delete CSAnimEngine
+[Endtest] 
+
+
+
+[Test]
+title SetImagePropertiesManyPluginsNoMemory
+create TSanimengine CSAnimEngine
+CSAnimEngine SetupBothFinished
+CSAnimEngine SetImagePropertiesManyPluginsNoMemory
+CSAnimEngine Teardown
+delete CSAnimEngine
+[Endtest] 
+
+
+[Test]
+title SetTonePropertiesManyPluginsNoMemory
+create TSanimengine CSAnimEngine
+CSAnimEngine SetupBothFinished
+CSAnimEngine SetTonePropertiesManyPluginsNoMemory
+CSAnimEngine Teardown
+delete CSAnimEngine
+[Endtest] 
+
+
+[Test]
+title TestStartWhenLoadFailed
+create TSanimengine CSAnimEngine
+CSAnimEngine SetupLoadFailed
+CSAnimEngine TestStartWhenLoadFailed
+CSAnimEngine Teardown
+delete CSAnimEngine
+[Endtest] 
+
+
+[Test]
+title TestStartWhenLoadFailed
+create TSanimengine CSAnimEngine
+CSAnimEngine SetupLoadFailed
+CSAnimEngine TestStartWhenLoadFailed
+CSAnimEngine Teardown
+delete CSAnimEngine
+[Endtest]
+
+
+
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/TSanimengine/eabi/TSanimengineu.def	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,3 @@
+EXPORTS
+	_Z9LibEntryLR13CTestModuleIf @ 1 NONAME
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/TSanimengine/group/TSanimengine.mmp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,88 @@
+/*TYPE TESTCLASS*/
+/*
+* 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: MMP file for STIF Test Framework's TestScripter 
+* testclass test module.
+*
+*/
+
+#include <platform_paths.hrh>
+
+SMPSAFE
+
+TARGET          TSanimengine.dll
+TARGETTYPE      dll
+UID             0x1000008D 0x101FB3E3
+
+CAPABILITY      ALL -TCB
+/* Remove comments and replace 0x00000000 with correct vendor id */
+// VENDORID     0x00000000
+/* Remove comments and replace 0x00000000 with correct secure id */
+// SECUREID     0x00000000
+
+//TARGETPATH      ?target_path
+DEFFILE         TSanimengine.def
+
+USERINCLUDE     ../inc 
+USERINCLUDE     ../inc
+USERINCLUDE     ../../inc
+USERINCLUDE     ../../../../../../inc
+USERINCLUDE     ../../../../sanimengine/inc
+
+OS_LAYER_SYSTEMINCLUDE
+
+SOURCEPATH      ../src
+
+SOURCE          TSanimengine.cpp
+SOURCE          TSanimengineBlocks.cpp
+SOURCE          testwaiter.cpp
+
+//RESOURCE        resource_file
+//RESOURCE        resource_file2
+
+LIBRARY         euser.lib
+LIBRARY         stiftestinterface.lib
+LIBRARY         stiftestengine.lib
+LIBRARY         ecom.lib
+LIBRARY         efsrv.lib
+LIBRARY         euser.lib
+LIBRARY         sanimengine.lib
+
+
+EPOCALLOWDLLDATA
+LANG            SC
+
+/*
+START WINS      
+?wins_specific_information
+END
+
+START MARM
+?marm_specific_information
+END
+*/
+// Other possible keywords:
+ 
+// DOCUMENT     ?file, that is not compiled, but added to MSVC project workspace (i.e. release notes)
+/*
+START BITMAP ?target
+TARGETPATH   ?emulated_path_on_target_machine
+HEADER
+SOURCE       ?color_depth ?source_bitmap
+END
+*/
+// DEFFILE ?filename
+// AIF ?filename
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/TSanimengine/group/TSanimengine.pkg	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,60 @@
+;
+; 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:
+;
+; 	Installation file for STIF
+;
+
+; Languages
+&EN
+
+; Provide value for uid
+#{"STIF"},(0x00000000),1,1,0,TYPE=SA
+
+; Series60 product id for S60 3.0
+[0x101F7961], 0, 0, 0, {"Series60ProductID"}
+
+; Localised Vendor name
+%{"Nokia"}
+
+; Unique Vendor name
+:"Nokia"
+
+; Logo
+; None
+
+; Package signature - Optional
+; None
+
+; Start of Package body
+
+; Condition blocks
+; None
+
+; Options list
+; None
+
+; Install files
+"\epoc32\release\armv5\udeb\TSanimengine.dll"   -   "!:\Sys\Bin\TSanimengine.dll"
+  
+; Embedded SIS 
+; None
+
+; End of Package body
+
+; PKG dependencies
+; None
+
+; PKG capabilities
+; None
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/TSanimengine/group/TSanimengine_DoxyFile.txt	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,240 @@
+#
+# 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:
+#
+#
+
+# Doxyfile 1.4.1
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+PROJECT_NAME           = TSanimengine
+PROJECT_NUMBER         = 
+OUTPUT_DIRECTORY       = x:\TSanimengine\
+CREATE_SUBDIRS         = NO
+OUTPUT_LANGUAGE        = English
+USE_WINDOWS_ENCODING   = YES
+BRIEF_MEMBER_DESC      = YES
+REPEAT_BRIEF           = YES
+ABBREVIATE_BRIEF       = 
+ALWAYS_DETAILED_SEC    = NO
+INLINE_INHERITED_MEMB  = NO
+FULL_PATH_NAMES        = NO
+STRIP_FROM_PATH        = 
+STRIP_FROM_INC_PATH    = 
+SHORT_NAMES            = NO
+JAVADOC_AUTOBRIEF      = NO
+MULTILINE_CPP_IS_BRIEF = NO
+DETAILS_AT_TOP         = NO
+INHERIT_DOCS           = YES
+DISTRIBUTE_GROUP_DOC   = NO
+TAB_SIZE               = 8
+ALIASES                = 
+OPTIMIZE_OUTPUT_FOR_C  = YES
+OPTIMIZE_OUTPUT_JAVA   = NO
+SUBGROUPING            = YES
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+EXTRACT_ALL            = YES
+EXTRACT_PRIVATE        = NO
+EXTRACT_STATIC         = NO
+EXTRACT_LOCAL_CLASSES  = NO
+EXTRACT_LOCAL_METHODS  = NO
+HIDE_UNDOC_MEMBERS     = NO
+HIDE_UNDOC_CLASSES     = NO
+HIDE_FRIEND_COMPOUNDS  = NO
+HIDE_IN_BODY_DOCS      = NO
+INTERNAL_DOCS          = YES
+CASE_SENSE_NAMES       = YES
+HIDE_SCOPE_NAMES       = NO
+SHOW_INCLUDE_FILES     = YES
+INLINE_INFO            = YES
+SORT_MEMBER_DOCS       = YES
+SORT_BRIEF_DOCS        = NO
+SORT_BY_SCOPE_NAME     = NO
+GENERATE_TODOLIST      = NO
+GENERATE_TESTLIST      = NO
+GENERATE_BUGLIST       = NO
+GENERATE_DEPRECATEDLIST= YES
+ENABLED_SECTIONS       = 
+MAX_INITIALIZER_LINES  = 30
+SHOW_USED_FILES        = YES
+SHOW_DIRECTORIES       = YES
+FILE_VERSION_FILTER    = 
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+QUIET                  = NO
+WARNINGS               = YES
+WARN_IF_UNDOCUMENTED   = YES
+WARN_IF_DOC_ERROR      = YES
+WARN_NO_PARAMDOC       = NO
+WARN_FORMAT            = "$file:$line: $text"
+WARN_LOGFILE           = 
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+INPUT                  = x:\TSanimengine\
+FILE_PATTERNS          = *.h \
+                         *.rh \
+                         *.hrh
+RECURSIVE              = YES
+EXCLUDE                = 
+EXCLUDE_SYMLINKS       = NO
+EXCLUDE_PATTERNS       = 
+EXAMPLE_PATH           = 
+EXAMPLE_PATTERNS       = 
+EXAMPLE_RECURSIVE      = NO
+IMAGE_PATH             = 
+INPUT_FILTER           = 
+FILTER_PATTERNS        = 
+FILTER_SOURCE_FILES    = NO
+#---------------------------------------------------------------------------
+# configuration options related to source browsing
+#---------------------------------------------------------------------------
+SOURCE_BROWSER         = NO
+INLINE_SOURCES         = NO
+STRIP_CODE_COMMENTS    = YES
+REFERENCED_BY_RELATION = YES
+REFERENCES_RELATION    = YES
+VERBATIM_HEADERS       = YES
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+ALPHABETICAL_INDEX     = NO
+COLS_IN_ALPHA_INDEX    = 5
+IGNORE_PREFIX          = 
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+GENERATE_HTML          = NO
+HTML_OUTPUT            = html
+HTML_FILE_EXTENSION    = .html
+HTML_HEADER            = 
+HTML_FOOTER            = 
+HTML_STYLESHEET        = 
+HTML_ALIGN_MEMBERS     = YES
+GENERATE_HTMLHELP      = YES
+CHM_FILE               = 
+HHC_LOCATION           = 
+GENERATE_CHI           = NO
+BINARY_TOC             = YES
+TOC_EXPAND             = YES
+DISABLE_INDEX          = YES
+ENUM_VALUES_PER_LINE   = 4
+GENERATE_TREEVIEW      = YES
+TREEVIEW_WIDTH         = 250
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+GENERATE_LATEX         = NO
+LATEX_OUTPUT           = latex
+LATEX_CMD_NAME         = latex
+MAKEINDEX_CMD_NAME     = makeindex
+COMPACT_LATEX          = NO
+PAPER_TYPE             = a4wide
+EXTRA_PACKAGES         = 
+LATEX_HEADER           = 
+PDF_HYPERLINKS         = NO
+USE_PDFLATEX           = NO
+LATEX_BATCHMODE        = NO
+LATEX_HIDE_INDICES     = NO
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+GENERATE_RTF           = YES
+RTF_OUTPUT             = Doc
+COMPACT_RTF            = YES
+RTF_HYPERLINKS         = YES
+RTF_STYLESHEET_FILE    = 
+RTF_EXTENSIONS_FILE    = 
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+GENERATE_MAN           = NO
+MAN_OUTPUT             = man
+MAN_EXTENSION          = .3
+MAN_LINKS              = NO
+#---------------------------------------------------------------------------
+# configuration options related to the XML output
+#---------------------------------------------------------------------------
+GENERATE_XML           = NO
+XML_OUTPUT             = xml
+XML_SCHEMA             = 
+XML_DTD                = 
+XML_PROGRAMLISTING     = YES
+#---------------------------------------------------------------------------
+# configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+GENERATE_AUTOGEN_DEF   = NO
+#---------------------------------------------------------------------------
+# configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+GENERATE_PERLMOD       = NO
+PERLMOD_LATEX          = NO
+PERLMOD_PRETTY         = YES
+PERLMOD_MAKEVAR_PREFIX = 
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor   
+#---------------------------------------------------------------------------
+ENABLE_PREPROCESSING   = YES
+MACRO_EXPANSION        = YES
+EXPAND_ONLY_PREDEF     = NO
+SEARCH_INCLUDES        = YES
+INCLUDE_PATH           = 
+INCLUDE_FILE_PATTERNS  = 
+PREDEFINED             = NONSHARABLE_CLASS
+EXPAND_AS_DEFINED      = 
+SKIP_FUNCTION_MACROS   = YES
+#---------------------------------------------------------------------------
+# Configuration::additions related to external references   
+#---------------------------------------------------------------------------
+TAGFILES               = 
+GENERATE_TAGFILE       = 
+ALLEXTERNALS           = NO
+EXTERNAL_GROUPS        = YES
+PERL_PATH              = /usr/bin/perl
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool   
+#---------------------------------------------------------------------------
+CLASS_DIAGRAMS         = YES
+HIDE_UNDOC_RELATIONS   = YES
+HAVE_DOT               = NO
+CLASS_GRAPH            = YES
+COLLABORATION_GRAPH    = YES
+GROUP_GRAPHS           = YES
+UML_LOOK               = NO
+TEMPLATE_RELATIONS     = YES
+INCLUDE_GRAPH          = YES
+INCLUDED_BY_GRAPH      = YES
+CALL_GRAPH             = NO
+GRAPHICAL_HIERARCHY    = YES
+DIRECTORY_GRAPH        = YES
+DOT_IMAGE_FORMAT       = png
+DOT_PATH               = 
+DOTFILE_DIRS           = 
+MAX_DOT_GRAPH_WIDTH    = 1024
+MAX_DOT_GRAPH_HEIGHT   = 1024
+MAX_DOT_GRAPH_DEPTH    = 0
+DOT_TRANSPARENT        = NO
+DOT_MULTI_TARGETS      = NO
+GENERATE_LEGEND        = YES
+DOT_CLEANUP            = YES
+#---------------------------------------------------------------------------
+# Configuration::additions related to the search engine   
+#---------------------------------------------------------------------------
+SEARCHENGINE           = NO
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/TSanimengine/group/bld.inf	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,60 @@
+/*
+* 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:
+*
+*/
+
+PRJ_PLATFORMS
+// specify the platforms your component needs to be built for here
+// defaults to WINS MARM so you can ignore this if you just build these
+	
+	DEFAULT
+
+PRJ_TESTEXPORTS
+// NOTE: If using ARS requirements all export operations should be done under this.
+// 'abld test export'
+
+PRJ_EXPORTS
+// Specify the source file followed by its destination here
+// copy will be used to copy the source file to its destination
+// If there's no destination then the source file will be copied
+// to the same name in \epoc32\include
+// Example: 
+/*
+\agnmodel\inc\AGMCOMON.H
+*/
+
+PRJ_TESTMMPFILES
+
+	TSanimengine.mmp
+
+PRJ_MMPFILES
+
+	TSanimengine.mmp
+
+// Specify the .mmp files required for building the important component
+// releasables.
+//
+// Specify "tidy" if the component you need to build doesn't need to be
+// released. Specify "ignore" if the MMP file exists but should be
+// ignored.
+// Example:
+/*
+\agnmodel\group\agnmodel.mmp
+#if defined(MARM)
+\agnmodel\group\agsvexe.mmp
+#endif
+*/
+
+//  End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/TSanimengine/group/ctcerr.txt	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,446 @@
+
+*******************************************************************************
+
+argv[0]: C:\DOCUME~1\praprave\LOCALS~1\Temp\ctc4\mwldsym2.exe
+argv[1]: -version
+
+*** CTC++/ctcagent command: set PATH=C:\Apps\sbs\win32\mingw\bin;C:\Apps\sbs\win32\cygwin\bin;C:\Apps\sbs\win32\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\Wireless\Bin;c:\Program Files\Intel\WiFi\bin\;C:\Program Files\NTRU Cryptosystems\NTRU TCG Software Stack\bin\;C:\Program Files\Wave Systems Corp\Gemalto\Access Client\v5\;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\ctc;C:\APPS\prevent\bin;C:\APPS\cltools;C:\APPS\7zip;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\APPS\imaker;C:\Program Files\QuickTime\QTSystem\;C:\Program Files\Nokia\FastTrace;\epoc32\gcc_mingw\bin;C:\APPS\romtools;C:\APPS\bc;C:\APPS\codecollaborator;C:\APPS\actpython\.;C:\APPS\codescanner;C:\APPS\sbs\bin;C:\APPS\symdec;C:\APPS\symrec;C:\APPS\blocks\bin;C:\APPS\helium;C:\APPS\ant\bin;C:\APPS\jdk_1.6.0_11\bin; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_cw\winscw.ini @C:\DOCUME~1\praprave\LOCALS~1\Temp\ctc4\ctcopts.rsp mwldsym2 -version
+*** CTC++/ctcagent command status: 0
+
+
+*******************************************************************************
+
+argv[0]: C:\DOCUME~1\praprave\LOCALS~1\Temp\ctc4\mwccsym2.exe
+argv[1]: -version
+
+*** CTC++/ctcagent command: set PATH=C:\Apps\sbs\win32\mingw\bin;C:\Apps\sbs\win32\cygwin\bin;C:\Apps\sbs\win32\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\Wireless\Bin;c:\Program Files\Intel\WiFi\bin\;C:\Program Files\NTRU Cryptosystems\NTRU TCG Software Stack\bin\;C:\Program Files\Wave Systems Corp\Gemalto\Access Client\v5\;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\ctc;C:\APPS\prevent\bin;C:\APPS\cltools;C:\APPS\7zip;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\APPS\imaker;C:\Program Files\QuickTime\QTSystem\;C:\Program Files\Nokia\FastTrace;\epoc32\gcc_mingw\bin;C:\APPS\romtools;C:\APPS\bc;C:\APPS\codecollaborator;C:\APPS\actpython\.;C:\APPS\codescanner;C:\APPS\sbs\bin;C:\APPS\symdec;C:\APPS\symrec;C:\APPS\blocks\bin;C:\APPS\helium;C:\APPS\ant\bin;C:\APPS\jdk_1.6.0_11\bin; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_cw\winscw.ini @C:\DOCUME~1\praprave\LOCALS~1\Temp\ctc4\ctcopts.rsp mwccsym2 -version
+*** CTC++/ctcagent command status: 0
+
+
+*******************************************************************************
+
+argv[0]: C:\DOCUME~1\praprave\LOCALS~1\Temp\ctc4\mwccsym2.exe
+argv[1]: -c
+argv[2]: -align
+argv[3]: 4
+argv[4]: -warnings
+argv[5]: on
+argv[6]: -w
+argv[7]: nohidevirtual,nounusedexpr
+argv[8]: -msgstyle
+argv[9]: gcc
+argv[10]: -enum
+argv[11]: int
+argv[12]: -str
+argv[13]: pool
+argv[14]: -exc
+argv[15]: ms
+argv[16]: -trigraphs
+argv[17]: on
+argv[18]: -cwd
+argv[19]: source
+argv[20]: -g
+argv[21]: -O0
+argv[22]: -inline
+argv[23]: off
+argv[24]: -runtime
+argv[25]: staticmulti
+argv[26]: -wchar_t
+argv[27]: off
+argv[28]: -nostdinc
+argv[29]: -gccdepends
+argv[30]: -MD
+argv[31]: -d
+argv[32]: __SYMBIAN32__
+argv[33]: -d
+argv[34]: __CW32__
+argv[35]: -d
+argv[36]: __WINS__
+argv[37]: -d
+argv[38]: __WINSCW__
+argv[39]: -d
+argv[40]: __SUPPORT_CPP_EXCEPTIONS__
+argv[41]: -d
+argv[42]: _UNICODE
+argv[43]: -d
+argv[44]: _DEBUG
+argv[45]: -d
+argv[46]: __DLL__
+argv[47]: -i-
+argv[48]: -i
+argv[49]: Z:/startupservices/startupanimation/internal/test/TSanimengine/inc
+argv[50]: -i
+argv[51]: Z:/startupservices/startupanimation/internal/test/TSanimengine/inc
+argv[52]: -i
+argv[53]: Z:/startupservices/startupanimation/internal/test/inc
+argv[54]: -i
+argv[55]: Z:/inc
+argv[56]: -i
+argv[57]: Z:/startupservices/startupanimation/sanimengine/inc
+argv[58]: -i
+argv[59]: Z:/epoc32/include
+argv[60]: -i
+argv[61]: Z:/epoc32/include/platform
+argv[62]: -i
+argv[63]: Z:/epoc32/include/platform/loc
+argv[64]: -i
+argv[65]: Z:/epoc32/include/platform/loc/sc
+argv[66]: -i
+argv[67]: Z:/epoc32/include
+argv[68]: -include
+argv[69]: feature_settings.hrh
+argv[70]: -o
+argv[71]: Z:/epoc32/build/tsanimengine/c_1bbf18bc990ee84e/tsanimengine_dll/winscw/udeb/TSanimengineBlocks.o
+argv[72]: Z:/startupservices/startupanimation/internal/test/TSanimengine/src/TSanimengineBlocks.cpp
+
+*** CTC++/ctcagent command: set PATH=C:\Apps\sbs\win32\mingw\bin;C:\Apps\sbs\win32\cygwin\bin;C:\Apps\sbs\win32\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\Wireless\Bin;c:\Program Files\Intel\WiFi\bin\;C:\Program Files\NTRU Cryptosystems\NTRU TCG Software Stack\bin\;C:\Program Files\Wave Systems Corp\Gemalto\Access Client\v5\;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\ctc;C:\APPS\prevent\bin;C:\APPS\cltools;C:\APPS\7zip;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\APPS\imaker;C:\Program Files\QuickTime\QTSystem\;C:\Program Files\Nokia\FastTrace;\epoc32\gcc_mingw\bin;C:\APPS\romtools;C:\APPS\bc;C:\APPS\codecollaborator;C:\APPS\actpython\.;C:\APPS\codescanner;C:\APPS\sbs\bin;C:\APPS\symdec;C:\APPS\symrec;C:\APPS\blocks\bin;C:\APPS\helium;C:\APPS\ant\bin;C:\APPS\jdk_1.6.0_11\bin; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_cw\winscw.ini @C:\DOCUME~1\praprave\LOCALS~1\Temp\ctc4\ctcopts.rsp mwccsym2  @ctc-mwccsym2-5052.rsp
+
+*******************************************************************************
+
+argv[0]: C:\DOCUME~1\praprave\LOCALS~1\Temp\ctc4\mwccsym2.exe
+argv[1]: -c
+argv[2]: -align
+argv[3]: 4
+argv[4]: -warnings
+argv[5]: on
+argv[6]: -w
+argv[7]: nohidevirtual,nounusedexpr
+argv[8]: -msgstyle
+argv[9]: gcc
+argv[10]: -enum
+argv[11]: int
+argv[12]: -str
+argv[13]: pool
+argv[14]: -exc
+argv[15]: ms
+argv[16]: -trigraphs
+argv[17]: on
+argv[18]: -cwd
+argv[19]: source
+argv[20]: -g
+argv[21]: -O0
+argv[22]: -inline
+argv[23]: off
+argv[24]: -runtime
+argv[25]: staticmulti
+argv[26]: -wchar_t
+argv[27]: off
+argv[28]: -nostdinc
+argv[29]: -gccdepends
+argv[30]: -MD
+argv[31]: -d
+argv[32]: __SYMBIAN32__
+argv[33]: -d
+argv[34]: __CW32__
+argv[35]: -d
+argv[36]: __WINS__
+argv[37]: -d
+argv[38]: __WINSCW__
+argv[39]: -d
+argv[40]: __SUPPORT_CPP_EXCEPTIONS__
+argv[41]: -d
+argv[42]: _UNICODE
+argv[43]: -d
+argv[44]: _DEBUG
+argv[45]: -d
+argv[46]: __DLL__
+argv[47]: -i-
+argv[48]: -i
+argv[49]: Z:/startupservices/startupanimation/internal/test/TSanimengine/inc
+argv[50]: -i
+argv[51]: Z:/startupservices/startupanimation/internal/test/TSanimengine/inc
+argv[52]: -i
+argv[53]: Z:/startupservices/startupanimation/internal/test/inc
+argv[54]: -i
+argv[55]: Z:/inc
+argv[56]: -i
+argv[57]: Z:/startupservices/startupanimation/sanimengine/inc
+argv[58]: -i
+argv[59]: Z:/epoc32/include
+argv[60]: -i
+argv[61]: Z:/epoc32/include/platform
+argv[62]: -i
+argv[63]: Z:/epoc32/include/platform/loc
+argv[64]: -i
+argv[65]: Z:/epoc32/include/platform/loc/sc
+argv[66]: -i
+argv[67]: Z:/epoc32/include
+argv[68]: -include
+argv[69]: feature_settings.hrh
+argv[70]: -o
+argv[71]: Z:/epoc32/build/tsanimengine/c_1bbf18bc990ee84e/tsanimengine_dll/winscw/udeb/TSanimengine.o
+argv[72]: Z:/startupservices/startupanimation/internal/test/TSanimengine/src/TSanimengine.cpp
+
+*** CTC++/ctcagent command: set PATH=C:\Apps\sbs\win32\mingw\bin;C:\Apps\sbs\win32\cygwin\bin;C:\Apps\sbs\win32\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\Wireless\Bin;c:\Program Files\Intel\WiFi\bin\;C:\Program Files\NTRU Cryptosystems\NTRU TCG Software Stack\bin\;C:\Program Files\Wave Systems Corp\Gemalto\Access Client\v5\;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\ctc;C:\APPS\prevent\bin;C:\APPS\cltools;C:\APPS\7zip;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\APPS\imaker;C:\Program Files\QuickTime\QTSystem\;C:\Program Files\Nokia\FastTrace;\epoc32\gcc_mingw\bin;C:\APPS\romtools;C:\APPS\bc;C:\APPS\codecollaborator;C:\APPS\actpython\.;C:\APPS\codescanner;C:\APPS\sbs\bin;C:\APPS\symdec;C:\APPS\symrec;C:\APPS\blocks\bin;C:\APPS\helium;C:\APPS\ant\bin;C:\APPS\jdk_1.6.0_11\bin; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_cw\winscw.ini @C:\DOCUME~1\praprave\LOCALS~1\Temp\ctc4\ctcopts.rsp mwccsym2  @ctc-mwccsym2-5984.rsp
+
+*******************************************************************************
+
+argv[0]: C:\DOCUME~1\praprave\LOCALS~1\Temp\ctc4\mwccsym2.exe
+argv[1]: -c
+argv[2]: -align
+argv[3]: 4
+argv[4]: -warnings
+argv[5]: on
+argv[6]: -w
+argv[7]: nohidevirtual,nounusedexpr
+argv[8]: -msgstyle
+argv[9]: gcc
+argv[10]: -enum
+argv[11]: int
+argv[12]: -str
+argv[13]: pool
+argv[14]: -exc
+argv[15]: ms
+argv[16]: -trigraphs
+argv[17]: on
+argv[18]: -cwd
+argv[19]: source
+argv[20]: -g
+argv[21]: -O0
+argv[22]: -inline
+argv[23]: off
+argv[24]: -runtime
+argv[25]: staticmulti
+argv[26]: -wchar_t
+argv[27]: off
+argv[28]: -nostdinc
+argv[29]: -gccdepends
+argv[30]: -MD
+argv[31]: -d
+argv[32]: __SYMBIAN32__
+argv[33]: -d
+argv[34]: __CW32__
+argv[35]: -d
+argv[36]: __WINS__
+argv[37]: -d
+argv[38]: __WINSCW__
+argv[39]: -d
+argv[40]: __SUPPORT_CPP_EXCEPTIONS__
+argv[41]: -d
+argv[42]: _UNICODE
+argv[43]: -d
+argv[44]: _DEBUG
+argv[45]: -d
+argv[46]: __DLL__
+argv[47]: -i-
+argv[48]: -i
+argv[49]: Z:/startupservices/startupanimation/internal/test/TSanimengine/inc
+argv[50]: -i
+argv[51]: Z:/startupservices/startupanimation/internal/test/TSanimengine/inc
+argv[52]: -i
+argv[53]: Z:/startupservices/startupanimation/internal/test/inc
+argv[54]: -i
+argv[55]: Z:/inc
+argv[56]: -i
+argv[57]: Z:/startupservices/startupanimation/sanimengine/inc
+argv[58]: -i
+argv[59]: Z:/epoc32/include
+argv[60]: -i
+argv[61]: Z:/epoc32/include/platform
+argv[62]: -i
+argv[63]: Z:/epoc32/include/platform/loc
+argv[64]: -i
+argv[65]: Z:/epoc32/include/platform/loc/sc
+argv[66]: -i
+argv[67]: Z:/epoc32/include
+argv[68]: -include
+argv[69]: feature_settings.hrh
+argv[70]: -o
+argv[71]: Z:/epoc32/build/tsanimengine/c_1bbf18bc990ee84e/tsanimengine_dll/winscw/udeb/testwaiter.o
+argv[72]: Z:/startupservices/startupanimation/internal/test/TSanimengine/src/testwaiter.cpp
+
+*** CTC++/ctcagent command: set PATH=C:\Apps\sbs\win32\mingw\bin;C:\Apps\sbs\win32\cygwin\bin;C:\Apps\sbs\win32\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\Wireless\Bin;c:\Program Files\Intel\WiFi\bin\;C:\Program Files\NTRU Cryptosystems\NTRU TCG Software Stack\bin\;C:\Program Files\Wave Systems Corp\Gemalto\Access Client\v5\;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\ctc;C:\APPS\prevent\bin;C:\APPS\cltools;C:\APPS\7zip;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\APPS\imaker;C:\Program Files\QuickTime\QTSystem\;C:\Program Files\Nokia\FastTrace;\epoc32\gcc_mingw\bin;C:\APPS\romtools;C:\APPS\bc;C:\APPS\codecollaborator;C:\APPS\actpython\.;C:\APPS\codescanner;C:\APPS\sbs\bin;C:\APPS\symdec;C:\APPS\symrec;C:\APPS\blocks\bin;C:\APPS\helium;C:\APPS\ant\bin;C:\APPS\jdk_1.6.0_11\bin; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_cw\winscw.ini @C:\DOCUME~1\praprave\LOCALS~1\Temp\ctc4\ctcopts.rsp mwccsym2  @ctc-mwccsym2-2152.rsp
+
+*******************************************************************************
+
+argv[0]: C:\DOCUME~1\praprave\LOCALS~1\Temp\ctc4\mwldsym2.exe
+argv[1]: Z:/epoc32/build/tsanimengine/c_1bbf18bc990ee84e/tsanimengine_dll/winscw/udeb/TSanimengine.prep.def
+argv[2]: -importlib
+argv[3]: -o
+argv[4]: Z:/epoc32/release/winscw/udeb/TSanimengine.lib
+argv[5]: -addcommand
+argv[6]: out:TSanimengine.dll
+argv[7]: -warnings
+argv[8]: off
+
+*** CTC++/ctcagent command: set PATH=C:\Apps\sbs\win32\mingw\bin;C:\Apps\sbs\win32\cygwin\bin;C:\Apps\sbs\win32\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\Wireless\Bin;c:\Program Files\Intel\WiFi\bin\;C:\Program Files\NTRU Cryptosystems\NTRU TCG Software Stack\bin\;C:\Program Files\Wave Systems Corp\Gemalto\Access Client\v5\;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\ctc;C:\APPS\prevent\bin;C:\APPS\cltools;C:\APPS\7zip;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\APPS\imaker;C:\Program Files\QuickTime\QTSystem\;C:\Program Files\Nokia\FastTrace;\epoc32\gcc_mingw\bin;C:\APPS\romtools;C:\APPS\bc;C:\APPS\codecollaborator;C:\APPS\actpython\.;C:\APPS\codescanner;C:\APPS\sbs\bin;C:\APPS\symdec;C:\APPS\symrec;C:\APPS\blocks\bin;C:\APPS\helium;C:\APPS\ant\bin;C:\APPS\jdk_1.6.0_11\bin; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_cw\winscw.ini @C:\DOCUME~1\praprave\LOCALS~1\Temp\ctc4\ctcopts.rsp mwldsym2 Z:/epoc32/build/tsanimengine/c_1bbf18bc990ee84e/tsanimengine_dll/winscw/udeb/TSanimengine.prep.def -importlib -o Z:/epoc32/release/winscw/udeb/TSanimengine.lib -addcommand out:TSanimengine.dll -warnings off
+*** CTC++/ctcagent command status: 0
+
+
+*******************************************************************************
+
+argv[0]: C:\DOCUME~1\praprave\LOCALS~1\Temp\ctc4\mwccsym2.exe
+argv[1]: -c
+argv[2]: -align
+argv[3]: 4
+argv[4]: -warnings
+argv[5]: on
+argv[6]: -w
+argv[7]: nohidevirtual,nounusedexpr
+argv[8]: -msgstyle
+argv[9]: gcc
+argv[10]: -enum
+argv[11]: int
+argv[12]: -str
+argv[13]: pool
+argv[14]: -exc
+argv[15]: ms
+argv[16]: -trigraphs
+argv[17]: on
+argv[18]: -cwd
+argv[19]: source
+argv[20]: -g
+argv[21]: -O0
+argv[22]: -inline
+argv[23]: off
+argv[24]: -runtime
+argv[25]: staticmulti
+argv[26]: -wchar_t
+argv[27]: off
+argv[28]: -nostdinc
+argv[29]: -gccdepends
+argv[30]: -MD
+argv[31]: -d
+argv[32]: __SYMBIAN32__
+argv[33]: -d
+argv[34]: __CW32__
+argv[35]: -d
+argv[36]: __WINS__
+argv[37]: -d
+argv[38]: __WINSCW__
+argv[39]: -d
+argv[40]: __SUPPORT_CPP_EXCEPTIONS__
+argv[41]: -d
+argv[42]: _UNICODE
+argv[43]: -d
+argv[44]: _DEBUG
+argv[45]: -d
+argv[46]: __DLL__
+argv[47]: -i-
+argv[48]: -i
+argv[49]: Z:/startupservices/startupanimation/internal/test/TSanimengine/inc
+argv[50]: -i
+argv[51]: Z:/startupservices/startupanimation/internal/test/TSanimengine/inc
+argv[52]: -i
+argv[53]: Z:/startupservices/startupanimation/internal/test/inc
+argv[54]: -i
+argv[55]: Z:/inc
+argv[56]: -i
+argv[57]: Z:/startupservices/startupanimation/sanimengine/inc
+argv[58]: -i
+argv[59]: Z:/epoc32/include
+argv[60]: -i
+argv[61]: Z:/epoc32/include/platform
+argv[62]: -i
+argv[63]: Z:/epoc32/include/platform/loc
+argv[64]: -i
+argv[65]: Z:/epoc32/include/platform/loc/sc
+argv[66]: -i
+argv[67]: Z:/epoc32/include
+argv[68]: -include
+argv[69]: feature_settings.hrh
+argv[70]: -o
+argv[71]: Z:/epoc32/build/tsanimengine/c_1bbf18bc990ee84e/tsanimengine_dll/winscw/udeb/TSanimengine_UID_.o
+argv[72]: Z:/epoc32/build/tsanimengine/c_1bbf18bc990ee84e/tsanimengine_dll/winscw/udeb/TSanimengine.UID.CPP
+
+*** CTC++/ctcagent command: set PATH=C:\Apps\sbs\win32\mingw\bin;C:\Apps\sbs\win32\cygwin\bin;C:\Apps\sbs\win32\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\Wireless\Bin;c:\Program Files\Intel\WiFi\bin\;C:\Program Files\NTRU Cryptosystems\NTRU TCG Software Stack\bin\;C:\Program Files\Wave Systems Corp\Gemalto\Access Client\v5\;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\ctc;C:\APPS\prevent\bin;C:\APPS\cltools;C:\APPS\7zip;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\APPS\imaker;C:\Program Files\QuickTime\QTSystem\;C:\Program Files\Nokia\FastTrace;\epoc32\gcc_mingw\bin;C:\APPS\romtools;C:\APPS\bc;C:\APPS\codecollaborator;C:\APPS\actpython\.;C:\APPS\codescanner;C:\APPS\sbs\bin;C:\APPS\symdec;C:\APPS\symrec;C:\APPS\blocks\bin;C:\APPS\helium;C:\APPS\ant\bin;C:\APPS\jdk_1.6.0_11\bin; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_cw\winscw.ini @C:\DOCUME~1\praprave\LOCALS~1\Temp\ctc4\ctcopts.rsp mwccsym2  @ctc-mwccsym2-5580.rsp
+*** CTC++/ctcagent command status: 0
+
+*** CTC++/ctcagent command status: 0
+
+*** CTC++/ctcagent command status: 0
+
+*** CTC++/ctcagent command status: 0
+
+
+*******************************************************************************
+
+argv[0]: C:\DOCUME~1\praprave\LOCALS~1\Temp\ctc4\mwldsym2.exe
+argv[1]: -msgstyle
+argv[2]: gcc
+argv[3]: -stdlib
+argv[4]: -subsystem
+argv[5]: windows
+argv[6]: -g
+argv[7]: -main
+argv[8]: __Win32DllMain@12
+argv[9]: -shared
+argv[10]: -m
+argv[11]: __E32Dll
+argv[12]: -export
+argv[13]: dllexport
+argv[14]: -nocompactimportlib
+argv[15]: -addcommand
+argv[16]: out:TSanimengine.dll
+argv[17]: -warnings
+argv[18]: off
+argv[19]: -implib
+argv[20]: Z:/epoc32/build/tsanimengine/c_1bbf18bc990ee84e/tsanimengine_dll/winscw/udeb/TSanimengine.lib
+argv[21]: -o
+argv[22]: Z:/epoc32/build/tsanimengine/c_1bbf18bc990ee84e/tsanimengine_dll/winscw/udeb/TSanimengine.dll
+argv[23]: Z:/epoc32/release/winscw/udeb/edll.lib
+argv[24]: Z:/epoc32/release/winscw/udeb/scppnwdl.lib
+argv[25]: Z:/epoc32/release/winscw/udeb/euser.lib
+argv[26]: Z:/epoc32/release/winscw/udeb/stiftestinterface.lib
+argv[27]: Z:/epoc32/release/winscw/udeb/stiftestengine.lib
+argv[28]: Z:/epoc32/release/winscw/udeb/ecom.lib
+argv[29]: Z:/epoc32/release/winscw/udeb/efsrv.lib
+argv[30]: Z:/epoc32/release/winscw/udeb/euser.lib
+argv[31]: Z:/epoc32/release/winscw/udeb/sanimengine.lib
+argv[32]: -l
+argv[33]: Z:/epoc32/build/tsanimengine/c_1bbf18bc990ee84e/tsanimengine_dll/winscw/udeb
+argv[34]: -search
+argv[35]: @Z:/epoc32/build/tsanimengine/c_1bbf18bc990ee84e/tsanimengine_dll/winscw/udeb/TSanimengine_udeb_objects.lrf
+
+*** CTC++/ctcagent command: set PATH=C:\Apps\sbs\win32\mingw\bin;C:\Apps\sbs\win32\cygwin\bin;C:\Apps\sbs\win32\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\Wireless\Bin;c:\Program Files\Intel\WiFi\bin\;C:\Program Files\NTRU Cryptosystems\NTRU TCG Software Stack\bin\;C:\Program Files\Wave Systems Corp\Gemalto\Access Client\v5\;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\ctc;C:\APPS\prevent\bin;C:\APPS\cltools;C:\APPS\7zip;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\APPS\imaker;C:\Program Files\QuickTime\QTSystem\;C:\Program Files\Nokia\FastTrace;\epoc32\gcc_mingw\bin;C:\APPS\romtools;C:\APPS\bc;C:\APPS\codecollaborator;C:\APPS\actpython\.;C:\APPS\codescanner;C:\APPS\sbs\bin;C:\APPS\symdec;C:\APPS\symrec;C:\APPS\blocks\bin;C:\APPS\helium;C:\APPS\ant\bin;C:\APPS\jdk_1.6.0_11\bin; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_cw\winscw.ini @C:\DOCUME~1\praprave\LOCALS~1\Temp\ctc4\ctcopts.rsp mwldsym2  @ctc-mwldsym2-2456.rsp
+*** CTC++/ctcagent command status: 0
+
+
+*******************************************************************************
+
+argv[0]: C:\DOCUME~1\praprave\LOCALS~1\Temp\ctc4\mwldsym2.exe
+argv[1]: -S
+argv[2]: -show
+argv[3]: only,names,unmangled,verbose
+argv[4]: -o
+argv[5]: Z:/epoc32/build/tsanimengine/c_1bbf18bc990ee84e/tsanimengine_dll/winscw/udeb/TSanimengine.inf
+argv[6]: Z:/epoc32/build/tsanimengine/c_1bbf18bc990ee84e/tsanimengine_dll/winscw/udeb/TSanimengine.lib
+
+*** CTC++/ctcagent command: set PATH=C:\Apps\sbs\win32\mingw\bin;C:\Apps\sbs\win32\cygwin\bin;C:\Apps\sbs\win32\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\Wireless\Bin;c:\Program Files\Intel\WiFi\bin\;C:\Program Files\NTRU Cryptosystems\NTRU TCG Software Stack\bin\;C:\Program Files\Wave Systems Corp\Gemalto\Access Client\v5\;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\ctc;C:\APPS\prevent\bin;C:\APPS\cltools;C:\APPS\7zip;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\APPS\imaker;C:\Program Files\QuickTime\QTSystem\;C:\Program Files\Nokia\FastTrace;\epoc32\gcc_mingw\bin;C:\APPS\romtools;C:\APPS\bc;C:\APPS\codecollaborator;C:\APPS\actpython\.;C:\APPS\codescanner;C:\APPS\sbs\bin;C:\APPS\symdec;C:\APPS\symrec;C:\APPS\blocks\bin;C:\APPS\helium;C:\APPS\ant\bin;C:\APPS\jdk_1.6.0_11\bin; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_cw\winscw.ini @C:\DOCUME~1\praprave\LOCALS~1\Temp\ctc4\ctcopts.rsp mwldsym2 -S -show only,names,unmangled,verbose -o Z:/epoc32/build/tsanimengine/c_1bbf18bc990ee84e/tsanimengine_dll/winscw/udeb/TSanimengine.inf Z:/epoc32/build/tsanimengine/c_1bbf18bc990ee84e/tsanimengine_dll/winscw/udeb/TSanimengine.lib
+*** CTC++/ctcagent command status: 0
+
+
+*******************************************************************************
+
+argv[0]: C:\DOCUME~1\praprave\LOCALS~1\Temp\ctc4\mwldsym2.exe
+argv[1]: -msgstyle
+argv[2]: gcc
+argv[3]: -stdlib
+argv[4]: -subsystem
+argv[5]: windows
+argv[6]: -g
+argv[7]: -main
+argv[8]: __Win32DllMain@12
+argv[9]: -shared
+argv[10]: -f
+argv[11]: Z:/epoc32/build/tsanimengine/c_1bbf18bc990ee84e/tsanimengine_dll/winscw/udeb/TSanimengine.def
+argv[12]: Z:/epoc32/release/winscw/udeb/edll.lib
+argv[13]: Z:/epoc32/release/winscw/udeb/scppnwdl.lib
+argv[14]: Z:/epoc32/release/winscw/udeb/euser.lib
+argv[15]: Z:/epoc32/release/winscw/udeb/stiftestinterface.lib
+argv[16]: Z:/epoc32/release/winscw/udeb/stiftestengine.lib
+argv[17]: Z:/epoc32/release/winscw/udeb/ecom.lib
+argv[18]: Z:/epoc32/release/winscw/udeb/efsrv.lib
+argv[19]: Z:/epoc32/release/winscw/udeb/euser.lib
+argv[20]: Z:/epoc32/release/winscw/udeb/sanimengine.lib
+argv[21]: -o
+argv[22]: Z:/epoc32/release/winscw/udeb/TSanimengine.dll
+argv[23]: -noimplib
+argv[24]: -l
+argv[25]: Z:/epoc32/build/tsanimengine/c_1bbf18bc990ee84e/tsanimengine_dll/winscw/udeb
+argv[26]: -search
+argv[27]: @Z:/epoc32/build/tsanimengine/c_1bbf18bc990ee84e/tsanimengine_dll/winscw/udeb/TSanimengine_udeb_objects.lrf
+
+*** CTC++/ctcagent command: set PATH=C:\Apps\sbs\win32\mingw\bin;C:\Apps\sbs\win32\cygwin\bin;C:\Apps\sbs\win32\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\Wireless\Bin;c:\Program Files\Intel\WiFi\bin\;C:\Program Files\NTRU Cryptosystems\NTRU TCG Software Stack\bin\;C:\Program Files\Wave Systems Corp\Gemalto\Access Client\v5\;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\ctc;C:\APPS\prevent\bin;C:\APPS\cltools;C:\APPS\7zip;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\APPS\imaker;C:\Program Files\QuickTime\QTSystem\;C:\Program Files\Nokia\FastTrace;\epoc32\gcc_mingw\bin;C:\APPS\romtools;C:\APPS\bc;C:\APPS\codecollaborator;C:\APPS\actpython\.;C:\APPS\codescanner;C:\APPS\sbs\bin;C:\APPS\symdec;C:\APPS\symrec;C:\APPS\blocks\bin;C:\APPS\helium;C:\APPS\ant\bin;C:\APPS\jdk_1.6.0_11\bin; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_cw\winscw.ini @C:\DOCUME~1\praprave\LOCALS~1\Temp\ctc4\ctcopts.rsp mwldsym2 -msgstyle gcc -stdlib -subsystem windows -g -main __Win32DllMain@12 -shared -f Z:/epoc32/build/tsanimengine/c_1bbf18bc990ee84e/tsanimengine_dll/winscw/udeb/TSanimengine.def Z:/epoc32/release/winscw/udeb/edll.lib Z:/epoc32/release/winscw/udeb/scppnwdl.lib Z:/epoc32/release/winscw/udeb/euser.lib Z:/epoc32/release/winscw/udeb/stiftestinterface.lib Z:/epoc32/release/winscw/udeb/stiftestengine.lib Z:/epoc32/release/winscw/udeb/ecom.lib Z:/epoc32/release/winscw/udeb/efsrv.lib Z:/epoc32/release/winscw/udeb/euser.lib Z:/epoc32/release/winscw/udeb/sanimengine.lib -o Z:/epoc32/release/winscw/udeb/TSanimengine.dll -noimplib -l Z:/epoc32/build/tsanimengine/c_1bbf18bc990ee84e/tsanimengine_dll/winscw/udeb -search @Z:/epoc32/build/tsanimengine/c_1bbf18bc990ee84e/tsanimengine_dll/winscw/udeb/TSanimengine_udeb_objects.lrf
+*** CTC++/ctcagent command status: 0
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/TSanimengine/inc/TSanimengine.h	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,264 @@
+/*
+* 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: STIF testclass declaration
+*
+*/
+
+#ifndef TSANIMENGINE_H
+#define TSANIMENGINE_H
+
+//  INCLUDES
+#include <StifLogger.h>
+#include <TestScripterInternal.h>
+#include <StifTestModule.h>
+#include <TestclassAssert.h>
+
+
+// CONSTANTS
+//const ?type ?constant_var = ?constant;
+
+// MACROS
+//#define ?macro ?macro_def
+#define TEST_CLASS_VERSION_MAJOR 0
+#define TEST_CLASS_VERSION_MINOR 0
+#define TEST_CLASS_VERSION_BUILD 0
+
+// Logging path
+_LIT( KTSanimengineLogPath, "\\logs\\testframework\\TSanimengine\\" ); 
+// Log file
+_LIT( KTSanimengineLogFile, "TSanimengine.txt" ); 
+_LIT( KTSanimengineLogFileWithTitle, "TSanimengine_[%S].txt" );
+
+
+#include <f32file.h>
+#include "sanimobserver.h"
+
+class CSAnimEngine;
+class CTestWaiter;
+
+class TMockAnimationObserver : public MSAnimObserver
+    {
+public:
+    TMockAnimationObserver() {}
+    virtual void UpdateScreen( const CFbsBitmap& /*aFrame*/, const CFbsBitmap& /*aMask*/ ) {}
+    virtual void UpdateScreen( const CFbsBitmap& /*aFrame*/ ) {}
+    };
+
+class CTSanimengine;
+
+// DATA TYPES
+//enum ?declaration
+//typedef ?declaration
+//extern ?data_type;
+
+// CLASS DECLARATION
+
+/**
+*  CTSanimengine test class for STIF Test Framework TestScripter.
+*  ?other_description_lines
+*
+*  @lib ?library
+*  @since ?Series60_version
+*/
+NONSHARABLE_CLASS(CTSanimengine) : public CScriptBase
+    {
+    public:  // Constructors and destructor
+
+        /**
+        * Two-phased constructor.
+        */
+        static CTSanimengine* NewL( CTestModuleIf& aTestModuleIf );
+
+        /**
+        * Destructor.
+        */
+        virtual ~CTSanimengine();
+
+    public: // New functions
+
+        /**
+        * ?member_description.
+        * @since ?Series60_version
+        * @param ?arg1 ?description
+        * @return ?description
+        */
+        //?type ?member_function( ?type ?arg1 );
+
+    public: // Functions from base classes
+
+        /**
+        * From CScriptBase Runs a script line.
+        * @since ?Series60_version
+        * @param aItem Script line containing method name and parameters
+        * @return Symbian OS error code
+        */
+        virtual TInt RunMethodL( CStifItemParser& aItem );
+
+    protected:  // New functions
+
+        /**
+        * ?member_description.
+        * @since ?Series60_version
+        * @param ?arg1 ?description
+        * @return ?description
+        */
+        //?type ?member_function( ?type ?arg1 );
+
+    protected:  // Functions from base classes
+
+        /**
+        * From ?base_class ?member_description
+        */
+        //?type ?member_function();
+
+    private:
+
+        /**
+        * C++ default constructor.
+        */
+        CTSanimengine( CTestModuleIf& aTestModuleIf );
+
+        /**
+        * By default Symbian 2nd phase constructor is private.
+        */
+        void ConstructL();
+
+        // Prohibit copy constructor if not deriving from CBase.
+        // ?classname( const ?classname& );
+        // Prohibit assigment operator if not deriving from CBase.
+        // ?classname& operator=( const ?classname& );
+
+        /**
+        * Frees all resources allocated from test methods.
+        * @since ?Series60_version
+        */
+        void Delete();
+
+        /**
+        * Test methods are listed below. 
+        */
+
+        /**
+        * Example test method.
+        * @since ?Series60_version
+        * @param aItem Script line containing parameters.
+        * @return Symbian OS error code.
+        */
+        virtual TInt ExampleL( CStifItemParser& aItem );
+        
+        /**
+         * Method used to log version of test class
+         */
+        void SendTestClassVersion();
+
+        //ADD NEW METHOD DEC HERE
+        //[TestMethods] - Do not remove
+
+    
+    TInt SetupEmptyL();
+    TInt SetupObjL();
+    TInt SetupImagePluginL();
+    TInt SetupTonePluginL();
+    TInt SetupBothPluginsL();
+    TInt SetupImagePluginFasterL();
+    TInt SetupTonePluginFasterL();
+    TInt SetupImagePluginReturnsErrorL();
+    TInt SetupTonePluginReturnsErrorL();
+    TInt SetupBothPluginsReturnErrorL();
+    TInt LoadL();
+    TInt SetupImageLoadedL();
+    TInt SetupToneLoadedL();
+    TInt SetupBothLoadedL();
+    TInt SetupLoadFailedL();
+    TInt SetupBothFinishedL();
+    TInt Teardown();
+
+    TBool CheckNoImagePluginOutputL();
+    TBool CheckImagePluginOutputL(
+        const TUint32 aPluginUid,
+        const TDesC& aFileToLoad,
+        const TInt aDisplayMode,
+        const TSize& aSize,
+        const TInt aFrameDelay );
+    TBool CheckNoTonePluginOutputL();
+    TBool CheckTonePluginOutputL(
+        const TUint32 aPluginUid,
+        const TDesC& aFileToLoad,
+        const TInt aVolume,
+        const TInt64& aVolumeRamp );
+
+    TInt TestConstructorL();
+    TInt TestConstructorNoMemoryL();
+    TInt TestExtensionlessFileL();
+    TInt TestTooLongExtensionL();
+    TInt SetImagePropertiesUnknownExtensionL();
+    TInt SetImagePropertiesUnknownExtensionNoMemoryL();
+    TInt SetImagePropertiesKnownExtensionL();
+    TInt SetImagePropertiesKnownExtensionNoMemoryL();
+    TInt SetImagePropertiesManyPluginsL();
+    TInt SetImagePropertiesManyPluginsNoMemoryL();
+    TInt SetImagePropertiesWildcardMatchL();
+    TInt SetImagePropertiesWildcardMatchNoMemoryL();
+    TInt SetImagePropertiesManyExtensionsL();
+    TInt SetImagePropertiesManyExtensionsNoMemoryL();
+    TInt SetTonePropertiesUnknownExtensionL();
+    TInt SetTonePropertiesUnknownExtensionNoMemoryL();
+    TInt SetTonePropertiesKnownExtensionL();
+    TInt SetTonePropertiesKnownExtensionNoMemoryL();
+    TInt SetTonePropertiesManyPluginsL();
+    TInt SetTonePropertiesManyPluginsNoMemoryL();
+    TInt SetTonePropertiesWildcardMatchL();
+    TInt SetTonePropertiesWildcardMatchNoMemoryL();
+    TInt TestLoadEmptyL();
+    TInt TestCancelLoadEmptyL();
+    TInt TestLoadNoMemoryL();
+    TInt TestCancelLoadL();
+    TInt TestLoadImagePluginFasterL();
+    TInt TestLoadTonePluginFasterL();
+    TInt TestLoadImagePluginReturnsErrorL();
+    TInt TestLoadTonePluginReturnsErrorL();
+    TInt TestBackroundColourL();
+    TInt TestCancelNotActiveL();
+    TInt TestLoadWhenActiveL();
+    TInt TestStartWhenActiveL();
+    TInt TestStartL();
+    TInt TestStartNotReadyL();
+    TInt TestLoadAgainL();
+    TInt TestStartAgainL();
+    TInt TestLoadAndStartAnotherShowL();
+    TInt TestLoadAndStartEmptyShowAfterAnotherShowL();
+    TInt TestStartWhenLoadFailedL();
+
+private: // data
+
+    /** File server session used in testing. */
+    RFs iFs;
+
+    /** Animation observer for testing. */
+    TMockAnimationObserver iObserver;
+
+    /** Instance of the class that this test suite is testing. */
+    CSAnimEngine* iTestObj;
+
+    /** For testing async calls. */
+    CTestWaiter* iWaiter;
+    CTestWaiter* iWaiter2;
+
+    
+
+    };
+
+#endif      // TSANIMENGINE_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/TSanimengine/inc/testwaiter.h	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,88 @@
+/*
+* 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 the License "Symbian Foundation License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Declaration of CTestWaiter class
+*
+*/
+
+
+#ifndef TESTWAITER_H
+#define TESTWAITER_H
+
+#include <e32base.h>
+
+/**
+*  Stops active scheduler in RunL.
+*
+*  @lib None
+*  @since S60 3.2
+*/
+class CTestWaiter  : public CActive
+    {
+
+public:
+
+    /**
+    * Constructs a CTestWaiter object.
+    *
+    * @return The new object
+    * @since S60 3.2
+    */
+    static CTestWaiter* NewL();
+
+    /**
+    * Destructor.
+    *
+    * @since S60 3.2
+    */
+    virtual ~CTestWaiter();
+
+    /**
+    * Set active.
+    *
+    * @since S60 3.2
+    */
+    void Activate();
+
+protected:
+
+    /**
+    * From CActive.
+    * Implements cancellation of an outstanding request.
+    *
+    * @since S60 3.2
+    */
+    virtual void DoCancel();
+
+    /**
+    * From CActive.
+    * Handles an active object's request completion event.
+    * Never leaves.
+    *
+    * @since S60 3.2
+    */
+    virtual void RunL();
+
+private:
+
+    /**
+    * First phase constructor.
+    *
+    */
+    CTestWaiter();
+
+private: // data
+
+    };
+
+#endif // TESTWAITER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/TSanimengine/rom/TSanimengine.iby	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,10 @@
+#ifndef __TSANIMENGINE_IBY__
+#define __TSANIMENGINE_IBY__
+
+file=ABI_DIR\BUILD_DIR\TSanimengine.dll SHARED_LIB_DIR\TSanimengine.dll
+
+//data=\epoc32\data\z\system\data\TestFramework.ini \testframework\TestFramework.ini
+data=\epoc32\data\z\system\data\TSanimengine.cfg \testframework\TSanimengine.cfg
+
+
+#endif
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/TSanimengine/src/TSanimengine.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,198 @@
+/*
+* 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: This file contains testclass implementation.
+*
+*/
+
+// INCLUDE FILES
+#include <StifTestInterface.h>
+#include "TSanimengine.h"
+#include <SettingServerClient.h>
+
+// EXTERNAL DATA STRUCTURES
+//extern  ?external_data;
+
+// EXTERNAL FUNCTION PROTOTYPES  
+//extern ?external_function( ?arg_type,?arg_type );
+
+// CONSTANTS
+//const ?type ?constant_var = ?constant;
+
+// MACROS
+//#define ?macro ?macro_def
+
+// LOCAL CONSTANTS AND MACROS
+//const ?type ?constant_var = ?constant;
+//#define ?macro_name ?macro_def
+
+// MODULE DATA STRUCTURES
+//enum ?declaration
+//typedef ?declaration
+
+// LOCAL FUNCTION PROTOTYPES
+//?type ?function_name( ?arg_type, ?arg_type );
+
+// FORWARD DECLARATIONS
+//class ?FORWARD_CLASSNAME;
+
+// ============================= LOCAL FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// ?function_name ?description.
+// ?description
+// Returns: ?value_1: ?description
+//          ?value_n: ?description_line1
+//                    ?description_line2
+// -----------------------------------------------------------------------------
+//
+/*
+?type ?function_name(
+    ?arg_type arg,  // ?description
+    ?arg_type arg)  // ?description
+    {
+
+    ?code  // ?comment
+
+    // ?comment
+    ?code
+    }
+*/
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CTSanimengine::CTSanimengine
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// -----------------------------------------------------------------------------
+//
+CTSanimengine::CTSanimengine( 
+    CTestModuleIf& aTestModuleIf ):
+        CScriptBase( aTestModuleIf )
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CTSanimengine::ConstructL
+// Symbian 2nd phase constructor can leave.
+// -----------------------------------------------------------------------------
+//
+void CTSanimengine::ConstructL()
+    {
+    //Read logger settings to check whether test case name is to be
+    //appended to log file name.
+    RSettingServer settingServer;
+    TInt ret = settingServer.Connect();
+    if(ret != KErrNone)
+        {
+        User::Leave(ret);
+        }
+    // Struct to StifLogger settigs.
+    TLoggerSettings loggerSettings; 
+    // Parse StifLogger defaults from STIF initialization file.
+    ret = settingServer.GetLoggerSettings(loggerSettings);
+    if(ret != KErrNone)
+        {
+        User::Leave(ret);
+        } 
+    // Close Setting server session
+    settingServer.Close();
+
+    TFileName logFileName;
+    
+    if(loggerSettings.iAddTestCaseTitle)
+        {
+        TName title;
+        TestModuleIf().GetTestCaseTitleL(title);
+        logFileName.Format(KTSanimengineLogFileWithTitle, &title);
+        }
+    else
+        {
+        logFileName.Copy(KTSanimengineLogFile);
+        }
+
+    iLog = CStifLogger::NewL( KTSanimengineLogPath, 
+                          logFileName,
+                          CStifLogger::ETxt,
+                          CStifLogger::EFile,
+                          EFalse );
+    
+    SendTestClassVersion();
+    }
+
+// -----------------------------------------------------------------------------
+// CTSanimengine::NewL
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CTSanimengine* CTSanimengine::NewL( 
+    CTestModuleIf& aTestModuleIf )
+    {
+    CTSanimengine* self = new (ELeave) CTSanimengine( aTestModuleIf );
+
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop();
+
+    return self;
+
+    }
+
+// Destructor
+CTSanimengine::~CTSanimengine()
+    { 
+
+    // Delete resources allocated from test methods
+    Delete();
+
+    // Delete logger
+    delete iLog; 
+
+    }
+
+//-----------------------------------------------------------------------------
+// CTSanimengine::SendTestClassVersion
+// Method used to send version of test class
+//-----------------------------------------------------------------------------
+//
+void CTSanimengine::SendTestClassVersion()
+	{
+	TVersion moduleVersion;
+	moduleVersion.iMajor = TEST_CLASS_VERSION_MAJOR;
+	moduleVersion.iMinor = TEST_CLASS_VERSION_MINOR;
+	moduleVersion.iBuild = TEST_CLASS_VERSION_BUILD;
+	
+	TFileName moduleName;
+	moduleName = _L("TSanimengine.dll");
+
+	TBool newVersionOfMethod = ETrue;
+	TestModuleIf().SendTestModuleVersion(moduleVersion, moduleName, newVersionOfMethod);
+	}
+
+// ========================== OTHER EXPORTED FUNCTIONS =========================
+
+// -----------------------------------------------------------------------------
+// LibEntryL is a polymorphic Dll entry point.
+// Returns: CScriptBase: New CScriptBase derived object
+// -----------------------------------------------------------------------------
+//
+EXPORT_C CScriptBase* LibEntryL( 
+    CTestModuleIf& aTestModuleIf ) // Backpointer to STIF Test Framework
+    {
+
+    return ( CScriptBase* ) CTSanimengine::NewL( aTestModuleIf );
+
+    }
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/TSanimengine/src/TSanimengineBlocks.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,1361 @@
+/*
+* 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: This file contains testclass implementation.
+*
+*/
+
+// [INCLUDE FILES] - do not remove
+#include <e32svr.h>
+#include <StifParser.h>
+#include <StifTestInterface.h>
+#include "TSanimengine.h"
+
+
+#include "sanimengine.h"
+#include "testwaiter.h"
+
+#include <ecom/ecom.h>
+
+//#pragma tagging OFF // To disable CodeTest tagging
+
+_LIT( KImageOutputFile, "C:\\temp\\sanimimagetestoutput.txt" );
+_LIT( KToneOutputFile, "C:\\temp\\sanimtonetestoutput.txt" );
+_LIT( KFileNoExtension, "C:\\temp\\test" ); // There is no plug-in for this type
+_LIT( KFileTooLongExtension, "C:\\temp\\test.xxxxxxxxxxxxxxxx" ); // There is no plug-in for this type
+_LIT( KDummyImageFile1, "C:\\temp\\test.ti1" ); // There is no plug-in for this type
+_LIT( KDummyImageFile2, "C:\\temp\\test.ti2" ); // There is a plug-in for this type
+_LIT( KDummyImageFile3, "C:\\temp\\test.ti3" ); // There are multiple plug-ins for this type
+_LIT( KDummyImageFile4, "C:\\temp\\test.ti6" ); // Wildcard match
+_LIT( KDummyImageFile5, "C:\\temp\\test.ti5" ); // This plug-in returns error
+_LIT( KDummyImageFile6, "C:\\temp\\test.zzz.ti2" ); // There is a plug-in for this type
+_LIT( KDummyToneFile1, "C:\\temp\\test.tt1" ); // There is no plug-in for this type
+_LIT( KDummyToneFile2, "C:\\temp\\test.tt2" ); // There is a plug-in for this type
+_LIT( KDummyToneFile3, "C:\\temp\\test.tt3" ); // There are multiple plug-ins for this type
+_LIT( KDummyToneFile4, "C:\\temp\\test.tt6" ); // Wildcard match
+_LIT( KDummyToneFile5, "C:\\temp\\test.tt5" ); // This plug-in returns error
+
+const TUint32 KImagePlugin1ImplUid = 0x0AA01513;
+const TUint32 KImagePlugin2ImplUid = 0x0AA01515;
+const TUint32 KImagePlugin3ImplUid = 0x0AA01517;
+const TUint32 KImagePlugin4ImplUid = 0x0AA01519;
+const TUint32 KTonePlugin1ImplUid = 0x0AA0150B;
+const TUint32 KTonePlugin2ImplUid = 0x0AA0150D;
+const TUint32 KTonePlugin3ImplUid = 0x0AA0150F;
+const TUint32 KTonePlugin4ImplUid = 0x0AA01511;
+
+
+
+
+void CTSanimengine::Delete() 
+    {
+
+    }
+
+// -----------------------------------------------------------------------------
+// CTSanimengine::RunMethodL
+// Run specified method. Contains also table of test mothods and their names.
+// -----------------------------------------------------------------------------
+//
+TInt CTSanimengine::RunMethodL( 
+    CStifItemParser& aItem ) 
+    {
+
+    static TStifFunctionInfo const KFunctions[] =
+        {  
+        // Copy this line for every implemented function.
+        // First string is the function name used in TestScripter script file.
+        // Second is the actual implementation member function. 
+        ENTRY( "Example", CTSanimengine::ExampleL ),
+        ENTRY( "SetupEmpty", CTSanimengine::SetupEmptyL),
+        ENTRY( "SetupObj", CTSanimengine::SetupObjL),
+        ENTRY( "SetupImagePlugin", CTSanimengine::SetupImagePluginL),
+        ENTRY( "SetupTonePlugin", CTSanimengine::SetupTonePluginL),
+        ENTRY( "SetupBothPlugins", CTSanimengine::SetupBothPluginsL),
+        ENTRY( "SetupImagePluginFaster", CTSanimengine::SetupImagePluginFasterL),
+        ENTRY( "SetupTonePluginFaster", CTSanimengine::SetupTonePluginFasterL),
+        ENTRY( "SetupImagePluginReturnsError", CTSanimengine::SetupImagePluginReturnsErrorL),
+        ENTRY( "SetupTonePluginReturnsError", CTSanimengine::SetupTonePluginReturnsErrorL),
+        ENTRY( "Load", CTSanimengine::LoadL),      
+        ENTRY( "SetupImageLoaded", CTSanimengine::SetupImageLoadedL),
+        ENTRY( "SetupToneLoaded", CTSanimengine::SetupToneLoadedL),
+        ENTRY( "SetupBothLoaded", CTSanimengine::SetupBothLoadedL),
+        ENTRY( "SetupLoadFailed", CTSanimengine::SetupLoadFailedL),     
+        ENTRY( "SetupBothFinished", CTSanimengine::SetupBothFinishedL),
+        ENTRY( "Teardown", CTSanimengine::Teardown),
+        ENTRY( "SetupBothPluginsReturnError", CTSanimengine::SetupBothPluginsReturnErrorL),     
+        
+        ENTRY( "TestConstructor", CTSanimengine::TestConstructorL),
+        ENTRY( "TestConstructorNoMemory", CTSanimengine::TestConstructorNoMemoryL),
+        ENTRY( "TestExtensionlessFile", CTSanimengine::TestExtensionlessFileL), 
+        ENTRY( "TestTooLongExtension", CTSanimengine::TestTooLongExtensionL), 
+        ENTRY( "SetImagePropertiesUnknownExtension", CTSanimengine::SetImagePropertiesUnknownExtensionL), 
+        ENTRY( "SetImagePropertiesKnownExtension", CTSanimengine::SetImagePropertiesKnownExtensionL),
+        ENTRY( "SetImagePropertiesUnknownExtensionNoMemory", CTSanimengine::SetImagePropertiesUnknownExtensionNoMemoryL),
+        ENTRY( "SetImagePropertiesKnownExtensionNoMemory", CTSanimengine::SetImagePropertiesKnownExtensionNoMemoryL),
+        ENTRY( "SetImagePropertiesManyExtensions", CTSanimengine::SetImagePropertiesManyExtensionsL),    
+        ENTRY( "SetImagePropertiesManyExtensionsNoMemory", CTSanimengine::SetImagePropertiesManyExtensionsNoMemoryL),
+        ENTRY( "SetImagePropertiesManyPlugins", CTSanimengine::SetImagePropertiesManyPluginsL), 
+        ENTRY( "SetImagePropertiesManyPluginsNoMemory", CTSanimengine::SetImagePropertiesManyPluginsNoMemoryL), 
+        ENTRY( "SetImagePropertiesWildcardMatch", CTSanimengine::SetImagePropertiesWildcardMatchL), 
+        ENTRY( "SetImagePropertiesWildcardMatchNoMemory", CTSanimengine::SetImagePropertiesWildcardMatchNoMemoryL), 
+        ENTRY( "SetTonePropertiesUnknownExtension", CTSanimengine::SetTonePropertiesUnknownExtensionL), 
+        ENTRY( "SetTonePropertiesUnknownExtensionNoMemory", CTSanimengine::SetTonePropertiesUnknownExtensionNoMemoryL), 
+        ENTRY( "SetTonePropertiesKnownExtension", CTSanimengine::SetTonePropertiesKnownExtensionL), 
+        ENTRY( "SetTonePropertiesKnownExtensionNoMemory", CTSanimengine::SetTonePropertiesKnownExtensionNoMemoryL), 
+        ENTRY( "SetTonePropertiesManyPlugins", CTSanimengine::SetTonePropertiesManyPluginsL),         
+        ENTRY( "SetTonePropertiesManyPluginsNoMemory", CTSanimengine::SetTonePropertiesManyPluginsNoMemoryL), 
+        ENTRY( "SetTonePropertiesWildcardMatch", CTSanimengine::SetTonePropertiesWildcardMatchL), 
+        ENTRY( "SetTonePropertiesWildcardMatchNoMemory", CTSanimengine::SetTonePropertiesWildcardMatchNoMemoryL),
+        ENTRY( "TestLoadEmpty", CTSanimengine::TestLoadEmptyL), 
+        ENTRY( "TestCancelLoadEmpty", CTSanimengine::TestCancelLoadEmptyL), 
+        ENTRY( "TestLoadNoMemory", CTSanimengine::TestLoadNoMemoryL), 
+        ENTRY( "TestCancelLoad", CTSanimengine::TestCancelLoadL), 
+        ENTRY( "TestLoadImagePluginFaster", CTSanimengine::TestLoadImagePluginFasterL), 
+        ENTRY( "TestLoadTonePluginFaster", CTSanimengine::TestLoadTonePluginFasterL), 
+        ENTRY( "TestLoadImagePluginReturnsError", CTSanimengine::TestLoadImagePluginReturnsErrorL), 
+
+        ENTRY( "TestLoadTonePluginReturnsError", CTSanimengine::TestLoadTonePluginReturnsErrorL), 
+        ENTRY( "TestBackroundColour", CTSanimengine::TestBackroundColourL), 
+        ENTRY( "TestCancelNotActive", CTSanimengine::TestCancelNotActiveL), 
+        ENTRY( "TestLoadWhenActive", CTSanimengine::TestLoadWhenActiveL), 
+        ENTRY( "TestStartWhenActive", CTSanimengine::TestStartWhenActiveL), 
+        ENTRY( "TestStart", CTSanimengine::TestStartL),       
+        
+        ENTRY( "TestStartNotReady", CTSanimengine::TestStartNotReadyL), 
+        ENTRY( "TestLoadAgain", CTSanimengine::TestLoadAgainL), 
+        ENTRY( "TestStartAgain", CTSanimengine::TestStartAgainL), 
+        ENTRY( "TestLoadAndStartAnotherShow", CTSanimengine::TestLoadAndStartAnotherShowL), 
+        ENTRY( "TestLoadAndStartEmptyShowAfterAnotherShow", CTSanimengine::TestLoadAndStartEmptyShowAfterAnotherShowL), 
+        ENTRY( "TestStartWhenLoadFailed", CTSanimengine::TestStartWhenLoadFailedL),         
+                                             
+     
+     
+         
+         
+        //ADD NEW ENTRY HERE
+        // [test cases entries] - Do not remove
+
+        };
+
+    const TInt count = sizeof( KFunctions ) / 
+                        sizeof( TStifFunctionInfo );
+
+    return RunInternalL( KFunctions, count, aItem );
+
+    }
+
+// ======== MEMBER FUNCTIONS ========
+
+
+// ---------------------------------------------------------------------------
+// CTSanimengine::SetupEmptyL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimengine::SetupEmptyL()
+    {
+    User::LeaveIfError( iFs.Connect() );
+
+    RFile file;
+    file.Replace( iFs, KImageOutputFile, EFileShareAny | EFileWrite );
+    file.Replace( iFs, KToneOutputFile, EFileShareAny | EFileWrite );
+    file.Close();
+
+    iTestObj = NULL;
+    iWaiter = CTestWaiter::NewL();
+    iWaiter2 = CTestWaiter::NewL();
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSanimengine::SetupObjL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimengine::SetupObjL()
+    {
+    SetupEmptyL();
+    iTestObj = CSAnimEngine::NewL( iFs, iObserver );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSanimengine::SetupImagePluginL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimengine::SetupImagePluginL()
+    {
+    SetupObjL();
+    User::LeaveIfError(
+        iTestObj->SetImageProperties( KDummyImageFile2, EGray2, TSize( 0, 0 ), 0, ETrue, 1 ) );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSanimengine::SetupTonePluginL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimengine::SetupTonePluginL()
+    {
+    SetupObjL();
+    User::LeaveIfError( iTestObj->SetToneProperties( KDummyToneFile2, 4, 0, 1 ) );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSanimengine::SetupBothPluginsL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimengine::SetupBothPluginsL()
+    {
+    SetupObjL();
+    User::LeaveIfError(
+        iTestObj->SetImageProperties( KDummyImageFile2, EGray2, TSize( 0, 0 ), 0, ETrue, 1 ) );
+    User::LeaveIfError( iTestObj->SetToneProperties( KDummyToneFile2, 4, 0, 1 ) );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSanimengine::SetupImagePluginFasterL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimengine::SetupImagePluginFasterL()
+    {
+    SetupObjL();
+    User::LeaveIfError(
+        iTestObj->SetImageProperties( KDummyImageFile2, EGray2, TSize( 0, 0 ), 0, ETrue, 1 ) );
+    User::LeaveIfError( iTestObj->SetToneProperties( KDummyToneFile4, 4, 0, 1 ) );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSanimengine::SetupTonePluginFasterL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimengine::SetupTonePluginFasterL()
+    {
+    SetupObjL();
+    User::LeaveIfError(
+        iTestObj->SetImageProperties( KDummyImageFile4, EGray2, TSize( 0, 0 ), 0, ETrue, 1 ) );
+    User::LeaveIfError( iTestObj->SetToneProperties( KDummyToneFile2, 4, 0, 1 ) );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSanimengine::SetupImagePluginReturnsErrorL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimengine::SetupImagePluginReturnsErrorL()
+    {
+    SetupObjL();
+    User::LeaveIfError(
+        iTestObj->SetImageProperties( KDummyImageFile5, EGray2, TSize( 0, 0 ), 0, ETrue, 1 ) );
+    User::LeaveIfError( iTestObj->SetToneProperties( KDummyToneFile2, 4, 0, 1 ) );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSanimengine::SetupTonePluginReturnsErrorL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimengine::SetupTonePluginReturnsErrorL()
+    {
+    SetupObjL();
+    User::LeaveIfError(
+        iTestObj->SetImageProperties( KDummyImageFile2, EGray2, TSize( 0, 0 ), 0, ETrue, 1 ) );
+    User::LeaveIfError( iTestObj->SetToneProperties( KDummyToneFile5, 4, 0, 1 ) );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSanimengine::SetupBothPluginsReturnErrorL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimengine::SetupBothPluginsReturnErrorL()
+    {
+    SetupObjL();
+    User::LeaveIfError(
+        iTestObj->SetImageProperties( KDummyImageFile5, EGray2, TSize( 0, 0 ), 0, ETrue, 1 ) );
+    User::LeaveIfError( iTestObj->SetToneProperties( KDummyToneFile5, 4, 0, 1 ) );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSanimengine::LoadL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimengine::LoadL()
+    {
+    iTestObj->Load( iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+    User::LeaveIfError( iWaiter->iStatus.Int() );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSanimengine::SetupImageLoadedL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimengine::SetupImageLoadedL()
+    {
+    SetupImagePluginL();
+    LoadL();
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSanimengine::SetupToneLoadedL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimengine::SetupToneLoadedL()
+    {
+    SetupTonePluginL();
+    LoadL();
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSanimengine::SetupBothLoadedL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimengine::SetupBothLoadedL()
+    {
+    SetupBothPluginsL();
+    LoadL();
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSanimengine::SetupLoadFailedL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimengine::SetupLoadFailedL()
+    {
+    SetupBothPluginsReturnErrorL();
+    iTestObj->Load( iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSanimengine::SetupBothFinishedL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimengine::SetupBothFinishedL()
+    {
+    SetupBothLoadedL();
+    iTestObj->Start( iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+    User::LeaveIfError( iWaiter->iStatus.Int() );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSanimengine::Teardown
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimengine::Teardown()
+    {
+    delete iWaiter2;
+    iWaiter2 = NULL;
+    delete iWaiter;
+    iWaiter = NULL;
+    delete iTestObj;
+    iTestObj = NULL;
+    iFs.Close();
+
+    REComSession::FinalClose();
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSanimengine::CheckNoImagePluginOutputL
+//
+// ---------------------------------------------------------------------------
+//
+TBool CTSanimengine::CheckNoImagePluginOutputL()
+    {
+    RFile file;
+    CleanupClosePushL( file );
+    User::LeaveIfError(
+        file.Open( iFs, KImageOutputFile, EFileShareAny | EFileRead ) );
+
+    TFileText reader;
+    reader.Set( file );
+    TBuf<16> buf;
+    TBool retVal = ( reader.Read( buf ) == KErrEof );
+
+    CleanupStack::PopAndDestroy( &file );
+    return retVal;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSanimengine::CheckImagePluginOutputL
+//
+// ---------------------------------------------------------------------------
+//
+TBool CTSanimengine::CheckImagePluginOutputL(
+    const TUint32 aPluginUid,
+    const TDesC& aFileToLoad,
+    const TInt aDisplayMode,
+    const TSize& aSize,
+    const TInt aFrameDelay )
+    {
+    RFile file;
+    CleanupClosePushL( file );
+    User::LeaveIfError(
+        file.Open( iFs, KImageOutputFile, EFileShareAny | EFileRead ) );
+
+    TFileText reader;
+    reader.Set( file );
+
+    TBool retVal = ETrue;
+    TBuf<256> buf;
+    TLex16 lex;
+
+    User::LeaveIfError( reader.Read( buf ) );
+    TUint32 uidFromFile;
+    lex.Assign( buf );
+    User::LeaveIfError( lex.Val( uidFromFile, EHex ) );
+    if ( uidFromFile != aPluginUid )
+        {
+      //  EUNIT_PRINT( _L( "Plugin UID mismatch: expected 0x%08x, got 0x%08x" ), aPluginUid, uidFromFile );
+        retVal = EFalse;
+        }
+
+    User::LeaveIfError( reader.Read( buf ) );
+    if ( buf != aFileToLoad )
+        {
+      //  EUNIT_PRINT( _L( "File name mismatch: expected %S, got %S" ), &aFileToLoad, &buf );
+        retVal = EFalse;
+        }
+
+    User::LeaveIfError( reader.Read( buf ) );
+    TInt modeFromFile;
+    lex.Assign( buf );
+    User::LeaveIfError( lex.Val( modeFromFile ) );
+    if ( modeFromFile != aDisplayMode )
+        {
+     //   EUNIT_PRINT( _L( "Display mode mismatch: expected %d, got %d" ), aDisplayMode, modeFromFile );
+        retVal = EFalse;
+        }
+
+    User::LeaveIfError( reader.Read( buf ) );
+    TInt widthFromFile;
+    lex.Assign( buf );
+    User::LeaveIfError( lex.Val( widthFromFile ) );
+    User::LeaveIfError( reader.Read( buf ) );
+    TInt heightFromFile;
+    lex.Assign( buf );
+    User::LeaveIfError( lex.Val( heightFromFile ) );
+    if ( widthFromFile != aSize.iWidth || heightFromFile != aSize.iHeight )
+        {
+      //  EUNIT_PRINT( _L( "Size mismatch: expected (%d,%d), got (%d,%d)" ),
+     //       aSize.iWidth, aSize.iHeight, widthFromFile, heightFromFile );
+        retVal = EFalse;
+        }
+
+    User::LeaveIfError( reader.Read( buf ) );
+    TUint delayFromFile;
+    lex.Assign( buf );
+    User::LeaveIfError( lex.Val( delayFromFile ) );
+    if ( delayFromFile != aFrameDelay )
+        {
+   //     EUNIT_PRINT( _L( "Frame delay mismatch: expected %d, got %d" ), aFrameDelay, delayFromFile );
+        retVal = EFalse;
+        }
+
+    CleanupStack::PopAndDestroy( &file );
+    return retVal;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSanimengine::CheckNoTonePluginOutputL
+//
+// ---------------------------------------------------------------------------
+//
+TBool CTSanimengine::CheckNoTonePluginOutputL()
+    {
+    RFile file;
+    CleanupClosePushL( file );
+    User::LeaveIfError(
+        file.Open( iFs, KToneOutputFile, EFileShareAny | EFileRead ) );
+
+    TFileText reader;
+    reader.Set( file );
+    TBuf<16> buf;
+    TBool retVal = ( reader.Read( buf ) == KErrEof );
+
+    CleanupStack::PopAndDestroy( &file );
+    return retVal;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSanimengine::CheckTonePluginOutputL
+//
+// ---------------------------------------------------------------------------
+//
+TBool CTSanimengine::CheckTonePluginOutputL(
+    const TUint32 aPluginUid,
+    const TDesC& aFileToLoad,
+    const TInt aVolume,
+    const TInt64& aVolumeRamp )
+    {
+    RFile file;
+    CleanupClosePushL( file );
+    User::LeaveIfError(
+        file.Open( iFs, KToneOutputFile, EFileShareAny | EFileRead ) );
+
+    TFileText reader;
+    reader.Set( file );
+
+    TBool retVal = ETrue;
+    TBuf<256> buf;
+    TLex16 lex;
+
+    User::LeaveIfError( reader.Read( buf ) );
+    TUint32 uidFromFile;
+    lex.Assign( buf );
+    User::LeaveIfError( lex.Val( uidFromFile, EHex ) );
+    if ( uidFromFile != aPluginUid )
+        {
+   //     EUNIT_PRINT(
+     //       _L( "Plugin UID mismatch: expected 0x%08x, got 0x%08x" ), aPluginUid, uidFromFile );
+        retVal = EFalse;
+        }
+
+    User::LeaveIfError( reader.Read( buf ) );
+    if ( buf != aFileToLoad )
+        {
+  //      EUNIT_PRINT( _L( "File name mismatch: expected %S, got %S" ), &aFileToLoad, &buf );
+        retVal = EFalse;
+        }
+
+    User::LeaveIfError( reader.Read( buf ) );
+    TInt volumeFromFile;
+    lex.Assign( buf );
+    User::LeaveIfError( lex.Val( volumeFromFile ) );
+    if ( volumeFromFile != aVolume )
+        {
+  //      EUNIT_PRINT( _L( "Volume mismatch: expected %d, got %d" ), aVolume, volumeFromFile );
+        retVal = EFalse;
+        }
+
+    User::LeaveIfError( reader.Read( buf ) );
+    TInt64 volumeRampFromFile;
+    lex.Assign( buf );
+    User::LeaveIfError( lex.Val( volumeRampFromFile ) );
+    if ( volumeRampFromFile != aVolumeRamp )
+        {
+   //     EUNIT_PRINT(
+   //         _L( "Volume ramp mismatch: expected %d, got %d" ), aVolumeRamp, volumeRampFromFile );
+        retVal = EFalse;
+        }
+
+    CleanupStack::PopAndDestroy( &file );
+    return retVal;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSanimengine::TestConstructorL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimengine::TestConstructorL()
+    {
+    iTestObj = CSAnimEngine::NewL( iFs, iObserver );
+    delete iTestObj;
+    iTestObj = NULL;
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSanimengine::TestConstructorNoMemoryL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimengine::TestConstructorNoMemoryL()
+    {
+    iTestObj = CSAnimEngine::NewL( iFs, iObserver );
+   // EUNIT_ASSERT( !iTestObj );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSanimengine::TestExtensionlessFileL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimengine::TestExtensionlessFileL()
+    {
+    TInt errorCode =
+        iTestObj->SetImageProperties( KFileNoExtension, EGray2, TSize( 0, 0 ), 0, ETrue, 1 );
+    if (errorCode == KErrNotFound )
+        return KErrNone;
+    
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSanimengine::TestTooLongExtensionL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimengine::TestTooLongExtensionL()
+    {
+    TInt errorCode = iTestObj->SetToneProperties( KFileTooLongExtension, 4, 0, 1 );
+    if ( errorCode == KErrNotFound )
+        return KErrNone;
+    
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSanimengine::SetImagePropertiesUnknownExtensionL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimengine::SetImagePropertiesUnknownExtensionL()
+    {
+    TInt errorCode =
+        iTestObj->SetImageProperties( KDummyImageFile1, EGray2, TSize( 0, 0 ), 0, ETrue, 1 );
+    if ( errorCode == KErrNotFound )
+        return KErrNone;
+    
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSanimengine::SetImagePropertiesUnknownExtensionNoMemoryL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimengine::SetImagePropertiesUnknownExtensionNoMemoryL()
+    {
+    TInt errorCode =
+        iTestObj->SetImageProperties( KDummyImageFile1, EGray2, TSize( 0, 0 ), 0, ETrue, 1 );
+     if (errorCode == KErrNoMemory  )
+         return KErrNone;
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSanimengine::SetImagePropertiesKnownExtensionL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimengine::SetImagePropertiesKnownExtensionL()
+    {
+    TInt errorCode =
+        iTestObj->SetImageProperties( KDummyImageFile2, EGray2, TSize( 0, 0 ), 0, ETrue, 1 );
+ //   EUNIT_ASSERT_EQUALS( errorCode, KErrNone );
+
+    iTestObj->Load( iWaiter->iStatus ); // Mock plug-in writes output file when Load is called.
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+
+    if ( CheckImagePluginOutputL(KImagePlugin1ImplUid, KDummyImageFile2, EGray2, TSize( 0, 0 ), 0 ) == KErrNone)
+    return KErrNone;
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSanimengine::SetImagePropertiesKnownExtensionNoMemoryL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimengine::SetImagePropertiesKnownExtensionNoMemoryL()
+    {
+    TInt errorCode =
+        iTestObj->SetImageProperties( KDummyImageFile2, EGray2, TSize( 0, 0 ), 0, ETrue, 1 );
+    if (errorCode == KErrNoMemory )
+        return KErrNone;
+    
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimEngineTestSuite::SetImagePropertiesManyPluginsL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimengine::SetImagePropertiesManyPluginsL()
+    {
+    TInt errorCode =
+        iTestObj->SetImageProperties( KDummyImageFile3, EGray2, TSize( 100, 200 ), 0, ETrue, 1 );
+  //  EUNIT_ASSERT_EQUALS( errorCode, KErrNone );
+
+    iTestObj->Load( iWaiter->iStatus ); // Mock plug-in writes output file when Load is called.
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+
+    // Either plug-in 2 or 3 is acceptable.
+  /*
+    EUNIT_ASSERT(
+        CheckImagePluginOutputL(
+            KImagePlugin2ImplUid, KDummyImageFile3, EGray2, TSize( 100, 200 ), 0 ) ||
+        CheckImagePluginOutputL(
+            KImagePlugin3ImplUid, KDummyImageFile3, EGray2, TSize( 100, 200 ), 0 ) );
+   */
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSanimengine::SetImagePropertiesManyPluginsNoMemoryL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimengine::SetImagePropertiesManyPluginsNoMemoryL()
+    {
+    TInt errorCode =
+        iTestObj->SetImageProperties( KDummyImageFile3, EGray2, TSize( 0, 0 ), 0, ETrue, 1 );
+  if ( errorCode== KErrNoMemory )
+      return KErrNone;
+    return errorCode;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSanimengine::SetImagePropertiesWildcardMatchL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimengine::SetImagePropertiesWildcardMatchL()
+    {
+    TInt errorCode =
+        iTestObj->SetImageProperties( KDummyImageFile4, EGray2, TSize( 0, 0 ), 135000, ETrue, 1 );
+   // EUNIT_ASSERT_EQUALS( errorCode, KErrNone );
+
+    iTestObj->Load( iWaiter->iStatus ); // Mock plug-in writes output file when Load is called.
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+
+  //  EUNIT_ASSERT( CheckImagePluginOutputL(
+    //    KImagePlugin4ImplUid, KDummyImageFile4, EGray2, TSize( 0, 0 ), 135000 ) );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSanimengine::SetImagePropertiesWildcardMatchNoMemoryL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimengine::SetImagePropertiesWildcardMatchNoMemoryL()
+    {
+    TInt errorCode =
+        iTestObj->SetImageProperties( KDummyImageFile4, EGray2, TSize( 0, 0 ), 0, ETrue, 1 );
+   if ( errorCode == KErrNoMemory )
+    return KErrNone;
+   
+   return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSanimengine::SetImagePropertiesManyExtensionsL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimengine::SetImagePropertiesManyExtensionsL()
+    {
+    TInt errorCode =
+        iTestObj->SetImageProperties( KDummyImageFile6, EColor16M, TSize( 0, 0 ), 0, ETrue, 1 );
+   // EUNIT_ASSERT_EQUALS( errorCode, KErrNone );
+
+    iTestObj->Load( iWaiter->iStatus ); // Mock plug-in writes output file when Load is called.
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+
+  if ( CheckImagePluginOutputL(KImagePlugin1ImplUid, KDummyImageFile6, EColor16M, TSize( 0, 0 ), 0 ) )
+    return KErrNone;
+  return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimEngineTestSuite::SetImagePropertiesManyExtensionsNoMemoryL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimengine::SetImagePropertiesManyExtensionsNoMemoryL()
+    {
+    TInt errorCode =
+        iTestObj->SetImageProperties( KDummyImageFile6, EGray2, TSize( 0, 0 ), 0, ETrue, 1 );
+   if ( errorCode == KErrNoMemory )
+       return KErrNone;
+   
+    return errorCode;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSanimengine::SetTonePropertiesUnknownExtensionL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimengine::SetTonePropertiesUnknownExtensionL()
+    {
+    TInt errorCode = iTestObj->SetToneProperties( KDummyToneFile1, 4, 0, 1 );
+    if ( errorCode == KErrNotFound )
+        return KErrNone;
+    
+    return errorCode;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSanimengine::SetTonePropertiesUnknownExtensionNoMemoryL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimengine::SetTonePropertiesUnknownExtensionNoMemoryL()
+    {
+    TInt errorCode = iTestObj->SetToneProperties( KDummyToneFile1, 4, 0, 1 );
+    if ( errorCode == KErrNoMemory )
+        return KErrNone;
+    
+    return errorCode;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSanimengine::SetTonePropertiesKnownExtensionL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimengine::SetTonePropertiesKnownExtensionL()
+    {
+    TInt errorCode = iTestObj->SetToneProperties( KDummyToneFile2, 4, 0, 1 );
+  //  EUNIT_ASSERT_EQUALS( errorCode, KErrNone );
+
+    iTestObj->Load( iWaiter->iStatus ); // Mock plug-in writes output file when Load is called.
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+
+  //  EUNIT_ASSERT( CheckTonePluginOutputL(
+   //     KTonePlugin1ImplUid, KDummyToneFile2, 4, 0 ) );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSanimengine::SetTonePropertiesKnownExtensionNoMemoryL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimengine::SetTonePropertiesKnownExtensionNoMemoryL()
+    {
+    TInt errorCode = iTestObj->SetToneProperties( KDummyToneFile2, 4, 0, 1 );
+    if ( errorCode == KErrNoMemory )
+        return KErrNone;
+    return errorCode;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSanimengine::SetTonePropertiesManyPluginsL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimengine::SetTonePropertiesManyPluginsL()
+    {
+    TInt errorCode = iTestObj->SetToneProperties( KDummyToneFile3, 2, 300000, 1 );
+   // EUNIT_ASSERT_EQUALS( errorCode, KErrNone );
+
+    iTestObj->Load( iWaiter->iStatus ); // Mock plug-in writes output file when Load is called.
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+
+    // Either plug-in 2 or 3 is acceptable.
+  if (  CheckTonePluginOutputL(KTonePlugin2ImplUid, KDummyToneFile3, 2, 300000 ) ||
+        CheckTonePluginOutputL(KTonePlugin3ImplUid, KDummyToneFile3, 2, 300000 ) )
+    return KErrNone;
+  
+  return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSanimengine::SetTonePropertiesManyPluginsNoMemoryL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimengine::SetTonePropertiesManyPluginsNoMemoryL()
+    {
+    TInt errorCode = iTestObj->SetToneProperties( KDummyToneFile3, 4, 0, 1 );
+    if ( errorCode == KErrNoMemory )
+        return KErrNone;
+    
+    return errorCode;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSanimengine::SetTonePropertiesWildcardMatchL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimengine::SetTonePropertiesWildcardMatchL()
+    {
+    TInt errorCode = iTestObj->SetToneProperties( KDummyToneFile4, 0, 1000000, 1 );
+  //  EUNIT_ASSERT_EQUALS( errorCode, KErrNone );
+
+    iTestObj->Load( iWaiter->iStatus ); // Mock plug-in writes output file when Load is called.
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+
+  //  EUNIT_ASSERT( CheckTonePluginOutputL(
+  //      KTonePlugin4ImplUid, KDummyToneFile4, 0, 1000000 ) );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSanimengine::SetTonePropertiesWildcardMatchNoMemoryL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimengine::SetTonePropertiesWildcardMatchNoMemoryL()
+    {
+    TInt errorCode = iTestObj->SetToneProperties( KDummyToneFile4, 4, 0, 1 );
+    if (errorCode == KErrNoMemory )
+        return KErrNone;
+    return errorCode;
+    }
+
+
+
+// ---------------------------------------------------------------------------
+// CTSanimengine::TestLoadEmptyL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimengine::TestLoadEmptyL()
+    {
+    iTestObj->Load( iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+  //  EUNIT_ASSERT_EQUALS( iWaiter->iStatus.Int(), KErrNone );
+
+    CheckNoImagePluginOutputL();
+    CheckNoTonePluginOutputL();
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSanimengine::TestCancelLoadEmptyL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimengine::TestCancelLoadEmptyL()
+    {
+    iTestObj->Load( iWaiter->iStatus );
+    iWaiter->Activate();
+    iTestObj->Cancel();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+  //  EUNIT_ASSERT_EQUALS( iWaiter->iStatus.Int(), KErrNone );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSanimengine::TestLoadNoMemoryL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimengine::TestLoadNoMemoryL()
+    {
+    iTestObj->Load( iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+   // EUNIT_ASSERT_EQUALS( iWaiter->iStatus.Int(), KErrNone ); // Mock plug-in does not reserve memory in Load
+    return KErrNone;
+    }
+
+
+
+// ---------------------------------------------------------------------------
+// CTSanimengine::TestCancelLoadL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimengine::TestCancelLoadL()
+    {
+    iTestObj->Load( iWaiter->iStatus );
+    iWaiter->Activate();
+    iTestObj->Cancel();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+    if ( iWaiter->iStatus.Int()== KErrCancel )
+        return KErrNone;
+    
+    return KErrCancel;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSanimengine::TestLoadImagePluginFasterL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimengine::TestLoadImagePluginFasterL()
+    {
+    iTestObj->Load( iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+    //EUNIT_ASSERT_EQUALS( iWaiter->iStatus.Int(), KErrNone );
+
+    //EUNIT_ASSERT( CheckImagePluginOutputL(
+     //   KImagePlugin1ImplUid, KDummyImageFile2, EGray2, TSize( 0, 0 ), 0 ) );
+
+  //  EUNIT_ASSERT( CheckTonePluginOutputL(
+   //     KTonePlugin4ImplUid, KDummyToneFile4, 4, 0 ) );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSanimengine::TestLoadTonePluginFasterL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimengine::TestLoadTonePluginFasterL()
+    {
+    iTestObj->Load( iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+  //  EUNIT_ASSERT_EQUALS( iWaiter->iStatus.Int(), KErrNone );
+
+  //  EUNIT_ASSERT( CheckImagePluginOutputL(
+   //     KImagePlugin4ImplUid, KDummyImageFile4, EGray2, TSize( 0, 0 ), 0 ) );
+
+   // EUNIT_ASSERT( CheckTonePluginOutputL(
+    //    KTonePlugin1ImplUid, KDummyToneFile2, 4, 0 ) );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSanimengine::TestLoadImagePluginReturnsErrorL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimengine::TestLoadImagePluginReturnsErrorL()
+    {
+    iTestObj->Load( iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+  //  EUNIT_ASSERT_EQUALS( iWaiter->iStatus.Int(), KErrGeneral );
+
+   // EUNIT_ASSERT( CheckImagePluginOutputL(
+    //    KImagePlugin3ImplUid, KDummyImageFile5, EGray2, TSize( 0, 0 ), 0 ) );
+
+   // EUNIT_ASSERT( CheckTonePluginOutputL(
+    //    KTonePlugin1ImplUid, KDummyToneFile2, 4, 0 ) );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSanimengine::TestLoadTonePluginReturnsErrorL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimengine::TestLoadTonePluginReturnsErrorL()
+    {
+    iTestObj->Load( iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+   // EUNIT_ASSERT_EQUALS( iWaiter->iStatus.Int(), KErrGeneral );
+
+   // EUNIT_ASSERT( CheckImagePluginOutputL(
+    //    KImagePlugin1ImplUid, KDummyImageFile2, EGray2, TSize( 0, 0 ), 0 ) );
+
+  //  EUNIT_ASSERT( CheckTonePluginOutputL(
+    //    KTonePlugin3ImplUid, KDummyToneFile5, 4, 0 ) );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSanimengine::TestBackroundColourL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimengine::TestBackroundColourL()
+    {
+  //  EUNIT_ASSERT_EQUALS( iTestObj->BackroundColour(), TRgb() );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimEngineTestSuite::TestCancelNotActiveL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimengine::TestCancelNotActiveL()
+    {
+    iTestObj->Cancel();
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimEngineTestSuite::TestLoadWhenActiveL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimengine::TestLoadWhenActiveL()
+    {
+    iTestObj->Load( iWaiter->iStatus );
+    iWaiter->Activate();
+    iTestObj->Load( iWaiter2->iStatus );
+    iWaiter2->Activate();
+    CActiveScheduler::Start(); // Waiter2 stops it when request completes.
+  //  EUNIT_ASSERT_EQUALS( iWaiter2->iStatus.Int(), KErrNotReady );
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+  //  EUNIT_ASSERT_EQUALS( iWaiter->iStatus.Int(), KErrNone );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimEngineTestSuite::TestStartWhenActiveL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimengine::TestStartWhenActiveL()
+    {
+    iTestObj->Load( iWaiter->iStatus );
+    iWaiter->Activate();
+    iTestObj->Start( iWaiter2->iStatus );
+    iWaiter2->Activate();
+    CActiveScheduler::Start(); // Waiter2 stops it when request completes.
+  //  EUNIT_ASSERT_EQUALS( iWaiter2->iStatus.Int(), KErrNotReady );
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+  //  EUNIT_ASSERT_EQUALS( iWaiter->iStatus.Int(), KErrNone );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimEngineTestSuite::TestStartL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimengine::TestStartL()
+    {
+    iTestObj->Start( iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+   // EUNIT_ASSERT_EQUALS( iWaiter->iStatus.Int(), KErrNone );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimEngineTestSuite::TestStartNotReadyL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimengine::TestStartNotReadyL()
+    {
+    iTestObj->Start( iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+    if ( iWaiter->iStatus.Int() == KErrNotReady )
+        return KErrNone;
+    return KErrNotReady;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimEngineTestSuite::TestLoadAgainL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimengine::TestLoadAgainL()
+    {
+    iTestObj->Load( iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+   // EUNIT_ASSERT_EQUALS( iWaiter->iStatus.Int(), KErrNone );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSanimengine::TestStartAgainL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimengine::TestStartAgainL()
+    {
+    iTestObj->Start( iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+  //  EUNIT_ASSERT_EQUALS( iWaiter->iStatus.Int(), KErrNone );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSanimengine::TestLoadAndStartAnotherShowL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimengine::TestLoadAndStartAnotherShowL()
+    {
+    TInt errorCode =
+        iTestObj->SetImageProperties( KDummyImageFile3, EGray2, TSize( 0, 0 ), 0, ETrue, 1 );
+  //  EUNIT_ASSERT_EQUALS( errorCode, KErrNone );
+    errorCode = iTestObj->SetToneProperties( KDummyToneFile3, 4, 0, 1 );
+  //  EUNIT_ASSERT_EQUALS( errorCode, KErrNone );
+
+    iTestObj->Load( iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+ //   EUNIT_ASSERT_EQUALS( iWaiter->iStatus.Int(), KErrNone );
+
+    iTestObj->Start( iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+  //  EUNIT_ASSERT_EQUALS( iWaiter->iStatus.Int(), KErrNone );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSanimengine::TestLoadAndStartEmptyShowAfterAnotherShowL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimengine::TestLoadAndStartEmptyShowAfterAnotherShowL()
+    {
+    TInt errorCode = iTestObj->SetImageProperties( KNullDesC, EGray2, TSize( 0, 0 ), 0, ETrue, 1 );
+   // EUNIT_ASSERT_EQUALS( errorCode, KErrNone );
+    errorCode = iTestObj->SetToneProperties( KNullDesC, 4, 0, 1 );
+  //  EUNIT_ASSERT_EQUALS( errorCode, KErrNone );
+
+    iTestObj->Load( iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+  //  EUNIT_ASSERT_EQUALS( iWaiter->iStatus.Int(), KErrNone );
+
+    iTestObj->Start( iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+   // EUNIT_ASSERT_EQUALS( iWaiter->iStatus.Int(), KErrNone );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSanimengine::TestStartWhenLoadFailedL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimengine::TestStartWhenLoadFailedL()
+    {
+    iTestObj->Start( iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+  //  EUNIT_ASSERT_EQUALS( iWaiter->iStatus.Int(), KErrNotReady );
+    return KErrNone;
+    }
+
+
+// -----------------------------------------------------------------------------
+// CTSanimengine::ExampleL
+// Example test method function.
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TInt CTSanimengine::ExampleL( CStifItemParser& aItem )
+    {
+
+    // Print to UI
+    _LIT( KTSanimengine, "TSanimengine" );
+    _LIT( KExample, "In Example" );
+    TestModuleIf().Printf( 0, KTSanimengine, KExample );
+    // Print to log file
+    iLog->Log( KExample );
+
+    TInt i = 0;
+    TPtrC string;
+    _LIT( KParam, "Param[%i]: %S" );
+    while ( aItem.GetNextString ( string ) == KErrNone )
+        {
+        TestModuleIf().Printf( i, KTSanimengine, 
+                                KParam, i, &string );
+        i++;
+        }
+
+    return KErrNone;
+
+    }
+
+// ---------------------------------------
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/TSanimengine/src/testwaiter.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,92 @@
+/*
+* 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 the License "Symbian Foundation License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Implementation of CTestWaiter class
+*
+*/
+
+
+#include "testwaiter.h"
+
+#pragma tagging OFF // To disable CodeTest tagging
+
+// ======== MEMBER FUNCTIONS ========
+
+// ---------------------------------------------------------------------------
+// CTestWaiter::NewL
+//
+// ---------------------------------------------------------------------------
+//
+CTestWaiter* CTestWaiter::NewL()
+    {
+    CTestWaiter* self = new( ELeave ) CTestWaiter;
+    return self;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTestWaiter::~CTestWaiter
+//
+// ---------------------------------------------------------------------------
+//
+CTestWaiter::~CTestWaiter()
+    {
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTestWaiter::Activate
+//
+// ---------------------------------------------------------------------------
+//
+void CTestWaiter::Activate()
+    {
+    __ASSERT_ALWAYS( !IsActive(), User::Invariant() );
+
+    SetActive();
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTestWaiter::CTestWaiter
+//
+// ---------------------------------------------------------------------------
+//
+CTestWaiter::CTestWaiter()
+  : CActive( EPriorityStandard )
+    {
+    CActiveScheduler::Add( this );
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTestWaiter::DoCancel
+//
+// ---------------------------------------------------------------------------
+//
+void CTestWaiter::DoCancel()
+    {
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTestWaiter::RunL
+//
+// ---------------------------------------------------------------------------
+//
+void CTestWaiter::RunL()
+    {
+    CActiveScheduler::Stop();
+    }
+
+#pragma tagging ON // To stop disabling CodeTest tagging
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/TSanimmif/.cproject	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?fileVersion 4.0.0?>
+
+<cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
+<storageModule buildFromInf="true" buildingTestComps="true" cleanLevel="0" concurrentBuildJobs="4" defaultMMPChangedAction="0" extraSBSv2Args="" infBuildComponents="" infFileLocation="group\bld.inf" macrosFile="" makeEngineToUse="make" manageDependencies="true" moduleId="com.nokia.carbide.cdt.builder.carbideCPPBuilder" overrideMakeEngine="false" overrideWorkspaceSettings="false" promptForMMPChangedAction="true" useConcurrentBuilding="true" useDebugMode="false" useIncrementalBuilder="false" useKeepGoing="false" useMMPMacros="true"/>
+<storageModule moduleId="org.eclipse.cdt.core.settings">
+<cconfiguration id="Emulator Debug (WINSCW) [SDK]">
+<storageModule buildSystemId="com.nokia.carbide.cdt.builder.CarbideConfigurationDataProvider" id="Emulator Debug (WINSCW) [SDK]" moduleId="org.eclipse.cdt.core.settings" name="Emulator Debug (WINSCW) [SDK]">
+<externalSettings/>
+<extensions>
+<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="org.eclipse.cdt.core.PE" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="com.nokia.cdt.debug.cw.symbian.SymbianE32" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MakmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.CarbideMakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.SBSv2ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MWLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RCOMPErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MWCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MakeDefErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+</extensions>
+</storageModule>
+<storageModule moduleId="CarbideConfigurationDataProvider">
+<ENV_VAR_DATA_ID/>
+<ARGUMENTS_DATA_ID ABLDFREEZEARGSSTORAGE="-r"/>
+<ROM_BUILDER_DATA_ID ROMBUILDWORKINGDIRECTORYSTORAGE="Z:\epoc32\rom\"/>
+</storageModule>
+<storageModule filesCache="Z:\startupservices\startupanimation\internal\test\TSanimmif\group\TSanimmif.mmp;Z:\epoc32\include\platform_paths.hrh;Z:\startupservices\startupanimation\internal\test\TSanimmif\group\bld.inf;" includesCache="Z:/startupservices/startupanimation/internal/test/TSanimmif/inc[LOCAL];Z:/startupservices/startupanimation/internal/test/inc[LOCAL];Z:/inc[LOCAL];Z:/startupservices/startupanimation/sanimengine/inc[LOCAL];Z:/epoc32/include;Z:/epoc32/include/platform;Z:/epoc32/include/platform/loc;Z:/epoc32/include/platform/loc/sc;Z:/epoc32/include/oem;" macrosCache="__DLL__;_UNICODE;__SYMBIAN32__;__SUPPORT_CPP_EXCEPTIONS__;__CW32__;__WINS__;__WINSCW__;_DEBUG;" moduleId="configDataCache" sourcesCache="/TSanimmif/inc;/TSanimmif/src;/startupservices/startupanimation/internal/test/inc;/startupservices/startupanimation/sanimengine/inc;" timestampCache="1283156920398" useMmpMacrosCache="true"/>
+<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+</cconfiguration>
+</storageModule>
+</cproject>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/TSanimmif/.project	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>TSanimmif</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>com.nokia.carbide.cdt.builder.carbideCPPBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.cdt.core.cnature</nature>
+		<nature>org.eclipse.cdt.core.ccnature</nature>
+		<nature>com.nokia.carbide.cdt.builder.carbideCPPBuilderNature</nature>
+		<nature>com.nokia.carbide.cdt.builder.carbideSBSv2BuilderNature</nature>
+	</natures>
+</projectDescription>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/TSanimmif/Bmarm/TSanimmifU.DEF	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,3 @@
+EXPORTS
+	LibEntryL__FR13CTestModuleIf @ 1 NONAME R3UNUSED ; LibEntryL(CTestModuleIf &)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/TSanimmif/Bwins/TSanimmifu.def	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,3 @@
+EXPORTS
+	?LibEntryL@@YAPAVCScriptBase@@AAVCTestModuleIf@@@Z @ 1 NONAME ; class CScriptBase * __cdecl LibEntryL(class CTestModuleIf &)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/TSanimmif/conf/UI_TSanimmif.cfg	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,292 @@
+[Test]
+title Example
+create TSanimmif AnimMifPlugin
+AnimMifPlugin Example pa ra me ters
+delete AnimMifPlugin
+[Endtest] 
+
+
+// ---------------------------------------------------------------------------
+// Test table
+//
+// ---------------------------------------------------------------------------
+//
+
+[Test]
+title TestConstructor
+create TSanimmif AnimMifPlugin
+AnimMifPlugin SetupEmpty
+AnimMifPlugin TestConstructor
+AnimMifPlugin Teardown
+delete AnimMifPlugin
+[Endtest] 
+
+[Test]
+title TestConstructorNoMemory
+create TSanimmif AnimMifPlugin
+AnimMifPlugin SetupEmpty
+AnimMifPlugin TestConstructorNoMemory
+AnimMifPlugin Teardown
+delete AnimMifPlugin
+[Endtest] 
+
+[Test]
+title TestUnknownFile
+create TSanimmif AnimMifPlugin
+AnimMifPlugin SetupObj
+AnimMifPlugin TestUnknownFile
+AnimMifPlugin Teardown
+delete AnimMifPlugin
+[Endtest] 
+
+[Test]
+title TestCorruptFile
+create TSanimmif AnimMifPlugin
+AnimMifPlugin SetupObj
+AnimMifPlugin TestCorruptFile
+AnimMifPlugin Teardown
+delete AnimMifPlugin
+[Endtest] 
+
+[Test]
+title TestNoFramesFile
+create TSanimmif AnimMifPlugin
+AnimMifPlugin SetupObj
+AnimMifPlugin TestNoFramesFile
+AnimMifPlugin Teardown
+delete AnimMifPlugin
+[Endtest] 
+
+[Test]
+title TestLoadStillImage
+create TSanimmif AnimMifPlugin
+AnimMifPlugin SetupObj
+AnimMifPlugin TestLoadStillImage
+AnimMifPlugin Teardown
+delete AnimMifPlugin
+[Endtest] 
+
+
+[Test]
+title TestLoadScaledAnimation
+create TSanimmif AnimMifPlugin
+AnimMifPlugin SetupObj
+AnimMifPlugin TestLoadScaledAnimation
+AnimMifPlugin Teardown
+delete AnimMifPlugin
+[Endtest] 
+
+[Test]
+title TestLoadUnscaledAnimation
+create TSanimmif AnimMifPlugin
+AnimMifPlugin SetupObj
+AnimMifPlugin TestLoadUnscaledAnimation
+AnimMifPlugin Teardown
+delete AnimMifPlugin
+[Endtest] 
+
+
+[Test]
+title TestLoadNoMemory
+create TSanimmif AnimMifPlugin
+AnimMifPlugin SetupObj
+AnimMifPlugin TestLoadNoMemory
+AnimMifPlugin Teardown
+delete AnimMifPlugin
+[Endtest] 
+
+[Test]
+title TestCancelLoad
+create TSanimmif AnimMifPlugin
+AnimMifPlugin SetupObj
+AnimMifPlugin TestCancelLoad
+AnimMifPlugin Teardown
+delete AnimMifPlugin
+[Endtest] 
+
+[Test]
+title TestShowStillImage
+create TSanimmif AnimMifPlugin
+AnimMifPlugin SetupStillImageNoMask
+AnimMifPlugin TestShowStillImage
+AnimMifPlugin Teardown
+delete AnimMifPlugin
+[Endtest] 
+
+[Test]
+title TestConstructor
+create TSanimmif AnimMifPlugin
+AnimMifPlugin SetupStillImage
+AnimMifPlugin TestShowStillImage
+AnimMifPlugin Teardown
+delete AnimMifPlugin
+[Endtest] 
+
+[Test]
+title TestShowAnimation
+create TSanimmif AnimMifPlugin
+AnimMifPlugin SetupScaledAnimation
+AnimMifPlugin TestShowAnimation
+AnimMifPlugin Teardown
+delete AnimMifPlugin
+[Endtest] 
+
+
+[Test]
+title TestShowAnimation
+create TSanimmif AnimMifPlugin
+AnimMifPlugin SetupUnscaledAnimation
+AnimMifPlugin TestShowAnimation
+AnimMifPlugin Teardown
+delete AnimMifPlugin
+[Endtest] 
+
+
+[Test]
+title TestShowStillImage
+create TSanimmif AnimMifPlugin
+AnimMifPlugin SetupStillImage
+AnimMifPlugin TestShowStillImage
+AnimMifPlugin Teardown
+delete AnimMifPlugin
+[Endtest] 
+
+
+[Test]
+title TestShowAnimation
+create TSanimmif AnimMifPlugin
+AnimMifPlugin SetupUnscaledAnimation
+AnimMifPlugin TestShowAnimation
+AnimMifPlugin Teardown
+delete AnimMifPlugin
+[Endtest] 
+
+[Test]
+title TestCancelStillImage
+create TSanimmif AnimMifPlugin
+AnimMifPlugin SetupStillImage
+AnimMifPlugin TestCancelStillImage
+AnimMifPlugin Teardown
+delete AnimMifPlugin
+[Endtest] 
+
+
+[Test]
+title TestConstructor
+create TSanimmif AnimMifPlugin
+AnimMifPlugin SetupUnscaledAnimation
+AnimMifPlugin TestCancelAnimation
+AnimMifPlugin Teardown
+delete AnimMifPlugin
+[Endtest] 
+
+
+[Test]
+title TestConstructor
+create TSanimmif AnimMifPlugin
+AnimMifPlugin SetupObj
+AnimMifPlugin TestCancelNotActive
+AnimMifPlugin Teardown
+delete AnimMifPlugin
+[Endtest] 
+
+[Test]
+title TestCancelNotActive
+create TSanimmif AnimMifPlugin
+AnimMifPlugin SetupUnscaledAnimation
+AnimMifPlugin TestCancelNotActive
+AnimMifPlugin Teardown
+delete AnimMifPlugin
+[Endtest] 
+
+[Test]
+title TestCancelNotActive
+create TSanimmif AnimMifPlugin
+AnimMifPlugin SetupFinished
+AnimMifPlugin TestCancelNotActive
+AnimMifPlugin Teardown
+delete AnimMifPlugin
+[Endtest] 
+
+[Test]
+title TestLoadStillImage
+create TSanimmif AnimMifPlugin
+AnimMifPlugin SetupFinished
+AnimMifPlugin TestLoadStillImage
+AnimMifPlugin Teardown
+delete AnimMifPlugin
+[Endtest] 
+
+
+[Test]
+title TestLoadNoMemory
+create TSanimmif AnimMifPlugin
+AnimMifPlugin SetupFinished
+AnimMifPlugin TestLoadNoMemory
+AnimMifPlugin Teardown
+delete AnimMifPlugin
+[Endtest] 
+
+[Test]
+title TestShowBeforeLoad
+create TSanimmif AnimMifPlugin
+AnimMifPlugin SetupObj
+AnimMifPlugin TestShowBeforeLoad
+AnimMifPlugin Teardown
+delete AnimMifPlugin
+[Endtest] 
+
+[Test]
+title TestSetDisplayMode
+create TSanimmif AnimMifPlugin
+AnimMifPlugin SetupObj
+AnimMifPlugin TestSetDisplayMode
+AnimMifPlugin Teardown
+delete AnimMifPlugin
+[Endtest] 
+
+[Test]
+title TestSetSize
+create TSanimmif AnimMifPlugin
+AnimMifPlugin SetupObj
+AnimMifPlugin TestSetSize
+AnimMifPlugin Teardown
+delete AnimMifPlugin
+[Endtest] 
+
+[Test]
+title TestSetFrameDelay
+create TSanimmif AnimMifPlugin
+AnimMifPlugin SetupObj
+AnimMifPlugin TestSetFrameDelay
+AnimMifPlugin Teardown
+delete AnimMifPlugin
+[Endtest] 
+
+
+[Test]
+title TestBackroundColour
+create TSanimmif AnimMifPlugin
+AnimMifPlugin SetupObj
+AnimMifPlugin TestBackroundColour
+AnimMifPlugin Teardown
+delete AnimMifPlugin
+[Endtest] 
+
+[Test]
+title TestBackroundColour
+create TSanimmif AnimMifPlugin
+AnimMifPlugin  SetupStillImage
+AnimMifPlugin TestBackroundColour
+AnimMifPlugin Teardown
+delete AnimMifPlugin
+[Endtest]
+
+
+
+
+
+
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/TSanimmif/data/corrupt.mif	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,1 @@
+xxxxxxxxxxxxxxxxx
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/TSanimmif/eabi/TSanimmifu.def	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,3 @@
+EXPORTS
+	_Z9LibEntryLR13CTestModuleIf @ 1 NONAME
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/TSanimmif/group/TSanimmif.mmp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,87 @@
+/*TYPE TESTCLASS*/
+/*
+* 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: MMP file for STIF Test Framework's TestScripter 
+* testclass test module.
+*
+*/
+
+#include <platform_paths.hrh>
+
+SMPSAFE
+
+TARGET          TSanimmif.dll
+TARGETTYPE      dll
+UID             0x1000008D 0x101FB3E3
+
+CAPABILITY      ALL -TCB
+/* Remove comments and replace 0x00000000 with correct vendor id */
+// VENDORID     0x00000000
+/* Remove comments and replace 0x00000000 with correct secure id */
+// SECUREID     0x00000000
+
+//TARGETPATH      ?target_path
+DEFFILE         TSanimmif.def
+
+USERINCLUDE     ../inc 
+USERINCLUDE     ../inc
+USERINCLUDE     ../../inc
+USERINCLUDE     ../../../../../../inc
+USERINCLUDE     ../../../../sanimengine/inc
+
+OS_LAYER_SYSTEMINCLUDE
+
+SOURCEPATH      ../src
+
+SOURCE          TSanimmif.cpp
+SOURCE          TSanimmifBlocks.cpp
+SOURCE          testwaiter.cpp
+
+
+//RESOURCE        resource_file
+//RESOURCE        resource_file2
+
+LIBRARY         euser.lib
+LIBRARY         stiftestinterface.lib
+LIBRARY         stiftestengine.lib
+LIBRARY         ecom.lib
+LIBRARY         efsrv.lib
+LIBRARY         sanimengine.lib
+
+EPOCALLOWDLLDATA
+LANG            SC
+
+/*
+START WINS      
+?wins_specific_information
+END
+
+START MARM
+?marm_specific_information
+END
+*/
+// Other possible keywords:
+ 
+// DOCUMENT     ?file, that is not compiled, but added to MSVC project workspace (i.e. release notes)
+/*
+START BITMAP ?target
+TARGETPATH   ?emulated_path_on_target_machine
+HEADER
+SOURCE       ?color_depth ?source_bitmap
+END
+*/
+// DEFFILE ?filename
+// AIF ?filename
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/TSanimmif/group/TSanimmif.pkg	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,60 @@
+;
+; 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:
+;
+; 	Installation file for STIF
+;
+
+; Languages
+&EN
+
+; Provide value for uid
+#{"STIF"},(0x00000000),1,1,0,TYPE=SA
+
+; Series60 product id for S60 3.0
+[0x101F7961], 0, 0, 0, {"Series60ProductID"}
+
+; Localised Vendor name
+%{"Nokia"}
+
+; Unique Vendor name
+:"Nokia"
+
+; Logo
+; None
+
+; Package signature - Optional
+; None
+
+; Start of Package body
+
+; Condition blocks
+; None
+
+; Options list
+; None
+
+; Install files
+"\epoc32\release\armv5\udeb\TSanimmif.dll"   -   "!:\Sys\Bin\TSanimmif.dll"
+  
+; Embedded SIS 
+; None
+
+; End of Package body
+
+; PKG dependencies
+; None
+
+; PKG capabilities
+; None
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/TSanimmif/group/TSanimmif_DoxyFile.txt	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,240 @@
+#
+# 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:
+#
+#
+
+# Doxyfile 1.4.1
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+PROJECT_NAME           = TSanimmif
+PROJECT_NUMBER         = 
+OUTPUT_DIRECTORY       = \TSanimmif\
+CREATE_SUBDIRS         = NO
+OUTPUT_LANGUAGE        = English
+USE_WINDOWS_ENCODING   = YES
+BRIEF_MEMBER_DESC      = YES
+REPEAT_BRIEF           = YES
+ABBREVIATE_BRIEF       = 
+ALWAYS_DETAILED_SEC    = NO
+INLINE_INHERITED_MEMB  = NO
+FULL_PATH_NAMES        = NO
+STRIP_FROM_PATH        = 
+STRIP_FROM_INC_PATH    = 
+SHORT_NAMES            = NO
+JAVADOC_AUTOBRIEF      = NO
+MULTILINE_CPP_IS_BRIEF = NO
+DETAILS_AT_TOP         = NO
+INHERIT_DOCS           = YES
+DISTRIBUTE_GROUP_DOC   = NO
+TAB_SIZE               = 8
+ALIASES                = 
+OPTIMIZE_OUTPUT_FOR_C  = YES
+OPTIMIZE_OUTPUT_JAVA   = NO
+SUBGROUPING            = YES
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+EXTRACT_ALL            = YES
+EXTRACT_PRIVATE        = NO
+EXTRACT_STATIC         = NO
+EXTRACT_LOCAL_CLASSES  = NO
+EXTRACT_LOCAL_METHODS  = NO
+HIDE_UNDOC_MEMBERS     = NO
+HIDE_UNDOC_CLASSES     = NO
+HIDE_FRIEND_COMPOUNDS  = NO
+HIDE_IN_BODY_DOCS      = NO
+INTERNAL_DOCS          = YES
+CASE_SENSE_NAMES       = YES
+HIDE_SCOPE_NAMES       = NO
+SHOW_INCLUDE_FILES     = YES
+INLINE_INFO            = YES
+SORT_MEMBER_DOCS       = YES
+SORT_BRIEF_DOCS        = NO
+SORT_BY_SCOPE_NAME     = NO
+GENERATE_TODOLIST      = NO
+GENERATE_TESTLIST      = NO
+GENERATE_BUGLIST       = NO
+GENERATE_DEPRECATEDLIST= YES
+ENABLED_SECTIONS       = 
+MAX_INITIALIZER_LINES  = 30
+SHOW_USED_FILES        = YES
+SHOW_DIRECTORIES       = YES
+FILE_VERSION_FILTER    = 
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+QUIET                  = NO
+WARNINGS               = YES
+WARN_IF_UNDOCUMENTED   = YES
+WARN_IF_DOC_ERROR      = YES
+WARN_NO_PARAMDOC       = NO
+WARN_FORMAT            = "$file:$line: $text"
+WARN_LOGFILE           = 
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+INPUT                  = \TSanimmif\
+FILE_PATTERNS          = *.h \
+                         *.rh \
+                         *.hrh
+RECURSIVE              = YES
+EXCLUDE                = 
+EXCLUDE_SYMLINKS       = NO
+EXCLUDE_PATTERNS       = 
+EXAMPLE_PATH           = 
+EXAMPLE_PATTERNS       = 
+EXAMPLE_RECURSIVE      = NO
+IMAGE_PATH             = 
+INPUT_FILTER           = 
+FILTER_PATTERNS        = 
+FILTER_SOURCE_FILES    = NO
+#---------------------------------------------------------------------------
+# configuration options related to source browsing
+#---------------------------------------------------------------------------
+SOURCE_BROWSER         = NO
+INLINE_SOURCES         = NO
+STRIP_CODE_COMMENTS    = YES
+REFERENCED_BY_RELATION = YES
+REFERENCES_RELATION    = YES
+VERBATIM_HEADERS       = YES
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+ALPHABETICAL_INDEX     = NO
+COLS_IN_ALPHA_INDEX    = 5
+IGNORE_PREFIX          = 
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+GENERATE_HTML          = NO
+HTML_OUTPUT            = html
+HTML_FILE_EXTENSION    = .html
+HTML_HEADER            = 
+HTML_FOOTER            = 
+HTML_STYLESHEET        = 
+HTML_ALIGN_MEMBERS     = YES
+GENERATE_HTMLHELP      = YES
+CHM_FILE               = 
+HHC_LOCATION           = 
+GENERATE_CHI           = NO
+BINARY_TOC             = YES
+TOC_EXPAND             = YES
+DISABLE_INDEX          = YES
+ENUM_VALUES_PER_LINE   = 4
+GENERATE_TREEVIEW      = YES
+TREEVIEW_WIDTH         = 250
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+GENERATE_LATEX         = NO
+LATEX_OUTPUT           = latex
+LATEX_CMD_NAME         = latex
+MAKEINDEX_CMD_NAME     = makeindex
+COMPACT_LATEX          = NO
+PAPER_TYPE             = a4wide
+EXTRA_PACKAGES         = 
+LATEX_HEADER           = 
+PDF_HYPERLINKS         = NO
+USE_PDFLATEX           = NO
+LATEX_BATCHMODE        = NO
+LATEX_HIDE_INDICES     = NO
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+GENERATE_RTF           = YES
+RTF_OUTPUT             = Doc
+COMPACT_RTF            = YES
+RTF_HYPERLINKS         = YES
+RTF_STYLESHEET_FILE    = 
+RTF_EXTENSIONS_FILE    = 
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+GENERATE_MAN           = NO
+MAN_OUTPUT             = man
+MAN_EXTENSION          = .3
+MAN_LINKS              = NO
+#---------------------------------------------------------------------------
+# configuration options related to the XML output
+#---------------------------------------------------------------------------
+GENERATE_XML           = NO
+XML_OUTPUT             = xml
+XML_SCHEMA             = 
+XML_DTD                = 
+XML_PROGRAMLISTING     = YES
+#---------------------------------------------------------------------------
+# configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+GENERATE_AUTOGEN_DEF   = NO
+#---------------------------------------------------------------------------
+# configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+GENERATE_PERLMOD       = NO
+PERLMOD_LATEX          = NO
+PERLMOD_PRETTY         = YES
+PERLMOD_MAKEVAR_PREFIX = 
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor   
+#---------------------------------------------------------------------------
+ENABLE_PREPROCESSING   = YES
+MACRO_EXPANSION        = YES
+EXPAND_ONLY_PREDEF     = NO
+SEARCH_INCLUDES        = YES
+INCLUDE_PATH           = 
+INCLUDE_FILE_PATTERNS  = 
+PREDEFINED             = NONSHARABLE_CLASS
+EXPAND_AS_DEFINED      = 
+SKIP_FUNCTION_MACROS   = YES
+#---------------------------------------------------------------------------
+# Configuration::additions related to external references   
+#---------------------------------------------------------------------------
+TAGFILES               = 
+GENERATE_TAGFILE       = 
+ALLEXTERNALS           = NO
+EXTERNAL_GROUPS        = YES
+PERL_PATH              = /usr/bin/perl
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool   
+#---------------------------------------------------------------------------
+CLASS_DIAGRAMS         = YES
+HIDE_UNDOC_RELATIONS   = YES
+HAVE_DOT               = NO
+CLASS_GRAPH            = YES
+COLLABORATION_GRAPH    = YES
+GROUP_GRAPHS           = YES
+UML_LOOK               = NO
+TEMPLATE_RELATIONS     = YES
+INCLUDE_GRAPH          = YES
+INCLUDED_BY_GRAPH      = YES
+CALL_GRAPH             = NO
+GRAPHICAL_HIERARCHY    = YES
+DIRECTORY_GRAPH        = YES
+DOT_IMAGE_FORMAT       = png
+DOT_PATH               = 
+DOTFILE_DIRS           = 
+MAX_DOT_GRAPH_WIDTH    = 1024
+MAX_DOT_GRAPH_HEIGHT   = 1024
+MAX_DOT_GRAPH_DEPTH    = 0
+DOT_TRANSPARENT        = NO
+DOT_MULTI_TARGETS      = NO
+GENERATE_LEGEND        = YES
+DOT_CLEANUP            = YES
+#---------------------------------------------------------------------------
+# Configuration::additions related to the search engine   
+#---------------------------------------------------------------------------
+SEARCHENGINE           = NO
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/TSanimmif/group/bld.inf	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,60 @@
+/*
+* 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:
+*
+*/
+
+PRJ_PLATFORMS
+// specify the platforms your component needs to be built for here
+// defaults to WINS MARM so you can ignore this if you just build these
+	
+	DEFAULT
+
+PRJ_TESTEXPORTS
+// NOTE: If using ARS requirements all export operations should be done under this.
+// 'abld test export'
+
+PRJ_EXPORTS
+// Specify the source file followed by its destination here
+// copy will be used to copy the source file to its destination
+// If there's no destination then the source file will be copied
+// to the same name in \epoc32\include
+// Example: 
+/*
+\agnmodel\inc\AGMCOMON.H
+*/
+
+PRJ_TESTMMPFILES
+
+	TSanimmif.mmp
+
+PRJ_MMPFILES
+
+	TSanimmif.mmp
+
+// Specify the .mmp files required for building the important component
+// releasables.
+//
+// Specify "tidy" if the component you need to build doesn't need to be
+// released. Specify "ignore" if the MMP file exists but should be
+// ignored.
+// Example:
+/*
+\agnmodel\group\agnmodel.mmp
+#if defined(MARM)
+\agnmodel\group\agsvexe.mmp
+#endif
+*/
+
+//  End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/TSanimmif/group/ctcerr.txt	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,444 @@
+
+*******************************************************************************
+
+argv[0]: C:\DOCUME~1\praprave\LOCALS~1\Temp\ctc4\mwldsym2.exe
+argv[1]: -version
+
+*** CTC++/ctcagent command: set PATH=C:\Apps\sbs\win32\mingw\bin;C:\Apps\sbs\win32\cygwin\bin;C:\Apps\sbs\win32\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\Wireless\Bin;c:\Program Files\Intel\WiFi\bin\;C:\Program Files\NTRU Cryptosystems\NTRU TCG Software Stack\bin\;C:\Program Files\Wave Systems Corp\Gemalto\Access Client\v5\;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\ctc;C:\APPS\prevent\bin;C:\APPS\cltools;C:\APPS\7zip;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\APPS\imaker;C:\Program Files\QuickTime\QTSystem\;C:\Program Files\Nokia\FastTrace;\epoc32\gcc_mingw\bin;C:\APPS\romtools;C:\APPS\bc;C:\APPS\codecollaborator;C:\APPS\actpython\.;C:\APPS\codescanner;C:\APPS\sbs\bin;C:\APPS\symdec;C:\APPS\symrec;C:\APPS\blocks\bin;C:\APPS\helium;C:\APPS\ant\bin;C:\APPS\jdk_1.6.0_11\bin; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_cw\winscw.ini @C:\DOCUME~1\praprave\LOCALS~1\Temp\ctc4\ctcopts.rsp mwldsym2 -version
+*** CTC++/ctcagent command status: 0
+
+
+*******************************************************************************
+
+argv[0]: C:\DOCUME~1\praprave\LOCALS~1\Temp\ctc4\mwccsym2.exe
+argv[1]: -version
+
+*** CTC++/ctcagent command: set PATH=C:\Apps\sbs\win32\mingw\bin;C:\Apps\sbs\win32\cygwin\bin;C:\Apps\sbs\win32\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\Wireless\Bin;c:\Program Files\Intel\WiFi\bin\;C:\Program Files\NTRU Cryptosystems\NTRU TCG Software Stack\bin\;C:\Program Files\Wave Systems Corp\Gemalto\Access Client\v5\;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\ctc;C:\APPS\prevent\bin;C:\APPS\cltools;C:\APPS\7zip;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\APPS\imaker;C:\Program Files\QuickTime\QTSystem\;C:\Program Files\Nokia\FastTrace;\epoc32\gcc_mingw\bin;C:\APPS\romtools;C:\APPS\bc;C:\APPS\codecollaborator;C:\APPS\actpython\.;C:\APPS\codescanner;C:\APPS\sbs\bin;C:\APPS\symdec;C:\APPS\symrec;C:\APPS\blocks\bin;C:\APPS\helium;C:\APPS\ant\bin;C:\APPS\jdk_1.6.0_11\bin; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_cw\winscw.ini @C:\DOCUME~1\praprave\LOCALS~1\Temp\ctc4\ctcopts.rsp mwccsym2 -version
+*** CTC++/ctcagent command status: 0
+
+
+*******************************************************************************
+
+argv[0]: C:\DOCUME~1\praprave\LOCALS~1\Temp\ctc4\mwccsym2.exe
+argv[1]: -c
+argv[2]: -align
+argv[3]: 4
+argv[4]: -warnings
+argv[5]: on
+argv[6]: -w
+argv[7]: nohidevirtual,nounusedexpr
+argv[8]: -msgstyle
+argv[9]: gcc
+argv[10]: -enum
+argv[11]: int
+argv[12]: -str
+argv[13]: pool
+argv[14]: -exc
+argv[15]: ms
+argv[16]: -trigraphs
+argv[17]: on
+argv[18]: -cwd
+argv[19]: source
+argv[20]: -g
+argv[21]: -O0
+argv[22]: -inline
+argv[23]: off
+argv[24]: -runtime
+argv[25]: staticmulti
+argv[26]: -wchar_t
+argv[27]: off
+argv[28]: -nostdinc
+argv[29]: -gccdepends
+argv[30]: -MD
+argv[31]: -d
+argv[32]: __SYMBIAN32__
+argv[33]: -d
+argv[34]: __CW32__
+argv[35]: -d
+argv[36]: __WINS__
+argv[37]: -d
+argv[38]: __WINSCW__
+argv[39]: -d
+argv[40]: __SUPPORT_CPP_EXCEPTIONS__
+argv[41]: -d
+argv[42]: _UNICODE
+argv[43]: -d
+argv[44]: _DEBUG
+argv[45]: -d
+argv[46]: __DLL__
+argv[47]: -i-
+argv[48]: -i
+argv[49]: Z:/startupservices/startupanimation/internal/test/TSanimmif/inc
+argv[50]: -i
+argv[51]: Z:/startupservices/startupanimation/internal/test/TSanimmif/inc
+argv[52]: -i
+argv[53]: Z:/startupservices/startupanimation/internal/test/inc
+argv[54]: -i
+argv[55]: Z:/inc
+argv[56]: -i
+argv[57]: Z:/startupservices/startupanimation/sanimengine/inc
+argv[58]: -i
+argv[59]: Z:/epoc32/include
+argv[60]: -i
+argv[61]: Z:/epoc32/include/platform
+argv[62]: -i
+argv[63]: Z:/epoc32/include/platform/loc
+argv[64]: -i
+argv[65]: Z:/epoc32/include/platform/loc/sc
+argv[66]: -i
+argv[67]: Z:/epoc32/include
+argv[68]: -include
+argv[69]: feature_settings.hrh
+argv[70]: -o
+argv[71]: Z:/epoc32/build/tsanimmif/c_e00ebdbb6047a5d5/tsanimmif_dll/winscw/udeb/TSanimmif.o
+argv[72]: Z:/startupservices/startupanimation/internal/test/TSanimmif/src/TSanimmif.cpp
+
+*** CTC++/ctcagent command: set PATH=C:\Apps\sbs\win32\mingw\bin;C:\Apps\sbs\win32\cygwin\bin;C:\Apps\sbs\win32\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\Wireless\Bin;c:\Program Files\Intel\WiFi\bin\;C:\Program Files\NTRU Cryptosystems\NTRU TCG Software Stack\bin\;C:\Program Files\Wave Systems Corp\Gemalto\Access Client\v5\;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\ctc;C:\APPS\prevent\bin;C:\APPS\cltools;C:\APPS\7zip;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\APPS\imaker;C:\Program Files\QuickTime\QTSystem\;C:\Program Files\Nokia\FastTrace;\epoc32\gcc_mingw\bin;C:\APPS\romtools;C:\APPS\bc;C:\APPS\codecollaborator;C:\APPS\actpython\.;C:\APPS\codescanner;C:\APPS\sbs\bin;C:\APPS\symdec;C:\APPS\symrec;C:\APPS\blocks\bin;C:\APPS\helium;C:\APPS\ant\bin;C:\APPS\jdk_1.6.0_11\bin; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_cw\winscw.ini @C:\DOCUME~1\praprave\LOCALS~1\Temp\ctc4\ctcopts.rsp mwccsym2 -c -align 4 -warnings on -w nohidevirtual,nounusedexpr -msgstyle gcc -enum int -str pool -exc ms -trigraphs on -cwd source -g -O0 -inline off -runtime staticmulti -wchar_t off -nostdinc -gccdepends -MD -d __SYMBIAN32__ -d __CW32__ -d __WINS__ -d __WINSCW__ -d __SUPPORT_CPP_EXCEPTIONS__ -d _UNICODE -d _DEBUG -d __DLL__ -i- -i Z:/startupservices/startupanimation/internal/test/TSanimmif/inc -i Z:/startupservices/startupanimation/internal/test/TSanimmif/inc -i Z:/startupservices/startupanimation/internal/test/inc -i Z:/inc -i Z:/startupservices/startupanimation/sanimengine/inc -i Z:/epoc32/include -i Z:/epoc32/include/platform -i Z:/epoc32/include/platform/loc -i Z:/epoc32/include/platform/loc/sc -i Z:/epoc32/include -include feature_settings.hrh -o Z:/epoc32/build/tsanimmif/c_e00ebdbb6047a5d5/tsanimmif_dll/winscw/udeb/TSanimmif.o Z:/startupservices/startupanimation/internal/test/TSanimmif/src/TSanimmif.cpp
+
+*******************************************************************************
+
+argv[0]: C:\DOCUME~1\praprave\LOCALS~1\Temp\ctc4\mwccsym2.exe
+argv[1]: -c
+argv[2]: -align
+argv[3]: 4
+argv[4]: -warnings
+argv[5]: on
+argv[6]: -w
+argv[7]: nohidevirtual,nounusedexpr
+argv[8]: -msgstyle
+argv[9]: gcc
+argv[10]: -enum
+argv[11]: int
+argv[12]: -str
+argv[13]: pool
+argv[14]: -exc
+argv[15]: ms
+argv[16]: -trigraphs
+argv[17]: on
+argv[18]: -cwd
+argv[19]: source
+argv[20]: -g
+argv[21]: -O0
+argv[22]: -inline
+argv[23]: off
+argv[24]: -runtime
+argv[25]: staticmulti
+argv[26]: -wchar_t
+argv[27]: off
+argv[28]: -nostdinc
+argv[29]: -gccdepends
+argv[30]: -MD
+argv[31]: -d
+argv[32]: __SYMBIAN32__
+argv[33]: -d
+argv[34]: __CW32__
+argv[35]: -d
+argv[36]: __WINS__
+argv[37]: -d
+argv[38]: __WINSCW__
+argv[39]: -d
+argv[40]: __SUPPORT_CPP_EXCEPTIONS__
+argv[41]: -d
+argv[42]: _UNICODE
+argv[43]: -d
+argv[44]: _DEBUG
+argv[45]: -d
+argv[46]: __DLL__
+argv[47]: -i-
+argv[48]: -i
+argv[49]: Z:/startupservices/startupanimation/internal/test/TSanimmif/inc
+argv[50]: -i
+argv[51]: Z:/startupservices/startupanimation/internal/test/TSanimmif/inc
+argv[52]: -i
+argv[53]: Z:/startupservices/startupanimation/internal/test/inc
+argv[54]: -i
+argv[55]: Z:/inc
+argv[56]: -i
+argv[57]: Z:/startupservices/startupanimation/sanimengine/inc
+argv[58]: -i
+argv[59]: Z:/epoc32/include
+argv[60]: -i
+argv[61]: Z:/epoc32/include/platform
+argv[62]: -i
+argv[63]: Z:/epoc32/include/platform/loc
+argv[64]: -i
+argv[65]: Z:/epoc32/include/platform/loc/sc
+argv[66]: -i
+argv[67]: Z:/epoc32/include
+argv[68]: -include
+argv[69]: feature_settings.hrh
+argv[70]: -o
+argv[71]: Z:/epoc32/build/tsanimmif/c_e00ebdbb6047a5d5/tsanimmif_dll/winscw/udeb/TSanimmifBlocks.o
+argv[72]: Z:/startupservices/startupanimation/internal/test/TSanimmif/src/TSanimmifBlocks.cpp
+
+*** CTC++/ctcagent command: set PATH=C:\Apps\sbs\win32\mingw\bin;C:\Apps\sbs\win32\cygwin\bin;C:\Apps\sbs\win32\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\Wireless\Bin;c:\Program Files\Intel\WiFi\bin\;C:\Program Files\NTRU Cryptosystems\NTRU TCG Software Stack\bin\;C:\Program Files\Wave Systems Corp\Gemalto\Access Client\v5\;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\ctc;C:\APPS\prevent\bin;C:\APPS\cltools;C:\APPS\7zip;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\APPS\imaker;C:\Program Files\QuickTime\QTSystem\;C:\Program Files\Nokia\FastTrace;\epoc32\gcc_mingw\bin;C:\APPS\romtools;C:\APPS\bc;C:\APPS\codecollaborator;C:\APPS\actpython\.;C:\APPS\codescanner;C:\APPS\sbs\bin;C:\APPS\symdec;C:\APPS\symrec;C:\APPS\blocks\bin;C:\APPS\helium;C:\APPS\ant\bin;C:\APPS\jdk_1.6.0_11\bin; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_cw\winscw.ini @C:\DOCUME~1\praprave\LOCALS~1\Temp\ctc4\ctcopts.rsp mwccsym2  @ctc-mwccsym2-5008.rsp
+
+*******************************************************************************
+
+argv[0]: C:\DOCUME~1\praprave\LOCALS~1\Temp\ctc4\mwccsym2.exe
+argv[1]: -c
+argv[2]: -align
+argv[3]: 4
+argv[4]: -warnings
+argv[5]: on
+argv[6]: -w
+argv[7]: nohidevirtual,nounusedexpr
+argv[8]: -msgstyle
+argv[9]: gcc
+argv[10]: -enum
+argv[11]: int
+argv[12]: -str
+argv[13]: pool
+argv[14]: -exc
+argv[15]: ms
+argv[16]: -trigraphs
+argv[17]: on
+argv[18]: -cwd
+argv[19]: source
+argv[20]: -g
+argv[21]: -O0
+argv[22]: -inline
+argv[23]: off
+argv[24]: -runtime
+argv[25]: staticmulti
+argv[26]: -wchar_t
+argv[27]: off
+argv[28]: -nostdinc
+argv[29]: -gccdepends
+argv[30]: -MD
+argv[31]: -d
+argv[32]: __SYMBIAN32__
+argv[33]: -d
+argv[34]: __CW32__
+argv[35]: -d
+argv[36]: __WINS__
+argv[37]: -d
+argv[38]: __WINSCW__
+argv[39]: -d
+argv[40]: __SUPPORT_CPP_EXCEPTIONS__
+argv[41]: -d
+argv[42]: _UNICODE
+argv[43]: -d
+argv[44]: _DEBUG
+argv[45]: -d
+argv[46]: __DLL__
+argv[47]: -i-
+argv[48]: -i
+argv[49]: Z:/startupservices/startupanimation/internal/test/TSanimmif/inc
+argv[50]: -i
+argv[51]: Z:/startupservices/startupanimation/internal/test/TSanimmif/inc
+argv[52]: -i
+argv[53]: Z:/startupservices/startupanimation/internal/test/inc
+argv[54]: -i
+argv[55]: Z:/inc
+argv[56]: -i
+argv[57]: Z:/startupservices/startupanimation/sanimengine/inc
+argv[58]: -i
+argv[59]: Z:/epoc32/include
+argv[60]: -i
+argv[61]: Z:/epoc32/include/platform
+argv[62]: -i
+argv[63]: Z:/epoc32/include/platform/loc
+argv[64]: -i
+argv[65]: Z:/epoc32/include/platform/loc/sc
+argv[66]: -i
+argv[67]: Z:/epoc32/include
+argv[68]: -include
+argv[69]: feature_settings.hrh
+argv[70]: -o
+argv[71]: Z:/epoc32/build/tsanimmif/c_e00ebdbb6047a5d5/tsanimmif_dll/winscw/udeb/testwaiter.o
+argv[72]: Z:/startupservices/startupanimation/internal/test/TSanimmif/src/testwaiter.cpp
+
+*** CTC++/ctcagent command: set PATH=C:\Apps\sbs\win32\mingw\bin;C:\Apps\sbs\win32\cygwin\bin;C:\Apps\sbs\win32\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\Wireless\Bin;c:\Program Files\Intel\WiFi\bin\;C:\Program Files\NTRU Cryptosystems\NTRU TCG Software Stack\bin\;C:\Program Files\Wave Systems Corp\Gemalto\Access Client\v5\;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\ctc;C:\APPS\prevent\bin;C:\APPS\cltools;C:\APPS\7zip;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\APPS\imaker;C:\Program Files\QuickTime\QTSystem\;C:\Program Files\Nokia\FastTrace;\epoc32\gcc_mingw\bin;C:\APPS\romtools;C:\APPS\bc;C:\APPS\codecollaborator;C:\APPS\actpython\.;C:\APPS\codescanner;C:\APPS\sbs\bin;C:\APPS\symdec;C:\APPS\symrec;C:\APPS\blocks\bin;C:\APPS\helium;C:\APPS\ant\bin;C:\APPS\jdk_1.6.0_11\bin; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_cw\winscw.ini @C:\DOCUME~1\praprave\LOCALS~1\Temp\ctc4\ctcopts.rsp mwccsym2 -c -align 4 -warnings on -w nohidevirtual,nounusedexpr -msgstyle gcc -enum int -str pool -exc ms -trigraphs on -cwd source -g -O0 -inline off -runtime staticmulti -wchar_t off -nostdinc -gccdepends -MD -d __SYMBIAN32__ -d __CW32__ -d __WINS__ -d __WINSCW__ -d __SUPPORT_CPP_EXCEPTIONS__ -d _UNICODE -d _DEBUG -d __DLL__ -i- -i Z:/startupservices/startupanimation/internal/test/TSanimmif/inc -i Z:/startupservices/startupanimation/internal/test/TSanimmif/inc -i Z:/startupservices/startupanimation/internal/test/inc -i Z:/inc -i Z:/startupservices/startupanimation/sanimengine/inc -i Z:/epoc32/include -i Z:/epoc32/include/platform -i Z:/epoc32/include/platform/loc -i Z:/epoc32/include/platform/loc/sc -i Z:/epoc32/include -include feature_settings.hrh -o Z:/epoc32/build/tsanimmif/c_e00ebdbb6047a5d5/tsanimmif_dll/winscw/udeb/testwaiter.o Z:/startupservices/startupanimation/internal/test/TSanimmif/src/testwaiter.cpp
+
+*******************************************************************************
+
+argv[0]: C:\DOCUME~1\praprave\LOCALS~1\Temp\ctc4\mwldsym2.exe
+argv[1]: Z:/epoc32/build/tsanimmif/c_e00ebdbb6047a5d5/tsanimmif_dll/winscw/udeb/TSanimmif.prep.def
+argv[2]: -importlib
+argv[3]: -o
+argv[4]: Z:/epoc32/release/winscw/udeb/TSanimmif.lib
+argv[5]: -addcommand
+argv[6]: out:TSanimmif.dll
+argv[7]: -warnings
+argv[8]: off
+
+*** CTC++/ctcagent command: set PATH=C:\Apps\sbs\win32\mingw\bin;C:\Apps\sbs\win32\cygwin\bin;C:\Apps\sbs\win32\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\Wireless\Bin;c:\Program Files\Intel\WiFi\bin\;C:\Program Files\NTRU Cryptosystems\NTRU TCG Software Stack\bin\;C:\Program Files\Wave Systems Corp\Gemalto\Access Client\v5\;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\ctc;C:\APPS\prevent\bin;C:\APPS\cltools;C:\APPS\7zip;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\APPS\imaker;C:\Program Files\QuickTime\QTSystem\;C:\Program Files\Nokia\FastTrace;\epoc32\gcc_mingw\bin;C:\APPS\romtools;C:\APPS\bc;C:\APPS\codecollaborator;C:\APPS\actpython\.;C:\APPS\codescanner;C:\APPS\sbs\bin;C:\APPS\symdec;C:\APPS\symrec;C:\APPS\blocks\bin;C:\APPS\helium;C:\APPS\ant\bin;C:\APPS\jdk_1.6.0_11\bin; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_cw\winscw.ini @C:\DOCUME~1\praprave\LOCALS~1\Temp\ctc4\ctcopts.rsp mwldsym2 Z:/epoc32/build/tsanimmif/c_e00ebdbb6047a5d5/tsanimmif_dll/winscw/udeb/TSanimmif.prep.def -importlib -o Z:/epoc32/release/winscw/udeb/TSanimmif.lib -addcommand out:TSanimmif.dll -warnings off
+*** CTC++/ctcagent command status: 0
+
+*** CTC++/ctcagent command status: 0
+
+*** CTC++/ctcagent command status: 0
+
+
+*******************************************************************************
+
+argv[0]: C:\DOCUME~1\praprave\LOCALS~1\Temp\ctc4\mwccsym2.exe
+argv[1]: -c
+argv[2]: -align
+argv[3]: 4
+argv[4]: -warnings
+argv[5]: on
+argv[6]: -w
+argv[7]: nohidevirtual,nounusedexpr
+argv[8]: -msgstyle
+argv[9]: gcc
+argv[10]: -enum
+argv[11]: int
+argv[12]: -str
+argv[13]: pool
+argv[14]: -exc
+argv[15]: ms
+argv[16]: -trigraphs
+argv[17]: on
+argv[18]: -cwd
+argv[19]: source
+argv[20]: -g
+argv[21]: -O0
+argv[22]: -inline
+argv[23]: off
+argv[24]: -runtime
+argv[25]: staticmulti
+argv[26]: -wchar_t
+argv[27]: off
+argv[28]: -nostdinc
+argv[29]: -gccdepends
+argv[30]: -MD
+argv[31]: -d
+argv[32]: __SYMBIAN32__
+argv[33]: -d
+argv[34]: __CW32__
+argv[35]: -d
+argv[36]: __WINS__
+argv[37]: -d
+argv[38]: __WINSCW__
+argv[39]: -d
+argv[40]: __SUPPORT_CPP_EXCEPTIONS__
+argv[41]: -d
+argv[42]: _UNICODE
+argv[43]: -d
+argv[44]: _DEBUG
+argv[45]: -d
+argv[46]: __DLL__
+argv[47]: -i-
+argv[48]: -i
+argv[49]: Z:/startupservices/startupanimation/internal/test/TSanimmif/inc
+argv[50]: -i
+argv[51]: Z:/startupservices/startupanimation/internal/test/TSanimmif/inc
+argv[52]: -i
+argv[53]: Z:/startupservices/startupanimation/internal/test/inc
+argv[54]: -i
+argv[55]: Z:/inc
+argv[56]: -i
+argv[57]: Z:/startupservices/startupanimation/sanimengine/inc
+argv[58]: -i
+argv[59]: Z:/epoc32/include
+argv[60]: -i
+argv[61]: Z:/epoc32/include/platform
+argv[62]: -i
+argv[63]: Z:/epoc32/include/platform/loc
+argv[64]: -i
+argv[65]: Z:/epoc32/include/platform/loc/sc
+argv[66]: -i
+argv[67]: Z:/epoc32/include
+argv[68]: -include
+argv[69]: feature_settings.hrh
+argv[70]: -o
+argv[71]: Z:/epoc32/build/tsanimmif/c_e00ebdbb6047a5d5/tsanimmif_dll/winscw/udeb/TSanimmif_UID_.o
+argv[72]: Z:/epoc32/build/tsanimmif/c_e00ebdbb6047a5d5/tsanimmif_dll/winscw/udeb/TSanimmif.UID.CPP
+
+*** CTC++/ctcagent command: set PATH=C:\Apps\sbs\win32\mingw\bin;C:\Apps\sbs\win32\cygwin\bin;C:\Apps\sbs\win32\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\Wireless\Bin;c:\Program Files\Intel\WiFi\bin\;C:\Program Files\NTRU Cryptosystems\NTRU TCG Software Stack\bin\;C:\Program Files\Wave Systems Corp\Gemalto\Access Client\v5\;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\ctc;C:\APPS\prevent\bin;C:\APPS\cltools;C:\APPS\7zip;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\APPS\imaker;C:\Program Files\QuickTime\QTSystem\;C:\Program Files\Nokia\FastTrace;\epoc32\gcc_mingw\bin;C:\APPS\romtools;C:\APPS\bc;C:\APPS\codecollaborator;C:\APPS\actpython\.;C:\APPS\codescanner;C:\APPS\sbs\bin;C:\APPS\symdec;C:\APPS\symrec;C:\APPS\blocks\bin;C:\APPS\helium;C:\APPS\ant\bin;C:\APPS\jdk_1.6.0_11\bin; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_cw\winscw.ini @C:\DOCUME~1\praprave\LOCALS~1\Temp\ctc4\ctcopts.rsp mwccsym2  @ctc-mwccsym2-5428.rsp
+*** CTC++/ctcagent command status: 0
+
+*** CTC++/ctcagent command status: 0
+
+
+*******************************************************************************
+
+argv[0]: C:\DOCUME~1\praprave\LOCALS~1\Temp\ctc4\mwldsym2.exe
+argv[1]: -msgstyle
+argv[2]: gcc
+argv[3]: -stdlib
+argv[4]: -subsystem
+argv[5]: windows
+argv[6]: -g
+argv[7]: -main
+argv[8]: __Win32DllMain@12
+argv[9]: -shared
+argv[10]: -m
+argv[11]: __E32Dll
+argv[12]: -export
+argv[13]: dllexport
+argv[14]: -nocompactimportlib
+argv[15]: -addcommand
+argv[16]: out:TSanimmif.dll
+argv[17]: -warnings
+argv[18]: off
+argv[19]: -implib
+argv[20]: Z:/epoc32/build/tsanimmif/c_e00ebdbb6047a5d5/tsanimmif_dll/winscw/udeb/TSanimmif.lib
+argv[21]: -o
+argv[22]: Z:/epoc32/build/tsanimmif/c_e00ebdbb6047a5d5/tsanimmif_dll/winscw/udeb/TSanimmif.dll
+argv[23]: Z:/epoc32/release/winscw/udeb/edll.lib
+argv[24]: Z:/epoc32/release/winscw/udeb/scppnwdl.lib
+argv[25]: Z:/epoc32/release/winscw/udeb/euser.lib
+argv[26]: Z:/epoc32/release/winscw/udeb/stiftestinterface.lib
+argv[27]: Z:/epoc32/release/winscw/udeb/stiftestengine.lib
+argv[28]: Z:/epoc32/release/winscw/udeb/ecom.lib
+argv[29]: Z:/epoc32/release/winscw/udeb/efsrv.lib
+argv[30]: Z:/epoc32/release/winscw/udeb/sanimengine.lib
+argv[31]: -l
+argv[32]: Z:/epoc32/build/tsanimmif/c_e00ebdbb6047a5d5/tsanimmif_dll/winscw/udeb
+argv[33]: -search
+argv[34]: @Z:/epoc32/build/tsanimmif/c_e00ebdbb6047a5d5/tsanimmif_dll/winscw/udeb/TSanimmif_udeb_objects.lrf
+
+*** CTC++/ctcagent command: set PATH=C:\Apps\sbs\win32\mingw\bin;C:\Apps\sbs\win32\cygwin\bin;C:\Apps\sbs\win32\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\Wireless\Bin;c:\Program Files\Intel\WiFi\bin\;C:\Program Files\NTRU Cryptosystems\NTRU TCG Software Stack\bin\;C:\Program Files\Wave Systems Corp\Gemalto\Access Client\v5\;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\ctc;C:\APPS\prevent\bin;C:\APPS\cltools;C:\APPS\7zip;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\APPS\imaker;C:\Program Files\QuickTime\QTSystem\;C:\Program Files\Nokia\FastTrace;\epoc32\gcc_mingw\bin;C:\APPS\romtools;C:\APPS\bc;C:\APPS\codecollaborator;C:\APPS\actpython\.;C:\APPS\codescanner;C:\APPS\sbs\bin;C:\APPS\symdec;C:\APPS\symrec;C:\APPS\blocks\bin;C:\APPS\helium;C:\APPS\ant\bin;C:\APPS\jdk_1.6.0_11\bin; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_cw\winscw.ini @C:\DOCUME~1\praprave\LOCALS~1\Temp\ctc4\ctcopts.rsp mwldsym2 -msgstyle gcc -stdlib -subsystem windows -g -main __Win32DllMain@12 -shared -m __E32Dll -export dllexport -nocompactimportlib -addcommand out:TSanimmif.dll -warnings off -implib Z:/epoc32/build/tsanimmif/c_e00ebdbb6047a5d5/tsanimmif_dll/winscw/udeb/TSanimmif.lib -o Z:/epoc32/build/tsanimmif/c_e00ebdbb6047a5d5/tsanimmif_dll/winscw/udeb/TSanimmif.dll Z:/epoc32/release/winscw/udeb/edll.lib Z:/epoc32/release/winscw/udeb/scppnwdl.lib Z:/epoc32/release/winscw/udeb/euser.lib Z:/epoc32/release/winscw/udeb/stiftestinterface.lib Z:/epoc32/release/winscw/udeb/stiftestengine.lib Z:/epoc32/release/winscw/udeb/ecom.lib Z:/epoc32/release/winscw/udeb/efsrv.lib Z:/epoc32/release/winscw/udeb/sanimengine.lib -l Z:/epoc32/build/tsanimmif/c_e00ebdbb6047a5d5/tsanimmif_dll/winscw/udeb -search @Z:/epoc32/build/tsanimmif/c_e00ebdbb6047a5d5/tsanimmif_dll/winscw/udeb/TSanimmif_udeb_objects.lrf
+*** CTC++/ctcagent command status: 0
+
+
+*******************************************************************************
+
+argv[0]: C:\DOCUME~1\praprave\LOCALS~1\Temp\ctc4\mwldsym2.exe
+argv[1]: -S
+argv[2]: -show
+argv[3]: only,names,unmangled,verbose
+argv[4]: -o
+argv[5]: Z:/epoc32/build/tsanimmif/c_e00ebdbb6047a5d5/tsanimmif_dll/winscw/udeb/TSanimmif.inf
+argv[6]: Z:/epoc32/build/tsanimmif/c_e00ebdbb6047a5d5/tsanimmif_dll/winscw/udeb/TSanimmif.lib
+
+*** CTC++/ctcagent command: set PATH=C:\Apps\sbs\win32\mingw\bin;C:\Apps\sbs\win32\cygwin\bin;C:\Apps\sbs\win32\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\Wireless\Bin;c:\Program Files\Intel\WiFi\bin\;C:\Program Files\NTRU Cryptosystems\NTRU TCG Software Stack\bin\;C:\Program Files\Wave Systems Corp\Gemalto\Access Client\v5\;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\ctc;C:\APPS\prevent\bin;C:\APPS\cltools;C:\APPS\7zip;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\APPS\imaker;C:\Program Files\QuickTime\QTSystem\;C:\Program Files\Nokia\FastTrace;\epoc32\gcc_mingw\bin;C:\APPS\romtools;C:\APPS\bc;C:\APPS\codecollaborator;C:\APPS\actpython\.;C:\APPS\codescanner;C:\APPS\sbs\bin;C:\APPS\symdec;C:\APPS\symrec;C:\APPS\blocks\bin;C:\APPS\helium;C:\APPS\ant\bin;C:\APPS\jdk_1.6.0_11\bin; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_cw\winscw.ini @C:\DOCUME~1\praprave\LOCALS~1\Temp\ctc4\ctcopts.rsp mwldsym2 -S -show only,names,unmangled,verbose -o Z:/epoc32/build/tsanimmif/c_e00ebdbb6047a5d5/tsanimmif_dll/winscw/udeb/TSanimmif.inf Z:/epoc32/build/tsanimmif/c_e00ebdbb6047a5d5/tsanimmif_dll/winscw/udeb/TSanimmif.lib
+*** CTC++/ctcagent command status: 0
+
+
+*******************************************************************************
+
+argv[0]: C:\DOCUME~1\praprave\LOCALS~1\Temp\ctc4\mwldsym2.exe
+argv[1]: -msgstyle
+argv[2]: gcc
+argv[3]: -stdlib
+argv[4]: -subsystem
+argv[5]: windows
+argv[6]: -g
+argv[7]: -main
+argv[8]: __Win32DllMain@12
+argv[9]: -shared
+argv[10]: -f
+argv[11]: Z:/epoc32/build/tsanimmif/c_e00ebdbb6047a5d5/tsanimmif_dll/winscw/udeb/TSanimmif.def
+argv[12]: Z:/epoc32/release/winscw/udeb/edll.lib
+argv[13]: Z:/epoc32/release/winscw/udeb/scppnwdl.lib
+argv[14]: Z:/epoc32/release/winscw/udeb/euser.lib
+argv[15]: Z:/epoc32/release/winscw/udeb/stiftestinterface.lib
+argv[16]: Z:/epoc32/release/winscw/udeb/stiftestengine.lib
+argv[17]: Z:/epoc32/release/winscw/udeb/ecom.lib
+argv[18]: Z:/epoc32/release/winscw/udeb/efsrv.lib
+argv[19]: Z:/epoc32/release/winscw/udeb/sanimengine.lib
+argv[20]: -o
+argv[21]: Z:/epoc32/release/winscw/udeb/TSanimmif.dll
+argv[22]: -noimplib
+argv[23]: -l
+argv[24]: Z:/epoc32/build/tsanimmif/c_e00ebdbb6047a5d5/tsanimmif_dll/winscw/udeb
+argv[25]: -search
+argv[26]: @Z:/epoc32/build/tsanimmif/c_e00ebdbb6047a5d5/tsanimmif_dll/winscw/udeb/TSanimmif_udeb_objects.lrf
+
+*** CTC++/ctcagent command: set PATH=C:\Apps\sbs\win32\mingw\bin;C:\Apps\sbs\win32\cygwin\bin;C:\Apps\sbs\win32\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\Wireless\Bin;c:\Program Files\Intel\WiFi\bin\;C:\Program Files\NTRU Cryptosystems\NTRU TCG Software Stack\bin\;C:\Program Files\Wave Systems Corp\Gemalto\Access Client\v5\;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\ctc;C:\APPS\prevent\bin;C:\APPS\cltools;C:\APPS\7zip;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\APPS\imaker;C:\Program Files\QuickTime\QTSystem\;C:\Program Files\Nokia\FastTrace;\epoc32\gcc_mingw\bin;C:\APPS\romtools;C:\APPS\bc;C:\APPS\codecollaborator;C:\APPS\actpython\.;C:\APPS\codescanner;C:\APPS\sbs\bin;C:\APPS\symdec;C:\APPS\symrec;C:\APPS\blocks\bin;C:\APPS\helium;C:\APPS\ant\bin;C:\APPS\jdk_1.6.0_11\bin; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_cw\winscw.ini @C:\DOCUME~1\praprave\LOCALS~1\Temp\ctc4\ctcopts.rsp mwldsym2 -msgstyle gcc -stdlib -subsystem windows -g -main __Win32DllMain@12 -shared -f Z:/epoc32/build/tsanimmif/c_e00ebdbb6047a5d5/tsanimmif_dll/winscw/udeb/TSanimmif.def Z:/epoc32/release/winscw/udeb/edll.lib Z:/epoc32/release/winscw/udeb/scppnwdl.lib Z:/epoc32/release/winscw/udeb/euser.lib Z:/epoc32/release/winscw/udeb/stiftestinterface.lib Z:/epoc32/release/winscw/udeb/stiftestengine.lib Z:/epoc32/release/winscw/udeb/ecom.lib Z:/epoc32/release/winscw/udeb/efsrv.lib Z:/epoc32/release/winscw/udeb/sanimengine.lib -o Z:/epoc32/release/winscw/udeb/TSanimmif.dll -noimplib -l Z:/epoc32/build/tsanimmif/c_e00ebdbb6047a5d5/tsanimmif_dll/winscw/udeb -search @Z:/epoc32/build/tsanimmif/c_e00ebdbb6047a5d5/tsanimmif_dll/winscw/udeb/TSanimmif_udeb_objects.lrf
+*** CTC++/ctcagent command status: 0
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/TSanimmif/group/profile.txt	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,110 @@
+*****************************************************************************
+*           CTC++, Test Coverage Analyzer for C/C++, Version 6.5.5          *
+*                                                                           *
+*                         EXECUTION PROFILE LISTING                         *
+*                                                                           *
+*                    Copyright (c) 1993-2009 Testwell Oy                    *
+*****************************************************************************
+
+
+Symbol file(s) used   : MON.sym (Mon Aug 23 12:02:41 2010)
+Data file(s) used     : MON.dat (Mon Aug 23 12:48:55 2010)
+Listing produced at   : Mon Aug 23 13:00:38 2010
+Coverage view         : As instrumented
+
+
+
+MONITORED SOURCE FILE : Z:/startupservices/startupanimation/internal/test/TSanimmif/src/TSanimmif.cpp
+INSTRUMENTATION MODE  : function
+
+    START/       END/
+      TRUE      FALSE    LINE DESCRIPTION
+=============================================================================
+
+        30         30      80 FUNCTION CTSanimmif::CTSanimmif()
+        30         30      91 FUNCTION CTSanimmif::ConstructL()
+        30          0     139 FUNCTION CTSanimmif::NewL()
+        30         30     153 FUNCTION CTSanimmif::~CTSanimmif()
+        30         30     169 FUNCTION CTSanimmif::SendTestClassVersion()
+        30          0     190 FUNCTION LibEntryL()
+
+***TER 100 % (  6/  6) of SOURCE FILE Z:/startupservices/startupanimation/internal/test/TSanimmif/src/TSanimmif.cpp
+-----------------------------------------------------------------------------
+
+
+
+MONITORED SOURCE FILE : Z:/startupservices/startupanimation/internal/test/TSanimmif/src/testwaiter.cpp
+INSTRUMENTATION MODE  : function
+
+    START/       END/
+      TRUE      FALSE    LINE DESCRIPTION
+=============================================================================
+
+        29          0      30 FUNCTION CTestWaiter::NewL()
+         0          0 -    42 FUNCTION CTestWaiter::~CTestWaiter()
+         0          0 -    52 FUNCTION CTestWaiter::Activate()
+        29         29      65 FUNCTION CTestWaiter::CTestWaiter()
+         0          0 -    77 FUNCTION CTestWaiter::DoCancel()
+         0          0 -    87 FUNCTION CTestWaiter::RunL()
+
+***TER  33 % (  2/  6) of SOURCE FILE Z:/startupservices/startupanimation/internal/test/TSanimmif/src/testwaiter.cpp
+-----------------------------------------------------------------------------
+
+
+
+MONITORED SOURCE FILE : Z:/startupservices/startupanimation/internal/test/TSanimmif/src/TSanimmifBlocks.cpp
+INSTRUMENTATION MODE  : function
+
+    START/       END/
+      TRUE      FALSE    LINE DESCRIPTION
+=============================================================================
+
+        30         30      77 FUNCTION CTSanimmif::Delete()
+        32          0      87 FUNCTION CTSanimmif::RunMethodL()
+         0          0 -   146 FUNCTION TMockMifAnimationObserver::UpdateScreen()
+         0          0 -   159 FUNCTION TMockMifAnimationObserver::UpdateScreen()
+        29          0     173 FUNCTION CTSanimmif::SetupEmptyL()
+        27          0     190 FUNCTION CTSanimmif::SetupObjL()
+        13          0     206 FUNCTION CTSanimmif::SetupFileL()
+         1          0     221 FUNCTION CTSanimmif::SetupStillImageNoMaskL()
+         4          0     233 FUNCTION CTSanimmif::SetupStillImageL()
+         1          0     245 FUNCTION CTSanimmif::SetupScaledAnimationL()
+         7          0     257 FUNCTION CTSanimmif::SetupUnscaledAnimationL()
+         3          0     269 FUNCTION CTSanimmif::SetupFinishedL()
+         0          0 -   284 FUNCTION CTSanimmif::Teardown()
+         1          0     306 FUNCTION CTSanimmif::TestConstructorL()
+         1          0     324 FUNCTION CTSanimmif::TestConstructorNoMemoryL()
+         0          0 -   338 FUNCTION CTSanimmif::TestUnknownFileL()
+         0          0 -   353 FUNCTION CTSanimmif::TestCorruptFileL()
+         0          0 -   368 FUNCTION CTSanimmif::TestNoFramesFileL()
+         0          0 -   383 FUNCTION CTSanimmif::TestLoadStillImageL()
+         0          0 -   398 FUNCTION CTSanimmif::TestLoadScaledAnimationL()
+         0          0 -   413 FUNCTION CTSanimmif::TestLoadUnscaledAnimationL()
+         0          0 -   428 FUNCTION CTSanimmif::TestLoadNoMemoryL()
+         0          0 -   443 FUNCTION CTSanimmif::TestCancelLoadL()
+         0          0 -   459 FUNCTION CTSanimmif::TestShowStillImageL()
+         0          0 -   475 FUNCTION CTSanimmif::TestShowAnimationL()
+         0          0 -   491 FUNCTION CTSanimmif::TestCancelStillImageL()
+         0          0 -   507 FUNCTION CTSanimmif::TestCancelAnimationL()
+         0          0 -   523 FUNCTION CTSanimmif::TestCancelNotActiveL()
+         0          0 -   535 FUNCTION CTSanimmif::TestShowBeforeLoadL()
+         0          0 -   547 FUNCTION CTSanimmif::TestSetDisplayModeL()
+         0          0 -   571 FUNCTION CTSanimmif::TestSetSizeL()
+         0          0 -   595 FUNCTION CTSanimmif::TestSetFrameDelayL()
+         0          0 -   619 FUNCTION CTSanimmif::TestBackroundColourL()
+         1          0     634 FUNCTION CTSanimmif::ExampleL()
+
+***TER  38 % ( 13/ 34) of SOURCE FILE Z:/startupservices/startupanimation/internal/test/TSanimmif/src/TSanimmifBlocks.cpp
+-----------------------------------------------------------------------------
+
+
+
+
+
+SUMMARY
+=======
+
+Number of monitored source files  : 3
+Number of source lines            : 945
+Number of measurement points      : 92
+TER                               : 46% (function)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/TSanimmif/inc/TSanimmif.h	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,220 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+* 
+* Description: STIF testclass declaration
+*
+*/
+
+#ifndef TSANIMMIF_H
+#define TSANIMMIF_H
+
+//  INCLUDES
+#include <StifLogger.h>
+#include <TestScripterInternal.h>
+#include <StifTestModule.h>
+#include <TestclassAssert.h>
+#include <e32def.h>
+#include <f32file.h>
+#include "sanimobserver.h"
+
+
+// CONSTANTS
+//const ?type ?constant_var = ?constant;
+
+// MACROS
+//#define ?macro ?macro_def
+#define TEST_CLASS_VERSION_MAJOR 0
+#define TEST_CLASS_VERSION_MINOR 0
+#define TEST_CLASS_VERSION_BUILD 0
+
+// Logging path
+_LIT( KTSanimmifLogPath, "\\logs\\testframework\\TSanimmif\\" ); 
+// Log file
+_LIT( KTSanimmifLogFile, "TSanimmif.txt" ); 
+_LIT( KTSanimmifLogFileWithTitle, "TSanimmif_[%S].txt" );
+
+// FUNCTION PROTOTYPES
+//?type ?function_name(?arg_list);
+
+// FORWARD DECLARATIONS
+//class ?FORWARD_CLASSNAME;
+class CTSanimmif;
+class CSAnimImagePlugin;
+class CTestWaiter;
+
+NONSHARABLE_CLASS( TMockMifAnimationObserver ) : public MSAnimObserver
+    {
+public:
+    TMockMifAnimationObserver( CTSanimmif& aTestSuite ) : iTestSuite( aTestSuite ) {}
+    virtual void UpdateScreen( const CFbsBitmap& /*aFrame*/, const CFbsBitmap& /*aMask*/ );
+    virtual void UpdateScreen( const CFbsBitmap& /*aFrame*/ );
+private:
+    CTSanimmif& iTestSuite;
+    };
+
+
+/**
+*  CTSanimmif test class for STIF Test Framework TestScripter.
+*  ?other_description_lines
+*
+*  @lib ?library
+*  @since ?Series60_version
+*/
+NONSHARABLE_CLASS(CTSanimmif) : public CScriptBase
+    {
+    public:  // Constructors and destructor
+
+        /**
+        * Two-phased constructor.
+        */
+        static CTSanimmif* NewL( CTestModuleIf& aTestModuleIf );
+
+        /**
+        * Destructor.
+        */
+        virtual ~CTSanimmif();
+
+    public: // New functions
+
+        /**
+        * ?member_description.
+        * @since ?Series60_version
+        * @param ?arg1 ?description
+        * @return ?description
+        */
+        //?type ?member_function( ?type ?arg1 );
+
+    public: // Functions from base classes
+
+        /**
+        * From CScriptBase Runs a script line.
+        * @since ?Series60_version
+        * @param aItem Script line containing method name and parameters
+        * @return Symbian OS error code
+        */
+        virtual TInt RunMethodL( CStifItemParser& aItem );
+
+    protected:  // New functions
+
+        /**
+        * ?member_description.
+        * @since ?Series60_version
+        * @param ?arg1 ?description
+        * @return ?description
+        */
+        //?type ?member_function( ?type ?arg1 );
+
+    protected:  // Functions from base classes
+
+        /**
+        * From ?base_class ?member_description
+        */
+        //?type ?member_function();
+
+    private:
+
+        /**
+        * C++ default constructor.
+        */
+        CTSanimmif( CTestModuleIf& aTestModuleIf );
+
+        /**
+        * By default Symbian 2nd phase constructor is private.
+        */
+        void ConstructL();
+
+        // Prohibit copy constructor if not deriving from CBase.
+        // ?classname( const ?classname& );
+        // Prohibit assigment operator if not deriving from CBase.
+        // ?classname& operator=( const ?classname& );
+
+        /**
+        * Frees all resources allocated from test methods.
+        * @since ?Series60_version
+        */
+        void Delete();
+
+        /**
+        * Test methods are listed below. 
+        */
+
+        /**
+        * Example test method.
+        * @since ?Series60_version
+        * @param aItem Script line containing parameters.
+        * @return Symbian OS error code.
+        */
+        virtual TInt ExampleL( CStifItemParser& aItem );
+        
+        /**
+         * Method used to log version of test class
+         */
+        void SendTestClassVersion();
+        TInt SetupEmptyL();
+        TInt SetupObjL();
+        TInt SetupFileL( const TDesC& aFileName );
+        TInt SetupStillImageNoMaskL();
+        TInt SetupStillImageL();
+        TInt SetupScaledAnimationL();
+        TInt SetupUnscaledAnimationL();
+        TInt SetupFinishedL();
+        TInt Teardown();
+
+        TInt TestConstructorL();
+        TInt TestConstructorNoMemoryL();
+        TInt TestUnknownFileL();
+        TInt TestCorruptFileL();
+        TInt TestNoFramesFileL();
+        TInt TestLoadStillImageL();
+        TInt TestLoadScaledAnimationL();
+        TInt TestLoadUnscaledAnimationL();
+        TInt TestLoadNoMemoryL();
+        TInt TestCancelLoadL();
+        TInt TestShowStillImageL();
+        TInt TestShowAnimationL();
+        TInt TestCancelStillImageL();
+        TInt TestCancelAnimationL();
+        TInt TestCancelNotActiveL();
+        TInt TestShowBeforeLoadL();
+        TInt TestSetDisplayModeL();
+        TInt TestSetSizeL();
+        TInt TestSetFrameDelayL();
+        TInt TestBackroundColourL();
+           
+
+    private: // data
+        friend class TMockMifAnimationObserver;
+
+        /** File server session used in testing. */
+        RFs iFs;
+
+        /** Instance of the class that this test suite is testing. */
+        CSAnimImagePlugin* iTestObj;
+
+        /** A 32 bit identifer returned by ECom to identify this instance to the framework. */
+        TUid iDtorKey;
+
+        /** For testing async calls. */
+        CTestWaiter* iWaiter;
+
+        /** For testing correct number of calls to animation observer. */
+        TInt iFrameCounter;
+
+        /** Animation observer for testing. */
+        TMockMifAnimationObserver iObserver;
+
+    };
+
+#endif      // TSANIMMIF_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/TSanimmif/inc/sanimmifplugintestsuite.h	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,144 @@
+/*
+* 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 the License "Symbian Foundation License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Declaration of CSAnimMifPluginTestSuite class
+*
+*/
+
+
+#ifndef SANIMMIFPLUGINTESTSUITE_H
+#define SANIMMIFPLUGINTESTSUITE_H
+
+#include <ceunittestsuiteclass.h>
+#include <e32def.h>
+#include <f32file.h>
+#include "sanimobserver.h"
+
+class CSAnimImagePlugin;
+class CSAnimMifPluginTestSuite;
+class CTestWaiter;
+
+NONSHARABLE_CLASS( TMockMifAnimationObserver ) : public MSAnimObserver
+    {
+public:
+    TMockMifAnimationObserver( CSAnimMifPluginTestSuite& aTestSuite ) : iTestSuite( aTestSuite ) {}
+    virtual void UpdateScreen( const CFbsBitmap& /*aFrame*/, const CFbsBitmap& /*aMask*/ );
+    virtual void UpdateScreen( const CFbsBitmap& /*aFrame*/ );
+private:
+    CSAnimMifPluginTestSuite& iTestSuite;
+    };
+
+/**
+*  Test cases for CSAnimSvgPlugin class.
+*
+*  @lib None
+*  @since S60 3.2
+*/
+NONSHARABLE_CLASS( CSAnimMifPluginTestSuite ) : public CEUnitTestSuiteClass
+    {
+
+public:
+
+    /**
+    * Constructs a CSAnimMifPluginTestSuite object.
+    *
+    * @since S60 3.2
+    *
+    * @return The new object
+    */
+    static CSAnimMifPluginTestSuite* NewL();
+    static CSAnimMifPluginTestSuite* NewLC();
+
+    /**
+    * Destructor.
+    *
+    * @since S60 3.2
+    */
+    virtual ~CSAnimMifPluginTestSuite();
+
+private:
+
+    /**
+    * First phase constructor.
+    *
+    * @since S60 3.2
+    */
+    CSAnimMifPluginTestSuite();
+
+    /**
+    * Second phase constructor.
+    *
+    * @since S60 3.2
+    */
+    void ConstructL();
+
+private:    // New methods
+
+    void SetupEmptyL();
+    void SetupObjL();
+    void SetupFileL( const TDesC& aFileName );
+    void SetupStillImageNoMaskL();
+    void SetupStillImageL();
+    void SetupScaledAnimationL();
+    void SetupUnscaledAnimationL();
+    void SetupFinishedL();
+    void Teardown();
+
+    void TestConstructorL();
+    void TestConstructorNoMemoryL();
+    void TestUnknownFileL();
+    void TestCorruptFileL();
+    void TestNoFramesFileL();
+    void TestLoadStillImageL();
+    void TestLoadScaledAnimationL();
+    void TestLoadUnscaledAnimationL();
+    void TestLoadNoMemoryL();
+    void TestCancelLoadL();
+    void TestShowStillImageL();
+    void TestShowAnimationL();
+    void TestCancelStillImageL();
+    void TestCancelAnimationL();
+    void TestCancelNotActiveL();
+    void TestShowBeforeLoadL();
+    void TestSetDisplayModeL();
+    void TestSetSizeL();
+    void TestSetFrameDelayL();
+    void TestBackroundColourL();
+
+private: // data
+
+    EUNIT_DECLARE_TEST_TABLE;
+
+    friend class TMockMifAnimationObserver;
+
+    /** File server session used in testing. */
+    RFs iFs;
+
+    /** Instance of the class that this test suite is testing. */
+    CSAnimImagePlugin* iTestObj;
+
+    /** A 32 bit identifer returned by ECom to identify this instance to the framework. */
+    TUid iDtorKey;
+
+    /** For testing async calls. */
+    CTestWaiter* iWaiter;
+
+    /** For testing correct number of calls to animation observer. */
+    TInt iFrameCounter;
+
+    /** Animation observer for testing. */
+    TMockMifAnimationObserver iObserver;
+
+    };
+
+#endif // SANIMMIFPLUGINTESTSUITE_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/TSanimmif/inc/testwaiter.h	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,88 @@
+/*
+* 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 the License "Symbian Foundation License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Declaration of CTestWaiter class
+*
+*/
+
+
+#ifndef TESTWAITER_H
+#define TESTWAITER_H
+
+#include <e32base.h>
+
+/**
+*  Stops active scheduler in RunL.
+*
+*  @lib None
+*  @since S60 3.2
+*/
+class CTestWaiter  : public CActive
+    {
+
+public:
+
+    /**
+    * Constructs a CTestWaiter object.
+    *
+    * @return The new object
+    * @since S60 3.2
+    */
+    static CTestWaiter* NewL();
+
+    /**
+    * Destructor.
+    *
+    * @since S60 3.2
+    */
+    virtual ~CTestWaiter();
+
+    /**
+    * Set active.
+    *
+    * @since S60 3.2
+    */
+    void Activate();
+
+protected:
+
+    /**
+    * From CActive.
+    * Implements cancellation of an outstanding request.
+    *
+    * @since S60 3.2
+    */
+    virtual void DoCancel();
+
+    /**
+    * From CActive.
+    * Handles an active object's request completion event.
+    * Never leaves.
+    *
+    * @since S60 3.2
+    */
+    virtual void RunL();
+
+private:
+
+    /**
+    * First phase constructor.
+    *
+    */
+    CTestWaiter();
+
+private: // data
+
+    };
+
+#endif // TESTWAITER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/TSanimmif/rom/TSanimmif.iby	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,9 @@
+#ifndef __TSANIMMIF_IBY__
+#define __TSANIMMIF_IBY__
+
+file=ABI_DIR\BUILD_DIR\TSanimmif.dll SHARED_LIB_DIR\TSanimmif.dll
+
+data=\epoc32\data\z\system\data\UI_TSanimmif.cfg \testframework\UI_TSanimmif.cfg
+
+
+#endif
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/TSanimmif/src/TSanimmif.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,198 @@
+/*
+* 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: This file contains testclass implementation.
+*
+*/
+
+// INCLUDE FILES
+#include <StifTestInterface.h>
+#include "TSanimmif.h"
+#include <SettingServerClient.h>
+
+// EXTERNAL DATA STRUCTURES
+//extern  ?external_data;
+
+// EXTERNAL FUNCTION PROTOTYPES  
+//extern ?external_function( ?arg_type,?arg_type );
+
+// CONSTANTS
+//const ?type ?constant_var = ?constant;
+
+// MACROS
+//#define ?macro ?macro_def
+
+// LOCAL CONSTANTS AND MACROS
+//const ?type ?constant_var = ?constant;
+//#define ?macro_name ?macro_def
+
+// MODULE DATA STRUCTURES
+//enum ?declaration
+//typedef ?declaration
+
+// LOCAL FUNCTION PROTOTYPES
+//?type ?function_name( ?arg_type, ?arg_type );
+
+// FORWARD DECLARATIONS
+//class ?FORWARD_CLASSNAME;
+
+// ============================= LOCAL FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// ?function_name ?description.
+// ?description
+// Returns: ?value_1: ?description
+//          ?value_n: ?description_line1
+//                    ?description_line2
+// -----------------------------------------------------------------------------
+//
+/*
+?type ?function_name(
+    ?arg_type arg,  // ?description
+    ?arg_type arg)  // ?description
+    {
+
+    ?code  // ?comment
+
+    // ?comment
+    ?code
+    }
+*/
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CTSanimmif::CTSanimmif
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// -----------------------------------------------------------------------------
+//
+CTSanimmif::CTSanimmif( 
+    CTestModuleIf& aTestModuleIf ):
+        CScriptBase( aTestModuleIf ),iObserver( *this )
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CTSanimmif::ConstructL
+// Symbian 2nd phase constructor can leave.
+// -----------------------------------------------------------------------------
+//
+void CTSanimmif::ConstructL()
+    {
+    //Read logger settings to check whether test case name is to be
+    //appended to log file name.
+    RSettingServer settingServer;
+    TInt ret = settingServer.Connect();
+    if(ret != KErrNone)
+        {
+        User::Leave(ret);
+        }
+    // Struct to StifLogger settigs.
+    TLoggerSettings loggerSettings; 
+    // Parse StifLogger defaults from STIF initialization file.
+    ret = settingServer.GetLoggerSettings(loggerSettings);
+    if(ret != KErrNone)
+        {
+        User::Leave(ret);
+        } 
+    // Close Setting server session
+    settingServer.Close();
+
+    TFileName logFileName;
+    
+    if(loggerSettings.iAddTestCaseTitle)
+        {
+        TName title;
+        TestModuleIf().GetTestCaseTitleL(title);
+        logFileName.Format(KTSanimmifLogFileWithTitle, &title);
+        }
+    else
+        {
+        logFileName.Copy(KTSanimmifLogFile);
+        }
+
+    iLog = CStifLogger::NewL( KTSanimmifLogPath, 
+                          logFileName,
+                          CStifLogger::ETxt,
+                          CStifLogger::EFile,
+                          EFalse );
+    
+    SendTestClassVersion();
+    }
+
+// -----------------------------------------------------------------------------
+// CTSanimmif::NewL
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CTSanimmif* CTSanimmif::NewL( 
+    CTestModuleIf& aTestModuleIf )
+    {
+    CTSanimmif* self = new (ELeave) CTSanimmif( aTestModuleIf );
+
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop();
+
+    return self;
+
+    }
+
+// Destructor
+CTSanimmif::~CTSanimmif()
+    { 
+
+    // Delete resources allocated from test methods
+    Delete();
+
+    // Delete logger
+    delete iLog; 
+
+    }
+
+//-----------------------------------------------------------------------------
+// CTSanimmif::SendTestClassVersion
+// Method used to send version of test class
+//-----------------------------------------------------------------------------
+//
+void CTSanimmif::SendTestClassVersion()
+	{
+	TVersion moduleVersion;
+	moduleVersion.iMajor = TEST_CLASS_VERSION_MAJOR;
+	moduleVersion.iMinor = TEST_CLASS_VERSION_MINOR;
+	moduleVersion.iBuild = TEST_CLASS_VERSION_BUILD;
+	
+	TFileName moduleName;
+	moduleName = _L("TSanimmif.dll");
+
+	TBool newVersionOfMethod = ETrue;
+	TestModuleIf().SendTestModuleVersion(moduleVersion, moduleName, newVersionOfMethod);
+	}
+
+// ========================== OTHER EXPORTED FUNCTIONS =========================
+
+// -----------------------------------------------------------------------------
+// LibEntryL is a polymorphic Dll entry point.
+// Returns: CScriptBase: New CScriptBase derived object
+// -----------------------------------------------------------------------------
+//
+EXPORT_C CScriptBase* LibEntryL( 
+    CTestModuleIf& aTestModuleIf ) // Backpointer to STIF Test Framework
+    {
+
+    return ( CScriptBase* ) CTSanimmif::NewL( aTestModuleIf );
+
+    }
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/TSanimmif/src/TSanimmifBlocks.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,659 @@
+/*
+* 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: This file contains testclass implementation.
+*
+*/
+
+// [INCLUDE FILES] - do not remove
+#include <e32svr.h>
+#include <StifParser.h>
+#include <StifTestInterface.h>
+#include "TSanimmif.h"
+
+#include "sanimimageplugin.h"
+
+#include "testwaiter.h"
+
+#include <ecom/ecom.h>
+
+#pragma tagging OFF // To disable CodeTest tagging
+
+const TInt KSAnimMifPluginImplUid = 0x2000B11E;
+
+_LIT( KUnknownFile, "C:\\temp\\unknown.mif" );
+_LIT( KCorruptFile, "C:\\temp\\corrupt.mif" );
+_LIT( KStillImageFile, "C:\\temp\\testimg_1.mif" );
+_LIT( KScaledAnimationFile, "C:\\temp\\testanim_1.mif" );
+_LIT( KUnscaledAnimationFile, "C:\\temp\\testanim_2.mif" );
+_LIT( KStillImageNoMaskFile, "C:\\temp\\testimg_2.mif" );
+_LIT( KNoFramesFile, "C:\\temp\\testimg_3.mif" );
+
+
+
+// ============================= LOCAL FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// ?function_name ?description.
+// ?description
+// Returns: ?value_1: ?description
+//          ?value_n: ?description_line1
+//                    ?description_line2
+// -----------------------------------------------------------------------------
+//
+/*
+?type ?function_name(
+    ?arg_type arg,  // ?description
+    ?arg_type arg)  // ?description
+    {
+
+    ?code  // ?comment
+
+    // ?comment
+    ?code
+    }
+*/
+
+
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CTSanimmif::Delete
+// Delete here all resources allocated and opened from test methods. 
+// Called from destructor. 
+// -----------------------------------------------------------------------------
+//
+void CTSanimmif::Delete() 
+    {
+
+    }
+
+// -----------------------------------------------------------------------------
+// CTSanimmif::RunMethodL
+// Run specified method. Contains also table of test mothods and their names.
+// -----------------------------------------------------------------------------
+//
+TInt CTSanimmif::RunMethodL( 
+    CStifItemParser& aItem ) 
+    {
+
+    static TStifFunctionInfo const KFunctions[] =
+        {  
+        // Copy this line for every implemented function.
+        // First string is the function name used in TestScripter script file.
+        // Second is the actual implementation member function. 
+        ENTRY( "Example", CTSanimmif::ExampleL ),
+        ENTRY( "SetupEmpty", CTSanimmif::SetupEmptyL ),
+        ENTRY( "SetupObj", CTSanimmif::SetupObjL ),
+        ENTRY( "SetupFile", CTSanimmif::SetupFileL ),        
+        ENTRY( "SetupStillImageNoMask", CTSanimmif::SetupStillImageNoMaskL ),
+        ENTRY( "SetupStillImage", CTSanimmif::SetupStillImageL ),
+        ENTRY( "SetupScaledAnimation", CTSanimmif::SetupScaledAnimationL ),
+        ENTRY( "SetupUnscaledAnimation", CTSanimmif::SetupUnscaledAnimationL ),
+        ENTRY( "SetupFinished", CTSanimmif::SetupFinishedL ),
+        ENTRY( "Teardown", CTSanimmif::Teardown ),        
+        ENTRY( "TestConstructor", CTSanimmif::TestConstructorL ),
+        ENTRY( "TestConstructorNoMemory", CTSanimmif::TestConstructorNoMemoryL ),
+        ENTRY( "TestUnknownFile", CTSanimmif::TestUnknownFileL ),
+        ENTRY( "TestCorruptFile", CTSanimmif::TestCorruptFileL ),
+        ENTRY( "TestNoFramesFile", CTSanimmif::TestNoFramesFileL ),
+        ENTRY( "TestLoadStillImage", CTSanimmif::TestLoadStillImageL ),             
+        ENTRY( "TestLoadScaledAnimation", CTSanimmif::TestLoadScaledAnimationL ),
+        ENTRY( "TestLoadUnscaledAnimation", CTSanimmif::TestLoadUnscaledAnimationL ),
+        ENTRY( "TestLoadNoMemory", CTSanimmif::TestLoadNoMemoryL ),
+        ENTRY( "TestCancelLoad", CTSanimmif::TestCancelLoadL ),
+        ENTRY( "TestShowStillImage", CTSanimmif::TestShowStillImageL ),
+        ENTRY( "TestShowAnimation", CTSanimmif::TestShowAnimationL ),        
+        ENTRY( "TestCancelStillImage", CTSanimmif::TestCancelStillImageL ),
+        ENTRY( "TestCancelAnimation", CTSanimmif::TestCancelAnimationL ),
+        ENTRY( "TestCancelNotActive", CTSanimmif::TestCancelNotActiveL ),
+        ENTRY( "TestShowBeforeLoad", CTSanimmif::TestShowBeforeLoadL ),
+        ENTRY( "TestSetDisplayMode", CTSanimmif::TestSetDisplayModeL ),
+        ENTRY( "TestSetSize", CTSanimmif::TestSetSizeL ),        
+        ENTRY( "TestSetFrameDelay", CTSanimmif::TestSetFrameDelayL ),
+        ENTRY( "TestBackroundColour", CTSanimmif::TestBackroundColourL ),       
+     
+         //ADD NEW ENTRY HERE
+        // [test cases entries] - Do not remove
+
+        };
+
+    const TInt count = sizeof( KFunctions ) / 
+                        sizeof( TStifFunctionInfo );
+
+    return RunInternalL( KFunctions, count, aItem );
+
+    }
+    
+    // ======== MEMBER FUNCTIONS ========
+
+// ---------------------------------------------------------------------------
+// TMockMifAnimationObserver::UpdateScreen
+//
+// ---------------------------------------------------------------------------
+//
+void TMockMifAnimationObserver::UpdateScreen( const CFbsBitmap& /*aFrame*/, const CFbsBitmap& /*aMask*/ )
+    {
+    RDebug::Print( _L( "TMockMifAnimationObserver::UpdateScreen" ) );
+
+    iTestSuite.iFrameCounter++;
+    }
+
+
+// ---------------------------------------------------------------------------
+// TMockMifAnimationObserver::UpdateScreen
+//
+// ---------------------------------------------------------------------------
+//
+void TMockMifAnimationObserver::UpdateScreen( const CFbsBitmap& /*aFrame*/ )
+    {
+    iTestSuite.iFrameCounter++;
+    }
+
+
+
+
+
+// ---------------------------------------------------------------------------
+// CTSanimmif::SetupEmptyL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimmif::SetupEmptyL()
+    {
+    iTestObj = NULL;
+    iDtorKey = TUid::Uid( 0 );
+    User::LeaveIfError( iFs.Connect() );
+    User::LeaveIfError( iFs.ShareProtected() );
+    iWaiter = CTestWaiter::NewL();
+    iFrameCounter = 0;
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimMifPluginTestSuite::SetupObjL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimmif::SetupObjL()
+    {
+    SetupEmptyL();
+    iTestObj = static_cast<CSAnimImagePlugin*>(
+        REComSession::CreateImplementationL(
+            TUid::Uid( KSAnimMifPluginImplUid ), iDtorKey, &iObserver ) );
+    iTestObj->SetSize( TSize( 128, 128 ) );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimMifPluginTestSuite::SetupFileL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimmif::SetupFileL( const TDesC& aFileName )
+    {
+    SetupObjL();
+    iTestObj->Load( iFs, aFileName, iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimMifPluginTestSuite::SetupStillImageNoMaskL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimmif::SetupStillImageNoMaskL()
+    {
+    SetupFileL( KStillImageNoMaskFile );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSanimmif::SetupStillImageL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimmif::SetupStillImageL()
+    {
+    SetupFileL( KStillImageFile );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSanimmif::SetupScaledAnimationL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimmif::SetupScaledAnimationL()
+    {
+    SetupFileL( KScaledAnimationFile );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSanimmif::SetupUnscaledAnimationL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimmif::SetupUnscaledAnimationL()
+    {
+    SetupFileL( KUnscaledAnimationFile );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSanimmif::SetupFinishedL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimmif::SetupFinishedL()
+    {
+    SetupUnscaledAnimationL();
+    iTestObj->Start( iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSanimmif::Teardown
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimmif::Teardown()
+    {
+    delete iTestObj;
+    iTestObj = NULL;
+
+    REComSession::DestroyedImplementation( iDtorKey );
+
+    delete iWaiter;
+    iWaiter = NULL;
+
+    iFs.Close();
+
+    REComSession::FinalClose();
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimMifPluginTestSuite::TestConstructorL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimmif::TestConstructorL()
+    {
+    TAny* ptr = NULL;
+    ptr = REComSession::CreateImplementationL(TUid::Uid( KSAnimMifPluginImplUid ), iDtorKey, &iObserver );
+
+    iTestObj = static_cast<CSAnimImagePlugin*>( ptr );
+  //  EUNIT_ASSERT( iTestObj );
+    delete iTestObj;
+    iTestObj = NULL;
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimMifPluginTestSuite::TestConstructorNoMemoryL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimmif::TestConstructorNoMemoryL()
+    {
+    TAny* ptr = NULL;
+    ptr = REComSession::CreateImplementationL(TUid::Uid( KSAnimMifPluginImplUid ), iDtorKey, &iObserver );
+    //  EUNIT_ASSERT( !ptr );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimMifPluginTestSuite::TestUnknownFileL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimmif::TestUnknownFileL()
+    {
+    iTestObj->Load( iFs, KUnknownFile, iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+   // EUNIT_ASSERT_EQUALS( iWaiter->iStatus.Int(), KErrNotFound );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSanimmif::TestCorruptFileL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimmif::TestCorruptFileL()
+    {
+    iTestObj->Load( iFs, KCorruptFile, iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+  //  EUNIT_ASSERT_EQUALS( iWaiter->iStatus.Int(), KErrCorrupt );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimMifPluginTestSuite::TestNoFramesFileL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimmif::TestNoFramesFileL()
+    {
+    iTestObj->Load( iFs, KNoFramesFile, iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+ //   EUNIT_ASSERT_EQUALS( iWaiter->iStatus.Int(), KErrCorrupt );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimMifPluginTestSuite::TestLoadStillImageL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimmif::TestLoadStillImageL()
+    {
+    iTestObj->Load( iFs, KStillImageFile, iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+  //  EUNIT_ASSERT_EQUALS( iWaiter->iStatus.Int(), KErrNone );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimMifPluginTestSuite::TestLoadScaledAnimationL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimmif::TestLoadScaledAnimationL()
+    {
+    iTestObj->Load( iFs, KScaledAnimationFile, iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+  //  EUNIT_ASSERT_EQUALS( iWaiter->iStatus.Int(), KErrNone );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimMifPluginTestSuite::TestLoadUnscaledAnimationL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimmif::TestLoadUnscaledAnimationL()
+    {
+    iTestObj->Load( iFs, KUnscaledAnimationFile, iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+ //   EUNIT_ASSERT_EQUALS( iWaiter->iStatus.Int(), KErrNone );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimMifPluginTestSuite::TestLoadNoMemoryL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimmif::TestLoadNoMemoryL()
+    {
+    iTestObj->Load( iFs, KUnscaledAnimationFile, iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+   // EUNIT_ASSERT_EQUALS( iWaiter->iStatus.Int(), KErrNoMemory );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimMifPluginTestSuite::TestCancelLoadL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimmif::TestCancelLoadL()
+    {
+    iTestObj->Load( iFs, KUnscaledAnimationFile, iWaiter->iStatus );
+    iWaiter->Activate();
+    iTestObj->Cancel();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+   // EUNIT_ASSERT_EQUALS( iWaiter->iStatus.Int(), KErrNone ); // Load is syncronous
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimMifPluginTestSuite::TestShowStillImageL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimmif::TestShowStillImageL()
+    {
+    iTestObj->Start( iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+  //  EUNIT_ASSERT_EQUALS( iWaiter->iStatus.Int(), KErrNone );
+ //   EUNIT_ASSERT_EQUALS( iFrameCounter, 1 );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimMifPluginTestSuite::TestShowAnimationL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimmif::TestShowAnimationL()
+    {
+    iTestObj->Start( iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+   // EUNIT_ASSERT_EQUALS( iWaiter->iStatus.Int(), KErrNone );
+   // EUNIT_ASSERT( iFrameCounter > 1 );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimMifPluginTestSuite::TestCancelStillImageL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimmif::TestCancelStillImageL()
+    {
+    iTestObj->Start( iWaiter->iStatus );
+    iWaiter->Activate();
+    iTestObj->Cancel();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+   // EUNIT_ASSERT_EQUALS( iWaiter->iStatus.Int(), KErrCancel );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSanimmif::TestCancelAnimationL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimmif::TestCancelAnimationL()
+    {
+    iTestObj->Start( iWaiter->iStatus );
+    iWaiter->Activate();
+    iTestObj->Cancel();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+  //  EUNIT_ASSERT_EQUALS( iWaiter->iStatus.Int(), KErrCancel );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSanimmif::TestCancelNotActiveL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimmif::TestCancelNotActiveL()
+    {
+    iTestObj->Cancel();
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimMifPluginTestSuite::TestShowBeforeLoadL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimmif::TestShowBeforeLoadL()
+    {
+    //EUNIT_ASSERT_PANIC( iTestObj->Start( iWaiter->iStatus ), "STARTUPANIMATION", 2 );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSanimmif::TestSetDisplayModeL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimmif::TestSetDisplayModeL()
+    {
+    iTestObj->SetDisplayMode( EGray2 );
+    iTestObj->Load( iFs, KStillImageFile, iWaiter->iStatus );
+    iTestObj->SetDisplayMode( ENone );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+  //  EUNIT_ASSERT_EQUALS( iWaiter->iStatus.Int(), KErrNone );
+    iTestObj->SetDisplayMode( EColor16MA );
+    iTestObj->SetDisplayMode( EColor16MU );
+    iTestObj->Start( iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+   // EUNIT_ASSERT_EQUALS( iWaiter->iStatus.Int(), KErrNone );
+    iTestObj->SetDisplayMode( EColor256 );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimMifPluginTestSuite::TestSetSizeL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimmif::TestSetSizeL()
+    {
+    iTestObj->SetSize( TSize( 10, 10 ) );
+    iTestObj->Load( iFs, KStillImageFile, iWaiter->iStatus );
+    iTestObj->SetSize( TSize( 10000, 10000 ) );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+  //  EUNIT_ASSERT_EQUALS( iWaiter->iStatus.Int(), KErrNone );
+    iTestObj->SetSize( TSize( 0, 0 ) );
+    iTestObj->SetSize( TSize( 2, 1000 ) );
+    iTestObj->Start( iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+  //  EUNIT_ASSERT_EQUALS( iWaiter->iStatus.Int(), KErrNone );
+    iTestObj->SetSize( TSize( 1, 1 ) );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimMifPluginTestSuite::TestSetFrameDelayL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimmif::TestSetFrameDelayL()
+    {
+    iTestObj->SetFrameDelay( 100 );
+    iTestObj->Load( iFs, KUnscaledAnimationFile, iWaiter->iStatus );
+    iTestObj->SetFrameDelay( 0 );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+  //  EUNIT_ASSERT_EQUALS( iWaiter->iStatus.Int(), KErrNone );
+    iTestObj->SetFrameDelay( 12000 );
+    iTestObj->SetFrameDelay( 50 );
+    iTestObj->Start( iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+    //EUNIT_ASSERT_EQUALS( iWaiter->iStatus.Int(), KErrNone );
+    iTestObj->SetFrameDelay( 3 );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimMifPluginTestSuite::TestBackroundColourL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimmif::TestBackroundColourL()
+    {
+    TRgb colour = iTestObj->BackroundColour();
+   // EUNIT_ASSERT_EQUALS( colour, TRgb() ); // Empty
+    return KErrNone;
+    }
+
+
+
+// -----------------------------------------------------------------------------
+// CTSanimmif::ExampleL
+// Example test method function.
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TInt CTSanimmif::ExampleL( CStifItemParser& aItem )
+    {
+
+    // Print to UI
+    _LIT( KTSanimmif, "TSanimmif" );
+    _LIT( KExample, "In Example" );
+    TestModuleIf().Printf( 0, KTSanimmif, KExample );
+    // Print to log file
+    iLog->Log( KExample );
+
+    TInt i = 0;
+    TPtrC string;
+    _LIT( KParam, "Param[%i]: %S" );
+    while ( aItem.GetNextString ( string ) == KErrNone )
+        {
+        TestModuleIf().Printf( i, KTSanimmif, 
+                                KParam, i, &string );
+        i++;
+        }
+
+    return KErrNone;
+
+    }
+
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/TSanimmif/src/testwaiter.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,92 @@
+/*
+* 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 the License "Symbian Foundation License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Implementation of CTestWaiter class
+*
+*/
+
+
+#include "testwaiter.h"
+
+#pragma tagging OFF // To disable CodeTest tagging
+
+// ======== MEMBER FUNCTIONS ========
+
+// ---------------------------------------------------------------------------
+// CTestWaiter::NewL
+//
+// ---------------------------------------------------------------------------
+//
+CTestWaiter* CTestWaiter::NewL()
+    {
+    CTestWaiter* self = new( ELeave ) CTestWaiter;
+    return self;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTestWaiter::~CTestWaiter
+//
+// ---------------------------------------------------------------------------
+//
+CTestWaiter::~CTestWaiter()
+    {
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTestWaiter::Activate
+//
+// ---------------------------------------------------------------------------
+//
+void CTestWaiter::Activate()
+    {
+    __ASSERT_ALWAYS( !IsActive(), User::Invariant() );
+
+    SetActive();
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTestWaiter::CTestWaiter
+//
+// ---------------------------------------------------------------------------
+//
+CTestWaiter::CTestWaiter()
+  : CActive( EPriorityStandard )
+    {
+    CActiveScheduler::Add( this );
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTestWaiter::DoCancel
+//
+// ---------------------------------------------------------------------------
+//
+void CTestWaiter::DoCancel()
+    {
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTestWaiter::RunL
+//
+// ---------------------------------------------------------------------------
+//
+void CTestWaiter::RunL()
+    {
+    CActiveScheduler::Stop();
+    }
+
+#pragma tagging ON // To stop disabling CodeTest tagging
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/TSanimmmf/Bmarm/TSanimmmfpluginU.DEF	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,3 @@
+EXPORTS
+	LibEntryL__FR13CTestModuleIf @ 1 NONAME R3UNUSED ; LibEntryL(CTestModuleIf &)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/TSanimmmf/Bwins/TSanimmmfpluginu.def	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,3 @@
+EXPORTS
+	?LibEntryL@@YAPAVCScriptBase@@AAVCTestModuleIf@@@Z @ 1 NONAME ; class CScriptBase * __cdecl LibEntryL(class CTestModuleIf &)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/TSanimmmf/conf/UI_TSanimmmf.cfg	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,207 @@
+[Test]
+title Example
+create TSanimmmf foobar
+foobar Example pa ra me ters
+delete foobar
+[Endtest] 
+
+
+[Test]
+title TestConstructor
+create TSanimmmf MMFPlugin
+MMFPlugin SetupEmpty
+MMFPlugin TestConstructor
+MMFPlugin Teardown
+delete MMFPlugin
+[Endtest]
+
+[Test]
+title TestConstructorNoMemory
+create TSanimmmf MMFPlugin
+MMFPlugin SetupEmpty
+MMFPlugin TestConstructorNoMemory
+MMFPlugin Teardown
+delete MMFPlugin
+[Endtest]
+
+[Test]
+title Setup8bitMonoTone
+create TSanimmmf MMFPlugin
+MMFPlugin Setup8bitMonoTone
+delete MMFPlugin
+[Endtest]
+
+
+[Test]
+title TestUnknownFile
+create TSanimmmf MMFPlugin
+MMFPlugin SetupObj
+MMFPlugin TestUnknownFile
+MMFPlugin Teardown
+delete MMFPlugin
+[Endtest]
+
+[Test]
+title TestCorruptFile
+create TSanimmmf MMFPlugin
+MMFPlugin SetupObj
+MMFPlugin TestCorruptFile
+MMFPlugin Teardown
+delete MMFPlugin
+[Endtest]
+
+[Test]
+title TestLoad8bitMonoTone
+create TSanimmmf MMFPlugin
+MMFPlugin SetupObj
+MMFPlugin TestLoad8bitMonoTone
+MMFPlugin Teardown
+delete MMFPlugin
+[Endtest]
+
+[Test]
+title TestLoad16bitMonoTone
+create TSanimmmf MMFPlugin
+MMFPlugin SetupObj
+MMFPlugin TestLoad16bitMonoTone
+MMFPlugin Teardown
+delete MMFPlugin
+[Endtest]
+
+
+[Test]
+title TestLoadGsm6_10Tone
+create TSanimmmf MMFPlugin
+MMFPlugin SetupObj
+MMFPlugin TestLoadGsm6_10Tone
+MMFPlugin Teardown
+delete MMFPlugin
+[Endtest]
+
+[Test]
+title TestLoadNoMemory
+create TSanimmmf MMFPlugin
+MMFPlugin SetupObj
+MMFPlugin TestLoadNoMemory
+MMFPlugin Teardown
+delete MMFPlugin
+[Endtest]
+
+
+[Test]
+title TestCancelLoad
+create TSanimmmf MMFPlugin
+MMFPlugin SetupObj
+MMFPlugin TestCancelLoad
+MMFPlugin Teardown
+delete MMFPlugin
+[Endtest]
+
+
+[Test]
+title Setup16bitMonoTone
+create TSanimmmf MMFPlugin
+MMFPlugin Setup16bitMonoTone
+MMFPlugin TestStart
+MMFPlugin Teardown
+delete MMFPlugin
+[Endtest]
+
+
+[Test]
+title SetupGsm6_10Tone
+create TSanimmmf MMFPlugin
+MMFPlugin SetupGsm6_10Tone
+MMFPlugin TestStart
+MMFPlugin Teardown
+delete MMFPlugin
+[Endtest]
+
+[Test]
+title SetupGsm6_10tone
+create TSanimmmf MMFPlugin
+MMFPlugin SetupGsm6_10Tone
+MMFPlugin TestStart
+MMFPlugin Teardown
+delete MMFPlugin
+[Endtest]
+
+[Test]
+title SetupGsm6_10Tone_cancelStart
+create TSanimmmf MMFPlugin
+MMFPlugin SetupGsm6_10Tone
+MMFPlugin TestCancelStart
+MMFPlugin Teardown
+delete MMFPlugin
+[Endtest]
+
+
+[Test]
+title TestCancelNotActive
+create TSanimmmf MMFPlugin
+MMFPlugin SetupObj
+MMFPlugin TestCancelNotActive
+MMFPlugin Teardown
+delete MMFPlugin
+[Endtest]
+
+
+[Test]
+title SetupGsm6_10Tone
+create TSanimmmf MMFPlugin
+MMFPlugin SetupGsm6_10Tone
+MMFPlugin TestCancelNotActive
+MMFPlugin Teardown
+delete MMFPlugin
+[Endtest]
+
+
+[Test]
+title SetupFinishedL
+create TSanimmmf MMFPlugin
+MMFPlugin SetupFinished
+MMFPlugin TestCancelNotActive
+MMFPlugin Teardown
+delete MMFPlugin
+[Endtest]
+
+[Test]
+title TestLoadGsm6_10Tone
+create TSanimmmf MMFPlugin
+MMFPlugin SetupFinished
+MMFPlugin TestLoadGsm6_10Tone
+MMFPlugin Teardown
+delete MMFPlugin
+[Endtest]
+
+
+[Test]
+title TestLoadNoMemory
+create TSanimmmf MMFPlugin
+MMFPlugin SetupFinished
+MMFPlugin TestLoadNoMemory
+MMFPlugin Teardown
+delete MMFPlugin
+[Endtest]
+
+[Test]
+title TestStartBeforeLoad
+create TSanimmmf MMFPlugin
+MMFPlugin SetupObj
+MMFPlugin TestStartBeforeLoad
+MMFPlugin Teardown
+delete MMFPlugin
+[Endtest]
+
+
+[Test]
+title TestSetVolumeRamp
+create TSanimmmf MMFPlugin
+MMFPlugin SetupObj
+MMFPlugin TestSetVolumeRamp
+MMFPlugin Teardown
+delete MMFPlugin
+[Endtest]
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/TSanimmmf/eabi/TSanimmmfpluginu.def	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,3 @@
+EXPORTS
+	_Z9LibEntryLR13CTestModuleIf @ 1 NONAME
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/TSanimmmf/group/TSanimmmf.iby	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,10 @@
+#ifndef __TSANIMMMF_IBY__
+#define __TSANIMMMF_IBY__
+
+file=ABI_DIR\BUILD_DIR\TSanimmmf.dll                      SHARED_LIB_DIR\TSanimmmf.dll
+
+//data=\epoc32\data\z\system\data\TestFramework.ini             \testframework\TestFramework.ini
+data=\epoc32\data\z\system\data\TSanimmmf.cfg                      \testframework\TSanimmmf.cfg
+
+
+#endif
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/TSanimmmf/group/TSanimmmf.mmp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,88 @@
+/*TYPE TESTCLASS*/
+/*
+* 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: MMP file for STIF Test Framework's TestScripter 
+* testclass test module.
+*
+*/
+
+#include <platform_paths.hrh>
+
+SMPSAFE
+
+TARGET          TSanimmmf.dll
+TARGETTYPE      dll
+UID             0x1000008D 0x101FB3E3
+
+CAPABILITY      ALL -TCB
+/* Remove comments and replace 0x00000000 with correct vendor id */
+// VENDORID     0x00000000
+/* Remove comments and replace 0x00000000 with correct secure id */
+// SECUREID     0x00000000
+
+//TARGETPATH      ?target_path
+DEFFILE         TSanimmmfplugin.def
+
+USERINCLUDE     ../inc 
+
+OS_LAYER_SYSTEMINCLUDE
+
+SOURCEPATH      ../src
+
+
+
+SOURCE          TSanimmmfPlugin.cpp
+SOURCE          TSanimmmfPluginBlocks.cpp
+SOURCE 		testWaiter.cpp
+
+USERINCLUDE     ../inc
+USERINCLUDE     ../../inc
+USERINCLUDE     ../../../../../../inc
+USERINCLUDE     ../../../../sanimengine/inc
+
+LIBRARY         euser.lib
+LIBRARY         stiftestinterface.lib
+LIBRARY         stiftestengine.lib
+LIBRARY         ecom.lib
+LIBRARY         efsrv.lib
+LIBRARY         sanimengine.lib
+
+
+
+EPOCALLOWDLLDATA
+LANG            SC
+
+/*
+START WINS      
+?wins_specific_information
+END
+
+START MARM
+?marm_specific_information
+END
+*/
+// Other possible keywords:
+ 
+// DOCUMENT     ?file, that is not compiled, but added to MSVC project workspace (i.e. release notes)
+/*
+START BITMAP ?target
+TARGETPATH   ?emulated_path_on_target_machine
+HEADER
+SOURCE       ?color_depth ?source_bitmap
+END
+*/
+// DEFFILE ?filename
+// AIF ?filename
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/TSanimmmf/group/TSanimmmfplugin.pkg	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,60 @@
+;
+; 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:
+;
+; 	Installation file for STIF
+;
+
+; Languages
+&EN
+
+; Provide value for uid
+#{"STIF"},(0x00000000),1,1,0,TYPE=SA
+
+; Series60 product id for S60 3.0
+[0x101F7961], 0, 0, 0, {"Series60ProductID"}
+
+; Localised Vendor name
+%{"Nokia"}
+
+; Unique Vendor name
+:"Nokia"
+
+; Logo
+; None
+
+; Package signature - Optional
+; None
+
+; Start of Package body
+
+; Condition blocks
+; None
+
+; Options list
+; None
+
+; Install files
+"\epoc32\release\armv5\udeb\TSanimmmfplugin.dll"   -   "!:\Sys\Bin\TSanimmmfplugin.dll"
+  
+; Embedded SIS 
+; None
+
+; End of Package body
+
+; PKG dependencies
+; None
+
+; PKG capabilities
+; None
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/TSanimmmf/group/TSanimmmfplugin_DoxyFile.txt	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,240 @@
+#
+# 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:
+#
+#
+
+# Doxyfile 1.4.1
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+PROJECT_NAME           = TSanimmmfplugin
+PROJECT_NUMBER         = 
+OUTPUT_DIRECTORY       = x:\TSanimmmfplugin\
+CREATE_SUBDIRS         = NO
+OUTPUT_LANGUAGE        = English
+USE_WINDOWS_ENCODING   = YES
+BRIEF_MEMBER_DESC      = YES
+REPEAT_BRIEF           = YES
+ABBREVIATE_BRIEF       = 
+ALWAYS_DETAILED_SEC    = NO
+INLINE_INHERITED_MEMB  = NO
+FULL_PATH_NAMES        = NO
+STRIP_FROM_PATH        = 
+STRIP_FROM_INC_PATH    = 
+SHORT_NAMES            = NO
+JAVADOC_AUTOBRIEF      = NO
+MULTILINE_CPP_IS_BRIEF = NO
+DETAILS_AT_TOP         = NO
+INHERIT_DOCS           = YES
+DISTRIBUTE_GROUP_DOC   = NO
+TAB_SIZE               = 8
+ALIASES                = 
+OPTIMIZE_OUTPUT_FOR_C  = YES
+OPTIMIZE_OUTPUT_JAVA   = NO
+SUBGROUPING            = YES
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+EXTRACT_ALL            = YES
+EXTRACT_PRIVATE        = NO
+EXTRACT_STATIC         = NO
+EXTRACT_LOCAL_CLASSES  = NO
+EXTRACT_LOCAL_METHODS  = NO
+HIDE_UNDOC_MEMBERS     = NO
+HIDE_UNDOC_CLASSES     = NO
+HIDE_FRIEND_COMPOUNDS  = NO
+HIDE_IN_BODY_DOCS      = NO
+INTERNAL_DOCS          = YES
+CASE_SENSE_NAMES       = YES
+HIDE_SCOPE_NAMES       = NO
+SHOW_INCLUDE_FILES     = YES
+INLINE_INFO            = YES
+SORT_MEMBER_DOCS       = YES
+SORT_BRIEF_DOCS        = NO
+SORT_BY_SCOPE_NAME     = NO
+GENERATE_TODOLIST      = NO
+GENERATE_TESTLIST      = NO
+GENERATE_BUGLIST       = NO
+GENERATE_DEPRECATEDLIST= YES
+ENABLED_SECTIONS       = 
+MAX_INITIALIZER_LINES  = 30
+SHOW_USED_FILES        = YES
+SHOW_DIRECTORIES       = YES
+FILE_VERSION_FILTER    = 
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+QUIET                  = NO
+WARNINGS               = YES
+WARN_IF_UNDOCUMENTED   = YES
+WARN_IF_DOC_ERROR      = YES
+WARN_NO_PARAMDOC       = NO
+WARN_FORMAT            = "$file:$line: $text"
+WARN_LOGFILE           = 
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+INPUT                  = x:\TSanimmmfplugin\
+FILE_PATTERNS          = *.h \
+                         *.rh \
+                         *.hrh
+RECURSIVE              = YES
+EXCLUDE                = 
+EXCLUDE_SYMLINKS       = NO
+EXCLUDE_PATTERNS       = 
+EXAMPLE_PATH           = 
+EXAMPLE_PATTERNS       = 
+EXAMPLE_RECURSIVE      = NO
+IMAGE_PATH             = 
+INPUT_FILTER           = 
+FILTER_PATTERNS        = 
+FILTER_SOURCE_FILES    = NO
+#---------------------------------------------------------------------------
+# configuration options related to source browsing
+#---------------------------------------------------------------------------
+SOURCE_BROWSER         = NO
+INLINE_SOURCES         = NO
+STRIP_CODE_COMMENTS    = YES
+REFERENCED_BY_RELATION = YES
+REFERENCES_RELATION    = YES
+VERBATIM_HEADERS       = YES
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+ALPHABETICAL_INDEX     = NO
+COLS_IN_ALPHA_INDEX    = 5
+IGNORE_PREFIX          = 
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+GENERATE_HTML          = NO
+HTML_OUTPUT            = html
+HTML_FILE_EXTENSION    = .html
+HTML_HEADER            = 
+HTML_FOOTER            = 
+HTML_STYLESHEET        = 
+HTML_ALIGN_MEMBERS     = YES
+GENERATE_HTMLHELP      = YES
+CHM_FILE               = 
+HHC_LOCATION           = 
+GENERATE_CHI           = NO
+BINARY_TOC             = YES
+TOC_EXPAND             = YES
+DISABLE_INDEX          = YES
+ENUM_VALUES_PER_LINE   = 4
+GENERATE_TREEVIEW      = YES
+TREEVIEW_WIDTH         = 250
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+GENERATE_LATEX         = NO
+LATEX_OUTPUT           = latex
+LATEX_CMD_NAME         = latex
+MAKEINDEX_CMD_NAME     = makeindex
+COMPACT_LATEX          = NO
+PAPER_TYPE             = a4wide
+EXTRA_PACKAGES         = 
+LATEX_HEADER           = 
+PDF_HYPERLINKS         = NO
+USE_PDFLATEX           = NO
+LATEX_BATCHMODE        = NO
+LATEX_HIDE_INDICES     = NO
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+GENERATE_RTF           = YES
+RTF_OUTPUT             = Doc
+COMPACT_RTF            = YES
+RTF_HYPERLINKS         = YES
+RTF_STYLESHEET_FILE    = 
+RTF_EXTENSIONS_FILE    = 
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+GENERATE_MAN           = NO
+MAN_OUTPUT             = man
+MAN_EXTENSION          = .3
+MAN_LINKS              = NO
+#---------------------------------------------------------------------------
+# configuration options related to the XML output
+#---------------------------------------------------------------------------
+GENERATE_XML           = NO
+XML_OUTPUT             = xml
+XML_SCHEMA             = 
+XML_DTD                = 
+XML_PROGRAMLISTING     = YES
+#---------------------------------------------------------------------------
+# configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+GENERATE_AUTOGEN_DEF   = NO
+#---------------------------------------------------------------------------
+# configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+GENERATE_PERLMOD       = NO
+PERLMOD_LATEX          = NO
+PERLMOD_PRETTY         = YES
+PERLMOD_MAKEVAR_PREFIX = 
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor   
+#---------------------------------------------------------------------------
+ENABLE_PREPROCESSING   = YES
+MACRO_EXPANSION        = YES
+EXPAND_ONLY_PREDEF     = NO
+SEARCH_INCLUDES        = YES
+INCLUDE_PATH           = 
+INCLUDE_FILE_PATTERNS  = 
+PREDEFINED             = NONSHARABLE_CLASS
+EXPAND_AS_DEFINED      = 
+SKIP_FUNCTION_MACROS   = YES
+#---------------------------------------------------------------------------
+# Configuration::additions related to external references   
+#---------------------------------------------------------------------------
+TAGFILES               = 
+GENERATE_TAGFILE       = 
+ALLEXTERNALS           = NO
+EXTERNAL_GROUPS        = YES
+PERL_PATH              = /usr/bin/perl
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool   
+#---------------------------------------------------------------------------
+CLASS_DIAGRAMS         = YES
+HIDE_UNDOC_RELATIONS   = YES
+HAVE_DOT               = NO
+CLASS_GRAPH            = YES
+COLLABORATION_GRAPH    = YES
+GROUP_GRAPHS           = YES
+UML_LOOK               = NO
+TEMPLATE_RELATIONS     = YES
+INCLUDE_GRAPH          = YES
+INCLUDED_BY_GRAPH      = YES
+CALL_GRAPH             = NO
+GRAPHICAL_HIERARCHY    = YES
+DIRECTORY_GRAPH        = YES
+DOT_IMAGE_FORMAT       = png
+DOT_PATH               = 
+DOTFILE_DIRS           = 
+MAX_DOT_GRAPH_WIDTH    = 1024
+MAX_DOT_GRAPH_HEIGHT   = 1024
+MAX_DOT_GRAPH_DEPTH    = 0
+DOT_TRANSPARENT        = NO
+DOT_MULTI_TARGETS      = NO
+GENERATE_LEGEND        = YES
+DOT_CLEANUP            = YES
+#---------------------------------------------------------------------------
+# Configuration::additions related to the search engine   
+#---------------------------------------------------------------------------
+SEARCHENGINE           = NO
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/TSanimmmf/group/bld.inf	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,60 @@
+/*
+* 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:
+*
+*/
+
+PRJ_PLATFORMS
+// specify the platforms your component needs to be built for here
+// defaults to WINS MARM so you can ignore this if you just build these
+	
+	DEFAULT
+
+PRJ_TESTEXPORTS
+// NOTE: If using ARS requirements all export operations should be done under this.
+// 'abld test export'
+
+PRJ_EXPORTS
+// Specify the source file followed by its destination here
+// copy will be used to copy the source file to its destination
+// If there's no destination then the source file will be copied
+// to the same name in \epoc32\include
+// Example: 
+/*
+\agnmodel\inc\AGMCOMON.H
+*/
+
+PRJ_TESTMMPFILES
+
+	TSanimmmf.mmp
+
+PRJ_MMPFILES
+
+	TSanimmmf.mmp
+
+// Specify the .mmp files required for building the important component
+// releasables.
+//
+// Specify "tidy" if the component you need to build doesn't need to be
+// released. Specify "ignore" if the MMP file exists but should be
+// ignored.
+// Example:
+/*
+\agnmodel\group\agnmodel.mmp
+#if defined(MARM)
+\agnmodel\group\agsvexe.mmp
+#endif
+*/
+
+//  End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/TSanimmmf/inc/TSanimmmfplugin.h	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,226 @@
+/*
+* 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: STIF testclass declaration
+*
+*/
+
+#ifndef TSANIMMMFPLUGIN_H
+#define TSANIMMMFPLUGIN_H
+
+//  INCLUDES
+#include <StifLogger.h>
+#include <TestScripterInternal.h>
+#include <StifTestModule.h>
+#include <TestclassAssert.h>
+
+// Praveen
+#include <e32def.h>
+#include <f32file.h>
+
+class CSAnimTonePlugin;
+class CTestWaiter;
+// Praveen
+// CONSTANTS
+//const ?type ?constant_var = ?constant;
+
+// MACROS
+//#define ?macro ?macro_def
+#define TEST_CLASS_VERSION_MAJOR 0
+#define TEST_CLASS_VERSION_MINOR 0
+#define TEST_CLASS_VERSION_BUILD 0
+
+// Logging path
+_LIT( KTSanimmmfpluginLogPath, "\\logs\\testframework\\TSanimmmfplugin\\" ); 
+// Log file
+_LIT( KTSanimmmfpluginLogFile, "TSanimmmfplugin.txt" ); 
+_LIT( KTSanimmmfpluginLogFileWithTitle, "TSanimmmfplugin_[%S].txt" );
+
+// FUNCTION PROTOTYPES
+//?type ?function_name(?arg_list);
+
+// FORWARD DECLARATIONS
+//class ?FORWARD_CLASSNAME;
+class CTSanimmmfplugin;
+
+// DATA TYPES
+//enum ?declaration
+//typedef ?declaration
+//extern ?data_type;
+
+// CLASS DECLARATION
+
+/**
+*  CTSanimmmfplugin test class for STIF Test Framework TestScripter.
+*  ?other_description_lines
+*
+*  @lib ?library
+*  @since ?Series60_version
+*/
+NONSHARABLE_CLASS(CTSanimmmfplugin) : public CScriptBase
+    {
+    public:  // Constructors and destructor
+
+        /**
+        * Two-phased constructor.
+        */
+        static CTSanimmmfplugin* NewL( CTestModuleIf& aTestModuleIf );
+
+        /**
+        * Destructor.
+        */
+        virtual ~CTSanimmmfplugin();
+
+    public: // New functions
+
+        /**
+        * ?member_description.
+        * @since ?Series60_version
+        * @param ?arg1 ?description
+        * @return ?description
+        */
+        //?type ?member_function( ?type ?arg1 );
+
+    public: // Functions from base classes
+
+        /**
+        * From CScriptBase Runs a script line.
+        * @since ?Series60_version
+        * @param aItem Script line containing method name and parameters
+        * @return Symbian OS error code
+        */
+        virtual TInt RunMethodL( CStifItemParser& aItem );
+
+    protected:  // New functions
+
+        /**
+        * ?member_description.
+        * @since ?Series60_version
+        * @param ?arg1 ?description
+        * @return ?description
+        */
+        //?type ?member_function( ?type ?arg1 );
+
+    protected:  // Functions from base classes
+
+        /**
+        * From ?base_class ?member_description
+        */
+        //?type ?member_function();
+
+    private:
+
+        /**
+        * C++ default constructor.
+        */
+        CTSanimmmfplugin( CTestModuleIf& aTestModuleIf );
+
+        /**
+        * By default Symbian 2nd phase constructor is private.
+        */
+        void ConstructL();
+
+        // Prohibit copy constructor if not deriving from CBase.
+        // ?classname( const ?classname& );
+        // Prohibit assigment operator if not deriving from CBase.
+        // ?classname& operator=( const ?classname& );
+
+        /**
+        * Frees all resources allocated from test methods.
+        * @since ?Series60_version
+        */
+        void Delete();
+
+        /**
+        * Test methods are listed below. 
+        */
+
+        /**
+        * Example test method.
+        * @since ?Series60_version
+        * @param aItem Script line containing parameters.
+        * @return Symbian OS error code.
+        */
+        virtual TInt ExampleL( CStifItemParser& aItem );
+        
+        /**
+         * Method used to log version of test class
+         */
+        void SendTestClassVersion();
+
+        //ADD NEW METHOD DEC HERE
+        //[TestMethods] - Do not remove
+
+		TInt SetupEmptyL();
+		TInt SetupObjL();
+		TInt SetupFileL( const TDesC& aFileName );
+		TInt Setup8bitMonoToneL();
+		TInt Setup16bitMonoToneL();
+		TInt SetupGsm6_10ToneL();
+		TInt SetupFinishedL();
+		TInt Teardown();
+
+		TInt TestConstructorL();
+		TInt TestConstructorNoMemoryL();
+		TInt TestUnknownFileL();
+		TInt TestCorruptFileL();
+		TInt TestLoad8bitMonoToneL();
+		TInt TestLoad16bitMonoToneL();
+		TInt TestLoadGsm6_10ToneL();
+		TInt TestLoadNoMemoryL();
+		TInt TestCancelLoadL();
+		TInt TestStartL();
+		TInt TestCancelStartL();
+		TInt TestCancelNotActiveL();
+		TInt TestStartBeforeLoadL();
+		TInt TestSetVolumeL();
+		TInt TestSetVolumeRampL();
+    public:     // Data
+        // ?one_line_short_description_of_data
+        //?data_declaration;
+
+    protected:  // Data
+        // ?one_line_short_description_of_data
+        //?data_declaration;
+
+    private:    // Data
+        
+        // ?one_line_short_description_of_data
+        //?data_declaration;
+
+        // Reserved pointer for future extension
+        //TAny* iReserved;
+
+    public:     // Friend classes
+        //?friend_class_declaration;
+    protected:  // Friend classes
+        //?friend_class_declaration;
+    private:    // Friend classes
+        //?friend_class_declaration;
+		
+    /** File server session used in testing. */
+    RFs iFs;
+
+    /** Instance of the class that this test suite is testing. */
+    CSAnimTonePlugin* iTestObj;
+
+    /** A 32 bit identifer returned by ECom to identify this instance to the framework. */
+    TUid iDtorKey;
+
+    /** For testing async calls. */
+    CTestWaiter* iWaiter;
+    };
+
+#endif      // TSANIMMMFPLUGIN_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/TSanimmmf/inc/testwaiter.h	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,88 @@
+/*
+* 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 the License "Symbian Foundation License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Declaration of CTestWaiter class
+*
+*/
+
+
+#ifndef TESTWAITER_H
+#define TESTWAITER_H
+
+#include <e32base.h>
+
+/**
+*  Stops active scheduler in RunL.
+*
+*  @lib None
+*  @since S60 3.2
+*/
+class CTestWaiter  : public CActive
+    {
+
+public:
+
+    /**
+    * Constructs a CTestWaiter object.
+    *
+    * @return The new object
+    * @since S60 3.2
+    */
+    static CTestWaiter* NewL();
+
+    /**
+    * Destructor.
+    *
+    * @since S60 3.2
+    */
+    virtual ~CTestWaiter();
+
+    /**
+    * Set active.
+    *
+    * @since S60 3.2
+    */
+    void Activate();
+
+protected:
+
+    /**
+    * From CActive.
+    * Implements cancellation of an outstanding request.
+    *
+    * @since S60 3.2
+    */
+    virtual void DoCancel();
+
+    /**
+    * From CActive.
+    * Handles an active object's request completion event.
+    * Never leaves.
+    *
+    * @since S60 3.2
+    */
+    virtual void RunL();
+
+private:
+
+    /**
+    * First phase constructor.
+    *
+    */
+    CTestWaiter();
+
+private: // data
+
+    };
+
+#endif // TESTWAITER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/TSanimmmf/init/TestFramework.ini	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,221 @@
+#
+# This is STIF initialization file
+# Comment lines start with '#'-character.
+# See STIF TestFramework users guide.doc for instructions
+
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+# Set following test engine settings:
+#	- Set Test Reporting mode. TestReportMode's possible values are:
+#		+ 'Summary': Summary of the tested test cases.
+#		+ 'Environment': Hardware and software info.
+#		+ 'TestCases': Test case report.
+#		+ 'FullReport': Set of all above ones.
+#		+ Example 'TestReportMode= Summary TestCases'
+#
+# 	- CreateTestReport setting controls report creation mode
+#		+ YES, Test report will created.
+#		+ NO, No Test report.
+#
+# 	- File path indicates the base path of the test report.
+# 	- File name indicates the name of the test report.
+#
+# 	- File format indicates the type of the test report.
+#		+ TXT, Test report file will be txt type, for example 'TestReport.txt'.
+#		+ HTML, Test report will be html type, for example 'TestReport.html'.
+#   + XML, Test report will be xml type, for example 'TestReport.xml'.
+#          Note, that xml format is available only when output is set to FILE.
+#
+# 	- File output indicates output source of the test report.
+#		+ FILE, Test report logging to file.
+#		+ RDEBUG, Test report logging to using rdebug.
+#
+# 	- File Creation Mode indicates test report overwriting if file exist.
+#		+ OVERWRITE, Overwrites if the Test report file exist.
+#		+ APPEND, Continue logging after the old Test report information if
+#                 report exist.
+# 	- Sets a device reset module's dll name(Reboot).
+#		+ If Nokia specific reset module is not available or it is not correct one
+#		  StifHWResetStub module may use as a template for user specific reset
+#		  module.
+# 	- Sets STIF test measurement disable options. e.g. pluging1 and pluging2 disablation
+#		DisableMeasurement= stifmeasurementplugin01 stifmeasurementplugin02
+#
+
+[Engine_Defaults]
+
+TestReportMode= FullReport    # Possible values are: 'Empty', 'Summary', 'Environment',
+                              #                      'TestCases' or 'FullReport'
+
+CreateTestReport= YES         # Possible values: YES or NO
+
+TestReportFilePath= C:\LOGS\TestFramework\
+TestReportFileName= TestReport
+
+TestReportFormat= TXT         # Possible values: TXT, HTML or XML
+TestReportOutput= FILE        # Possible values: FILE or RDEBUG
+TestReportFileCreationMode= OVERWRITE # Possible values: OVERWRITE or APPEND
+
+DeviceResetDllName= StifResetForNokia.dll # e.g. 'StifHWResetStub.dll' for user specific reseting
+
+DisableMeasurement= stifmeasurementdisablenone  # Possible values are:
+              # 'stifmeasurementdisablenone', 'stifmeasurementdisableall'
+              # 'stifmeasurementplugin01', 'stifmeasurementplugin02',
+              # 'stifmeasurementplugin03', 'stifmeasurementplugin04',
+              # 'stifmeasurementplugin05' or 'stifbappeaprofiler'
+
+Timeout= 0                    # Default timeout value for each test case. In milliseconds
+UITestingSupport= YES        # Possible values: YES or NO
+#SeparateProcesses= YES       # Possible values: YES or NO (default: NO)
+[End_Defaults]
+
+[New_Module]
+ModuleName= testscripter 
+TestCaseFile= c:\testframework\TSanimmmfplugin.cfg
+[End_Module]
+
+
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+
+
+
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+# Module configurations start
+# Modules are added between module tags
+# tags. Module name is specified after ModuleName= tag, like
+# ModuleName= XXXXXXXXX
+# Modules might have initialisation file, specified as
+# IniFile= c:\testframework\YYYYYY
+# Modules might have several configuration files, like
+# TestCaseFile= c:\testframework\NormalCases.txt
+# TestCaseFile= c:\testframework\SmokeCases.txt
+# TestCaseFile= c:\testframework\ManualCases.txt
+
+# (TestCaseFile is synonym for old term ConfigFile)
+
+# Following case specifies demo module settings. Demo module
+# does not read any settings from file, so tags 
+# IniFile and TestCaseFile are not used.
+# In the simplest case it is enough to specify only the
+# name of the test module when adding new test module
+
+
+
+# Load testmoduleXXX, optionally with initialization file and/or test case files
+#[New_Module]
+#ModuleName= testmodulexxx
+
+#TestModuleXXX used initialization file
+#IniFile= c:\testframework\init.txt
+
+#TestModuleXXX used configuration file(s)
+#TestCaseFile= c:\testframework\testcases1.cfg
+#TestCaseFile= c:\testframework\testcases2.cfg
+#TestCaseFile= c:\testframework\manualtestcases.cfg
+
+#[End_Module]
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+
+
+
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+# Set STIF logging overwrite parameters for Logger.
+# 	Hardware and emulator environment logging path and styles can
+# 	be configured from here to overwrite the Logger's implemented values.
+#	
+#	Settings description:
+#	- Indicates option for creation log directory/directories. If log directory/directories
+#         is/are not created by user they will make by software.
+#		+ YES, Create log directory/directories if not allready exist.
+#		+ NO, Log directory/directories not created. Only created one is used.
+#
+#	- Overwrite emulator path setting.
+#		+ Example: If 'EmulatorBasePath= C:\LOGS\TestFramework\' and in code is defined 
+#		           Logger's path 'D:\\LOGS\\Module\\' with those definition the path
+#		           will be 'C:\LOGS\TestFramework\LOGS\Module\'
+#
+#	- Overwrite emulator's logging format.
+#		+ TXT, Log file(s) will be txt type(s), for example 'Module.txt'.
+#		+ HTML, Log file(s) will be html type(s), for example 'Module.html'.
+#
+#	- Overwrited emulator logging output source.
+#		+ FILE, Logging to file(s).
+#		+ RDEBUG, Logging to using rdebug(s).
+#
+#	- Overwrite hardware path setting (Same description as above in emulator path).
+#	- Overwrite hardware's logging format(Same description as above in emulator format).
+#	- Overwrite hardware's logging output source(Same description as above in emulator output).
+#
+#	- File Creation Mode indicates file overwriting if file exist.
+#		+ OVERWRITE, Overwrites if file(s) exist.
+#		+ APPEND, Continue logging after the old logging information if file(s) exist.
+#
+#	- Will thread id include to the log filename.
+#		+ YES, Thread id to log file(s) name, Example filename 'Module_b9.txt'.
+#		+ NO, No thread id to log file(s), Example filename 'Module.txt'.
+#
+#	- Will time stamps include the to log file.
+#		+ YES, Time stamp added to each line in log file(s). Time stamp is 
+#                 for example'12.Nov.2003 115958    LOGGING INFO'
+#		+ NO, No time stamp(s).
+#
+#	- Will line breaks include to the log file.
+#		+ YES, Each logging event includes line break and next log event is in own line.
+#		+ NO, No line break(s).
+#
+#	- Will event ranking include to the log file.
+#		+ YES, Event ranking number added to each line in log file(s). Ranking number
+#                 depends on environment's tics, for example(includes time stamp also)
+#                 '012   12.Nov.2003 115958    LOGGING INFO'
+#		+ NO, No event ranking.
+#
+#	- Will write log file in unicode format.
+#		+ YES, Log file will be written in unicode format
+#		+ NO, Log will be written as normal, not unicode, file.
+#
+
+[Logger_Defaults]
+
+#NOTE: If you want to set Logger using next setting(s) remove comment(s)'#'
+#NOTE: TestEngine and TestServer logging settings cannot change here
+
+#CreateLogDirectories= YES    # Possible values: YES or NO
+
+#EmulatorBasePath= C:\LOGS\TestFramework\
+#EmulatorFormat= HTML         # Possible values: TXT or HTML
+#EmulatorOutput= FILE         # Possible values: FILE or RDEBUG
+
+#HardwareBasePath= D:\LOGS\TestFramework\
+#HardwareFormat= HTML         # Possible values: TXT or HTML
+#HardwareOutput= FILE         # Possible values: FILE or RDEBUG
+
+#FileCreationMode= OVERWRITE  # Possible values: OVERWRITE or APPEND
+
+#ThreadIdToLogFile= YES       # Possible values: YES or NO
+#WithTimeStamp= YES           # Possible values: YES or NO
+#WithLineBreak= YES           # Possible values: YES or NO
+#WithEventRanking= YES        # Possible values: YES or NO
+
+#FileUnicode= YES             # Possible values: YES or NO
+#AddTestCaseTitle= YES        # Possible values: YES or NO
+[End_Logger_Defaults]
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+
+
+
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+# Set filters to be used by ConsoleUI.
+# 	If you want to use filter with ConsoleUI, simply remove comments
+# 	from section below and provide valid filter entries.
+#   Each filter line has to start with "filter= " keyword.
+#   Filter can contain special wildcard characters:
+#     *  which stands for none or any literal;
+#     ?  which stands for single character.
+#   Filters are not case-sensitive.
+
+#[Filters]
+#filter= *math*
+#filter= *radio*
+#[End_Filters]
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+
+# End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/TSanimmmf/rom/TSanimmmf.iby	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,10 @@
+#ifndef __TSANIMMMF_IBY__
+#define __TSANIMMMF_IBY__
+
+file=ABI_DIR\BUILD_DIR\TSanimmmf.dll SHARED_LIB_DIR\TSanimmmf.dll
+
+//data=\epoc32\data\z\system\data\TestFramework.ini             \testframework\TestFramework.ini
+data=\epoc32\data\z\system\data\TSanimmmf.cfg \testframework\TSanimmmf.cfg
+
+
+#endif
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/TSanimmmf/src/TSanimmmfplugin.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,198 @@
+/*
+* 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: This file contains testclass implementation.
+*
+*/
+
+// INCLUDE FILES
+#include <StifTestInterface.h>
+#include "TSanimmmfplugin.h"
+#include <SettingServerClient.h>
+
+// EXTERNAL DATA STRUCTURES
+//extern  ?external_data;
+
+// EXTERNAL FUNCTION PROTOTYPES  
+//extern ?external_function( ?arg_type,?arg_type );
+
+// CONSTANTS
+//const ?type ?constant_var = ?constant;
+
+// MACROS
+//#define ?macro ?macro_def
+
+// LOCAL CONSTANTS AND MACROS
+//const ?type ?constant_var = ?constant;
+//#define ?macro_name ?macro_def
+
+// MODULE DATA STRUCTURES
+//enum ?declaration
+//typedef ?declaration
+
+// LOCAL FUNCTION PROTOTYPES
+//?type ?function_name( ?arg_type, ?arg_type );
+
+// FORWARD DECLARATIONS
+//class ?FORWARD_CLASSNAME;
+
+// ============================= LOCAL FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// ?function_name ?description.
+// ?description
+// Returns: ?value_1: ?description
+//          ?value_n: ?description_line1
+//                    ?description_line2
+// -----------------------------------------------------------------------------
+//
+/*
+?type ?function_name(
+    ?arg_type arg,  // ?description
+    ?arg_type arg)  // ?description
+    {
+
+    ?code  // ?comment
+
+    // ?comment
+    ?code
+    }
+*/
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CTSanimmmfplugin::CTSanimmmfplugin
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// -----------------------------------------------------------------------------
+//
+CTSanimmmfplugin::CTSanimmmfplugin( 
+    CTestModuleIf& aTestModuleIf ):
+        CScriptBase( aTestModuleIf )
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CTSanimmmfplugin::ConstructL
+// Symbian 2nd phase constructor can leave.
+// -----------------------------------------------------------------------------
+//
+void CTSanimmmfplugin::ConstructL()
+    {
+    //Read logger settings to check whether test case name is to be
+    //appended to log file name.
+    RSettingServer settingServer;
+    TInt ret = settingServer.Connect();
+    if(ret != KErrNone)
+        {
+        User::Leave(ret);
+        }
+    // Struct to StifLogger settigs.
+    TLoggerSettings loggerSettings; 
+    // Parse StifLogger defaults from STIF initialization file.
+    ret = settingServer.GetLoggerSettings(loggerSettings);
+    if(ret != KErrNone)
+        {
+        User::Leave(ret);
+        } 
+    // Close Setting server session
+    settingServer.Close();
+
+    TFileName logFileName;
+    
+    if(loggerSettings.iAddTestCaseTitle)
+        {
+        TName title;
+        TestModuleIf().GetTestCaseTitleL(title);
+        logFileName.Format(KTSanimmmfpluginLogFileWithTitle, &title);
+        }
+    else
+        {
+        logFileName.Copy(KTSanimmmfpluginLogFile);
+        }
+
+    iLog = CStifLogger::NewL( KTSanimmmfpluginLogPath, 
+                          logFileName,
+                          CStifLogger::ETxt,
+                          CStifLogger::EFile,
+                          EFalse );
+    
+    SendTestClassVersion();
+    }
+
+// -----------------------------------------------------------------------------
+// CTSanimmmfplugin::NewL
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CTSanimmmfplugin* CTSanimmmfplugin::NewL( 
+    CTestModuleIf& aTestModuleIf )
+    {
+    CTSanimmmfplugin* self = new (ELeave) CTSanimmmfplugin( aTestModuleIf );
+
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop();
+
+    return self;
+
+    }
+
+// Destructor
+CTSanimmmfplugin::~CTSanimmmfplugin()
+    { 
+
+    // Delete resources allocated from test methods
+    Delete();
+
+    // Delete logger
+    delete iLog; 
+
+    }
+
+//-----------------------------------------------------------------------------
+// CTSanimmmfplugin::SendTestClassVersion
+// Method used to send version of test class
+//-----------------------------------------------------------------------------
+//
+void CTSanimmmfplugin::SendTestClassVersion()
+	{
+	TVersion moduleVersion;
+	moduleVersion.iMajor = TEST_CLASS_VERSION_MAJOR;
+	moduleVersion.iMinor = TEST_CLASS_VERSION_MINOR;
+	moduleVersion.iBuild = TEST_CLASS_VERSION_BUILD;
+	
+	TFileName moduleName;
+	moduleName = _L("TSanimmmfplugin.dll");
+
+	TBool newVersionOfMethod = ETrue;
+	TestModuleIf().SendTestModuleVersion(moduleVersion, moduleName, newVersionOfMethod);
+	}
+
+// ========================== OTHER EXPORTED FUNCTIONS =========================
+
+// -----------------------------------------------------------------------------
+// LibEntryL is a polymorphic Dll entry point.
+// Returns: CScriptBase: New CScriptBase derived object
+// -----------------------------------------------------------------------------
+//
+EXPORT_C CScriptBase* LibEntryL( 
+    CTestModuleIf& aTestModuleIf ) // Backpointer to STIF Test Framework
+    {
+
+    return ( CScriptBase* ) CTSanimmmfplugin::NewL( aTestModuleIf );
+
+    }
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/TSanimmmf/src/TSanimmmfpluginBlocks.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,581 @@
+/*
+* 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: This file contains testclass implementation.
+*
+*/
+
+// [INCLUDE FILES] - do not remove
+#include <e32svr.h>
+#include <StifParser.h>
+#include <StifTestInterface.h>
+#include "TSanimmmfplugin.h"
+
+
+// Praveen
+#include "sanimtoneplugin.h"
+#include "testwaiter.h"
+
+#include <ecom/ecom.h>
+
+const TInt KSAnimMmfPluginImplUid = 0x2000B120;
+
+_LIT( KUnknownFile, "C:\\temp\\unknown.wav" );
+_LIT( KCorruptFile, "C:\\temp\\corrupt.wav" );
+_LIT( K8bitMonoFile, "C:\\temp\\sine-8bit-mono.wav" );
+_LIT( K16bitMonoFile, "C:\\temp\\sine-16bit-mono.wav" );
+_LIT( KGsm6_10File, "C:\\temp\\sine-gsm-6-10.wav" );
+// EXTERNAL DATA STRUCTURES
+//extern  ?external_data;
+
+// EXTERNAL FUNCTION PROTOTYPES  
+//extern ?external_function( ?arg_type,?arg_type );
+
+// CONSTANTS
+//const ?type ?constant_var = ?constant;
+
+// MACROS
+//#define ?macro ?macro_def
+
+// LOCAL CONSTANTS AND MACROS
+//const ?type ?constant_var = ?constant;
+//#define ?macro_name ?macro_def
+
+// MODULE DATA STRUCTURES
+//enum ?declaration
+//typedef ?declaration
+
+// LOCAL FUNCTION PROTOTYPES
+//?type ?function_name( ?arg_type, ?arg_type );
+
+// FORWARD DECLARATIONS
+//class ?FORWARD_CLASSNAME;
+
+// ============================= LOCAL FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// ?function_name ?description.
+// ?description
+// Returns: ?value_1: ?description
+//          ?value_n: ?description_line1
+//                    ?description_line2
+// -----------------------------------------------------------------------------
+//
+/*
+?type ?function_name(
+    ?arg_type arg,  // ?description
+    ?arg_type arg)  // ?description
+    {
+
+    ?code  // ?comment
+
+    // ?comment
+    ?code
+    }
+*/
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CTSanimmmfplugin::Delete
+// Delete here all resources allocated and opened from test methods. 
+// Called from destructor. 
+// -----------------------------------------------------------------------------
+//
+void CTSanimmmfplugin::Delete() 
+    {
+
+    }
+
+// -----------------------------------------------------------------------------
+// CTSanimmmfplugin::RunMethodL
+// Run specified method. Contains also table of test mothods and their names.
+// -----------------------------------------------------------------------------
+//
+TInt CTSanimmmfplugin::RunMethodL( 
+    CStifItemParser& aItem ) 
+    {
+
+    static TStifFunctionInfo const KFunctions[] =
+        {  
+        // Copy this line for every implemented function.
+        // First string is the function name used in TestScripter script file.
+        // Second is the actual implementation member function. 
+        ENTRY( "Example", CTSanimmmfplugin::ExampleL ),
+		ENTRY( "SetupEmpty", CTSanimmmfplugin::SetupEmptyL),
+		ENTRY( "SetupObj", CTSanimmmfplugin::SetupObjL),
+		//ENTRY( "SetupFile", CTSanimmmfplugin::SetupFileL),
+		ENTRY( "Setup8bitMonoTone", CTSanimmmfplugin::Setup8bitMonoToneL),
+		ENTRY( "Setup16bitMonoTone", CTSanimmmfplugin::Setup16bitMonoToneL),
+		ENTRY( "SetupGsm6_10Tone", CTSanimmmfplugin::SetupGsm6_10ToneL),
+		ENTRY( "SetupFinished", CTSanimmmfplugin::SetupFinishedL),
+		ENTRY( "Teardown", CTSanimmmfplugin::Teardown),
+		ENTRY( "TestConstructor", CTSanimmmfplugin::TestConstructorL),
+		ENTRY( "TestConstructorNoMemory", CTSanimmmfplugin::TestConstructorNoMemoryL),
+		ENTRY( "TestUnknownFile", CTSanimmmfplugin::TestUnknownFileL),
+		ENTRY( "TestCorruptFile", CTSanimmmfplugin::TestCorruptFileL),
+		ENTRY( "TestLoad8bitMonoTone", CTSanimmmfplugin::TestLoad8bitMonoToneL),
+		ENTRY( "TestLoad16bitMonoTone", CTSanimmmfplugin::TestLoad16bitMonoToneL),
+		ENTRY( "TestLoadGsm6_10Tone", CTSanimmmfplugin::TestLoadGsm6_10ToneL),
+		ENTRY( "TestLoadNoMemory", CTSanimmmfplugin::TestLoadNoMemoryL),
+		ENTRY( "TestCancelLoad", CTSanimmmfplugin::TestCancelLoadL),
+		ENTRY( "TestStart", CTSanimmmfplugin::TestStartL),
+		ENTRY( "TestCancelStart", CTSanimmmfplugin::TestCancelStartL),
+		ENTRY( "TestCancelNotActive", CTSanimmmfplugin::TestCancelNotActiveL),
+		ENTRY( "TestStartBeforeLoad", CTSanimmmfplugin::TestStartBeforeLoadL),
+		ENTRY( "TestSetVolume", CTSanimmmfplugin::TestSetVolumeL),
+		ENTRY( "TestSetVolumeRamp", CTSanimmmfplugin::TestSetVolumeRampL)
+        //ADD NEW ENTRY HERE
+        // [test cases entries] - Do not remove
+
+        };
+
+    const TInt count = sizeof( KFunctions ) / 
+                        sizeof( TStifFunctionInfo );
+
+    return RunInternalL( KFunctions, count, aItem );
+
+    }
+
+
+/*
+void CTSanimmmfplugin::ConstructL()
+    {
+    REComSession::FinalClose();
+    // The ConstructL from the base class CEUnitTestSuiteClass must be called.
+    // It generates the test case table.
+    //CEUnitTestSuiteClass::ConstructL();
+	
+    }
+*/
+
+// ---------------------------------------------------------------------------
+// CTSanimmmfplugin::SetupEmptyL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimmmfplugin::SetupEmptyL()
+    {
+    iTestObj = NULL;
+    iDtorKey = TUid::Uid( 0 );
+    User::LeaveIfError( iFs.Connect() );
+    User::LeaveIfError( iFs.ShareProtected() );
+    iWaiter = CTestWaiter::NewL();
+	return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSanimmmfPlugin::SetupObjL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimmmfplugin::SetupObjL()
+    {
+
+    SetupEmptyL();
+    iTestObj = static_cast<CSAnimTonePlugin*>(
+        REComSession::CreateImplementationL(
+            TUid::Uid( KSAnimMmfPluginImplUid ), iDtorKey ) );
+	return KErrNone;
+    }
+// ---------------------------------------------------------------------------
+// CSAnimMmfpluginTestSuite::SetupFileL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimmmfplugin::SetupFileL( const TDesC& aFileName )
+    {
+	//CStifItemParser aItem;
+    SetupObjL();
+    iTestObj->Load( iFs, aFileName, iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+	return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSanimmmfplugin::Setup8bitMonoToneL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimmmfplugin::Setup8bitMonoToneL()
+    {
+    /*
+    [Test]
+    title Setup8bitMonotone
+    create TSanimmmf MMFPlugin
+    MMFPlugin Setup8bitMonotone
+    delete MMFPlugin
+    [Endtest]
+    */
+    // 8 bit Mono is not supported ??
+    SetupFileL( K8bitMonoFile );
+	return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSanimmmfPlugin::Setup16bitMonoToneL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimmmfplugin::Setup16bitMonoToneL()
+    {
+    SetupFileL( K16bitMonoFile );
+	return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSanimmmfplugin::SetupGsm6_10ToneL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimmmfplugin::SetupGsm6_10ToneL()
+    {
+    SetupFileL( KGsm6_10File );
+	return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSanimmmfplugin::SetupFinishedL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimmmfplugin::SetupFinishedL()
+    {
+    Setup16bitMonoToneL();
+    iTestObj->Start( iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+	return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSanimmmfplugin::Teardown
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimmmfplugin::Teardown()
+    {
+    delete iTestObj;
+    iTestObj = NULL;
+
+    REComSession::DestroyedImplementation( iDtorKey );
+
+    delete iWaiter;
+    iWaiter = NULL;
+
+    iFs.Close();
+
+    REComSession::FinalClose();
+	return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSanimmmfPlugin::TestConstructorL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimmmfplugin::TestConstructorL()
+    {
+    TAny* ptr = NULL;
+   // EUNIT_ASSERT_NO_LEAVE( ptr = REComSession::CreateImplementationL(
+     //   TUid::Uid( KSAnimMmfPluginImplUid ), iDtorKey ) );
+	ptr = REComSession::CreateImplementationL(TUid::Uid( KSAnimMmfPluginImplUid ), iDtorKey );
+
+    iTestObj = static_cast<CSAnimTonePlugin*>( ptr );
+   // EUNIT_ASSERT( iTestObj );
+    delete iTestObj;
+    iTestObj = NULL;
+	return KErrNone;
+    }
+
+// ---------------------------------------------------------------------------
+// CTSanimmmfplugin::TestConstructorNoMemoryL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimmmfplugin::TestConstructorNoMemoryL()
+    {
+    TAny* ptr = NULL;
+    //EUNIT_ASSERT_SPECIFIC_LEAVE( ptr = REComSession::CreateImplementationL(
+    //    TUid::Uid( KSAnimMmfPluginImplUid ), iDtorKey ), KErrNoMemory );
+	ptr = REComSession::CreateImplementationL(TUid::Uid( KSAnimMmfPluginImplUid ), iDtorKey );
+   // EUNIT_ASSERT( !ptr );
+	return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSanimmmfplugin::TestUnknownFileL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimmmfplugin::TestUnknownFileL()
+    {
+    iTestObj->Load( iFs, KUnknownFile, iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+     if ( iWaiter->iStatus.Int() == KErrNotFound )
+         return KErrNone;
+     return KErrNone;
+     
+    }
+
+// ---------------------------------------------------------------------------
+// CTSanimmmfplugin::TestCorruptFileL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimmmfplugin::TestCorruptFileL()
+    {
+    iTestObj->Load( iFs, KCorruptFile, iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+    if ( iWaiter->iStatus.Int() == KErrNotSupported ) // For some reason, MMF returns KErrNotSupported...
+        return KErrNone;
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSanimmmfplugin::TestLoad8bitMonoToneL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimmmfplugin::TestLoad8bitMonoToneL()
+    {
+    iTestObj->Load( iFs, K8bitMonoFile, iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+    STIF_ASSERT_EQUALS( iWaiter->iStatus.Int(), KErrNone );
+	return KErrNone;
+    }
+
+// ---------------------------------------------------------------------------
+// CTSanimmmfplugin::TestLoad16bitMonoToneL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimmmfplugin::TestLoad16bitMonoToneL()
+    {
+    iTestObj->Load( iFs, K16bitMonoFile, iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+    STIF_ASSERT_EQUALS( iWaiter->iStatus.Int(), KErrNone );
+	return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSanimmmfplugin::TestLoadGsm6_10ToneL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimmmfplugin::TestLoadGsm6_10ToneL()
+    {
+    iTestObj->Load( iFs, KGsm6_10File, iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+    if ( iWaiter->iStatus.Int() == KErrNone || iWaiter->iStatus.Int()  == KErrNotFound )
+        return KErrNone;
+    return KErrNone;
+    }
+
+// ---------------------------------------------------------------------------
+// CTSanimmmfplugin::TestLoadNoMemoryL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimmmfplugin::TestLoadNoMemoryL()
+    {
+    iTestObj->Load( iFs, KGsm6_10File, iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+     if (iWaiter->iStatus.Int() == KErrNoMemory || iWaiter->iStatus.Int() == KErrNone || 
+             iWaiter->iStatus.Int() == KErrGeneral   )
+         return KErrNone;
+	return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSanimmmfPlugin::TestCancelLoadL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimmmfplugin::TestCancelLoadL()
+    {
+    iTestObj->Load( iFs, KGsm6_10File, iWaiter->iStatus );
+    iWaiter->Activate();
+    iTestObj->Cancel();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+    STIF_ASSERT_EQUALS( iWaiter->iStatus.Int(), KErrCancel );
+	return KErrNone;
+    }
+
+// ---------------------------------------------------------------------------
+// CTSanimmmfplugin::TestStartL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimmmfplugin::TestStartL()
+    {
+    iTestObj->Start( iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+    STIF_ASSERT_EQUALS( iWaiter->iStatus.Int(), KErrNone );
+	return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSanimmmfplugin::TestCancelStartL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimmmfplugin::TestCancelStartL()
+    {
+    iTestObj->Start( iWaiter->iStatus );
+    iWaiter->Activate();
+    iTestObj->Cancel();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+    STIF_ASSERT_EQUALS( iWaiter->iStatus.Int(), KErrCancel );
+	return KErrNone;
+    }
+// ---------------------------------------------------------------------------
+// CTSanimmmfplugin::TestCancelNotActiveL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimmmfplugin::TestCancelNotActiveL()
+    {
+    iTestObj->Cancel();
+	return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSanimmmfPplugin::TestStartBeforeLoadL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimmmfplugin::TestStartBeforeLoadL()
+    {
+  // iTestObj->Start( iWaiter->iStatus );
+	return KErrNone;
+    }
+// ---------------------------------------------------------------------------
+// CTSanimmmfplugin::TestSetVolumeL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimmmfplugin::TestSetVolumeL()
+    {
+    iTestObj->SetVolume( 1 );
+    iTestObj->Load( iFs, KGsm6_10File, iWaiter->iStatus );
+    iTestObj->SetVolume( 0 );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+    STIF_ASSERT_EQUALS( iWaiter->iStatus.Int(), KErrNone );
+    iTestObj->SetVolume( 12 );
+    iTestObj->SetVolume( 5 );
+    iTestObj->Start( iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+    STIF_ASSERT_EQUALS( iWaiter->iStatus.Int(), KErrNone );
+    iTestObj->SetVolume( 3 );
+	return KErrNone;
+    }
+// ---------------------------------------------------------------------------
+// CTSanimmmfplugin::TestSetVolumeRampL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimmmfplugin::TestSetVolumeRampL()
+    {
+    iTestObj->SetVolumeRamp( 1000000 );
+    iTestObj->Load( iFs, KGsm6_10File, iWaiter->iStatus );
+    iTestObj->SetVolumeRamp( 0 );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+    //EUNIT_ASSERT_EQUALS( iWaiter->iStatus.Int(), KErrNone );
+    iTestObj->SetVolumeRamp( 12000000 );
+    iTestObj->SetVolumeRamp( 5000 );
+    iTestObj->Start( iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+    STIF_ASSERT_EQUALS( iWaiter->iStatus.Int(), KErrNone );
+    iTestObj->SetVolumeRamp( 300 );
+	return KErrNone;
+    }
+
+// Praveen
+// -----------------------------------------------------------------------------
+// CTSanimmmfplugin::ExampleL
+// Example test method function.
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TInt CTSanimmmfplugin::ExampleL( CStifItemParser& aItem )
+    {
+
+    // Print to UI
+    _LIT( KTSanimmmfplugin, "TSanimmmfplugin" );
+    _LIT( KExample, "In Example" );
+    TestModuleIf().Printf( 0, KTSanimmmfplugin, KExample );
+    // Print to log file
+    iLog->Log( KExample );
+
+    TInt i = 0;
+    TPtrC string;
+    _LIT( KParam, "Param[%i]: %S" );
+    while ( aItem.GetNextString ( string ) == KErrNone )
+        {
+        TestModuleIf().Printf( i, KTSanimmmfplugin, 
+                                KParam, i, &string );
+        i++;
+        }
+
+    return KErrNone;
+
+    }
+
+// -----------------------------------------------------------------------------
+// CTSanimmmfplugin::?member_function
+// ?implementation_description
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+/*
+TInt CTSanimmmfplugin::?member_function(
+   CItemParser& aItem )
+   {
+
+   ?code
+
+   }
+*/
+
+// ========================== OTHER EXPORTED FUNCTIONS =========================
+// None
+
+//  [End of File] - Do not remove
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/TSanimmmf/src/testwaiter.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,92 @@
+/*
+* 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 the License "Symbian Foundation License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Implementation of CTestWaiter class
+*
+*/
+
+
+#include "testwaiter.h"
+
+#pragma tagging OFF // To disable CodeTest tagging
+
+// ======== MEMBER FUNCTIONS ========
+
+// ---------------------------------------------------------------------------
+// CTestWaiter::NewL
+//
+// ---------------------------------------------------------------------------
+//
+CTestWaiter* CTestWaiter::NewL()
+    {
+    CTestWaiter* self = new( ELeave ) CTestWaiter;
+    return self;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTestWaiter::~CTestWaiter
+//
+// ---------------------------------------------------------------------------
+//
+CTestWaiter::~CTestWaiter()
+    {
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTestWaiter::Activate
+//
+// ---------------------------------------------------------------------------
+//
+void CTestWaiter::Activate()
+    {
+    __ASSERT_ALWAYS( !IsActive(), User::Invariant() );
+
+    SetActive();
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTestWaiter::CTestWaiter
+//
+// ---------------------------------------------------------------------------
+//
+CTestWaiter::CTestWaiter()
+  : CActive( EPriorityStandard )
+    {
+    CActiveScheduler::Add( this );
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTestWaiter::DoCancel
+//
+// ---------------------------------------------------------------------------
+//
+void CTestWaiter::DoCancel()
+    {
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTestWaiter::RunL
+//
+// ---------------------------------------------------------------------------
+//
+void CTestWaiter::RunL()
+    {
+    CActiveScheduler::Stop();
+    }
+
+#pragma tagging ON // To stop disabling CodeTest tagging
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/Tsanimihl/Bmarm/TsanimihlU.DEF	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,3 @@
+EXPORTS
+	LibEntryL__FR13CTestModuleIf @ 1 NONAME R3UNUSED ; LibEntryL(CTestModuleIf &)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/Tsanimihl/Bwins/Tsanimihlu.def	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,3 @@
+EXPORTS
+	?LibEntryL@@YAPAVCScriptBase@@AAVCTestModuleIf@@@Z @ 1 NONAME ; class CScriptBase * __cdecl LibEntryL(class CTestModuleIf &)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/Tsanimihl/conf/UI_Tsanimihl.cfg	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,201 @@
+
+[Test]
+title TestConstructor
+create Tsanimihl IHLPlugin
+IHLPlugin SetupEmpty
+IHLPlugin TestConstructor
+IHLPlugin Teardown
+delete IHLPlugin
+[Endtest]
+   
+[Test]
+title ConstructorNoMem
+create Tsanimihl IHLPlugin
+IHLPlugin SetupEmpty
+IHLPlugin TestConstructorNoMemory
+IHLPlugin Teardown
+delete IHLPlugin
+[Endtest]
+
+[Test]
+title LoadingFile(Not Found)
+create Tsanimihl IHLPlugin
+IHLPlugin SetupObj
+IHLPlugin TestUnknownFile
+IHLPlugin Teardown
+delete IHLPlugin
+[Endtest]
+
+[Test]
+title LoadingFile(Corrupt)
+create Tsanimihl IHLPlugin
+IHLPlugin SetupObj
+IHLPlugin TestCorruptFile
+IHLPlugin Teardown
+delete IHLPlugin
+[Endtest]
+
+[Test]
+title LoadingFile(MonoChrome)
+create Tsanimihl IHLPlugin
+IHLPlugin SetupObj
+IHLPlugin TestLoadStillImageGray2
+IHLPlugin Teardown
+delete IHLPlugin
+[Endtest]
+
+[Test]
+title LoadingFile(color)
+create Tsanimihl IHLPlugin
+IHLPlugin SetupObj
+IHLPlugin TestLoadStillImageColour
+IHLPlugin Teardown
+delete IHLPlugin
+[Endtest]
+    
+[Test]
+title LoadingFile(Animation)
+create Tsanimihl IHLPlugin
+IHLPlugin SetupObj
+IHLPlugin TestLoadAnimation
+IHLPlugin Teardown
+delete IHLPlugin
+[Endtest]
+
+[Test]
+title LoadingFile(multi frame)
+create Tsanimihl IHLPlugin
+IHLPlugin SetupObj
+IHLPlugin TestLoadMultiFrame
+IHLPlugin Teardown
+delete IHLPlugin
+[Endtest]
+
+[Test]
+title LoadingFile(Still Image,No mem)
+create Tsanimihl IHLPlugin
+IHLPlugin SetupObj
+IHLPlugin TestLoadStillImageNoMemory
+IHLPlugin Teardown
+delete IHLPlugin
+[Endtest]
+
+[Test]
+title LoadingFile(animation,No mem)
+create Tsanimihl IHLPlugin
+IHLPlugin SetupObj
+IHLPlugin TestLoadAnimationNoMemory
+IHLPlugin Teardown
+delete IHLPlugin
+[Endtest]
+
+[Test]
+title LoadingFile(Still Image)
+create Tsanimihl IHLPlugin
+IHLPlugin SetupObj
+IHLPlugin TestCancelLoadStillImage
+IHLPlugin Teardown
+delete IHLPlugin
+[Endtest]
+
+[Test]
+title LoadingFile(animation)
+create Tsanimihl IHLPlugin
+IHLPlugin SetupObj
+IHLPlugin TestCancelLoadAnimation
+IHLPlugin Teardown
+delete IHLPlugin
+[Endtest]
+   
+[Test]
+title ShowingAImage
+create Tsanimihl IHLPlugin
+IHLPlugin SetupObj
+IHLPlugin TestCancelLoadMultiFrame
+IHLPlugin Teardown
+delete IHLPlugin
+[Endtest]  
+    
+[Test]
+title ShowingAImage
+create Tsanimihl IHLPlugin
+IHLPlugin SetupStillImage
+IHLPlugin TestShowStillImage
+IHLPlugin Teardown
+delete IHLPlugin
+[Endtest]  
+    
+[Test]
+title ShowingImageDelay
+create Tsanimihl IHLPlugin
+IHLPlugin SetupStillImage
+IHLPlugin TestShowStillImageWithFrameDelay
+IHLPlugin Teardown
+delete IHLPlugin
+[Endtest]  
+    
+[Test]
+title ShowingAnim
+create Tsanimihl IHLPlugin
+IHLPlugin SetupAnimation
+IHLPlugin TestShowAnimation
+IHLPlugin Teardown
+delete IHLPlugin
+[Endtest]  
+    
+[Test]
+title ShowMultiFrame
+create Tsanimihl IHLPlugin
+IHLPlugin SetupMultiFrame
+IHLPlugin TestShowMultiFrame
+IHLPlugin Teardown
+delete IHLPlugin
+[Endtest]  
+    
+[Test]
+title CancelImage
+create Tsanimihl IHLPlugin
+IHLPlugin SetupStillImage
+IHLPlugin TestCancelPlay
+IHLPlugin Teardown
+delete IHLPlugin
+[Endtest]   
+
+[Test]
+title CancelAnimation
+create Tsanimihl IHLPlugin
+IHLPlugin SetupAnimation
+IHLPlugin TestCancelPlay
+IHLPlugin Teardown
+delete IHLPlugin
+[Endtest]   
+
+   
+[Test]
+title GetBGColor
+create Tsanimihl IHLPlugin
+IHLPlugin SetupStillImage
+IHLPlugin TestBgColourBeforeLoad
+IHLPlugin Teardown
+delete IHLPlugin
+[Endtest]   
+
+
+[Test]
+title FetchBGColor
+create Tsanimihl IHLPlugin
+IHLPlugin SetupStillImageWithBgColour
+IHLPlugin TestBgColour
+IHLPlugin Teardown
+delete IHLPlugin
+[Endtest]    
+
+[Test]
+title ShowStillImage
+create Tsanimihl IHLPlugin
+IHLPlugin SetupObj
+IHLPlugin TestScaleStillImage
+IHLPlugin Teardown
+delete IHLPlugin
+[Endtest]
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/Tsanimihl/eabi/Tsanimihlu.def	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,3 @@
+EXPORTS
+	_Z9LibEntryLR13CTestModuleIf @ 1 NONAME
+
Binary file startupservices/startupanimation/tsrc/Tsanimihl/group/MON.dat has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/Tsanimihl/group/Tsanimihl.mmp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,87 @@
+/*TYPE TESTCLASS*/
+/*
+* 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: MMP file for STIF Test Framework's TestScripter 
+* testclass test module.
+*
+*/
+
+#include <platform_paths.hrh>
+
+SMPSAFE
+
+TARGET          Tsanimihl.dll
+TARGETTYPE      dll
+UID             0x1000008D 0x101FB3E3
+
+CAPABILITY      ALL -TCB
+/* Remove comments and replace 0x00000000 with correct vendor id */
+// VENDORID     0x00000000
+/* Remove comments and replace 0x00000000 with correct secure id */
+// SECUREID     0x00000000
+
+//TARGETPATH      ?target_path
+DEFFILE         Tsanimihl.def
+
+USERINCLUDE     ../inc 
+
+OS_LAYER_SYSTEMINCLUDE
+
+SOURCEPATH      ../src
+
+SOURCE          Tsanimihl.cpp
+SOURCE          TsanimihlBlocks.cpp
+SOURCE 		    testWaiter.cpp
+
+
+USERINCLUDE     ../inc
+USERINCLUDE     ../../inc
+USERINCLUDE     ../../../../../../inc
+USERINCLUDE     ../../../../sanimengine/inc
+
+
+LIBRARY         euser.lib
+LIBRARY         stiftestinterface.lib
+LIBRARY         stiftestengine.lib
+LIBRARY         ecom.lib
+LIBRARY         efsrv.lib
+LIBRARY         euser.lib
+LIBRARY         sanimengine.lib
+
+EPOCALLOWDLLDATA
+LANG            SC
+
+/*
+START WINS      
+?wins_specific_information
+END
+
+START MARM
+?marm_specific_information
+END
+*/
+// Other possible keywords:
+ 
+// DOCUMENT     ?file, that is not compiled, but added to MSVC project workspace (i.e. release notes)
+/*
+START BITMAP ?target
+TARGETPATH   ?emulated_path_on_target_machine
+HEADER
+SOURCE       ?color_depth ?source_bitmap
+END
+*/
+// DEFFILE ?filename
+// AIF ?filename
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/Tsanimihl/group/Tsanimihl.pkg	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,60 @@
+;
+; 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:
+;
+; 	Installation file for STIF
+;
+
+; Languages
+&EN
+
+; Provide value for uid
+#{"STIF"},(0x00000000),1,1,0,TYPE=SA
+
+; Series60 product id for S60 3.0
+[0x101F7961], 0, 0, 0, {"Series60ProductID"}
+
+; Localised Vendor name
+%{"Nokia"}
+
+; Unique Vendor name
+:"Nokia"
+
+; Logo
+; None
+
+; Package signature - Optional
+; None
+
+; Start of Package body
+
+; Condition blocks
+; None
+
+; Options list
+; None
+
+; Install files
+"\epoc32\release\armv5\udeb\Tsanimihl.dll"   -   "!:\Sys\Bin\Tsanimihl.dll"
+  
+; Embedded SIS 
+; None
+
+; End of Package body
+
+; PKG dependencies
+; None
+
+; PKG capabilities
+; None
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/Tsanimihl/group/Tsanimihl_DoxyFile.txt	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,240 @@
+#
+# 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:
+#
+#
+
+# Doxyfile 1.4.1
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+PROJECT_NAME           = Tsanimihl
+PROJECT_NUMBER         = 
+OUTPUT_DIRECTORY       = x:\Tsanimihl\
+CREATE_SUBDIRS         = NO
+OUTPUT_LANGUAGE        = English
+USE_WINDOWS_ENCODING   = YES
+BRIEF_MEMBER_DESC      = YES
+REPEAT_BRIEF           = YES
+ABBREVIATE_BRIEF       = 
+ALWAYS_DETAILED_SEC    = NO
+INLINE_INHERITED_MEMB  = NO
+FULL_PATH_NAMES        = NO
+STRIP_FROM_PATH        = 
+STRIP_FROM_INC_PATH    = 
+SHORT_NAMES            = NO
+JAVADOC_AUTOBRIEF      = NO
+MULTILINE_CPP_IS_BRIEF = NO
+DETAILS_AT_TOP         = NO
+INHERIT_DOCS           = YES
+DISTRIBUTE_GROUP_DOC   = NO
+TAB_SIZE               = 8
+ALIASES                = 
+OPTIMIZE_OUTPUT_FOR_C  = YES
+OPTIMIZE_OUTPUT_JAVA   = NO
+SUBGROUPING            = YES
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+EXTRACT_ALL            = YES
+EXTRACT_PRIVATE        = NO
+EXTRACT_STATIC         = NO
+EXTRACT_LOCAL_CLASSES  = NO
+EXTRACT_LOCAL_METHODS  = NO
+HIDE_UNDOC_MEMBERS     = NO
+HIDE_UNDOC_CLASSES     = NO
+HIDE_FRIEND_COMPOUNDS  = NO
+HIDE_IN_BODY_DOCS      = NO
+INTERNAL_DOCS          = YES
+CASE_SENSE_NAMES       = YES
+HIDE_SCOPE_NAMES       = NO
+SHOW_INCLUDE_FILES     = YES
+INLINE_INFO            = YES
+SORT_MEMBER_DOCS       = YES
+SORT_BRIEF_DOCS        = NO
+SORT_BY_SCOPE_NAME     = NO
+GENERATE_TODOLIST      = NO
+GENERATE_TESTLIST      = NO
+GENERATE_BUGLIST       = NO
+GENERATE_DEPRECATEDLIST= YES
+ENABLED_SECTIONS       = 
+MAX_INITIALIZER_LINES  = 30
+SHOW_USED_FILES        = YES
+SHOW_DIRECTORIES       = YES
+FILE_VERSION_FILTER    = 
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+QUIET                  = NO
+WARNINGS               = YES
+WARN_IF_UNDOCUMENTED   = YES
+WARN_IF_DOC_ERROR      = YES
+WARN_NO_PARAMDOC       = NO
+WARN_FORMAT            = "$file:$line: $text"
+WARN_LOGFILE           = 
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+INPUT                  = x:\Tsanimihl\
+FILE_PATTERNS          = *.h \
+                         *.rh \
+                         *.hrh
+RECURSIVE              = YES
+EXCLUDE                = 
+EXCLUDE_SYMLINKS       = NO
+EXCLUDE_PATTERNS       = 
+EXAMPLE_PATH           = 
+EXAMPLE_PATTERNS       = 
+EXAMPLE_RECURSIVE      = NO
+IMAGE_PATH             = 
+INPUT_FILTER           = 
+FILTER_PATTERNS        = 
+FILTER_SOURCE_FILES    = NO
+#---------------------------------------------------------------------------
+# configuration options related to source browsing
+#---------------------------------------------------------------------------
+SOURCE_BROWSER         = NO
+INLINE_SOURCES         = NO
+STRIP_CODE_COMMENTS    = YES
+REFERENCED_BY_RELATION = YES
+REFERENCES_RELATION    = YES
+VERBATIM_HEADERS       = YES
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+ALPHABETICAL_INDEX     = NO
+COLS_IN_ALPHA_INDEX    = 5
+IGNORE_PREFIX          = 
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+GENERATE_HTML          = NO
+HTML_OUTPUT            = html
+HTML_FILE_EXTENSION    = .html
+HTML_HEADER            = 
+HTML_FOOTER            = 
+HTML_STYLESHEET        = 
+HTML_ALIGN_MEMBERS     = YES
+GENERATE_HTMLHELP      = YES
+CHM_FILE               = 
+HHC_LOCATION           = 
+GENERATE_CHI           = NO
+BINARY_TOC             = YES
+TOC_EXPAND             = YES
+DISABLE_INDEX          = YES
+ENUM_VALUES_PER_LINE   = 4
+GENERATE_TREEVIEW      = YES
+TREEVIEW_WIDTH         = 250
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+GENERATE_LATEX         = NO
+LATEX_OUTPUT           = latex
+LATEX_CMD_NAME         = latex
+MAKEINDEX_CMD_NAME     = makeindex
+COMPACT_LATEX          = NO
+PAPER_TYPE             = a4wide
+EXTRA_PACKAGES         = 
+LATEX_HEADER           = 
+PDF_HYPERLINKS         = NO
+USE_PDFLATEX           = NO
+LATEX_BATCHMODE        = NO
+LATEX_HIDE_INDICES     = NO
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+GENERATE_RTF           = YES
+RTF_OUTPUT             = Doc
+COMPACT_RTF            = YES
+RTF_HYPERLINKS         = YES
+RTF_STYLESHEET_FILE    = 
+RTF_EXTENSIONS_FILE    = 
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+GENERATE_MAN           = NO
+MAN_OUTPUT             = man
+MAN_EXTENSION          = .3
+MAN_LINKS              = NO
+#---------------------------------------------------------------------------
+# configuration options related to the XML output
+#---------------------------------------------------------------------------
+GENERATE_XML           = NO
+XML_OUTPUT             = xml
+XML_SCHEMA             = 
+XML_DTD                = 
+XML_PROGRAMLISTING     = YES
+#---------------------------------------------------------------------------
+# configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+GENERATE_AUTOGEN_DEF   = NO
+#---------------------------------------------------------------------------
+# configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+GENERATE_PERLMOD       = NO
+PERLMOD_LATEX          = NO
+PERLMOD_PRETTY         = YES
+PERLMOD_MAKEVAR_PREFIX = 
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor   
+#---------------------------------------------------------------------------
+ENABLE_PREPROCESSING   = YES
+MACRO_EXPANSION        = YES
+EXPAND_ONLY_PREDEF     = NO
+SEARCH_INCLUDES        = YES
+INCLUDE_PATH           = 
+INCLUDE_FILE_PATTERNS  = 
+PREDEFINED             = NONSHARABLE_CLASS
+EXPAND_AS_DEFINED      = 
+SKIP_FUNCTION_MACROS   = YES
+#---------------------------------------------------------------------------
+# Configuration::additions related to external references   
+#---------------------------------------------------------------------------
+TAGFILES               = 
+GENERATE_TAGFILE       = 
+ALLEXTERNALS           = NO
+EXTERNAL_GROUPS        = YES
+PERL_PATH              = /usr/bin/perl
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool   
+#---------------------------------------------------------------------------
+CLASS_DIAGRAMS         = YES
+HIDE_UNDOC_RELATIONS   = YES
+HAVE_DOT               = NO
+CLASS_GRAPH            = YES
+COLLABORATION_GRAPH    = YES
+GROUP_GRAPHS           = YES
+UML_LOOK               = NO
+TEMPLATE_RELATIONS     = YES
+INCLUDE_GRAPH          = YES
+INCLUDED_BY_GRAPH      = YES
+CALL_GRAPH             = NO
+GRAPHICAL_HIERARCHY    = YES
+DIRECTORY_GRAPH        = YES
+DOT_IMAGE_FORMAT       = png
+DOT_PATH               = 
+DOTFILE_DIRS           = 
+MAX_DOT_GRAPH_WIDTH    = 1024
+MAX_DOT_GRAPH_HEIGHT   = 1024
+MAX_DOT_GRAPH_DEPTH    = 0
+DOT_TRANSPARENT        = NO
+DOT_MULTI_TARGETS      = NO
+GENERATE_LEGEND        = YES
+DOT_CLEANUP            = YES
+#---------------------------------------------------------------------------
+# Configuration::additions related to the search engine   
+#---------------------------------------------------------------------------
+SEARCHENGINE           = NO
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/Tsanimihl/group/Tsanimihl_nrm.mmp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,77 @@
+/*TYPE TESTCLASS*/
+/*
+* 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: MMP file for STIF Test Framework's TestScripter 
+* testclass test module.
+*
+*/
+
+#include <platform_paths.hrh>
+
+SMPSAFE
+
+TARGET          Tsanimihl.dll
+TARGETTYPE      dll
+UID             0x1000008D 0x101FB3E3
+
+CAPABILITY      ALL -TCB
+/* Remove comments and replace 0x00000000 with correct vendor id */
+// VENDORID     0x00000000
+/* Remove comments and replace 0x00000000 with correct secure id */
+// SECUREID     0x00000000
+
+//TARGETPATH      ?target_path
+DEFFILE         Tsanimihl.def
+
+USERINCLUDE     ../inc 
+
+OS_LAYER_SYSTEMINCLUDE
+
+SOURCEPATH      ../src
+
+SOURCE          Tsanimihl.cpp
+SOURCE          TsanimihlBlocks.cpp
+
+//RESOURCE        resource_file
+//RESOURCE        resource_file2
+
+LIBRARY         euser.lib
+LIBRARY         stiftestinterface.lib
+LIBRARY         stiftestengine.lib
+
+LANG            SC
+
+/*
+START WINS      
+?wins_specific_information
+END
+
+START MARM
+?marm_specific_information
+END
+*/
+// Other possible keywords:
+ 
+// DOCUMENT     ?file, that is not compiled, but added to MSVC project workspace (i.e. release notes)
+/*
+START BITMAP ?target
+TARGETPATH   ?emulated_path_on_target_machine
+HEADER
+SOURCE       ?color_depth ?source_bitmap
+END
+*/
+// DEFFILE ?filename
+// AIF ?filename
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/Tsanimihl/group/bld.inf	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,57 @@
+/*
+* 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:
+*
+*/
+
+PRJ_PLATFORMS
+// specify the platforms your component needs to be built for here
+// defaults to WINS MARM so you can ignore this if you just build these
+	
+	DEFAULT
+
+PRJ_TESTEXPORTS
+// NOTE: If using ARS requirements all export operations should be done under this.
+// 'abld test export'
+
+PRJ_EXPORTS
+// Specify the source file followed by its destination here
+// copy will be used to copy the source file to its destination
+// If there's no destination then the source file will be copied
+// to the same name in \epoc32\include
+// Example: 
+/*
+\agnmodel\inc\AGMCOMON.H
+*/
+
+PRJ_MMPFILES
+
+	Tsanimihl.mmp
+
+
+// Specify the .mmp files required for building the important component
+// releasables.
+//
+// Specify "tidy" if the component you need to build doesn't need to be
+// released. Specify "ignore" if the MMP file exists but should be
+// ignored.
+// Example:
+/*
+\agnmodel\group\agnmodel.mmp
+#if defined(MARM)
+\agnmodel\group\agsvexe.mmp
+#endif
+*/
+
+//  End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/Tsanimihl/inc/Tsanimihl.h	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,233 @@
+/*
+* 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: STIF testclass declaration
+*
+*/
+
+#ifndef TSANIMIHL_H
+#define TSANIMIHL_H
+
+//  INCLUDES
+#include <StifLogger.h>
+#include <TestScripterInternal.h>
+#include <StifTestModule.h>
+#include <TestclassAssert.h>
+
+#include <f32file.h>
+#include "sanimobserver.h"
+
+class CSAnimImagePlugin;
+class CSAnimIhlPluginTestSuite;
+class CTestWaiter;
+
+// FORWARD DECLARATIONS
+//class ?FORWARD_CLASSNAME;
+class CTsanimihl;
+
+class TMockIhlAnimationObserver : public MSAnimObserver
+    {
+public:
+    TMockIhlAnimationObserver( CTsanimihl& aTestSuite ) : iTestSuite( aTestSuite ) {}
+    virtual void UpdateScreen( const CFbsBitmap& /*aFrame*/, const CFbsBitmap& /*aMask*/ );
+    virtual void UpdateScreen( const CFbsBitmap& /*aFrame*/ );
+private:
+    CTsanimihl& iTestSuite;
+    };
+
+
+// CONSTANTS
+//const ?type ?constant_var = ?constant;
+
+// MACROS
+//#define ?macro ?macro_def
+#define TEST_CLASS_VERSION_MAJOR 0
+#define TEST_CLASS_VERSION_MINOR 0
+#define TEST_CLASS_VERSION_BUILD 0
+
+// Logging path
+_LIT( KTsanimihlLogPath, "\\logs\\testframework\\Tsanimihl\\" ); 
+// Log file
+_LIT( KTsanimihlLogFile, "Tsanimihl.txt" ); 
+_LIT( KTsanimihlLogFileWithTitle, "Tsanimihl_[%S].txt" );
+
+// FUNCTION PROTOTYPES
+//?type ?function_name(?arg_list);
+
+
+
+// DATA TYPES
+//enum ?declaration
+//typedef ?declaration
+//extern ?data_type;
+
+// CLASS DECLARATION
+
+/**
+*  CTsanimihl test class for STIF Test Framework TestScripter.
+*  ?other_description_lines
+*
+*  @lib ?library
+*  @since ?Series60_version
+*/
+NONSHARABLE_CLASS(CTsanimihl) : public CScriptBase
+    {
+    public:  // Constructors and destructor
+
+        /**
+        * Two-phased constructor.
+        */
+        static CTsanimihl* NewL( CTestModuleIf& aTestModuleIf );
+
+        /**
+        * Destructor.
+        */
+        virtual ~CTsanimihl();
+
+    public: // New functions
+
+        /**
+        * ?member_description.
+        * @since ?Series60_version
+        * @param ?arg1 ?description
+        * @return ?description
+        */
+        //?type ?member_function( ?type ?arg1 );
+
+    public: // Functions from base classes
+
+        /**
+        * From CScriptBase Runs a script line.
+        * @since ?Series60_version
+        * @param aItem Script line containing method name and parameters
+        * @return Symbian OS error code
+        */
+        virtual TInt RunMethodL( CStifItemParser& aItem );
+
+   
+    protected:  // Functions from base classes
+
+        /**
+        * From ?base_class ?member_description
+        */
+        //?type ?member_function();
+
+    private:
+
+        /**
+        * C++ default constructor.
+        */
+        CTsanimihl( CTestModuleIf& aTestModuleIf );
+      
+        /**
+        * By default Symbian 2nd phase constructor is private.
+        */
+        void ConstructL();
+
+        // Prohibit copy constructor if not deriving from CBase.
+        // ?classname( const ?classname& );
+        // Prohibit assigment operator if not deriving from CBase.
+        // ?classname& operator=( const ?classname& );
+
+        /**
+        * Frees all resources allocated from test methods.
+        * @since ?Series60_version
+        */
+        void Delete();
+       
+    private:    // New methods
+
+           /**
+        * Example test method.
+        * @since ?Series60_version
+        * @param aItem Script line containing parameters.
+        * @return Symbian OS error code.
+        */
+        TInt ExampleL( CStifItemParser& aItem );
+        TInt SetupEmptyL();
+        TInt SetupObjL();
+        TInt SetupStillImageL();
+        TInt SetupAnimationL();
+        TInt SetupMultiFrameL();
+        TInt SetupStillImageWithBgColourL();
+        TInt Teardown();
+
+        TInt TestConstructorL();
+        TInt TestConstructorNoMemoryL();
+        TInt TestUnknownFileL();
+        TInt TestCorruptFileL();
+        TInt TestLoadStillImageGray2L();
+        TInt TestLoadStillImageColourL();
+        TInt TestLoadAnimationL();
+        TInt TestLoadMultiFrameL();
+        TInt TestLoadStillImageNoMemoryL();
+        TInt TestLoadAnimationNoMemoryL();
+        TInt TestCancelLoadStillImageL();
+        TInt TestCancelLoadAnimationL();
+        TInt TestCancelLoadMultiFrameL();
+        TInt TestShowStillImageL();
+        TInt TestShowStillImageWithFrameDelayL();
+        TInt TestShowAnimationL();
+        TInt TestShowMultiFrameL();
+        TInt TestCancelPlayL();
+        TInt TestBgColourL();
+        TInt TestBgColourBeforeLoadL();
+        TInt TestScaleStillImageL();
+        
+        /**
+         * Method used to log version of test class
+         */
+        void SendTestClassVersion();
+
+        //ADD NEW METHOD DEC HERE
+        //[TestMethods] - Do not remove
+
+    public:     // Data
+        // ?one_line_short_description_of_data
+        //?data_declaration;
+
+    protected:  // Data
+        // ?one_line_short_description_of_data
+        //?data_declaration;
+
+    private:    // Data
+        friend class TMockIhlAnimationObserver;
+
+        /** File server session used in testing. */
+        RFs iFs;
+
+        /** Instance of the class that this test suite is testing. */
+        CSAnimImagePlugin* iTestObj;
+
+        /** A 32 bit identifer returned by ECom to identify this instance to the framework. */
+        TUid iDtorKey;
+
+        /** For testing async calls. */
+        CTestWaiter* iWaiter;
+
+        /** For testing correct number of calls to animation observer. */
+        TInt iFrameCounter;
+
+        /** Animation observer for testing. */
+        TMockIhlAnimationObserver iObserver;
+        // ?one_line_short_description_of_data
+        //?data_declaration;
+
+        // Reserved pointer for future extension
+        //TAny* iReserved;
+
+       };
+
+#endif      // TSANIMIHL_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/Tsanimihl/inc/testwaiter.h	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,88 @@
+/*
+* 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 the License "Symbian Foundation License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Declaration of CTestWaiter class
+*
+*/
+
+
+#ifndef TESTWAITER_H
+#define TESTWAITER_H
+
+#include <e32base.h>
+
+/**
+*  Stops active scheduler in RunL.
+*
+*  @lib None
+*  @since S60 3.2
+*/
+class CTestWaiter  : public CActive
+    {
+
+public:
+
+    /**
+    * Constructs a CTestWaiter object.
+    *
+    * @return The new object
+    * @since S60 3.2
+    */
+    static CTestWaiter* NewL();
+
+    /**
+    * Destructor.
+    *
+    * @since S60 3.2
+    */
+    virtual ~CTestWaiter();
+
+    /**
+    * Set active.
+    *
+    * @since S60 3.2
+    */
+    void Activate();
+
+protected:
+
+    /**
+    * From CActive.
+    * Implements cancellation of an outstanding request.
+    *
+    * @since S60 3.2
+    */
+    virtual void DoCancel();
+
+    /**
+    * From CActive.
+    * Handles an active object's request completion event.
+    * Never leaves.
+    *
+    * @since S60 3.2
+    */
+    virtual void RunL();
+
+private:
+
+    /**
+    * First phase constructor.
+    *
+    */
+    CTestWaiter();
+
+private: // data
+
+    };
+
+#endif // TESTWAITER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/Tsanimihl/init/TestFramework.ini	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,221 @@
+#
+# This is STIF initialization file
+# Comment lines start with '#'-character.
+# See STIF TestFramework users guide.doc for instructions
+
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+# Set following test engine settings:
+#	- Set Test Reporting mode. TestReportMode's possible values are:
+#		+ 'Summary': Summary of the tested test cases.
+#		+ 'Environment': Hardware and software info.
+#		+ 'TestCases': Test case report.
+#		+ 'FullReport': Set of all above ones.
+#		+ Example 'TestReportMode= Summary TestCases'
+#
+# 	- CreateTestReport setting controls report creation mode
+#		+ YES, Test report will created.
+#		+ NO, No Test report.
+#
+# 	- File path indicates the base path of the test report.
+# 	- File name indicates the name of the test report.
+#
+# 	- File format indicates the type of the test report.
+#		+ TXT, Test report file will be txt type, for example 'TestReport.txt'.
+#		+ HTML, Test report will be html type, for example 'TestReport.html'.
+#   + XML, Test report will be xml type, for example 'TestReport.xml'.
+#          Note, that xml format is available only when output is set to FILE.
+#
+# 	- File output indicates output source of the test report.
+#		+ FILE, Test report logging to file.
+#		+ RDEBUG, Test report logging to using rdebug.
+#
+# 	- File Creation Mode indicates test report overwriting if file exist.
+#		+ OVERWRITE, Overwrites if the Test report file exist.
+#		+ APPEND, Continue logging after the old Test report information if
+#                 report exist.
+# 	- Sets a device reset module's dll name(Reboot).
+#		+ If Nokia specific reset module is not available or it is not correct one
+#		  StifHWResetStub module may use as a template for user specific reset
+#		  module.
+# 	- Sets STIF test measurement disable options. e.g. pluging1 and pluging2 disablation
+#		DisableMeasurement= stifmeasurementplugin01 stifmeasurementplugin02
+#
+
+[Engine_Defaults]
+
+TestReportMode= FullReport    # Possible values are: 'Empty', 'Summary', 'Environment',
+                              #                      'TestCases' or 'FullReport'
+
+CreateTestReport= YES         # Possible values: YES or NO
+
+TestReportFilePath= C:\LOGS\TestFramework\
+TestReportFileName= TestReport
+
+TestReportFormat= TXT         # Possible values: TXT, HTML or XML
+TestReportOutput= FILE        # Possible values: FILE or RDEBUG
+TestReportFileCreationMode= OVERWRITE # Possible values: OVERWRITE or APPEND
+
+DeviceResetDllName= StifResetForNokia.dll # e.g. 'StifHWResetStub.dll' for user specific reseting
+
+DisableMeasurement= stifmeasurementdisablenone  # Possible values are:
+              # 'stifmeasurementdisablenone', 'stifmeasurementdisableall'
+              # 'stifmeasurementplugin01', 'stifmeasurementplugin02',
+              # 'stifmeasurementplugin03', 'stifmeasurementplugin04',
+              # 'stifmeasurementplugin05' or 'stifbappeaprofiler'
+
+Timeout= 0                    # Default timeout value for each test case. In milliseconds
+UITestingSupport= YES        # Possible values: YES or NO
+#SeparateProcesses= YES       # Possible values: YES or NO (default: NO)
+[End_Defaults]
+
+[New_Module]
+ModuleName= testscripter 
+TestCaseFile= c:\testframework\Tsanimihl.cfg
+[End_Module]
+
+
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+
+
+
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+# Module configurations start
+# Modules are added between module tags
+# tags. Module name is specified after ModuleName= tag, like
+# ModuleName= XXXXXXXXX
+# Modules might have initialisation file, specified as
+# IniFile= c:\testframework\YYYYYY
+# Modules might have several configuration files, like
+# TestCaseFile= c:\testframework\NormalCases.txt
+# TestCaseFile= c:\testframework\SmokeCases.txt
+# TestCaseFile= c:\testframework\ManualCases.txt
+
+# (TestCaseFile is synonym for old term ConfigFile)
+
+# Following case specifies demo module settings. Demo module
+# does not read any settings from file, so tags 
+# IniFile and TestCaseFile are not used.
+# In the simplest case it is enough to specify only the
+# name of the test module when adding new test module
+
+
+
+# Load testmoduleXXX, optionally with initialization file and/or test case files
+#[New_Module]
+#ModuleName= testmodulexxx
+
+#TestModuleXXX used initialization file
+#IniFile= c:\testframework\init.txt
+
+#TestModuleXXX used configuration file(s)
+#TestCaseFile= c:\testframework\testcases1.cfg
+#TestCaseFile= c:\testframework\testcases2.cfg
+#TestCaseFile= c:\testframework\manualtestcases.cfg
+
+#[End_Module]
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+
+
+
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+# Set STIF logging overwrite parameters for Logger.
+# 	Hardware and emulator environment logging path and styles can
+# 	be configured from here to overwrite the Logger's implemented values.
+#	
+#	Settings description:
+#	- Indicates option for creation log directory/directories. If log directory/directories
+#         is/are not created by user they will make by software.
+#		+ YES, Create log directory/directories if not allready exist.
+#		+ NO, Log directory/directories not created. Only created one is used.
+#
+#	- Overwrite emulator path setting.
+#		+ Example: If 'EmulatorBasePath= C:\LOGS\TestFramework\' and in code is defined 
+#		           Logger's path 'D:\\LOGS\\Module\\' with those definition the path
+#		           will be 'C:\LOGS\TestFramework\LOGS\Module\'
+#
+#	- Overwrite emulator's logging format.
+#		+ TXT, Log file(s) will be txt type(s), for example 'Module.txt'.
+#		+ HTML, Log file(s) will be html type(s), for example 'Module.html'.
+#
+#	- Overwrited emulator logging output source.
+#		+ FILE, Logging to file(s).
+#		+ RDEBUG, Logging to using rdebug(s).
+#
+#	- Overwrite hardware path setting (Same description as above in emulator path).
+#	- Overwrite hardware's logging format(Same description as above in emulator format).
+#	- Overwrite hardware's logging output source(Same description as above in emulator output).
+#
+#	- File Creation Mode indicates file overwriting if file exist.
+#		+ OVERWRITE, Overwrites if file(s) exist.
+#		+ APPEND, Continue logging after the old logging information if file(s) exist.
+#
+#	- Will thread id include to the log filename.
+#		+ YES, Thread id to log file(s) name, Example filename 'Module_b9.txt'.
+#		+ NO, No thread id to log file(s), Example filename 'Module.txt'.
+#
+#	- Will time stamps include the to log file.
+#		+ YES, Time stamp added to each line in log file(s). Time stamp is 
+#                 for example'12.Nov.2003 115958    LOGGING INFO'
+#		+ NO, No time stamp(s).
+#
+#	- Will line breaks include to the log file.
+#		+ YES, Each logging event includes line break and next log event is in own line.
+#		+ NO, No line break(s).
+#
+#	- Will event ranking include to the log file.
+#		+ YES, Event ranking number added to each line in log file(s). Ranking number
+#                 depends on environment's tics, for example(includes time stamp also)
+#                 '012   12.Nov.2003 115958    LOGGING INFO'
+#		+ NO, No event ranking.
+#
+#	- Will write log file in unicode format.
+#		+ YES, Log file will be written in unicode format
+#		+ NO, Log will be written as normal, not unicode, file.
+#
+
+[Logger_Defaults]
+
+#NOTE: If you want to set Logger using next setting(s) remove comment(s)'#'
+#NOTE: TestEngine and TestServer logging settings cannot change here
+
+#CreateLogDirectories= YES    # Possible values: YES or NO
+
+#EmulatorBasePath= C:\LOGS\TestFramework\
+#EmulatorFormat= HTML         # Possible values: TXT or HTML
+#EmulatorOutput= FILE         # Possible values: FILE or RDEBUG
+
+#HardwareBasePath= D:\LOGS\TestFramework\
+#HardwareFormat= HTML         # Possible values: TXT or HTML
+#HardwareOutput= FILE         # Possible values: FILE or RDEBUG
+
+#FileCreationMode= OVERWRITE  # Possible values: OVERWRITE or APPEND
+
+#ThreadIdToLogFile= YES       # Possible values: YES or NO
+#WithTimeStamp= YES           # Possible values: YES or NO
+#WithLineBreak= YES           # Possible values: YES or NO
+#WithEventRanking= YES        # Possible values: YES or NO
+
+#FileUnicode= YES             # Possible values: YES or NO
+#AddTestCaseTitle= YES        # Possible values: YES or NO
+[End_Logger_Defaults]
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+
+
+
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+# Set filters to be used by ConsoleUI.
+# 	If you want to use filter with ConsoleUI, simply remove comments
+# 	from section below and provide valid filter entries.
+#   Each filter line has to start with "filter= " keyword.
+#   Filter can contain special wildcard characters:
+#     *  which stands for none or any literal;
+#     ?  which stands for single character.
+#   Filters are not case-sensitive.
+
+#[Filters]
+#filter= *math*
+#filter= *radio*
+#[End_Filters]
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+
+# End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/Tsanimihl/rom/TSanimihl.iby	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,9 @@
+#ifndef __TSANIMIHL_IBY__
+#define __TSANIMIHL_IBY__
+
+file=ABI_DIR\BUILD_DIR\TSanimihl.dll SHARED_LIB_DIR\TSanimihl.dll
+
+data=\epoc32\data\z\system\data\UI_TSanimihl.cfg \testframework\UI_TSanimihl.cfg
+
+
+#endif
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/Tsanimihl/src/Tsanimihl.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,198 @@
+/*
+* 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: This file contains testclass implementation.
+*
+*/
+
+// INCLUDE FILES
+#include <StifTestInterface.h>
+#include "Tsanimihl.h"
+#include <SettingServerClient.h>
+
+// EXTERNAL DATA STRUCTURES
+//extern  ?external_data;
+
+// EXTERNAL FUNCTION PROTOTYPES  
+//extern ?external_function( ?arg_type,?arg_type );
+
+// CONSTANTS
+//const ?type ?constant_var = ?constant;
+
+// MACROS
+//#define ?macro ?macro_def
+
+// LOCAL CONSTANTS AND MACROS
+//const ?type ?constant_var = ?constant;
+//#define ?macro_name ?macro_def
+
+// MODULE DATA STRUCTURES
+//enum ?declaration
+//typedef ?declaration
+
+// LOCAL FUNCTION PROTOTYPES
+//?type ?function_name( ?arg_type, ?arg_type );
+
+// FORWARD DECLARATIONS
+//class ?FORWARD_CLASSNAME;
+
+// ============================= LOCAL FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// ?function_name ?description.
+// ?description
+// Returns: ?value_1: ?description
+//          ?value_n: ?description_line1
+//                    ?description_line2
+// -----------------------------------------------------------------------------
+//
+/*
+?type ?function_name(
+    ?arg_type arg,  // ?description
+    ?arg_type arg)  // ?description
+    {
+
+    ?code  // ?comment
+
+    // ?comment
+    ?code
+    }
+*/
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CTsanimihl::CTsanimihl
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// -----------------------------------------------------------------------------
+//
+CTsanimihl::CTsanimihl( 
+    CTestModuleIf& aTestModuleIf ):
+        CScriptBase( aTestModuleIf ), iObserver( *this )
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CTsanimihl::ConstructL
+// Symbian 2nd phase constructor can leave.
+// -----------------------------------------------------------------------------
+//
+void CTsanimihl::ConstructL()
+    {
+    //Read logger settings to check whether test case name is to be
+    //appended to log file name.
+    RSettingServer settingServer;
+    TInt ret = settingServer.Connect();
+    if(ret != KErrNone)
+        {
+        User::Leave(ret);
+        }
+    // Struct to StifLogger settigs.
+    TLoggerSettings loggerSettings; 
+    // Parse StifLogger defaults from STIF initialization file.
+    ret = settingServer.GetLoggerSettings(loggerSettings);
+    if(ret != KErrNone)
+        {
+        User::Leave(ret);
+        } 
+    // Close Setting server session
+    settingServer.Close();
+
+    TFileName logFileName;
+    
+    if(loggerSettings.iAddTestCaseTitle)
+        {
+        TName title;
+        TestModuleIf().GetTestCaseTitleL(title);
+        logFileName.Format(KTsanimihlLogFileWithTitle, &title);
+        }
+    else
+        {
+        logFileName.Copy(KTsanimihlLogFile);
+        }
+
+    iLog = CStifLogger::NewL( KTsanimihlLogPath, 
+                          logFileName,
+                          CStifLogger::ETxt,
+                          CStifLogger::EFile,
+                          EFalse );
+    
+    SendTestClassVersion();
+    }
+
+// -----------------------------------------------------------------------------
+// CTsanimihl::NewL
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CTsanimihl* CTsanimihl::NewL( 
+    CTestModuleIf& aTestModuleIf )
+    {
+    CTsanimihl* self = new (ELeave) CTsanimihl( aTestModuleIf );
+
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop();
+
+    return self;
+
+    }
+
+// Destructor
+CTsanimihl::~CTsanimihl()
+    { 
+
+    // Delete resources allocated from test methods
+    Delete();
+
+    // Delete logger
+    delete iLog; 
+
+    }
+
+//-----------------------------------------------------------------------------
+// CTsanimihl::SendTestClassVersion
+// Method used to send version of test class
+//-----------------------------------------------------------------------------
+//
+void CTsanimihl::SendTestClassVersion()
+	{
+	TVersion moduleVersion;
+	moduleVersion.iMajor = TEST_CLASS_VERSION_MAJOR;
+	moduleVersion.iMinor = TEST_CLASS_VERSION_MINOR;
+	moduleVersion.iBuild = TEST_CLASS_VERSION_BUILD;
+	
+	TFileName moduleName;
+	moduleName = _L("Tsanimihl.dll");
+
+	TBool newVersionOfMethod = ETrue;
+	TestModuleIf().SendTestModuleVersion(moduleVersion, moduleName, newVersionOfMethod);
+	}
+
+// ========================== OTHER EXPORTED FUNCTIONS =========================
+
+// -----------------------------------------------------------------------------
+// LibEntryL is a polymorphic Dll entry point.
+// Returns: CScriptBase: New CScriptBase derived object
+// -----------------------------------------------------------------------------
+//
+EXPORT_C CScriptBase* LibEntryL( 
+    CTestModuleIf& aTestModuleIf ) // Backpointer to STIF Test Framework
+    {
+
+    return ( CScriptBase* ) CTsanimihl::NewL( aTestModuleIf );
+
+    }
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/Tsanimihl/src/TsanimihlBlocks.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,801 @@
+/*
+* 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: This file contains testclass implementation.
+*
+*/
+
+// [INCLUDE FILES] - do not remove
+#include <e32svr.h>
+#include <StifParser.h>
+#include <StifTestInterface.h>
+#include "Tsanimihl.h"
+
+
+#include "sanimimageplugin.h"
+
+#include "testwaiter.h"
+#include <ecom/ecom.h>
+
+
+
+// Praveen
+
+const TInt KSAnimIhlPluginImplUid = 0x2000B11C;
+const TInt K1Second = 1000000;
+
+_LIT( KUnknownFile, "C:\\temp\\unknown.gif" );
+_LIT( KCorruptFile, "C:\\temp\\corrupt.gif" );
+_LIT( KStillImageGray2File, "C:\\temp\\still_image_gray2.gif" );
+_LIT( KStillImageColourFile, "C:\\temp\\gif_2kb.gif" );
+_LIT( KStillImageBgColourFile, "C:\\temp\\testimg_1.gif" );
+_LIT( KMbmFile, "C:\\temp\\startupnokia_qvga.mbm" );
+_LIT( KAnimationFile, "C:\\temp\\testanim_7.gif" );
+
+// ---------------------------------------------------------------------------
+// TMockIhlAnimationObserver::UpdateScreen
+//
+// ---------------------------------------------------------------------------
+//
+void TMockIhlAnimationObserver::UpdateScreen( const CFbsBitmap& /*aFrame*/, const CFbsBitmap& /*aMask*/ )
+    {
+    iTestSuite.iFrameCounter++;
+    }
+
+
+// ---------------------------------------------------------------------------
+// TMockIhlAnimationObserver::UpdateScreen
+//
+// ---------------------------------------------------------------------------
+//
+void TMockIhlAnimationObserver::UpdateScreen( const CFbsBitmap& /*aFrame*/ )
+    {
+    iTestSuite.iFrameCounter++;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimIhlPluginTestSuite::NewL
+//
+// ---------------------------------------------------------------------------
+//
+/*
+CTsanimihl* CTsanimihl::NewL()
+    {
+    CTsanimihl* self = CTsanimihl::NewLC();
+    CleanupStack::Pop( self );
+    return self;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimIhlPluginTestSuite::NewLC
+//
+// ---------------------------------------------------------------------------
+//
+CTsanimihl* CTsanimihl::NewLC()
+    {
+    CTsanimihl* self = new( ELeave ) CTsanimihl;
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    return self;
+    }
+
+*/
+
+// -----------------------------------------------------------------------------
+// CTsanimihl::RunMethodL
+// Run specified method. Contains also table of test mothods and their names.
+// -----------------------------------------------------------------------------
+//
+TInt CTsanimihl::RunMethodL( 
+    CStifItemParser& aItem ) 
+    {
+
+    static TStifFunctionInfo const KFunctions[] =
+        {  
+        // Copy this line for every implemented function.
+        // First string is the function name used in TestScripter script file.
+        // Second is the actual implementation member function. 
+        ENTRY("Example", CTsanimihl::ExampleL ),
+        ENTRY("SetupEmpty",CTsanimihl::SetupEmptyL),
+        ENTRY("SetupObj",CTsanimihl::SetupObjL),
+        ENTRY("SetupStillImage",CTsanimihl::SetupStillImageL),
+        ENTRY("SetupAnimation",CTsanimihl::SetupAnimationL),
+        ENTRY("SetupMultiFrame",CTsanimihl::SetupMultiFrameL),
+        ENTRY("SetupStillImageWithBgColour",CTsanimihl::SetupStillImageWithBgColourL),
+        ENTRY("Teardown",CTsanimihl::Teardown),
+        ENTRY("TestConstructor",CTsanimihl::TestConstructorL),
+        ENTRY("TestConstructorNoMemory",CTsanimihl::TestConstructorNoMemoryL),
+        ENTRY("TestUnknownFile",CTsanimihl::TestUnknownFileL),
+        ENTRY("TestCorruptFile",CTsanimihl::TestCorruptFileL),
+        ENTRY("TestLoadStillImageGray2",CTsanimihl::TestLoadStillImageGray2L),
+        ENTRY("TestLoadStillImageColour",CTsanimihl::TestLoadStillImageColourL),
+        ENTRY("TestLoadAnimation",CTsanimihl::TestLoadAnimationL),
+        ENTRY("TestLoadMultiFrame",CTsanimihl::TestLoadMultiFrameL),
+        ENTRY("TestLoadStillImageNoMemory",CTsanimihl::TestLoadStillImageNoMemoryL),
+        ENTRY("TestLoadAnimationNoMemory",CTsanimihl::TestLoadAnimationNoMemoryL),
+        ENTRY("TestCancelLoadStillImage",CTsanimihl::TestCancelLoadStillImageL),
+        ENTRY("TestCancelLoadAnimation",CTsanimihl::TestCancelLoadAnimationL),
+        ENTRY("TestCancelLoadMultiFrame",CTsanimihl::TestCancelLoadMultiFrameL),
+        ENTRY("TestShowStillImage",CTsanimihl::TestShowStillImageL),
+        ENTRY("TestShowStillImageWithFrameDelay",CTsanimihl::TestShowStillImageWithFrameDelayL),
+        ENTRY("TestShowAnimation",CTsanimihl::TestShowAnimationL),
+        ENTRY("TestShowMultiFrame",CTsanimihl::TestShowMultiFrameL),
+        ENTRY("TestCancelPlay",CTsanimihl::TestCancelPlayL),
+        ENTRY("TestBgColour",CTsanimihl::TestBgColourL),
+        ENTRY("TestBgColourBeforeLoad",CTsanimihl::TestBgColourBeforeLoadL),
+        ENTRY("TestScaleStillImage",CTsanimihl::TestScaleStillImageL)
+                //ADD NEW ENTRY HERE
+        // [test cases entries] - Do not remove
+
+        };
+
+    const TInt count = sizeof( KFunctions ) / 
+                        sizeof( TStifFunctionInfo );
+
+    return RunInternalL( KFunctions, count, aItem );
+
+    }
+
+// ---------------------------------------------------------------------------
+// CSAnimIhlPluginTestSuite::CSAnimIhlPluginTestSuite
+//
+// ---------------------------------------------------------------------------
+//
+/*
+CTsanimihl::CTsanimihl() : iObserver( *this )
+    {
+    }
+*/
+
+// ---------------------------------------------------------------------------
+// CSAnimIhlPluginTestSuite::ConstructL
+//
+// ---------------------------------------------------------------------------
+//
+/*
+void CTsanimihl::ConstructL()
+    {
+   // REComSession::FinalClose();
+    // The ConstructL from the base class CEUnitTestSuiteClass must be called.
+    // It generates the test case table.
+   
+    }
+*/
+
+// ---------------------------------------------------------------------------
+// CSAnimIhlPluginTestSuite::SetupEmptyL
+//
+// ---------------------------------------------------------------------------
+//
+TInt  CTsanimihl::SetupEmptyL()
+    {
+    iTestObj = NULL;
+    iDtorKey = TUid::Uid( 0 );
+    User::LeaveIfError( iFs.Connect() );
+    User::LeaveIfError( iFs.ShareProtected() );
+    iWaiter = CTestWaiter::NewL();
+    iFrameCounter = 0;
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimIhlPluginTestSuite::SetupObjL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTsanimihl::SetupObjL()
+    {
+    SetupEmptyL();
+    iTestObj = static_cast<CSAnimImagePlugin*>(
+            REComSession::CreateImplementationL(
+            TUid::Uid( KSAnimIhlPluginImplUid ), iDtorKey , &iObserver) );
+    return KErrNone;
+    
+       
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimIhlPluginTestSuite::SetupStillImageL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTsanimihl::SetupStillImageL()
+    {
+    SetupObjL();
+    iTestObj->Load( iFs, KStillImageGray2File, iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimIhlPluginTestSuite::SetupAnimationL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTsanimihl::SetupAnimationL()
+    {
+    SetupObjL();
+    iTestObj->Load( iFs, KAnimationFile, iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimIhlPluginTestSuite::SetupMultiFrameL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTsanimihl::SetupMultiFrameL()
+    {
+    SetupObjL();
+    iTestObj->Load( iFs, KMbmFile, iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimIhlPluginTestSuite::SetupStillImageWithBgColourL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTsanimihl::SetupStillImageWithBgColourL()
+    {
+    SetupObjL();
+    iTestObj->Load( iFs, KStillImageBgColourFile, iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimIhlPluginTestSuite::Teardown
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTsanimihl::Teardown()
+    {
+    delete iTestObj;
+    iTestObj = NULL;
+
+    REComSession::DestroyedImplementation( iDtorKey );
+
+    delete iWaiter;
+    iWaiter = NULL;
+
+    iFs.Close();
+
+    REComSession::FinalClose();
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimIhlPluginTestSuite::TestConstructorL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTsanimihl::TestConstructorL()
+    {
+    TAny* ptr = NULL;
+     ptr = REComSession::CreateImplementationL(TUid::Uid( KSAnimIhlPluginImplUid ), iDtorKey, &iObserver );
+
+    iTestObj = static_cast<CSAnimImagePlugin*>( ptr );
+   // STIF_ASSERT( iTestObj );
+    delete iTestObj;
+    iTestObj = NULL;
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimIhlPluginTestSuite::TestConstructorNoMemoryL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTsanimihl::TestConstructorNoMemoryL()
+    {
+    TAny* ptr = NULL;
+    ptr = REComSession::CreateImplementationL(TUid::Uid( KSAnimIhlPluginImplUid ), iDtorKey, &iObserver );
+    //STIF_ASSERT( !ptr );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimIhlPluginTestSuite::TestUnknownFileL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTsanimihl::TestUnknownFileL()
+    {
+    iTestObj->Load( iFs, KUnknownFile, iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+    if (iWaiter->iStatus.Int()== KErrNotFound )
+    {
+    
+    }
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimIhlPluginTestSuite::TestCorruptFileL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTsanimihl::TestCorruptFileL()
+    {
+    iTestObj->Load( iFs, KCorruptFile, iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+    if( iWaiter->iStatus.Int()== KErrNotFound ) // For some reason, IHL returns KErrNotFound...
+        {
+        
+        }
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimIhlPluginTestSuite::TestLoadStillImageGray2L
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTsanimihl::TestLoadStillImageGray2L()
+    {
+    iTestObj->Load( iFs, KStillImageGray2File, iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+    if ( iWaiter->iStatus.Int()== KErrNone )
+                {
+        
+                }
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimIhlPluginTestSuite::TestLoadStillImageColourL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTsanimihl::TestLoadStillImageColourL()
+    {
+    iTestObj->Load( iFs, KStillImageColourFile, iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+    if ( iWaiter->iStatus.Int()== KErrNone )
+        {
+        
+        }
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimIhlPluginTestSuite::TestLoadAnimationL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTsanimihl::TestLoadAnimationL()
+    {
+    iTestObj->Load( iFs, KAnimationFile, iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+    if ( iWaiter->iStatus.Int()== KErrNone )
+        {
+        
+        }
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimIhlPluginTestSuite::TestLoadMultiFrameL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTsanimihl::TestLoadMultiFrameL()
+    {
+    iTestObj->Load( iFs, KMbmFile, iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+    if ( iWaiter->iStatus.Int()== KErrNone )
+        {
+        
+        }
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimIhlPluginTestSuite::TestLoadStillImageNoMemoryL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTsanimihl::TestLoadStillImageNoMemoryL()
+    {
+    iTestObj->Load( iFs, KStillImageColourFile, iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+    if ( iWaiter->iStatus.Int()== KErrNoMemory )
+        {
+        
+        }
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimIhlPluginTestSuite::TestLoadAnimationNoMemoryL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTsanimihl::TestLoadAnimationNoMemoryL()
+    {
+    iTestObj->Load( iFs, KAnimationFile, iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+    if ( iWaiter->iStatus.Int()== KErrNoMemory )
+        {
+        
+        }
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimIhlPluginTestSuite::TestCancelLoadStillImageL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTsanimihl::TestCancelLoadStillImageL()
+    {
+    iTestObj->Load( iFs, KStillImageGray2File, iWaiter->iStatus );
+    iWaiter->Activate();
+    iTestObj->Cancel();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+    if ( iWaiter->iStatus.Int()== KErrCancel )
+        {
+        
+        }
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimIhlPluginTestSuite::TestCancelLoadAnimationL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTsanimihl::TestCancelLoadAnimationL()
+    {
+    iTestObj->Load( iFs, KAnimationFile, iWaiter->iStatus );
+    iWaiter->Activate();
+    iTestObj->Cancel();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+    if ( iWaiter->iStatus.Int()== KErrCancel )
+        {
+        
+        }
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimIhlPluginTestSuite::TestCancelLoadMultiFrameL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTsanimihl::TestCancelLoadMultiFrameL()
+    {
+    iTestObj->Load( iFs, KMbmFile, iWaiter->iStatus );
+    iWaiter->Activate();
+    iTestObj->Cancel();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+    if ( iWaiter->iStatus.Int() == KErrCancel )
+        {
+        
+        }
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimIhlPluginTestSuite::TestShowStillImageL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTsanimihl::TestShowStillImageL()
+    {
+    iTestObj->Start( iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+    if ( iWaiter->iStatus.Int()== KErrNone )
+        {
+        
+        }
+    //STIF_ASSERT_EQUALS( iFrameCounter, 1 );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimIhlPluginTestSuite::TestShowStillImageWithFrameDelayL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTsanimihl::TestShowStillImageWithFrameDelayL()
+    {
+    iTestObj->SetFrameDelay( K1Second );
+    iTestObj->Start( iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+    if ( iWaiter->iStatus.Int()==  KErrNone )
+        {
+        
+        }
+    //STIF_ASSERT_EQUALS( iFrameCounter, 1 );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimIhlPluginTestSuite::TestShowAnimationL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTsanimihl::TestShowAnimationL()
+    {
+    iTestObj->Start( iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+    if ( iWaiter->iStatus.Int() == KErrNone )
+        {
+        
+        }
+    //STIF_ASSERT_EQUALS( iFrameCounter, 43 );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimIhlPluginTestSuite::TestShowMultiFrameL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTsanimihl::TestShowMultiFrameL()
+    {
+    iTestObj->Start( iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+    if ( iWaiter->iStatus.Int() == KErrNone )
+        {
+        
+        }
+    //STIF_ASSERT_EQUALS( iFrameCounter, 34 );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimIhlPluginTestSuite::TestCancelPlayL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTsanimihl::TestCancelPlayL()
+    {
+    iTestObj->SetFrameDelay( K1Second );
+    iTestObj->Start( iWaiter->iStatus );
+    iWaiter->Activate();
+    iTestObj->Cancel();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+    if ( iWaiter->iStatus.Int()== KErrCancel )
+        {
+        
+        }
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimIhlPluginTestSuite::TestBgColourL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTsanimihl::TestBgColourL()
+    {
+    TRgb bgColour = iTestObj->BackroundColour();
+    RDebug::Print( _L( "BG color: 0x%08x" ), bgColour.Value() );
+    if ( bgColour.Value()== 0x00bf8040 )
+        {
+        
+        }
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimIhlPluginTestSuite::TestBgColourBeforeLoadL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTsanimihl::TestBgColourBeforeLoadL()
+    {
+    TRgb bgColour = iTestObj->BackroundColour();
+   // STIF_ASSERT_EQUALS( bgColour.Value(), 0x00FFFFFF );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimIhlPluginTestSuite::TestScaleStillImageL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTsanimihl::TestScaleStillImageL()
+    {
+    iTestObj->SetSize( TSize( 126, 126 ) );
+
+    iTestObj->Load( iFs, KStillImageGray2File, iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+    if ( iWaiter->iStatus.Int()== KErrNone )
+        {
+        
+        }
+
+    iTestObj->Start( iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+    if ( iWaiter->iStatus.Int() == KErrNone )
+        {
+        
+        }
+    //STIF_ASSERT_EQUALS( iFrameCounter, 1 );
+    return KErrNone;
+    }
+
+
+// Praveen
+// EXTERNAL DATA STRUCTURES
+//extern  ?external_data;
+
+// EXTERNAL FUNCTION PROTOTYPES  
+//extern ?external_function( ?arg_type,?arg_type );
+
+// CONSTANTS
+//const ?type ?constant_var = ?constant;
+
+// MACROS
+//#define ?macro ?macro_def
+
+// LOCAL CONSTANTS AND MACROS
+//const ?type ?constant_var = ?constant;
+//#define ?macro_name ?macro_def
+
+// MODULE DATA STRUCTURES
+//enum ?declaration
+//typedef ?declaration
+
+// LOCAL FUNCTION PROTOTYPES
+//?type ?function_name( ?arg_type, ?arg_type );
+
+// FORWARD DECLARATIONS
+//class ?FORWARD_CLASSNAME;
+
+// ============================= LOCAL FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// ?function_name ?description.
+// ?description
+// Returns: ?value_1: ?description
+//          ?value_n: ?description_line1
+//                    ?description_line2
+// -----------------------------------------------------------------------------
+//
+/*
+?type ?function_name(
+    ?arg_type arg,  // ?description
+    ?arg_type arg)  // ?description
+    {
+
+    ?code  // ?comment
+
+    // ?comment
+    ?code
+    }
+*/
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CTsanimihl::Delete
+// Delete here all resources allocated and opened from test methods. 
+// Called from destructor. 
+// -----------------------------------------------------------------------------
+//
+void CTsanimihl::Delete() 
+    {
+
+    }
+
+
+
+
+// -----------------------------------------------------------------------------
+// CTsanimihl::ExampleL
+// Example test method function.
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TInt CTsanimihl::ExampleL( CStifItemParser& aItem )
+    {
+
+    // Print to UI
+    _LIT( KTsanimihl, "Tsanimihl" );
+    _LIT( KExample, "In Example" );
+    TestModuleIf().Printf( 0, KTsanimihl, KExample );
+    // Print to log file
+    iLog->Log( KExample );
+
+    TInt i = 0;
+    TPtrC string;
+    _LIT( KParam, "Param[%i]: %S" );
+    while ( aItem.GetNextString ( string ) == KErrNone )
+        {
+        TestModuleIf().Printf( i, KTsanimihl, 
+                                KParam, i, &string );
+        i++;
+        }
+
+    return KErrNone;
+
+    }
+
+
+
+// -----------------------------------------------------------------------------
+// CTsanimihl::?member_function
+// ?implementation_description
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+/*
+TInt CTsanimihl::?member_function(
+   CItemParser& aItem )
+   {
+
+   ?code
+
+   }
+*/
+
+// ========================== OTHER EXPORTED FUNCTIONS =========================
+// None
+
+//  [End of File] - Do not remove
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/Tsanimihl/src/testwaiter.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,92 @@
+/*
+* 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 the License "Symbian Foundation License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Implementation of CTestWaiter class
+*
+*/
+
+
+#include "testwaiter.h"
+
+#pragma tagging OFF // To disable CodeTest tagging
+
+// ======== MEMBER FUNCTIONS ========
+
+// ---------------------------------------------------------------------------
+// CTestWaiter::NewL
+//
+// ---------------------------------------------------------------------------
+//
+CTestWaiter* CTestWaiter::NewL()
+    {
+    CTestWaiter* self = new( ELeave ) CTestWaiter;
+    return self;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTestWaiter::~CTestWaiter
+//
+// ---------------------------------------------------------------------------
+//
+CTestWaiter::~CTestWaiter()
+    {
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTestWaiter::Activate
+//
+// ---------------------------------------------------------------------------
+//
+void CTestWaiter::Activate()
+    {
+    __ASSERT_ALWAYS( !IsActive(), User::Invariant() );
+
+    SetActive();
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTestWaiter::CTestWaiter
+//
+// ---------------------------------------------------------------------------
+//
+CTestWaiter::CTestWaiter()
+  : CActive( EPriorityStandard )
+    {
+    CActiveScheduler::Add( this );
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTestWaiter::DoCancel
+//
+// ---------------------------------------------------------------------------
+//
+void CTestWaiter::DoCancel()
+    {
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTestWaiter::RunL
+//
+// ---------------------------------------------------------------------------
+//
+void CTestWaiter::RunL()
+    {
+    CActiveScheduler::Stop();
+    }
+
+#pragma tagging ON // To stop disabling CodeTest tagging
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/init/TestFramework.ini	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,228 @@
+#
+# This is STIF initialization file
+# Comment lines start with '#'-character.
+# See STIF TestFramework users guide.doc for instructions
+
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+# Set following test engine settings:
+#	- Set Test Reporting mode. TestReportMode's possible values are:
+#		+ 'Summary': Summary of the tested test cases.
+#		+ 'Environment': Hardware and software info.
+#		+ 'TestCases': Test case report.
+#		+ 'FullReport': Set of all above ones.
+#		+ Example 'TestReportMode= Summary TestCases'
+#
+# 	- CreateTestReport setting controls report creation mode
+#		+ YES, Test report will created.
+#		+ NO, No Test report.
+#
+# 	- File path indicates the base path of the test report.
+# 	- File name indicates the name of the test report.
+#
+# 	- File format indicates the type of the test report.
+#		+ TXT, Test report file will be txt type, for example 'TestReport.txt'.
+#		+ HTML, Test report will be html type, for example 'TestReport.html'.
+#   + XML, Test report will be xml type, for example 'TestReport.xml'.
+#          Note, that xml format is available only when output is set to FILE.
+#
+# 	- File output indicates output source of the test report.
+#		+ FILE, Test report logging to file.
+#		+ RDEBUG, Test report logging to using rdebug.
+#
+# 	- File Creation Mode indicates test report overwriting if file exist.
+#		+ OVERWRITE, Overwrites if the Test report file exist.
+#		+ APPEND, Continue logging after the old Test report information if
+#                 report exist.
+# 	- Sets a device reset module's dll name(Reboot).
+#		+ If Nokia specific reset module is not available or it is not correct one
+#		  StifHWResetStub module may use as a template for user specific reset
+#		  module.
+# 	- Sets STIF test measurement disable options. e.g. pluging1 and pluging2 disablation
+#		DisableMeasurement= stifmeasurementplugin01 stifmeasurementplugin02
+#
+
+[Engine_Defaults]
+
+TestReportMode= FullReport    # Possible values are: 'Empty', 'Summary', 'Environment',
+                              #                      'TestCases' or 'FullReport'
+
+CreateTestReport= YES         # Possible values: YES or NO
+
+TestReportFilePath= C:\LOGS\TestFramework\
+TestReportFileName= TestReport
+
+TestReportFormat= TXT         # Possible values: TXT, HTML or XML
+TestReportOutput= FILE        # Possible values: FILE or RDEBUG
+TestReportFileCreationMode= OVERWRITE # Possible values: OVERWRITE or APPEND
+
+DeviceResetDllName= StifResetForNokia.dll # e.g. 'StifHWResetStub.dll' for user specific reseting
+
+DisableMeasurement= stifmeasurementdisablenone  # Possible values are:
+              # 'stifmeasurementdisablenone', 'stifmeasurementdisableall'
+              # 'stifmeasurementplugin01', 'stifmeasurementplugin02',
+              # 'stifmeasurementplugin03', 'stifmeasurementplugin04',
+              # 'stifmeasurementplugin05' or 'stifbappeaprofiler'
+
+Timeout= 0                    # Default timeout value for each test case. In milliseconds
+UITestingSupport= YES        # Possible values: YES or NO
+#SeparateProcesses= YES       # Possible values: YES or NO (default: NO)
+[End_Defaults]
+
+[New_Module]
+ModuleName= testscripter 
+TestCaseFile= z:\testframework\UI_Tsanimctrl.cfg 
+TestCaseFile= z:\testframework\UI_Tsanimengine.cfg
+TestCaseFile= z:\testframework\UI_Tsanimihl.cfg
+TestCaseFile= z:\testframework\UI_Tsanimmif.cfg
+TestCaseFile= z:\testframework\UI_Tsanimmmf.cfg
+TestCaseFile= z:\testframework\UI_Tsanimsvg.cfg
+TestCaseFile= z:\testframework\syserrcmdtest.cfg
+
+[End_Module]
+
+
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+
+
+
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+# Module configurations start
+# Modules are added between module tags
+# tags. Module name is specified after ModuleName= tag, like
+# ModuleName= XXXXXXXXX
+# Modules might have initialisation file, specified as
+# IniFile= c:\testframework\YYYYYY
+# Modules might have several configuration files, like
+# TestCaseFile= c:\testframework\NormalCases.txt
+# TestCaseFile= c:\testframework\SmokeCases.txt
+# TestCaseFile= c:\testframework\ManualCases.txt
+
+# (TestCaseFile is synonym for old term ConfigFile)
+
+# Following case specifies demo module settings. Demo module
+# does not read any settings from file, so tags 
+# IniFile and TestCaseFile are not used.
+# In the simplest case it is enough to specify only the
+# name of the test module when adding new test module
+
+
+
+# Load testmoduleXXX, optionally with initialization file and/or test case files
+#[New_Module]
+#ModuleName= testmodulexxx
+
+#TestModuleXXX used initialization file
+#IniFile= c:\testframework\init.txt
+
+#TestModuleXXX used configuration file(s)
+#TestCaseFile= c:\testframework\testcases1.cfg
+#TestCaseFile= c:\testframework\testcases2.cfg
+#TestCaseFile= c:\testframework\manualtestcases.cfg
+
+#[End_Module]
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+
+
+
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+# Set STIF logging overwrite parameters for Logger.
+# 	Hardware and emulator environment logging path and styles can
+# 	be configured from here to overwrite the Logger's implemented values.
+#	
+#	Settings description:
+#	- Indicates option for creation log directory/directories. If log directory/directories
+#         is/are not created by user they will make by software.
+#		+ YES, Create log directory/directories if not allready exist.
+#		+ NO, Log directory/directories not created. Only created one is used.
+#
+#	- Overwrite emulator path setting.
+#		+ Example: If 'EmulatorBasePath= C:\LOGS\TestFramework\' and in code is defined 
+#		           Logger's path 'D:\\LOGS\\Module\\' with those definition the path
+#		           will be 'C:\LOGS\TestFramework\LOGS\Module\'
+#
+#	- Overwrite emulator's logging format.
+#		+ TXT, Log file(s) will be txt type(s), for example 'Module.txt'.
+#		+ HTML, Log file(s) will be html type(s), for example 'Module.html'.
+#
+#	- Overwrited emulator logging output source.
+#		+ FILE, Logging to file(s).
+#		+ RDEBUG, Logging to using rdebug(s).
+#
+#	- Overwrite hardware path setting (Same description as above in emulator path).
+#	- Overwrite hardware's logging format(Same description as above in emulator format).
+#	- Overwrite hardware's logging output source(Same description as above in emulator output).
+#
+#	- File Creation Mode indicates file overwriting if file exist.
+#		+ OVERWRITE, Overwrites if file(s) exist.
+#		+ APPEND, Continue logging after the old logging information if file(s) exist.
+#
+#	- Will thread id include to the log filename.
+#		+ YES, Thread id to log file(s) name, Example filename 'Module_b9.txt'.
+#		+ NO, No thread id to log file(s), Example filename 'Module.txt'.
+#
+#	- Will time stamps include the to log file.
+#		+ YES, Time stamp added to each line in log file(s). Time stamp is 
+#                 for example'12.Nov.2003 115958    LOGGING INFO'
+#		+ NO, No time stamp(s).
+#
+#	- Will line breaks include to the log file.
+#		+ YES, Each logging event includes line break and next log event is in own line.
+#		+ NO, No line break(s).
+#
+#	- Will event ranking include to the log file.
+#		+ YES, Event ranking number added to each line in log file(s). Ranking number
+#                 depends on environment's tics, for example(includes time stamp also)
+#                 '012   12.Nov.2003 115958    LOGGING INFO'
+#		+ NO, No event ranking.
+#
+#	- Will write log file in unicode format.
+#		+ YES, Log file will be written in unicode format
+#		+ NO, Log will be written as normal, not unicode, file.
+#
+
+[Logger_Defaults]
+
+#NOTE: If you want to set Logger using next setting(s) remove comment(s)'#'
+#NOTE: TestEngine and TestServer logging settings cannot change here
+
+#CreateLogDirectories= YES    # Possible values: YES or NO
+
+#EmulatorBasePath= C:\LOGS\TestFramework\
+#EmulatorFormat= HTML         # Possible values: TXT or HTML
+#EmulatorOutput= FILE         # Possible values: FILE or RDEBUG
+
+#HardwareBasePath= D:\LOGS\TestFramework\
+#HardwareFormat= HTML         # Possible values: TXT or HTML
+#HardwareOutput= FILE         # Possible values: FILE or RDEBUG
+
+#FileCreationMode= OVERWRITE  # Possible values: OVERWRITE or APPEND
+
+#ThreadIdToLogFile= YES       # Possible values: YES or NO
+#WithTimeStamp= YES           # Possible values: YES or NO
+#WithLineBreak= YES           # Possible values: YES or NO
+#WithEventRanking= YES        # Possible values: YES or NO
+
+#FileUnicode= YES             # Possible values: YES or NO
+#AddTestCaseTitle= YES        # Possible values: YES or NO
+[End_Logger_Defaults]
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+
+
+
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+# Set filters to be used by ConsoleUI.
+# 	If you want to use filter with ConsoleUI, simply remove comments
+# 	from section below and provide valid filter entries.
+#   Each filter line has to start with "filter= " keyword.
+#   Filter can contain special wildcard characters:
+#     *  which stands for none or any literal;
+#     ?  which stands for single character.
+#   Filters are not case-sensitive.
+
+#[Filters]
+#filter= *math*
+#filter= *radio*
+#[End_Filters]
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+
+# End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/rom/Tstartuptest.iby	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,7 @@
+#ifndef __TSTARTUPANIMTEST_IBY__
+#define __TSTARTUPANIMTEST_IBY__
+
+
+data=\epoc32\data\z\system\data\TestFramework.ini \testframework\TestFramework.ini
+
+#endif
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/tsanimsvg/Bmarm/TSanimsvgU.DEF	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,3 @@
+EXPORTS
+	LibEntryL__FR13CTestModuleIf @ 1 NONAME R3UNUSED ; LibEntryL(CTestModuleIf &)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/tsanimsvg/Bwins/TSanimsvgu.def	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,3 @@
+EXPORTS
+	?LibEntryL@@YAPAVCScriptBase@@AAVCTestModuleIf@@@Z @ 1 NONAME ; class CScriptBase * __cdecl LibEntryL(class CTestModuleIf &)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/tsanimsvg/conf/UI_TSanimsvg.cfg	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,323 @@
+[Test]
+title Example
+create TSanimsvg AnimSvgPlugin
+AnimSvgPlugin Example pa ra me ters
+delete AnimSvgPlugin
+[Endtest] 
+
+[Test]
+title TestConstructor
+create TSanimsvg AnimSvgPlugin
+AnimSvgPlugin SetupEmpty
+AnimSvgPlugin TestConstructor
+AnimSvgPlugin Teardown
+delete AnimSvgPlugin
+[Endtest] 
+
+[Test]
+title TestConstructorNoMemory
+create TSanimsvg AnimSvgPlugin
+AnimSvgPlugin SetupEmpty
+AnimSvgPlugin TestConstructorNoMemory
+AnimSvgPlugin Teardown
+delete AnimSvgPlugin
+[Endtest] 
+
+
+[Test]
+title TestUnknownFileL
+create TSanimsvg AnimSvgPlugin
+AnimSvgPlugin SetupObj
+AnimSvgPlugin TestUnknownFile
+AnimSvgPlugin Teardown
+delete AnimSvgPlugin
+[Endtest] 
+
+
+[Test]
+title TestCorruptFile
+create TSanimsvg AnimSvgPlugin
+AnimSvgPlugin SetupObj
+AnimSvgPlugin TestCorruptFile
+AnimSvgPlugin Teardown
+delete AnimSvgPlugin
+[Endtest] 
+
+[Test]
+title TestLoadStillImage
+create TSanimsvg AnimSvgPlugin
+AnimSvgPlugin SetupObj
+AnimSvgPlugin TestLoadStillImage
+AnimSvgPlugin Teardown
+delete AnimSvgPlugin
+[Endtest] 
+
+
+[Test]
+title TestLoadScaledAnimation
+create TSanimsvg AnimSvgPlugin
+AnimSvgPlugin SetupObj
+AnimSvgPlugin TestLoadScaledAnimation
+AnimSvgPlugin Teardown
+delete AnimSvgPlugin
+[Endtest] 
+
+[Test]
+title TestLoadUnscaledAnimation
+create TSanimsvg AnimSvgPlugin
+AnimSvgPlugin SetupObj
+AnimSvgPlugin TestLoadUnscaledAnimation
+AnimSvgPlugin Teardown
+delete AnimSvgPlugin
+[Endtest] 
+
+
+[Test]
+title TestLoadAnimationWithText
+create TSanimsvg AnimSvgPlugin
+AnimSvgPlugin SetupObj
+AnimSvgPlugin TestLoadAnimationWithText
+AnimSvgPlugin Teardown
+delete AnimSvgPlugin
+[Endtest] 
+
+[Test]
+title TestLoadStillImageBinary
+create TSanimsvg AnimSvgPlugin
+AnimSvgPlugin SetupObj
+AnimSvgPlugin TestLoadStillImageBinary
+AnimSvgPlugin Teardown
+delete AnimSvgPlugin
+[Endtest] 
+
+[Test]
+title TestLoadScaledAnimationBinary
+create TSanimsvg AnimSvgPlugin
+AnimSvgPlugin SetupObj
+AnimSvgPlugin TestLoadScaledAnimationBinary
+AnimSvgPlugin Teardown
+delete AnimSvgPlugin
+[Endtest] 
+
+
+[Test]
+title TestLoadNoMemory
+create TSanimsvg AnimSvgPlugin
+AnimSvgPlugin SetupObj
+AnimSvgPlugin TestLoadNoMemory
+AnimSvgPlugin Teardown
+delete AnimSvgPlugin
+[Endtest] 
+
+
+[Test]
+title TestCancelLoad
+create TSanimsvg AnimSvgPlugin
+AnimSvgPlugin SetupObj
+AnimSvgPlugin TestCancelLoad
+AnimSvgPlugin Teardown
+delete AnimSvgPlugin
+[Endtest] 
+
+[Test]
+title TestShowStillImage
+create TSanimsvg AnimSvgPlugin
+AnimSvgPlugin SetupStillImage
+AnimSvgPlugin TestShowStillImage
+AnimSvgPlugin Teardown
+delete AnimSvgPlugin
+[Endtest] 
+
+[Test]
+title TestShowAnimation
+create TSanimsvg AnimSvgPlugin
+AnimSvgPlugin SetupScaledAnimation  
+AnimSvgPlugin TestShowAnimation
+AnimSvgPlugin Teardown
+delete AnimSvgPlugin
+[Endtest] 
+
+
+[Test]
+title TestShowAnimation
+create TSanimsvg AnimSvgPlugin
+AnimSvgPlugin SetupUnscaledAnimation
+AnimSvgPlugin TestShowAnimation
+AnimSvgPlugin Teardown
+delete AnimSvgPlugin
+[Endtest] 
+
+[Test]
+title TestShowAnimation
+create TSanimsvg AnimSvgPlugin
+AnimSvgPlugin SetupAnimationWithText
+AnimSvgPlugin TestShowAnimation
+AnimSvgPlugin Teardown
+delete AnimSvgPlugin
+[Endtest] 
+
+
+[Test]
+title TestShowStillImage
+create TSanimsvg AnimSvgPlugin
+AnimSvgPlugin SetupStillImageBinary
+AnimSvgPlugin TestShowStillImage
+AnimSvgPlugin Teardown
+delete AnimSvgPlugin
+[Endtest] 
+
+
+[Test]
+title TestShowAnimation
+create TSanimsvg AnimSvgPlugin
+AnimSvgPlugin SetupScaledAnimationBinary
+AnimSvgPlugin TestShowAnimation
+AnimSvgPlugin Teardown
+delete AnimSvgPlugin
+[Endtest] 
+
+
+[Test]
+title TestShowNoMemory
+create TSanimsvg AnimSvgPlugin
+AnimSvgPlugin SetupStillImage
+AnimSvgPlugin TestShowNoMemory
+AnimSvgPlugin Teardown
+delete AnimSvgPlugin
+[Endtest] 
+
+
+[Test]
+title TestCancelStillImage
+create TSanimsvg AnimSvgPlugin
+AnimSvgPlugin SetupStillImage
+AnimSvgPlugin TestCancelStillImage
+AnimSvgPlugin Teardown
+delete AnimSvgPlugin
+[Endtest] 
+
+
+[Test]
+title TestCancelAnimation
+create TSanimsvg AnimSvgPlugin
+AnimSvgPlugin SetupScaledAnimation
+AnimSvgPlugin TestCancelAnimation
+AnimSvgPlugin Teardown
+delete AnimSvgPlugin
+[Endtest] 
+
+[Test]
+title TestCancelNotActive
+create TSanimsvg AnimSvgPlugin
+AnimSvgPlugin SetupObj
+AnimSvgPlugin TestCancelNotActive
+AnimSvgPlugin Teardown
+delete AnimSvgPlugin
+[Endtest] 
+
+
+[Test]
+title TestCancelNotActive
+create TSanimsvg AnimSvgPlugin
+AnimSvgPlugin SetupScaledAnimation
+AnimSvgPlugin TestCancelNotActive
+AnimSvgPlugin Teardown
+delete AnimSvgPlugin
+[Endtest] 
+
+
+[Test]
+title TestCancelNotActive
+create TSanimsvg AnimSvgPlugin
+AnimSvgPlugin SetupFinished
+AnimSvgPlugin TestCancelNotActive
+AnimSvgPlugin Teardown
+delete AnimSvgPlugin
+[Endtest] 
+
+
+[Test]
+title TestLoadStillImage
+create TSanimsvg AnimSvgPlugin
+AnimSvgPlugin SetupFinished
+AnimSvgPlugin TestLoadStillImage
+AnimSvgPlugin Teardown
+delete AnimSvgPlugin
+[Endtest] 
+
+
+[Test]
+title TestLoadNoMemory
+create TSanimsvg AnimSvgPlugin
+AnimSvgPlugin SetupFinished
+AnimSvgPlugin TestLoadNoMemory
+AnimSvgPlugin Teardown
+delete AnimSvgPlugin
+[Endtest] 
+
+
+[Test]
+title TestSetDisplayMode
+create TSanimsvg AnimSvgPlugin
+AnimSvgPlugin SetupObj
+AnimSvgPlugin TestSetDisplayMode
+AnimSvgPlugin Teardown
+delete AnimSvgPlugin
+[Endtest] 
+
+
+[Test]
+title TestSetSize
+create TSanimsvg AnimSvgPlugin
+AnimSvgPlugin SetupObj
+AnimSvgPlugin TestSetSize
+AnimSvgPlugin Teardown
+delete AnimSvgPlugin
+[Endtest] 
+
+
+[Test]
+title TestSetFrameDelay
+create TSanimsvg AnimSvgPlugin
+AnimSvgPlugin SetupObj
+AnimSvgPlugin TestSetFrameDelay
+AnimSvgPlugin Teardown
+delete AnimSvgPlugin
+[Endtest] 
+
+
+[Test]
+title TestBackroundColour
+create TSanimsvg AnimSvgPlugin
+AnimSvgPlugin SetupObj
+AnimSvgPlugin TestBackroundColour
+AnimSvgPlugin Teardown
+delete AnimSvgPlugin
+[Endtest] 
+
+[Test]
+title TestBackroundColour
+create TSanimmif AnimSvgPlugin
+AnimSvgPlugin  SetupStillImage
+AnimSvgPlugin TestBackroundColour
+AnimSvgPlugin Teardown
+delete AnimSvgPlugin
+[Endtest]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/tsanimsvg/eabi/TSanimsvgu.def	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,3 @@
+EXPORTS
+	_Z9LibEntryLR13CTestModuleIf @ 1 NONAME
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/tsanimsvg/group/TSanimsvg.pkg	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,60 @@
+;
+; 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:
+;
+; 	Installation file for STIF
+;
+
+; Languages
+&EN
+
+; Provide value for uid
+#{"STIF"},(0x00000000),1,1,0,TYPE=SA
+
+; Series60 product id for S60 3.0
+[0x101F7961], 0, 0, 0, {"Series60ProductID"}
+
+; Localised Vendor name
+%{"Nokia"}
+
+; Unique Vendor name
+:"Nokia"
+
+; Logo
+; None
+
+; Package signature - Optional
+; None
+
+; Start of Package body
+
+; Condition blocks
+; None
+
+; Options list
+; None
+
+; Install files
+"\epoc32\release\armv5\udeb\TSanimsvg.dll"   -   "!:\Sys\Bin\TSanimsvg.dll"
+  
+; Embedded SIS 
+; None
+
+; End of Package body
+
+; PKG dependencies
+; None
+
+; PKG capabilities
+; None
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/tsanimsvg/group/TSanimsvg_DoxyFile.txt	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,240 @@
+#
+# 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:
+#
+#
+
+# Doxyfile 1.4.1
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+PROJECT_NAME           = TSanimsvg
+PROJECT_NUMBER         = 
+OUTPUT_DIRECTORY       = \TSanimsvg\
+CREATE_SUBDIRS         = NO
+OUTPUT_LANGUAGE        = English
+USE_WINDOWS_ENCODING   = YES
+BRIEF_MEMBER_DESC      = YES
+REPEAT_BRIEF           = YES
+ABBREVIATE_BRIEF       = 
+ALWAYS_DETAILED_SEC    = NO
+INLINE_INHERITED_MEMB  = NO
+FULL_PATH_NAMES        = NO
+STRIP_FROM_PATH        = 
+STRIP_FROM_INC_PATH    = 
+SHORT_NAMES            = NO
+JAVADOC_AUTOBRIEF      = NO
+MULTILINE_CPP_IS_BRIEF = NO
+DETAILS_AT_TOP         = NO
+INHERIT_DOCS           = YES
+DISTRIBUTE_GROUP_DOC   = NO
+TAB_SIZE               = 8
+ALIASES                = 
+OPTIMIZE_OUTPUT_FOR_C  = YES
+OPTIMIZE_OUTPUT_JAVA   = NO
+SUBGROUPING            = YES
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+EXTRACT_ALL            = YES
+EXTRACT_PRIVATE        = NO
+EXTRACT_STATIC         = NO
+EXTRACT_LOCAL_CLASSES  = NO
+EXTRACT_LOCAL_METHODS  = NO
+HIDE_UNDOC_MEMBERS     = NO
+HIDE_UNDOC_CLASSES     = NO
+HIDE_FRIEND_COMPOUNDS  = NO
+HIDE_IN_BODY_DOCS      = NO
+INTERNAL_DOCS          = YES
+CASE_SENSE_NAMES       = YES
+HIDE_SCOPE_NAMES       = NO
+SHOW_INCLUDE_FILES     = YES
+INLINE_INFO            = YES
+SORT_MEMBER_DOCS       = YES
+SORT_BRIEF_DOCS        = NO
+SORT_BY_SCOPE_NAME     = NO
+GENERATE_TODOLIST      = NO
+GENERATE_TESTLIST      = NO
+GENERATE_BUGLIST       = NO
+GENERATE_DEPRECATEDLIST= YES
+ENABLED_SECTIONS       = 
+MAX_INITIALIZER_LINES  = 30
+SHOW_USED_FILES        = YES
+SHOW_DIRECTORIES       = YES
+FILE_VERSION_FILTER    = 
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+QUIET                  = NO
+WARNINGS               = YES
+WARN_IF_UNDOCUMENTED   = YES
+WARN_IF_DOC_ERROR      = YES
+WARN_NO_PARAMDOC       = NO
+WARN_FORMAT            = "$file:$line: $text"
+WARN_LOGFILE           = 
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+INPUT                  = \TSanimsvg\
+FILE_PATTERNS          = *.h \
+                         *.rh \
+                         *.hrh
+RECURSIVE              = YES
+EXCLUDE                = 
+EXCLUDE_SYMLINKS       = NO
+EXCLUDE_PATTERNS       = 
+EXAMPLE_PATH           = 
+EXAMPLE_PATTERNS       = 
+EXAMPLE_RECURSIVE      = NO
+IMAGE_PATH             = 
+INPUT_FILTER           = 
+FILTER_PATTERNS        = 
+FILTER_SOURCE_FILES    = NO
+#---------------------------------------------------------------------------
+# configuration options related to source browsing
+#---------------------------------------------------------------------------
+SOURCE_BROWSER         = NO
+INLINE_SOURCES         = NO
+STRIP_CODE_COMMENTS    = YES
+REFERENCED_BY_RELATION = YES
+REFERENCES_RELATION    = YES
+VERBATIM_HEADERS       = YES
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+ALPHABETICAL_INDEX     = NO
+COLS_IN_ALPHA_INDEX    = 5
+IGNORE_PREFIX          = 
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+GENERATE_HTML          = NO
+HTML_OUTPUT            = html
+HTML_FILE_EXTENSION    = .html
+HTML_HEADER            = 
+HTML_FOOTER            = 
+HTML_STYLESHEET        = 
+HTML_ALIGN_MEMBERS     = YES
+GENERATE_HTMLHELP      = YES
+CHM_FILE               = 
+HHC_LOCATION           = 
+GENERATE_CHI           = NO
+BINARY_TOC             = YES
+TOC_EXPAND             = YES
+DISABLE_INDEX          = YES
+ENUM_VALUES_PER_LINE   = 4
+GENERATE_TREEVIEW      = YES
+TREEVIEW_WIDTH         = 250
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+GENERATE_LATEX         = NO
+LATEX_OUTPUT           = latex
+LATEX_CMD_NAME         = latex
+MAKEINDEX_CMD_NAME     = makeindex
+COMPACT_LATEX          = NO
+PAPER_TYPE             = a4wide
+EXTRA_PACKAGES         = 
+LATEX_HEADER           = 
+PDF_HYPERLINKS         = NO
+USE_PDFLATEX           = NO
+LATEX_BATCHMODE        = NO
+LATEX_HIDE_INDICES     = NO
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+GENERATE_RTF           = YES
+RTF_OUTPUT             = Doc
+COMPACT_RTF            = YES
+RTF_HYPERLINKS         = YES
+RTF_STYLESHEET_FILE    = 
+RTF_EXTENSIONS_FILE    = 
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+GENERATE_MAN           = NO
+MAN_OUTPUT             = man
+MAN_EXTENSION          = .3
+MAN_LINKS              = NO
+#---------------------------------------------------------------------------
+# configuration options related to the XML output
+#---------------------------------------------------------------------------
+GENERATE_XML           = NO
+XML_OUTPUT             = xml
+XML_SCHEMA             = 
+XML_DTD                = 
+XML_PROGRAMLISTING     = YES
+#---------------------------------------------------------------------------
+# configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+GENERATE_AUTOGEN_DEF   = NO
+#---------------------------------------------------------------------------
+# configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+GENERATE_PERLMOD       = NO
+PERLMOD_LATEX          = NO
+PERLMOD_PRETTY         = YES
+PERLMOD_MAKEVAR_PREFIX = 
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor   
+#---------------------------------------------------------------------------
+ENABLE_PREPROCESSING   = YES
+MACRO_EXPANSION        = YES
+EXPAND_ONLY_PREDEF     = NO
+SEARCH_INCLUDES        = YES
+INCLUDE_PATH           = 
+INCLUDE_FILE_PATTERNS  = 
+PREDEFINED             = NONSHARABLE_CLASS
+EXPAND_AS_DEFINED      = 
+SKIP_FUNCTION_MACROS   = YES
+#---------------------------------------------------------------------------
+# Configuration::additions related to external references   
+#---------------------------------------------------------------------------
+TAGFILES               = 
+GENERATE_TAGFILE       = 
+ALLEXTERNALS           = NO
+EXTERNAL_GROUPS        = YES
+PERL_PATH              = /usr/bin/perl
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool   
+#---------------------------------------------------------------------------
+CLASS_DIAGRAMS         = YES
+HIDE_UNDOC_RELATIONS   = YES
+HAVE_DOT               = NO
+CLASS_GRAPH            = YES
+COLLABORATION_GRAPH    = YES
+GROUP_GRAPHS           = YES
+UML_LOOK               = NO
+TEMPLATE_RELATIONS     = YES
+INCLUDE_GRAPH          = YES
+INCLUDED_BY_GRAPH      = YES
+CALL_GRAPH             = NO
+GRAPHICAL_HIERARCHY    = YES
+DIRECTORY_GRAPH        = YES
+DOT_IMAGE_FORMAT       = png
+DOT_PATH               = 
+DOTFILE_DIRS           = 
+MAX_DOT_GRAPH_WIDTH    = 1024
+MAX_DOT_GRAPH_HEIGHT   = 1024
+MAX_DOT_GRAPH_DEPTH    = 0
+DOT_TRANSPARENT        = NO
+DOT_MULTI_TARGETS      = NO
+GENERATE_LEGEND        = YES
+DOT_CLEANUP            = YES
+#---------------------------------------------------------------------------
+# Configuration::additions related to the search engine   
+#---------------------------------------------------------------------------
+SEARCHENGINE           = NO
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/tsanimsvg/group/bld.inf	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,60 @@
+/*
+* 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:
+*
+*/
+
+PRJ_PLATFORMS
+// specify the platforms your component needs to be built for here
+// defaults to WINS MARM so you can ignore this if you just build these
+	
+	DEFAULT
+
+PRJ_TESTEXPORTS
+// NOTE: If using ARS requirements all export operations should be done under this.
+// 'abld test export'
+
+PRJ_EXPORTS
+// Specify the source file followed by its destination here
+// copy will be used to copy the source file to its destination
+// If there's no destination then the source file will be copied
+// to the same name in \epoc32\include
+// Example: 
+/*
+\agnmodel\inc\AGMCOMON.H
+*/
+
+PRJ_TESTMMPFILES
+
+	tsanimsvg.mmp
+
+PRJ_MMPFILES
+
+	tsanimsvg.mmp
+
+// Specify the .mmp files required for building the important component
+// releasables.
+//
+// Specify "tidy" if the component you need to build doesn't need to be
+// released. Specify "ignore" if the MMP file exists but should be
+// ignored.
+// Example:
+/*
+\agnmodel\group\agnmodel.mmp
+#if defined(MARM)
+\agnmodel\group\agsvexe.mmp
+#endif
+*/
+
+//  End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/tsanimsvg/group/ctcerr.txt	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,436 @@
+
+*******************************************************************************
+
+argv[0]: C:\DOCUME~1\praprave\LOCALS~1\Temp\ctc4\mwldsym2.exe
+argv[1]: -version
+
+*** CTC++/ctcagent command: set PATH=C:\Apps\sbs\win32\mingw\bin;C:\Apps\sbs\win32\cygwin\bin;C:\Apps\sbs\win32\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\Wireless\Bin;c:\Program Files\Intel\WiFi\bin\;C:\Program Files\NTRU Cryptosystems\NTRU TCG Software Stack\bin\;C:\Program Files\Wave Systems Corp\Gemalto\Access Client\v5\;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\ctc;C:\APPS\prevent\bin;C:\APPS\cltools;C:\APPS\7zip;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\APPS\imaker;C:\Program Files\QuickTime\QTSystem\;C:\Program Files\Nokia\FastTrace;\epoc32\gcc_mingw\bin;C:\APPS\romtools;C:\APPS\bc;C:\APPS\codecollaborator;C:\APPS\actpython\.;C:\APPS\codescanner;C:\APPS\sbs\bin;C:\APPS\symdec;C:\APPS\symrec;C:\APPS\blocks\bin;C:\APPS\helium;C:\APPS\ant\bin;C:\APPS\jdk_1.6.0_11\bin; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_cw\winscw.ini @C:\DOCUME~1\praprave\LOCALS~1\Temp\ctc4\ctcopts.rsp mwldsym2 -version
+*** CTC++/ctcagent command status: 0
+
+
+*******************************************************************************
+
+argv[0]: C:\DOCUME~1\praprave\LOCALS~1\Temp\ctc4\mwccsym2.exe
+argv[1]: -version
+
+*** CTC++/ctcagent command: set PATH=C:\Apps\sbs\win32\mingw\bin;C:\Apps\sbs\win32\cygwin\bin;C:\Apps\sbs\win32\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\Wireless\Bin;c:\Program Files\Intel\WiFi\bin\;C:\Program Files\NTRU Cryptosystems\NTRU TCG Software Stack\bin\;C:\Program Files\Wave Systems Corp\Gemalto\Access Client\v5\;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\ctc;C:\APPS\prevent\bin;C:\APPS\cltools;C:\APPS\7zip;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\APPS\imaker;C:\Program Files\QuickTime\QTSystem\;C:\Program Files\Nokia\FastTrace;\epoc32\gcc_mingw\bin;C:\APPS\romtools;C:\APPS\bc;C:\APPS\codecollaborator;C:\APPS\actpython\.;C:\APPS\codescanner;C:\APPS\sbs\bin;C:\APPS\symdec;C:\APPS\symrec;C:\APPS\blocks\bin;C:\APPS\helium;C:\APPS\ant\bin;C:\APPS\jdk_1.6.0_11\bin; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_cw\winscw.ini @C:\DOCUME~1\praprave\LOCALS~1\Temp\ctc4\ctcopts.rsp mwccsym2 -version
+*** CTC++/ctcagent command status: 0
+
+
+*******************************************************************************
+
+argv[0]: C:\DOCUME~1\praprave\LOCALS~1\Temp\ctc4\mwccsym2.exe
+argv[1]: -c
+argv[2]: -align
+argv[3]: 4
+argv[4]: -warnings
+argv[5]: on
+argv[6]: -w
+argv[7]: nohidevirtual,nounusedexpr
+argv[8]: -msgstyle
+argv[9]: gcc
+argv[10]: -enum
+argv[11]: int
+argv[12]: -str
+argv[13]: pool
+argv[14]: -exc
+argv[15]: ms
+argv[16]: -trigraphs
+argv[17]: on
+argv[18]: -cwd
+argv[19]: source
+argv[20]: -g
+argv[21]: -O0
+argv[22]: -inline
+argv[23]: off
+argv[24]: -runtime
+argv[25]: staticmulti
+argv[26]: -wchar_t
+argv[27]: off
+argv[28]: -nostdinc
+argv[29]: -gccdepends
+argv[30]: -MD
+argv[31]: -d
+argv[32]: __SYMBIAN32__
+argv[33]: -d
+argv[34]: __CW32__
+argv[35]: -d
+argv[36]: __WINS__
+argv[37]: -d
+argv[38]: __WINSCW__
+argv[39]: -d
+argv[40]: __SUPPORT_CPP_EXCEPTIONS__
+argv[41]: -d
+argv[42]: _UNICODE
+argv[43]: -d
+argv[44]: _DEBUG
+argv[45]: -d
+argv[46]: __DLL__
+argv[47]: -i-
+argv[48]: -i
+argv[49]: Z:/startupservices/startupanimation/internal/test/TSanimsvg/inc
+argv[50]: -i
+argv[51]: Z:/startupservices/startupanimation/internal/test/inc
+argv[52]: -i
+argv[53]: Z:/inc
+argv[54]: -i
+argv[55]: Z:/startupservices/startupanimation/sanimengine/inc
+argv[56]: -i
+argv[57]: Z:/epoc32/include
+argv[58]: -i
+argv[59]: Z:/epoc32/include/platform
+argv[60]: -i
+argv[61]: Z:/epoc32/include/platform/loc
+argv[62]: -i
+argv[63]: Z:/epoc32/include/platform/loc/sc
+argv[64]: -i
+argv[65]: Z:/epoc32/include
+argv[66]: -include
+argv[67]: feature_settings.hrh
+argv[68]: -o
+argv[69]: Z:/epoc32/build/tsanimsvg/c_38dac13c6cc36cd1/tsanimsvg_dll/winscw/udeb/TSanimsvg.o
+argv[70]: Z:/startupservices/startupanimation/internal/test/TSanimsvg/src/TSanimsvg.cpp
+
+*** CTC++/ctcagent command: set PATH=C:\Apps\sbs\win32\mingw\bin;C:\Apps\sbs\win32\cygwin\bin;C:\Apps\sbs\win32\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\Wireless\Bin;c:\Program Files\Intel\WiFi\bin\;C:\Program Files\NTRU Cryptosystems\NTRU TCG Software Stack\bin\;C:\Program Files\Wave Systems Corp\Gemalto\Access Client\v5\;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\ctc;C:\APPS\prevent\bin;C:\APPS\cltools;C:\APPS\7zip;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\APPS\imaker;C:\Program Files\QuickTime\QTSystem\;C:\Program Files\Nokia\FastTrace;\epoc32\gcc_mingw\bin;C:\APPS\romtools;C:\APPS\bc;C:\APPS\codecollaborator;C:\APPS\actpython\.;C:\APPS\codescanner;C:\APPS\sbs\bin;C:\APPS\symdec;C:\APPS\symrec;C:\APPS\blocks\bin;C:\APPS\helium;C:\APPS\ant\bin;C:\APPS\jdk_1.6.0_11\bin; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_cw\winscw.ini @C:\DOCUME~1\praprave\LOCALS~1\Temp\ctc4\ctcopts.rsp mwccsym2 -c -align 4 -warnings on -w nohidevirtual,nounusedexpr -msgstyle gcc -enum int -str pool -exc ms -trigraphs on -cwd source -g -O0 -inline off -runtime staticmulti -wchar_t off -nostdinc -gccdepends -MD -d __SYMBIAN32__ -d __CW32__ -d __WINS__ -d __WINSCW__ -d __SUPPORT_CPP_EXCEPTIONS__ -d _UNICODE -d _DEBUG -d __DLL__ -i- -i Z:/startupservices/startupanimation/internal/test/TSanimsvg/inc -i Z:/startupservices/startupanimation/internal/test/inc -i Z:/inc -i Z:/startupservices/startupanimation/sanimengine/inc -i Z:/epoc32/include -i Z:/epoc32/include/platform -i Z:/epoc32/include/platform/loc -i Z:/epoc32/include/platform/loc/sc -i Z:/epoc32/include -include feature_settings.hrh -o Z:/epoc32/build/tsanimsvg/c_38dac13c6cc36cd1/tsanimsvg_dll/winscw/udeb/TSanimsvg.o Z:/startupservices/startupanimation/internal/test/TSanimsvg/src/TSanimsvg.cpp
+
+*******************************************************************************
+
+argv[0]: C:\DOCUME~1\praprave\LOCALS~1\Temp\ctc4\mwccsym2.exe
+argv[1]: -c
+argv[2]: -align
+argv[3]: 4
+argv[4]: -warnings
+argv[5]: on
+argv[6]: -w
+argv[7]: nohidevirtual,nounusedexpr
+argv[8]: -msgstyle
+argv[9]: gcc
+argv[10]: -enum
+argv[11]: int
+argv[12]: -str
+argv[13]: pool
+argv[14]: -exc
+argv[15]: ms
+argv[16]: -trigraphs
+argv[17]: on
+argv[18]: -cwd
+argv[19]: source
+argv[20]: -g
+argv[21]: -O0
+argv[22]: -inline
+argv[23]: off
+argv[24]: -runtime
+argv[25]: staticmulti
+argv[26]: -wchar_t
+argv[27]: off
+argv[28]: -nostdinc
+argv[29]: -gccdepends
+argv[30]: -MD
+argv[31]: -d
+argv[32]: __SYMBIAN32__
+argv[33]: -d
+argv[34]: __CW32__
+argv[35]: -d
+argv[36]: __WINS__
+argv[37]: -d
+argv[38]: __WINSCW__
+argv[39]: -d
+argv[40]: __SUPPORT_CPP_EXCEPTIONS__
+argv[41]: -d
+argv[42]: _UNICODE
+argv[43]: -d
+argv[44]: _DEBUG
+argv[45]: -d
+argv[46]: __DLL__
+argv[47]: -i-
+argv[48]: -i
+argv[49]: Z:/startupservices/startupanimation/internal/test/TSanimsvg/inc
+argv[50]: -i
+argv[51]: Z:/startupservices/startupanimation/internal/test/inc
+argv[52]: -i
+argv[53]: Z:/inc
+argv[54]: -i
+argv[55]: Z:/startupservices/startupanimation/sanimengine/inc
+argv[56]: -i
+argv[57]: Z:/epoc32/include
+argv[58]: -i
+argv[59]: Z:/epoc32/include/platform
+argv[60]: -i
+argv[61]: Z:/epoc32/include/platform/loc
+argv[62]: -i
+argv[63]: Z:/epoc32/include/platform/loc/sc
+argv[64]: -i
+argv[65]: Z:/epoc32/include
+argv[66]: -include
+argv[67]: feature_settings.hrh
+argv[68]: -o
+argv[69]: Z:/epoc32/build/tsanimsvg/c_38dac13c6cc36cd1/tsanimsvg_dll/winscw/udeb/testwaiter.o
+argv[70]: Z:/startupservices/startupanimation/internal/test/TSanimsvg/src/testwaiter.cpp
+
+*** CTC++/ctcagent command: set PATH=C:\Apps\sbs\win32\mingw\bin;C:\Apps\sbs\win32\cygwin\bin;C:\Apps\sbs\win32\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\Wireless\Bin;c:\Program Files\Intel\WiFi\bin\;C:\Program Files\NTRU Cryptosystems\NTRU TCG Software Stack\bin\;C:\Program Files\Wave Systems Corp\Gemalto\Access Client\v5\;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\ctc;C:\APPS\prevent\bin;C:\APPS\cltools;C:\APPS\7zip;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\APPS\imaker;C:\Program Files\QuickTime\QTSystem\;C:\Program Files\Nokia\FastTrace;\epoc32\gcc_mingw\bin;C:\APPS\romtools;C:\APPS\bc;C:\APPS\codecollaborator;C:\APPS\actpython\.;C:\APPS\codescanner;C:\APPS\sbs\bin;C:\APPS\symdec;C:\APPS\symrec;C:\APPS\blocks\bin;C:\APPS\helium;C:\APPS\ant\bin;C:\APPS\jdk_1.6.0_11\bin; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_cw\winscw.ini @C:\DOCUME~1\praprave\LOCALS~1\Temp\ctc4\ctcopts.rsp mwccsym2 -c -align 4 -warnings on -w nohidevirtual,nounusedexpr -msgstyle gcc -enum int -str pool -exc ms -trigraphs on -cwd source -g -O0 -inline off -runtime staticmulti -wchar_t off -nostdinc -gccdepends -MD -d __SYMBIAN32__ -d __CW32__ -d __WINS__ -d __WINSCW__ -d __SUPPORT_CPP_EXCEPTIONS__ -d _UNICODE -d _DEBUG -d __DLL__ -i- -i Z:/startupservices/startupanimation/internal/test/TSanimsvg/inc -i Z:/startupservices/startupanimation/internal/test/inc -i Z:/inc -i Z:/startupservices/startupanimation/sanimengine/inc -i Z:/epoc32/include -i Z:/epoc32/include/platform -i Z:/epoc32/include/platform/loc -i Z:/epoc32/include/platform/loc/sc -i Z:/epoc32/include -include feature_settings.hrh -o Z:/epoc32/build/tsanimsvg/c_38dac13c6cc36cd1/tsanimsvg_dll/winscw/udeb/testwaiter.o Z:/startupservices/startupanimation/internal/test/TSanimsvg/src/testwaiter.cpp
+
+*******************************************************************************
+
+argv[0]: C:\DOCUME~1\praprave\LOCALS~1\Temp\ctc4\mwldsym2.exe
+argv[1]: Z:/epoc32/build/tsanimsvg/c_38dac13c6cc36cd1/tsanimsvg_dll/winscw/udeb/TSanimsvg.prep.def
+argv[2]: -importlib
+argv[3]: -o
+argv[4]: Z:/epoc32/release/winscw/udeb/TSanimsvg.lib
+argv[5]: -addcommand
+argv[6]: out:TSanimsvg.dll
+argv[7]: -warnings
+argv[8]: off
+
+*** CTC++/ctcagent command: set PATH=C:\Apps\sbs\win32\mingw\bin;C:\Apps\sbs\win32\cygwin\bin;C:\Apps\sbs\win32\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\Wireless\Bin;c:\Program Files\Intel\WiFi\bin\;C:\Program Files\NTRU Cryptosystems\NTRU TCG Software Stack\bin\;C:\Program Files\Wave Systems Corp\Gemalto\Access Client\v5\;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\ctc;C:\APPS\prevent\bin;C:\APPS\cltools;C:\APPS\7zip;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\APPS\imaker;C:\Program Files\QuickTime\QTSystem\;C:\Program Files\Nokia\FastTrace;\epoc32\gcc_mingw\bin;C:\APPS\romtools;C:\APPS\bc;C:\APPS\codecollaborator;C:\APPS\actpython\.;C:\APPS\codescanner;C:\APPS\sbs\bin;C:\APPS\symdec;C:\APPS\symrec;C:\APPS\blocks\bin;C:\APPS\helium;C:\APPS\ant\bin;C:\APPS\jdk_1.6.0_11\bin; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_cw\winscw.ini @C:\DOCUME~1\praprave\LOCALS~1\Temp\ctc4\ctcopts.rsp mwldsym2 Z:/epoc32/build/tsanimsvg/c_38dac13c6cc36cd1/tsanimsvg_dll/winscw/udeb/TSanimsvg.prep.def -importlib -o Z:/epoc32/release/winscw/udeb/TSanimsvg.lib -addcommand out:TSanimsvg.dll -warnings off
+
+*******************************************************************************
+
+argv[0]: C:\DOCUME~1\praprave\LOCALS~1\Temp\ctc4\mwccsym2.exe
+argv[1]: -c
+argv[2]: -align
+argv[3]: 4
+argv[4]: -warnings
+argv[5]: on
+argv[6]: -w
+argv[7]: nohidevirtual,nounusedexpr
+argv[8]: -msgstyle
+argv[9]: gcc
+argv[10]: -enum
+argv[11]: int
+argv[12]: -str
+argv[13]: pool
+argv[14]: -exc
+argv[15]: ms
+argv[16]: -trigraphs
+argv[17]: on
+argv[18]: -cwd
+argv[19]: source
+argv[20]: -g
+argv[21]: -O0
+argv[22]: -inline
+argv[23]: off
+argv[24]: -runtime
+argv[25]: staticmulti
+argv[26]: -wchar_t
+argv[27]: off
+argv[28]: -nostdinc
+argv[29]: -gccdepends
+argv[30]: -MD
+argv[31]: -d
+argv[32]: __SYMBIAN32__
+argv[33]: -d
+argv[34]: __CW32__
+argv[35]: -d
+argv[36]: __WINS__
+argv[37]: -d
+argv[38]: __WINSCW__
+argv[39]: -d
+argv[40]: __SUPPORT_CPP_EXCEPTIONS__
+argv[41]: -d
+argv[42]: _UNICODE
+argv[43]: -d
+argv[44]: _DEBUG
+argv[45]: -d
+argv[46]: __DLL__
+argv[47]: -i-
+argv[48]: -i
+argv[49]: Z:/startupservices/startupanimation/internal/test/TSanimsvg/inc
+argv[50]: -i
+argv[51]: Z:/startupservices/startupanimation/internal/test/inc
+argv[52]: -i
+argv[53]: Z:/inc
+argv[54]: -i
+argv[55]: Z:/startupservices/startupanimation/sanimengine/inc
+argv[56]: -i
+argv[57]: Z:/epoc32/include
+argv[58]: -i
+argv[59]: Z:/epoc32/include/platform
+argv[60]: -i
+argv[61]: Z:/epoc32/include/platform/loc
+argv[62]: -i
+argv[63]: Z:/epoc32/include/platform/loc/sc
+argv[64]: -i
+argv[65]: Z:/epoc32/include
+argv[66]: -include
+argv[67]: feature_settings.hrh
+argv[68]: -o
+argv[69]: Z:/epoc32/build/tsanimsvg/c_38dac13c6cc36cd1/tsanimsvg_dll/winscw/udeb/TSanimsvgBlocks.o
+argv[70]: Z:/startupservices/startupanimation/internal/test/TSanimsvg/src/TSanimsvgBlocks.cpp
+
+*** CTC++/ctcagent command: set PATH=C:\Apps\sbs\win32\mingw\bin;C:\Apps\sbs\win32\cygwin\bin;C:\Apps\sbs\win32\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\Wireless\Bin;c:\Program Files\Intel\WiFi\bin\;C:\Program Files\NTRU Cryptosystems\NTRU TCG Software Stack\bin\;C:\Program Files\Wave Systems Corp\Gemalto\Access Client\v5\;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\ctc;C:\APPS\prevent\bin;C:\APPS\cltools;C:\APPS\7zip;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\APPS\imaker;C:\Program Files\QuickTime\QTSystem\;C:\Program Files\Nokia\FastTrace;\epoc32\gcc_mingw\bin;C:\APPS\romtools;C:\APPS\bc;C:\APPS\codecollaborator;C:\APPS\actpython\.;C:\APPS\codescanner;C:\APPS\sbs\bin;C:\APPS\symdec;C:\APPS\symrec;C:\APPS\blocks\bin;C:\APPS\helium;C:\APPS\ant\bin;C:\APPS\jdk_1.6.0_11\bin; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_cw\winscw.ini @C:\DOCUME~1\praprave\LOCALS~1\Temp\ctc4\ctcopts.rsp mwccsym2 -c -align 4 -warnings on -w nohidevirtual,nounusedexpr -msgstyle gcc -enum int -str pool -exc ms -trigraphs on -cwd source -g -O0 -inline off -runtime staticmulti -wchar_t off -nostdinc -gccdepends -MD -d __SYMBIAN32__ -d __CW32__ -d __WINS__ -d __WINSCW__ -d __SUPPORT_CPP_EXCEPTIONS__ -d _UNICODE -d _DEBUG -d __DLL__ -i- -i Z:/startupservices/startupanimation/internal/test/TSanimsvg/inc -i Z:/startupservices/startupanimation/internal/test/inc -i Z:/inc -i Z:/startupservices/startupanimation/sanimengine/inc -i Z:/epoc32/include -i Z:/epoc32/include/platform -i Z:/epoc32/include/platform/loc -i Z:/epoc32/include/platform/loc/sc -i Z:/epoc32/include -include feature_settings.hrh -o Z:/epoc32/build/tsanimsvg/c_38dac13c6cc36cd1/tsanimsvg_dll/winscw/udeb/TSanimsvgBlocks.o Z:/startupservices/startupanimation/internal/test/TSanimsvg/src/TSanimsvgBlocks.cpp
+*** CTC++/ctcagent command status: 0
+
+
+*******************************************************************************
+
+argv[0]: C:\DOCUME~1\praprave\LOCALS~1\Temp\ctc4\mwccsym2.exe
+argv[1]: -c
+argv[2]: -align
+argv[3]: 4
+argv[4]: -warnings
+argv[5]: on
+argv[6]: -w
+argv[7]: nohidevirtual,nounusedexpr
+argv[8]: -msgstyle
+argv[9]: gcc
+argv[10]: -enum
+argv[11]: int
+argv[12]: -str
+argv[13]: pool
+argv[14]: -exc
+argv[15]: ms
+argv[16]: -trigraphs
+argv[17]: on
+argv[18]: -cwd
+argv[19]: source
+argv[20]: -g
+argv[21]: -O0
+argv[22]: -inline
+argv[23]: off
+argv[24]: -runtime
+argv[25]: staticmulti
+argv[26]: -wchar_t
+argv[27]: off
+argv[28]: -nostdinc
+argv[29]: -gccdepends
+argv[30]: -MD
+argv[31]: -d
+argv[32]: __SYMBIAN32__
+argv[33]: -d
+argv[34]: __CW32__
+argv[35]: -d
+argv[36]: __WINS__
+argv[37]: -d
+argv[38]: __WINSCW__
+argv[39]: -d
+argv[40]: __SUPPORT_CPP_EXCEPTIONS__
+argv[41]: -d
+argv[42]: _UNICODE
+argv[43]: -d
+argv[44]: _DEBUG
+argv[45]: -d
+argv[46]: __DLL__
+argv[47]: -i-
+argv[48]: -i
+argv[49]: Z:/startupservices/startupanimation/internal/test/TSanimsvg/inc
+argv[50]: -i
+argv[51]: Z:/startupservices/startupanimation/internal/test/inc
+argv[52]: -i
+argv[53]: Z:/inc
+argv[54]: -i
+argv[55]: Z:/startupservices/startupanimation/sanimengine/inc
+argv[56]: -i
+argv[57]: Z:/epoc32/include
+argv[58]: -i
+argv[59]: Z:/epoc32/include/platform
+argv[60]: -i
+argv[61]: Z:/epoc32/include/platform/loc
+argv[62]: -i
+argv[63]: Z:/epoc32/include/platform/loc/sc
+argv[64]: -i
+argv[65]: Z:/epoc32/include
+argv[66]: -include
+argv[67]: feature_settings.hrh
+argv[68]: -o
+argv[69]: Z:/epoc32/build/tsanimsvg/c_38dac13c6cc36cd1/tsanimsvg_dll/winscw/udeb/TSanimsvg_UID_.o
+argv[70]: Z:/epoc32/build/tsanimsvg/c_38dac13c6cc36cd1/tsanimsvg_dll/winscw/udeb/TSanimsvg.UID.CPP
+
+*** CTC++/ctcagent command: set PATH=C:\Apps\sbs\win32\mingw\bin;C:\Apps\sbs\win32\cygwin\bin;C:\Apps\sbs\win32\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\Wireless\Bin;c:\Program Files\Intel\WiFi\bin\;C:\Program Files\NTRU Cryptosystems\NTRU TCG Software Stack\bin\;C:\Program Files\Wave Systems Corp\Gemalto\Access Client\v5\;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\ctc;C:\APPS\prevent\bin;C:\APPS\cltools;C:\APPS\7zip;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\APPS\imaker;C:\Program Files\QuickTime\QTSystem\;C:\Program Files\Nokia\FastTrace;\epoc32\gcc_mingw\bin;C:\APPS\romtools;C:\APPS\bc;C:\APPS\codecollaborator;C:\APPS\actpython\.;C:\APPS\codescanner;C:\APPS\sbs\bin;C:\APPS\symdec;C:\APPS\symrec;C:\APPS\blocks\bin;C:\APPS\helium;C:\APPS\ant\bin;C:\APPS\jdk_1.6.0_11\bin; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_cw\winscw.ini @C:\DOCUME~1\praprave\LOCALS~1\Temp\ctc4\ctcopts.rsp mwccsym2 -c -align 4 -warnings on -w nohidevirtual,nounusedexpr -msgstyle gcc -enum int -str pool -exc ms -trigraphs on -cwd source -g -O0 -inline off -runtime staticmulti -wchar_t off -nostdinc -gccdepends -MD -d __SYMBIAN32__ -d __CW32__ -d __WINS__ -d __WINSCW__ -d __SUPPORT_CPP_EXCEPTIONS__ -d _UNICODE -d _DEBUG -d __DLL__ -i- -i Z:/startupservices/startupanimation/internal/test/TSanimsvg/inc -i Z:/startupservices/startupanimation/internal/test/inc -i Z:/inc -i Z:/startupservices/startupanimation/sanimengine/inc -i Z:/epoc32/include -i Z:/epoc32/include/platform -i Z:/epoc32/include/platform/loc -i Z:/epoc32/include/platform/loc/sc -i Z:/epoc32/include -include feature_settings.hrh -o Z:/epoc32/build/tsanimsvg/c_38dac13c6cc36cd1/tsanimsvg_dll/winscw/udeb/TSanimsvg_UID_.o Z:/epoc32/build/tsanimsvg/c_38dac13c6cc36cd1/tsanimsvg_dll/winscw/udeb/TSanimsvg.UID.CPP
+*** CTC++/ctcagent command status: 0
+
+*** CTC++/ctcagent command status: 0
+
+*** CTC++/ctcagent command status: 0
+
+*** CTC++/ctcagent command status: 0
+
+
+*******************************************************************************
+
+argv[0]: C:\DOCUME~1\praprave\LOCALS~1\Temp\ctc4\mwldsym2.exe
+argv[1]: -msgstyle
+argv[2]: gcc
+argv[3]: -stdlib
+argv[4]: -subsystem
+argv[5]: windows
+argv[6]: -g
+argv[7]: -main
+argv[8]: __Win32DllMain@12
+argv[9]: -shared
+argv[10]: -m
+argv[11]: __E32Dll
+argv[12]: -export
+argv[13]: dllexport
+argv[14]: -nocompactimportlib
+argv[15]: -addcommand
+argv[16]: out:TSanimsvg.dll
+argv[17]: -warnings
+argv[18]: off
+argv[19]: -implib
+argv[20]: Z:/epoc32/build/tsanimsvg/c_38dac13c6cc36cd1/tsanimsvg_dll/winscw/udeb/TSanimsvg.lib
+argv[21]: -o
+argv[22]: Z:/epoc32/build/tsanimsvg/c_38dac13c6cc36cd1/tsanimsvg_dll/winscw/udeb/TSanimsvg.dll
+argv[23]: Z:/epoc32/release/winscw/udeb/edll.lib
+argv[24]: Z:/epoc32/release/winscw/udeb/scppnwdl.lib
+argv[25]: Z:/epoc32/release/winscw/udeb/euser.lib
+argv[26]: Z:/epoc32/release/winscw/udeb/stiftestinterface.lib
+argv[27]: Z:/epoc32/release/winscw/udeb/stiftestengine.lib
+argv[28]: Z:/epoc32/release/winscw/udeb/ecom.lib
+argv[29]: Z:/epoc32/release/winscw/udeb/efsrv.lib
+argv[30]: Z:/epoc32/release/winscw/udeb/sanimengine.lib
+argv[31]: -l
+argv[32]: Z:/epoc32/build/tsanimsvg/c_38dac13c6cc36cd1/tsanimsvg_dll/winscw/udeb
+argv[33]: -search
+argv[34]: @Z:/epoc32/build/tsanimsvg/c_38dac13c6cc36cd1/tsanimsvg_dll/winscw/udeb/TSanimsvg_udeb_objects.lrf
+
+*** CTC++/ctcagent command: set PATH=C:\Apps\sbs\win32\mingw\bin;C:\Apps\sbs\win32\cygwin\bin;C:\Apps\sbs\win32\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\Wireless\Bin;c:\Program Files\Intel\WiFi\bin\;C:\Program Files\NTRU Cryptosystems\NTRU TCG Software Stack\bin\;C:\Program Files\Wave Systems Corp\Gemalto\Access Client\v5\;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\ctc;C:\APPS\prevent\bin;C:\APPS\cltools;C:\APPS\7zip;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\APPS\imaker;C:\Program Files\QuickTime\QTSystem\;C:\Program Files\Nokia\FastTrace;\epoc32\gcc_mingw\bin;C:\APPS\romtools;C:\APPS\bc;C:\APPS\codecollaborator;C:\APPS\actpython\.;C:\APPS\codescanner;C:\APPS\sbs\bin;C:\APPS\symdec;C:\APPS\symrec;C:\APPS\blocks\bin;C:\APPS\helium;C:\APPS\ant\bin;C:\APPS\jdk_1.6.0_11\bin; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_cw\winscw.ini @C:\DOCUME~1\praprave\LOCALS~1\Temp\ctc4\ctcopts.rsp mwldsym2 -msgstyle gcc -stdlib -subsystem windows -g -main __Win32DllMain@12 -shared -m __E32Dll -export dllexport -nocompactimportlib -addcommand out:TSanimsvg.dll -warnings off -implib Z:/epoc32/build/tsanimsvg/c_38dac13c6cc36cd1/tsanimsvg_dll/winscw/udeb/TSanimsvg.lib -o Z:/epoc32/build/tsanimsvg/c_38dac13c6cc36cd1/tsanimsvg_dll/winscw/udeb/TSanimsvg.dll Z:/epoc32/release/winscw/udeb/edll.lib Z:/epoc32/release/winscw/udeb/scppnwdl.lib Z:/epoc32/release/winscw/udeb/euser.lib Z:/epoc32/release/winscw/udeb/stiftestinterface.lib Z:/epoc32/release/winscw/udeb/stiftestengine.lib Z:/epoc32/release/winscw/udeb/ecom.lib Z:/epoc32/release/winscw/udeb/efsrv.lib Z:/epoc32/release/winscw/udeb/sanimengine.lib -l Z:/epoc32/build/tsanimsvg/c_38dac13c6cc36cd1/tsanimsvg_dll/winscw/udeb -search @Z:/epoc32/build/tsanimsvg/c_38dac13c6cc36cd1/tsanimsvg_dll/winscw/udeb/TSanimsvg_udeb_objects.lrf
+*** CTC++/ctcagent command status: 0
+
+
+*******************************************************************************
+
+argv[0]: C:\DOCUME~1\praprave\LOCALS~1\Temp\ctc4\mwldsym2.exe
+argv[1]: -S
+argv[2]: -show
+argv[3]: only,names,unmangled,verbose
+argv[4]: -o
+argv[5]: Z:/epoc32/build/tsanimsvg/c_38dac13c6cc36cd1/tsanimsvg_dll/winscw/udeb/TSanimsvg.inf
+argv[6]: Z:/epoc32/build/tsanimsvg/c_38dac13c6cc36cd1/tsanimsvg_dll/winscw/udeb/TSanimsvg.lib
+
+*** CTC++/ctcagent command: set PATH=C:\Apps\sbs\win32\mingw\bin;C:\Apps\sbs\win32\cygwin\bin;C:\Apps\sbs\win32\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\Wireless\Bin;c:\Program Files\Intel\WiFi\bin\;C:\Program Files\NTRU Cryptosystems\NTRU TCG Software Stack\bin\;C:\Program Files\Wave Systems Corp\Gemalto\Access Client\v5\;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\ctc;C:\APPS\prevent\bin;C:\APPS\cltools;C:\APPS\7zip;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\APPS\imaker;C:\Program Files\QuickTime\QTSystem\;C:\Program Files\Nokia\FastTrace;\epoc32\gcc_mingw\bin;C:\APPS\romtools;C:\APPS\bc;C:\APPS\codecollaborator;C:\APPS\actpython\.;C:\APPS\codescanner;C:\APPS\sbs\bin;C:\APPS\symdec;C:\APPS\symrec;C:\APPS\blocks\bin;C:\APPS\helium;C:\APPS\ant\bin;C:\APPS\jdk_1.6.0_11\bin; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_cw\winscw.ini @C:\DOCUME~1\praprave\LOCALS~1\Temp\ctc4\ctcopts.rsp mwldsym2 -S -show only,names,unmangled,verbose -o Z:/epoc32/build/tsanimsvg/c_38dac13c6cc36cd1/tsanimsvg_dll/winscw/udeb/TSanimsvg.inf Z:/epoc32/build/tsanimsvg/c_38dac13c6cc36cd1/tsanimsvg_dll/winscw/udeb/TSanimsvg.lib
+*** CTC++/ctcagent command status: 0
+
+
+*******************************************************************************
+
+argv[0]: C:\DOCUME~1\praprave\LOCALS~1\Temp\ctc4\mwldsym2.exe
+argv[1]: -msgstyle
+argv[2]: gcc
+argv[3]: -stdlib
+argv[4]: -subsystem
+argv[5]: windows
+argv[6]: -g
+argv[7]: -main
+argv[8]: __Win32DllMain@12
+argv[9]: -shared
+argv[10]: -f
+argv[11]: Z:/epoc32/build/tsanimsvg/c_38dac13c6cc36cd1/tsanimsvg_dll/winscw/udeb/TSanimsvg.def
+argv[12]: Z:/epoc32/release/winscw/udeb/edll.lib
+argv[13]: Z:/epoc32/release/winscw/udeb/scppnwdl.lib
+argv[14]: Z:/epoc32/release/winscw/udeb/euser.lib
+argv[15]: Z:/epoc32/release/winscw/udeb/stiftestinterface.lib
+argv[16]: Z:/epoc32/release/winscw/udeb/stiftestengine.lib
+argv[17]: Z:/epoc32/release/winscw/udeb/ecom.lib
+argv[18]: Z:/epoc32/release/winscw/udeb/efsrv.lib
+argv[19]: Z:/epoc32/release/winscw/udeb/sanimengine.lib
+argv[20]: -o
+argv[21]: Z:/epoc32/release/winscw/udeb/TSanimsvg.dll
+argv[22]: -noimplib
+argv[23]: -l
+argv[24]: Z:/epoc32/build/tsanimsvg/c_38dac13c6cc36cd1/tsanimsvg_dll/winscw/udeb
+argv[25]: -search
+argv[26]: @Z:/epoc32/build/tsanimsvg/c_38dac13c6cc36cd1/tsanimsvg_dll/winscw/udeb/TSanimsvg_udeb_objects.lrf
+
+*** CTC++/ctcagent command: set PATH=C:\Apps\sbs\win32\mingw\bin;C:\Apps\sbs\win32\cygwin\bin;C:\Apps\sbs\win32\bin;c:\apps\actperl\bin\;c:\apps\rvct22_686\bin;c:\apps\atool;\epoc32\tools;\epoc32\gcc\bin;c:\apps\ue;c:\apps\ccm65\bin;c:\apps\carbide\x86Build\Symbian_Tools\Command_Line_Tools;C:\Program Files\PC Connectivity Solution\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Intel\Wireless\Bin;c:\Program Files\Intel\WiFi\bin\;C:\Program Files\NTRU Cryptosystems\NTRU TCG Software Stack\bin\;C:\Program Files\Wave Systems Corp\Gemalto\Access Client\v5\;C:\APPS\pclint;C:\APPS\cmt\;C:\APPS\ctc;C:\APPS\prevent\bin;C:\APPS\cltools;C:\APPS\7zip;C:\APPS\understand\bin\pc-win95;C:\APPS\unzip;C:\APPS\imaker;C:\Program Files\QuickTime\QTSystem\;C:\Program Files\Nokia\FastTrace;\epoc32\gcc_mingw\bin;C:\APPS\romtools;C:\APPS\bc;C:\APPS\codecollaborator;C:\APPS\actpython\.;C:\APPS\codescanner;C:\APPS\sbs\bin;C:\APPS\symdec;C:\APPS\symrec;C:\APPS\blocks\bin;C:\APPS\helium;C:\APPS\ant\bin;C:\APPS\jdk_1.6.0_11\bin; && C:\APPS\ctc\ctc -c C:\APPS\ctc\sym_cw\winscw.ini @C:\DOCUME~1\praprave\LOCALS~1\Temp\ctc4\ctcopts.rsp mwldsym2 -msgstyle gcc -stdlib -subsystem windows -g -main __Win32DllMain@12 -shared -f Z:/epoc32/build/tsanimsvg/c_38dac13c6cc36cd1/tsanimsvg_dll/winscw/udeb/TSanimsvg.def Z:/epoc32/release/winscw/udeb/edll.lib Z:/epoc32/release/winscw/udeb/scppnwdl.lib Z:/epoc32/release/winscw/udeb/euser.lib Z:/epoc32/release/winscw/udeb/stiftestinterface.lib Z:/epoc32/release/winscw/udeb/stiftestengine.lib Z:/epoc32/release/winscw/udeb/ecom.lib Z:/epoc32/release/winscw/udeb/efsrv.lib Z:/epoc32/release/winscw/udeb/sanimengine.lib -o Z:/epoc32/release/winscw/udeb/TSanimsvg.dll -noimplib -l Z:/epoc32/build/tsanimsvg/c_38dac13c6cc36cd1/tsanimsvg_dll/winscw/udeb -search @Z:/epoc32/build/tsanimsvg/c_38dac13c6cc36cd1/tsanimsvg_dll/winscw/udeb/TSanimsvg_udeb_objects.lrf
+*** CTC++/ctcagent command status: 0
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/tsanimsvg/group/profile.txt	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,115 @@
+*****************************************************************************
+*           CTC++, Test Coverage Analyzer for C/C++, Version 6.5.5          *
+*                                                                           *
+*                         EXECUTION PROFILE LISTING                         *
+*                                                                           *
+*                    Copyright (c) 1993-2009 Testwell Oy                    *
+*****************************************************************************
+
+
+Symbol file(s) used   : MON.sym (Mon Aug 23 12:07:03 2010)
+Data file(s) used     : N.A.
+Listing produced at   : Mon Aug 23 12:50:08 2010
+Coverage view         : As instrumented
+
+
+
+MONITORED SOURCE FILE : Z:/startupservices/startupanimation/internal/test/TSanimsvg/src/TSanimsvg.cpp
+INSTRUMENTATION MODE  : function
+
+    START/       END/
+      TRUE      FALSE    LINE DESCRIPTION
+=============================================================================
+
+         0          0 -    80 FUNCTION CTSanimsvg::CTSanimsvg()
+         0          0 -    91 FUNCTION CTSanimsvg::ConstructL()
+         0          0 -   139 FUNCTION CTSanimsvg::NewL()
+         0          0 -   153 FUNCTION CTSanimsvg::~CTSanimsvg()
+         0          0 -   169 FUNCTION CTSanimsvg::SendTestClassVersion()
+         0          0 -   190 FUNCTION LibEntryL()
+
+***TER   0 % (  0/  6) of SOURCE FILE Z:/startupservices/startupanimation/internal/test/TSanimsvg/src/TSanimsvg.cpp
+-----------------------------------------------------------------------------
+
+
+
+MONITORED SOURCE FILE : Z:/startupservices/startupanimation/internal/test/TSanimsvg/src/TSanimsvgBlocks.cpp
+INSTRUMENTATION MODE  : function
+
+    START/       END/
+      TRUE      FALSE    LINE DESCRIPTION
+=============================================================================
+
+         0          0 -    81 FUNCTION CTSanimsvg::Delete()
+         0          0 -    91 FUNCTION CTSanimsvg::RunMethodL()
+         0          0 -   154 FUNCTION TMockSvgAnimationObserver::UpdateScreen()
+         0          0 -   167 FUNCTION TMockSvgAnimationObserver::UpdateScreen()
+         0          0 -   179 FUNCTION CTSanimsvg::SetupEmptyL()
+         0          0 -   196 FUNCTION CTSanimsvg::SetupObjL()
+         0          0 -   212 FUNCTION CTSanimsvg::SetupFileL()
+         0          0 -   227 FUNCTION CTSanimsvg::SetupStillImageL()
+         0          0 -   239 FUNCTION CTSanimsvg::SetupScaledAnimationL()
+         0          0 -   251 FUNCTION CTSanimsvg::SetupUnscaledAnimationL()
+         0          0 -   263 FUNCTION CTSanimsvg::SetupAnimationWithTextL()
+         0          0 -   275 FUNCTION CTSanimsvg::SetupStillImageBinaryL()
+         0          0 -   287 FUNCTION CTSanimsvg::SetupScaledAnimationBinaryL()
+         0          0 -   299 FUNCTION CTSanimsvg::SetupFinishedL()
+         0          0 -   314 FUNCTION CTSanimsvg::Teardown()
+         0          0 -   336 FUNCTION CTSanimsvg::TestConstructorL()
+         0          0 -   354 FUNCTION CTSanimsvg::TestConstructorNoMemoryL()
+         0          0 -   369 FUNCTION CTSanimsvg::TestUnknownFileL()
+         0          0 -   384 FUNCTION CTSanimsvg::TestCorruptFileL()
+         0          0 -   399 FUNCTION CTSanimsvg::TestLoadStillImageL()
+         0          0 -   414 FUNCTION CTSanimsvg::TestLoadScaledAnimationL()
+         0          0 -   429 FUNCTION CTSanimsvg::TestLoadUnscaledAnimationL()
+         0          0 -   444 FUNCTION CTSanimsvg::TestLoadAnimationWithTextL()
+         0          0 -   459 FUNCTION CTSanimsvg::TestLoadStillImageBinaryL()
+         0          0 -   474 FUNCTION CTSanimsvg::TestLoadScaledAnimationBinaryL()
+         0          0 -   489 FUNCTION CTSanimsvg::TestLoadNoMemoryL()
+         0          0 -   504 FUNCTION CTSanimsvg::TestCancelLoadL()
+         0          0 -   520 FUNCTION CTSanimsvg::TestShowStillImageL()
+         0          0 -   536 FUNCTION CTSanimsvg::TestShowAnimationL()
+         0          0 -   551 FUNCTION CTSanimsvg::TestShowNoMemoryL()
+         0          0 -   566 FUNCTION CTSanimsvg::TestCancelStillImageL()
+         0          0 -   582 FUNCTION CTSanimsvg::TestCancelAnimationL()
+         0          0 -   598 FUNCTION CTSanimsvg::TestCancelNotActiveL()
+         0          0 -   610 FUNCTION CTSanimsvg::TestShowBeforeLoadL()
+         0          0 -   622 FUNCTION CTSanimsvg::TestSetDisplayModeL()
+         0          0 -   646 FUNCTION CTSanimsvg::TestSetSizeL()
+         0          0 -   670 FUNCTION CTSanimsvg::TestSetFrameDelayL()
+         0          0 -   695 FUNCTION CTSanimsvg::TestBackroundColourL()
+         0          0 -   709 FUNCTION CTSanimsvg::ExampleL()
+
+***TER   0 % (  0/ 39) of SOURCE FILE Z:/startupservices/startupanimation/internal/test/TSanimsvg/src/TSanimsvgBlocks.cpp
+-----------------------------------------------------------------------------
+
+
+
+MONITORED SOURCE FILE : Z:/startupservices/startupanimation/internal/test/TSanimsvg/src/testwaiter.cpp
+INSTRUMENTATION MODE  : function
+
+    START/       END/
+      TRUE      FALSE    LINE DESCRIPTION
+=============================================================================
+
+         0          0 -    30 FUNCTION CTestWaiter::NewL()
+         0          0 -    42 FUNCTION CTestWaiter::~CTestWaiter()
+         0          0 -    52 FUNCTION CTestWaiter::Activate()
+         0          0 -    65 FUNCTION CTestWaiter::CTestWaiter()
+         0          0 -    77 FUNCTION CTestWaiter::DoCancel()
+         0          0 -    87 FUNCTION CTestWaiter::RunL()
+
+***TER   0 % (  0/  6) of SOURCE FILE Z:/startupservices/startupanimation/internal/test/TSanimsvg/src/testwaiter.cpp
+-----------------------------------------------------------------------------
+
+
+
+
+
+SUMMARY
+=======
+
+Number of monitored source files  : 3
+Number of source lines            : 1020
+Number of measurement points      : 102
+TER                               : 0% (function)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/tsanimsvg/group/tsanimsvg.mmp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,89 @@
+/*TYPE TESTCLASS*/
+/*
+* 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: MMP file for STIF Test Framework's TestScripter 
+* testclass test module.
+*
+*/
+
+#include <platform_paths.hrh>
+
+SMPSAFE
+
+TARGET          tsanimsvg.dll
+TARGETTYPE      dll
+UID             0x1000008D 0x101FB3E3
+
+CAPABILITY      ALL -TCB
+/* Remove comments and replace 0x00000000 with correct vendor id */
+// VENDORID     0x00000000
+/* Remove comments and replace 0x00000000 with correct secure id */
+// SECUREID     0x00000000
+
+//TARGETPATH      ?target_path
+DEFFILE         tsanimsvg.def
+
+
+USERINCLUDE     ../inc
+USERINCLUDE     ../../inc
+USERINCLUDE     ../../../../../../inc
+USERINCLUDE     ../../../../sanimengine/inc
+
+
+OS_LAYER_SYSTEMINCLUDE
+
+SOURCEPATH      ../src
+
+SOURCE          TSanimsvg.cpp
+SOURCE          TSanimsvgBlocks.cpp
+SOURCE          testwaiter.cpp
+
+//RESOURCE        resource_file
+//RESOURCE        resource_file2
+
+LIBRARY         euser.lib
+LIBRARY         stiftestinterface.lib
+LIBRARY         stiftestengine.lib
+LIBRARY         ecom.lib
+LIBRARY         efsrv.lib
+LIBRARY         sanimengine.lib
+
+
+
+EPOCALLOWDLLDATA
+LANG            SC
+
+/*
+START WINS      
+?wins_specific_information
+END
+
+START MARM
+?marm_specific_information
+END
+*/
+// Other possible keywords:
+ 
+// DOCUMENT     ?file, that is not compiled, but added to MSVC project workspace (i.e. release notes)
+/*
+START BITMAP ?target
+TARGETPATH   ?emulated_path_on_target_machine
+HEADER
+SOURCE       ?color_depth ?source_bitmap
+END
+*/
+// DEFFILE ?filename
+// AIF ?filename
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/tsanimsvg/inc/TSanimsvg.h	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,240 @@
+/*
+* 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: STIF testclass declaration
+*
+*/
+
+#ifndef TSANIMSVG_H
+#define TSANIMSVG_H
+
+//  INCLUDES
+#include <StifLogger.h>
+#include <TestScripterInternal.h>
+#include <StifTestModule.h>
+#include <TestclassAssert.h>
+
+
+#include <e32def.h>
+#include <f32file.h>
+#include "sanimobserver.h"
+
+class CSAnimImagePlugin;
+class CTestWaiter;
+// FORWARD DECLARATIONS
+//class ?FORWARD_CLASSNAME;
+class CTSanimsvg;
+
+
+
+NONSHARABLE_CLASS( TMockSvgAnimationObserver ) : public MSAnimObserver
+    {
+public:
+    TMockSvgAnimationObserver( CTSanimsvg& aTestSuite ) : iTestSuite( aTestSuite ) {}
+    virtual void UpdateScreen( const CFbsBitmap& /*aFrame*/, const CFbsBitmap& /*aMask*/ );
+    virtual void UpdateScreen( const CFbsBitmap& /*aFrame*/ );
+private:
+    CTSanimsvg& iTestSuite;
+    };
+
+
+
+// CONSTANTS
+//const ?type ?constant_var = ?constant;
+
+// MACROS
+//#define ?macro ?macro_def
+#define TEST_CLASS_VERSION_MAJOR 0
+#define TEST_CLASS_VERSION_MINOR 0
+#define TEST_CLASS_VERSION_BUILD 0
+
+// Logging path
+_LIT( KTSanimsvgLogPath, "\\logs\\testframework\\TSanimsvg\\" ); 
+// Log file
+_LIT( KTSanimsvgLogFile, "TSanimsvg.txt" ); 
+_LIT( KTSanimsvgLogFileWithTitle, "TSanimsvg_[%S].txt" );
+
+// FUNCTION PROTOTYPES
+//?type ?function_name(?arg_list);
+
+
+// DATA TYPES
+//enum ?declaration
+//typedef ?declaration
+//extern ?data_type;
+
+// CLASS DECLARATION
+
+/**
+*  CTSanimsvg test class for STIF Test Framework TestScripter.
+*  ?other_description_lines
+*
+*  @lib ?library
+*  @since ?Series60_version
+*/
+NONSHARABLE_CLASS(CTSanimsvg) : public CScriptBase
+    {
+    public:  // Constructors and destructor
+
+        /**
+        * Two-phased constructor.
+        */
+        static CTSanimsvg* NewL( CTestModuleIf& aTestModuleIf );
+
+        /**
+        * Destructor.
+        */
+        virtual ~CTSanimsvg();
+
+    public: // New functions
+
+        /**
+        * ?member_description.
+        * @since ?Series60_version
+        * @param ?arg1 ?description
+        * @return ?description
+        */
+        //?type ?member_function( ?type ?arg1 );
+
+    public: // Functions from base classes
+
+        /**
+        * From CScriptBase Runs a script line.
+        * @since ?Series60_version
+        * @param aItem Script line containing method name and parameters
+        * @return Symbian OS error code
+        */
+        virtual TInt RunMethodL( CStifItemParser& aItem );
+
+    protected:  // New functions
+
+        /**
+        * ?member_description.
+        * @since ?Series60_version
+        * @param ?arg1 ?description
+        * @return ?description
+        */
+        //?type ?member_function( ?type ?arg1 );
+
+    protected:  // Functions from base classes
+
+        /**
+        * From ?base_class ?member_description
+        */
+        //?type ?member_function();
+
+    private:
+
+        /**
+        * C++ default constructor.
+        */
+        CTSanimsvg( CTestModuleIf& aTestModuleIf );
+
+        /**
+        * By default Symbian 2nd phase constructor is private.
+        */
+        void ConstructL();
+
+        // Prohibit copy constructor if not deriving from CBase.
+        // ?classname( const ?classname& );
+        // Prohibit assigment operator if not deriving from CBase.
+        // ?classname& operator=( const ?classname& );
+
+        /**
+        * Frees all resources allocated from test methods.
+        * @since ?Series60_version
+        */
+        void Delete();
+
+        /**
+        * Test methods are listed below. 
+        */
+
+        /**
+        * Example test method.
+        * @since ?Series60_version
+        * @param aItem Script line containing parameters.
+        * @return Symbian OS error code.
+        */
+        virtual TInt ExampleL( CStifItemParser& aItem );
+        
+        /**
+         * Method used to log version of test class
+         */
+        void SendTestClassVersion();
+        
+        
+        TInt SetupEmptyL();
+        TInt SetupObjL();
+           void SetupFileL( const TDesC& aFileName );
+           TInt SetupStillImageL();
+           TInt SetupScaledAnimationL();
+           TInt SetupUnscaledAnimationL();
+           TInt SetupAnimationWithTextL();
+           TInt SetupStillImageBinaryL();
+           TInt SetupScaledAnimationBinaryL();
+           TInt SetupFinishedL();
+           TInt Teardown();
+
+           TInt TestConstructorL();
+           TInt TestConstructorNoMemoryL();
+           TInt TestUnknownFileL();
+           TInt TestCorruptFileL();
+           TInt TestLoadStillImageL();
+           TInt TestLoadScaledAnimationL();
+           TInt TestLoadUnscaledAnimationL();
+           TInt TestLoadAnimationWithTextL();
+           TInt TestLoadStillImageBinaryL();
+           TInt TestLoadScaledAnimationBinaryL();
+           TInt TestLoadNoMemoryL();
+           TInt TestCancelLoadL();
+           TInt TestShowStillImageL();
+           TInt TestShowAnimationL();
+           TInt TestShowNoMemoryL();
+           TInt TestCancelStillImageL();
+           TInt TestCancelAnimationL();
+           TInt TestCancelNotActiveL();
+           TInt TestShowBeforeLoadL();
+           TInt TestSetDisplayModeL();
+           TInt TestSetSizeL();
+           TInt TestSetFrameDelayL();
+           TInt TestBackroundColourL();
+
+    private: // data
+
+    
+        friend class TMockSvgAnimationObserver;
+
+        /** File server session used in testing. */
+        RFs iFs;
+
+        /** Instance of the class that this test suite is testing. */
+        CSAnimImagePlugin* iTestObj;
+
+        /** A 32 bit identifer returned by ECom to identify this instance to the framework. */
+        TUid iDtorKey;
+
+        /** For testing async calls. */
+        CTestWaiter* iWaiter;
+
+        /** For testing correct number of calls to animation observer. */
+        TInt iFrameCounter;
+
+        /** Animation observer for testing. */
+        TMockSvgAnimationObserver iObserver;
+
+    };
+
+#endif      // TSANIMSVG_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/tsanimsvg/inc/sanimsvgplugintestsuite.h	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,149 @@
+/*
+* 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 the License "Symbian Foundation License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Declaration of CSAnimSvgPluginTestSuite class
+*
+*/
+
+
+#ifndef SANIMSVGPLUGINTESTSUITE_H
+#define SANIMSVGPLUGINTESTSUITE_H
+
+#include <ceunittestsuiteclass.h>
+#include <e32def.h>
+#include <f32file.h>
+#include "sanimobserver.h"
+
+class CSAnimImagePlugin;
+class CSAnimSvgPluginTestSuite;
+class CTestWaiter;
+
+NONSHARABLE_CLASS( TMockSvgAnimationObserver ) : public MSAnimObserver
+    {
+public:
+    TMockSvgAnimationObserver( CSAnimSvgPluginTestSuite& aTestSuite ) : iTestSuite( aTestSuite ) {}
+    virtual void UpdateScreen( const CFbsBitmap& /*aFrame*/, const CFbsBitmap& /*aMask*/ );
+    virtual void UpdateScreen( const CFbsBitmap& /*aFrame*/ );
+private:
+    CSAnimSvgPluginTestSuite& iTestSuite;
+    };
+
+/**
+*  Test cases for CSAnimSvgPlugin class.
+*
+*  @lib None
+*  @since S60 3.2
+*/
+NONSHARABLE_CLASS( CSAnimSvgPluginTestSuite ) : public CEUnitTestSuiteClass
+    {
+
+public:
+
+    /**
+    * Constructs a CSAnimSvgPluginTestSuite object.
+    *
+    * @since S60 3.2
+    *
+    * @return The new object
+    */
+    static CSAnimSvgPluginTestSuite* NewL();
+    static CSAnimSvgPluginTestSuite* NewLC();
+
+    /**
+    * Destructor.
+    *
+    * @since S60 3.2
+    */
+    virtual ~CSAnimSvgPluginTestSuite();
+
+private:
+
+    /**
+    * First phase constructor.
+    *
+    * @since S60 3.2
+    */
+    CSAnimSvgPluginTestSuite();
+
+    /**
+    * Second phase constructor.
+    *
+    * @since S60 3.2
+    */
+    void ConstructL();
+
+private:    // New methods
+
+    void SetupEmptyL();
+    void SetupObjL();
+    void SetupFileL( const TDesC& aFileName );
+    void SetupStillImageL();
+    void SetupScaledAnimationL();
+    void SetupUnscaledAnimationL();
+    void SetupAnimationWithTextL();
+    void SetupStillImageBinaryL();
+    void SetupScaledAnimationBinaryL();
+    void SetupFinishedL();
+    void Teardown();
+
+    void TestConstructorL();
+    void TestConstructorNoMemoryL();
+    void TestUnknownFileL();
+    void TestCorruptFileL();
+    void TestLoadStillImageL();
+    void TestLoadScaledAnimationL();
+    void TestLoadUnscaledAnimationL();
+    void TestLoadAnimationWithTextL();
+    void TestLoadStillImageBinaryL();
+    void TestLoadScaledAnimationBinaryL();
+    void TestLoadNoMemoryL();
+    void TestCancelLoadL();
+    void TestShowStillImageL();
+    void TestShowAnimationL();
+    void TestShowNoMemoryL();
+    void TestCancelStillImageL();
+    void TestCancelAnimationL();
+    void TestCancelNotActiveL();
+    void TestShowBeforeLoadL();
+    void TestSetDisplayModeL();
+    void TestSetSizeL();
+    void TestSetFrameDelayL();
+    void TestBackroundColourL();
+
+private: // data
+
+    EUNIT_DECLARE_TEST_TABLE;
+
+    friend class TMockSvgAnimationObserver;
+
+    /** File server session used in testing. */
+    RFs iFs;
+
+    /** Instance of the class that this test suite is testing. */
+    CSAnimImagePlugin* iTestObj;
+
+    /** A 32 bit identifer returned by ECom to identify this instance to the framework. */
+    TUid iDtorKey;
+
+    /** For testing async calls. */
+    CTestWaiter* iWaiter;
+
+    /** For testing correct number of calls to animation observer. */
+    TInt iFrameCounter;
+
+    /** Animation observer for testing. */
+    TMockSvgAnimationObserver iObserver;
+
+    };
+
+#endif // SANIMSVGPLUGINTESTSUITE_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/tsanimsvg/inc/testwaiter.h	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,88 @@
+/*
+* 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 the License "Symbian Foundation License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Declaration of CTestWaiter class
+*
+*/
+
+
+#ifndef TESTWAITER_H
+#define TESTWAITER_H
+
+#include <e32base.h>
+
+/**
+*  Stops active scheduler in RunL.
+*
+*  @lib None
+*  @since S60 3.2
+*/
+class CTestWaiter  : public CActive
+    {
+
+public:
+
+    /**
+    * Constructs a CTestWaiter object.
+    *
+    * @return The new object
+    * @since S60 3.2
+    */
+    static CTestWaiter* NewL();
+
+    /**
+    * Destructor.
+    *
+    * @since S60 3.2
+    */
+    virtual ~CTestWaiter();
+
+    /**
+    * Set active.
+    *
+    * @since S60 3.2
+    */
+    void Activate();
+
+protected:
+
+    /**
+    * From CActive.
+    * Implements cancellation of an outstanding request.
+    *
+    * @since S60 3.2
+    */
+    virtual void DoCancel();
+
+    /**
+    * From CActive.
+    * Handles an active object's request completion event.
+    * Never leaves.
+    *
+    * @since S60 3.2
+    */
+    virtual void RunL();
+
+private:
+
+    /**
+    * First phase constructor.
+    *
+    */
+    CTestWaiter();
+
+private: // data
+
+    };
+
+#endif // TESTWAITER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/tsanimsvg/rom/TSanimSvg.iby	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,9 @@
+#ifndef __TSANIMSVG_IBY__
+#define __TSANIMSVG_IBY__
+
+file=ABI_DIR\BUILD_DIR\tsanimsvg.dll SHARED_LIB_DIR\tsanimsvg.dll
+
+data=\epoc32\data\z\system\data\UI_tsanimSvg.cfg \testframework\UI_tsanimsvg.cfg
+
+
+#endif
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/tsanimsvg/src/TSanimsvg.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,198 @@
+/*
+* 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: This file contains testclass implementation.
+*
+*/
+
+// INCLUDE FILES
+#include <StifTestInterface.h>
+#include "TSanimsvg.h"
+#include <SettingServerClient.h>
+
+// EXTERNAL DATA STRUCTURES
+//extern  ?external_data;
+
+// EXTERNAL FUNCTION PROTOTYPES  
+//extern ?external_function( ?arg_type,?arg_type );
+
+// CONSTANTS
+//const ?type ?constant_var = ?constant;
+
+// MACROS
+//#define ?macro ?macro_def
+
+// LOCAL CONSTANTS AND MACROS
+//const ?type ?constant_var = ?constant;
+//#define ?macro_name ?macro_def
+
+// MODULE DATA STRUCTURES
+//enum ?declaration
+//typedef ?declaration
+
+// LOCAL FUNCTION PROTOTYPES
+//?type ?function_name( ?arg_type, ?arg_type );
+
+// FORWARD DECLARATIONS
+//class ?FORWARD_CLASSNAME;
+
+// ============================= LOCAL FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// ?function_name ?description.
+// ?description
+// Returns: ?value_1: ?description
+//          ?value_n: ?description_line1
+//                    ?description_line2
+// -----------------------------------------------------------------------------
+//
+/*
+?type ?function_name(
+    ?arg_type arg,  // ?description
+    ?arg_type arg)  // ?description
+    {
+
+    ?code  // ?comment
+
+    // ?comment
+    ?code
+    }
+*/
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CTSanimsvg::CTSanimsvg
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// -----------------------------------------------------------------------------
+//
+CTSanimsvg::CTSanimsvg( 
+    CTestModuleIf& aTestModuleIf ):
+        CScriptBase( aTestModuleIf ),iObserver( *this )
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CTSanimsvg::ConstructL
+// Symbian 2nd phase constructor can leave.
+// -----------------------------------------------------------------------------
+//
+void CTSanimsvg::ConstructL()
+    {
+    //Read logger settings to check whether test case name is to be
+    //appended to log file name.
+    RSettingServer settingServer;
+    TInt ret = settingServer.Connect();
+    if(ret != KErrNone)
+        {
+        User::Leave(ret);
+        }
+    // Struct to StifLogger settigs.
+    TLoggerSettings loggerSettings; 
+    // Parse StifLogger defaults from STIF initialization file.
+    ret = settingServer.GetLoggerSettings(loggerSettings);
+    if(ret != KErrNone)
+        {
+        User::Leave(ret);
+        } 
+    // Close Setting server session
+    settingServer.Close();
+
+    TFileName logFileName;
+    
+    if(loggerSettings.iAddTestCaseTitle)
+        {
+        TName title;
+        TestModuleIf().GetTestCaseTitleL(title);
+        logFileName.Format(KTSanimsvgLogFileWithTitle, &title);
+        }
+    else
+        {
+        logFileName.Copy(KTSanimsvgLogFile);
+        }
+
+    iLog = CStifLogger::NewL( KTSanimsvgLogPath, 
+                          logFileName,
+                          CStifLogger::ETxt,
+                          CStifLogger::EFile,
+                          EFalse );
+    
+    SendTestClassVersion();
+    }
+
+// -----------------------------------------------------------------------------
+// CTSanimsvg::NewL
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CTSanimsvg* CTSanimsvg::NewL( 
+    CTestModuleIf& aTestModuleIf )
+    {
+    CTSanimsvg* self = new (ELeave) CTSanimsvg( aTestModuleIf );
+
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop();
+
+    return self;
+
+    }
+
+// Destructor
+CTSanimsvg::~CTSanimsvg()
+    { 
+
+    // Delete resources allocated from test methods
+    Delete();
+
+    // Delete logger
+    delete iLog; 
+
+    }
+
+//-----------------------------------------------------------------------------
+// CTSanimsvg::SendTestClassVersion
+// Method used to send version of test class
+//-----------------------------------------------------------------------------
+//
+void CTSanimsvg::SendTestClassVersion()
+	{
+	TVersion moduleVersion;
+	moduleVersion.iMajor = TEST_CLASS_VERSION_MAJOR;
+	moduleVersion.iMinor = TEST_CLASS_VERSION_MINOR;
+	moduleVersion.iBuild = TEST_CLASS_VERSION_BUILD;
+	
+	TFileName moduleName;
+	moduleName = _L("TSanimsvg.dll");
+
+	TBool newVersionOfMethod = ETrue;
+	TestModuleIf().SendTestModuleVersion(moduleVersion, moduleName, newVersionOfMethod);
+	}
+
+// ========================== OTHER EXPORTED FUNCTIONS =========================
+
+// -----------------------------------------------------------------------------
+// LibEntryL is a polymorphic Dll entry point.
+// Returns: CScriptBase: New CScriptBase derived object
+// -----------------------------------------------------------------------------
+//
+EXPORT_C CScriptBase* LibEntryL( 
+    CTestModuleIf& aTestModuleIf ) // Backpointer to STIF Test Framework
+    {
+
+    return ( CScriptBase* ) CTSanimsvg::NewL( aTestModuleIf );
+
+    }
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/tsanimsvg/src/TSanimsvgBlocks.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,826 @@
+/*
+* 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: This file contains testclass implementation.
+*
+*/
+
+// [INCLUDE FILES] - do not remove
+#include <e32svr.h>
+#include <StifParser.h>
+#include <StifTestInterface.h>
+#include "TSanimsvg.h"
+
+
+#include "sanimimageplugin.h"
+#include "testwaiter.h"
+
+#include <ecom/ecom.h>
+
+
+#pragma tagging OFF // To disable CodeTest tagging
+
+const TInt KSAnimSvgPluginImplUid = 0x2000B122;
+const TInt K1Second = 1000000;
+
+_LIT( KUnknownFile, "C:\\temp\\unknown.svg" );
+_LIT( KCorruptFile, "C:\\temp\\corrupt.svg" );
+_LIT( KStillImageFile, "C:\\temp\\testimg_1.svg" );
+_LIT( KScaledAnimationFile, "C:\\temp\\testanim_1.svg" );
+_LIT( KUnscaledAnimationFile, "C:\\temp\\testanim_2.svg" );
+_LIT( KAnimationWithTextFile, "C:\\temp\\testanim_3.svg" );
+_LIT( KStillImageBinaryFile, "C:\\temp\\testimg_1.svgb" );
+_LIT( KScaledAnimationBinaryFile, "C:\\temp\\testanim_1.svgb" );
+
+
+
+// FORWARD DECLARATIONS
+//class ?FORWARD_CLASSNAME;
+
+// ============================= LOCAL FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// ?function_name ?description.
+// ?description
+// Returns: ?value_1: ?description
+//          ?value_n: ?description_line1
+//                    ?description_line2
+// -----------------------------------------------------------------------------
+//
+/*
+?type ?function_name(
+    ?arg_type arg,  // ?description
+    ?arg_type arg)  // ?description
+    {
+
+    ?code  // ?comment
+
+    // ?comment
+    ?code
+    }
+*/
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CTSanimsvg::Delete
+// Delete here all resources allocated and opened from test methods. 
+// Called from destructor. 
+// -----------------------------------------------------------------------------
+//
+void CTSanimsvg::Delete() 
+    {
+
+    }
+
+// -----------------------------------------------------------------------------
+// CTSanimsvg::RunMethodL
+// Run specified method. Contains also table of test mothods and their names.
+// -----------------------------------------------------------------------------
+//
+TInt CTSanimsvg::RunMethodL( 
+    CStifItemParser& aItem ) 
+    {
+
+    static TStifFunctionInfo const KFunctions[] =
+        {  
+        // Copy this line for every implemented function.
+        // First string is the function name used in TestScripter script file.
+        // Second is the actual implementation member function. 
+        ENTRY( "Example", CTSanimsvg::ExampleL ),
+        ENTRY( "SetupEmpty", CTSanimsvg::SetupEmptyL ),
+        ENTRY( "SetupObj", CTSanimsvg::SetupObjL ),
+        ENTRY( "SetupStillImage", CTSanimsvg::SetupStillImageL ),
+        ENTRY( "SetupScaledAnimation", CTSanimsvg::SetupScaledAnimationL ),
+        ENTRY( "SetupUnscaledAnimation", CTSanimsvg::SetupUnscaledAnimationL ),
+        ENTRY( "SetupAnimationWithText", CTSanimsvg::SetupAnimationWithTextL ),                                            
+        ENTRY( "SetupStillImageBinary", CTSanimsvg::SetupStillImageBinaryL ),
+        ENTRY( "SetupScaledAnimationBinary", CTSanimsvg::SetupScaledAnimationBinaryL ),
+        ENTRY( "SetupFinished", CTSanimsvg::SetupFinishedL ),
+        ENTRY( "Teardown", CTSanimsvg::Teardown ),
+        ENTRY( "TestConstructor", CTSanimsvg::TestConstructorL ),
+        ENTRY( "TestConstructorNoMemory", CTSanimsvg::TestConstructorNoMemoryL ),                                  
+        ENTRY( "TestUnknownFile", CTSanimsvg::TestUnknownFileL ),
+        ENTRY( "TestCorruptFile", CTSanimsvg::TestCorruptFileL ),
+        ENTRY( "TestLoadStillImage", CTSanimsvg::TestLoadStillImageL ),
+        ENTRY( "TestLoadScaledAnimation", CTSanimsvg::TestLoadScaledAnimationL ),
+        ENTRY( "TestLoadUnscaledAnimation", CTSanimsvg::TestLoadUnscaledAnimationL ),
+        ENTRY( "TestLoadAnimationWithText", CTSanimsvg::TestLoadAnimationWithTextL ),
+        ENTRY( "TestLoadStillImageBinary", CTSanimsvg::TestLoadStillImageBinaryL ),
+        ENTRY( "TestLoadScaledAnimationBinary", CTSanimsvg::TestLoadScaledAnimationBinaryL ),
+        ENTRY( "TestLoadNoMemory", CTSanimsvg::TestLoadNoMemoryL ),
+        ENTRY( "TestCancelLoad", CTSanimsvg::TestCancelLoadL ),
+        ENTRY( "TestShowStillImage", CTSanimsvg::TestShowStillImageL ),
+        ENTRY( "TestShowAnimation", CTSanimsvg::TestShowAnimationL ),
+        ENTRY( "TestShowNoMemory", CTSanimsvg::TestShowNoMemoryL ),
+        ENTRY( "TestCancelStillImage", CTSanimsvg::TestCancelStillImageL ),
+        ENTRY( "TestCancelAnimation", CTSanimsvg::TestCancelAnimationL ),
+        ENTRY( "TestCancelNotActive", CTSanimsvg::TestCancelNotActiveL ),
+        ENTRY( "TestShowBeforeLoad", CTSanimsvg::TestShowBeforeLoadL ),
+        ENTRY( "TestSetDisplayMode", CTSanimsvg::TestSetDisplayModeL ),
+        ENTRY( "TestSetSize", CTSanimsvg::TestSetSizeL ),
+        ENTRY( "TestSetFrameDelay", CTSanimsvg::TestSetFrameDelayL ),
+        ENTRY( "TestBackroundColour", CTSanimsvg::TestBackroundColourL ),
+                   
+        
+        //ADD NEW ENTRY HERE
+        // [test cases entries] - Do not rove
+
+        };
+
+    const TInt count = sizeof( KFunctions ) / 
+                        sizeof( TStifFunctionInfo );
+
+    return RunInternalL( KFunctions, count, aItem );
+
+    }
+
+// ======== MEMBER FUNCTIONS ========
+
+// ---------------------------------------------------------------------------
+// TMockSvgAnimationObserver::UpdateScreen
+//
+// ---------------------------------------------------------------------------
+//
+void TMockSvgAnimationObserver::UpdateScreen( const CFbsBitmap& /*aFrame*/, const CFbsBitmap& /*aMask*/ )
+    {
+    RDebug::Print( _L( "TMockSvgAnimationObserver::UpdateScreen" ) );
+
+    iTestSuite.iFrameCounter++;
+    }
+
+
+// ---------------------------------------------------------------------------
+// TMockSvgAnimationObserver::UpdateScreen
+//
+// ---------------------------------------------------------------------------
+//
+void TMockSvgAnimationObserver::UpdateScreen( const CFbsBitmap& /*aFrame*/ )
+    {
+    iTestSuite.iFrameCounter++;
+    }
+
+
+
+// ---------------------------------------------------------------------------
+// CSAnimSvgPluginTestSuite::SetupEmptyL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimsvg::SetupEmptyL()
+    {
+    iTestObj = NULL;
+    iDtorKey = TUid::Uid( 0 );
+    User::LeaveIfError( iFs.Connect() );
+    User::LeaveIfError( iFs.ShareProtected() );
+    iWaiter = CTestWaiter::NewL();
+    iFrameCounter = 0;
+     return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimSvgPluginTestSuite::SetupObjL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimsvg::SetupObjL()
+    {
+    SetupEmptyL();
+    iTestObj = static_cast<CSAnimImagePlugin*>(
+        REComSession::CreateImplementationL(
+            TUid::Uid( KSAnimSvgPluginImplUid ), iDtorKey, &iObserver ) );
+    iTestObj->SetSize( TSize( 360 , 61 ) );
+     return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimSvgPluginTestSuite::SetupFileL
+//
+// ---------------------------------------------------------------------------
+//
+void CTSanimsvg::SetupFileL( const TDesC& aFileName )
+    {
+    SetupObjL();
+    iTestObj->Load( iFs, aFileName, iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+    	
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimSvgPluginTestSuite::SetupStillImageL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimsvg::SetupStillImageL()
+    {
+    SetupFileL( KStillImageFile );
+     return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimSvgPluginTestSuite::SetupScaledAnimationL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimsvg::SetupScaledAnimationL()
+    {
+    SetupFileL( KScaledAnimationFile );
+     return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimSvgPluginTestSuite::SetupUnscaledAnimationL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimsvg::SetupUnscaledAnimationL()
+    {
+    SetupFileL( KUnscaledAnimationFile );
+     return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimSvgPluginTestSuite::SetupAnimationWithTextL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimsvg::SetupAnimationWithTextL()
+    {
+    SetupFileL( KAnimationWithTextFile );
+     return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimSvgPluginTestSuite::SetupStillImageBinaryL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimsvg::SetupStillImageBinaryL()
+    {
+    SetupFileL( KStillImageBinaryFile );
+     return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimSvgPluginTestSuite::SetupScaledAnimationBinaryL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimsvg::SetupScaledAnimationBinaryL()
+    {
+    SetupFileL( KScaledAnimationBinaryFile );
+     return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimSvgPluginTestSuite::SetupFinishedL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimsvg::SetupFinishedL()
+    {
+    SetupScaledAnimationL();
+    iTestObj->Start( iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+    	 return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimSvgPluginTestSuite::Teardown
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimsvg::Teardown()
+    {
+    delete iTestObj;
+    iTestObj = NULL;
+
+    REComSession::DestroyedImplementation( iDtorKey );
+
+    delete iWaiter;
+    iWaiter = NULL;
+
+    iFs.Close();
+
+    REComSession::FinalClose();
+    	 return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimSvgPluginTestSuite::TestConstructorL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimsvg::TestConstructorL()
+    {
+    TAny* ptr = NULL;
+    ptr = REComSession::CreateImplementationL(TUid::Uid( KSAnimSvgPluginImplUid ),iDtorKey, &iObserver);
+
+    iTestObj = static_cast<CSAnimImagePlugin*>( ptr );
+   // EUNIT_ASSERT( iTestObj );
+    delete iTestObj;
+    iTestObj = NULL;
+     return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimSvgPluginTestSuite::TestConstructorNoMemoryL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimsvg::TestConstructorNoMemoryL()
+    {
+    TAny* ptr = NULL;
+     ptr = REComSession::CreateImplementationL(TUid::Uid( KSAnimSvgPluginImplUid ), iDtorKey, &iObserver );
+     	
+    //EUNIT_ASSERT( !ptr );
+     return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimSvgPluginTestSuite::TestUnknownFileL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimsvg::TestUnknownFileL()
+    {
+    iTestObj->Load( iFs, KUnknownFile, iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+   if( iWaiter->iStatus.Int()== KErrGeneral ) // SVG engine returns "unknown error"
+       {
+       
+       }
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimSvgPluginTestSuite::TestCorruptFileL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimsvg::TestCorruptFileL()
+    {
+    iTestObj->Load( iFs, KCorruptFile, iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+    if ( iWaiter->iStatus.Int()== KErrGeneral )// SVG engine returns "unknown error"
+        {
+        
+        }
+     return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimSvgPluginTestSuite::TestLoadStillImageL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimsvg::TestLoadStillImageL()
+    {
+    iTestObj->Load( iFs, KStillImageFile, iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+    if ( iWaiter->iStatus.Int() == KErrNone )
+        {
+        
+        }
+     return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimSvgPluginTestSuite::TestLoadScaledAnimationL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimsvg::TestLoadScaledAnimationL()
+    {
+    iTestObj->Load( iFs, KScaledAnimationFile, iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+    if ( iWaiter->iStatus.Int()== KErrNone )
+        {
+        
+        }
+     return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimSvgPluginTestSuite::TestLoadUnscaledAnimationL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimsvg::TestLoadUnscaledAnimationL()
+    {
+    iTestObj->Load( iFs, KUnscaledAnimationFile, iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+   if ( iWaiter->iStatus.Int()== KErrNone )
+       {
+       
+       }
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimSvgPluginTestSuite::TestLoadAnimationWithTextL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimsvg::TestLoadAnimationWithTextL()
+    {
+    iTestObj->Load( iFs, KAnimationWithTextFile, iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+    if ( iWaiter->iStatus.Int() == KErrNone )
+        {
+        
+        }
+     return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimSvgPluginTestSuite::TestLoadStillImageBinaryL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimsvg::TestLoadStillImageBinaryL()
+    {
+    iTestObj->Load( iFs, KStillImageBinaryFile, iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+   if ( iWaiter->iStatus.Int()== KErrNone )
+       {
+       
+       }
+     return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimSvgPluginTestSuite::TestLoadScaledAnimationBinaryL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimsvg::TestLoadScaledAnimationBinaryL()
+    {
+    iTestObj->Load( iFs, KScaledAnimationBinaryFile, iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+    if ( iWaiter->iStatus.Int()== KErrNone )
+        {
+        
+        }
+     return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimSvgPluginTestSuite::TestLoadNoMemoryL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimsvg::TestLoadNoMemoryL()
+    {
+    iTestObj->Load( iFs, KAnimationWithTextFile, iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+    if (iWaiter->iStatus.Int()== KErrNoMemory )
+        {
+        
+        }
+   return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimSvgPluginTestSuite::TestCancelLoadL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimsvg::TestCancelLoadL()
+    {
+    iTestObj->Load( iFs, KAnimationWithTextFile, iWaiter->iStatus );
+    iWaiter->Activate();
+    iTestObj->Cancel();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+   if ( iWaiter->iStatus.Int()== KErrNone )
+       {
+       }
+       
+        // Load is syncronous
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimSvgPluginTestSuite::TestShowStillImageL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimsvg::TestShowStillImageL()
+    {
+    iTestObj->Start( iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+    if (iWaiter->iStatus.Int() == KErrNone )
+        {
+        
+        }
+   // EUNIT_ASSERT_EQUALS( iFrameCounter, 1 );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimSvgPluginTestSuite::TestShowAnimationL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimsvg::TestShowAnimationL()
+    {
+    iTestObj->Start( iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+    if ( iWaiter->iStatus.Int()== KErrNone )
+        {
+        
+        }
+    //EUNIT_ASSERT( iFrameCounter > 1 );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimSvgPluginTestSuite::TestShowNoMemoryL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimsvg::TestShowNoMemoryL()
+    {
+    iTestObj->Start( iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+    if ( iWaiter->iStatus.Int()== KErrNoMemory )
+        {
+        
+        }
+     return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimSvgPluginTestSuite::TestCancelStillImageL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimsvg::TestCancelStillImageL()
+    {
+    iTestObj->Start( iWaiter->iStatus );
+    iWaiter->Activate();
+    iTestObj->Cancel();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+    if (iWaiter->iStatus.Int()== KErrNone )
+        {
+        
+        }
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimSvgPluginTestSuite::TestCancelAnimationL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimsvg::TestCancelAnimationL()
+    {
+    iTestObj->Start( iWaiter->iStatus );
+    iWaiter->Activate();
+    iTestObj->Cancel();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+    if ( iWaiter->iStatus.Int()== KErrCancel )
+        {
+        
+        }
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimSvgPluginTestSuite::TestCancelNotActiveL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimsvg::TestCancelNotActiveL()
+    {
+    iTestObj->Cancel();
+     return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimSvgPluginTestSuite::TestShowBeforeLoadL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimsvg::TestShowBeforeLoadL()
+    {
+    /*
+     [Test]
+    title TestShowBeforeLoad
+    create TSanimsvg AnimSvgPlugin
+    AnimSvgPlugin SetupObj
+    AnimSvgPlugin TestShowBeforeLoad
+    AnimSvgPlugin Teardown
+    delete AnimSvgPlugin
+    [Endtest] 
+       */
+    
+   // STIF_ASSERT_PANIC( iTestObj->Start( iWaiter->iStatus ), "STARTUPANIMATION", 2 );
+   // iTestObj->Start( iWaiter->iStatus );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimSvgPluginTestSuite::TestSetDisplayModeL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimsvg::TestSetDisplayModeL()
+    {
+    iTestObj->SetDisplayMode( EGray2 );
+    iTestObj->Load( iFs, KStillImageFile, iWaiter->iStatus );
+    iTestObj->SetDisplayMode( ENone );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+    if ( iWaiter->iStatus.Int()== KErrNone )
+        {
+        }
+    
+    iTestObj->SetDisplayMode( EColor16MA );
+    iTestObj->SetDisplayMode( EColor16MU );
+    iTestObj->Start( iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+    if ( iWaiter->iStatus.Int()== KErrNone )
+        {
+        
+        }
+    iTestObj->SetDisplayMode( EColor256 );
+     return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimSvgPluginTestSuite::TestSetSizeL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimsvg::TestSetSizeL()
+    {
+    iTestObj->SetSize( TSize( 10, 10 ) );
+    iTestObj->Load( iFs, KStillImageFile, iWaiter->iStatus );
+    iTestObj->SetSize( TSize( 10000, 10000 ) );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+    //EUNIT_ASSERT_EQUALS( iWaiter->iStatus.Int(), KErrNone );
+    iTestObj->SetSize( TSize( 0, 0 ) );
+    iTestObj->SetSize( TSize( 2, 1000 ) );
+    iTestObj->Start( iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+    if ( iWaiter->iStatus.Int()== KErrNone )
+        {
+        
+        }
+    //iTestObj->SetSize( TSize( 1, 1 ) );
+     return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimSvgPluginTestSuite::TestSetFrameDelayL
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSanimsvg::TestSetFrameDelayL()
+    {
+    iTestObj->SetFrameDelay( 100 );
+    iTestObj->Load( iFs, KScaledAnimationFile, iWaiter->iStatus );
+    iTestObj->SetFrameDelay( 0 );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+    //EUNIT_ASSERT_EQUALS( iWaiter->iStatus.Int(), KErrNone );
+    iTestObj->SetFrameDelay( 12000 );
+    iTestObj->SetFrameDelay( 50 );
+    iTestObj->Start( iWaiter->iStatus );
+    iWaiter->Activate();
+    CActiveScheduler::Start(); // Waiter stops it when request completes.
+    if ( iWaiter->iStatus.Int()== KErrNone )
+        {
+        
+        }
+    iTestObj->SetFrameDelay( 3 );
+     return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSAnimSvgPluginTestSuite::TestBackroundColourL
+//
+// ---------------------------------------------------------------------------
+//
+
+TInt CTSanimsvg::TestBackroundColourL()
+    {
+    TRgb colour = iTestObj->BackroundColour();
+   // EUNIT_ASSERT_EQUALS( colour, TRgb() ); // Empty
+    return KErrNone;
+    }
+
+
+// -----------------------------------------------------------------------------
+// CTSanimsvg::ExampleL
+// Example test method function.
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TInt CTSanimsvg::ExampleL( CStifItemParser& aItem )
+    {
+
+    // Print to UI
+    _LIT( KTSanimsvg, "TSanimsvg" );
+    _LIT( KExample, "In Example" );
+    TestModuleIf().Printf( 0, KTSanimsvg, KExample );
+    // Print to log file
+    iLog->Log( KExample );
+
+    TInt i = 0;
+    TPtrC string;
+    _LIT( KParam, "Param[%i]: %S" );
+    while ( aItem.GetNextString ( string ) == KErrNone )
+        {
+        TestModuleIf().Printf( i, KTSanimsvg, 
+                                KParam, i, &string );
+        i++;
+        }
+
+    return KErrNone;
+
+    }
+
+// -----------------------------------------------------------------------------
+// CTSanimsvg::?member_function
+// ?implementation_description
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+/*
+TInt CTSanimsvg::?member_function(
+   CItemParser& aItem )
+   {
+
+   ?code
+
+   }
+*/
+
+// ========================== OTHER EXPORTED FUNCTIONS =========================
+// None
+
+//  [End of File] - Do not remove
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/startupanimation/tsrc/tsanimsvg/src/testwaiter.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,92 @@
+/*
+* 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 the License "Symbian Foundation License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Implementation of CTestWaiter class
+*
+*/
+
+
+#include "testwaiter.h"
+
+#pragma tagging OFF // To disable CodeTest tagging
+
+// ======== MEMBER FUNCTIONS ========
+
+// ---------------------------------------------------------------------------
+// CTestWaiter::NewL
+//
+// ---------------------------------------------------------------------------
+//
+CTestWaiter* CTestWaiter::NewL()
+    {
+    CTestWaiter* self = new( ELeave ) CTestWaiter;
+    return self;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTestWaiter::~CTestWaiter
+//
+// ---------------------------------------------------------------------------
+//
+CTestWaiter::~CTestWaiter()
+    {
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTestWaiter::Activate
+//
+// ---------------------------------------------------------------------------
+//
+void CTestWaiter::Activate()
+    {
+    __ASSERT_ALWAYS( !IsActive(), User::Invariant() );
+
+    SetActive();
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTestWaiter::CTestWaiter
+//
+// ---------------------------------------------------------------------------
+//
+CTestWaiter::CTestWaiter()
+  : CActive( EPriorityStandard )
+    {
+    CActiveScheduler::Add( this );
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTestWaiter::DoCancel
+//
+// ---------------------------------------------------------------------------
+//
+void CTestWaiter::DoCancel()
+    {
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTestWaiter::RunL
+//
+// ---------------------------------------------------------------------------
+//
+void CTestWaiter::RunL()
+    {
+    CActiveScheduler::Stop();
+    }
+
+#pragma tagging ON // To stop disabling CodeTest tagging
--- a/sysresmonitoring/oodmonitor/inc/Ood.h	Wed Sep 29 15:24:56 2010 +0300
+++ b/sysresmonitoring/oodmonitor/inc/Ood.h	Thu Oct 07 06:25:45 2010 +0300
@@ -35,6 +35,9 @@
 const TInt KMaxMsgSize = 256;
 #endif // _DEBUG
 
+#ifdef FCC_UNIT_TEST
+class Tut_LafShutdownManager;
+#endif
 // ---------------------------------------------------------
 //
 // ---------------------------------------------------------
@@ -45,7 +48,12 @@
     static CLafShutdownManager* NewL(MShutdownEventObserver& aObserver);
     ~CLafShutdownManager();
 
-private:
+#ifdef FCC_UNIT_TEST
+    public:
+#else              
+    private:
+#endif
+
 
     // ======================================================================
     // Out of disk watcher
@@ -101,7 +109,12 @@
             void ConstructL(RResourceFile& aResFile, TResourceReader& aResReader);
             void CleanupL(TBool aCancel = ETrue);
 
+#ifdef FCC_UNIT_TEST
+        public:
+#else              
         private:
+#endif
+            
             class CMessageInfo : public CBase
                 {
                 public:
@@ -117,7 +130,9 @@
             TMessageType    iMessageType;
             CMessageInfo*   iMessageInfo[4];
         
-        
+#ifdef FCC_UNIT_TEST
+    friend class Tut_LafShutdownManager;
+#endif          
         };
 
     // ======================================================================
@@ -181,6 +196,10 @@
 
 private:
     friend class CLafShutdownManager::COutOfDiskWatcher;
+
+#ifdef FCC_UNIT_TEST
+    friend class Tut_LafShutdownManager;
+#endif    
     };
 
 #endif LAFSHUT_H
\ No newline at end of file
--- a/sysresmonitoring/oodmonitor/oodmonitor2/inc/outofdiskmonitor.h	Wed Sep 29 15:24:56 2010 +0300
+++ b/sysresmonitoring/oodmonitor/oodmonitor2/inc/outofdiskmonitor.h	Thu Oct 07 06:25:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies). 
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -78,7 +78,6 @@
         TInt GetTopPriorityDrive();
         void SetAsDisplayedL(TInt aDrive, TInt aDriveStatus);
     private: //Data
-        COutOfDiskNotifyObserver*   iOutOfDiskNotifyObserver; //owns
         COutOfDiskPSObserver*       iOutOfDiskPSObserver; //owns
         COutOfDiskGlobalNote*       iOutOfDiskGlobalNote; // owns
         RFs                         iFs;
@@ -91,6 +90,11 @@
         TInt                        iDefaultRomDrive;
         RResourceFile               iResourceFile;
         TInt64                      iOODWarningThresholdMassMemory;
+
+#ifdef FCC_UNIT_TEST
+    public:
+#endif
+        COutOfDiskNotifyObserver*   iOutOfDiskNotifyObserver; //owns
     };
 
 #endif // __OUTOFDISKMONITOR_H__
--- a/sysresmonitoring/oodmonitor/oodmonitor2/src/outofdiskmonitor.cpp	Wed Sep 29 15:24:56 2010 +0300
+++ b/sysresmonitoring/oodmonitor/oodmonitor2/src/outofdiskmonitor.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies). 
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -427,9 +427,11 @@
         {
         TAfterNoteTimer* p = 0;
         p = new (ELeave) TAfterNoteTimer;
+		CleanupStack::PushL(p);
         p->iOODM = this;
         p->iDrive = aDrive;
         iDriveStatus[aDrive].iTimer = CPeriodic::NewL( EPriorityNormal );
+		CleanupStack::Pop(p);
         iDriveStatus[aDrive].iTimer->Start( KDelayAfterNote, KDelayAfterNote, TCallBack( DoStopTimingL, p ) );
         }
     }
--- a/sysresmonitoring/oodmonitor/oodmonitor2/src/outofdisknotifyobserver.cpp	Wed Sep 29 15:24:56 2010 +0300
+++ b/sysresmonitoring/oodmonitor/oodmonitor2/src/outofdisknotifyobserver.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies). 
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -100,7 +100,10 @@
             }            
         }
 
-    iWait->Start();    
+#ifndef FCC_UNIT_TEST
+    iWait->Start();
+#endif
+    
     TRACES("COutOfDiskNotifyObserver::ConstructL: End");
     }
 
--- a/sysresmonitoring/oodmonitor/src/lafshut.cpp	Wed Sep 29 15:24:56 2010 +0300
+++ b/sysresmonitoring/oodmonitor/src/lafshut.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -803,13 +803,18 @@
 
     CleanupL();
 
-          
+    
+#ifndef FCC_UNIT_TEST
         CHbDeviceMessageBoxSymbian* globalNote = CHbDeviceMessageBoxSymbian::NewL(CHbDeviceMessageBoxSymbian::EWarning);
         CleanupStack::PushL(globalNote);
         globalNote->SetTextL((iMessageInfo[iMessageType]->iMessage)->Des());
         globalNote->SetTimeoutL(0);
         globalNote->ExecL();
         CleanupStack::PopAndDestroy(globalNote);
+#else   
+				iMessageInfo[iMessageType]->iMessage->Des().Fill('s');
+				TRACES("CLafShutdownManager::CGlobalQueryActive::DisplayL change size()");
+#endif    
         
     iMessageType = ENone;
     TRACES("CLafShutdownManager::CGlobalQueryActive::DisplayL: End");
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oodmonitor/tsrc/group/bld.inf	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,30 @@
+/*
+* 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:
+*
+*/
+
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+
+PRJ_MMPFILES
+
+PRJ_TESTMMPFILES
+#include "../ut_oodmonitor/group/bld.inf"
+#include "../ut_oodsubscriber/group/bld.inf"
+#include "../ut_oodmonitorv1/group/bld.inf"
+//  End of File  
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oodmonitor/tsrc/group/readme.txt	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,27 @@
+ut_oodmonitor are unit test code for oodmonitor.
+
+How to build test code
+go to group directory and run
+>sbs reallyclean
+>sbs 
+
+How to install test module
+Copy related exe, dll, resource file to device
+1) \epoc32\release\armv5\udeb\ut_oodmonitor.dll -> c:\sys\bin\ut_oodmonitor.dll
+2) \epoc32\release\armv5\udeb\ut_oodsubscriber.dll -> c:\sys\bin\ut_oodsubscriber.dll
+3) \epoc32\release\armv5\udeb\ut_oodmonitorv1.dll -> c:\sys\bin\ut_oodmonitorv1.dll
+How to run test code at emulator
+1)start symbian device emulator
+2)start eshell
+3)start command at eshell
+  atsinterface.exe -testmodule ut_oodmonitor
+  atsinterface.exe -testmodule ut_oodsubscriber 
+  atsinterface.exe -testmodule ut_oodmonitorv1
+
+How to run test code at hw
+1)start symbian device
+2)start eshell
+3)start command at eshell
+  atsinterface.exe -testmodule ut_oodmonitor
+  atsinterface.exe -testmodule ut_oodsubscriber 
+  atsinterface.exe -testmodule ut_oodmonitorv1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oodmonitor/tsrc/ut_oodmonitor/Bwins/ut_oodmonitoru.def	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,4 @@
+EXPORTS
+	?LibEntryL@@YAPAVCTestModuleBase@@XZ @ 1 NONAME ; class CTestModuleBase * __cdecl LibEntryL(void)
+	?SetRequirements@@YAHAAPAVCTestModuleParam@@AAK@Z @ 2 NONAME ; int __cdecl SetRequirements(class CTestModuleParam * &,unsigned long &)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oodmonitor/tsrc/ut_oodmonitor/eabi/ut_oodmonitoru.def	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,15 @@
+EXPORTS
+	_Z9LibEntryLv @ 1 NONAME
+	_Z15SetRequirementsRP16CTestModuleParamRm @ 2 NONAME
+	_ZN11LafShutdown17SaveFromAppSwitchEv @ 3 NONAME
+	_ZN11LafShutdown18SaveFromViewSwitchEv @ 4 NONAME
+	_ZN11LafShutdown21CreateShutdownManagerER22MShutdownEventObserver @ 5 NONAME
+	_ZTI20COutOfDiskPSObserver @ 6 NONAME
+	_ZTI20COutOfDiskSubscriber @ 7 NONAME
+	_ZTI22CUTOutOfDiskPSObserver @ 8 NONAME
+	_ZTI22TshutdownEventObserver @ 9 NONAME
+	_ZTV20COutOfDiskPSObserver @ 10 NONAME
+	_ZTV20COutOfDiskSubscriber @ 11 NONAME
+	_ZTV22CUTOutOfDiskPSObserver @ 12 NONAME
+	_ZTV22TshutdownEventObserver @ 13 NONAME
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oodmonitor/tsrc/ut_oodmonitor/group/bld.inf	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,35 @@
+/*
+* 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:
+*
+*/
+
+PRJ_PLATFORMS
+
+	DEFAULT
+
+PRJ_TESTEXPORTS
+
+
+PRJ_EXPORTS
+
+
+PRJ_TESTMMPFILES
+
+	ut_oodmonitor.mmp
+
+PRJ_MMPFILES
+
+
+//  End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oodmonitor/tsrc/ut_oodmonitor/group/ut_oodmonitor.mmp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,79 @@
+/*TYPE STIFUNIT*/
+/*
+* 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: MMP file for STIF Test Framework's STIFUnit test module.
+*
+*/
+
+#include <platform_paths.hrh>
+
+SMPSAFE
+
+TARGET          ut_oodmonitor.dll
+TARGETTYPE      dll
+UID             0x1000008D 0x2002CAD6
+
+CAPABILITY      ALL -TCB
+/* Remove comments and replace 0x00000000 with correct vendor id */
+// VENDORID     0x00000000
+/* Remove comments and replace 0x00000000 with correct secure id */
+// SECUREID     0x00000000
+
+macro FCC_UNIT_TEST
+#define FCC_UNIT_TEST
+
+//TARGETPATH      ?target_path
+DEFFILE         ut_oodmonitor.def
+
+USERINCLUDE     ../inc 
+USERINCLUDE     ../../../oodmonitor2/inc 
+USERINCLUDE     ../../../inc 
+SYSTEMINCLUDE	/epoc32/include/mw/hb/hbwidgets
+
+MW_LAYER_SYSTEMINCLUDE
+OS_LAYER_SYSTEMINCLUDE
+
+SOURCEPATH      ../src
+
+SOURCE          ut_oodmonitor.cpp
+SOURCE          ut_oodmonitorCases.cpp
+SOURCE			utoutofdiskpsobserver.cpp
+SOURCE			mockshutdowneventobserver.cpp
+
+SOURCEPATH      ../../../oodmonitor2/src
+SOURCE          outofdiskglobalnote.cpp
+SOURCE          outofdiskmonitor.cpp
+SOURCE          outofdiskpsobserver.cpp
+SOURCE          outofdisksubscriber.cpp
+SOURCE          lafshut.cpp
+SOURCE		outofdisknotifyobserver.cpp
+
+//RESOURCE        resource_file
+//RESOURCE        resource_file2
+
+LIBRARY         euser.lib
+LIBRARY         stiftestinterface.lib
+
+LIBRARY         efsrv.lib
+LIBRARY         bafl.lib
+LIBRARY         commonengine.lib
+LIBRARY         HbWidgets.lib
+LIBRARY         platformenv.lib
+LIBRARY         disknotifyhandler.lib
+LIBRARY         centralrepository.lib
+
+LANG            SC
+
+// AIF ?filename// End of File
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oodmonitor/tsrc/ut_oodmonitor/group/ut_oodmonitor.pkg	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,60 @@
+;
+; 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:
+;
+; 	Installation file for STIF
+;
+
+; Languages
+&EN
+
+; Provide value for uid
+#{"STIF"},(0x00000000),1,1,0,TYPE=SA
+
+; Series60 product id for S60 3.0
+[0x101F7961], 0, 0, 0, {"Series60ProductID"}
+
+; Localised Vendor name
+%{"Nokia"}
+
+; Unique Vendor name
+:"Nokia"
+
+; Logo
+; None
+
+; Package signature - Optional
+; None
+
+; Start of Package body
+
+; Condition blocks
+; None
+
+; Options list
+; None
+
+; Install files
+"\epoc32\release\armv5\udeb\ut_oodmonitor.dll"   -   "!:\Sys\Bin\ut_oodmonitor.dll"
+  
+; Embedded SIS 
+; None
+
+; End of Package body
+
+; PKG dependencies
+; None
+
+; PKG capabilities
+; None
Binary file sysresmonitoring/oodmonitor/tsrc/ut_oodmonitor/group/v2CTCHTML.rar has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oodmonitor/tsrc/ut_oodmonitor/inc/mockshutdowneventobserver.h	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,35 @@
+/*
+* 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:  Implementation of COutOfDiskNotifyObserver class.
+*
+*/
+
+#ifndef MOCKSHUTDOWNEVENTOBSERVER_H_
+#define MOCKSHUTDOWNEVENTOBSERVER_H_
+
+#include <shutdownsrv.h>
+
+class TshutdownEventObserver : public MShutdownEventObserver
+    {
+public:
+    TshutdownEventObserver();
+    virtual ~TshutdownEventObserver();
+    virtual void HandleShutdownEventL(MSaveObserver::TSaveType aAction,TBool aPowerOff, 
+            TPowerState aEvent = EPwStandby);
+    virtual CArrayFix<TThreadId>* ClientArrayLC();
+    virtual TBool IsClientHung(TThreadId aId) const;
+    virtual void GetShutdownState(TBool& aPowerOff, TBool& aAllSessionsHavePendingRequest) const;
+    };
+
+#endif /* MOCKSHUTDOWNEVENTOBSERVER_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oodmonitor/tsrc/ut_oodmonitor/inc/utoutofdiskpsobserver.h	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,45 @@
+/*
+* 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: COutOfDiskPSObserver contains a protected function and some private functions which can't be directly accessed 
+* by test code, so that this derived class is used to public those functions.
+*
+*/
+
+
+#ifndef UTOUTOFDISKPSOBSERVER_H
+#define UTOUTOFDISKPSOBSERVER_H
+
+// USER INCLUDES
+#include <e32base.h>
+#include "outofdiskpsobserver.h"
+
+// CLASS DECLARATION
+class COutOfDiskMonitor;
+
+class CUTOutOfDiskPSObserver : public COutOfDiskPSObserver
+    {
+    public:  // Constructors and destructor
+        /**
+        * Two-phased constructor.
+        */
+        static CUTOutOfDiskPSObserver* NewL( COutOfDiskMonitor* aOutOfDiskMonitor );
+
+    public: // From MSysApPropertyResponder
+
+        void HandlePropertyChangedL( const TUid& aCategory, TUint aKey );
+    };
+
+#endif      // UTOUTOFDISKPSOBSERVER_H   
+            
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oodmonitor/tsrc/ut_oodmonitor/src/mockshutdowneventobserver.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,51 @@
+/*
+* 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:  Implementation of COutOfDiskNotifyObserver class.
+*
+*/
+
+#include <e32debug.h>
+#include <e32property.h>
+
+#include "MockShutdownEventObserver.h"
+
+TshutdownEventObserver::TshutdownEventObserver()
+    {
+
+    }
+
+TshutdownEventObserver::~TshutdownEventObserver()
+    {
+
+    }
+
+void TshutdownEventObserver::HandleShutdownEventL(MSaveObserver::TSaveType aAction,TBool aPowerOff, TPowerState aEvent)
+    {
+    
+    }
+
+CArrayFix<TThreadId>* TshutdownEventObserver::ClientArrayLC()
+    {
+    return (CArrayFix<TThreadId>*)NULL;
+    }
+
+TBool TshutdownEventObserver::IsClientHung(TThreadId aId) const
+    {
+    return ETrue;
+    }
+
+void TshutdownEventObserver::GetShutdownState(TBool& aPowerOff, TBool& aAllSessionsHavePendingRequest) const
+    {
+
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oodmonitor/tsrc/ut_oodmonitor/src/ut_oodmonitor.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,124 @@
+/*
+* 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: This file contains STIFUnit module implementation.
+*
+*/
+
+/******************************************************************************/
+/*
+ *
+ * Test module configuration 
+*/
+
+// Version
+#define TEST_MODULE_VERSION_MAJOR 0
+#define TEST_MODULE_VERSION_MINOR 0
+#define TEST_MODULE_VERSION_BUILD 0
+
+// Uncomment following defines, if you want to provide implementation
+// of enlisted virtual methods of test module.
+// Implementation part is located at the end of this file.
+//#define STIFUNIT_OOMTESTQUERYL
+//#define STIFUNIT_OOMTESTINITIALIZEL
+//#define STIFUNIT_OOMHANDLEWARNINGL
+//#define STIFUNIT_OOMTESTFINALIZEL
+// Uncomment following define, if you want to increase heap or stack size.
+// #define STIFUNIT_SETHEAPANDSTACKSIZE
+/******************************************************************************/
+
+
+/*
+ * Test module internals. Please do not edit them. 
+*/
+
+// Includes
+#include <e32base.h>
+
+// Literals
+_LIT( KUnitLogPath, "\\logs\\testframework\\ut_oodmonitor\\" ); 
+_LIT( KUnitLogFile, "ut_oodmonitor.txt" ); 
+_LIT( KLogStart, "ut_oodmonitor logging starts!" );
+
+// Defines
+#define STIF_UNIT_TEST_CASES "../src/ut_oodmonitorCases.cpp"
+#define STIF_UNIT_MODULE_CLASS_NAME Cut_oodmonitor
+#define STIF_UNIT_MODULE_NAME _L("ut_oodmonitor.dll")
+
+// Include STIF unit generic file
+#include <StifUnitGeneric.h>
+
+/*
+ * Implementation of setHeapAndStack virtual methods.
+ * To changes heap and stack size provide new values to iTestThreadStackSize, iTestThreadMinHeap and iTestThreadMaxHeap. 
+*/
+
+#ifdef STIFUNIT_SETHEAPANDSTACKSIZE
+EXPORT_C TInt SetRequirements( CTestModuleParam*& aTestModuleParam, 
+                               TUint32& aParameterValid )
+    {
+    aParameterValid = KStifTestModuleParameterChanged;
+    CTestModuleParamVer01* param = CTestModuleParamVer01::NewL(); 
+    // Stack size 
+    param->iTestThreadStackSize= 16384; // 16K stack 
+    // Heap sizes 
+    param->iTestThreadMinHeap = 4096; // 4K heap min 
+    param->iTestThreadMaxHeap = 1048576;// 1M heap max 
+
+    return KErrNone;
+    }
+#undef STIFUNIT_SETHEAPANDSTACKSIZE
+#endif
+
+/*
+ * User implementation of OOM virtual methods.
+ * Providing own implementation requires uncommenting defines at the
+ * beginnig of this file.   
+*/
+#ifdef STIFUNIT_OOMTESTQUERYL
+TBool Cut_oodmonitor::OOMTestQueryL( const TFileName& /*aTestCaseFile*/, 
+                                   const TInt aCaseNumber, 
+                                   TOOMFailureType& aFailureType, 
+                                   TInt& aFirstMemFailure, 
+                                   TInt& aLastMemFailure)
+    {
+    }
+#undef STIFUNIT_OOMTESTQUERYL
+#endif
+
+#ifdef STIFUNIT_OOMTESTINITIALIZEL
+void Cut_oodmonitor::OOMTestInitializeL( const TFileName& /*aTestCaseFile*/, 
+                                       const TInt /*aCaseNumber*/ )
+    {
+    }
+#undef STIFUNIT_OOMTESTINITIALIZEL
+#endif
+
+#ifdef STIFUNIT_OOMHANDLEWARNINGL
+void Cut_oodmonitor::OOMHandleWarningL( const TFileName& /*aTestCaseFile*/,
+                                      const TInt /*aCaseNumber*/, 
+                                      TInt& /*aFailNextValue*/)
+    {
+    }
+#undef STIFUNIT_OOMHANDLEWARNINGL
+#endif
+    
+#ifdef STIFUNIT_OOMTESTFINALIZEL
+void Cut_oodmonitor::OOMTestFinalizeL( const TFileName& /*aTestCaseFile*/, 
+                                     const TInt /*aCaseNumber*/ )
+    {
+    }
+#undef STIFUNIT_OOMTESTFINALIZEL
+#endif
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oodmonitor/tsrc/ut_oodmonitor/src/ut_oodmonitorCases.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,373 @@
+/*
+* 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: This file contains STIFUnit implementation.
+*
+*/
+
+/**
+ * STIF_UNIT_INCLUDE SECTION - put all #includes between STIF_UNIT_INCLUDE_SECTION
+ *                             and STIF_UNIT_INCLUDE_SECTION_END
+ */
+#ifdef STIF_UNIT_INCLUDE_SECTION
+#include <driveinfo.h>
+#include <disknotifyhandler.h>
+#include "outofdiskglobalnote.h"
+#include "outofdiskmonitor.h"
+#include "utoutofdiskpsobserver.h"
+#include "outofdisknotifyobserver.h"
+#include "MockShutdownEventObserver.h"
+#endif //STIF_UNIT_INCLUDE_SECTION_END
+
+/**
+ * GLOBAL VARIABLES SECTION
+ */
+#ifdef TEST_VAR_DECLARATIONS
+     CActiveScheduler* scheduler;
+     const TInt64 KWarningThreshold = 2048;
+     const TInt64 KCriticalThreshold = 1024;
+#endif
+/**
+ * END OF GLOBAL VARIABLES SECTION
+ */
+
+
+/**
+ * TEST CASES SECTION
+ */
+#ifdef TEST_CASES
+/**
+ * STIF_SETUP defines activities needed before every test case.
+ */
+STIF_SETUP
+{
+// instance and install, but not started
+scheduler = new (ELeave) CActiveScheduler();
+CleanupStack::PushL(scheduler);
+CActiveScheduler::Install(scheduler);
+}
+
+/**
+ * STIF_TEARDOWN defines activities needed after every test case
+ */
+STIF_TEARDOWN
+{
+CActiveScheduler::Install(NULL);
+CleanupStack::PopAndDestroy(scheduler);
+}
+
+/**
+ * @SYMTestCaseID              GAPS-OODMONITOR-GLOBALNOTE-001
+ * @SYMTestCaseDesc            Unit test for COutOfDiskGlobalNote.
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1. Connect file server.
+ *                             2. Construct a COutOfDiskMonitor object.
+ *                             3. Construct a COutOfDiskGlobalNote object.
+ *                             4. Get note info.
+ *                             5. NoteOnDisplay.
+ *                             6. Display a message.
+ *                             7. MessageBoxClosed.
+ *                             8. Destroy the COutOfDiskGlobalNote object.
+ *                             9. Destroy the mock COutOfDiskMonitor object
+ *                             10. Destroy the RFs object.
+ * @SYMTestExpectedResults     1. File server was connected.
+ *                             2. COutOfDiskMonitor object was constructed.
+ *                             3. COutOfDiskGlobalNote object was constructed.
+ *                             4. NoteInfo was correct.
+ *                             5. Property was defined.
+ *                             6. Message was displayed.
+ *                             7. No error.
+ *                             8. The COutOfDiskGlobalNote object was destroyed.
+ *                             9. The COutOfDiskMonitor object was destroyed.
+ *                             10. The RFs object was closed.
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            23-08-2010
+ */
+STIF_TESTDEFINE(GAPS-OODMONITOR-GLOBALNOTE-001)
+{
+    TestModuleIf().SetBehavior(CTestModuleIf::ETestLeaksHandles);
+    
+    STIF_LOG("1. Connect file server.");
+    RFs fileServer;
+    STIF_ASSERT_EQUALS(KErrNone, fileServer.Connect());
+    CleanupClosePushL(fileServer);
+    
+    STIF_LOG("2. Construct a COutOfDiskMonitor object.");
+    MShutdownEventObserver* shutdownEventObserver = NULL;
+    COutOfDiskMonitor* outOfDiskMonitor = COutOfDiskMonitor::NewL(*shutdownEventObserver);
+    CleanupStack::PushL(outOfDiskMonitor);
+    
+    STIF_LOG("3. Construct a COutOfDiskGlobalNote object.");
+    COutOfDiskGlobalNote* outOfDiskGlobalNote = COutOfDiskGlobalNote::NewL(outOfDiskMonitor, fileServer);
+    CleanupStack::PushL(outOfDiskGlobalNote);
+    
+    STIF_LOG("4. Get note info.");
+    TNoteInfo noteInfo = outOfDiskGlobalNote->GetNoteInfo();
+    STIF_ASSERT_EQUALS(KErrNotFound, noteInfo.iNoteId);
+    STIF_ASSERT_EQUALS(DISK_SPACE_OK, noteInfo.iStatus);
+    STIF_ASSERT_EQUALS(KErrNotFound, noteInfo.iDrive);
+    
+    STIF_LOG("5. NoteOnDisplay.");
+    STIF_ASSERT_FALSE(outOfDiskGlobalNote->NoteOnDisplay());
+    
+    STIF_LOG("6. Display a message.");
+    outOfDiskGlobalNote->DisplayL(_L("Display a message."));
+    
+    STIF_LOG("7. MessageBoxClosed.");
+    outOfDiskGlobalNote->MessageBoxClosed(NULL, CHbDeviceMessageBoxSymbian::EAcceptButton);
+    
+    STIF_LOG("8. Destroy the COutOfDiskGlobalNote object.");
+    CleanupStack::PopAndDestroy(outOfDiskGlobalNote);
+    
+    STIF_LOG("9. Destroy the COutOfDiskMonitor object.");
+    CleanupStack::PopAndDestroy(outOfDiskMonitor);
+    
+    STIF_LOG("10. Destroy the RFs object.");
+    CleanupStack::PopAndDestroy(&fileServer);
+}
+
+/**
+ * @SYMTestCaseID              GAPS-OODMONITOR-PSOBSERVER-001
+ * @SYMTestCaseDesc            Unit test for COutOfDiskPSObserver.
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1. Construct a COutOfDiskMonitor object.
+ *                             2. Construct a COutOfDiskPSObserver object.
+ *                             3. Handle property change. Category is KPSUidUikon, and Key is KUikGlobalNotesAllowed.
+ *                             4. Handle property change. Category is KPSUidCoreApplicationUIs, and Key is KCoreAppUIsAutolockStatus.
+ *                             5. Destroy the COutOfDiskPSObserver object.
+ *                             6. Destroy the COutOfDiskMonitor object
+ * @SYMTestExpectedResults     1. Mock COutOfDiskMonitor object was constructed.
+ *                             2. COutOfDiskPSObserver object was constructed.
+ *                             3. Property change was handled successfully.
+ *                             4. Property change was handled successfully.
+ *                             5. The COutOfDiskPSObserver object was destroyed.
+ *                             6. The COutOfDiskMonitor object was destroyed.
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            23-08-2010
+ */
+STIF_TESTDEFINE(GAPS-OODMONITOR-PSOBSERVER-001)
+{    
+    STIF_LOG("1. Construct a COutOfDiskMonitor object.");
+    MShutdownEventObserver* shutdownEventObserver = NULL;
+    COutOfDiskMonitor* outOfDiskMonitor = COutOfDiskMonitor::NewL(*shutdownEventObserver);
+    CleanupStack::PushL(outOfDiskMonitor);
+    
+    STIF_LOG("2. Construct a COutOfDiskPSObserver object.");
+    CUTOutOfDiskPSObserver* outOfDiskPSObserver = CUTOutOfDiskPSObserver::NewL(outOfDiskMonitor);
+    CleanupStack::PushL(outOfDiskPSObserver);
+    
+    STIF_LOG("3. Handle property change. Category is KPSUidUikon, and Key is KUikGlobalNotesAllowed.");
+    outOfDiskPSObserver->HandlePropertyChangedL(KPSUidUikon, KUikGlobalNotesAllowed);
+    
+    STIF_LOG("4. Handle property change. Category is KPSUidCoreApplicationUIs, and Key is KCoreAppUIsAutolockStatus.");
+    outOfDiskPSObserver->HandlePropertyChangedL(KPSUidCoreApplicationUIs, KCoreAppUIsAutolockStatus);
+    
+    STIF_LOG("5. Destroy the COutOfDiskPSObserver object.");
+    CleanupStack::PopAndDestroy(outOfDiskPSObserver);
+    
+    STIF_LOG("6. Destroy the COutOfDiskMonitor object.");
+    CleanupStack::PopAndDestroy(outOfDiskMonitor);
+}
+
+/**
+ * @SYMTestCaseID              GAPS-OODMONITOR-OUTOFDISKMONITOR-001
+ * @SYMTestCaseDesc            Unit test for COutOfDiskMonitor.
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1. Construct a COutOfDiskMonitor object.
+ *                             2. ShowGlobalQueryIfNeededL.
+ *                             3. Get C Drive Status.
+ *                             4. SetAsDisplayedL.
+ *                             5. SetGlobalNotesAllowed to ETrue.
+ *                             6. GetGlobalNotesAllowed.
+ *                             7. SetGlobalNotesAllowed to EFalse.
+ *                             8. GetGlobalNotesAllowed.
+ *                             9. GetDefaultPhoneMemory.
+ *                             10. GetDefaultMassStorage.
+ *                             11. GetDefaultRomDrive.
+ *                             12. Destroy the COutOfDiskMonitor object.
+ * @SYMTestExpectedResults     1. The COutOfDiskMonitor object was constructed.
+ *                             2. No error.
+ *                             3. DISK_SPACE_OK was returned.
+ *                             4. Set successfully.
+ *                             5. Set successfully.
+ *                             6. The value set by step5 was returned.
+ *                             7. Set successfully.
+ *                             8. The value set by step7 was returned.
+ *                             9. DefaultPhoneMemory was correctly gotten.
+ *                             10. DefaultMassStorage was correctly gotten.
+ *                             11. DefaultRomDrive was correctly gotten.
+ *                             12. The COutOfDiskMonitor object was destroyed.
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            23-08-2010
+ */
+STIF_TESTDEFINE(GAPS-OODMONITOR-OUTOFDISKMONITOR-001)
+{  
+    STIF_LOG("1. Construct a COutOfDiskMonitor object.");
+    MShutdownEventObserver* shutdownEventObserver = NULL;
+    COutOfDiskMonitor* outOfDiskMonitor = COutOfDiskMonitor::NewL(*shutdownEventObserver);
+    CleanupStack::PushL(outOfDiskMonitor);
+
+    STIF_LOG("2. ShowGlobalQueryIfNeededL.");
+    outOfDiskMonitor->ShowGlobalQueryIfNeededL();
+    
+    STIF_LOG("3. Get C Drive Status.");
+    STIF_ASSERT_EQUALS(DISK_SPACE_OK, outOfDiskMonitor->GetDriveStatus(EDriveC));
+    
+    // GetThreshold is called by GetDriveStatis.
+    // SaveDriveStatus is called by ConstructL.
+    // ResetDisplayedStatus is called by SaveDriveStatus.
+    // AllowedToReset is called by RestDisplayedStatus.
+    // GetTopPriorityDrive is called by ShowGlobalQueryIfNeededL.
+    
+    STIF_LOG("4. SetAsDisplayedL.");
+    outOfDiskMonitor->SetAsDisplayedL(EDriveC, DISK_SPACE_OK);
+    
+    STIF_LOG("5. SetGlobalNotesAllowed to ETrue.");
+    outOfDiskMonitor->SetGlobalNotesAllowed(ETrue);
+    
+    STIF_LOG("6. GetGlobalNotesAllowed.");
+    STIF_ASSERT_TRUE(outOfDiskMonitor->GetGlobalNotesAllowed());
+    
+    STIF_LOG("7. SetGlobalNotesAllowed to EFalse.");
+    outOfDiskMonitor->SetGlobalNotesAllowed(EFalse);
+    
+    STIF_LOG("8. GetGlobalNotesAllowed.");
+    STIF_ASSERT_FALSE(outOfDiskMonitor->GetGlobalNotesAllowed());
+    
+    STIF_LOG("9. GetDefaultPhoneMemory.");
+    TInt defaultPhoneMemory = 0;
+    DriveInfo::GetDefaultDrive( DriveInfo::EDefaultPhoneMemory, defaultPhoneMemory );
+    STIF_ASSERT_EQUALS(defaultPhoneMemory, outOfDiskMonitor->GetDefaultPhoneMemory());
+    
+    STIF_LOG("10. GetDefaultMassStorage.");
+    TInt defaultMassStorage = 0;
+    DriveInfo::GetDefaultDrive( DriveInfo::EDefaultMassStorage, defaultMassStorage );
+    STIF_ASSERT_EQUALS(defaultMassStorage, outOfDiskMonitor->GetDefaultMassStorage());
+    
+    STIF_LOG("11. GetDefaultRomDrive.");
+    // Actually COutOfDiskMonitor doesn't set iDefaultRomDrive, so that I don't need to check the result.
+    TInt defaultRomDrive = outOfDiskMonitor->GetDefaultRomDrive();
+    
+    STIF_LOG("12. Destroy the COutOfDiskMonitor object.");
+    CleanupStack::PopAndDestroy(outOfDiskMonitor);
+}
+
+/**
+ * @SYMTestCaseID              GAPS-OOD-LAFSHUT-001
+ * @SYMTestCaseDesc            Unit test for lafshut.cpp
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1. Create ShutdownEventObserver object.
+ *                             2. Create CLafShutdownManagerBase object.
+ *                             3. Call SaveFromViewSwitch();
+ *                             4. Call SaveFromAppSwitch();
+ *                             5. Delete CLafShutdownManagerBase object.
+ * @SYMTestExpectedResults     1. ShutdownEventObserver object is created.
+ *                             2. CLafShutdownManagerBase object is create successfully.
+ *                             3. SaveFromViewSwitch() return expected value.
+ *                             4. SaveFromAppSwitch(); return expected value.
+ *                             5. CLafShutdownManagerBase object is deleted.
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            03-09-2010
+ */
+STIF_TESTDEFINE(GAPS-OOD-LAFSHUT-001)
+{
+    STIF_LOG("1. Create ShutdownEventObserver object.");       
+    TshutdownEventObserver shutdownEventObserver;   
+    
+    STIF_LOG("2. Create CLafShutdownManagerBase object.");
+    CLafShutdownManagerBase* shutdownManager = LafShutdown::CreateShutdownManager(shutdownEventObserver);
+    STIF_ASSERT_NOT_NULL(shutdownManager);
+    
+    STIF_LOG("3. Call SaveFromViewSwitch();");
+    MSaveObserver::TSaveType type = LafShutdown::SaveFromViewSwitch();
+    STIF_ASSERT_EQUALS(MSaveObserver::ESaveNone, type);
+ 
+    STIF_LOG("4. Call SaveFromAppSwitch();");
+    type = LafShutdown::SaveFromAppSwitch();
+    STIF_ASSERT_EQUALS(MSaveObserver::ESaveNone, type);
+    
+    STIF_LOG("5. Delete CLafShutdownManagerBase object.");
+    delete shutdownManager;
+}
+
+/**
+ * @SYMTestCaseID              GAPS-OODMONITOR-OUTOFDISKNOTIFYOBSERVER-001
+ * @SYMTestCaseDesc            Unit test for COutOfDiskNotifyObserver.
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1. Construct a COutOfDiskMonitor object.
+ *                             2. COutOfDiskNotifyObserver::NotifyDiskSpace
+ *                             3. COutOfDiskNotifyObserver::HandleNotifyDisk.
+ *                             4. COutOfDiskNotifyObserver::HandleNotifyDismount
+ *                             5. COutOfDiskNotifyObserver::HandleNotifyDiskSpace
+ *                             6. COutOfDiskNotifyObserver::HandleNotifyEntry
+ *                             7. Destroy the COutOfDiskMonitor object.
+ * @SYMTestExpectedResults     1. The COutOfDiskMonitor object was constructed.
+ *                             2. Function returned successfully.
+ *                             3. Function returned successfully.
+ *                             4. Function returned successfully.
+ *                             5. Function returned successfully.
+ *                             6. Function returned successfully.
+ *                             7. The COutOfDiskMonitor object was destroyed.
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            09-09-2010
+ */
+STIF_TESTDEFINE(GAPS-OODMONITOR-OUTOFDISKNOTIFYOBSERVER-001)
+{
+    STIF_LOG("1. Construct a COutOfDiskMonitor object.");
+    MShutdownEventObserver* shutdownEventObserver = NULL;
+    COutOfDiskMonitor* outOfDiskMonitor = COutOfDiskMonitor::NewL(*shutdownEventObserver);
+    CleanupStack::PushL(outOfDiskMonitor);
+    
+    STIF_LOG("2. NotifyDiskSpace");
+    outOfDiskMonitor->iOutOfDiskNotifyObserver->NotifyDiskSpace(KWarningThreshold, KCriticalThreshold, EDriveF);
+    
+    STIF_LOG("3. HandleNotifyDisk");
+    MDiskNotifyHandlerCallback::TDiskEvent diskEvent;
+    diskEvent.iDrive = EDriveF;
+    
+    diskEvent.iType = MDiskNotifyHandlerCallback::EDiskAdded;
+    outOfDiskMonitor->iOutOfDiskNotifyObserver->HandleNotifyDisk(KErrNone, diskEvent);
+    
+    diskEvent.iType = MDiskNotifyHandlerCallback::EDiskError;
+    outOfDiskMonitor->iOutOfDiskNotifyObserver->HandleNotifyDisk(KErrNone, diskEvent);
+    
+    diskEvent.iType = MDiskNotifyHandlerCallback::EDiskRemoved;
+    outOfDiskMonitor->iOutOfDiskNotifyObserver->HandleNotifyDisk(KErrNone, diskEvent);
+    
+    diskEvent.iType = MDiskNotifyHandlerCallback::EDiskStatusChanged;
+    outOfDiskMonitor->iOutOfDiskNotifyObserver->HandleNotifyDisk(KErrNone, diskEvent);
+    
+    STIF_LOG("4. HandleNotifyDismount");
+    MDiskNotifyHandlerCallback::TDismountEvent dismountEvent;
+    dismountEvent.iDrive = EDriveF;
+    outOfDiskMonitor->iOutOfDiskNotifyObserver->HandleNotifyDismount(KErrNone, dismountEvent);
+    
+    STIF_LOG("5. HandleNotifyDiskSpace");
+    MDiskNotifyHandlerCallback::TDiskSpaceEvent diskSpaceEvent;
+    diskSpaceEvent.iDrive = EDriveF;
+    outOfDiskMonitor->iOutOfDiskNotifyObserver->HandleNotifyDiskSpace(KErrNone, diskSpaceEvent);
+    
+    STIF_LOG("6. HandleNotifyEntry");
+    MDiskNotifyHandlerCallback::TEntryEvent entryEvent;
+    outOfDiskMonitor->iOutOfDiskNotifyObserver->HandleNotifyEntry(KErrNone, entryEvent);
+    
+    STIF_LOG("7. Destroy the COutOfDiskMonitor object.");
+    CleanupStack::PopAndDestroy(outOfDiskMonitor);
+}
+
+#endif
+/**
+ * END OF TEST CASES SECTION
+ */
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oodmonitor/tsrc/ut_oodmonitor/src/utoutofdiskpsobserver.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,42 @@
+/*
+* 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: COutOfDiskPSObserver contains a protected function and some private functions which can't be directly accessed 
+* by test code, so that this derived class is used to public those functions.
+*
+*/
+
+// USER INCLUDES
+#include "utoutofdiskpsobserver.h"
+#include "outofdiskmonitor.h"
+
+// ============================ MEMBER FUNCTIONS ==============================
+
+// ----------------------------------------------------------------------------
+// CSysApPubSubObserver::NewL() 
+// ----------------------------------------------------------------------------
+CUTOutOfDiskPSObserver* CUTOutOfDiskPSObserver::NewL( COutOfDiskMonitor* aOutOfDiskMonitor )
+    {
+    return static_cast<CUTOutOfDiskPSObserver*> (COutOfDiskPSObserver::NewL(aOutOfDiskMonitor));
+    }
+
+
+// ----------------------------------------------------------------------------
+// CSysApPubSubObserver::HandlePropertyChangedL()
+// ----------------------------------------------------------------------------
+void CUTOutOfDiskPSObserver::HandlePropertyChangedL( const TUid& aCategory, const TUint aKey )
+    {
+    COutOfDiskPSObserver::HandlePropertyChangedL(aCategory, aKey);
+    }
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oodmonitor/tsrc/ut_oodmonitorv1/Bmarm/ut_oodmonitorU.DEF	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,4 @@
+EXPORTS
+	LibEntryL__Fv @ 1 NONAME R3UNUSED ; LibEntryL(void)
+	SetRequirements__FRP16CTestModuleParamRUl @ 2 NONAME R3UNUSED ; SetRequirements(CTestModuleParam *&, unsigned long &)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oodmonitor/tsrc/ut_oodmonitorv1/Bwins/ut_oodmonitoru.def	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,4 @@
+EXPORTS
+	?LibEntryL@@YAPAVCTestModuleBase@@XZ @ 1 NONAME ; class CTestModuleBase * __cdecl LibEntryL(void)
+	?SetRequirements@@YAHAAPAVCTestModuleParam@@AAK@Z @ 2 NONAME ; int __cdecl SetRequirements(class CTestModuleParam * &,unsigned long &)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oodmonitor/tsrc/ut_oodmonitorv1/eabi/ut_oodmonitoru.def	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,13 @@
+EXPORTS
+	_Z9LibEntryLv @ 1 NONAME
+	_Z15SetRequirementsRP16CTestModuleParamRm @ 2 NONAME
+	_ZN11LafShutdown17SaveFromAppSwitchEv @ 3 NONAME
+	_ZN11LafShutdown18SaveFromViewSwitchEv @ 4 NONAME
+	_ZN11LafShutdown21CreateShutdownManagerER22MShutdownEventObserver @ 5 NONAME
+	_ZTI20Cut_OODMonitor_Timer @ 6 NONAME
+	_ZTI21ShutdownEventObserver @ 7 NONAME
+	_ZTI22Tut_LafShutdownManager @ 8 NONAME
+	_ZTV20Cut_OODMonitor_Timer @ 9 NONAME
+	_ZTV21ShutdownEventObserver @ 10 NONAME
+	_ZTV22Tut_LafShutdownManager @ 11 NONAME
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oodmonitor/tsrc/ut_oodmonitorv1/group/bld.inf	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,36 @@
+/*
+* 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:
+*
+*/
+
+PRJ_PLATFORMS
+
+	DEFAULT
+
+PRJ_TESTEXPORTS
+
+
+PRJ_EXPORTS
+
+
+PRJ_TESTMMPFILES
+
+
+PRJ_MMPFILES
+
+	ut_oodmonitorv1.mmp
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oodmonitor/tsrc/ut_oodmonitorv1/group/ut_oodmonitor.pkg	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,60 @@
+;
+; 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:
+;
+; 	Installation file for STIF
+;
+
+; Languages
+&EN
+
+; Provide value for uid
+#{"STIF"},(0x00000000),1,1,0,TYPE=SA
+
+; Series60 product id for S60 3.0
+[0x101F7961], 0, 0, 0, {"Series60ProductID"}
+
+; Localised Vendor name
+%{"Nokia"}
+
+; Unique Vendor name
+:"Nokia"
+
+; Logo
+; None
+
+; Package signature - Optional
+; None
+
+; Start of Package body
+
+; Condition blocks
+; None
+
+; Options list
+; None
+
+; Install files
+"\epoc32\release\armv5\udeb\ut_oodmonitorv1.dll"   -   "!:\Sys\Bin\ut_oodmonitorv1.dll"
+  
+; Embedded SIS 
+; None
+
+; End of Package body
+
+; PKG dependencies
+; None
+
+; PKG capabilities
+; None
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oodmonitor/tsrc/ut_oodmonitorv1/group/ut_oodmonitorv1.mmp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,61 @@
+/*TYPE STIFUNIT*/
+/*
+* 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: MMP file for STIF Test Framework's STIFUnit test 
+* module.
+*
+*/
+
+#include <platform_paths.hrh>
+
+macro FCC_UNIT_TEST
+#define FCC_UNIT_TEST
+
+SMPSAFE
+
+TARGET          ut_oodmonitorv1.dll
+TARGETTYPE      dll
+UID             0x1000008D 0x200338CE
+
+CAPABILITY      ALL -TCB
+
+DEFFILE         ut_oodmonitor.def
+
+USERINCLUDE     ../inc 
+USERINCLUDE     ../../../inc 
+
+MW_LAYER_SYSTEMINCLUDE
+SYSTEMINCLUDE   /epoc32/include/mw/hb/hbwidgets
+SYSTEMINCLUDE   /epoc32/include/platform/mw/uiklaf/private
+
+SOURCEPATH      ../src
+SOURCE          ut_oodmonitor.cpp
+SOURCE          ut_oodmonitorCases.cpp 
+SOURCE          ut_lafshutdownmanager.cpp 
+SOURCE          mockshutdowneventobserver.cpp 
+SOURCE          ut_oodmonitor_timer.cpp
+
+SOURCEPATH      ../../../src
+SOURCE          lafshut.cpp
+
+LIBRARY         euser.lib
+LIBRARY         stiftestinterface.lib
+LIBRARY         efsrv.lib
+LIBRARY         bafl.lib
+LIBRARY         ws32.lib
+LIBRARY		    HbWidgets.lib
+
+LANG            SC
+
+
Binary file sysresmonitoring/oodmonitor/tsrc/ut_oodmonitorv1/group/v1CTCHTML.rar has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oodmonitor/tsrc/ut_oodmonitorv1/inc/mockshutdowneventobserver.h	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,35 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+* 
+* Description:
+*
+*/
+
+#ifndef MOCKSHUTDOWNEVENTOBSERVER_H_
+#define MOCKSHUTDOWNEVENTOBSERVER_H_
+
+#include <shutdownsrv.h>
+
+class ShutdownEventObserver : public MShutdownEventObserver
+    {
+public:
+    ShutdownEventObserver();
+    virtual ~ShutdownEventObserver();
+    virtual void HandleShutdownEventL(MSaveObserver::TSaveType aAction,TBool aPowerOff, 
+            TPowerState aEvent = EPwStandby);
+    virtual CArrayFix<TThreadId>* ClientArrayLC();
+    virtual TBool IsClientHung(TThreadId aId) const;
+    virtual void GetShutdownState(TBool& aPowerOff, TBool& aAllSessionsHavePendingRequest) const;
+    };
+
+#endif /* MOCKSHUTDOWNEVENTOBSERVER_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oodmonitor/tsrc/ut_oodmonitorv1/inc/ut_lafshutdownmanager.h	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,75 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+* 
+* Description:
+*
+*/
+
+#ifndef UT_LAFSHUTDOWNMANAGER_H_
+#define UT_LAFSHUTDOWNMANAGER_H_
+
+#include <e32property.h>
+#include "ood.h"
+
+enum TDiskLevel
+    {
+    EWarning,
+    ECritical
+    };
+
+class Tut_LafShutdownManager
+    {
+public:
+    Tut_LafShutdownManager();
+    virtual ~Tut_LafShutdownManager();
+    
+    RProperty GetDiskStatusProperty(CLafShutdownManager* aShutdownManager);
+    RProperty GetMMCStatusProperty(CLafShutdownManager* aShutdownManager);
+    RProperty GetCanDisplayNotesProperty(CLafShutdownManager* aShutdownManager);
+    RProperty GetAutolockStatusProperty(CLafShutdownManager* aShutdownManager);
+    RProperty GetEnableMMCWatchProperty(CLafShutdownManager* aShutdownManager);
+
+    CBase* GetDisplayNotesSubscriber(CLafShutdownManager* aShutdownManager);
+    CBase* GetAutolockStatusSubscriber(CLafShutdownManager* aShutdownManager);
+    CBase* GetMMCWatchSubscriber(CLafShutdownManager* aShutdownManager);
+    
+    CLafShutdownManager::CGlobalQueryActive*  GetGlobalQueryActive(CLafShutdownManager* aShutdownManager);
+    CActive* GetOODWarningWatcher(CLafShutdownManager* aShutdownManager);
+    CActive* GetOODCriticalWatcher(CLafShutdownManager* aShutdownManager);
+    
+    TInt GetOODWarningThreshold(CLafShutdownManager* aShutdownManager);
+    TInt GetOODCriticalThreshold(CLafShutdownManager* aShutdownManager);
+    
+    void CallReportEventL(CLafShutdownManager* aShutdownManager, 
+            MSaveObserver::TSaveType aAction,TBool aPowerOff);
+    void CallGetShutdownState(CLafShutdownManager* aShutdownManager, 
+            TBool& aPowerOff, TBool& aAllSessionsHavePendingRequest);
+    TInt CallGetDiskStatusL(CLafShutdownManager* aShutdownManager,
+            TVolumeInfo& aVolInfo,TDriveNumber aDrive);
+    
+    void CreateFileL(const TDesC &aFileName, TInt aSize);
+    void DeleteFileL(const TDesC &aFileName);
+    void FreeDiskL(CDesCArrayFlat* aDescArray);
+    void EatDiskL(CDesCArrayFlat* aDescArray, TDriveNumber aDriver, TDiskLevel aLevel);
+    void GetDiskInfoL(TVolumeInfo& aVolInfo, TDriveNumber aDrive);
+    
+    void CallFreeDiskThresholdCrossedL(CLafShutdownManager* aShutdownManager, TDriveNumber aDrive, TBool aIsCallBack, TBool aForcedNote);
+    CLafShutdownManager::CGlobalQueryActive::CMessageInfo* GetMessageInfoList(CLafShutdownManager::CGlobalQueryActive* aGlobalQueryActive,
+            TInt aIndex);
+    CLafShutdownManager::CGlobalQueryActive::TMessageType 
+            GetMessageType(CLafShutdownManager::CGlobalQueryActive* aGlobalQueryActive);
+    };
+
+#endif /* UT_LAFSHUTDOWNMANAGER_H_ */
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oodmonitor/tsrc/ut_oodmonitorv1/inc/ut_oodmonitor_const.h	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,47 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+* 
+* Description:
+*
+*/
+
+#ifndef UT_OODMONITOR_CONST_H_
+#define UT_OODMONITOR_CONST_H_
+
+#include <e32base.h>
+
+const TInt KTwoSecondInMicro = 2000000;
+
+const TUid KUTSysApPropertyCategory = {0x10000000};
+const TUint32 KHandleShutdownEventKey = 9000;
+const TUint32 KGetShutdownStateKey = 9001;
+
+const TInt KHandleShutdownEventValue0 = 1000;
+const TInt KHandleShutdownEventValue1 = 99;
+const TInt KGetShutdownStateValue0 = 66;
+const TInt KGetShutdownStateValue1 = 1;
+
+_LIT_SECURITY_POLICY_PASS(KAllowAllPolicy);
+
+const TInt KMaxFileSize = 0x1000000;   
+const TInt KOverlaySize = 1000;
+const TInt KMaxFileNameLength = 256;
+
+const TInt KArraySize = 10;
+
+_LIT(KTextFileName, "\\testframework\\oodtest");
+_LIT(KDriverC, "c:");
+_LIT(KDriverE, "e:");
+_LIT(KDriverF, "f:");
+
+#endif  //UT_OODMONITOR_CONST_H_
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oodmonitor/tsrc/ut_oodmonitorv1/inc/ut_oodmonitor_timer.h	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,71 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+* 
+* Description:
+*
+*/
+
+#ifndef UT_OODMONITOR_TIMER_H_
+#define UT_OODMONITOR_TIMER_H_
+
+#include <e32base.h>
+
+#include "ut_lafshutdownmanager.h"
+
+enum TPhase
+    {
+    EPhase1, //=0
+    EPhase2,
+    EPhase3,
+    EPhase4,
+    EPhase5,
+    EPhase6,
+    EPhase7,
+    EPhase8,
+    EPhase9,
+    EPhase10,
+    EPhase11
+    };
+
+enum TTestCase
+    {
+    EMMCTest, //=0
+    EDisplayNotes,
+    EAutolock,
+    EOODWatcher
+    };
+
+class Cut_OODMonitor_Timer : public CTimer
+    {
+public:
+    static Cut_OODMonitor_Timer* NewLC(CLafShutdownManager* aShutdownManager, Tut_LafShutdownManager& aFriendLafShutdownManager, TTestCase aTestCase);  
+    static Cut_OODMonitor_Timer* NewL(CLafShutdownManager* aShutdownManager, Tut_LafShutdownManager& aFriendLafShutdownManager, TTestCase aTestCase);     
+    virtual ~Cut_OODMonitor_Timer();
+
+private:   
+    Cut_OODMonitor_Timer(CLafShutdownManager* aShutdownManager, Tut_LafShutdownManager& aFriendLafShutdownManager, TTestCase aTestCase);
+    void ConstructL();  
+    virtual void RunL(); 
+    void ChangeMMCStatus();
+    void ChangeDisplayNotes();
+    void ChangeAutoLockStatus();
+   
+private:
+    Tut_LafShutdownManager& iFriendLafShutdownManager;
+    CLafShutdownManager* iShutdownManager;
+    TTestCase iTestCase;
+    TPhase iPhase;
+    CDesCArrayFlat* iFileNameArray;
+    };
+
+#endif /* UT_OODMONITOR_TIMER_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oodmonitor/tsrc/ut_oodmonitorv1/src/mockshutdowneventobserver.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,62 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+* 
+* Description:
+*
+*/
+
+#include <e32debug.h>
+#include <e32property.h>
+
+#include "mockshutdowneventobserver.h"
+#include "ut_oodmonitor_const.h"
+
+ShutdownEventObserver::ShutdownEventObserver()
+    {
+
+    }
+
+ShutdownEventObserver::~ShutdownEventObserver()
+    {
+
+    }
+
+void ShutdownEventObserver::HandleShutdownEventL(MSaveObserver::TSaveType aAction,TBool aPowerOff, TPowerState aEvent)
+    {
+    if((MSaveObserver::ESaveData == aAction) && aPowerOff)
+        {
+        TInt err;
+        err=RProperty::Set(KUTSysApPropertyCategory, KHandleShutdownEventKey, KHandleShutdownEventValue1);
+        RDebug::Print(_L("CLafShutdownManager:: err=%d"),err);
+        }
+    }
+
+CArrayFix<TThreadId>* ShutdownEventObserver::ClientArrayLC()
+    {
+    return (CArrayFix<TThreadId>*)NULL;
+    }
+
+TBool ShutdownEventObserver::IsClientHung(TThreadId aId) const
+    {
+    return ETrue;
+    }
+
+void ShutdownEventObserver::GetShutdownState(TBool& aPowerOff, TBool& aAllSessionsHavePendingRequest) const
+    {
+    if(aAllSessionsHavePendingRequest && aPowerOff)
+        {
+        TInt err;
+        err=RProperty::Set(KUTSysApPropertyCategory, KGetShutdownStateKey, KGetShutdownStateValue1);
+        RDebug::Print(_L("CLafShutdownManager:: err=%d"),err);
+        }
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oodmonitor/tsrc/ut_oodmonitorv1/src/ut_lafshutdownmanager.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,280 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+* 
+* Description:
+*
+*/
+
+#include <barsc.h>
+#include <barsread.h>
+#include <e32debug.h>
+#include <e32property.h>
+#include <f32file.h>
+#include <lafshut.h>
+#include <systemwarninglevels.hrh>
+#include <w32std.h>
+
+#include "ut_lafshutdownmanager.h"
+#include "ut_oodmonitor_const.h"
+#include "ood.h"
+
+Tut_LafShutdownManager::Tut_LafShutdownManager()
+    {
+
+    }
+
+Tut_LafShutdownManager::~Tut_LafShutdownManager()
+    {
+
+    }
+
+RProperty Tut_LafShutdownManager::GetDiskStatusProperty(CLafShutdownManager* aShutdownManager)
+    {
+    return aShutdownManager->iDiskStatusProperty;
+    }
+
+RProperty Tut_LafShutdownManager::GetMMCStatusProperty(CLafShutdownManager* aShutdownManager)
+    {
+    return aShutdownManager->iMMCStatusProperty;
+    }
+
+RProperty Tut_LafShutdownManager::GetCanDisplayNotesProperty(CLafShutdownManager* aShutdownManager)
+    {
+    return aShutdownManager->iCanDisplayNotesProperty;
+    }
+
+RProperty Tut_LafShutdownManager::GetAutolockStatusProperty(CLafShutdownManager* aShutdownManager)
+    {
+    return aShutdownManager->iAutolockStatusProperty;
+    }
+
+RProperty Tut_LafShutdownManager::GetEnableMMCWatchProperty(CLafShutdownManager* aShutdownManager)
+    {
+    return aShutdownManager->iEnableMMCWatchProperty;
+    }
+
+CBase* Tut_LafShutdownManager::GetDisplayNotesSubscriber(CLafShutdownManager* aShutdownManager)
+    {
+    return aShutdownManager->iDisplayNotesSubscriber;
+    }
+
+CBase* Tut_LafShutdownManager::GetAutolockStatusSubscriber(CLafShutdownManager* aShutdownManager)
+    {
+    return aShutdownManager->iAutolockStatusSubscriber;
+    }
+
+CBase* Tut_LafShutdownManager::GetMMCWatchSubscriber(CLafShutdownManager* aShutdownManager)
+    {
+    return aShutdownManager->iMMCWatchSubscriber;
+    }
+
+TInt Tut_LafShutdownManager::GetOODWarningThreshold(CLafShutdownManager* aShutdownManager)
+    {
+    return aShutdownManager->iOODWarningThreshold;
+    }
+
+TInt Tut_LafShutdownManager::GetOODCriticalThreshold(CLafShutdownManager* aShutdownManager)
+    {
+    return aShutdownManager->iOODCriticalThreshold;
+    }
+
+CLafShutdownManager::CGlobalQueryActive*  Tut_LafShutdownManager::GetGlobalQueryActive(CLafShutdownManager* aShutdownManager)
+    {
+    return aShutdownManager->iGlobalQueryActive;
+    }
+
+CActive* Tut_LafShutdownManager::GetOODWarningWatcher(CLafShutdownManager* aShutdownManager)
+    {
+    RDebug::Print(_L("Tut_LafShutdownManager::iOODWarningWatcher=%d"), aShutdownManager->iOOMMCWarningWatcher);
+    return aShutdownManager->iOODWarningWatcher;
+    }
+
+CActive* Tut_LafShutdownManager::GetOODCriticalWatcher(CLafShutdownManager* aShutdownManager)
+    {
+    RDebug::Print(_L("Tut_LafShutdownManager::iOODCriticalWatcher=%d"), aShutdownManager->iOOMMCCriticalWatcher);
+    return aShutdownManager->iOODCriticalWatcher;
+    }
+
+void Tut_LafShutdownManager::CallReportEventL(CLafShutdownManager* aShutdownManager, 
+        MSaveObserver::TSaveType aAction,TBool aPowerOff)
+    {
+    aShutdownManager->ReportEventL(aAction, aPowerOff);
+    }
+
+void Tut_LafShutdownManager::CallGetShutdownState(CLafShutdownManager* aShutdownManager, 
+        TBool& aPowerOff, TBool& aAllSessionsHavePendingRequest)
+    {
+    aShutdownManager->GetShutdownState(aPowerOff, aAllSessionsHavePendingRequest);
+    }
+
+TInt Tut_LafShutdownManager::CallGetDiskStatusL(CLafShutdownManager* aShutdownManager, 
+        TVolumeInfo& aVolInfo,TDriveNumber aDrive)
+    {
+    return aShutdownManager->GetDiskStatusL(aVolInfo, aDrive);
+    }
+
+void Tut_LafShutdownManager::CreateFileL(const TDesC &aFileName, TInt aSize)
+    {   
+    RDebug::Print(_L("CLafShutdownManager:: create filename = %S "), &aFileName);
+    RDebug::Print(_L("CLafShutdownManager:: size = %d "), aSize);
+    RFs fs;
+        
+    User::LeaveIfError(fs.Connect());
+    CleanupClosePushL(fs);  
+    
+    RFile file;
+    CleanupClosePushL(file);     
+    User::LeaveIfError(file.Replace(fs, aFileName, EFileWrite));
+    User::LeaveIfError(file.SetSize(aSize));
+            
+    CleanupStack::PopAndDestroy(2); 
+    RDebug::Print(_L("CLafShutdownManager:: CreateFileL end")); 
+    }
+
+void Tut_LafShutdownManager::DeleteFileL(const TDesC &aFileName)
+    {   
+    RDebug::Print(_L("CLafShutdownManager:: delete filename = %S "), &aFileName);
+    RFs fs;       
+    User::LeaveIfError(fs.Connect());    
+    CleanupClosePushL(fs);     
+    User::LeaveIfError(fs.Delete(aFileName));
+    CleanupStack::PopAndDestroy(); 
+    RDebug::Print(_L("CLafShutdownManager:: DeleteFileL end"));
+    }
+
+void Tut_LafShutdownManager::GetDiskInfoL(TVolumeInfo& aVolInfo, TDriveNumber aDrive)
+    {
+    RDebug::Print(_L("CLafShutdownManager::GetDiskInfoL"));
+    RFs fs;       
+    User::LeaveIfError(fs.Connect());    
+    CleanupClosePushL(fs);  
+
+    User::LeaveIfError(fs.Volume(aVolInfo,aDrive));
+    
+    CleanupStack::PopAndDestroy(); 
+    }
+
+void Tut_LafShutdownManager::EatDiskL(CDesCArrayFlat* aDescArray, TDriveNumber aDriver, TDiskLevel aLevel )
+    {
+    RDebug::Print(_L("CLafShutdownManager::EatDiskL"));
+    TVolumeInfo volInfo;
+    TInt err;
+    TInt threshod;
+    
+    if(EWarning == aLevel)
+        {
+        threshod = KDRIVECWARNINGTHRESHOLD;
+        }
+    else if (ECritical == aLevel)
+        {
+        threshod = KDRIVECCRITICALTHRESHOLD;
+        }
+    else
+        {
+        threshod =0;
+        }
+    
+    TRAP(err,GetDiskInfoL(volInfo, aDriver));
+    
+    if (KErrNone == err)
+        {
+        TInt leftFileSize;
+        TInt64 freeSpace = volInfo.iFree;
+        RDebug::Print(_L("CLafShutdownManager:: free disk size = %ld"),freeSpace);
+        RDebug::Print(_L("CLafShutdownManager:: threshod = %d"),threshod);
+        
+        if((freeSpace + KOverlaySize) > threshod)
+            {
+            TInt fileNum = (freeSpace - threshod + KOverlaySize) / KMaxFileSize;
+            leftFileSize = freeSpace + KOverlaySize - fileNum*KMaxFileSize - threshod;
+            RDebug::Print(_L("CLafShutdownManager:: fileNume = %d"),fileNum);
+            RDebug::Print(_L("CLafShutdownManager:: leftFileSize = %d"),leftFileSize);
+            
+            TBuf<KMaxFileNameLength> drivers;
+            
+            if(EDriveE == aDriver)
+                {
+                TBuf<KMaxFileNameLength> driver(KDriverE);
+                drivers.Append(driver);
+                }
+            else if(EDriveF == aDriver)
+                {
+                TBuf<KMaxFileNameLength> driver(KDriverF);
+                drivers.Append(driver);
+                }
+            else
+                {
+                TBuf<KMaxFileNameLength> driver(KDriverC);
+                drivers.Append(driver);
+                }
+            TBuf<KMaxFileNameLength> fileName(KTextFileName);
+            TBuf<KMaxFileNameLength> path;
+            path.Append(drivers);
+            path.Append(fileName);
+            TRAP(err, CreateFileL(path, leftFileSize));
+            if(KErrNone == err)
+                {
+                aDescArray->AppendL(path);            
+                }
+            
+            for(TInt i = 1; i<=fileNum; i++)
+                {
+                TBuf <KMaxFileNameLength> fileNo;
+                fileNo.Num(i);
+    
+                TBuf<KMaxFileNameLength> newPath;
+                newPath.Append(drivers);
+                newPath.Append(fileName);
+                newPath.Append(fileNo);
+                
+                TRAP(err, CreateFileL(newPath, KMaxFileSize));
+                if(KErrNone == err)
+                    {
+                    aDescArray->AppendL(newPath);            
+                    }
+                }
+            }
+        }
+    }
+
+void Tut_LafShutdownManager::FreeDiskL(CDesCArrayFlat* aDescArray)
+    {
+    RDebug::Print(_L("CLafShutdownManager::FreeDiskL"));
+    TInt fileNum = aDescArray->MdcaCount();
+    
+    for(TInt i=0; i<fileNum; i++)
+        {
+        TBuf<KMaxFileNameLength> fileName=(aDescArray->MdcaPoint(i));
+        DeleteFileL(fileName);
+        }
+    }
+
+CLafShutdownManager::CGlobalQueryActive::CMessageInfo* Tut_LafShutdownManager::
+        GetMessageInfoList(CLafShutdownManager::CGlobalQueryActive* aGlobalQueryActive, TInt aIndex)
+    {
+    return aGlobalQueryActive->iMessageInfo[aIndex];
+    }
+
+CLafShutdownManager::CGlobalQueryActive::TMessageType Tut_LafShutdownManager::
+        GetMessageType(CLafShutdownManager::CGlobalQueryActive* aGlobalQueryActive)
+    {
+    return aGlobalQueryActive->iMessageType;
+    }
+
+void Tut_LafShutdownManager::CallFreeDiskThresholdCrossedL(CLafShutdownManager* aShutdownManager, 
+        TDriveNumber aDrive, TBool aIsCallBack, TBool aForcedNote)
+    {
+    aShutdownManager->FreeDiskThresholdCrossedL(aDrive, aIsCallBack, aForcedNote);
+    }
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oodmonitor/tsrc/ut_oodmonitorv1/src/ut_oodmonitor.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,124 @@
+/*
+* 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: This file contains STIFUnit module implementation.
+*
+*/
+
+/******************************************************************************/
+/*
+ *
+ * Test module configuration 
+*/
+
+// Version
+#define TEST_MODULE_VERSION_MAJOR 0
+#define TEST_MODULE_VERSION_MINOR 0
+#define TEST_MODULE_VERSION_BUILD 0
+
+// Uncomment following defines, if you want to provide implementation
+// of enlisted virtual methods of test module.
+// Implementation part is located at the end of this file.
+//#define STIFUNIT_OOMTESTQUERYL
+//#define STIFUNIT_OOMTESTINITIALIZEL
+//#define STIFUNIT_OOMHANDLEWARNINGL
+//#define STIFUNIT_OOMTESTFINALIZEL
+// Uncomment following define, if you want to increase heap or stack size.
+// #define STIFUNIT_SETHEAPANDSTACKSIZE
+/******************************************************************************/
+
+
+/*
+ * Test module internals. Please do not edit them. 
+*/
+
+// Includes
+#include <e32base.h>
+
+// Literals
+_LIT( KUnitLogPath, "\\logs\\testframework\\ut_oodmonitor\\" ); 
+_LIT( KUnitLogFile, "ut_oodmonitor.txt" ); 
+_LIT( KLogStart, "ut_oodmonitor logging starts!" );
+
+// Defines
+#define STIF_UNIT_TEST_CASES "../src/ut_oodmonitorCases.cpp"
+#define STIF_UNIT_MODULE_CLASS_NAME Cut_oodmonitor
+#define STIF_UNIT_MODULE_NAME _L("ut_oodmonitor.dll")
+
+// Include STIF unit generic file
+#include <StifUnitGeneric.h>
+
+/*
+ * Implementation of setHeapAndStack virtual methods.
+ * To changes heap and stack size provide new values to iTestThreadStackSize, iTestThreadMinHeap and iTestThreadMaxHeap. 
+*/
+
+#ifdef STIFUNIT_SETHEAPANDSTACKSIZE
+EXPORT_C TInt SetRequirements( CTestModuleParam*& aTestModuleParam, 
+                               TUint32& aParameterValid )
+    {
+    aParameterValid = KStifTestModuleParameterChanged;
+    CTestModuleParamVer01* param = CTestModuleParamVer01::NewL(); 
+    // Stack size 
+    param->iTestThreadStackSize= 16384; // 16K stack 
+    // Heap sizes 
+    param->iTestThreadMinHeap = 4096; // 4K heap min 
+    param->iTestThreadMaxHeap = 1048576;// 1M heap max 
+
+    return KErrNone;
+    }
+#undef STIFUNIT_SETHEAPANDSTACKSIZE
+#endif
+
+/*
+ * User implementation of OOM virtual methods.
+ * Providing own implementation requires uncommenting defines at the
+ * beginnig of this file.   
+*/
+#ifdef STIFUNIT_OOMTESTQUERYL
+TBool Cut_oodmonitor::OOMTestQueryL( const TFileName& /*aTestCaseFile*/, 
+                                   const TInt aCaseNumber, 
+                                   TOOMFailureType& aFailureType, 
+                                   TInt& aFirstMemFailure, 
+                                   TInt& aLastMemFailure)
+    {
+    }
+#undef STIFUNIT_OOMTESTQUERYL
+#endif
+
+#ifdef STIFUNIT_OOMTESTINITIALIZEL
+void Cut_oodmonitor::OOMTestInitializeL( const TFileName& /*aTestCaseFile*/, 
+                                       const TInt /*aCaseNumber*/ )
+    {
+    }
+#undef STIFUNIT_OOMTESTINITIALIZEL
+#endif
+
+#ifdef STIFUNIT_OOMHANDLEWARNINGL
+void Cut_oodmonitor::OOMHandleWarningL( const TFileName& /*aTestCaseFile*/,
+                                      const TInt /*aCaseNumber*/, 
+                                      TInt& /*aFailNextValue*/)
+    {
+    }
+#undef STIFUNIT_OOMHANDLEWARNINGL
+#endif
+    
+#ifdef STIFUNIT_OOMTESTFINALIZEL
+void Cut_oodmonitor::OOMTestFinalizeL( const TFileName& /*aTestCaseFile*/, 
+                                     const TInt /*aCaseNumber*/ )
+    {
+    }
+#undef STIFUNIT_OOMTESTFINALIZEL
+#endif
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oodmonitor/tsrc/ut_oodmonitorv1/src/ut_oodmonitorCases.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,705 @@
+/*
+* 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: This file contains STIFUnit implementation.
+*
+*/
+
+/**
+ * STIF_UNIT_INCLUDE SECTION - put all #includes between STIF_UNIT_INCLUDE_SECTION
+ *                             and STIF_UNIT_INCLUDE_SECTION_END
+ */
+#ifdef STIF_UNIT_INCLUDE_SECTION
+
+#include <barsc.h>
+#include <barsread.h>
+#include <bautils.h>
+#include <data_caging_path_literals.hrh>
+#include <e32debug.h>
+#include <e32property.h>
+#include <f32file.h>
+#include <lafmemorywatcher.rsg>
+#include <lafshut.h>
+#include <savenotf.h>
+#include <systemwarninglevels.hrh>
+#include <UiklafInternalCRKeys.h>
+#include <w32std.h>
+
+
+#include "mockshutdowneventobserver.h"
+#include "ut_oodmonitor_const.h"
+#include "ut_oodmonitor_timer.h"
+#include "Ood.h"
+
+#endif //STIF_UNIT_INCLUDE_SECTION_END
+
+/**
+ * GLOBAL VARIABLES SECTION
+ */
+#ifdef TEST_VAR_DECLARATIONS
+
+	 
+#endif
+/**
+ * END OF GLOBAL VARIABLES SECTION
+ */
+
+
+/**
+ * TEST CASES SECTION
+ */
+#ifdef TEST_CASES
+/**
+ * STIF_SETUP defines activities needed before every test case.
+ */
+STIF_SETUP
+{
+    // property for setting AccMode 
+    RProperty::Define(KUTSysApPropertyCategory, KHandleShutdownEventKey, 
+        RProperty::EInt, KAllowAllPolicy, KAllowAllPolicy);
+    RProperty::Define(KUTSysApPropertyCategory, KGetShutdownStateKey, 
+        RProperty::EInt, KAllowAllPolicy, KAllowAllPolicy);
+}
+
+/**
+ * STIF_TEARDOWN defines activities needed after every test case
+ */
+STIF_TEARDOWN
+{
+    RProperty::Delete(KUTSysApPropertyCategory, KHandleShutdownEventKey);
+    RProperty::Delete(KUTSysApPropertyCategory, KGetShutdownStateKey);
+}
+
+/**
+ * @SYMTestCaseID              GAPS-OOD-SHUTDOWNMANAGER-001
+ * @SYMTestCaseDesc            Create CLafShutdownManager object then delete it.
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1. Create scheduler.
+ *                             2. Create friend class object of CLafShutdownManager.
+ *                             3. Create CLafShutdownManager object.
+ *                             4. Check all the proterties have been initialized.
+ *                             5. Check subscribers have been initialized.
+ *                             6. Check thresholds of OODWarning and OODCritical have been assigned correct value.
+ *                             7. Check GlobalQueryActive has been initialized.
+ *                             8. Check OODWarningWatcher and iOODCriticalWatcher has been initialized.
+ * @SYMTestExpectedResults     1. Sechduler is created.
+ *                             2. Friend class object of CLafShutdownManager is created.
+ *                             3. CLafShutdownManager object is created.
+ *                             4. All the proterties can be accessed.
+ *                             5. All the pointer of subscribers are not null.
+ *                             6. The thresholds of OODWarning and OODCritical have been assigned correct value.
+ *                             7. The pointer of GlobalQueryActive is not null.
+ *                             8. Pointers to OODWarningWatcher and iOODCriticalWatcher are not null.
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            09-09-2010
+ */
+STIF_TESTDEFINE(GAPS-OOD-SHUTDOWNMANAGER-001)
+{
+    iLog->Log(_L("CLafShutdownManager:: GAPS-OOD-SHUTDOWNMANAGER-001 start"));
+    // Create active scheduler (to run active objects)  
+    CActiveScheduler* scheduler = new (ELeave) CActiveScheduler();
+    CleanupStack::PushL(scheduler);
+    CActiveScheduler::Install(scheduler);
+        
+    Tut_LafShutdownManager friendClass;
+    ShutdownEventObserver shutdownEventObserver;   
+    CLafShutdownManager* shutdownManager = CLafShutdownManager::NewL(shutdownEventObserver);
+    
+    // Check properties
+    TInt value;
+    TInt err;
+    RProperty diskStatusProperty = friendClass.GetDiskStatusProperty(shutdownManager);
+    err = diskStatusProperty.Get(value);
+    STIF_ASSERT_EQUALS(KErrNone, err);
+    
+    RProperty mmcStatusProperty = friendClass.GetMMCStatusProperty(shutdownManager);
+    err = mmcStatusProperty.Get(value);
+    STIF_ASSERT_EQUALS(KErrNone, err);
+
+    RProperty canDisplayNotesProperty = friendClass.GetCanDisplayNotesProperty(shutdownManager);
+    err = canDisplayNotesProperty.Get(value);
+    iLog->Log(_L("CLafShutdownManager:: iDisplayNotesProperty=%d"), value);
+    STIF_ASSERT_EQUALS(KErrNone, err);
+    
+    RProperty autolockStatusProperty = friendClass.GetAutolockStatusProperty(shutdownManager);
+    err = autolockStatusProperty.Get(value);
+    iLog->Log(_L("CLafShutdownManager:: iAutolockStatusProperty=%d"), value);
+    STIF_ASSERT_EQUALS(KErrNone, err);
+    
+    RProperty enableMMCWatchProperty = friendClass.GetEnableMMCWatchProperty(shutdownManager);
+    err = enableMMCWatchProperty.Get(value);
+    STIF_ASSERT_EQUALS(KErrNone, err);
+    
+    // Check subscriber
+    CBase* pointer = friendClass.GetDisplayNotesSubscriber(shutdownManager);
+    STIF_ASSERT_NOT_NULL(pointer);
+    pointer = friendClass.GetAutolockStatusSubscriber(shutdownManager);
+    STIF_ASSERT_NOT_NULL(pointer);
+    pointer = friendClass.GetMMCWatchSubscriber(shutdownManager);
+    STIF_ASSERT_NOT_NULL(pointer);
+    
+    TInt oodWarningThreshold = friendClass.GetOODWarningThreshold(shutdownManager);
+    STIF_ASSERT_EQUALS(KDRIVECWARNINGTHRESHOLD, oodWarningThreshold);
+    TInt oodCriticalThreshold = friendClass.GetOODCriticalThreshold(shutdownManager);
+    STIF_ASSERT_EQUALS(KDRIVECCRITICALTHRESHOLD, oodCriticalThreshold);
+
+    CLafShutdownManager::CGlobalQueryActive* globalQuaryActive = friendClass.GetGlobalQueryActive(shutdownManager);
+    iLog->Log(_L("CLafShutdownManager::iGlobalQueryActive=%d"), globalQuaryActive);
+    STIF_ASSERT_NOT_NULL(globalQuaryActive);
+         
+    RFs fs;
+    User::LeaveIfError(fs.Connect());
+    CleanupClosePushL(fs);    
+    
+    RResourceFile resFile;
+    TFileName filename(KDriveZ);
+    filename.Append(KDC_RESOURCE_FILES_DIR);
+    filename.Append(KOOMWatcherResourceFileName);
+    BaflUtils::NearestLanguageFile(fs, filename);
+    resFile.OpenL(fs, filename);
+    CleanupClosePushL(resFile);
+    
+    TResourceReader theReader;
+    
+    CLafShutdownManager::CGlobalQueryActive::CMessageInfo* messageInfoPointer = 
+            friendClass.GetMessageInfoList(globalQuaryActive, CLafShutdownManager::CGlobalQueryActive::ECritical);
+   
+    HBufC8* message = resFile.AllocReadLC(R_QTN_MEMLO_MEMORY_FULL);
+    theReader.SetBuffer(message);
+    HBufC* criticalMessage = theReader.ReadHBufCL();
+    
+    iLog->Log(_L("CLafShutdownManager::criticalMessage=%S"), criticalMessage);
+    iLog->Log(_L("CLafShutdownManager::criticalMessage1=%S"), messageInfoPointer->iMessage);
+    
+    TInt result = criticalMessage->Compare(*(messageInfoPointer->iMessage));
+    iLog->Log(_L("CLafShutdownManager::result=%d"), result);
+    
+    STIF_ASSERT_TRUE(0 == result);
+    delete criticalMessage;   
+    CleanupStack::PopAndDestroy(message);
+    
+    messageInfoPointer = 
+            friendClass.GetMessageInfoList(globalQuaryActive, CLafShutdownManager::CGlobalQueryActive::EWarning);
+    message = resFile.AllocReadLC(R_QTN_MEMLO_MEMORY_RUNNING_OUT);
+    theReader.SetBuffer(message);
+    HBufC* warningMessage = theReader.ReadHBufCL();
+    
+    iLog->Log(_L("CLafShutdownManager::warningMessage=%S"), warningMessage);
+    iLog->Log(_L("CLafShutdownManager::warningMessage1=%S"), messageInfoPointer->iMessage);
+    
+    result = warningMessage->Compare(*(messageInfoPointer->iMessage));
+    iLog->Log(_L("CLafShutdownManager::result=%d"), result);
+    
+    STIF_ASSERT_TRUE(0 == result);
+    delete warningMessage;   
+    CleanupStack::PopAndDestroy(message);
+    
+    messageInfoPointer =
+            friendClass.GetMessageInfoList(globalQuaryActive, CLafShutdownManager::CGlobalQueryActive::EWarningMMC);
+    message = resFile.AllocReadLC(R_QTN_MEMLO_MMC_MEMORY_RUNNING_OUT);
+    theReader.SetBuffer(message);
+    HBufC* warningMMCMessage = theReader.ReadHBufCL();
+    
+    iLog->Log(_L("CLafShutdownManager::warningMMCMessage=%S"), warningMMCMessage);
+    iLog->Log(_L("CLafShutdownManager::warningMMCMessage1=%S"), messageInfoPointer->iMessage);
+    
+    result = warningMMCMessage->Compare(*(messageInfoPointer->iMessage));
+    iLog->Log(_L("CLafShutdownManager::result=%d"), result);
+    
+    STIF_ASSERT_TRUE(0 == result);
+    delete warningMMCMessage;   
+    CleanupStack::PopAndDestroy(message);
+    
+    messageInfoPointer = 
+                friendClass.GetMessageInfoList(globalQuaryActive, CLafShutdownManager::CGlobalQueryActive::ECriticalMMC);
+    message = resFile.AllocReadLC(R_QTN_MEMLO_MMC_MEMORY_FULL);
+    theReader.SetBuffer(message);
+    HBufC* criticalMMCMessage = theReader.ReadHBufCL();
+    
+    iLog->Log(_L("CLafShutdownManager::criticalMMCMessage=%S"), criticalMMCMessage);
+    iLog->Log(_L("CLafShutdownManager::criticalMMCMessage1=%S"), messageInfoPointer->iMessage);
+    
+    result = criticalMMCMessage->Compare(*(messageInfoPointer->iMessage));
+    iLog->Log(_L("CLafShutdownManager::result=%d"), result);
+    
+    STIF_ASSERT_TRUE(0 == result);
+    delete criticalMMCMessage;   
+    CleanupStack::PopAndDestroy(message);
+        
+    CleanupStack::PopAndDestroy(&resFile);
+    CleanupStack::PopAndDestroy(&fs);
+    
+    CActive* pointer1 = friendClass.GetOODWarningWatcher(shutdownManager);
+    iLog->Log(_L("CLafShutdownManager::iOODWarningWatcher=%d"), pointer1);
+    STIF_ASSERT_NOT_NULL(pointer1);
+    pointer1 = friendClass.GetOODCriticalWatcher(shutdownManager);
+    iLog->Log(_L("CLafShutdownManager::iOODCriticalWatcher=%d"), pointer1);
+    STIF_ASSERT_NOT_NULL(pointer1);
+    
+    delete shutdownManager;
+    
+    // Delete active scheduler
+    CleanupStack::PopAndDestroy(scheduler);
+    iLog->Log(_L("CLafShutdownManager:: GAPS-OOD-SHUTDOWNMANAGER-001 end"));
+}
+
+/**
+ * @SYMTestCaseID              GAPS-OOD-SHUTDOWNMANAGER-002
+ * @SYMTestCaseDesc            Test LafShutdown class.
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1. Create scheduler.
+ *                             2. Test LafShutdown::CreateShutdownManager();
+ *                             3. Test LafShutdown::SaveFromViewSwitch();
+ *                             4. Test LafShutdown::SaveFromAppSwitch();
+ *                             5. Delete CLafShutdownManagerBase object.
+ *                             6. Delete scheduler.
+ * @SYMTestExpectedResults     1. Sechduler is created.
+ *                             2. CLafShutdownManagerBase object is created.
+ *                             3. LafShutdown::SaveFromViewSwitch(); return expected value.
+ *                             4. LafShutdown::SaveFromAppSwitch(); return expected value.
+ *                             5. CLafShutdownManagerBase object is deleted.
+ *                             6. Scheduler is deleted.
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            09-09-2010
+ */
+STIF_TESTDEFINE(GAPS-OOD-SHUTDOWNMANAGER-002)
+{
+    iLog->Log(_L("CLafShutdownManager:: GAPS-OOD-SHUTDOWNMANAGER-002 start"));
+    
+    // Create active scheduler (to run active objects)    
+    CActiveScheduler* scheduler = new (ELeave) CActiveScheduler();
+    CleanupStack::PushL(scheduler);
+    CActiveScheduler::Install(scheduler);
+        
+    ShutdownEventObserver shutdownEventObserver;   
+    
+    CLafShutdownManagerBase* shutdownManager = LafShutdown::CreateShutdownManager(shutdownEventObserver);
+    STIF_ASSERT_NOT_NULL(shutdownManager);
+    
+    MSaveObserver::TSaveType type = LafShutdown::SaveFromViewSwitch();
+    STIF_ASSERT_EQUALS(MSaveObserver::ESaveNone, type);
+ 
+    type = LafShutdown::SaveFromAppSwitch();
+    STIF_ASSERT_EQUALS(MSaveObserver::ESaveNone, type);
+    
+    delete shutdownManager;
+    
+    // Delete active scheduler
+    CleanupStack::PopAndDestroy(scheduler);
+    iLog->Log(_L("CLafShutdownManager:: GAPS-OOD-SHUTDOWNMANAGER-002 end"));
+}
+
+/**
+ * @SYMTestCaseID              GAPS-OOD-SHUTDOWNMANAGER-003
+ * @SYMTestCaseDesc            Test MMCWatchSubscriber
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1. Create scheduler.
+ *                             2. Create CLafShutdownManager object.
+ *                             3. Create Cut_OODMonitor_Timer object.
+ *                             4. Start scheduler.
+ *                             5. Change enableMMCWatchProperty.
+ *                             6. Change enableMMCWatchProperty after two seconds.
+ *                             7. Stop shceduler.
+ *                             8. Check mmcStatusProperty property.
+ *                             9. Delete Cut_OODMonitor_Timer object and CLafShutdownManager object.
+ *                             10. Delete scheduler.
+ * @SYMTestExpectedResults     1. Sechduler is created.
+ *                             2. CLafShutdownManager object is created.
+ *                             3. Cut_OODMonitor_Timer object is created.
+ *                             4. Scheduler starts.
+ *                             5. enableMMCWatchProperty changed;
+ *                             6. enableMMCWatchProperty changed after two seconds.
+ *                             7. Shceduler stoped.
+ *                             8. mmcStatusProperty property is assign value as expected.
+ *                             9. Cut_OODMonitor_Timer object and CLafShutdownManager object are deleted.
+ *                             10. Scheduler is deleted.
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            09-09-2010
+ */
+STIF_TESTDEFINE(GAPS-OOD-SHUTDOWNMANAGER-003)
+{
+    // Create active scheduler (to run active objects)
+    iLog->Log(_L("CLafShutdownManager:: GAPS-OOD-SHUTDOWNMANAGER-003 start"));
+    CActiveScheduler* scheduler = new (ELeave) CActiveScheduler();
+    CleanupStack::PushL(scheduler);
+    CActiveScheduler::Install(scheduler);
+        
+    Tut_LafShutdownManager friendClass;
+    ShutdownEventObserver shutdownEventObserver;   
+    CLafShutdownManager* shutdownManager = CLafShutdownManager::NewL(shutdownEventObserver);
+    
+    Cut_OODMonitor_Timer* oodMonitorTimer = Cut_OODMonitor_Timer::NewLC(shutdownManager, friendClass, EMMCTest);
+    CActiveScheduler::Start();
+    
+    TInt value;
+    TInt err;
+    RProperty mmcStatusProperty = friendClass.GetMMCStatusProperty(shutdownManager);
+    err = mmcStatusProperty.Get(value);
+    iLog->Log(_L("CLafShutdownManager:: value=%d"),value);
+    STIF_ASSERT_EQUALS(KErrNone, err);
+    STIF_ASSERT_EQUALS(value, DISK_SPACE_OK);
+        
+    CleanupStack::PopAndDestroy(oodMonitorTimer);
+    delete shutdownManager;
+    
+    // Delete active scheduler
+    CleanupStack::PopAndDestroy(scheduler);
+    iLog->Log(_L("CLafShutdownManager:: GAPS-OOD-SHUTDOWNMANAGER-003 end"));
+}
+
+/**
+ * @SYMTestCaseID              GAPS-OOD-SHUTDOWNMANAGER-004
+ * @SYMTestCaseDesc            Test DisplayNotesSubscriber.
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1. Create scheduler.
+ *                             2. Create CLafShutdownManager object.
+ *                             3. Create Cut_OODMonitor_Timer object.
+ *                             4. Start scheduler.
+ *                             5. Change canDisplayNotesProperty and fill the disk space to 
+ *                                critical level.
+ *                             6. Change canDisplayNotesProperty after two seconds.
+ *                             7. Free disk space after two seconds.
+ *                             8. Stop shceduler.
+ *                             9. Check FreeDiskThresholdCrossedL() is called.
+ *                             10. Delete Cut_OODMonitor_Timer object and CLafShutdownManager object.
+ *                             11. Delete scheduler.
+ * @SYMTestExpectedResults     1. Sechduler is created.
+ *                             2. CLafShutdownManager object is created.
+ *                             3. Cut_OODMonitor_Timer object is created.
+ *                             4. Scheduler start.
+ *                             5. canDisplayNotesProperty changed and disk space is filled to 
+ *                                critical level.
+ *                             6. canDisplayNotesProperty changed after two seconds.
+ *                             7. Disk space is freed after two seconds.
+ *                             8. Stop shceduler.
+ *                             9. FreeDiskThresholdCrossedL() is called.
+ *                             10. Cut_OODMonitor_Timer object and CLafShutdownManager object are deleted.
+ *                             11. Scheduler is deleted.
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            09-09-2010
+ */
+STIF_TESTDEFINE(GAPS-OOD-SHUTDOWNMANAGER-004)
+{
+    iLog->Log(_L("CLafShutdownManager:: GAPS-OOD-SHUTDOWNMANAGER-004 start"));
+    
+    // Create active scheduler (to run active objects)    
+    CActiveScheduler* scheduler = new (ELeave) CActiveScheduler();
+    CleanupStack::PushL(scheduler);
+    CActiveScheduler::Install(scheduler);
+        
+    Tut_LafShutdownManager friendClass;
+    ShutdownEventObserver shutdownEventObserver;   
+    CLafShutdownManager* shutdownManager = CLafShutdownManager::NewL(shutdownEventObserver);
+    
+    Cut_OODMonitor_Timer* oodMonitorTimer = Cut_OODMonitor_Timer::NewLC(shutdownManager, friendClass, EDisplayNotes);
+    CActiveScheduler::Start();
+    
+    CLafShutdownManager::CGlobalQueryActive* globalQuaryActive = friendClass.GetGlobalQueryActive(shutdownManager);
+    iLog->Log(_L("CLafShutdownManager::iGlobalQueryActive=%d"), globalQuaryActive);
+    STIF_ASSERT_NOT_NULL(globalQuaryActive);
+    
+    CLafShutdownManager::CGlobalQueryActive::CMessageInfo* messageInfoPointer = 
+            friendClass.GetMessageInfoList(globalQuaryActive, CLafShutdownManager::CGlobalQueryActive::ECritical);
+    
+    TInt locate = messageInfoPointer->iMessage->Des().Locate('s');
+    iLog->Log(_L("CLafShutdownManager::locate=%d"), locate);
+    STIF_ASSERT_EQUALS(0, locate);
+    
+    
+    
+    CleanupStack::PopAndDestroy(oodMonitorTimer);
+    delete shutdownManager;
+    
+    // Delete active scheduler
+    CleanupStack::PopAndDestroy(scheduler);
+    iLog->Log(_L("CLafShutdownManager:: GAPS-OOD-SHUTDOWNMANAGER-004 end"));
+}
+
+/**
+ * @SYMTestCaseID              GAPS-OOD-SHUTDOWNMANAGER-005
+ * @SYMTestCaseDesc            Test AutolockStatusSubscriber.
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1. Create scheduler.
+ *                             2. Create CLafShutdownManager object.
+ *                             3. Create Cut_OODMonitor_Timer object.
+ *                             4. Start scheduler.
+ *                             5. Change autolockStatusProperty and fill the disk space to 
+ *                                warning level.
+ *                             6. Change autolockStatusProperty after two seconds.
+ *                             7. Free disk space after two seconds.
+ *                             8. Stop shceduler.
+ *                             9. Check FreeDiskThresholdCrossedL() is called.
+ *                             10. Delete Cut_OODMonitor_Timer object.
+ *                             11. Delete CLafShutdownManager object.
+ *                             12. Delete scheduler.
+ * @SYMTestExpectedResults     1. Sechduler is created.
+ *                             2. CLafShutdownManager object is created.
+ *                             3. Cut_OODMonitor_Timer object is created.
+ *                             4. Scheduler start.
+ *                             5. autolockStatusProperty changed and disk space is filled to 
+ *                                warning level.
+ *                             6. autolockStatusProperty changed after two seconds.
+ *                             7. Disk space is freed after two seconds.
+ *                             8. Stop shceduler.
+ *                             9. FreeDiskThresholdCrossedL() is called.
+ *                             10. Cut_OODMonitor_Timer object is deleted.
+ *                             11. CLafShutdownManager object is deleted.
+ *                             12. Scheduler is deleted.
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            09-09-2010
+ */
+
+STIF_TESTDEFINE(GAPS-OOD-SHUTDOWNMANAGER-005)
+{
+    // Create active scheduler (to run active objects)
+    iLog->Log(_L("CLafShutdownManager:: GAPS-OOD-SHUTDOWNMANAGER-005 start"));
+    CActiveScheduler* scheduler = new (ELeave) CActiveScheduler();
+    CleanupStack::PushL(scheduler);
+    CActiveScheduler::Install(scheduler);
+        
+    Tut_LafShutdownManager friendClass;
+    ShutdownEventObserver shutdownEventObserver;   
+    CLafShutdownManager* shutdownManager = CLafShutdownManager::NewL(shutdownEventObserver);
+    
+    Cut_OODMonitor_Timer* oodMonitorTimer = Cut_OODMonitor_Timer::NewLC(shutdownManager, friendClass, EAutolock);
+    CActiveScheduler::Start();
+    
+    CLafShutdownManager::CGlobalQueryActive* globalQuaryActive = friendClass.GetGlobalQueryActive(shutdownManager);
+    iLog->Log(_L("CLafShutdownManager::iGlobalQueryActive=%d"), globalQuaryActive);
+    STIF_ASSERT_NOT_NULL(globalQuaryActive);
+    
+    CLafShutdownManager::CGlobalQueryActive::CMessageInfo* messageInfoPointer = 
+            friendClass.GetMessageInfoList(globalQuaryActive, CLafShutdownManager::CGlobalQueryActive::EWarning);
+    
+    TInt locate = messageInfoPointer->iMessage->Des().Locate('s');
+    iLog->Log(_L("CLafShutdownManager::locate=%d"), locate);
+    STIF_ASSERT_EQUALS(0, locate);
+    
+    CleanupStack::PopAndDestroy(oodMonitorTimer);
+    delete shutdownManager;
+    
+    // Delete active scheduler
+    CleanupStack::PopAndDestroy(scheduler);
+    iLog->Log(_L("CLafShutdownManager:: GAPS-OOD-SHUTDOWNMANAGER-005 end"));
+}
+
+/**
+ * @SYMTestCaseID              GAPS-OOD-SHUTDOWNMANAGER-006
+ * @SYMTestCaseDesc            Test ReportEventL() and GetShutdownState().
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1. Create scheduler.
+ *                             2. Create CLafShutdownManager object.
+ *                             3. Call ReportEventL().
+ *                             4. Call GetShutdownState().
+ *                             5. Delete CLafShutdownManager object.
+ *                             6. Delete scheduler.
+ * @SYMTestExpectedResults     1. Sechduler is created.
+ *                             2. CLafShutdownManager object is created.
+ *                             3. ReportEventL() is called correctly.
+ *                             4. GetShutdownState is called correctly.
+ *                             5. CLafShutdownManager object is deleted.
+ *                             6. Scheduler is delted.
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            09-09-2010
+ */
+
+STIF_TESTDEFINE(GAPS-OOD-SHUTDOWNMANAGER-006)
+{   
+    // Create active scheduler (to run active objects)
+    iLog->Log(_L("CLafShutdownManager:: GAPS-OOD-SHUTDOWNMANAGER-006 start"));
+    CActiveScheduler* scheduler = new (ELeave) CActiveScheduler();
+    CleanupStack::PushL(scheduler);
+    CActiveScheduler::Install(scheduler);
+    
+    TInt err;
+    err=RProperty::Set(KUTSysApPropertyCategory, KHandleShutdownEventKey, KHandleShutdownEventValue0);
+    iLog->Log(_L("CLafShutdownManager:: err=%d"),err);
+    err=RProperty::Set(KUTSysApPropertyCategory, KGetShutdownStateKey, KGetShutdownStateValue0);
+    iLog->Log(_L("CLafShutdownManager:: err=%d"),err);
+        
+    ShutdownEventObserver shutdownEventObserver;   
+    CLafShutdownManager* shutdownManager = CLafShutdownManager::NewL(shutdownEventObserver);
+    Tut_LafShutdownManager friendClass;
+    
+    // Check ReportEventL()
+    TBool boolValue = ETrue;
+    friendClass.CallReportEventL(shutdownManager, MSaveObserver::ESaveData, boolValue);
+    
+    TInt propertyValue;
+    RProperty::Get(KUTSysApPropertyCategory, KHandleShutdownEventKey, propertyValue);
+    iLog->Log(_L("CLafShutdownManager:: KHandleShutdownEventKey = %d"), propertyValue);
+    STIF_ASSERT_EQUALS(KHandleShutdownEventValue1, propertyValue);
+    
+    // Check GetShutdownState()
+    friendClass.CallGetShutdownState(shutdownManager, boolValue, boolValue);
+
+    RProperty::Get(KUTSysApPropertyCategory, KGetShutdownStateKey, propertyValue);
+    iLog->Log(_L("CLafShutdownManager:: KGetShutdownStateKey = %d"), propertyValue);
+    STIF_ASSERT_EQUALS(KGetShutdownStateValue1, propertyValue);
+       
+    delete shutdownManager;
+    
+    // Delete active scheduler
+    CleanupStack::PopAndDestroy(scheduler);
+    iLog->Log(_L("CLafShutdownManager:: GAPS-OOD-SHUTDOWNMANAGER-006 end"));
+}
+
+/**
+ * @SYMTestCaseID              GAPS-OOD-SHUTDOWNMANAGER-007
+ * @SYMTestCaseDesc            Test CallGetDiskStatusL().
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1. Create scheduler.
+ *                             2. Create CLafShutdownManager object.
+ *                             3. Fill the disk space to critical level.
+ *                             4. Call CallGetDiskStatusL().
+ *                             5. Free disk space.
+ *                             6. Fill the disk space to warning level.
+ *                             7. Call CallGetDiskStatusL().
+ *                             8. Free disk space.
+ *                             9. Call CallGetDiskStatusL().
+ *                             10. Delete CLafShutdownManager object.
+ *                             11. Delete scheduler.
+ * @SYMTestExpectedResults     1. Sechduler is created.
+ *                             2. CLafShutdownManager object is created.
+ *                             3. Disk space is filled to critical level.
+ *                             4. CallGetDiskStatusL() return correct value.
+ *                             5. Disk space is freed.
+ *                             6. Disk space is filled to warning level.
+ *                             7. CallGetDiskStatusL() return correct value.
+ *                             8. Disk space is freed.
+ *                             9. CallGetDiskStatusL() return correct value.
+ *                             10. CLafShutdownManager object is deleted.
+ *                             11. Scheduler is deleted.
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            09-09-2010
+ */
+
+STIF_TESTDEFINE(GAPS-OOD-SHUTDOWNMANAGER-007)
+{
+    // Create active scheduler (to run active objects)
+    iLog->Log(_L("CLafShutdownManager:: GAPS-OOD-SHUTDOWNMANAGER-007 start"));
+    CActiveScheduler* scheduler = new (ELeave) CActiveScheduler();
+    CleanupStack::PushL(scheduler);
+    CActiveScheduler::Install(scheduler);
+    
+    ShutdownEventObserver shutdownEventObserver;   
+    CLafShutdownManager* shutdownManager = CLafShutdownManager::NewL(shutdownEventObserver);
+    
+    CDesCArrayFlat* fileNameArray = new (ELeave) CDesCArrayFlat(KArraySize);
+    CleanupStack::PushL(fileNameArray);   
+    
+    Tut_LafShutdownManager friendClass;
+    
+    // Critical
+    iLog->Log(_L("CLafShutdownManager:: Critical"));
+    friendClass.EatDiskL(fileNameArray, EDriveC, ECritical);
+    
+    TVolumeInfo volInfo;
+
+    TInt value = friendClass.CallGetDiskStatusL(shutdownManager, volInfo, EDriveC);
+    iLog->Log(_L("CLafShutdownManager:: value=%d"),value);
+    STIF_ASSERT_TRUE(value == DISK_SPACE_CRITICAL);
+    
+    friendClass.FreeDiskL(fileNameArray);
+    
+    //Warning
+    iLog->Log(_L("CLafShutdownManager:: Warning"));
+    fileNameArray->Reset();
+    friendClass.EatDiskL(fileNameArray, EDriveC, EWarning);
+
+    value = friendClass.CallGetDiskStatusL(shutdownManager, volInfo, EDriveC);
+    iLog->Log(_L("CLafShutdownManager:: value=%d"),value);
+    STIF_ASSERT_TRUE(value == DISK_SPACE_WARNING)
+    
+    User::After(KTwoSecondInMicro);
+    friendClass.FreeDiskL(fileNameArray);
+    
+    // Normal
+    iLog->Log(_L("CLafShutdownManager:: Normal"));
+    value = friendClass.CallGetDiskStatusL(shutdownManager, volInfo, EDriveC);
+    iLog->Log(_L("CLafShutdownManager:: value=%d"),value);
+    STIF_ASSERT_TRUE(value == DISK_SPACE_OK)
+    
+    CleanupStack::PopAndDestroy(fileNameArray);
+    delete shutdownManager;   
+  
+    //Delete active scheduler
+    CleanupStack::PopAndDestroy(scheduler);
+    iLog->Log(_L("CLafShutdownManager:: GAPS-OOD-SHUTDOWNMANAGER-007 end"));
+}
+
+/**
+ * @SYMTestCaseID              GAPS-OOD-SHUTDOWNMANAGER-008
+ * @SYMTestCaseDesc            Test OOD disk watcher.
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1. Create scheduler.
+ *                             2. Create CLafShutdownManager object.
+ *                             3. Create Cut_OODMonitor_Timer object.
+ *                             4. Start scheduler.
+ *                             5. Fill the disk space to critical level.
+ *                             6. Free disk space after two seconds.
+ *                             7. Stop shceduler.
+ *                             8. Check DiskStatusProperty.
+ *                             9. Delete Cut_OODMonitor_Timer object and CLafShutdownManager object.
+ *                             10. Delete scheduler.
+ * @SYMTestExpectedResults     1. Sechduler is created.
+ *                             2. CLafShutdownManager object is created.
+ *                             3. Cut_OODMonitor_Timer object is created.
+ *                             4. Scheduler started.
+ *                             5. Disk space is filled to critical level.
+ *                             6. Disk space is freed after two seconds.
+ *                             7. Shceduler stopped.
+ *                             8. DiskStatusProperty is assigned value as expected.
+ *                             9. Delete Cut_OODMonitor_Timer object and CLafShutdownManager object.
+ *                             10. Delete scheduler.
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            09-09-2010
+ */
+
+STIF_TESTDEFINE(GAPS-OOD-SHUTDOWNMANAGER-008)
+{
+    // Create active scheduler (to run active objects)
+    iLog->Log(_L("CLafShutdownManager:: GAPS-OOD-SHUTDOWNMANAGER-008 start"));
+    CActiveScheduler* scheduler = new (ELeave) CActiveScheduler();
+    CleanupStack::PushL(scheduler);
+    CActiveScheduler::Install(scheduler);
+    
+    ShutdownEventObserver shutdownEventObserver;   
+    CLafShutdownManager* shutdownManager = CLafShutdownManager::NewL(shutdownEventObserver); 
+    
+    Tut_LafShutdownManager friendClass;
+    
+    Cut_OODMonitor_Timer* oodMonitorTimer = Cut_OODMonitor_Timer::NewLC(shutdownManager, friendClass, EOODWatcher);
+    CActiveScheduler::Start();
+    
+    TInt value;
+    TInt err;
+    RProperty diskStatusProperty = friendClass.GetDiskStatusProperty(shutdownManager);
+    err = diskStatusProperty.Get(value);
+    iLog->Log(_L("CLafShutdownManager:: value=%d"),value);
+    STIF_ASSERT_EQUALS(KErrNone, err);
+    STIF_ASSERT_EQUALS(value, DISK_SPACE_OK);
+
+    CleanupStack::PopAndDestroy(oodMonitorTimer);
+    delete shutdownManager;   
+  
+    //Delete active scheduler
+    CleanupStack::PopAndDestroy(scheduler);
+    iLog->Log(_L("CLafShutdownManager:: GAPS-OOD-SHUTDOWNMANAGER-008 end"));
+}
+#endif
+/**
+ * END OF TEST CASES SECTION
+ */
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oodmonitor/tsrc/ut_oodmonitorv1/src/ut_oodmonitor_timer.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,267 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+* 
+* Description:
+*
+*/
+
+#include <barsc.h>
+#include <barsread.h>
+#include <coreapplicationuisdomainpskeys.h>
+#include <e32debug.h>
+#include <e32property.h>
+#include <f32file.h>
+#include <lafshut.h>
+#include <w32std.h>
+
+
+#include "ut_oodmonitor_const.h"
+#include "ut_oodmonitor_timer.h"
+
+Cut_OODMonitor_Timer* Cut_OODMonitor_Timer::NewLC(CLafShutdownManager* aShutdownManager, Tut_LafShutdownManager& aFriendLafShutdownManager, TTestCase aTestCase)
+    {
+    Cut_OODMonitor_Timer* self=new(ELeave) Cut_OODMonitor_Timer(aShutdownManager, aFriendLafShutdownManager, aTestCase);  
+    CleanupStack::PushL(self);  
+    self->ConstructL();  
+    return self;  
+    }
+    
+Cut_OODMonitor_Timer* Cut_OODMonitor_Timer::NewL(CLafShutdownManager* aShutdownManager, Tut_LafShutdownManager& aFriendLafShutdownManager, TTestCase aTestCase)
+    {
+    Cut_OODMonitor_Timer* self=Cut_OODMonitor_Timer::NewLC(aShutdownManager, aFriendLafShutdownManager, aTestCase);  
+    CleanupStack::Pop(self); 
+    return self;    
+    }
+
+Cut_OODMonitor_Timer::Cut_OODMonitor_Timer(CLafShutdownManager* aShutdownManager, Tut_LafShutdownManager& aFriendLafShutdownManager, TTestCase aTestCase):
+        CTimer(EPriorityStandard), iFriendLafShutdownManager(aFriendLafShutdownManager), iShutdownManager(aShutdownManager), iTestCase(aTestCase),
+        iPhase(EPhase1)
+    {
+    
+    }
+    
+Cut_OODMonitor_Timer::~Cut_OODMonitor_Timer()
+    {
+    iFileNameArray->Reset();
+    delete iFileNameArray;
+    }
+
+void Cut_OODMonitor_Timer::ConstructL()
+    {
+    iFileNameArray = new (ELeave) CDesCArrayFlat(KArraySize);
+    CTimer::ConstructL();  
+    CActiveScheduler::Add(this);  
+    After(KTwoSecondInMicro);
+    }
+
+void Cut_OODMonitor_Timer::RunL()
+    {
+    switch(iTestCase)
+        {
+        case EMMCTest:
+            {
+            switch(iPhase)
+                {
+                case EPhase1:
+                    {
+                    ChangeMMCStatus();                    
+                    iPhase = EPhase2;
+                    After(KTwoSecondInMicro); 
+                    break;
+                    }
+                case EPhase2:
+                    {
+                    ChangeMMCStatus();
+                    iPhase = EPhase3;
+                    After(KTwoSecondInMicro); 
+                    break;
+                    }
+                default:
+                    {
+                    CActiveScheduler::Stop();
+                    break;
+                    }
+                }
+            break;
+            }   // EMMCTest
+        case EDisplayNotes:
+            {
+            switch(iPhase)
+                {
+                case EPhase1:
+                    {
+                    iFriendLafShutdownManager.EatDiskL(iFileNameArray, EDriveC, ECritical); 
+                    ChangeDisplayNotes();                   
+                    iPhase = EPhase2;
+                    After(KTwoSecondInMicro); 
+                    break;
+                    }
+                case EPhase2:
+                    {
+                    ChangeDisplayNotes();
+                    iPhase = EPhase3;                    
+                    After(KTwoSecondInMicro); 
+                    break;
+                    }
+                case EPhase3:
+                   {
+                   iPhase = EPhase4;
+                   iFriendLafShutdownManager.FreeDiskL(iFileNameArray);
+                   iFileNameArray->Reset();
+                   After(KTwoSecondInMicro); 
+                   break;
+                   }
+                default:
+                    {
+                    CActiveScheduler::Stop();
+                    break;
+                    }
+                }
+            break;
+            }   // EDisplayNotes
+        case EAutolock:
+            {
+            switch(iPhase)
+                {
+                case EPhase1:
+                    {
+                    iFriendLafShutdownManager.EatDiskL(iFileNameArray, EDriveC, EWarning); 
+                    ChangeAutoLockStatus();                    
+                    iPhase = EPhase2;
+                    After(KTwoSecondInMicro); 
+                    break;
+                    }
+                case EPhase2:
+                    {
+                    ChangeAutoLockStatus();
+                    iPhase = EPhase3;
+                    After(KTwoSecondInMicro); 
+                    break;
+                    }
+                case EPhase3:
+                    {
+                    iPhase = EPhase4;
+                    iFriendLafShutdownManager.FreeDiskL(iFileNameArray);
+                    iFileNameArray->Reset();
+                    After(KTwoSecondInMicro); 
+                    break;
+                    }
+                default:
+                    {
+                    CActiveScheduler::Stop();
+                    break;
+                    }
+                }
+            break;
+            }   //   EAutolock     
+        case EOODWatcher:
+            {
+            switch(iPhase)
+                {
+                case EPhase1:
+                    {
+                    iFriendLafShutdownManager.EatDiskL(iFileNameArray, EDriveC, ECritical);                  
+                    iPhase = EPhase2;
+                    After(KTwoSecondInMicro); 
+                    break;
+                    }
+                case EPhase2:
+                    {
+                    iFriendLafShutdownManager.FreeDiskL(iFileNameArray);
+                    iFileNameArray->Reset();
+                    iPhase = EPhase3;
+                    After(KTwoSecondInMicro); 
+                    break;
+                    }
+                default:
+                    {
+                    CActiveScheduler::Stop();
+                    break;
+                    }
+                }
+            break;
+            }   //   EOODWatcher  
+        default:
+            {
+            CActiveScheduler::Stop();
+            }   // default
+        }
+    }
+void Cut_OODMonitor_Timer::ChangeMMCStatus()
+    {
+    TInt value;
+        
+    RProperty enableMMCWatchProperty = iFriendLafShutdownManager.GetEnableMMCWatchProperty(iShutdownManager);
+    enableMMCWatchProperty.Get(value);
+
+    RDebug::Print(_L("CLafShutdownManager::enableMMCWatchProperty=%d"), value);
+    
+    const TInt mmcRemovedStatus = 0;
+    const TInt mmcInsertedStatus = 1;
+    
+    if(mmcRemovedStatus == value)
+        {
+        value = mmcInsertedStatus;
+        }
+    else
+        {
+        value = mmcRemovedStatus;
+        }
+    
+    enableMMCWatchProperty.Set(value);
+    }
+
+void Cut_OODMonitor_Timer::ChangeDisplayNotes()
+    {
+    TInt value;
+    
+    RProperty canDisplayNotesProperty = iFriendLafShutdownManager.GetCanDisplayNotesProperty(iShutdownManager);
+    canDisplayNotesProperty.Get(value);
+
+    RDebug::Print(_L("CLafShutdownManager::canDisplayNotesProperty=%d"), value);
+    
+    const TInt notShowDisplayNotes = 0;
+    const TInt ShowDisplayNotes = 1;
+    
+    if(notShowDisplayNotes == value)
+        {
+        value = ShowDisplayNotes;
+        }
+    else
+        {
+        value = notShowDisplayNotes;
+        }
+    
+    canDisplayNotesProperty.Set(value);
+    }
+
+void Cut_OODMonitor_Timer::ChangeAutoLockStatus()
+    {
+    TInt value;
+    
+    RProperty autolockStatusProperty = iFriendLafShutdownManager.GetAutolockStatusProperty(iShutdownManager);
+    autolockStatusProperty.Get(value);
+
+    RDebug::Print(_L("CLafShutdownManager::autolockStatusProperty=%d"), value);
+    
+    if(EAutolockOff == value)
+        {
+        value = EManualLocked;
+        }
+    else
+        {
+        value = EAutolockOff;
+        }
+    
+    autolockStatusProperty.Set(value);
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oodmonitor/tsrc/ut_oodsubscriber/Bwins/ut_oodsubscriberu.def	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,4 @@
+EXPORTS
+	?LibEntryL@@YAPAVCTestModuleBase@@XZ @ 1 NONAME ; class CTestModuleBase * __cdecl LibEntryL(void)
+	?SetRequirements@@YAHAAPAVCTestModuleParam@@AAK@Z @ 2 NONAME ; int __cdecl SetRequirements(class CTestModuleParam * &,unsigned long &)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oodmonitor/tsrc/ut_oodsubscriber/eabi/ut_oodsubscriberu.def	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,8 @@
+EXPORTS
+	_Z9LibEntryLv @ 1 NONAME
+	_Z15SetRequirementsRP16CTestModuleParamRm @ 2 NONAME
+	_ZTI20COutOfDiskPSObserver @ 3 NONAME
+	_ZTI20COutOfDiskSubscriber @ 4 NONAME
+	_ZTV20COutOfDiskPSObserver @ 5 NONAME
+	_ZTV20COutOfDiskSubscriber @ 6 NONAME
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oodmonitor/tsrc/ut_oodsubscriber/group/bld.inf	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,40 @@
+/*
+* 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:
+*
+*/
+
+PRJ_PLATFORMS
+// specify the platforms your component needs to be built for here
+// defaults to WINS MARM so you can ignore this if you just build these
+
+	DEFAULT
+
+PRJ_TESTEXPORTS
+// NOTE: If using ARS requirements all export operations should be done under this.
+// 'abld test export'
+
+PRJ_EXPORTS
+
+
+PRJ_TESTMMPFILES
+
+	ut_oodsubscriber.mmp
+
+PRJ_MMPFILES
+
+	//ut_oodsubscriber_nrm.mmp
+
+
+//  End of File
Binary file sysresmonitoring/oodmonitor/tsrc/ut_oodsubscriber/group/subcriberCTCHTML.rar has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oodmonitor/tsrc/ut_oodsubscriber/group/ut_oodsubscriber.mmp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,75 @@
+/*TYPE STIFUNIT*/
+/*
+* 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: MMP file for STIF Test Framework's STIFUnit test module.
+*
+*/
+
+#include <platform_paths.hrh>
+
+SMPSAFE
+
+TARGET          ut_oodsubscriber.dll
+TARGETTYPE      dll
+UID             0x1000008D 0x2002CAD7
+
+CAPABILITY      ALL -TCB
+/* Remove comments and replace 0x00000000 with correct vendor id */
+// VENDORID     0x00000000
+/* Remove comments and replace 0x00000000 with correct secure id */
+// SECUREID     0x00000000
+
+macro FCC_UNIT_TEST
+#define FCC_UNIT_TEST
+
+//TARGETPATH      ?target_path
+DEFFILE         ut_oodsubscriber.def
+
+USERINCLUDE     ../inc 
+USERINCLUDE     ../../../oodmonitor2/inc 
+USERINCLUDE     ../../../inc 
+SYSTEMINCLUDE	/epoc32/include/mw/hb/hbwidgets
+
+MW_LAYER_SYSTEMINCLUDE
+OS_LAYER_SYSTEMINCLUDE
+
+SOURCEPATH      ../src
+
+SOURCE          ut_oodsubscriber.cpp
+SOURCE          ut_oodsubscriberCases.cpp
+SOURCE          mockoutofdiskpsobserver.cpp
+
+SOURCEPATH      ../../../oodmonitor2/src
+SOURCE          outofdisksubscriber.cpp
+SOURCE          outofdiskglobalnote.cpp
+SOURCE          outofdiskmonitor.cpp
+SOURCE          outofdisknotifyobserver.cpp
+
+//RESOURCE        resource_file
+//RESOURCE        resource_file2
+
+LIBRARY         euser.lib
+LIBRARY         stiftestinterface.lib
+
+LIBRARY         efsrv.lib
+LIBRARY         bafl.lib
+LIBRARY         commonengine.lib
+LIBRARY         HbWidgets.lib
+LIBRARY         platformenv.lib
+LIBRARY         disknotifyhandler.lib
+LIBRARY         centralrepository.lib
+
+LANG            SC
+
+// AIF ?filename// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oodmonitor/tsrc/ut_oodsubscriber/group/ut_oodsubscriber.pkg	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,60 @@
+;
+; 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:
+;
+; 	Installation file for STIF
+;
+
+; Languages
+&EN
+
+; Provide value for uid
+#{"STIF"},(0x00000000),1,1,0,TYPE=SA
+
+; Series60 product id for S60 3.0
+[0x101F7961], 0, 0, 0, {"Series60ProductID"}
+
+; Localised Vendor name
+%{"Nokia"}
+
+; Unique Vendor name
+:"Nokia"
+
+; Logo
+; None
+
+; Package signature - Optional
+; None
+
+; Start of Package body
+
+; Condition blocks
+; None
+
+; Options list
+; None
+
+; Install files
+"\epoc32\release\armv5\udeb\ut_oodsubscriber.dll"   -   "!:\Sys\Bin\ut_oodsubscriber.dll"
+  
+; Embedded SIS 
+; None
+
+; End of Package body
+
+; PKG dependencies
+; None
+
+; PKG capabilities
+; None
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oodmonitor/tsrc/ut_oodsubscriber/inc/utoodsubscriberconst.h	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,17 @@
+/*
+ * utoodsubscriberconst.h
+ *
+ *  Created on: Sep 01, 2010
+ * 
+ */
+
+#ifndef UTOODSUBSCRIBERCONST_H_
+#define UTOODSUBSCRIBERCONST_H_
+const TUid KUTOODPropertyCategory = {0x10000000};
+
+const TUint32 KUTOODStubKey = 2;
+
+const TInt KNotTouched = 0;
+
+_LIT_SECURITY_POLICY_PASS(KAllowAllPolicy);
+#endif /* UTOODSUBSCRIBERCONST_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oodmonitor/tsrc/ut_oodsubscriber/src/mockoutofdiskpsobserver.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,103 @@
+/*
+* 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: 
+*           This class handles the received indications from the PubSub.
+*
+*/
+
+
+// SYSTEM INCLUDES
+
+// USER INCLUDES
+#include "outofdiskmonitor.h"
+#include "outofdisksubscriber.h"
+#include "outofdiskpsobserver.h"
+#include "OodTraces.h"
+
+// ================= MEMBER FUNCTIONS =======================
+
+// ----------------------------------------------------
+// COutOfDiskPSObserver::COutOfDiskPSObserver( COutOfDiskMonitor* aOutOfDiskMonitor )
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// ----------------------------------------------------
+COutOfDiskPSObserver::COutOfDiskPSObserver( COutOfDiskMonitor* aOutOfDiskMonitor ) :
+    iOutOfDiskMonitor( aOutOfDiskMonitor )
+    {
+    }
+
+// ----------------------------------------------------
+// COutOfDiskPSObserver::ConstructL()
+// ----------------------------------------------------
+void COutOfDiskPSObserver::ConstructL()
+    {
+    TRACES("COutOfDiskPSObserver::ConstructL()");
+
+//    iUikGlobalNotesAllowedSubscriber = COutOfDiskSubscriber::NewL( *this, 
+//                                                                   KPSUidUikon, 
+//                                                                   KUikGlobalNotesAllowed );
+//    iUikGlobalNotesAllowedSubscriber->Subscribe();
+//
+//    TInt state(0);
+//    RProperty::Get( KPSUidUikon, KUikGlobalNotesAllowed, state );
+//    iOutOfDiskMonitor->SetGlobalNotesAllowed(state);
+//
+//    iAutolockStatusSubscriber = COutOfDiskSubscriber::NewL( *this, 
+//                                                            KPSUidCoreApplicationUIs, 
+//                                                            KCoreAppUIsAutolockStatus );
+//    iAutolockStatusSubscriber->Subscribe();
+//    RProperty::Get( KPSUidCoreApplicationUIs, KCoreAppUIsAutolockStatus, iAutolockStatus );
+    
+    TRACES("COutOfDiskPSObserver::ConstructL(): End");
+    }
+
+// ----------------------------------------------------------------------------
+// COutOfDiskPSObserver::HandlePropertyChangedL()
+// ----------------------------------------------------------------------------
+void COutOfDiskPSObserver::HandlePropertyChangedL( const TUid& aCategory, TUint aKey )
+    {
+    TInt value( 0 );
+    RProperty::Get( aCategory, aKey, value );
+    
+    CActiveScheduler::Stop();
+    }
+
+// ----------------------------------------------------
+// COutOfDiskPSObserver::NewL( COutOfDiskMonitor** aOutOfDiskMonitor )
+// ----------------------------------------------------
+COutOfDiskPSObserver* COutOfDiskPSObserver::NewL( COutOfDiskMonitor* aOutOfDiskMonitor )
+    {
+    TRACES("COutOfDiskPSObserver::NewL()");
+    COutOfDiskPSObserver* self = new (ELeave) COutOfDiskPSObserver( aOutOfDiskMonitor );
+
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop( self );
+
+    TRACES("COutOfDiskPSObserver::NewL(): End");
+    return self;
+    }
+
+// ----------------------------------------------------
+// COutOfDiskPSObserver::~COutOfDiskPSObserver()
+// ----------------------------------------------------
+COutOfDiskPSObserver::~COutOfDiskPSObserver()
+    {
+    TRACES("COutOfDiskPSObserver::~COutOfDiskPSObserver()");
+    delete iAutolockStatusSubscriber;
+    delete iUikGlobalNotesAllowedSubscriber;
+    TRACES("COutOfDiskPSObserver::~COutOfDiskPSObserver(): End");
+    }
+
+//  End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oodmonitor/tsrc/ut_oodsubscriber/src/ut_oodsubscriber.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,124 @@
+/*
+* 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: This file contains STIFUnit module implementation.
+*
+*/
+
+/******************************************************************************/
+/*
+ *
+ * Test module configuration 
+*/
+
+// Version
+#define TEST_MODULE_VERSION_MAJOR 0
+#define TEST_MODULE_VERSION_MINOR 0
+#define TEST_MODULE_VERSION_BUILD 0
+
+// Uncomment following defines, if you want to provide implementation
+// of enlisted virtual methods of test module.
+// Implementation part is located at the end of this file.
+//#define STIFUNIT_OOMTESTQUERYL
+//#define STIFUNIT_OOMTESTINITIALIZEL
+//#define STIFUNIT_OOMHANDLEWARNINGL
+//#define STIFUNIT_OOMTESTFINALIZEL
+// Uncomment following define, if you want to increase heap or stack size.
+// #define STIFUNIT_SETHEAPANDSTACKSIZE
+/******************************************************************************/
+
+
+/*
+ * Test module internals. Please do not edit them. 
+*/
+
+// Includes
+#include <e32base.h>
+
+// Literals
+_LIT( KUnitLogPath, "\\logs\\testframework\\ut_oodsubscriber\\" ); 
+_LIT( KUnitLogFile, "ut_oodsubscriber.txt" ); 
+_LIT( KLogStart, "ut_oodsubscriber logging starts!" );
+
+// Defines
+#define STIF_UNIT_TEST_CASES "../src/ut_oodsubscriberCases.cpp"
+#define STIF_UNIT_MODULE_CLASS_NAME Cut_oodsubscriber
+#define STIF_UNIT_MODULE_NAME _L("ut_oodsubscriber.dll")
+
+// Include STIF unit generic file
+#include <StifUnitGeneric.h>
+
+/*
+ * Implementation of setHeapAndStack virtual methods.
+ * To changes heap and stack size provide new values to iTestThreadStackSize, iTestThreadMinHeap and iTestThreadMaxHeap. 
+*/
+
+#ifdef STIFUNIT_SETHEAPANDSTACKSIZE
+EXPORT_C TInt SetRequirements( CTestModuleParam*& aTestModuleParam, 
+                               TUint32& aParameterValid )
+    {
+    aParameterValid = KStifTestModuleParameterChanged;
+    CTestModuleParamVer01* param = CTestModuleParamVer01::NewL(); 
+    // Stack size 
+    param->iTestThreadStackSize= 16384; // 16K stack 
+    // Heap sizes 
+    param->iTestThreadMinHeap = 4096; // 4K heap min 
+    param->iTestThreadMaxHeap = 1048576;// 1M heap max 
+
+    return KErrNone;
+    }
+#undef STIFUNIT_SETHEAPANDSTACKSIZE
+#endif
+
+/*
+ * User implementation of OOM virtual methods.
+ * Providing own implementation requires uncommenting defines at the
+ * beginnig of this file.   
+*/
+#ifdef STIFUNIT_OOMTESTQUERYL
+TBool Cut_oodsubscriber::OOMTestQueryL( const TFileName& /*aTestCaseFile*/, 
+                                   const TInt aCaseNumber, 
+                                   TOOMFailureType& aFailureType, 
+                                   TInt& aFirstMemFailure, 
+                                   TInt& aLastMemFailure)
+    {
+    }
+#undef STIFUNIT_OOMTESTQUERYL
+#endif
+
+#ifdef STIFUNIT_OOMTESTINITIALIZEL
+void Cut_oodsubscriber::OOMTestInitializeL( const TFileName& /*aTestCaseFile*/, 
+                                       const TInt /*aCaseNumber*/ )
+    {
+    }
+#undef STIFUNIT_OOMTESTINITIALIZEL
+#endif
+
+#ifdef STIFUNIT_OOMHANDLEWARNINGL
+void Cut_oodsubscriber::OOMHandleWarningL( const TFileName& /*aTestCaseFile*/,
+                                      const TInt /*aCaseNumber*/, 
+                                      TInt& /*aFailNextValue*/)
+    {
+    }
+#undef STIFUNIT_OOMHANDLEWARNINGL
+#endif
+    
+#ifdef STIFUNIT_OOMTESTFINALIZEL
+void Cut_oodsubscriber::OOMTestFinalizeL( const TFileName& /*aTestCaseFile*/, 
+                                     const TInt /*aCaseNumber*/ )
+    {
+    }
+#undef STIFUNIT_OOMTESTFINALIZEL
+#endif
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oodmonitor/tsrc/ut_oodsubscriber/src/ut_oodsubscriberCases.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,128 @@
+/*
+* 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: This file contains STIFUnit implementation.
+*
+*/
+
+/**
+ * STIF_UNIT_INCLUDE SECTION - put all #includes between STIF_UNIT_INCLUDE_SECTION
+ *                             and STIF_UNIT_INCLUDE_SECTION_END
+ */
+#ifdef STIF_UNIT_INCLUDE_SECTION
+#include <e32property.h> 
+#include "utoodsubscriberconst.h"
+#include "outofdiskmonitor.h"
+#include "outofdiskpsobserver.h"
+#include "outofdisksubscriber.h"
+#endif //STIF_UNIT_INCLUDE_SECTION_END
+
+/**
+ * GLOBAL VARIABLES SECTION
+ */
+#ifdef TEST_VAR_DECLARATIONS
+     CActiveScheduler* scheduler;
+#endif
+/**
+ * END OF GLOBAL VARIABLES SECTION
+ */
+
+
+/**
+ * TEST CASES SECTION
+ */
+#ifdef TEST_CASES
+/**
+ * STIF_SETUP defines activities needed before every test case.
+ */
+STIF_SETUP
+{
+RProperty::Define(KUTOODPropertyCategory, KUTOODStubKey, 
+        RProperty::EInt, KAllowAllPolicy, KAllowAllPolicy);
+}
+
+/**
+ * STIF_TEARDOWN defines activities needed after every test case
+ */
+STIF_TEARDOWN
+{
+RProperty::Delete(KUTOODPropertyCategory, KUTOODStubKey); 
+}
+
+/**
+ * @SYMTestCaseID              GAPS-OODMONITOR-SUBSCRIBER-001
+ * @SYMTestCaseDesc            Unit test for COutOfDiskSubscriber.
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1. Construct a mock COutOfDiskMonitor object.
+ *                             2. Construct a mock COutOfDiskPSObserver object.
+ *                             3. Construct a COutOfDiskSubscriber object.
+ *                             4. Subscribe
+ *                             5. Set property value.
+ *                             6. Start activescheduler
+ *                             7. Directly call RunError
+ * @SYMTestExpectedResults     1. Mock COutOfDiskMonitor object was constructed.
+ *                             2. Mock COutOfDiskPSObserver object was constructed.
+ *                             3. COutOfDiskSubscriber object was constructed.
+ *                             4. COutOfDiskSubscriber object was set active.
+ *                             5. Property was set.
+ *                             6. ActiveScheduler was started.
+ *                             7. RunError returns error code.
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            23-08-2010
+ */
+STIF_TESTDEFINE(GAPS-OODMONITOR-SUBSCRIBER-001)
+{    
+    // instance and install, but not started
+    scheduler = new (ELeave) CActiveScheduler();
+    CleanupStack::PushL(scheduler);
+    CActiveScheduler::Install(scheduler);
+        
+    STIF_LOG("1. Construct a mock COutOfDiskMonitor object.");
+    MShutdownEventObserver* shutdownEventObserver = NULL;
+    COutOfDiskMonitor* outOfDiskMonitor = COutOfDiskMonitor::NewL(*shutdownEventObserver);
+    CleanupStack::PushL(outOfDiskMonitor);
+    
+    STIF_LOG("2. Construct a mock COutOfDiskPSObserver object.");
+    COutOfDiskPSObserver* outOfDiskPSObserver = COutOfDiskPSObserver::NewL(outOfDiskMonitor);
+    CleanupStack::PushL(outOfDiskPSObserver);
+    
+    STIF_LOG("3. Construct a COutOfDiskSubscriber object.");
+    COutOfDiskSubscriber* outOfDiskSubscriber = COutOfDiskSubscriber::NewL(*outOfDiskPSObserver, KUTOODPropertyCategory, KUTOODStubKey);
+    CleanupStack::PushL(outOfDiskSubscriber);
+    
+    STIF_LOG("4. Subscribe.");
+    outOfDiskSubscriber->Subscribe();
+    
+    STIF_LOG("5. Set property value.");
+    RProperty::Set(KUTOODPropertyCategory, KUTOODStubKey, KNotTouched);
+    
+    STIF_LOG("6. Start activescheduler");
+    CActiveScheduler::Start();
+    
+    STIF_LOG("7. Directly call RunError.");
+    STIF_ASSERT_EQUALS(KErrNoMemory, outOfDiskSubscriber->RunError(KErrNoMemory));
+    
+    CleanupStack::PopAndDestroy(outOfDiskSubscriber);
+    CleanupStack::PopAndDestroy(outOfDiskPSObserver);
+    CleanupStack::PopAndDestroy(outOfDiskMonitor);
+    
+    CActiveScheduler::Install(NULL);
+    CleanupStack::PopAndDestroy(scheduler);
+}
+
+#endif
+/**
+ * END OF TEST CASES SECTION
+ */
+
+// End of File
--- a/sysresmonitoring/oommonitor/inc/oommemorymonitor.h	Wed Sep 29 15:24:56 2010 +0300
+++ b/sysresmonitoring/oommonitor/inc/oommemorymonitor.h	Thu Oct 07 06:25:45 2010 +0300
@@ -63,6 +63,11 @@
 NONSHARABLE_CLASS(CMemoryMonitor) : public CBase
     {
 public:
+
+#ifdef FCC_UNIT_TEST
+    friend class COomFriendClass;
+#endif
+
     static CMemoryMonitor* NewL();
     ~CMemoryMonitor();
 
--- a/sysresmonitoring/oommonitor/inc/oommonitorclientserver.h	Wed Sep 29 15:24:56 2010 +0300
+++ b/sysresmonitoring/oommonitor/inc/oommonitorclientserver.h	Thu Oct 07 06:25:45 2010 +0300
@@ -29,7 +29,11 @@
 
 void PanicClient(const RMessagePtr2& aMessage,TOomMonitorClientPanic aPanic);
 
+#ifndef FCC_UNIT_TEST
 _LIT(KMemoryMonitorServerName, "OomMonitorServer");
+#else
+_LIT(KMemoryMonitorServerName, "MockOomMonitorServer");
+#endif
 
 enum TOomMonitorCmd
     {
--- a/sysresmonitoring/oommonitor/src/oomactionlist.cpp	Wed Sep 29 15:24:56 2010 +0300
+++ b/sysresmonitoring/oommonitor/src/oomactionlist.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -37,7 +37,9 @@
 #include "oomapplicationconfig.h"
 #include "oomcloseappconfig.h"
 #include "oomrunpluginconfig.h"
-
+#ifdef FCC_UNIT_TEST
+#include "ut_oom.h"
+#endif
 const TUid  KUidMatrixMenuApp = { 0x101F4CD2 };
 
 template <class T>
@@ -698,8 +700,9 @@
         
         // Create an action acording to the config
         COomRunPlugin* action = COomRunPlugin::NewL(iPluginList->Uid(pluginIndex), pluginConfig, *this, iPluginListV2->Implementation(pluginIndex), &(iPluginListV2->Implementation(pluginIndex)));
-        
+        CleanupStack::PushL(action);
         iRunPluginActions.AppendL(action);
+		CleanupStack::Pop();
         }
 
     //allocate empty COomCloseApp objects
@@ -707,6 +710,8 @@
     while (appCloseIndex--)        
         {
         COomCloseApp* action = COomCloseApp::NewL(*this, iWs);
+		CleanupStack::PushL(action);
         iCloseAppActions.AppendL(action);
+		CleanupStack::Pop();
         }
     }
--- a/sysresmonitoring/oommonitor/src/oomconfig.cpp	Wed Sep 29 15:24:56 2010 +0300
+++ b/sysresmonitoring/oommonitor/src/oomconfig.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -55,7 +55,10 @@
     if (!applicationConfigPointer)
         {
         applicationConfig = COomApplicationConfig::NewL(aActionConfig->iId);
+		CleanupStack::PushL(applicationConfig);
         iApplicationToConfigMapping.InsertL(aActionConfig->iId, applicationConfig);
+		CleanupStack::Pop();
+
         }
     else
         {
--- a/sysresmonitoring/oommonitor/src/oommemorymonitor.cpp	Wed Sep 29 15:24:56 2010 +0300
+++ b/sysresmonitoring/oommonitor/src/oommemorymonitor.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -308,7 +308,8 @@
     
     iActionTrigger = EClientServerRequestFreeMemory;
     iDataPaged = aDataPaged;
-    StartFreeSomeRamL(iLowRamThreshold, aBytesRequested + iLowSwapThreshold);
+    
+    StartFreeSomeRamL(iLowRamThreshold+aBytesRequested, aBytesRequested + iLowSwapThreshold);
     }
 
 void CMemoryMonitor::FreeOptionalRamL(TInt aBytesRequested, TInt aPluginId, TBool aDataPaged) // The ID of the plugin that will clear up the allocation, used to determine the priority of the allocation
--- a/sysresmonitoring/oommonitor/src/oommonitor.cpp	Wed Sep 29 15:24:56 2010 +0300
+++ b/sysresmonitoring/oommonitor/src/oommonitor.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -61,8 +61,12 @@
 
         if ( err == KErrNone )
             {
+#ifdef FCC_UNIT_TEST
+            scheduler->Error(0);
+#else            
             // start the watchers
             CActiveScheduler::Start();
+#endif            
             }
         }
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/appfortest/group/appfortest.mmp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,32 @@
+/*
+* Copyright (c) 2002-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:  Project definition file for appfortest
+*
+*/
+
+TARGET		  appfortest.exe
+TARGETTYPE	  exe
+UID 0 0x200338CB
+
+CAPABILITY	ALL -TCB
+
+MW_LAYER_SYSTEMINCLUDE
+
+USERINCLUDE	..\inc
+
+SOURCEPATH	..\src
+SOURCE redrawmonitor.cpp main.cpp eventmonitor.cpp controler.cpp
+
+LIBRARY		   euser.lib ws32.lib apgrfx.lib gdi.lib
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/appfortest/group/bld.inf	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,23 @@
+/*
+* Copyright (c) 2002-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:  Bld.inf file for appfortest.exe 
+*
+*/
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_MMPFILES
+appfortest.mmp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/appfortest/inc/controler.h	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,59 @@
+/*
+* 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: This file is the head file of controler.cpp
+*
+*/
+
+#ifndef CONTROL_H
+#define CONTROL_H
+
+// INCLUDES
+#include <e32std.h>
+#include <e32base.h>
+#include <w32std.h>     // ws32.lib
+
+class CRedrawMonitor;
+class CEventMonitor;
+
+class CControler: public CBase
+    {
+    public:
+        ~CControler();
+        static CControler* NewL();
+        void ExecuteD();
+        void Exit();
+        void Paint(TUint aHandle, const TRect& aRect);
+        void HandleChangeForeGroundL();
+        TBool HandleKeyEventL(const TKeyEvent& aKey, TEventCode aCode);
+        TUid GetForeGroundAppUid();
+        
+    private:
+        CControler();
+        void ConstructL();
+
+    private:
+        CActiveScheduler* iActiveScheduler;
+        CWsScreenDevice* iScreenDevice;
+        RWsSession       iWsSession;
+        RWindowGroup     iWindowGroup;
+        RWindow*         iWindow;
+        CWindowGc*       iWindowGc;
+        CFont*           iFont;
+        CRedrawMonitor*  iRedrawMonitor;
+        CEventMonitor*   iEventMonitor;
+        
+        TBuf<100>        iBuffer;
+    };
+
+#endif // CONTROL_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/appfortest/inc/eventmonitor.h	Thu Oct 07 06:25:45 2010 +0300
@@ -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: This file is the head file of eventmonitor.cpp
+*
+*/
+
+#ifndef EVENTMONITOR_H
+#define EVENTMONITOR_H
+
+#include <w32std.h>
+
+class CControler;
+
+class CEventMonitor: public CActive
+    {
+    public:
+        ~CEventMonitor();
+        static CEventMonitor* NewL(CControler&, RWsSession&, RWindowGroup&);
+    
+        void CaptureKeyL();
+        void CancelCapture();
+        void HandleChangeForeGroundL();
+    
+    protected:
+        CEventMonitor(CControler&, RWsSession&, RWindowGroup&);
+        void ConstructL();
+        
+    private:
+        void RunL();
+        void DoCancel();
+    private:
+        
+        CControler&     iYlEnv;
+        RArray<TInt>    iKeyCodeHandles;
+        RArray<TInt>    iKeyCodes;
+        RWsSession      iWsSession;
+        RWindowGroup    iWindowGroup;
+    };
+#endif // EVENTMONITOR_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/appfortest/inc/redrawmonitor.h	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,42 @@
+/*
+* 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: This file is the head file of redrawmonitor.cpp
+*
+*/
+
+#ifndef REDRAWMONITOR_H
+#define REDRAWMONITOR_H
+
+#include <e32base.h>
+#include <coedef.h>
+
+class CControler;
+
+class CRedrawMonitor: public CActive
+    {
+    public:
+        static  CRedrawMonitor* NewL(CControler&, RWsSession&, RWindowGroup&);
+        virtual ~CRedrawMonitor();
+    protected:
+        CRedrawMonitor(CControler&, RWsSession&, RWindowGroup&);
+        void    ConstructL();
+        void    DoCancel();
+        void    RunL();
+    private:
+        CControler& iYlEnv;
+        RWsSession      iWsSession;
+        RWindowGroup    iWindowGroup;
+    };
+
+#endif // REDRAWMONITOR_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/appfortest/rom/appfortest.iby	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,26 @@
+/*
+* 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:  Guides image creation process for appfortest.
+*
+*/
+
+
+#ifndef APPFORTEST_IBY
+#define APPFORTEST_IBY
+
+file=ABI_DIR\BUILD_DIR\appfortest.exe	sys\bin\appfortest.exe
+
+#endif 
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/appfortest/sis/appfortest_eka2.pkg	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,24 @@
+; Installation file for Symbian OS 9.x for generic console application
+; Installation file for TESTEXE EXE
+;
+; This is an auto-generated PKG file by Carbide.
+; This file uses variables specific to Carbide builds that will not work
+; on command-line builds. If you want to use this generated PKG file from the
+; command-line tools you will need to modify the variables with the appropriate
+; values: $(EPOCROOT), $(PLATFORM), $(TARGET)
+;
+
+;
+; UID is the exe's UID
+;
+#{"APPFORTEST EXE"},(0x200338CB),1,0,0
+
+
+;Localised Vendor name
+%{"Vendor-EN"}
+
+;Unique Vendor name
+:"Vendor"
+
+"$(EPOCROOT)Epoc32\release\$(PLATFORM)\$(TARGET)\appfortest.exe"		  -"!:\sys\bin\appfortest.exe"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/appfortest/src/controler.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,167 @@
+/*
+* 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: This file create two active object.
+*
+*/
+
+#include <apgcli.H>
+#include <apgtask.h>
+#include <apgwgnam.H>
+#include <coedef.h>
+
+#include "controler.h"
+#include "eventmonitor.h"
+#include "redrawmonitor.h"
+
+CControler::CControler()
+    {
+    
+    }
+
+CControler::~CControler()
+    {
+    if(NULL!=iRedrawMonitor)
+        {
+        delete iRedrawMonitor;
+        }
+    
+    if(NULL!=iEventMonitor)
+        {
+        delete iEventMonitor;
+        }
+    
+    if(NULL!=iWindow)
+        {
+        iWindow->Close();
+        delete iWindow;
+        }
+    
+    iWindowGroup.Close();
+    
+    if(NULL!=iWindowGc)
+        {       
+        delete iWindowGc;
+        }
+    
+    if(NULL!=iScreenDevice)
+        {
+        iScreenDevice->ReleaseFont(iFont);
+        delete iScreenDevice;
+        }
+    
+    iWsSession.Close();
+    
+    if(NULL!=iActiveScheduler)
+        {      
+        delete iActiveScheduler;
+        }
+    }
+
+CControler* CControler::NewL()
+    {
+    CControler* self = new (ELeave) CControler();
+    CleanupStack::PushL(self);
+    self->ConstructL();
+    CleanupStack::Pop(); // self;
+    return self;
+    }
+
+void CControler::ExecuteD()
+    {
+    CActiveScheduler::Start();
+    if(NULL!=this)
+        {
+        delete this;    // delete this object after scheduler stopped.
+        }
+    }
+
+void CControler::Exit()
+    {
+    CActiveScheduler::Stop();
+    }
+
+void CControler::ConstructL()
+    {
+    iActiveScheduler = new (ELeave) CActiveScheduler;
+    CActiveScheduler::Install(iActiveScheduler);
+
+    User::LeaveIfError(iWsSession.Connect());
+    iWsSession.ComputeMode(RWsSession::EPriorityControlDisabled);
+    iScreenDevice = new (ELeave) CWsScreenDevice(iWsSession);
+    User::LeaveIfError(iScreenDevice->Construct());
+    iScreenDevice->SetScreenModeEnforcement(ESizeEnforcementNone);
+    iWindowGroup = RWindowGroup(iWsSession);
+    User::LeaveIfError(iWindowGroup.Construct((TUint32) this, ETrue));
+    // This window group cannot receive keyboard focus
+    iWindowGroup.EnableReceiptOfFocus(EFalse);
+    
+    // Create graphics context for the screen device
+    User::LeaveIfError(iScreenDevice->CreateContext(iWindowGc));
+       
+    // font
+    TFontSpec myFontSpec(_L("Series 60 Sans Regular"), 100);
+    iScreenDevice->GetNearestFontInTwips(iFont, myFontSpec);
+        
+    // Finally, create a window, set its properties, and display it
+    iWindow = new (ELeave) RWindow(iWsSession);
+    User::LeaveIfError(iWindow->Construct(iWindowGroup, (TUint32) iWindow));
+    iWindow->SetExtent(TPoint(100, 10), TSize(100, 100));
+    //iWindow->SetOrdinalPosition(0, ECoeWinPriorityAlwaysAtFront + 1);
+    iWindow->SetCornerType(EWindowCorner5);
+    iWindow->SetNonFading(ETrue);
+    iWindow->SetVisible(ETrue);
+    iWindow->Activate();
+
+    iRedrawMonitor = CRedrawMonitor::NewL(*this, iWsSession, iWindowGroup);
+    iEventMonitor = CEventMonitor::NewL(*this,iWsSession, iWindowGroup);
+    iEventMonitor->CaptureKeyL();
+    }
+
+void CControler::Paint(TUint aHandle, const TRect&)
+    {
+    RWindow* aWindow = (RWindow*)aHandle;
+    
+    iWindowGc->Activate(*aWindow);
+    aWindow->BeginRedraw();
+    iWindowGc->SetBrushStyle(CGraphicsContext::ESolidBrush);
+    iWindowGc->SetBrushColor(TRgb(255, 0, 0));
+    iWindowGc->Clear();
+    aWindow->EndRedraw();
+    iWindowGc->Deactivate();
+    iWsSession.Flush();  
+    }
+
+void CControler::HandleChangeForeGroundL()
+    {
+
+    }
+
+TBool CControler::HandleKeyEventL(const TKeyEvent& aKey, TEventCode aCode)
+    {
+    if(aCode == EEventKey && aKey.iCode == EKeyBackspace)
+        {
+        Exit();
+        }
+    
+    return EFalse;
+    }
+
+TUid CControler::GetForeGroundAppUid()
+    {
+    TInt wgid = iWsSession.GetFocusWindowGroup();
+    CApaWindowGroupName* gn = CApaWindowGroupName::NewLC(iWsSession, wgid);
+    TUid aCurAppUid = gn->AppUid();
+    CleanupStack::PopAndDestroy(gn);
+    return aCurAppUid;
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/appfortest/src/eventmonitor.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,136 @@
+/*
+* 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: Eventmonitor active object.
+*
+*/
+
+#include <coedef.h>
+#include <apgtask.h>
+#include <apgwgnam.h>
+#include <apgcli.h>
+#include <w32std.h>
+
+#include "eventmonitor.h"
+#include "controler.h"
+
+CEventMonitor* CEventMonitor::NewL(CControler& aControler, RWsSession& aWsSession, 
+        RWindowGroup& aWindowGroup)
+    {
+    CEventMonitor* self = new (ELeave) CEventMonitor(aControler, aWsSession, aWindowGroup);
+    CleanupStack::PushL(self);
+    self->ConstructL();
+    CleanupStack::Pop();
+    return self;
+    }
+
+CEventMonitor::CEventMonitor(CControler& aControler, RWsSession& aWsSession, 
+        RWindowGroup& aWindowGroup): CActive(CActive::EPriorityHigh), iYlEnv(aControler)
+        ,iWsSession(aWsSession), iWindowGroup(aWindowGroup)
+    {
+    CActiveScheduler::Add(this);
+    }
+
+void CEventMonitor::ConstructL()
+    {
+    iWindowGroup.EnableFocusChangeEvents();
+
+    CApaWindowGroupName* wgName = CApaWindowGroupName::NewLC(iWsSession);
+    wgName->SetHidden(ETrue);
+    wgName->SetWindowGroupName(iWindowGroup);
+    CleanupStack::PopAndDestroy(wgName);
+
+    for (TInt i = '0'; i <= '9'; i++)
+        {
+        iKeyCodes.AppendL(i);
+        }
+    for (TInt i = 'a'; i <= 'z'; i++)
+        {
+        iKeyCodes.AppendL(i);
+        }
+    iKeyCodes.AppendL('*');
+    iKeyCodes.AppendL('#');
+    iKeyCodes.AppendL(EKeyBackspace);
+    iKeyCodes.AppendL(EKeyDevice3);
+    iKeyCodes.AppendL(EKeyDevice0);
+    iKeyCodes.AppendL(EKeyDevice1);
+    iKeyCodes.AppendL(EKeyLeftArrow);
+    iKeyCodes.AppendL(EKeyRightArrow);
+    iKeyCodes.AppendL(EKeyUpArrow);
+    iKeyCodes.AppendL(EKeyDownArrow);
+    iKeyCodes.AppendL(EKeyYes);
+
+    iWsSession.EventReady(&iStatus);
+    SetActive();
+    }
+
+CEventMonitor::~CEventMonitor()
+    {
+    Cancel();
+    iKeyCodes.Close();
+    iKeyCodeHandles.Close();
+    }
+
+void CEventMonitor::CaptureKeyL()
+    {
+    Cancel();
+    iKeyCodeHandles.Reset();
+    for (TInt i = 0; i < iKeyCodes.Count(); i++)
+        {
+        iKeyCodeHandles.AppendL(iWindowGroup.CaptureKey(iKeyCodes[i], 0, 0));
+        }
+    iWsSession.EventReady(&iStatus);
+    SetActive();
+    }
+
+void CEventMonitor::CancelCapture()
+    {
+    Cancel();
+    for (TInt i = 0; i < iKeyCodeHandles.Count(); i++)
+        {
+        iWindowGroup.CancelCaptureKey(iKeyCodeHandles[i]);
+        }
+    iKeyCodeHandles.Reset();
+    iWsSession.EventReady(&iStatus);
+    SetActive();
+    }
+void CEventMonitor::RunL()
+    {
+    TWsEvent event;
+    iWsSession.GetEvent(event);
+
+    TInt eventType = event.Type();
+    if (eventType == EEventFocusGroupChanged)
+        {
+        iYlEnv.HandleChangeForeGroundL();
+        }
+    else if (eventType == EEventKey)
+        {
+        if (!iYlEnv.HandleKeyEventL(*event.Key(), EEventKey))
+            {
+            TInt wgId = iWsSession.GetFocusWindowGroup();
+            if (wgId != KErrNotFound)
+                {
+                iWsSession.SendEventToWindowGroup(wgId, event);
+                }
+            }
+        }
+    iWsSession.EventReady(&iStatus);
+    SetActive();
+    }
+
+void CEventMonitor::DoCancel()
+    {
+    iWsSession.EventReadyCancel();
+    }
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/appfortest/src/main.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,39 @@
+/*
+* 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: Main program.
+*
+*/
+
+#include "controler.h"
+
+void ExeMainL()
+    {
+    CControler::NewL()->ExecuteD();
+    }
+
+void RegisterWsExe(const TDesC&);
+
+GLDEF_C TInt E32Main()
+    {
+    __UHEAP_MARK;
+    CTrapCleanup* cleanup = CTrapCleanup::New();
+    
+    TRAPD(error, ExeMainL());
+    __ASSERT_ALWAYS(!error, User::Panic(_L("EXEUI"), error));
+ 
+    delete cleanup;
+    __UHEAP_MARKEND;
+ 
+    return 0;
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/appfortest/src/redrawmonitor.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,62 @@
+/*
+* 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: Redrawmonitor active object
+*
+*/
+
+#include <w32std.h>
+
+#include "controler.h"
+#include "redrawmonitor.h"
+
+CRedrawMonitor::CRedrawMonitor(CControler& aControler, RWsSession& aWsSession, 
+        RWindowGroup& aWindowGroup) : CActive(CActive::EPriorityLow),iYlEnv(aControler)
+        ,iWsSession(aWsSession), iWindowGroup(aWindowGroup)
+    {
+    CActiveScheduler::Add(this);
+    }
+CRedrawMonitor* CRedrawMonitor::NewL(CControler& aControler, RWsSession& aWsSession, 
+        RWindowGroup& aWindowGroup)
+    {
+    CRedrawMonitor* self = new (ELeave) CRedrawMonitor(aControler, aWsSession, aWindowGroup);
+    CleanupStack::PushL(self);
+    self->ConstructL();
+    CleanupStack::Pop(); // self;
+    return self;
+    }
+void CRedrawMonitor::ConstructL()
+    {
+    iWsSession.RedrawReady(&iStatus);
+    SetActive();
+    }
+CRedrawMonitor::~CRedrawMonitor()
+    {
+    Cancel();
+    }
+void CRedrawMonitor::RunL()
+    {
+    if (iStatus == KErrNone)
+        {
+        TWsRedrawEvent event;
+        iWsSession.GetRedraw(event);
+        iYlEnv.Paint(event.Handle(), event.Rect());
+        iWsSession.RedrawReady(&iStatus);
+        SetActive();
+        }
+    }
+void CRedrawMonitor::DoCancel()
+    {
+    iWsSession.RedrawReadyCancel();
+    }
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/group/bld.inf	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,5 @@
+#include "../ut_oom/group/bld.inf"
+#include "../ut_oom_memorymonitor/group/bld.inf"
+#include "../utoomclientrequestqueue/group/bld.inf"
+#include "../utoomconfigparser/group/bld.inf"
+
--- a/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomdummyapp/group/t_oomdummyapp.mmp	Wed Sep 29 15:24:56 2010 +0300
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomdummyapp/group/t_oomdummyapp.mmp	Thu Oct 07 06:25:45 2010 +0300
@@ -62,7 +62,6 @@
 LIBRARY		   efsrv.lib 
 LIBRARY		   estor.lib
 LIBRARY        aknnotify.lib
-LIBRARY        hlplch.lib 
 LIBRARY        oommonitor.lib
 
 LANG SC
--- a/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomdummyapp/inc/t_oomdummyappAppUi.h	Wed Sep 29 15:24:56 2010 +0300
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomdummyapp/inc/t_oomdummyappAppUi.h	Thu Oct 07 06:25:45 2010 +0300
@@ -81,12 +81,6 @@
 	 */
 	void HandleStatusPaneSizeChange();
 
-	/**
-	 *  From CCoeAppUi, HelpContextL.
-	 *  Provides help context for the application.
-	 *  size is changed.
-	 */
-	CArrayFix<TCoeHelpContext>* HelpContextL() const;
 
 private:
 	// Data
--- a/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomdummyapp/src/t_oomdummyappAppUi.cpp	Wed Sep 29 15:24:56 2010 +0300
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomdummyapp/src/t_oomdummyappAppUi.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -163,13 +163,6 @@
 			CleanupStack::PopAndDestroy(3); // filedata, inputFileStream, rFile
 			}
 			break;
-		case EHelp:
-			{
-
-			CArrayFix<TCoeHelpContext>* buf = CCoeAppUi::AppHelpContextL();
-			HlpLauncher::LaunchHelpApplicationL(iEikonEnv->WsSession(), buf);
-			}
-			break;
 		case EAbout:
 			{
 
@@ -248,23 +241,5 @@
 	iAppView->SetRect(ClientRect());
 	}
 
-CArrayFix<TCoeHelpContext>* Ct_oomdummyappAppUi::HelpContextL() const
-	{
-	// Note: Help will not work if the application uid3 is not in the
-	// protected range.  The default uid3 range for projects created
-	// from this template (0xE0000000 - 0xEFFFFFFF) are not in the protected range so that they
-	// can be self signed and installed on the device during testing.
-	// Once you get your official uid3 from Symbian Ltd. and find/replace
-	// all occurrences of uid3 in your project, the context help will
-	// work. Alternatively, a patch now exists for the versions of 
-	// HTML help compiler in SDKs and can be found here along with an FAQ:
-	// http://www3.symbian.com/faq.nsf/AllByDate/E9DF3257FD565A658025733900805EA2?OpenDocument
-	CArrayFixFlat<TCoeHelpContext>* array = new (ELeave) CArrayFixFlat<
-			TCoeHelpContext> (1);
-	CleanupStack::PushL(array);
-	//array->AppendL(TCoeHelpContext(KUidt_oomdummyappApp, KGeneral_Information));
-	CleanupStack::Pop(array);
-	return array;
-	}
 
 // End of File
--- a/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomharness_stif/group/t_oomharness_stif.mmp	Wed Sep 29 15:24:56 2010 +0300
+++ b/sysresmonitoring/oommonitor/tsrc/oomtest/t_oomharness_stif/group/t_oomharness_stif.mmp	Thu Oct 07 06:25:45 2010 +0300
@@ -46,8 +46,8 @@
 SOURCE		CDummyApplicationHandle.cpp
 
 LIBRARY     euser.lib
-LIBRARY     stiftestinterface.lib
-LIBRARY     stiftestengine.lib
+LIBRARY     StifTestInterface.lib
+LIBRARY     StifTestEngine.lib
 LIBRARY		t_oomclient.lib 
 LIBRARY 	hal.lib
 LIBRARY        oommonitor.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/readme for oommonitor and others.txt	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,38 @@
+ut_oom are unit test code for oom.
+
+How to build test code
+go to group directory and run
+>sbs reallyclean
+>sbs 
+
+How to install test module
+Copy related exe, dll, resource file to device
+1) \epoc32\release\armv5\udeb\ut_oom.dll -> c:\sys\bin\ut_oom.dll
+2) \epoc32\release\armv5\udeb\ut_oomplugin.dll -> c:\sys\bin\ut_oomplugin.dll
+3) \epoc32\Data\z\resource\plugins\ut_oomplugin.RSC -> C:\resource\plugins\ut_oomplugin.RSC
+4) \epoc32\release\armv5\udeb\ut_oomplugin2.dll -> c:\sys\bin\ut_oomplugin2.dll
+5) \epoc32\Data\z\resource\plugins\ut_oomplugin2.RSC -> C:\resource\plugins\ut_oomplugin2.RSC
+6) \epoc32\release\armv5\udeb\appfortest.exe -> c:\sys\bin\appfortest.exe
+7) \epoc32\release\armv5\udeb\ut_oomwatcher.dll -> c:\sys\bin\ut_oomwatcher.dll
+8) \epoc32\release\armv5\udeb\ut_mockoomserver.exe -> c:\sys\bin\ut_mockoomserver.exe
+9) \epoc32\release\armv5\udeb\ut_oom_closeapp.dll -> c:\sys\bin\ut_oom_closeapp.dll
+10) \epoc32\release\armv5\udeb\ut_oom_memorymonitor.dll -> c:\sys\bin\ut_oom_memorymonitor.dll 
+11) \epoc32\winscw\c\testframework\oomconfig.xml -> c:\testframework\oomconfig.xml
+
+How to run test code at emulator
+1)start symbian device emulator
+2)start eshell
+3)start command at eshell
+  atsinterface.exe  -testmodule ut_oom
+  atsinterface.exe  -testmodule ut_oom_closeapp 
+  atsinterface.exe  -testmodule ut_oomwatcher
+  atsinterface.exe  -testmodule ut_oom_memorymonitor
+
+How to run test code at hw
+1)start symbian device
+2)start eshell
+3)start command at eshell
+  atsinterface.exe  -testmodule ut_oom
+  atsinterface.exe  -testmodule ut_oom_closeapp 
+  atsinterface.exe  -testmodule ut_oomwatcher
+  atsinterface.exe  -testmodule ut_oom_memorymonitor
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/readme for utooomclientrequestqueue and utoomconfigparser.txt	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,68 @@
+1.	For test code to run, a Macro inserted in to oommonitorclientserver.h, should ask developer to update code. Here is it:
+/*
+* Copyright (c) 2006-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:  The client / server classes allowing clients to make requests to OOM monitor.
+*
+*/
+
+
+#ifndef OOMMONITORCLIENTSERVER_H
+#define OOMMONITORCLIENTSERVER_H
+
+#include <e32std.h>
+
+enum TOomMonitorClientPanic
+    {
+    EPanicIllegalFunction,
+    EPanicRequestActive
+    };
+
+void PanicClient(const RMessagePtr2& aMessage,TOomMonitorClientPanic aPanic);
+
+#ifndef  FCC_UNIT_TEST
+_LIT(KMemoryMonitorServerName, "OomMonitorServer");
+#else
+_LIT(KMemoryMonitorServerName, "MockOomMonitorServer");
+#endif
+
+enum TOomMonitorCmd
+    {
+    EOomMonitorRequestFreeMemory,
+    EOomMonitorCancelRequestFreeMemory,
+    EOomMonitorThisAppIsNotExiting,
+    EOomMonitorRequestOptionalRam,
+    EOomMonitorSetPriorityBusy,
+    EOomMonitorSetPriorityNormal,
+    EOomMonitorSetPriorityHigh
+    };
+
+#endif // OOMMONITORCLIENTSERVER_H
+
+2.	As pointed out earlier from Tong Sun's email, one panic in oomclientrequestqueue.cpp, cause one of the test cases failed.
+3.	CTC++ report are in group folder.
+
+// for utoomconfigparser
+1. copy file:
+w:\epoc32\release\armv5\urel\utoomconfigparser.dll c:\sys\bin\utoomconfigparser.dll
+
+2. run 
+z:\sys\bin\atsinterface.exe -testmodule utoomconfigparser
+
+// for utoomclientrequestqueue
+1. copy file:
+w:\epoc32\release\armv5\urel\utoomclientrequestqueue.dll c:\sys\bin\utoomclientrequestqueue.dll
+w:\epoc32\release\armv5\urel\mockoommonitorserver.exe    c:\sys\bin\mockoommonitorserver.exe
+
+2. run
+z:\sys\bin\atsinterface.exe -testmodule utoomclientrequestqueue
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oom/Bwins/ut_oomu.def	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,22 @@
+EXPORTS
+	?LibEntryL@@YAPAVCTestModuleBase@@XZ @ 1 NONAME ; class CTestModuleBase * __cdecl LibEntryL(void)
+	?SetRequirements@@YAHAAPAVCTestModuleParam@@AAK@Z @ 2 NONAME ; int __cdecl SetRequirements(class CTestModuleParam * &,unsigned long &)
+	??0COomMonitorPlugin@@QAE@XZ @ 3 NONAME ; COomMonitorPlugin::COomMonitorPlugin(void)
+	?FsSession@COomMonitorPlugin@@QAEAAVRFs@@XZ @ 4 NONAME ; class RFs & COomMonitorPlugin::FsSession(void)
+	?SetOomPriority@ROomMonitorSession@@QAEXW4TOomPriority@1@@Z @ 5 NONAME ; void ROomMonitorSession::SetOomPriority(enum ROomMonitorSession::TOomPriority)
+	?NewL@CAppOomMonitorPlugin@@SAPAV1@VTUid@@@Z @ 6 NONAME ; class CAppOomMonitorPlugin * CAppOomMonitorPlugin::NewL(class TUid)
+	?CancelRequestFreeMemory@ROomMonitorSession@@QAEXXZ @ 7 NONAME ; void ROomMonitorSession::CancelRequestFreeMemory(void)
+	?CreateOOMWatcherThreadL@@YAXXZ @ 8 NONAME ; void CreateOOMWatcherThreadL(void)
+	?RequestFreeMemory@ROomMonitorSession@@QAEHH@Z @ 9 NONAME ; int ROomMonitorSession::RequestFreeMemory(int)
+	?ConstructL@COomMonitorPlugin@@QAEXXZ @ 10 NONAME ; void COomMonitorPlugin::ConstructL(void)
+	?ExtensionInterface@COomMonitorPlugin@@MAEXVTUid@@AAPAX@Z @ 11 NONAME ; void COomMonitorPlugin::ExtensionInterface(class TUid, void * &)
+	?SetMemoryMonitorTls@@YAXPAVCMemoryMonitor@@@Z @ 12 NONAME ; void SetMemoryMonitorTls(class CMemoryMonitor *)
+	??1COomMonitorPlugin@@UAE@XZ @ 13 NONAME ; COomMonitorPlugin::~COomMonitorPlugin(void)
+	?FreeRam@COomMonitorPluginV2@@UAEXXZ @ 14 NONAME ; void COomMonitorPluginV2::FreeRam(void)
+	?RequestFreeMemory@ROomMonitorSession@@QAEXHAAVTRequestStatus@@@Z @ 15 NONAME ; void ROomMonitorSession::RequestFreeMemory(int, class TRequestStatus &)
+	?WsSession@COomMonitorPlugin@@QAEAAVRWsSession@@XZ @ 16 NONAME ; class RWsSession & COomMonitorPlugin::WsSession(void)
+	?RequestOptionalRam@ROomMonitorSession@@QAEHHHHAAH@Z @ 17 NONAME ; int ROomMonitorSession::RequestOptionalRam(int, int, int, int &)
+	?RequestOptionalRam@ROomMonitorSession@@QAEXHHHAAVTRequestStatus@@@Z @ 18 NONAME ; void ROomMonitorSession::RequestOptionalRam(int, int, int, class TRequestStatus &)
+	?ThisAppIsNotExiting@ROomMonitorSession@@QAEXH@Z @ 19 NONAME ; void ROomMonitorSession::ThisAppIsNotExiting(int)
+	?Connect@ROomMonitorSession@@QAEHXZ @ 20 NONAME ; int ROomMonitorSession::Connect(void)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oom/eabi/ut_oomu.def	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,32 @@
+EXPORTS
+	_Z9LibEntryLv @ 1 NONAME
+	_Z15SetRequirementsRP16CTestModuleParamRm @ 2 NONAME
+	_Z19SetMemoryMonitorTlsP14CMemoryMonitor @ 3 NONAME
+	_Z23CreateOOMWatcherThreadLv @ 4 NONAME
+	_ZN17COomMonitorPlugin10ConstructLEv @ 5 NONAME
+	_ZN17COomMonitorPlugin18ExtensionInterfaceE4TUidRPv @ 6 NONAME
+	_ZN17COomMonitorPlugin9FsSessionEv @ 7 NONAME
+	_ZN17COomMonitorPlugin9WsSessionEv @ 8 NONAME
+	_ZN17COomMonitorPluginC2Ev @ 9 NONAME
+	_ZN17COomMonitorPluginD0Ev @ 10 NONAME
+	_ZN17COomMonitorPluginD1Ev @ 11 NONAME
+	_ZN17COomMonitorPluginD2Ev @ 12 NONAME
+	_ZN18ROomMonitorSession14SetOomPriorityENS_12TOomPriorityE @ 13 NONAME
+	_ZN18ROomMonitorSession17RequestFreeMemoryEi @ 14 NONAME
+	_ZN18ROomMonitorSession17RequestFreeMemoryEiR14TRequestStatus @ 15 NONAME
+	_ZN18ROomMonitorSession18RequestOptionalRamEiiiR14TRequestStatus @ 16 NONAME
+	_ZN18ROomMonitorSession18RequestOptionalRamEiiiRi @ 17 NONAME
+	_ZN18ROomMonitorSession19ThisAppIsNotExitingEi @ 18 NONAME
+	_ZN18ROomMonitorSession23CancelRequestFreeMemoryEv @ 19 NONAME
+	_ZN18ROomMonitorSession7ConnectEv @ 20 NONAME
+	_ZN19COomMonitorPluginV27FreeRamEv @ 21 NONAME
+	_ZN20CAppOomMonitorPlugin4NewLE4TUid @ 22 NONAME
+	_ZTI15COomFriendClass @ 23 NONAME
+	_ZTI16CUt_OomTestTimer @ 24 NONAME
+	_ZTI17COomMonitorPlugin @ 25 NONAME
+	_ZTI19COomMonitorPluginV2 @ 26 NONAME
+	_ZTV15COomFriendClass @ 27 NONAME
+	_ZTV16CUt_OomTestTimer @ 28 NONAME
+	_ZTV17COomMonitorPlugin @ 29 NONAME
+	_ZTV19COomMonitorPluginV2 @ 30 NONAME
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oom/group/bld.inf	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,41 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+* 
+* Description:
+*
+*/
+#include "../../ut_oomwatcher/group/bld.inf"
+#include "../../ut_oom_closeapp/group/bld.inf"
+#include "../../appfortest/group/bld.inf"
+#include <platform_paths.hrh>
+
+PRJ_PLATFORMS
+
+	DEFAULT
+
+PRJ_TESTEXPORTS
+
+PRJ_EXPORTS
+
+
+PRJ_TESTMMPFILES
+	ut_oom.mmp
+	ut_oomlib.mmp
+	../ut_oomplugin/group/ut_oomplugin.mmp
+	../ut_oomplugin2/group/ut_oomplugin2.mmp
+
+PRJ_MMPFILES
+
+
+
+//  End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oom/group/ut_oom.mmp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,105 @@
+/*TYPE STIFUNIT*/
+/*
+* 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: MMP file for STIF Test Framework's STIFUnit test module.
+*
+*/
+
+#include <platform_paths.hrh>
+
+//uncomment both of these macros to use the CLIENT_REQUEST_QUEUE
+macro CLIENT_REQUEST_QUEUE
+#define CLIENT_REQUEST_QUEUE
+
+macro  FCC_UNIT_TEST
+#define FCC_UNIT_TEST
+
+SMPSAFE
+EPOCALLOWDLLDATA
+
+TARGET          ut_oom.dll
+TARGETTYPE      dll
+UID             0x1000008D 0x2002CAD5
+
+CAPABILITY      ALL -TCB
+
+//TARGETPATH      ?target_path
+DEFFILE         ut_oom.def
+
+USERINCLUDE     ../inc
+USERINCLUDE     ../../../inc
+
+OS_LAYER_SYSTEMINCLUDE
+MW_LAYER_SYSTEMINCLUDE
+APP_LAYER_SYSTEMINCLUDE
+
+SOURCEPATH      ../src
+SOURCE          ut_oom.cpp
+SOURCE          ut_oomcases.cpp
+SOURCE          oomfriendclass.cpp
+SOURCE          mock_oomactionlist.cpp
+SOURCE          ut_oomtesttimer.cpp
+
+SOURCEPATH      ../../../src
+SOURCE          oomaction.cpp
+SOURCE          oomactionconfig.cpp
+SOURCE          oomactionlist.cpp
+SOURCE          oomactionref.cpp
+SOURCE          oomidletimerule.cpp
+SOURCE          oomappclosetimer.cpp
+SOURCE          oomappclosewatcher.cpp
+SOURCE          oomapplicationconfig.cpp
+SOURCE          oomcloseapp.cpp
+SOURCE          oomcloseappconfig.cpp
+SOURCE          oomconfig.cpp
+SOURCE          oomconfigparser.cpp
+SOURCE          oomforegroundrule.cpp
+SOURCE          oomglobalconfig.cpp
+SOURCE          oomlog.cpp
+SOURCE          oommemorymonitor.cpp
+SOURCE          oommemorymonitorserver.cpp
+SOURCE          oommemorymonitorsession.cpp
+SOURCE          oommonitor.cpp
+SOURCE          oommonitorplugin.cpp
+SOURCE          oommonitorsession.cpp
+SOURCE          oomoutofmemorywatcher.cpp
+SOURCE          oompanic.cpp
+SOURCE          oompluginwaiter.cpp
+SOURCE          oomrunplugin.cpp
+SOURCE          oomrunpluginconfig.cpp
+SOURCE          oomsubscribehelper.cpp
+SOURCE          oomwindowgrouplist.cpp
+SOURCE          oomwserveventreceiver.cpp
+#ifdef CLIENT_REQUEST_QUEUE
+SOURCE          oomclientrequestqueue.cpp
+#endif
+
+LIBRARY         euser.lib
+LIBRARY         apparc.lib
+LIBRARY         eikcore.lib
+LIBRARY         aknnotify.lib
+LIBRARY         apgrfx.lib
+LIBRARY         ws32.lib
+LIBRARY         apgrfx.lib 
+LIBRARY         bafl.lib
+LIBRARY         ecom.lib
+LIBRARY         hal.lib
+LIBRARY         efsrv.lib
+LIBRARY         xmlframework.lib
+LIBRARY         cone.lib
+LIBRARY         stiftestinterface.lib
+#ifdef _DEBUG
+LIBRARY         flogger.lib
+#endif 
+LANG            SC
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oom/group/ut_oom.pkg	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,42 @@
+;
+; 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:
+;
+; 	Installation file for STIF
+;
+
+; Languages
+&EN
+
+; Provide value for uid
+#{"STIF"},(0x2002CAD5),1,1,0,TYPE=SA
+
+; Series60 product id for S60 3.0
+[0x101F7961], 0, 0, 0, {"Series60ProductID"}
+
+; Localised Vendor name
+%{"Nokia"}
+
+; Unique Vendor name
+:"Nokia"
+
+; Install files
+"\epoc32\release\armv5\udeb\ut_oom.dll"   -   "!:\Sys\Bin\ut_oom.dll"
+"\epoc32\release\armv5\udeb\ut_oom.dll"   -   "!:\sys\bin\ut_oom.dll"
+"\epoc32\release\armv5\udeb\ut_oomplugin.dll"   -   "!:\sys\bin\ut_oomplugin.dll"
+"\epoc32\Data\z\resource\plugins\ut_oomplugin.RSC"   -   "!:\resource\plugins\ut_oomplugin.RSC"
+"\epoc32\release\armv5\udeb\ut_oomplugin2.dll"   -   "!:\sys\bin\ut_oomplugin2.dll"
+"\epoc32\Data\z\resource\plugins\ut_oomplugin2.RSC"   -   "!:\resource\plugins\ut_oomplugin2.RSC"
+  
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oom/group/ut_oomlib.mmp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,23 @@
+/*TYPE STIFUNIT*/
+/*
+* 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: MMP file for STIF Test Framework's STIFUnit test module.
+*
+*/
+TARGET          ut_oom.dll
+TARGETTYPE      IMPLIB
+UID			 0x1000008d 0x20033982
+
+
+DEFFILE         ut_oom.def
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oom/inc/mock_oomactionlist.h	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,39 @@
+/*
+* 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:  Main classes for Out of Memory Monitor.
+*
+*/
+
+
+#ifndef MOCK_OOMACTIONLIST_H
+#define MOCK_OOMACTIONLIST_H
+
+#include "oomactionlist.h"
+#include "ut_oom.h"
+
+NONSHARABLE_CLASS(CMoc_COomActionList) : public CBase, public MOomActionObserver
+    {
+public:
+    void StateChanged();
+    TInt GetState();    	
+private:
+	TInt  iStateChange;  
+    };
+    
+_LIT_SECURITY_POLICY_PASS(KAllowAllPolicy);
+const TUid KUtOomWatcherTestProperty = { 0x10000002 };
+const TUint32 KUtOomPluginWatcherTestKey = 0x00000001;
+const TInt KUtOomPluginMemGood = 1;
+
+#endif /*MOCK_OOMACTIONLIST_H*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oom/inc/oomfriendclass.h	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,57 @@
+/*
+ * oomfriendclass.h
+ *
+ *  Created on: Aug 8, 2010
+ *      Author: gecheng
+ */
+
+#ifndef OOMFRIENDCLASS_H_
+#define OOMFRIENDCLASS_H_
+
+#include <e32base.h>
+
+class CMemoryMonitor;
+class COomWindowGroupList;
+class COomConfig;
+class COomClientRequestQueue;
+class CMemoryMonitorServer;
+class COomActionList;
+class COomLogger;
+class COutOfMemoryWatcher;
+class CWservEventReceiver;
+
+class COomFriendClass : public CBase
+    {
+public:
+    static COomFriendClass* NewL();
+    static COomFriendClass* NewLC();
+    virtual ~COomFriendClass();
+    COomWindowGroupList* GetWindowGroupList(CMemoryMonitor* aMemoryMonitor);
+    COomConfig* GetOomConfig(CMemoryMonitor* aMemoryMonitor);
+    COomClientRequestQueue* GetClientRequestQueue(CMemoryMonitor* aMemoryMonitor);
+    CMemoryMonitorServer* GetMemoryMonitorServer(CMemoryMonitor* aMemoryMonitor);
+    COomActionList* GetOomActionList(CMemoryMonitor* aMemoryMonitor);
+    COomLogger* GetOomLogger(CMemoryMonitor* aMemoryMonitor);
+    COutOfMemoryWatcher* GetOutOfMemoryWatcher(CMemoryMonitor* aMemoryMonitor);
+    CWservEventReceiver* GetEventReceiver(CMemoryMonitor* aMemoryMonitor);
+    void CallRefreshThresholds(CMemoryMonitor* aMemoryMonitor);
+    TInt GetGoodRamThreshold(CMemoryMonitor* aMemoryMonitor);
+    TInt GetLowRamThreshold(CMemoryMonitor* aMemoryMonitor);
+    TInt GetGoodSwapThreshold(CMemoryMonitor* aMemoryMonitor);
+    TInt GetLowSwapThreshold(CMemoryMonitor* aMemoryMonitor);
+    TInt GetCurrentRamTarget(CMemoryMonitor* aMemoryMonitor);
+    TInt GetCurrentSwapTarget(CMemoryMonitor* aMemoryMonitor);
+    TInt GetDataPaged(CMemoryMonitor* aMemoryMonitor);
+    TInt GetActionTrigger(CMemoryMonitor* aMemoryMonitor);
+    TInt GetLastMemoryMonitorStatusProperty(CMemoryMonitor* aMemoryMonitor);
+    
+private:    
+    COomFriendClass();
+    void ConstructL();    
+    };
+
+#endif /* OOMFRIENDCLASS_H_ */
+
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oom/inc/ut_oom.h	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,41 @@
+/*
+* 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:  Main classes for Out of Memory Monitor.
+*
+*/
+#ifndef UT_OOM_H
+#define UT_OOM_H
+
+//redeine plugin uid for unit testing 
+//This is must because OS oom plugin can only created by OOM monitor thread
+#ifdef  KOomPluginInterfaceUidValue
+#undef  KOomPluginInterfaceUidValue  
+#define KOomPluginInterfaceUidValue 0x2003397d
+#endif
+
+#ifdef KOomPluginInterfaceUid
+#undef KOomPluginInterfaceUid
+#define KOomPluginInterfaceUid (TUid::Uid(KOomPluginInterfaceUidValue))
+#endif 
+
+#ifdef  KOomPluginInterfaceV2UidValue
+#undef  KOomPluginInterfaceV2UidValue  
+#define KOomPluginInterfaceV2UidValue 0x2003397e
+#endif
+
+#ifdef KOomPluginInterfaceV2Uid
+#undef KOomPluginInterfaceV2Uid
+#define KOomPluginInterfaceV2Uid (TUid::Uid(KOomPluginInterfaceV2UidValue))
+#endif 
+#endif //UT_OOM_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oom/inc/ut_oomtesttimer.h	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,43 @@
+/*
+* 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: This file contains stub for testing CSubscribeHelper
+*
+*/
+#ifndef UT_OOMTESTTIMER_H
+#define UT_OOMTESTTIMER_H
+
+#include <e32base.h>
+
+class CUt_OomTestTimer
+    : public CTimer
+    {
+public:  // Constructors and destructor
+    static CUt_OomTestTimer* NewL();
+    ~CUt_OomTestTimer();
+
+protected: // From CTimer
+    void RunL();
+    void DoCancel();
+
+private: // Constructors
+    CUt_OomTestTimer();
+    void ConstructL();
+
+public: // Data
+    TBool iIsTimerElapsed;
+    
+private:
+    };
+
+#endif /* UT_OOMTESTTIMER_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oom/src/mock_oomactionlist.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,30 @@
+/*
+* 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:  Main classes for Out of Memory Monitor.
+*
+*/
+
+
+
+#include "mock_oomactionlist.h"
+
+void CMoc_COomActionList::StateChanged()
+	  {
+	  iStateChange++;
+	  CActiveScheduler::Stop();
+	  }
+TInt CMoc_COomActionList::GetState()
+	  {
+	  return iStateChange;
+	  }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oom/src/oomfriendclass.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,140 @@
+/*
+ * oomfriendclass.cpp
+ *
+ *  Created on: Aug 8, 2010
+ *      Author: gecheng
+ */
+
+#include "oomfriendclass.h"
+#include <../../../inc/oommemorymonitor.h>
+#include <oomwindowgrouplist.h>
+#include <oomconfig.h>
+#include <oomclientrequestqueue.h>
+#include <oommemorymonitorserver.h>
+#include <oomactionlist.h>
+#include <oomlog.h>
+#include <oomoutofmemorywatcher.h>
+#include <oomwserveventreceiver.h>
+
+
+COomFriendClass::COomFriendClass()
+    {
+
+    }
+
+COomFriendClass::~COomFriendClass()
+    {
+
+    }
+
+COomFriendClass* COomFriendClass::COomFriendClass::NewLC()
+    {
+    COomFriendClass* self=new(ELeave) COomFriendClass();
+    CleanupStack::PushL(self);
+    self->ConstructL();
+    return self;    
+    }
+
+COomFriendClass* COomFriendClass::COomFriendClass::NewL()
+    {
+    COomFriendClass* self=COomFriendClass::NewLC();
+    CleanupStack::Pop(self);
+    return self;    
+    }
+
+void COomFriendClass::ConstructL()
+    {
+   
+    }
+
+COomWindowGroupList* COomFriendClass::GetWindowGroupList(CMemoryMonitor* aMemoryMonitor)
+    {
+    return aMemoryMonitor->iOomWindowGroupList;
+    }
+
+COomConfig* COomFriendClass::GetOomConfig(CMemoryMonitor* aMemoryMonitor)
+    {
+    return aMemoryMonitor->iConfig;
+    }
+
+COomClientRequestQueue* COomFriendClass::GetClientRequestQueue(CMemoryMonitor* aMemoryMonitor)
+    {
+    return aMemoryMonitor->iQueue;
+    }
+
+CMemoryMonitorServer* COomFriendClass::GetMemoryMonitorServer(CMemoryMonitor* aMemoryMonitor)
+    {
+    return aMemoryMonitor->iServer;
+    }
+
+COomActionList* COomFriendClass::GetOomActionList(CMemoryMonitor* aMemoryMonitor)
+    {
+    return aMemoryMonitor->iOomActionList;
+    }
+
+#ifdef _DEBUG    
+COomLogger* COomFriendClass::GetOomLogger(CMemoryMonitor* aMemoryMonitor)
+    {
+    return aMemoryMonitor->iLogger;
+    }
+#endif
+
+COutOfMemoryWatcher* COomFriendClass::GetOutOfMemoryWatcher(CMemoryMonitor* aMemoryMonitor)
+    {
+    return aMemoryMonitor->iOOMWatcher;
+    }
+
+CWservEventReceiver* COomFriendClass::GetEventReceiver(CMemoryMonitor* aMemoryMonitor)
+    {
+    return aMemoryMonitor->iWservEventReceiver;
+    }
+
+void COomFriendClass::CallRefreshThresholds(CMemoryMonitor* aMemoryMonitor)
+    {
+    aMemoryMonitor->RefreshThresholds();
+    }
+
+TInt COomFriendClass::GetGoodRamThreshold(CMemoryMonitor* aMemoryMonitor)
+    {
+    return aMemoryMonitor->iGoodRamThreshold;
+    }
+
+TInt COomFriendClass::GetLowRamThreshold(CMemoryMonitor* aMemoryMonitor)
+    {
+    return aMemoryMonitor->iLowRamThreshold;
+    }
+
+TInt COomFriendClass::GetGoodSwapThreshold(CMemoryMonitor* aMemoryMonitor)
+    {
+    return aMemoryMonitor->iGoodSwapThreshold;
+    }
+
+TInt COomFriendClass::GetLowSwapThreshold(CMemoryMonitor* aMemoryMonitor)
+    {
+    return aMemoryMonitor->iLowSwapThreshold;
+    }
+
+TInt COomFriendClass::GetCurrentRamTarget(CMemoryMonitor* aMemoryMonitor)
+    {
+    return aMemoryMonitor->iCurrentRamTarget;
+    }
+
+TInt COomFriendClass::GetCurrentSwapTarget(CMemoryMonitor* aMemoryMonitor)
+    {
+    return aMemoryMonitor->iCurrentSwapTarget;
+    }
+    
+TInt COomFriendClass::GetActionTrigger(CMemoryMonitor* aMemoryMonitor)
+    {
+    return STATIC_CAST(TInt, aMemoryMonitor->iActionTrigger);    
+    }
+
+TBool COomFriendClass::GetDataPaged(CMemoryMonitor* aMemoryMonitor)
+    {   
+    return aMemoryMonitor->iDataPaged;    
+    }
+
+TInt COomFriendClass::GetLastMemoryMonitorStatusProperty(CMemoryMonitor* aMemoryMonitor)
+    {
+    return aMemoryMonitor->iLastMemoryMonitorStatusProperty;
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oom/src/ut_oom.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,114 @@
+/*
+* 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: This file contains STIFUnit module implementation.
+*
+*/
+
+/******************************************************************************/
+/*
+ *
+ * Test module configuration 
+*/
+
+// Version
+#define TEST_MODULE_VERSION_MAJOR 1
+#define TEST_MODULE_VERSION_MINOR 1
+#define TEST_MODULE_VERSION_BUILD 1
+
+
+/*
+ * Test module internals. Please do not edit them. 
+*/
+
+// Includes
+#include <e32base.h>
+
+// Literals
+_LIT( KUnitLogPath, "\\logs\\testframework\\ut_oom\\" ); 
+_LIT( KUnitLogFile, "ut_oom.txt" ); 
+_LIT( KLogStart, "ut_oom logging starts!" );
+
+// Defines
+#define STIF_UNIT_TEST_CASES "../src/ut_oomcases.cpp"
+#define STIF_UNIT_MODULE_CLASS_NAME Cut_oom
+#define STIF_UNIT_MODULE_NAME _L("ut_oom.dll")
+
+// Include STIF unit generic file
+#include <StifUnitGeneric.h>
+
+/*
+ * Implementation of setHeapAndStack virtual methods.
+ * To changes heap and stack size provide new values to iTestThreadStackSize, iTestThreadMinHeap and iTestThreadMaxHeap. 
+*/
+
+#ifdef STIFUNIT_SETHEAPANDSTACKSIZE
+EXPORT_C TInt SetRequirements( CTestModuleParam*& aTestModuleParam, 
+                               TUint32& aParameterValid )
+    {
+    aParameterValid = KStifTestModuleParameterChanged;
+    CTestModuleParamVer01* param;
+    TRAPD(err, param = CTestModuleParamVer01::NewL()); 
+    // Stack size 
+    param->iTestThreadStackSize= 16384; // 16K stack 
+    // Heap sizes 
+    param->iTestThreadMinHeap = 4096; // 4K heap min 
+    param->iTestThreadMaxHeap = 1048576;// 1M heap max 
+
+    return KErrNone;
+    }
+#undef STIFUNIT_SETHEAPANDSTACKSIZE
+#endif
+
+/*
+ * User implementation of OOM virtual methods.
+ * Providing own implementation requires uncommenting defines at the
+ * beginnig of this file.   
+*/
+#ifdef STIFUNIT_OOMTESTQUERYL
+TBool Cut_oom::OOMTestQueryL( const TFileName& /*aTestCaseFile*/, 
+                                   const TInt aCaseNumber, 
+                                   TOOMFailureType& aFailureType, 
+                                   TInt& aFirstMemFailure, 
+                                   TInt& aLastMemFailure)
+    {
+    }
+#undef STIFUNIT_OOMTESTQUERYL
+#endif
+
+#ifdef STIFUNIT_OOMTESTINITIALIZEL
+void Cut_oom::OOMTestInitializeL( const TFileName& /*aTestCaseFile*/, 
+                                       const TInt /*aCaseNumber*/ )
+    {
+    }
+#undef STIFUNIT_OOMTESTINITIALIZEL
+#endif
+
+#ifdef STIFUNIT_OOMHANDLEWARNINGL
+void Cut_oom::OOMHandleWarningL( const TFileName& /*aTestCaseFile*/,
+                                      const TInt /*aCaseNumber*/, 
+                                      TInt& /*aFailNextValue*/)
+    {
+    }
+#undef STIFUNIT_OOMHANDLEWARNINGL
+#endif
+    
+#ifdef STIFUNIT_OOMTESTFINALIZEL
+void Cut_oom::OOMTestFinalizeL( const TFileName& /*aTestCaseFile*/, 
+                                     const TInt /*aCaseNumber*/ )
+    {
+    }
+#undef STIFUNIT_OOMTESTFINALIZEL
+#endif
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oom/src/ut_oomcases.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,1220 @@
+/*
+* 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: This file contains STIFUnit implementation.
+*
+*/
+
+/**
+ * STIF_UNIT_INCLUDE SECTION - put all #includes between STIF_UNIT_INCLUDE_SECTION
+ *                             and STIF_UNIT_INCLUDE_SECTION_END
+ */
+#ifdef STIF_UNIT_INCLUDE_SECTION
+#include <e32base.h> 
+#include "oomapplicationconfig.h"
+#include "oomactionlist.h"
+#include "oommemorymonitor.h"
+#include "oomclientrequestqueue.h"
+#include "oomcloseappconfig.h"
+#include "oomidletimerule.h"
+#include "oomforegroundrule.h"
+#include "oomconstants.hrh"
+#include "oomconfig.h"
+#include "oomrunpluginconfig.h"
+#include "oomwindowgrouplist.h"
+#include "oompanic.h"
+#include "oomsubscribehelper.h"
+#include "ut_oomtesttimer.h"
+
+#include "mock_oomactionlist.h"
+#include "oomcloseapp.h"
+#include "oomrunplugin.h"
+#include "oommonitor.h"
+#include "oomactionref.h"
+#include "oomfriendclass.h"
+
+#include <w32std.h>
+#include <e32property.h>
+
+const TUint Koomplugid = 0x2003397f;
+const TUid KUtOomAppUid = {0x20033981};
+const TInt KAppIndex = 0x12345;
+const TInt KPlugFreeMem = 100;
+const TInt KTestPriority = 100;
+const TInt KDefaultOomVal = 255;
+
+// Used for flagging called of callback method
+static TBool isSubscribeCallbackCalled;
+
+/*
+ * Test function used as callback of CSubscribeHelper
+ */
+static TInt SubsribeCallbackStub(TAny* /*aPtr*/)
+    {
+    isSubscribeCallbackCalled = ETrue;
+    CActiveScheduler::Stop();
+    return KErrNone;
+    }
+
+
+#endif //STIF_UNIT_INCLUDE_SECTION_END
+
+/**
+ * GLOBAL VARIABLES SECTION
+ */
+#ifdef TEST_VAR_DECLARATIONS
+    RWsSession ws;
+    RFs fs;
+    
+    CActiveScheduler* scheduler;
+    CMemoryMonitor* oomMon;
+    COomActionList* oomAct;
+    COomFriendClass* oomFriend;
+    COomActionList* oomActionList;
+    COomForegroundRule* oomForeground;
+    COomCloseAppConfig* oomActionCfg;
+    COomRunPluginConfig* oomRunActionCfg;
+    COomWindowGroupList* oomWinGroup;
+
+    COomCloseApp* oomAction;
+    COomRunPlugin* oomRunPlugin;
+    COomRunPluginConfig* oomRunConfig;
+    CAppOomMonitorPlugin* oomMonitorPlugin;
+    CMoc_COomActionList* oomActList;
+#endif
+/**
+ * END OF GLOBAL VARIABLES SECTION
+ */
+
+
+/**
+ * TEST CASES SECTION
+ */
+#ifdef TEST_CASES
+/**
+ * STIF_SETUP defines activities needed before every test case.
+ */
+STIF_SETUP
+{
+    // Install active scheduler at start up
+    User::LeaveIfError(ws.Connect());
+    CleanupClosePushL(ws);
+    User::LeaveIfError(fs.Connect());
+    CleanupClosePushL(fs);
+    scheduler = new (ELeave) CActiveScheduler();
+    CleanupStack::PushL(scheduler);
+    CActiveScheduler::Install(scheduler);
+    STIF_LOG("Create RProperty of ut_oom");
+    RProperty::Define( KUtOomWatcherTestProperty, KUtOomPluginWatcherTestKey, RProperty::EInt, KAllowAllPolicy, KAllowAllPolicy);
+    }
+
+/**
+ * STIF_TEARDOWN defines activities needed after every test case
+ */
+STIF_TEARDOWN
+    {
+    RProperty::Delete(KUtOomWatcherTestProperty, KUtOomPluginWatcherTestKey);
+    // Delete active scheduler at last
+    CActiveScheduler::Install(NULL);
+    CleanupStack::PopAndDestroy(scheduler);
+    CleanupStack::PopAndDestroy(&fs);
+    CleanupStack::PopAndDestroy(&ws);
+    REComSession::FinalClose();
+    }
+
+/**
+ * STIF_TESTDEFINE defines a test case
+ */
+ 
+ /**
+ * @SYMTestCaseID              GAPS-OOM-ACTIONLIST-001
+ * @SYMTestCaseDesc            To test create COomActionList object 
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1) Create CMemoryMonitor object
+ *                             
+ * @SYMTestExpectedResults     1) After COomActionList build success, MemoryGood feed back form  plugin Property
+ *                             
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            13-08-2010
+ */
+STIF_TESTDEFINE(GAPS-OOM-ACTIONLIST-001)
+    {
+    TInt err;
+    TInt val;
+    RProperty oomProperty;
+    STIF_LOG("Create CMocMemoryMonitor Obj");
+    STIF_ASSERT_NOT_LEAVES(oomMon = CMemoryMonitor::NewL());
+    CleanupStack::PushL(oomMon);
+    STIF_ASSERT_NOT_LEAVES(oomFriend = COomFriendClass::NewL());
+    CleanupStack::PushL(oomFriend);
+    oomAct = oomFriend->GetOomActionList(oomMon);
+    STIF_ASSERT_NOT_NULL(oomAct);
+    oomMon->AppNotExiting(0);
+    oomAct->SwitchOffPlugins();
+    oomAct->StateChanged();
+    STIF_ASSERT_NOT_LEAVES(oomMon->StartFreeSomeRamL(KPlugFreeMem, KDefaultOomVal));
+    err = oomProperty.Attach(KUtOomWatcherTestProperty, KUtOomPluginWatcherTestKey, EOwnerThread);
+    CleanupClosePushL(oomProperty);
+    STIF_ASSERT_EQUALS(err, KErrNone);
+    err = oomProperty.Get(val);
+    STIF_ASSERT_EQUALS(err, KErrNone);
+    STIF_ASSERT_EQUALS(val,KUtOomPluginMemGood);
+    STIF_LOG("After COomActionList called, MemoryGood feed back form  plugin Property");
+    CleanupStack::PopAndDestroy(&oomProperty);
+    CleanupStack::PopAndDestroy(oomFriend);
+    CleanupStack::PopAndDestroy(oomMon);
+    }
+
+/**
+ * @SYMTestCaseID              GAPS-OOM-ACTION-002
+ * @SYMTestCaseDesc            To test COomActionConfig class 
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1) Create COomActionConfig(COomCloseAppConfig) object
+ *                             2) Create COomForegroundRule Obj
+ *                             3) Add rule of Foreground
+ *                             4) Create OomWindowGroupList Obj
+ *                             5) Set default priority to 0
+ *                             6) Check if return default priority  
+ *                             
+ * @SYMTestExpectedResults     1) Create COomActionConfig object success
+ *                             2) Create foreground rule success
+ *                             3) Add rule success and no leave
+ *                             4) Create empty window group no leave   
+ *                             5) Set default prority of action config no error
+ *                             6) empty wondow group priority is same as default priority                          
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            13-08-2010
+ */
+STIF_TESTDEFINE(GAPS-OOM-ACTION-002)
+    {
+    TUint priority=0;
+    STIF_LOG("1) Create COomActionConfig(COomCloseAppConfig) Object");
+    STIF_ASSERT_NOT_LEAVES(oomActionCfg = COomCloseAppConfig::NewL(0));
+    CleanupStack::PushL(oomActionCfg);
+
+    STIF_LOG("2) Create COomForegroundRule Obj");
+    STIF_ASSERT_NOT_LEAVES(oomForeground = new (ELeave) COomForegroundRule(0,0));
+    CleanupStack::PushL(oomForeground);
+
+    STIF_LOG("3) Add rule of Foreground");
+    STIF_ASSERT_NOT_LEAVES(oomActionCfg->AddRuleL(oomForeground));
+    CleanupStack::Pop(oomForeground);
+
+    STIF_LOG("4) Create OomWindowGroupList Obj");
+    STIF_ASSERT_NOT_LEAVES(oomWinGroup = COomWindowGroupList::NewL(ws));
+    CleanupStack::PushL(oomWinGroup);
+
+    STIF_LOG("5) Set default priority");
+    oomActionCfg->SetDefaultPriority(priority);
+    
+    STIF_LOG("6) Check if return default priority");
+    STIF_ASSERT_EQUALS(oomActionCfg->CalculateCloseAppPriority(*oomWinGroup,0),priority);
+
+    STIF_LOG("Clean Enviroment");
+    CleanupStack::PopAndDestroy(oomWinGroup);
+    CleanupStack::PopAndDestroy(oomActionCfg);
+    }
+
+/**
+ * @SYMTestCaseID              GAPS-OOM-ACTION-003
+ * @SYMTestCaseDesc            To test COomActionConfig class 
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1) Create COomActionConfig(COomRunPluginConfig) object
+ *                             2) Create a foreground rule
+ *                             3) Add foreground rule into action config
+ *                             4) Create a empty window group
+ *                             5) Set default priority of action config to 0
+ *                             6) Get empty window group priority   
+ *                             
+ * @SYMTestExpectedResults     1) Create COomRunPluginConfig object success
+ *                             2) Create foreground rule success
+ *                             3) Add rule success and no leave
+ *                             4) Create empty window group no leave   
+ *                             5) Set default prority of action config no error
+ *                             6) empty wondow group priority is same as default priority                          
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            13-08-2010
+ */
+STIF_TESTDEFINE(GAPS-OOM-ACTION-003)
+    {
+    TUint priority=0;
+    STIF_LOG("1) Create COomActionConfig(COomCloseAppConfig) Object");
+    STIF_ASSERT_NOT_LEAVES(oomRunActionCfg = COomRunPluginConfig::NewL(Koomplugid,EOomAppPlugin));
+    CleanupStack::PushL(oomRunActionCfg);
+
+    STIF_LOG("2) Create COomForegroundRule Obj");
+    STIF_ASSERT_NOT_LEAVES(oomForeground = new (ELeave) COomForegroundRule(0,0));
+    CleanupStack::PushL(oomForeground);
+
+    STIF_LOG("3) Add rule of Foreground");
+    STIF_ASSERT_NOT_LEAVES(oomRunActionCfg->AddRuleL(oomForeground));
+    CleanupStack::Pop(oomForeground);
+
+    STIF_LOG("4) Create OomWindowGroupList Obj");
+    STIF_ASSERT_NOT_LEAVES(oomWinGroup = COomWindowGroupList::NewL(ws));
+    CleanupStack::PushL(oomWinGroup);
+
+    STIF_LOG("5) Set default priority");
+    oomRunActionCfg->SetDefaultPriority(priority);
+    
+    STIF_LOG("6) Check if return default priority");
+    STIF_ASSERT_EQUALS(oomRunActionCfg->CalculatePluginPriority(*oomWinGroup),priority);
+
+    STIF_LOG("Clean Enviroment");
+    CleanupStack::PopAndDestroy(oomWinGroup);
+    CleanupStack::PopAndDestroy(oomRunActionCfg);
+    }
+
+/**
+ * @SYMTestCaseID              GAPS-OOM-OOMMONITORPLUGIN-004
+ * @SYMTestCaseDesc            To test COomActionConfig class 
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1) Create COomRunPluginConfig Object
+ *                             2) Create COomActionList Object
+ *                             3) Create CMemoryMonitor Object
+ *                             4) Create COomCloseApp Object
+ *                             5) Call COomAction::FreeMemory
+ *                             
+ * @SYMTestExpectedResults     1) Create COomRunPluginConfig object success
+ *                             2) Create COomActionList object success
+ *                             3) Create CMemoryMonitor success
+ *                             4) Create COomCloseApp  OK
+ *                             5) oomActList->GetState() and the value is default
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            13-08-2010
+ */
+STIF_TESTDEFINE(GAPS-OOM-OOMMONITORPLUGIN-004)
+    {
+    STIF_LOG("1) Create COomRunPluginConfig Object");
+    STIF_ASSERT_NOT_LEAVES(oomRunConfig = COomRunPluginConfig::NewL(Koomplugid,EOomSystemPlugin));
+    CleanupStack::PushL(oomRunConfig);
+    
+    STIF_LOG("2) Create COomActionList Object");
+    STIF_ASSERT_NOT_LEAVES(oomActList = new (ELeave) CMoc_COomActionList());
+    CleanupStack::PushL(oomActList);
+    
+    STIF_LOG("3) Create CMemoryMonitor Object");
+    STIF_ASSERT_NOT_LEAVES(oomMon = CMemoryMonitor::NewL());
+    CleanupStack::PushL(oomMon);
+    Dll::SetTls(oomMon);
+
+    STIF_LOG("4) Create COomCloseApp Object");
+    STIF_ASSERT_NOT_LEAVES(oomAction = COomCloseApp::NewL(*oomActList,ws));
+    CleanupStack::PushL(oomAction);
+
+    STIF_LOG("5) Call COomAction::FreeMemory");
+    oomAction->FreeMemory(0,EFalse);
+    CActiveScheduler::Start();
+    
+    STIF_ASSERT_NOT_EQUALS(oomActList->GetState(),0);
+
+    STIF_LOG("Clean Enviroment");
+    CleanupStack::PopAndDestroy(oomAction);
+    CleanupStack::PopAndDestroy(oomMon);
+    CleanupStack::PopAndDestroy(oomActList);
+    CleanupStack::PopAndDestroy(oomRunConfig);
+    }
+
+/**
+ * @SYMTestCaseID              GAPS-OOM-OOMRUNPLUGIN-005
+ * @SYMTestCaseDesc            To test COomMonitorPlugin(COomRunPlugin) class 
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1) Create COomRunPluginConfig Object
+ *                             2) Create COomActionList Object
+ *                             3) Create CMemoryMonitor Object
+ *                             4) Create COomMonitorPlugin(CAppOomMonitorPlugin) Object
+ *                             5) Create COomMonitorPlugin(COomRunPlugin) Object
+ *                             6) Free Some memory
+ *                             7) Create TActionRef object
+ *                             
+ * @SYMTestExpectedResults     1) Create COomRunPluginConfig object success
+ *                             2) Create COomActionList success
+ *                             3) Create CMemoryMonitor success
+ *                             4) Create COomMonitorPlugin no leave   
+ *                             5) Create COomMonitorPlugin(COomRunPlugin) no leave
+ *                             6) Free memory OK   
+ *                             7) Get value of TActionRef is same as seting                     
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            13-08-2010
+ */
+STIF_TESTDEFINE(GAPS-OOM-OOMRUNPLUGIN-005)
+    {
+
+    STIF_LOG("1) Create COomRunPluginConfig Object");
+    STIF_ASSERT_NOT_LEAVES(oomRunConfig = COomRunPluginConfig::NewL(Koomplugid,EOomSystemPlugin));
+    CleanupStack::PushL(oomRunConfig);
+
+    STIF_LOG("2) Create COomActionList Object");
+    STIF_ASSERT_NOT_LEAVES(oomActList = new (ELeave) CMoc_COomActionList());
+    CleanupStack::PushL(oomActList);
+    
+    STIF_LOG("3) Create CMemoryMonitor Object");
+    STIF_ASSERT_NOT_LEAVES(oomMon = CMemoryMonitor::NewL());
+    CleanupStack::PushL(oomMon);
+    Dll::SetTls(oomMon);
+
+    STIF_LOG("4) Create COomMonitorPlugin(CAppOomMonitorPlugin) Object");
+    STIF_ASSERT_NOT_LEAVES(oomMonitorPlugin = CAppOomMonitorPlugin::NewL(KUtOomAppUid));
+    CleanupStack::PushL(oomMonitorPlugin);
+
+    STIF_LOG("5) Create COomMonitorPlugin(COomRunPlugin) Object");
+    STIF_ASSERT_NOT_LEAVES(oomRunPlugin = COomRunPlugin::NewL(Koomplugid,*oomRunConfig,*oomActList,*oomMonitorPlugin));
+    CleanupStack::PushL(oomRunPlugin);
+    
+    STIF_LOG("6) Free Some memory");
+    oomRunPlugin->FreeMemory(KPlugFreeMem,0);
+    CActiveScheduler::Start();
+    STIF_ASSERT_NOT_EQUALS(oomActList->GetState(),0);
+    oomRunPlugin->MemoryGood();
+    TActionRef::TActionType type(TActionRef::ESystemPlugin);
+    TUint priority(KDefaultOomVal);
+    TInt ramEstimate(KDefaultOomVal);
+    TOomSyncMode sync(EContinue);
+    TUint wgIndexOfTargetApp(KAppIndex);
+    TInt  wgId(KDefaultOomVal);
+    TInt wgIndex(KDefaultOomVal);
+    
+    STIF_LOG("7) Create TActionRef object");
+    TActionRef actionRef(type,priority,sync,ramEstimate,*oomRunPlugin,wgIndexOfTargetApp);
+    STIF_ASSERT_EQUALS(actionRef.Type(),type);
+    STIF_ASSERT_EQUALS(actionRef.Priority(),priority);
+    STIF_ASSERT_EQUALS(actionRef.SyncMode(),sync);
+    STIF_ASSERT_EQUALS(actionRef.RamEstimate(),ramEstimate);
+    STIF_ASSERT_EQUALS(&actionRef.RunPlugin(),oomRunPlugin);
+    
+    actionRef = TActionRef(type,priority,sync,ramEstimate,wgId,wgIndex);
+    STIF_ASSERT_EQUALS(actionRef.WgId(),wgId);
+    STIF_ASSERT_EQUALS(actionRef.WgIndex(),wgIndex);
+    
+    CleanupStack::PopAndDestroy(oomRunPlugin);
+    CleanupStack::PopAndDestroy(oomMonitorPlugin);
+    CleanupStack::PopAndDestroy(oomMon);
+    CleanupStack::PopAndDestroy(oomActList);
+    CleanupStack::PopAndDestroy(oomRunConfig);
+    }
+    
+/**
+ * @SYMTestCaseID              GAPS-OOM-OOMWATCHER-006
+ * @SYMTestCaseDesc            To test oommonitor
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1) Call CreateOOMWatcherThreadL
+ *                             
+ * @SYMTestExpectedResults     1) CreateOOMWatcherThreadL no leave
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            13-08-2010
+ */
+STIF_TESTDEFINE(GAPS-OOM-OOMWATCHER-006)
+    {
+    STIF_LOG("1) call CreateOOMWatcherThreadL");
+    STIF_ASSERT_NOT_LEAVES(CreateOOMWatcherThreadL());
+    }
+
+/**
+ * @SYMTestCaseID              GAPS-OOM-OOMPANIC-007
+ * @SYMTestCaseDesc            To test OomMonitorPluginPanic  
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1) Set TLS to NULL
+ *                             2) Try to create a CAppOomMonitorPlugin
+ *                             
+ * @SYMTestExpectedResults     1) Set TLS to NULL success
+ *                             2) Create CAppOomMonitorPlugin been panic 
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            01-08-2010
+ */
+STIF_TESTDEFINE(GAPS-OOM-OOMPANIC-007)
+    {
+    STIF_LOG("1) Set TLS to NULL");
+    Dll::SetTls(NULL);
+    STIF_LOG("2) Create COomMonitorPlugin(CAppOomMonitorPlugin) Object");
+    STIF_ASSERT_PANIC(0,oomMonitorPlugin = CAppOomMonitorPlugin::NewL(KUtOomAppUid));
+    delete oomMonitorPlugin;
+    }
+
+/**
+ * @SYMTestCaseID              GAPS-OOM-APPLICATIONCONFIG-001
+ * @SYMTestCaseDesc            Unit test for COomApplicationConfig and COomCloseAppConfig.
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1. Construct a COomApplicationConfig object.
+ *                             2. Check applicatin ID is correct.
+ *                             3. Construct a COomCloseAppConfig object.
+ *                             4. Set close app config for the COomApplicationConfig object.
+ *                             5. Check close app config for the COomApplicationConfig object.
+ *                             6. Construct a COomForegroundRule object.
+ *                             7. Add foreground rule into the COomApplicationConfig object.
+ *                             8. Construct a COomIdleTimeRule object.
+ *                             9. Add idle time rule into the COomApplicationConfig object.
+ * @SYMTestExpectedResults     1. COomApplicationConfig object was successfully constructed.
+ *                             2. Application ID is correct.
+ *                             3. COomCloseAppConfig object was successfully constructed.
+ *                             4. Close app config was set for the COomApplicationConfig object.
+ *                             5. Close app config is correct in the COomApplicationConfig object.
+ *                             6. COomForegroundRule object was successfully constructed.
+ *                             7. COomForegroundRule object was successfully added into COomApplicationConfig object.
+ *                             8. COomIdleTimeRule object was successfully constructed.
+ *                             9. COomIdleTimeRule object was successfully added into COomApplicationConfig object.
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            03-08-2010
+ */
+STIF_TESTDEFINE(GAPS-OOM-APPLICATIONCONFIG-001)
+{
+    // 
+    STIF_LOG("1. Construct a COomApplicationConfig object.");
+    TUint applicationID = 0x100058B3;
+    COomApplicationConfig* applicationConfig = COomApplicationConfig::NewL(applicationID);
+    CleanupStack::PushL(applicationConfig);
+
+    STIF_LOG("2. Check applicatin ID is correct.");
+    STIF_ASSERT_EQUALS(applicationConfig->Id(), applicationID);
+
+    STIF_LOG("3. Construct a COomCloseAppConfig object.");
+    COomCloseAppConfig* closeAppConfig = COomCloseAppConfig::NewL(applicationID);
+    
+    CleanupStack::PushL(closeAppConfig);
+
+    STIF_LOG("4. Set close app config for the COomApplicationConfig object.");
+    applicationConfig->SetAppCloseConfig(closeAppConfig);
+    
+    CleanupStack::Pop(closeAppConfig);
+
+    STIF_LOG("5. Check close app config for the COomApplicationConfig object.");
+    STIF_ASSERT_EQUALS(applicationConfig->GetAppCloseConfig(), closeAppConfig);
+
+    STIF_LOG("6. Construct a COomForegroundRule object.");
+    COomForegroundRule* foregroundRule = new (ELeave) COomForegroundRule(KOomBusyAppId, KOomPriorityInfinate);
+    CleanupStack::PushL(foregroundRule);
+
+    STIF_LOG("7. Add foreground rule into the COomApplicationConfig object.");
+    applicationConfig->AddRuleL(foregroundRule);
+    CleanupStack::Pop(foregroundRule);
+
+    STIF_LOG("8. Construct a COomIdleTimeRule object.");
+    COomIdleTimeRule* idleRule = COomIdleTimeRule::NewL(KMicrosecondsInMillisecond, KOomPriorityInfinate);
+    CleanupStack::PushL(idleRule);
+
+    STIF_LOG("9. Add idle time rule into the COomApplicationConfig object.");
+    applicationConfig->AddRuleL(idleRule);
+    CleanupStack::Pop(idleRule);
+    
+    CleanupStack::PopAndDestroy(applicationConfig);
+}
+
+/**
+ * @SYMTestCaseID              GAPS-OOM-OOMCONFIG-001
+ * @SYMTestCaseDesc            Unit test for COomConfig::AddApplicationConfigL.
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1. Construct a COomConfig object.
+ *                             2. Add default application config.
+ *                             3. Add default application config again.
+ * @SYMTestExpectedResults     1. COomConfig object was successfully constructed.
+ *                             2. Default application config was added.
+ *                             3. Panic with KAppConfigAddedTwice.
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            03-08-2010
+ */
+STIF_TESTDEFINE(GAPS-OOM-OOMCONFIG-001)
+{
+    STIF_LOG("1. Construct a COomConfig object.");
+    COomConfig* oomConfig = COomConfig::NewL();
+    CleanupStack::PushL(oomConfig);
+    
+    STIF_LOG("2. Add default application config.");
+    COomApplicationConfig* defaultApplicationConfig = COomApplicationConfig::NewL(KOomDefaultAppId);
+    CleanupStack::PushL(defaultApplicationConfig);
+    
+    oomConfig->AddApplicationConfigL(defaultApplicationConfig);
+    
+    STIF_LOG("3. Add default application config again.");
+    STIF_ASSERT_PANIC(KAppConfigAddedTwice, oomConfig->AddApplicationConfigL(defaultApplicationConfig));
+    CleanupStack::Pop(defaultApplicationConfig);
+
+    CleanupStack::PopAndDestroy(oomConfig);
+}
+
+/**
+ * @SYMTestCaseID              GAPS-OOM-OOMCONFIG-002
+ * @SYMTestCaseDesc            Unit test for COomConfig::GetApplicationConfig.
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1. Construct a COomConfig object.
+ *                             2. Add default application config.
+ *                             3. Get another application config.
+ * @SYMTestExpectedResults     1. COomConfig object was successfully constructed.
+ *                             2. Default application config was added.
+ *                             3. KOomDefaultAppId should be returned.
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            03-08-2010
+ */
+STIF_TESTDEFINE(GAPS-OOM-OOMCONFIG-002)
+{
+    TUint applicationID = 0x100058B3;
+
+    STIF_LOG("1. Construct a COomConfig object.");
+    COomConfig* oomConfig = COomConfig::NewL();
+    CleanupStack::PushL(oomConfig);
+    
+    STIF_LOG("2. Add default application config.");
+    COomApplicationConfig* defaultApplicationConfig = COomApplicationConfig::NewL(KOomDefaultAppId);
+    CleanupStack::PushL(defaultApplicationConfig);
+    
+    oomConfig->AddApplicationConfigL(defaultApplicationConfig);
+
+    CleanupStack::Pop(defaultApplicationConfig);
+
+    STIF_LOG("3. Get application config.");
+    COomApplicationConfig& defaultAppConfig = oomConfig->GetApplicationConfig(applicationID);
+    STIF_ASSERT_EQUALS(defaultAppConfig.Id(), (TUint)KOomDefaultAppId);
+
+    CleanupStack::PopAndDestroy(oomConfig);
+}
+
+/**
+ * @SYMTestCaseID              GAPS-OOM-OOMCONFIG-003
+ * @SYMTestCaseDesc            Unit test for COomConfig add rule config before adding application config.
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1. Construct a COomConfig object.
+ *                             2. Add rule config.
+ * @SYMTestExpectedResults     1. COomConfig object was successfully constructed.
+ *                             2. Panic with KRuleConfiguredBeforeApplication.
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            03-08-2010
+ */
+STIF_TESTDEFINE(GAPS-OOM-OOMCONFIG-003)
+{
+    TUint applicationID = 0x100058B3;
+
+    STIF_LOG("1. Construct a COomConfig object.");
+    COomConfig* oomConfig = COomConfig::NewL();
+    CleanupStack::PushL(oomConfig);
+    
+    STIF_LOG("2. Add rule config.");
+    COomForegroundRule* foregroundRule = new (ELeave) COomForegroundRule(applicationID, KOomPriorityInfinate);
+    CleanupStack::PushL(foregroundRule);
+    
+    STIF_ASSERT_PANIC(KRuleConfiguredBeforeApplication, oomConfig->AddApplicationRuleL(applicationID, foregroundRule));
+   
+    CleanupStack::Pop(foregroundRule);
+
+    CleanupStack::PopAndDestroy(oomConfig);
+}
+
+/**
+ * @SYMTestCaseID              GAPS-OOM-OOMCONFIG-004
+ * @SYMTestCaseDesc            Unit test for COomConfig add the same configuration for an application closure twice.
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1. Construct a COomConfig object.
+ *                             2. Add the configuration for an application closure.
+ *                             3. Add the same configuration for an application closure again.
+ * @SYMTestExpectedResults     1. COomConfig object was successfully constructed.
+ *                             2. Application config was created. Application closure was added.
+ *                             3. Panic with KSameAppClosureConfiguredTwice.
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            03-08-2010
+ */
+STIF_TESTDEFINE(GAPS-OOM-OOMCONFIG-004)
+{
+    TUint applicationID = 0x100058B3;
+
+    STIF_LOG("1. Construct a COomConfig object.");
+    COomConfig* oomConfig = COomConfig::NewL();
+    CleanupStack::PushL(oomConfig);
+
+    STIF_LOG("2. Add the configuration for an application closure.");
+    COomCloseAppConfig* closeAppConfig = COomCloseAppConfig::NewL(applicationID);
+    CleanupStack::PushL(closeAppConfig);
+    
+    oomConfig->SetAppCloseConfigL(closeAppConfig);
+    
+    STIF_LOG("3. Add the same configuration for an application closure again.");
+    STIF_ASSERT_PANIC(KSameAppClosureConfiguredTwice, oomConfig->SetAppCloseConfigL(closeAppConfig));
+    
+    CleanupStack::Pop(closeAppConfig);
+
+    CleanupStack::PopAndDestroy(oomConfig);
+}
+
+/**
+ * @SYMTestCaseID              GAPS-OOM-OOMCONFIG-005
+ * @SYMTestCaseDesc            Unit test for COomConfig add the same rule configuration.
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1. Construct a COomConfig object.
+ *                             2. Add the configuration for an application closure.
+ *                             3. Get application config.
+ *                             4. Add the rule config.
+ * @SYMTestExpectedResults     1. COomConfig object was successfully constructed.
+ *                             2. Application config was created. Application closure was added.
+ *                             3. Correct application id should be returned.
+ *                             4. The rule config was added.
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            03-08-2010
+ */
+STIF_TESTDEFINE(GAPS-OOM-OOMCONFIG-005)
+{
+    TUint applicationID = 0x100058B3;
+
+    STIF_LOG("1. Construct a COomConfig object.");
+    COomConfig* oomConfig = COomConfig::NewL();
+    CleanupStack::PushL(oomConfig);
+
+    STIF_LOG("2. Add the configuration for an application closure.");
+    COomCloseAppConfig* closeAppConfig = COomCloseAppConfig::NewL(applicationID);
+    CleanupStack::PushL(closeAppConfig);
+    
+    oomConfig->SetAppCloseConfigL(closeAppConfig);
+
+    CleanupStack::Pop(closeAppConfig);
+
+    STIF_LOG("3. Get application config.");
+    COomApplicationConfig& appConfig = oomConfig->GetApplicationConfig(applicationID);
+    STIF_ASSERT_EQUALS(appConfig.Id(), applicationID);
+
+    STIF_LOG("4. Add the rule config.");
+    COomForegroundRule* foregroundRule = new (ELeave) COomForegroundRule(applicationID, KOomPriorityInfinate);
+    CleanupStack::PushL(foregroundRule);
+    
+    oomConfig->AddApplicationRuleL(applicationID, foregroundRule);
+    
+    CleanupStack::Pop(foregroundRule);
+
+    CleanupStack::PopAndDestroy(oomConfig);
+}
+
+/**
+ * @SYMTestCaseID              GAPS-OOM-OOMCONFIG-006
+ * @SYMTestCaseDesc            Unit test for COomConfig::AddPluginConfigL.
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1. Construct a COomConfig object.
+ *                             2. Add default run plugin config.
+ *                             3. Add default run plugin config again.
+ * @SYMTestExpectedResults     1. COomConfig object was successfully constructed.
+ *                             2. Default run plugin config was added.
+ *                             3. Panic with KPluginConfigAddedTwice.
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            03-08-2010
+ */
+STIF_TESTDEFINE(GAPS-OOM-OOMCONFIG-006)
+{
+    STIF_LOG("1. Construct a COomConfig object.");
+    COomConfig* oomConfig = COomConfig::NewL();
+    CleanupStack::PushL(oomConfig);
+
+    STIF_LOG("2. Add default run plugin config.");
+    COomRunPluginConfig* runPluginConfig = COomRunPluginConfig::NewL(KOomDefaultPluginId, EOomSystemPlugin);
+    CleanupStack::PushL(runPluginConfig);
+    
+    oomConfig->AddPluginConfigL(runPluginConfig);
+    
+    STIF_LOG("3. Add default run plugin config again.");
+    STIF_ASSERT_PANIC(KPluginConfigAddedTwice, oomConfig->AddPluginConfigL(runPluginConfig));
+
+    CleanupStack::Pop(runPluginConfig);
+    
+    CleanupStack::PopAndDestroy(oomConfig);
+}
+
+/**
+ * @SYMTestCaseID              GAPS-OOM-OOMCONFIG-007
+ * @SYMTestCaseDesc            Unit test for COomConfig::GetPluginConfig.
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1. Construct a COomConfig object.
+ *                             2. Add run plugin config.
+ *                             3. Get another run plugin config.
+ * @SYMTestExpectedResults     1. COomConfig object was successfully constructed.
+ *                             2. Default run plugin config was added.
+ *                             3. KOomDefaultPluginId should be returned.
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            03-08-2010
+ */
+STIF_TESTDEFINE(GAPS-OOM-OOMCONFIG-007)
+{
+    TUint pluginID = 0x100058B3;
+    
+    STIF_LOG("1. Construct a COomConfig object.");
+    COomConfig* oomConfig = COomConfig::NewL();
+    CleanupStack::PushL(oomConfig);
+    
+    STIF_LOG("2. Add default run plugin config.");
+    COomRunPluginConfig* runPluginConfig = COomRunPluginConfig::NewL(KOomDefaultPluginId, EOomSystemPlugin);
+    CleanupStack::PushL(runPluginConfig);
+    
+    oomConfig->AddPluginConfigL(runPluginConfig);
+    
+    CleanupStack::Pop(runPluginConfig);
+
+    STIF_LOG("3. Get another run plugin config.");
+    COomRunPluginConfig& defaultPluginConfig = oomConfig->GetPluginConfig(pluginID);
+    STIF_ASSERT_EQUALS(defaultPluginConfig.Id(), (TUint)KOomDefaultPluginId);
+
+    CleanupStack::PopAndDestroy(oomConfig);
+}
+
+/**
+ * @SYMTestCaseID              GAPS-OOM-OOMCONFIG-008
+ * @SYMTestCaseDesc            Unit test for COomConfig add rule config before adding run plugin config.
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1. Construct a COomConfig object.
+ *                             2. Add rule config for run plugin config.
+ * @SYMTestExpectedResults     1. COomConfig object was successfully constructed.
+ *                             2. Panic with KRuleConfiguredBeforePlugin.
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            03-08-2010
+ */
+STIF_TESTDEFINE(GAPS-OOM-OOMCONFIG-008)
+{
+    TUint pluginID = 0x100058B3;
+    
+    STIF_LOG("1. Construct a COomConfig object.");
+    COomConfig* oomConfig = COomConfig::NewL();
+    CleanupStack::PushL(oomConfig);
+    
+    STIF_LOG("2. Add rule config for run plugin config.");
+    COomForegroundRule* foregroundRule = new (ELeave) COomForegroundRule(pluginID, KOomPriorityInfinate);
+    CleanupStack::PushL(foregroundRule);
+        
+    STIF_ASSERT_PANIC(KRuleConfiguredBeforePlugin, oomConfig->AddPluginRuleL(pluginID, foregroundRule));
+
+    CleanupStack::Pop(foregroundRule);
+    
+    CleanupStack::PopAndDestroy(oomConfig);
+}
+
+/**
+ * @SYMTestCaseID              GAPS-OOM-OOMCONFIG-009
+ * @SYMTestCaseDesc            Unit test for COomConfig add run plugin config twicw.
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1. Construct a COomConfig object.
+ *                             2. Add the configuration for a plugin action.
+ *                             3. Add the configuration for a plugin action again.
+ * @SYMTestExpectedResults     1. COomConfig object was successfully constructed.
+ *                             2. Run plugin config was added.
+ *                             3. 
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            03-08-2010
+ */
+STIF_TESTDEFINE(GAPS-OOM-OOMCONFIG-009)
+{
+    TUint pluginID = 0x100058B3;
+    
+    STIF_LOG("1. Construct a COomConfig object.");
+    COomConfig* oomConfig = COomConfig::NewL();
+    CleanupStack::PushL(oomConfig);
+
+    STIF_LOG("2. Add the configuration for a plugin action.");
+    COomRunPluginConfig* runPluginConfig = COomRunPluginConfig::NewL(pluginID, EOomSystemPlugin);
+    CleanupStack::PushL(runPluginConfig);
+        
+    oomConfig->AddPluginConfigL(runPluginConfig);
+
+    STIF_LOG("3. Add the same configuration for a plugin action again.");
+    STIF_ASSERT_PANIC(KPluginConfigAddedTwice, oomConfig->AddPluginConfigL(runPluginConfig));
+    
+    CleanupStack::Pop(runPluginConfig);
+    
+    CleanupStack::PopAndDestroy(oomConfig);
+}
+
+/**
+ * @SYMTestCaseID              GAPS-OOM-OOMCONFIG-010
+ * @SYMTestCaseDesc            Unit test for COomConfig the rule config again.
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1. Construct a COomConfig object.
+ *                             2. Add the configuration for a plugin action.
+ *                             3. Get run plugin config.
+ *                             4. Add the rule config.
+ * @SYMTestExpectedResults     1. COomConfig object was successfully constructed.
+ *                             2. The configuration for a plugin action was added.
+ *                             3. Correct run plugin id should be returned.
+ *                             4. The rule config was added.
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            03-08-2010
+ */
+STIF_TESTDEFINE(GAPS-OOM-OOMCONFIG-010)
+{
+    TUint pluginID = 0x100058B3;
+    STIF_LOG("1. Construct a COomConfig object.");
+    COomConfig* oomConfig = COomConfig::NewL();
+    CleanupStack::PushL(oomConfig);
+
+    STIF_LOG("2. Add the configuration for a plugin action.");
+    COomRunPluginConfig* runPluginConfig = COomRunPluginConfig::NewL(pluginID, EOomSystemPlugin);
+    CleanupStack::PushL(runPluginConfig);
+    
+    oomConfig->AddPluginConfigL(runPluginConfig);
+    
+    CleanupStack::Pop(runPluginConfig);
+
+    STIF_LOG("3. Get run plugin config.");
+    COomRunPluginConfig& pluginConfig = oomConfig->GetPluginConfig(pluginID);
+    STIF_ASSERT_EQUALS(pluginConfig.Id(), pluginID);
+
+    STIF_LOG("4. Add the rule config.");
+    COomForegroundRule* foregroundRule = new (ELeave) COomForegroundRule(pluginID, KOomPriorityInfinate);
+    CleanupStack::PushL(foregroundRule);
+    
+    oomConfig->AddPluginRuleL(pluginID, foregroundRule);
+    
+    CleanupStack::Pop(foregroundRule);
+    
+    CleanupStack::PopAndDestroy(oomConfig);
+}
+
+/**
+ * @SYMTestCaseID              GAPS-OOM-OOMCONFIG-011
+ * @SYMTestCaseDesc            Unit test for COomConfig iGlobalConfig related functions.
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1. Construct a COomConfig object.
+ *                             2. Set default low ram threshold.
+ *                             3. Set default good ram threshold.
+ *                             4. Set swap usage monitored.
+ *                             5. Set default low swap threshold.
+ *                             6. Set default good swap threshold.
+ *                             7. Set max close app batch.
+ *                             8. Set default wait after plugin.
+ *                             9. Set max app exit time.
+ *                             10. Get global config.
+ *                             11. Check default low ram threshold.
+ *                             12. Check default good ram threshold.
+ *                             13. Check swap usage monitored.
+ *                             14. Check default low swap threshold.
+ *                             15. Check default good swap threshold.
+ *                             16. Check max close app batch.
+ *                             17. Check default wait after plugin.
+ *                             18. Check max app exit time.
+ * @SYMTestExpectedResults     1. COomConfig object was successfully constructed.
+ *                             2. Default low ram threshold was set.
+ *                             3. Default good ram threshold was set.
+ *                             4. Swap usage monitored was set.
+ *                             5. Default low swap threshold was set.
+ *                             6. Default good swap threshold was set.
+ *                             7. Max close app batch was set.
+ *                             8. Default wait after plugin was set.
+ *                             9. Max app exit time was set.
+ *                             10. Global config is got.
+ *                             11. Default low ram threshold is correct.
+ *                             12. Default good ram threshold is correct.
+ *                             13. Swap usage monitored is correct.
+ *                             14. Default low swap threshold is correct.
+ *                             15. Default good swap threshold is correct.
+ *                             16. Max close app batch is correct.
+ *                             17. Default wait after plugin is correct.
+ *                             18. Max app exit time is correct.
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            03-08-2010
+ */
+STIF_TESTDEFINE(GAPS-OOM-OOMCONFIG-011)
+{
+    STIF_LOG("1. Construct a COomConfig object.");
+    COomConfig* oomConfig = COomConfig::NewL();
+    CleanupStack::PushL(oomConfig);
+    
+    const TInt KBytesInMegabyte = 1024;
+
+    STIF_LOG("2. Set default low ram threshold.");
+    oomConfig->SetDefaultLowRamThreshold(KBytesInMegabyte);
+    
+    STIF_LOG("3. Set default good ram threshold.");
+    oomConfig->SetDefaultGoodRamThreshold(KBytesInMegabyte);
+
+    STIF_LOG("4. Set swap usage monitored.");
+    oomConfig->SetSwapUsageMonitored(ETrue);
+    
+    STIF_LOG("5. Set default low swap threshold.");
+    oomConfig->SetDefaultLowSwapThreshold(KBytesInMegabyte);
+
+    STIF_LOG("6. Set default good swap threshold.");
+    oomConfig->SetDefaultGoodSwapThreshold(KBytesInMegabyte);
+    
+    STIF_LOG("7. Set max close app batch.");
+    TUint maxCloseAppBatch = 100;
+    oomConfig->SetMaxCloseAppBatch(maxCloseAppBatch);
+
+    STIF_LOG("8. Set default wait after plugin.");
+    oomConfig->SetDefaultWaitAfterPlugin(KMicrosecondsInMillisecond);
+
+    STIF_LOG("9. Set max app exit time.");
+    oomConfig->SetMaxAppExitTime(KMicrosecondsInMillisecond);
+    
+    STIF_LOG("10. Get global config.");
+    COomGlobalConfig& globalConfig = oomConfig->GlobalConfig();
+    
+    STIF_LOG("11. Check default low ram threshold.");
+    STIF_ASSERT_EQUALS(globalConfig.iLowRamThreshold, KBytesInMegabyte);
+    
+    STIF_LOG("12. Check default good ram threshold.");
+    STIF_ASSERT_EQUALS(globalConfig.iGoodRamThreshold, KBytesInMegabyte);
+
+    STIF_LOG("13. Check swap usage monitored.");
+    STIF_ASSERT_TRUE(globalConfig.iSwapUsageMonitored);
+
+    STIF_LOG("14. Check default low swap threshold.");
+    STIF_ASSERT_EQUALS(globalConfig.iLowSwapThreshold, KBytesInMegabyte);
+
+    STIF_LOG("15. Check default good swap threshold.");
+    STIF_ASSERT_EQUALS(globalConfig.iGoodSwapThreshold, KBytesInMegabyte);
+    
+    STIF_LOG("16. Check max close app batch.");
+    STIF_ASSERT_EQUALS(globalConfig.iMaxCloseAppBatch, maxCloseAppBatch);
+
+    STIF_LOG("17. Check default wait after plugin.");
+    STIF_ASSERT_EQUALS(globalConfig.iDefaultWaitAfterPlugin, KMicrosecondsInMillisecond);
+
+    STIF_LOG("18. Check max app exit time.");
+    STIF_ASSERT_EQUALS(globalConfig.iMaxAppExitTime, KMicrosecondsInMillisecond);
+    
+    CleanupStack::PopAndDestroy(oomConfig);
+}
+
+/**
+ * @SYMTestCaseID              GAPS-OOM-PLUGINCONFIG-001
+ * @SYMTestCaseDesc            Test constructor of COomRunPluginConfig
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1) Create COomRunPluginConfig object
+ *                             2) Check the values with getter methods
+ * @SYMTestExpectedResults     1) Create COomRunPluginConfig object
+ *                             2) Check the values with getter methods     
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            20-07-2010
+ */
+STIF_TESTDEFINE(GAPS-OOM-PLUGINCONFIG-001)
+{
+    TUint testPluginId = 1001;
+    TOomPluginType testPluginType = EOomAppPlugin;
+    COomRunPluginConfig* pluginConfig = COomRunPluginConfig::NewL(testPluginId, testPluginType);
+    CleanupStack::PushL(pluginConfig);
+    
+    // Verify the object is created successfully
+    STIF_ASSERT_NOT_NULL(pluginConfig);
+    STIF_LOG("COomRunPluginConfig created successfully");
+    
+    // Verify member variable value
+    STIF_ASSERT_EQUALS(pluginConfig->Id(), testPluginId);
+    STIF_ASSERT_EQUALS(pluginConfig->PluginType(), testPluginType);
+    STIF_ASSERT_TRUE(pluginConfig->CallIfTargetAppNotRunning());
+    STIF_LOG("Member variables set in COomRunPluginConfig constuctor has been verified");
+
+    CleanupStack::PopAndDestroy(pluginConfig);
+}
+
+/**
+ * @SYMTestCaseID              GAPS-OOM-PLUGINCONFIG-002
+ * @SYMTestCaseDesc            Test setters and getters of COomRunPluginConfig
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1) Create COomRunPluginConfig object
+ *                             2) Check the values with getter methods
+ *                             3) Call getter/setter methods
+ * @SYMTestExpectedResults     1) Create COomRunPluginConfig object
+ *                             2) Check the values with getter methods
+ *                             3) Getter is getting same value as its paried setter
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            20-07-2010
+ */
+STIF_TESTDEFINE(GAPS-OOM-PLUGINCONFIG-002)
+{
+    TUint testPluginId = 1001;
+    TOomPluginType testPluginType = EOomAppPlugin;
+    COomRunPluginConfig* pluginConfig = COomRunPluginConfig::NewL(testPluginId, testPluginType);
+    CleanupStack::PushL(pluginConfig);
+    
+    // Verify the object is created successfully
+    STIF_ASSERT_NOT_NULL(pluginConfig);
+    STIF_LOG("COomRunPluginConfig created successfully");
+    
+    // Verify member variable value
+    STIF_ASSERT_EQUALS(pluginConfig->Id(), testPluginId);
+    STIF_ASSERT_EQUALS(pluginConfig->PluginType(), testPluginType);
+    STIF_ASSERT_TRUE(pluginConfig->CallIfTargetAppNotRunning());
+    STIF_LOG("Member variables set in COomRunPluginConfig constuctor has been verified");
+    
+    pluginConfig->SetCallIfTargetAppNotRunning(EFalse);
+    STIF_ASSERT_FALSE(pluginConfig->CallIfTargetAppNotRunning());
+    STIF_LOG("CallIfTargetAppNotRunning setter/getter has been verified");
+    
+    TInt testTimeToWait = 1002;
+    pluginConfig->SetWaitAfterPlugin(testTimeToWait);
+    STIF_ASSERT_TRUE(pluginConfig->WaitAfterPluginDefined());
+    STIF_ASSERT_EQUALS(pluginConfig->WaitAfterPlugin(), testTimeToWait);
+    STIF_LOG("WaitAfterPlugin setter/getter has been verified");
+    
+    TUint testTargetApp = 1003;
+    pluginConfig->SetTargetApp(testTargetApp);
+    STIF_ASSERT_EQUALS(pluginConfig->TargetApp(), testTargetApp);
+    STIF_LOG("TargetApp setter/getter has been verified");
+
+    CleanupStack::PopAndDestroy(pluginConfig);
+}
+
+/**
+ * @SYMTestCaseID              GAPS-OOM-PLUGINCONFIG-003
+ * @SYMTestCaseDesc            Test COomRunPluginConfig::CalculatePluginPriority
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1) Create COomRunPluginConfig object
+ *                             2) Create a COomWindowGroupList object
+ *                             3) Call COomRunPluginConfig::CalculatePluginPriority() using the COomWindowGroupList
+ *                                created in step 2 as parameter
+ * @SYMTestExpectedResults     1) Create COomRunPluginConfig object
+ *                             2) COomWindowGroupList object created
+ *                             3) The returned priority is correct 
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            20-07-2010
+ */
+STIF_TESTDEFINE(GAPS-OOM-PLUGINCONFIG-003)
+{
+    TUint testPluginId = 1001;
+    TOomPluginType testPluginType = EOomAppPlugin;
+    COomRunPluginConfig* pluginConfig = COomRunPluginConfig::NewL(testPluginId, testPluginType);
+    CleanupStack::PushL(pluginConfig);
+    
+    RWsSession ws;
+    STIF_ASSERT_EQUALS(ws.Connect(), KErrNone);
+    CleanupClosePushL(ws);
+    COomWindowGroupList* wgList = COomWindowGroupList::NewL(ws);
+    CleanupStack::PushL(wgList);
+    
+    // Verify the object is created successfully
+    STIF_ASSERT_NOT_NULL(pluginConfig);
+    STIF_LOG("COomRunPluginConfig created successfully");
+    STIF_ASSERT_NOT_NULL(wgList);
+    STIF_LOG("COomWindowGroupList created successfully");
+    
+    // Verify calculate plugin priority
+    TUint priority = pluginConfig->CalculatePluginPriority(*wgList);
+    TUint expectedPriority = 0;
+    STIF_ASSERT_EQUALS(priority, expectedPriority);
+    STIF_LOG("calculate priority has been verified");
+    
+    CleanupStack::PopAndDestroy(3);
+}
+
+/**
+ * @SYMTestCaseID              GAPS-OOM-PANIC-001
+ * @SYMTestCaseDesc            Test OomMonitorPanic
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1) Panic with OomMonitorPanic
+ * @SYMTestExpectedResults     1) The client panic with specified panic code 
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            20-07-2010
+ */
+STIF_TESTDEFINE(GAPS-OOM-PANIC-001)
+{
+    TOomMonitorPanic panicReason = KRuleConfiguredBeforeApplication;
+    TestModuleIf().SetExitReason(CTestModuleIf::EPanic, (TInt)panicReason);
+    
+    OomMonitorPanic(panicReason);
+}
+
+/**
+ * @SYMTestCaseID              GAPS-OOM-PANIC-002
+ * @SYMTestCaseDesc            Test OomConfigParserPanic
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1) Panic with OomConfigParserPanic
+ * @SYMTestExpectedResults     1) The client panic with specified panic code                  
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            20-07-2010
+ */
+STIF_TESTDEFINE(GAPS-OOM-PANIC-002)
+{
+    TInt panicReason = 2;
+    TestModuleIf().SetExitReason(CTestModuleIf::EPanic, panicReason);
+    
+    OomConfigParserPanic(panicReason);
+}
+     
+/**
+ * @SYMTestCaseID              GAPS-OOM-SUBSCRIBE-001
+ * @SYMTestCaseDesc            Property issued when subscribed
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1) Define and attach to an RProperty
+ *                             2) Create a CSubscribeHelper object, subscribe to the property create in step 1 
+ *                                and specify a callback function
+ *                             3) Set the value of the property created in step 1
+ * @SYMTestExpectedResults     1) RProperty created and attached to
+ *                             2) Object created successfully
+ *                             3) The callback function is called 
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            20-07-2010
+ */
+STIF_TESTDEFINE(GAPS-OOM-SUBSCRIBE-001)
+{
+    TInt KDefaultWaitTimeInMicroSeconds = 5000000;
+    isSubscribeCallbackCalled = EFalse;
+    _LIT_SECURITY_POLICY_PASS(KAllowAllPolicy);
+
+    // Create Callback
+    TCallBack testCallback(&SubsribeCallbackStub);
+    // Create properties used in test
+    const TUid KOomSubscribeTestProperty = { 0x10000000 };
+    const TUint32 KOomSubscribeTestKey = 0x00000001;
+    RProperty testSubscribeProperty;
+    RProperty testSetProperty;
+    TInt error;
+    error = RProperty::Define(KOomSubscribeTestProperty, KOomSubscribeTestKey, RProperty::EInt, 
+                              KAllowAllPolicy, KAllowAllPolicy);
+    STIF_ASSERT_EQUALS(error, KErrNone);
+    error = testSubscribeProperty.Attach(KOomSubscribeTestProperty, KOomSubscribeTestKey, EOwnerThread);
+    STIF_ASSERT_EQUALS(error, KErrNone);
+    CleanupClosePushL(testSubscribeProperty);
+    error = testSetProperty.Attach(KOomSubscribeTestProperty, KOomSubscribeTestKey, EOwnerThread);
+    STIF_ASSERT_EQUALS(error, KErrNone);
+    CleanupClosePushL(testSetProperty);
+    STIF_LOG("Properties created successfully");
+
+    // Create subscribe helper
+    CSubscribeHelper* subscribeHelper = new (ELeave) CSubscribeHelper(testCallback, testSubscribeProperty);
+    CleanupStack::PushL(subscribeHelper);
+    // Verify the object is created successfully
+    STIF_ASSERT_NOT_NULL(subscribeHelper);
+    STIF_LOG("CSubscribeHelper created successfully");
+
+    CUt_OomTestTimer* subscribeTimer = CUt_OomTestTimer::NewL();
+    CleanupStack::PushL(subscribeTimer);
+    // Verify the object is created successfully
+    STIF_ASSERT_NOT_NULL(subscribeTimer);
+    STIF_LOG("CUt_OomTestTimer created successfully");
+    
+    // start timer and subscribe to helper
+    subscribeTimer->After(TTimeIntervalMicroSeconds32(KDefaultWaitTimeInMicroSeconds));
+    subscribeHelper->Subscribe();
+    // Set a property, and wait for timer or callback stop active scheduler
+    error = testSetProperty.Set(1);
+    CActiveScheduler::Start();
+    
+    // Verify the values are set in subscriber correctly
+    STIF_ASSERT_FALSE(subscribeTimer->iIsTimerElapsed);
+    STIF_ASSERT_TRUE(isSubscribeCallbackCalled);
+    STIF_LOG("Property set when subscribed has been verified");
+    
+    // reset isSubscribeCallbackCalled to EFalse;
+    isSubscribeCallbackCalled = EFalse;
+    // Stop timer
+    subscribeTimer->Cancel();
+    
+    // start timer and unsubscribe to helper
+    subscribeTimer->After(TTimeIntervalMicroSeconds32(KDefaultWaitTimeInMicroSeconds));
+    subscribeHelper->StopSubscribe();
+    // Set a property, and wait for timer or callback stop active scheduler
+    testSetProperty.Set(2);
+    CActiveScheduler::Start();
+    
+    // Verify the values are set in subscriber correctly
+    STIF_ASSERT_TRUE(subscribeTimer->iIsTimerElapsed);
+    STIF_ASSERT_FALSE(isSubscribeCallbackCalled);
+    STIF_LOG("Property set when unsubscribed has been verified");
+
+    CleanupStack::PopAndDestroy(4);
+    error = RProperty::Delete(KOomSubscribeTestProperty, KOomSubscribeTestKey);
+    STIF_ASSERT_EQUALS(error, KErrNone);
+}
+#endif
+/**
+ * END OF TEST CASES SECTION
+ */
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oom/src/ut_oomtesttimer.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,56 @@
+/*
+* 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: This file contains stub for testing CSubscribeHelper
+*
+*/
+
+#include "ut_oomtesttimer.h"
+
+CUt_OomTestTimer* CUt_OomTestTimer::NewL()
+    {
+    CUt_OomTestTimer* self = new( ELeave ) CUt_OomTestTimer();
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop();
+    return self;
+    }
+
+CUt_OomTestTimer::~CUt_OomTestTimer()
+    {
+
+    }
+
+CUt_OomTestTimer::CUt_OomTestTimer()
+    : CTimer(CActive::EPriorityStandard), iIsTimerElapsed(EFalse)
+    {
+    }
+
+void CUt_OomTestTimer::ConstructL()
+    {
+    CTimer::ConstructL();
+    CActiveScheduler::Add(this);
+    }
+
+
+void CUt_OomTestTimer::RunL()
+    {
+    iIsTimerElapsed = ETrue;
+    CActiveScheduler::Stop();
+    }
+
+void CUt_OomTestTimer::DoCancel()
+    {
+    CTimer::DoCancel(); 
+    }
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oom/ut_oomplugin/data/ut_oomplugin.rss	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,52 @@
+/*
+* 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 the License "Symbian Foundation License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
+#include <ecom\registryinfo.rh>
+#include <oommonitorplugin.hrh>
+#include "ut_oom.h"
+
+RESOURCE REGISTRY_INFO theInfo
+{
+	dll_uid = 0x2003397f;
+	interfaces =
+	{
+	INTERFACE_INFO
+		{
+		interface_uid = KOomPluginInterfaceUidValue;
+		implementations =
+				{
+				IMPLEMENTATION_INFO
+					{
+					implementation_uid = 0x2003397f;
+					version_no = 1;
+					display_name = "ut_oomplugin 1";
+					default_data = "";
+					opaque_data = "";
+					},
+				IMPLEMENTATION_INFO
+					{
+					implementation_uid = 0x20033980;
+					version_no = 1;
+					display_name = "ut_oomplugin 2";
+					default_data = "";
+					opaque_data = "";
+					}
+				};
+		}
+	};
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oom/ut_oomplugin/group/ut_oomplugin.mmp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,52 @@
+/*
+* Copyright (c) 20010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Symbian Foundation License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
+#include <data_caging_paths.hrh>
+#include <platform_paths.hrh>
+
+TARGET          ut_oomplugin.dll
+TARGETTYPE     	PLUGIN
+UID             0x10009d8d 0x2003397f
+
+CAPABILITY      CAP_ECOM_PLUGIN
+VENDORID        VID_DEFAULT
+
+
+
+// This is a SYSTEMINCLUDE macro containing the middleware
+// layer specific include directories
+MW_LAYER_SYSTEMINCLUDE
+
+SYSTEMINCLUDE   /epoc32/include/ecom
+USERINCLUDE     ../inc
+USERINCLUDE     ../../inc
+USERINCLUDE     ../../../../inc
+
+SOURCEPATH ../data
+START RESOURCE 	ut_oomplugin.rss
+TARGET 			ut_oomplugin.rsc
+END
+
+SOURCEPATH      ../src
+SOURCE 			ut_oomplugin.cpp
+
+LIBRARY 		ecom.lib
+LIBRARY 		euser.lib
+LIBRARY 		ut_oom.lib
+
+SMPSAFE
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oom/ut_oomplugin/inc/ut_oomplugin.h	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,43 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+#ifndef UT_OOMPLUGIN_H
+#define UT_OOMPLUGIN_H
+#include <ecom/ecom.h>
+#include <ecom/implementationproxy.h>
+#include <oommonitorplugin.h>
+#include "mock_oomactionlist.h"
+
+class CUtOomMonitorPlugin : public COomMonitorPlugin
+	{
+public:
+	CUtOomMonitorPlugin();
+	~CUtOomMonitorPlugin();
+	void ConstructL();
+		
+public:
+	void FreeRam();
+	void MemoryGood();
+
+private:
+	void ExtensionInterface(TUid aInterfaceId, TAny*& aImplementaion);
+	};
+
+#endif //UT_OOMPLUGIN_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oom/ut_oomplugin/src/ut_oomplugin.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -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:  
+ *
+ */
+#include <e32property.h> 
+#include "ut_oomplugin.h"
+
+const TUid KMyAppUid =  { 0x20033981 }; // a nonsense UID for testing
+
+CUtOomMonitorPlugin::CUtOomMonitorPlugin()
+    {
+    RDebug::Print(_L("CUtOomMonitorPlugin::COomMonitorTestPlugin"));
+    }
+
+CUtOomMonitorPlugin::~CUtOomMonitorPlugin()
+    {
+    RDebug::Print(_L("CUtOomMonitorPlugin::~COomMonitorTestPlugin"));
+    }
+
+void CUtOomMonitorPlugin::ConstructL()
+    {
+    COomMonitorPlugin::ConstructL();
+    RDebug::Print(_L("CUtOomMonitorPlugin::ConstructL"));
+    }
+void CUtOomMonitorPlugin::FreeRam()
+    {
+    RDebug::Print(_L("CUtOomMonitorPlugin::FreeRam"));
+    }
+    
+void CUtOomMonitorPlugin::MemoryGood()
+    {
+    TInt err;
+    TAny * pointer = NULL;
+    RDebug::Print(_L("CUtOomMonitorPlugin::MemoryGood"));
+    ExtensionInterface(KMyAppUid,pointer);
+    COomMonitorPlugin::FsSession();
+    RProperty oomProperty;
+    err = oomProperty.Attach(KUtOomWatcherTestProperty, KUtOomPluginWatcherTestKey, EOwnerThread);
+    if(!err)
+        {
+        oomProperty.Set(KUtOomPluginMemGood);
+        }
+    oomProperty.Close();
+    }
+
+void CUtOomMonitorPlugin::ExtensionInterface(TUid aInterfaceId,
+        TAny*& aImplementaion)
+    {
+    RDebug::Print(_L("CUtOomMonitorPlugin::ExtensionInterface(%08x, %08x)"),
+            aInterfaceId.iUid, aImplementaion);
+    COomMonitorPlugin::ExtensionInterface(aInterfaceId, aImplementaion);
+    }
+
+TAny* CreateFullPluginL()
+    {
+    CUtOomMonitorPlugin* plugin = new (ELeave) CUtOomMonitorPlugin;
+    CleanupStack::PushL(plugin);
+    plugin->ConstructL();
+    CleanupStack::Pop(plugin);
+    plugin->FreeRam();
+    plugin->MemoryGood();
+    return plugin;
+    }
+
+TAny* CreateAppPluginL()
+    {
+    return CAppOomMonitorPlugin::NewL(KMyAppUid);
+    }
+
+//
+// The ECom registration code
+//
+
+const TImplementationProxy ImplementationTable[] =
+    {
+    {{0x2003397f}, ::CreateFullPluginL},
+    {{0x20033980}, ::CreateAppPluginL}
+    };
+
+EXPORT_C const TImplementationProxy* ImplementationGroupProxy(
+        TInt& aTableCount)
+    {
+    aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
+    return ImplementationTable;
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oom/ut_oomplugin2/data/ut_oomplugin2.rss	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,52 @@
+/*
+* 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 the License "Symbian Foundation License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
+#include <ecom\registryinfo.rh>
+#include <oommonitorplugin.hrh>
+#include "ut_oom.h"
+
+RESOURCE REGISTRY_INFO theInfo
+	{
+	dll_uid = 0x20033983;
+	interfaces =
+		{
+		INTERFACE_INFO
+			{
+			interface_uid = KOomPluginInterfaceV2UidValue;
+			implementations =
+				{
+				IMPLEMENTATION_INFO
+					{
+					implementation_uid = 0x20033982;
+					version_no = 1;
+					display_name = "ut_oomplugin2 1";
+					default_data = "";
+					opaque_data = "";
+					},
+				IMPLEMENTATION_INFO
+					{
+					implementation_uid = 0x20033983;
+					version_no = 1;
+					display_name = "ut_oomplugin2 2";
+					default_data = "";
+					opaque_data = "";
+					}
+				};
+			}
+		};
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oom/ut_oomplugin2/group/ut_oomplugin2.mmp	Thu Oct 07 06:25:45 2010 +0300
@@ -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 the License "Symbian Foundation License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
+#include <data_caging_paths.hrh>
+#include <platform_paths.hrh>
+
+TARGET		  ut_oomplugin2.dll
+TARGETTYPE	  PLUGIN
+
+UID			 0x10009d8d 0x20033983
+CAPABILITY      CAP_ECOM_PLUGIN
+VENDORID        VID_DEFAULT
+
+// This is a SYSTEMINCLUDE macro containing the middleware
+// layer specific include directories
+MW_LAYER_SYSTEMINCLUDE
+
+SYSTEMINCLUDE   /epoc32/include/ecom
+USERINCLUDE     ../inc
+USERINCLUDE     ../../inc
+USERINCLUDE     ../../../../inc
+
+SOURCEPATH ../data
+START RESOURCE 	ut_oomplugin2.rss
+TARGET 			ut_oomplugin2.rsc
+END
+
+SOURCEPATH ../src
+SOURCE ut_oomplugin2.cpp
+
+LIBRARY 		ecom.lib
+LIBRARY 		euser.lib
+LIBRARY 		ut_oom.lib
+
+SMPSAFE
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oom/ut_oomplugin2/inc/ut_oomplugin2.h	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,51 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+#ifndef UT_OOMPLUGIN2_H
+#define UT_OOMPLUGIN2_H
+
+#include <ecom/ecom.h>
+#include <ecom/implementationproxy.h>
+#include <oommonitorplugin.h>
+#include "mock_oomactionlist.h"
+
+
+
+class CUtOomMonitorPluginV2 : public COomMonitorPluginV2
+	{
+public:
+	static CUtOomMonitorPluginV2* NewL(TInt aInstance);
+	~CUtOomMonitorPluginV2();
+private:
+	CUtOomMonitorPluginV2(TInt aInstance);
+	void ConstructL();
+	//from COomMonitorPlugin
+	virtual void FreeRam(TInt aBytesRequested);
+	virtual void MemoryGood();
+
+private:
+	TInt iInstance;
+	TInt iLowMemoryCallCount;
+	TInt iGoodMemoryCallCount;
+	};
+
+
+
+#endif //UT_OOMPLUGIN2_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oom/ut_oomplugin2/src/ut_oomplugin2.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,77 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description:  
+ *
+ */
+
+#include "ut_oomplugin2.h"
+
+#define DECLARE_CREATE_INSTANCEV2(UID) CUtOomMonitorPluginV2* CreateInstance##UID() { return CUtOomMonitorPluginV2::NewL(UID); }
+#define IMPLEMENTATION_INSTANCEV2(UID) IMPLEMENTATION_PROXY_ENTRY(UID, CreateInstance##UID)
+
+//ECOM factory functions
+DECLARE_CREATE_INSTANCEV2(0x20033982)
+DECLARE_CREATE_INSTANCEV2(0x20033983)
+
+// Define the private interface UIDs
+const TImplementationProxy ImplementationTable[] =
+    {
+    IMPLEMENTATION_INSTANCEV2(0x20033982),
+    IMPLEMENTATION_INSTANCEV2(0x20033983)
+    };
+
+CUtOomMonitorPluginV2* CUtOomMonitorPluginV2::NewL(TInt aInstance)
+    {
+    CUtOomMonitorPluginV2* self = new (ELeave) CUtOomMonitorPluginV2(
+            aInstance);
+    CleanupStack::PushL(self);
+    self->ConstructL();
+    CleanupStack::Pop(self);
+    return self;
+    }
+
+CUtOomMonitorPluginV2::CUtOomMonitorPluginV2(TInt aInstance) :
+    iInstance(aInstance)
+    {
+
+    }
+
+void CUtOomMonitorPluginV2::ConstructL()
+    {
+    RDebug::Print(_L("CUtOomMonitorPluginV2::ConstructL"));
+    FreeRam(0);
+    MemoryGood();
+    }
+
+CUtOomMonitorPluginV2::~CUtOomMonitorPluginV2()
+    {
+    RDebug::Print(_L("CUtOomMonitorPluginV2::~CUtOomMonitorPluginV2"));
+    }
+
+void CUtOomMonitorPluginV2::FreeRam(TInt /*aBytesRequested*/)
+    {
+    iLowMemoryCallCount++;
+    COomMonitorPluginV2::FreeRam();
+    }
+
+void CUtOomMonitorPluginV2::MemoryGood()
+    {
+    iGoodMemoryCallCount++;
+    }
+
+EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount)
+    {
+    aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
+    return ImplementationTable;
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oom_closeapp/Bwins/ut_oom_closeappu.def	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,13 @@
+EXPORTS
+	?LibEntryL@@YAPAVCTestModuleBase@@XZ @ 1 NONAME ; class CTestModuleBase * __cdecl LibEntryL(void)
+	?SetRequirements@@YAHAAPAVCTestModuleParam@@AAK@Z @ 2 NONAME ; int __cdecl SetRequirements(class CTestModuleParam * &,unsigned long &)
+	??0COomMonitorPlugin@@QAE@XZ @ 3 NONAME ; COomMonitorPlugin::COomMonitorPlugin(void)
+	?SetMemoryMonitorTls@@YAXPAVCMemoryMonitor@@@Z @ 4 NONAME ; void SetMemoryMonitorTls(class CMemoryMonitor *)
+	?FsSession@COomMonitorPlugin@@QAEAAVRFs@@XZ @ 5 NONAME ; class RFs & COomMonitorPlugin::FsSession(void)
+	?ExtensionInterface@COomMonitorPlugin@@MAEXVTUid@@AAPAX@Z @ 6 NONAME ; void COomMonitorPlugin::ExtensionInterface(class TUid, void * &)
+	?ConstructL@COomMonitorPlugin@@QAEXXZ @ 7 NONAME ; void COomMonitorPlugin::ConstructL(void)
+	??1COomMonitorPlugin@@UAE@XZ @ 8 NONAME ; COomMonitorPlugin::~COomMonitorPlugin(void)
+	?FreeRam@COomMonitorPluginV2@@UAEXXZ @ 9 NONAME ; void COomMonitorPluginV2::FreeRam(void)
+	?NewL@CAppOomMonitorPlugin@@SAPAV1@VTUid@@@Z @ 10 NONAME ; class CAppOomMonitorPlugin * CAppOomMonitorPlugin::NewL(class TUid)
+	?WsSession@COomMonitorPlugin@@QAEAAVRWsSession@@XZ @ 11 NONAME ; class RWsSession & COomMonitorPlugin::WsSession(void)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oom_closeapp/eabi/ut_oom_closeappu.def	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,21 @@
+EXPORTS
+	_Z9LibEntryLv @ 1 NONAME
+	_Z15SetRequirementsRP16CTestModuleParamRm @ 2 NONAME
+	_Z19SetMemoryMonitorTlsP14CMemoryMonitor @ 3 NONAME
+	_ZN17COomMonitorPlugin10ConstructLEv @ 4 NONAME
+	_ZN17COomMonitorPlugin18ExtensionInterfaceE4TUidRPv @ 5 NONAME
+	_ZN17COomMonitorPlugin9FsSessionEv @ 6 NONAME
+	_ZN17COomMonitorPlugin9WsSessionEv @ 7 NONAME
+	_ZN17COomMonitorPluginC2Ev @ 8 NONAME
+	_ZN17COomMonitorPluginD0Ev @ 9 NONAME
+	_ZN17COomMonitorPluginD1Ev @ 10 NONAME
+	_ZN17COomMonitorPluginD2Ev @ 11 NONAME
+	_ZN19COomMonitorPluginV27FreeRamEv @ 12 NONAME
+	_ZN20CAppOomMonitorPlugin4NewLE4TUid @ 13 NONAME
+	_ZTI17COomMonitorPlugin @ 14 NONAME
+	_ZTI19COomMonitorPluginV2 @ 15 NONAME
+	_ZTV17COomMonitorPlugin @ 16 NONAME
+	_ZTV19COomMonitorPluginV2 @ 17 NONAME
+	_ZTI8CMyTimer @ 18 NONAME
+	_ZTV8CMyTimer @ 19 NONAME
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oom_closeapp/group/bld.inf	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,32 @@
+/*
+* 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:
+*
+*/
+
+PRJ_PLATFORMS
+
+	DEFAULT
+
+PRJ_TESTEXPORTS
+
+PRJ_EXPORTS
+
+PRJ_TESTMMPFILES
+
+	ut_oom_closeapp.mmp
+
+PRJ_MMPFILES
+
+//  End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oom_closeapp/group/ut_oom_closeapp.mmp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,79 @@
+/*TYPE STIFUNIT*/
+/*
+* 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: MMP file for STIF Test Framework's STIFUnit test module.
+*
+*/
+
+#include <platform_paths.hrh>
+
+//uncomment both of these macros to use the CLIENT_REQUEST_QUEUE
+macro CLIENT_REQUEST_QUEUE
+#define CLIENT_REQUEST_QUEUE
+
+SMPSAFE
+
+TARGET          ut_oom_closeapp.dll
+TARGETTYPE      dll
+UID             0x1000008D 0x2002CAD2
+
+CAPABILITY      ALL -TCB
+
+DEFFILE         ut_oom_closeapp.def
+
+USERINCLUDE     ../inc 
+USERINCLUDE     ../../../inc
+
+MW_LAYER_SYSTEMINCLUDE
+OS_LAYER_SYSTEMINCLUDE
+
+SOURCEPATH      ../src
+
+SOURCE          ut_oom_closeapp.cpp
+SOURCE          ut_oom_closeappCases.cpp
+SOURCE          moc_oomactionlist.cpp
+SOURCE          moc_oommemorymonitor.cpp
+SOURCE          mytimer.cpp
+
+SOURCEPATH      ../../../src
+SOURCE		oomcloseapp.cpp
+SOURCE		oomappclosetimer.cpp
+SOURCE		oomappclosewatcher.cpp
+SOURCE		oomactionref.cpp
+SOURCE		oomconfig.cpp
+SOURCE		oommonitorplugin.cpp
+SOURCE		oomaction.cpp
+SOURCE		oomwindowgrouplist.cpp
+SOURCE		oomwserveventreceiver.cpp
+SOURCE		oomglobalconfig.cpp
+SOURCE		oompanic.cpp
+SOURCE		oomactionconfig.cpp
+SOURCE		oomapplicationconfig.cpp
+
+LIBRARY         euser.lib
+LIBRARY         stiftestinterface.lib
+
+LIBRARY         apparc.lib
+LIBRARY         eikcore.lib
+LIBRARY         aknnotify.lib
+LIBRARY         apgrfx.lib
+LIBRARY         ws32.lib
+LIBRARY         bafl.lib
+LIBRARY         ecom.lib
+LIBRARY         hal.lib
+LIBRARY         efsrv.lib
+LIBRARY         xmlframework.lib
+LIBRARY         cone.lib
+
+LANG            SC
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oom_closeapp/group/ut_oom_closeapp.pkg	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,32 @@
+;
+; 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:
+;
+; 	Installation file for STIF
+;
+
+; Languages
+&EN
+
+; Provide value for uid
+#{"STIF"},(0x2002CAD2),1,1,0,TYPE=SA
+
+; Localised Vendor name
+%{"Nokia"}
+
+; Unique Vendor name
+:"Nokia"
+
+; Install files
+"\epoc32\release\armv5\udeb\ut_oom_closeapp.dll"   -   "!:\Sys\Bin\ut_oom_closeapp.dll"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oom_closeapp/inc/moc_oomactionlist.h	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,33 @@
+/*
+* 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:  Main classes for Out of Memory Monitor.
+*
+*/
+
+
+#ifndef MOC_OOMACTIONLIST_H
+#define MOC_OOMACTIONLIST_H
+
+#include "oomactionlist.h"
+
+NONSHARABLE_CLASS(CMoc_COomActionList) : public CBase, public MOomActionObserver
+    {
+public:
+    void StateChanged();
+    TInt GetState();    	
+private:
+	TInt  iStateChange;  
+    };
+
+#endif /*MOC_OOMACTIONLIST_H*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oom_closeapp/inc/mytimer.h	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,53 @@
+/*
+* 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: This file contains STIFUnit implementation.
+*
+*/
+
+#ifndef MYTIMER_H_
+#define MYTIMER_H_
+
+#include <e32base.h>
+#include <oomwserveventreceiver.h>
+
+enum TStatus
+    {
+    EPhase1, //=0
+    EPhase2,
+    EPhase3,
+    EPhase4,
+    EPhase5,
+    };
+
+class CMyTimer : public CTimer
+    {
+public:
+    static CMyTimer* NewLC(CWservEventReceiver*);  
+    static CMyTimer* NewL(CWservEventReceiver*); 
+    virtual ~CMyTimer();
+    
+protected:   
+    CMyTimer(CWservEventReceiver*);
+
+private:   
+    void ConstructL();  
+    virtual void RunL();   
+    
+private:
+    RProcess iProcess;
+    enum TStatus currentStatus;
+    CWservEventReceiver* iWsEventRecv;
+    };
+
+#endif /* MYTIMER_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oom_closeapp/src/moc_oomactionlist.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,29 @@
+/*
+* 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:  Main classes for Out of Memory Monitor.
+*
+*/
+
+
+
+#include "moc_oomactionlist.h"
+
+void CMoc_COomActionList::StateChanged()
+	  {
+	  iStateChange++;
+	  }
+TInt CMoc_COomActionList::GetState()
+	  {
+	  return iStateChange;
+	  }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oom_closeapp/src/moc_oommemorymonitor.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,185 @@
+/*
+* Copyright (c) 2006-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:  Main classes for Out of Memory Monitor.
+*
+*/
+
+
+#include <hal.h>
+#include <u32hal.h>
+
+#include <UikonInternalPSKeys.h>
+
+#include "oommemorymonitor.h"
+#include "oomconfig.h"
+#include "oommonitorplugin.h"
+#include "oomconstants.hrh"
+
+// ======================================================================
+// class CMemoryMonitor
+// ======================================================================
+
+// ---------------------------------------------------------
+//
+// ---------------------------------------------------------
+//
+CMemoryMonitor* CMemoryMonitor::NewL()
+    { // static
+    CMemoryMonitor* self = new(ELeave) CMemoryMonitor();
+    CleanupStack::PushL(self);
+    self->ConstructL();
+    CleanupStack::Pop(self);
+    return self;
+    }
+
+CMemoryMonitor::CMemoryMonitor()
+    {
+    SetMemoryMonitorTls(this);
+    }
+
+// ---------------------------------------------------------
+//
+// ---------------------------------------------------------
+//
+CMemoryMonitor::~CMemoryMonitor()
+    {
+    delete iConfig;    
+    }
+
+// ---------------------------------------------------------
+//
+// ---------------------------------------------------------
+//
+void CMemoryMonitor::ConstructL()
+    {
+    iConfig = COomConfig::NewL(); 
+    
+    iConfig->SetMaxAppExitTime(KMicrosecondsInMillisecond);    
+    }
+
+const COomGlobalConfig& CMemoryMonitor::GlobalConfig()
+    {
+    CMemoryMonitor* globalMemoryMonitor = static_cast<CMemoryMonitor*>(Dll::Tls());
+    return globalMemoryMonitor->iConfig->GlobalConfig();
+    }
+
+
+// ---------------------------------------------------------
+//
+// ---------------------------------------------------------
+//
+void CMemoryMonitor::FreeMemThresholdCrossedL()
+    {
+    }
+
+void CMemoryMonitor::HandleFocusedWgChangeL()
+    {
+    TAny* pointer=Dll::Tls();
+    TInt* Count=STATIC_CAST(TInt*, pointer);
+    (*Count)++;
+    }
+
+void CMemoryMonitor::StartFreeSomeRamL(TInt /*aFreeRamTarget*/, TInt /*aFreeSwapTarget*/)
+    {
+    }
+
+void CMemoryMonitor::StartFreeSomeRamL(TInt /*aFreeRamTarget*/, TInt /*aFreeSwapTarget*/, TInt /*aMaxPriority*/) // The maximum priority of action to run
+    {
+    }
+
+void CMemoryMonitor::RequestFreeMemoryPandSL(TInt /*aBytesRequested*/)
+    {
+    }
+
+void CMemoryMonitor::RequestFreeMemoryL(TInt /*aBytesRequested*/, TBool /*aDataPaged*/)
+    {
+    }
+
+void CMemoryMonitor::FreeOptionalRamL(TInt /*aBytesRequested*/, TInt /*aPluginId*/, TBool /*aDataPaged*/) // The ID of the plugin that will clear up the allocation, used to determine the priority of the allocation
+    {
+    }
+
+void CMemoryMonitor::GetFreeMemory(TInt& /*aCurrentFreeMemory*/)
+    {
+    }
+
+void CMemoryMonitor::GetFreeSwapSpace(TInt& /*aCurrentFreeSwapSpace*/)
+    {
+    }
+
+#ifndef CLIENT_REQUEST_QUEUE 
+TInt CMemoryMonitor::WatchdogStatusStatusChanged(TAny* /*aPtr*/)
+    {
+    return KErrNone;
+    }
+
+// ---------------------------------------------------------
+//
+// ---------------------------------------------------------
+//
+void CMemoryMonitor::HandleWatchdogStatusCallBack()
+    {
+    }
+#endif //CLIENT_REQUEST_QUEUE
+
+void CMemoryMonitor::AppNotExiting(TInt /*aWgId*/)
+    {
+    }
+
+
+void CMemoryMonitor::RefreshThresholds()
+    {
+    }
+
+// SetMemoryMonitorStatusProperty - updates the property value only if it has changed
+void CMemoryMonitor::SetMemoryMonitorStatusProperty(const TMemoryMonitorStatusPropertyValues /*aValue*/)
+    {
+    }
+
+void CMemoryMonitor::ResetTargets()
+    {
+    }
+
+void CMemoryMonitor::SetPriorityBusy(TInt /*aWgId*/)
+    {
+    }
+
+void CMemoryMonitor::SetPriorityNormal(TInt /*aWgId*/)
+    {
+    }
+
+void CMemoryMonitor::SetPriorityHigh(TInt /*aWgId*/)
+    {
+    }
+
+TActionTriggerType CMemoryMonitor::ActionTrigger() const
+    {
+    return iActionTrigger;
+    }
+
+#ifdef CLIENT_REQUEST_QUEUE 
+TInt CMemoryMonitor::GoodRamThreshold() const
+    {
+    return iGoodRamThreshold;
+    }
+
+TInt CMemoryMonitor::LowRamThreshold() const
+    {
+    return iLowRamThreshold;
+    }
+
+void CMemoryMonitor::ActionsCompleted(TInt /*aBytesFree*/, TBool /*aMemoryGood*/)
+    {
+    }
+#endif //CLIENT_REQUEST_QUEUE
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oom_closeapp/src/mytimer.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,99 @@
+/*
+* 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: This file contains STIFUnit implementation.
+*
+*/
+
+#include <e32base.h>
+#include <e32std.h>
+#include "mytimer.h"
+
+_LIT (KExeName, "appfortest.exe");
+
+CMyTimer::CMyTimer(CWservEventReceiver* aWsEventRecv):CTimer(EPriorityStandard),
+        iWsEventRecv(aWsEventRecv)
+    {
+    currentStatus=EPhase1;
+    } 
+
+CMyTimer::~CMyTimer()
+    {
+    iProcess.Close();
+    }
+
+CMyTimer* CMyTimer::NewLC(CWservEventReceiver* aWsEventRecv)
+    {
+    CMyTimer* self=new(ELeave) CMyTimer(aWsEventRecv);  
+    CleanupStack::PushL(self);  
+    self->ConstructL();  
+    return self;  
+    }
+
+CMyTimer* CMyTimer::NewL(CWservEventReceiver* aWsEventRecv)
+    {
+    CMyTimer* self=CMyTimer::NewLC(aWsEventRecv);  
+    CleanupStack::Pop(); 
+    return self;
+    }
+
+void CMyTimer::ConstructL()
+    {
+    CTimer::ConstructL();  
+    CActiveScheduler::Add(this);  
+    After(5000000);
+    }
+
+void CMyTimer::RunL()
+    {
+    switch(currentStatus)
+        {
+        case EPhase1:
+            {
+            User::LeaveIfError(iProcess.Create(KExeName, KNullDesC) );      
+            iProcess.Resume();   
+            currentStatus=EPhase2;
+            After(5000000); 
+            break;
+            }
+        case EPhase2:
+            {
+            iProcess.Kill(0);
+            iProcess.Close();
+            iWsEventRecv->Cancel();
+            currentStatus=EPhase3;
+            After(5000000); 
+            break;
+            }
+        case EPhase3:
+            {
+            User::LeaveIfError(iProcess.Create(KExeName, KNullDesC) );      
+            iProcess.Resume();   
+            currentStatus=EPhase4;
+            After(5000000); 
+            break;
+            }
+        case EPhase4:
+            {
+            iProcess.Kill(0);
+            iProcess.Close();
+            currentStatus=EPhase5;
+            After(5000000);
+            break;
+            }
+        default:
+            {
+            CActiveScheduler::Stop();
+            }
+        }
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oom_closeapp/src/ut_oom_closeapp.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,130 @@
+/*
+* 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: This file contains STIFUnit module implementation.
+*
+*/
+
+/******************************************************************************/
+/*
+ *
+ * Test module configuration 
+*/
+
+// Version
+#define TEST_MODULE_VERSION_MAJOR 0
+#define TEST_MODULE_VERSION_MINOR 0
+#define TEST_MODULE_VERSION_BUILD 0
+
+// Uncomment following defines, if you want to provide implementation
+// of enlisted virtual methods of test module.
+// Implementation part is located at the end of this file.
+//#define STIFUNIT_OOMTESTQUERYL
+//#define STIFUNIT_OOMTESTINITIALIZEL
+//#define STIFUNIT_OOMHANDLEWARNINGL
+//#define STIFUNIT_OOMTESTFINALIZEL
+// Uncomment following define, if you want to increase heap or stack size.
+// #define STIFUNIT_SETHEAPANDSTACKSIZE
+/******************************************************************************/
+
+
+/*
+ * Test module internals. Please do not edit them. 
+*/
+
+// Includes
+#include <e32base.h>
+
+// Literals
+_LIT( KUnitLogPath, "\\logs\\testframework\\ut_oom_closeapp\\" ); 
+_LIT( KUnitLogFile, "ut_oom_closeapp.txt" ); 
+_LIT( KLogStart, "ut_oom_closeapp logging starts!" );
+_LIT( KExeName, "appfortest.exe" );
+_LIT( KArguments, "" );
+_LIT(KDummyWgName, "20");
+
+// Defines
+#define STIF_UNIT_TEST_CASES "../src/ut_oom_closeappCases.cpp"
+#define STIF_UNIT_MODULE_CLASS_NAME Cut_oom_closeapp
+#define STIF_UNIT_MODULE_NAME _L("ut_oom_closeapp.dll")
+
+// Include STIF unit generic file
+#include <StifUnitGeneric.h>
+
+/*
+ * Implementation of setHeapAndStack virtual methods.
+ * To changes heap and stack size provide new values to iTestThreadStackSize, iTestThreadMinHeap and iTestThreadMaxHeap. 
+*/
+
+#ifdef STIFUNIT_SETHEAPANDSTACKSIZE
+EXPORT_C TInt SetRequirements( CTestModuleParam*& aTestModuleParam, 
+                               TUint32& aParameterValid )
+    {
+    aParameterValid = KStifTestModuleParameterChanged;
+    TRAPD(err, CTestModuleParamVer01* param = CTestModuleParamVer01::NewL()); 
+    if(KErrNone==err)
+        {
+        // Stack size 
+        param->iTestThreadStackSize= 16384; // 16K stack 
+        // Heap sizes 
+        param->iTestThreadMinHeap = 4096; // 4K heap min 
+        param->iTestThreadMaxHeap = 1048576;// 1M heap max 
+        }
+
+    return err;
+    }
+#undef STIFUNIT_SETHEAPANDSTACKSIZE
+#endif
+
+/*
+ * User implementation of OOM virtual methods.
+ * Providing own implementation requires uncommenting defines at the
+ * beginnig of this file.   
+*/
+#ifdef STIFUNIT_OOMTESTQUERYL
+TBool Cut_oom_closeapp::OOMTestQueryL( const TFileName& /*aTestCaseFile*/, 
+                                   const TInt aCaseNumber, 
+                                   TOOMFailureType& aFailureType, 
+                                   TInt& aFirstMemFailure, 
+                                   TInt& aLastMemFailure)
+    {
+    }
+#undef STIFUNIT_OOMTESTQUERYL
+#endif
+
+#ifdef STIFUNIT_OOMTESTINITIALIZEL
+void Cut_oom_closeapp::OOMTestInitializeL( const TFileName& /*aTestCaseFile*/, 
+                                       const TInt /*aCaseNumber*/ )
+    {
+    }
+#undef STIFUNIT_OOMTESTINITIALIZEL
+#endif
+
+#ifdef STIFUNIT_OOMHANDLEWARNINGL
+void Cut_oom_closeapp::OOMHandleWarningL( const TFileName& /*aTestCaseFile*/,
+                                      const TInt /*aCaseNumber*/, 
+                                      TInt& /*aFailNextValue*/)
+    {
+    }
+#undef STIFUNIT_OOMHANDLEWARNINGL
+#endif
+    
+#ifdef STIFUNIT_OOMTESTFINALIZEL
+void Cut_oom_closeapp::OOMTestFinalizeL( const TFileName& /*aTestCaseFile*/, 
+                                     const TInt /*aCaseNumber*/ )
+    {
+    }
+#undef STIFUNIT_OOMTESTFINALIZEL
+#endif
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oom_closeapp/src/ut_oom_closeappCases.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,551 @@
+/*
+* 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: This file contains STIFUnit implementation.
+*
+*/
+
+/**
+ * STIF_UNIT_INCLUDE SECTION - put all #includes between STIF_UNIT_INCLUDE_SECTION
+ *                             and STIF_UNIT_INCLUDE_SECTION_END
+ */
+#ifdef STIF_UNIT_INCLUDE_SECTION
+#include "oomconstants.hrh"
+#include "oomcloseapp.h"
+#include "oomappclosetimer.h"
+#include "oomappclosewatcher.h"
+#include "moc_oomactionlist.h"
+#include "oomactionref.h"
+#include "oommemorymonitor.h"
+#include <apgwgnam.h> 
+#include <oomwindowgrouplist.h>
+#include <oomwserveventreceiver.h>
+#include <mytimer.h>
+#include <e32debug.h>
+#endif //STIF_UNIT_INCLUDE_SECTION_END
+
+/**
+ * GLOBAL VARIABLES SECTION
+ */
+#ifdef TEST_VAR_DECLARATIONS
+    CActiveScheduler* scheduler;
+#endif
+/**
+ * END OF GLOBAL VARIABLES SECTION
+ */
+
+
+/**
+ * TEST CASES SECTION
+ */
+#ifdef TEST_CASES
+/**
+ * STIF_SETUP defines activities needed before every test case.
+ */
+STIF_SETUP
+{
+    // Install active scheduler at start up
+    scheduler = new (ELeave) CActiveScheduler();
+    CleanupStack::PushL(scheduler);
+    CActiveScheduler::Install(scheduler);
+}
+
+/**
+ * STIF_TEARDOWN defines activities needed after every test case
+ */
+STIF_TEARDOWN
+{
+    // Delete active scheduler at last
+    CActiveScheduler::Install(NULL);
+    CleanupStack::PopAndDestroy(scheduler);
+}
+
+/**
+ * @SYMTestCaseID              GAPS-OOM-WINDOWGROUPLIST-001
+ * @SYMTestCaseDesc            Verify the behaviors of oomwindowgrouplist.
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1. Get the list of window group of current system.
+ *                             2. Create appfortest process.
+ *                             3. Get the list of window group of current system.
+ *                             4. Get the wgID of appfortest process.
+ *                             5. Create COomWindowGroupList object.
+ *                             6. Get window group name.
+ *                             7. Get index from app ID.
+ *                             8. Get app ID from index.
+ *                             9. Get Idle time 1 of appfortest.
+ *                             10. Wait 1 second.
+ *                             11. Get Idle time 2 of appfortest.
+ *                             12. Compare Idle times.
+ *                             13. Set appfortest priority busy.
+ *                             14. Check appfortest priority.
+ *                             15. Set appfortest priority high.
+ *                             16. Check appfortest priority.
+ *                             17. Set appfortest priority normal.
+ *                             18. Check appfortest priority.
+ * @SYMTestExpectedResults     1. Get the window group list of current system successfully.
+ *                             2. Create appfortest process successfully.
+ *                             3. Get the window group list of current system successfully.
+ *                             4. Get the wgID of appfortest process successfully.
+ *                             5. Create COomWindowGroupList object successfully.
+ *                             6. Get window group name successfully.
+ *                             7. Get index from app ID successfully.
+ *                             8. Get app ID from index successfully.
+ *                             9. Get Idle time 1 of appfortest successfully.
+ *                             10. Wait 1 second.
+ *                             11. Get Idle time of appfortest successfully.
+ *                             12. Idle time 2 greater than or equal to idle time 1.
+ *                             13. Set appfortest priority busy successfully.
+ *                             14. Appfortest priority is set to busy.
+ *                             15. Set appfortest priority high successfully.
+ *                             16. Appfortest priority is set to high.
+ *                             17. Set appfortest priority normal successfully.
+ *                             18. Appfortest priority is set to normal.
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            20-07-2010
+ */
+
+STIF_TESTDEFINE(GAPS-OOM-WINDOWGROUPLIST-001)
+{
+    TInt retrunValue=KErrNone;
+        
+    RWsSession wsSession;
+    CleanupClosePushL(wsSession);
+    User::LeaveIfError(wsSession.Connect());
+    TInt numGroups = wsSession.NumWindowGroups(0);
+    
+    //Get the wgID list before appfortest.exe start
+    RArray<RWsSession::TWindowGroupChainInfo> wgIds;
+    wgIds.ReserveL(numGroups);
+    User::LeaveIfError(wsSession.WindowGroupList(0, &wgIds));
+    
+    //Create appfortest.exe process
+    RProcess process;
+    CleanupClosePushL(process);
+    User::LeaveIfError(process.Create(KExeName, KNullDesC) );      
+    process.Resume();   
+    User::After(5000000);   // wait process start...
+    
+    // Get the app id of appfortest.exe
+    TSecureId AppSecuID=process.SecureId();
+    
+    // Check wgNumber
+    TInt numGroups1 = wsSession.NumWindowGroups(0);    
+    // STIF_ASSERT_EQUALS(numGroups+1, numGroups1);
+    
+    //Get the wgID list after appfortest.exe started
+    RArray<RWsSession::TWindowGroupChainInfo> wgIds1;
+    wgIds1.ReserveL(numGroups1);
+    User::LeaveIfError(wsSession.WindowGroupList(0, &wgIds1));  
+    
+    // Get teh wgID of appfortest.exe
+    for(TInt count=0; count<numGroups; count++)
+        {
+        TInt position=wgIds1.Find(wgIds[count]);
+        wgIds1.Remove(position);
+        }
+
+    TInt wgID=-1;
+    if(1 == wgIds1.Count())
+        {
+        wgID=wgIds1[0].iId;
+        }
+    else
+        {
+        iLog->Log(_L("Failed to get wgID of appfortest.exe!\n"));
+        retrunValue = KErrNotFound;
+        }
+    
+    if(KErrNone == retrunValue)
+        {
+        // Create wsSession object
+        COomWindowGroupList* oomWindowGroupList = COomWindowGroupList::NewL(wsSession);
+        CleanupStack::PushL(oomWindowGroupList);
+        
+        // Test WgName
+        CApaWindowGroupName* wgName=oomWindowGroupList->WgName();
+        TPtrC potint=wgName->WindowGroupName();      
+        if(wgName->WindowGroupName()==KDummyWgName)
+            {
+            iLog->Log(_L("Get WgName successfully!\n"));
+                        }
+        else
+            {
+            iLog->Log(_L("Failed to get windowgroup name!\n"));
+            retrunValue = KErrGeneral;
+            }
+        
+        // Test GetIndexFromAppId and AppID
+        TInt index=oomWindowGroupList->GetIndexFromAppId(AppSecuID.iId);
+        
+        TUint appID=oomWindowGroupList->AppId(index, ETrue);
+        if(AppSecuID.iId==appID)
+            {
+            iLog->Log(_L("Get AppID successfully!\n"));
+            }
+        else
+            {
+            iLog->Log(_L("Failed to get AppID!\n"));
+            retrunValue = KErrGeneral;
+            }
+        
+        // Test IdleTime
+        TTimeIntervalSeconds time1=oomWindowGroupList->IdleTime(index);
+        User::After(1000000);
+        TTimeIntervalSeconds time2=oomWindowGroupList->IdleTime(index);
+        if(time2>=time1)
+            {
+            iLog->Log(_L("IdleTime test passed!\n"));
+            }
+        else
+            {
+            iLog->Log(_L("IdleTime test failed!\n"));
+            retrunValue = KErrGeneral;
+            }
+        
+        // Test priority
+        oomWindowGroupList->SetPriorityBusy(wgID);
+        if(!oomWindowGroupList->IsDynamicHighPriority(index) && oomWindowGroupList->IsBusy(index))
+            {
+            iLog->Log(_L("Test priority passed 1!\n"));
+            }
+        else
+            {
+            iLog->Log(_L("Test priority failed 1!\n"));
+            retrunValue = KErrGeneral;
+            }
+        
+        oomWindowGroupList->SetPriorityHigh(wgID);
+        if(!oomWindowGroupList->IsBusy(index) && oomWindowGroupList->IsDynamicHighPriority(index))
+            {
+            iLog->Log(_L("Test priority passed 2!\n"));
+            }
+        else
+            {
+            iLog->Log(_L("Test priority failed 2!\n"));
+            retrunValue = KErrGeneral;
+            }
+       
+        oomWindowGroupList->SetPriorityNormal(wgID);
+        if(!oomWindowGroupList->IsBusy(index) && !oomWindowGroupList->IsDynamicHighPriority(index))
+            {
+            iLog->Log(_L("Test priority passed 3!\n"));
+            }
+        else
+            {
+            iLog->Log(_L("Test priority failed 3!\n"));
+            retrunValue = KErrGeneral;
+            }
+        CleanupStack::PopAndDestroy(oomWindowGroupList);
+        }
+
+    wgIds.Close();
+    wgIds1.Close();
+    process.Kill(KErrNone);
+    
+    User::After(5000000);   // waiting to kill process ...
+    CleanupStack::PopAndDestroy(&process);
+    CleanupStack::PopAndDestroy(&wsSession);
+
+    STIF_ASSERT_EQUALS(retrunValue, KErrNone);
+}
+
+/**
+ * @SYMTestCaseID              GAPS-OOM-WINDOWGROUPLIST-001
+ * @SYMTestCaseDesc            Verify the behaviors of oomwserveventreceiver.cpp.
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1. Create and install CActiveScheduler object.
+ *                             2. Create RWsSession object.
+ *                             3. Create CWservEventReceiver object and add it into ActiveScheduler.
+ *                             4. Create CMyTimer object.
+ *                             5. Start ActiveScheduler.
+ *                             6. Create appfortest.exe process.
+ *                             7. Close appfortest.exe process. Call the cancel method of CTimer object.
+ *                             8. Create appfortest.exe process.
+ *                             9. Close appfortest.exe process.
+ *                             10. Stop CActiveScheduler.
+ * @SYMTestExpectedResults     1. Create and install CActiveScheduler object successfully.
+ *                             2. Create RWsSession object successfully.
+ *                             3. Create CWservEventReceiver object and add it into ActiveScheduler successfully.
+ *                             4. Create CMyTimer object successfully.
+ *                             5. Start ActiveScheduler successfully.
+ *                             6. Create appfortest.exe process successfully. WservEventReceiver received focus change event.
+ *                             7. Close appfortest.exe process successfully. cancel method is called.
+ *                             8. Create CMyTimer object successfully. WservEventReceiver will not receive focus change event.
+ *                             9. Close appfortest.exe process successfully.
+ *                             10. Stop CActiveScheduler successfully.
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            20-07-2010
+ */
+STIF_TESTDEFINE(GAPS-OOM-WSERVEVENTRECEIVER-001)
+{   
+    iLog->Log(_L("Start oomwserveventreceiver.cpp test!\n"));
+    TInt Count=0;
+    Dll::SetTls(&Count);
+        
+    RWsSession wsSession;
+    CleanupClosePushL(wsSession);
+    User::LeaveIfError(wsSession.Connect());
+    
+    CMemoryMonitor* oom=NULL;
+    CWservEventReceiver* winServEventReceiver = new(ELeave) CWservEventReceiver(*oom, wsSession);
+    CleanupStack::PushL(winServEventReceiver);
+    winServEventReceiver->ConstructL();
+    
+    CMyTimer* timer=CMyTimer::NewLC(winServEventReceiver);
+    iLog->Log(_L("Start CActiveScheduler!\n"));
+    CActiveScheduler::Start();
+
+    iLog->Log(_L("CActiveScheduler stopped!\n"));
+    
+    CleanupStack::PopAndDestroy(3, &wsSession);
+        
+    TInt* pointer=(int*)(Dll::Tls());
+    TInt* Count1=STATIC_CAST(TInt*, pointer);   
+    iLog->Log(_L("count=%d\n"),*Count1);
+    
+    STIF_ASSERT_EQUALS(*Count1, 2);
+    iLog->Log(_L("End of oomwserveventreceiver.cpp test!\n"));
+}
+
+/**
+ * @SYMTestCaseID              GAPS-OOM-CLOSEAPP-001
+ * @SYMTestCaseDesc            Unit test for COomCloseApp, COomAppCloseTimer, and COomAppCloseWatcher. Given process is data caged.
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1. Connect window session.
+ *                             2. Get the wgID list before appfortest.exe start.
+ *                             3. Create appfortest.exe process.
+ *                             4. Get the app id of eshell.
+ *                             5. Get the wgID list after appfortest.exe started.
+ *                             6. Get teh wgID of appfortest.exe.
+ *                             7. Construct a COomCloseApp object.
+ *                             8. Reconfigure the reference to an action.
+ *                             9. Close the application in order to free memory.
+ *                             10.Close windows group list
+ * @SYMTestExpectedResults     1. Windows session connected.
+ *                             2. wgID list was got.
+ *                             3. appfortest was created.
+ *                             4. App id was got.
+ *                             5. wgID list was got again.
+ *                             6. wgID of appfortest.exe was got.
+ *                             7. COomCloseApp object was constructed.
+ *                             8. The reference to an action was reconfigured.
+ *                             9. appfortest was closed.
+ *                             10. Windows group list was closed.
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            03-08-2010
+ */
+STIF_TESTDEFINE(GAPS-OOM-CLOSEAPP-001)
+{    
+    STIF_LOG("1. Connect window session.");
+    RWsSession wsSession;
+    CleanupClosePushL(wsSession);
+    User::LeaveIfError(wsSession.Connect());
+    TInt numGroups = wsSession.NumWindowGroups(0);
+
+    STIF_LOG("2. Get the wgID list before appfortest.exe start.");
+    RArray<RWsSession::TWindowGroupChainInfo> wgIds;
+    CleanupClosePushL(wgIds);
+    wgIds.ReserveL(numGroups);
+    User::LeaveIfError(wsSession.WindowGroupList(0, &wgIds));
+
+    STIF_LOG("3. Create appfortest.exe process.");
+    RProcess process;
+    CleanupClosePushL(process);
+    User::LeaveIfError(process.Create(KExeName, KArguments) );      
+    process.Resume();   
+    User::After(5000000);   // wait process start...
+    
+    STIF_LOG("4. Get the app id of eshell.");
+    TSecureId AppSecuID=process.SecureId();
+    
+    CleanupStack::PopAndDestroy(&process);
+
+    TInt numGroups1 = wsSession.NumWindowGroups(0);    
+    
+    STIF_LOG("5. Get the wgID list after appfortest.exe started.");
+    RArray<RWsSession::TWindowGroupChainInfo> wgIds1;
+    CleanupClosePushL(wgIds1);
+    wgIds1.ReserveL(numGroups1);
+    User::LeaveIfError(wsSession.WindowGroupList(0, &wgIds1));  
+
+    STIF_LOG("6. Get teh wgID of appfortest.exe.");
+    for(TInt count=0; count<numGroups; count++)
+        {
+        TInt position=wgIds1.Find(wgIds[count]);
+        wgIds1.Remove(position);
+        }
+
+    TInt wgID=-1;
+    if(1 == wgIds1.Count())
+        {
+        wgID=wgIds1[0].iId;
+        }
+    else
+        {
+        STIF_LOG("Failed to get wgID of appfortest.exe.");
+        User::Leave(KErrNotFound);
+        }
+    
+    CMemoryMonitor* memoryMonitor = CMemoryMonitor::NewL();
+    CleanupStack::PushL(memoryMonitor);
+    
+    CMoc_COomActionList* oomActList = new (ELeave) CMoc_COomActionList();
+    CleanupStack::PushL(oomActList);
+
+    STIF_LOG("7. Construct a COomCloseApp object.");
+    COomCloseApp* oomCloseApp = COomCloseApp::NewL(*oomActList, wsSession);
+    CleanupStack::PushL(oomCloseApp);
+    
+    // 
+    STIF_LOG("8. Reconfigure the reference to an action.");
+    const TInt KBytesInMegabyte = 1024;
+    TActionRef actionRef(TActionRef::EAppClose, KOomPriorityInfinate, EContinue, KBytesInMegabyte, wgID, 1);
+    
+    oomCloseApp->Reconfigure(actionRef);
+    
+    STIF_LOG("9. Close the application in order to free memory.");
+    oomCloseApp->FreeMemory(0, ETrue);
+
+    CleanupStack::PopAndDestroy(oomCloseApp);
+    CleanupStack::PopAndDestroy(oomActList);
+    CleanupStack::PopAndDestroy(memoryMonitor);
+    
+    STIF_LOG("10. Close windows group list.");
+
+    CleanupStack::PopAndDestroy(&wgIds1);
+    CleanupStack::PopAndDestroy(&wgIds);
+    
+    User::After(5000000);   // wait resource cleaning...
+    
+    CleanupStack::PopAndDestroy(&wsSession);
+}
+
+/**
+ * @SYMTestCaseID              GAPS-OOM-CLOSEAPP-002
+ * @SYMTestCaseDesc            Unit test for COomCloseApp, COomAppCloseTimer, and COomAppCloseWatcher. Given process is not data caged.
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1. Connect window session.
+ *                             2. Get the wgID list before appfortest.exe start.
+ *                             3. Create appfortest.exe process.
+ *                             4. Get the app id of eshell.
+ *                             5. Get the wgID list after appfortest.exe started.
+ *                             6. Get teh wgID of appfortest.exe.
+ *                             7. Construct a COomCloseApp object.
+ *                             8. Reconfigure the reference to an action.
+ *                             9. Close the application in order to free memory.
+ *                             10.Close windows group list
+ * @SYMTestExpectedResults     1. Windows session connected.
+ *                             2. wgID list was got.
+ *                             3. appfortest was created.
+ *                             4. App id was got.
+ *                             5. wgID list was got again.
+ *                             6. wgID of appfortest.exe was got.
+ *                             7. COomCloseApp object was constructed.
+ *                             8. The reference to an action was reconfigured.
+ *                             9. appfortest was closed.
+ *                             10. Windows group list was closed.
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            03-08-2010
+ */
+STIF_TESTDEFINE(GAPS-OOM-CLOSEAPP-002)
+{    
+    STIF_LOG("1. Connect window session.");
+    RWsSession wsSession;
+    CleanupClosePushL(wsSession);
+    User::LeaveIfError(wsSession.Connect());
+    TInt numGroups = wsSession.NumWindowGroups(0);
+
+    STIF_LOG("2. Get the wgID list before appfortest.exe start.");
+    RArray<RWsSession::TWindowGroupChainInfo> wgIds;
+    CleanupClosePushL(wgIds);
+    wgIds.ReserveL(numGroups);
+    User::LeaveIfError(wsSession.WindowGroupList(0, &wgIds));
+
+    STIF_LOG("3. Create appfortest.exe process.");
+    RProcess process;
+    CleanupClosePushL(process);
+    User::LeaveIfError(process.Create(KExeName, KArguments) );      
+    process.Resume();   
+    User::After(5000000);   // wait process start...
+    
+    STIF_LOG("4. Get the app id of eshell.");
+    TSecureId AppSecuID=process.SecureId();
+    
+    CleanupStack::PopAndDestroy(&process);
+
+    TInt numGroups1 = wsSession.NumWindowGroups(0);    
+    
+    STIF_LOG("5. Get the wgID list after appfortest.exe started.");
+    RArray<RWsSession::TWindowGroupChainInfo> wgIds1;
+    CleanupClosePushL(wgIds1);
+    wgIds1.ReserveL(numGroups1);
+    User::LeaveIfError(wsSession.WindowGroupList(0, &wgIds1));  
+
+    STIF_LOG("6. Get teh wgID of appfortest.exe.");
+    for(TInt count=0; count<numGroups; count++)
+        {
+        TInt position=wgIds1.Find(wgIds[count]);
+        wgIds1.Remove(position);
+        }
+
+    TInt wgID=-1;
+    if(1 == wgIds1.Count())
+        {
+        wgID=wgIds1[0].iId;
+        }
+    else
+        {
+        STIF_LOG("Failed to get wgID of appfortest.exe.");
+        User::Leave(KErrNotFound);
+        }
+    
+    CMemoryMonitor* memoryMonitor = CMemoryMonitor::NewL();
+    CleanupStack::PushL(memoryMonitor);
+    
+    CMoc_COomActionList* oomActList = new (ELeave) CMoc_COomActionList();
+    CleanupStack::PushL(oomActList);
+
+    STIF_LOG("7. Construct a COomCloseApp object.");
+    COomCloseApp* oomCloseApp = COomCloseApp::NewL(*oomActList, wsSession);
+    CleanupStack::PushL(oomCloseApp);
+    
+    // 
+    STIF_LOG("8. Reconfigure the reference to an action.");
+    const TInt KBytesInMegabyte = 1024;
+    TActionRef actionRef(TActionRef::EAppClose, KOomPriorityInfinate, EContinue, KBytesInMegabyte, wgID, 1);
+    
+    oomCloseApp->Reconfigure(actionRef);
+    
+    STIF_LOG("9. Close the application in order to free memory.");
+    oomCloseApp->FreeMemory(0, EFalse);
+
+    CleanupStack::PopAndDestroy(oomCloseApp);
+    CleanupStack::PopAndDestroy(oomActList);
+    CleanupStack::PopAndDestroy(memoryMonitor);
+    
+    STIF_LOG("10. Close windows group list.");
+
+    CleanupStack::PopAndDestroy(&wgIds1);
+    CleanupStack::PopAndDestroy(&wgIds);
+    
+    User::After(5000000);   // wait resource cleaning...
+    
+    CleanupStack::PopAndDestroy(&wsSession);
+}
+
+#endif
+/**
+ * END OF TEST CASES SECTION
+ */
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oom_memorymonitor/Bmarm/ut_oom_memorymonitorU.DEF	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,4 @@
+EXPORTS
+	LibEntryL__Fv @ 1 NONAME R3UNUSED ; LibEntryL(void)
+	SetRequirements__FRP16CTestModuleParamRUl @ 2 NONAME R3UNUSED ; SetRequirements(CTestModuleParam *&, unsigned long &)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oom_memorymonitor/Bwins/ut_oom_memorymonitoru.def	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,4 @@
+EXPORTS
+	?LibEntryL@@YAPAVCTestModuleBase@@XZ @ 1 NONAME ; class CTestModuleBase * __cdecl LibEntryL(void)
+	?SetRequirements@@YAHAAPAVCTestModuleParam@@AAK@Z @ 2 NONAME ; int __cdecl SetRequirements(class CTestModuleParam * &,unsigned long &)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oom_memorymonitor/data/oomconfig.xml	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,181 @@
+<!--
+ Copyright (c) 2004-2010 Nokia Corporation and/or its subsidiary(-ies).
+ All rights reserved.
+ This component and the accompanying materials are made available
+ under the terms of the License "Eclipse Public License v1.0"
+ which accompanies 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 the configuration file for the new OOM Monitor. This configuration file
+defines an OOM policy where RAM is released in the following order.
+
+1. Empty server caches (skin server cache, icon server cache, MDS cache, TFX server cache)
+2. Close applications that have not been used for more than 12 hours (including Browser and high priority applications)
+3. If Browser is in the background, empty Browser cache and close unused windows 
+4. Close always-on applications in the following order: Clock, Calendar, Messaging,  Contacts, Logs, Camera
+5. Close applications that have not been used for more than 15 minutes (including Browser but excluding high priority applications)
+6. Close Matrix UI if it has not been used for more than 15 seconds and continue closing WRT widgets immediately.
+7. Close WRT widgets
+8. Close other background applications that have been used within 15 minutes except Browser and high priority applications
+9. Close high priority applications
+10. If Browser is in the foreground, empty Browser cache and close unused windows 
+11. Close Browser in the background when it has been used within 15 minutes
+-->
+<oom_config>
+
+<!-- 	Low RAM and good RAM thresholds are defined here in kilobytes.
+	The max_app_close_batch indicates how many applications can be closed in parallel.
+	The value 1 means that applications are not closed in parallel.
+	default_wait_after_plugin defines how long is waited (in milliseconds) after
+	an OOM plugin is called and before the free RAM is checked to determine if more
+	actions are needed. This value is meaningful only when "check" or "estimate" sync mode is
+	used with plugins.
+-->
+	<global_settings low_ram_threshold="3637" good_ram_threshold="4900" swap_usage_monitored="true" low_swap_threshold="15000" good_swap_threshold="25000" max_app_close_batch="3" default_wait_after_plugin="10" max_app_exit_time="2000">
+	</global_settings>
+
+<!--	Application specific low RAM and good RAM thresholds are defined here. The higher values of
+the low and good thresholds are defined to avoid OOM errors with these applications when the default
+threshold values are used.
+-->
+	<app_specific_thresholds>
+		<app uid="10008d39" low_ram_threshold="8637" good_ram_threshold="9900"></app> <!-- Browser -->
+		<app uid="20001f63" low_ram_threshold="4637" good_ram_threshold="5900"></app> <!-- Maps -->
+		<app uid="101f857a" low_ram_threshold="5637" good_ram_threshold="6900"></app> <!-- camera -->
+		<app uid="10282822" low_ram_threshold="5637" good_ram_threshold="6900"></app> <!-- Widget UI -->
+		<app uid="200009ee" low_ram_threshold="8637" good_ram_threshold="9900"></app> <!-- Photos -->
+		<app uid="20007b39" low_ram_threshold="10637" good_ram_threshold="11900"></app> <!-- NGage -->
+	</app_specific_thresholds>
+
+<!--	The priority of closing each application is defined here.
+-->
+	<app_close_settings>
+
+<!--		The uid DEFAULT_APP refers to all applications, which priority is not specifically
+		defined in the conf file.
+-->
+		<close_app uid="DEFAULT_APP" priority="80" sync_mode="check">
+			<app_close_idle_priority idle_time="900" priority="50"></app_close_idle_priority>
+			<app_close_idle_priority idle_time="43200" priority="20"></app_close_idle_priority>
+		</close_app>
+<!--		The uid BUSY_APP refers to applications, which have set the OOM priority BUSY
+		by using the OOM Monitor API SetOomPriority(). The priority NEVER_CLOSE
+		means that the application is not closed at all.
+-->
+		<close_app uid="BUSY_APP" priority="NEVER_CLOSE" sync_mode="check"></close_app>
+
+<!--		The uid HIGH_PRIORITY_APP refers to applications, which have set the OOM priority HIGH
+		by using the OOM Monitor API SetOomPriority().
+-->
+		<close_app uid="HIGH_PRIORITY_APP" priority="90" sync_mode="check">
+			<app_close_idle_priority idle_time="43200" priority="20"></app_close_idle_priority>
+		</close_app>
+		<close_app uid="10005903" priority="80" sync_mode="check"> <!-- Clock -->
+			<app_close_idle_priority idle_time="900" priority="50"></app_close_idle_priority>
+			<app_close_idle_priority idle_time="43200" priority="40"></app_close_idle_priority>
+		</close_app>
+		<close_app uid="10005901" priority="80" sync_mode="check"> <!-- Calendar -->
+			<app_close_idle_priority idle_time="900" priority="50"></app_close_idle_priority>
+			<app_close_idle_priority idle_time="43200" priority="41"></app_close_idle_priority>
+		</close_app>
+		<close_app uid="100058c5" priority="80" sync_mode="check">  <!-- Messaging -->
+			<app_close_idle_priority idle_time="900" priority="50"></app_close_idle_priority>
+			<app_close_idle_priority idle_time="43200" priority="42"></app_close_idle_priority>
+		</close_app>
+		<close_app uid="101f4cce" priority="80" sync_mode="check"> <!-- Contacts -->
+			<app_close_idle_priority idle_time="900" priority="50"></app_close_idle_priority>
+			<app_close_idle_priority idle_time="43200" priority="43"></app_close_idle_priority>
+		</close_app>
+		<close_app uid="101f4cd5" priority="80" sync_mode="check"> <!-- Logs -->
+			<app_close_idle_priority idle_time="900" priority="50"></app_close_idle_priority>
+			<app_close_idle_priority idle_time="43200" priority="44"></app_close_idle_priority>
+		</close_app>
+		<close_app uid="101f857a" priority="80" sync_mode="check"> <!-- Camcorder -->
+			<app_close_idle_priority idle_time="900" priority="50"></app_close_idle_priority>
+			<app_close_idle_priority idle_time="43200" priority="45"></app_close_idle_priority>
+		</close_app>
+		<close_app uid="10008d39" priority="110" sync_mode="check"> <!-- Browser -->
+			<app_close_idle_priority idle_time="900" priority="50"></app_close_idle_priority>
+			<app_close_idle_priority idle_time="43200" priority="20"></app_close_idle_priority>
+		</close_app>
+		
+		<!--CWRTWidget.exe -->		
+		<close_app uid="200267C0" priority="100" sync_mode="check"> <!-- Ovi Widget UI -->
+            <app_close_idle_priority idle_time="900" priority="50"></app_close_idle_priority>
+            <app_close_idle_priority idle_time="43200" priority="30"></app_close_idle_priority>
+        </close_app>		
+		<!--CWRTWidget.exe  End -->
+		<!--CWRTWidget2.exe -->		
+		<close_app uid="200267D6" priority="80" sync_mode="check"> 
+            <app_close_idle_priority idle_time="900" priority="50"></app_close_idle_priority>
+            <app_close_idle_priority idle_time="43200" priority="30"></app_close_idle_priority>
+        </close_app>		
+		<!--CWRTWidget2.exe  End -->
+<!--		Widget UI plugin handles the closing of widgets. Widget UI application is not closed.
+-->
+		<close_app uid="10282822" priority="NEVER_CLOSE" sync_mode="check"> </close_app> <!-- Widget UI --> 
+		<close_app uid="101f4cd2" priority="NEVER_CLOSE" sync_mode="continue">
+			<app_close_idle_priority idle_time="15" priority="60"></app_close_idle_priority>
+			<foreground_app_priority if_foreground_app_id="10207218" priority="NEVER_CLOSE"></foreground_app_priority> <!-- Fast swap --> 
+		</close_app> <!-- Matrix UI -->
+		<close_app uid="10207a89" priority="NEVER_CLOSE" sync_mode="check">
+			<app_close_idle_priority idle_time="43200" priority="20"></app_close_idle_priority>
+		</close_app> <!-- Radio -->
+	</app_close_settings>
+<!--	The priority of executing each system plugin is defined here.
+	System plugin is a plugin, which priority is not related to any application.
+-->
+	<system_plugin_settings>
+<!--		The uid DEFAULT_PLUGIN refers to all plugins, which priority is not specificly
+		defined in the conf file.
+-->
+		<system_plugin uid="DEFAULT_PLUGIN" priority="10" sync_mode="continue"></system_plugin>
+		<system_plugin uid="10207140" priority="10" sync_mode="continue"></system_plugin> <!-- AKNSKINSOOMPLUGIN -->
+		<system_plugin uid="10281fe6" priority="10" sync_mode="continue"></system_plugin> <!-- AKNICONOOMPLUGIN -->
+		<system_plugin uid="10282e4f" priority="10" sync_mode="continue"></system_plugin> <!-- TFXSRVOOMPLUGIN -->
+		<system_plugin uid="2001b2c6" priority="10" sync_mode="continue"></system_plugin> <!-- MDSOOMPLUGIN -->
+	</system_plugin_settings>
+<!--	The priority of executing each application plugin is defined here.
+	Application plugin is a plugin, which priority depends on the target application.
+	The target application must be defined for each application plugin.
+	By default all plugins are system plugins unless specifically defined as application
+	plugin in this section.
+-->
+	<app_plugin_settings>
+		<app_plugin uid="10281f93" target_app_id="10008d39" priority="30" wait="100" sync_mode="check"> <!-- WEBENGINEMEMORYPLUGIN, target app Browser -->
+			<plugin_foreground_app_priority target_app_id="10008d39" priority="100"></plugin_foreground_app_priority>
+		</app_plugin>
+
+<!--	Widget memory plugin has very long plugin wait time because we don't want to unnecessarily
+	close any other applications after closing it. We call Widget memory plugin only if
+	Widget UI application is running in the background.
+-->
+		<app_plugin uid="10282855" target_app_id="10282822" priority="70" wait="3500" sync_mode="check" call_if_target_app_not_running="false"> <!-- WIDGETMEMORYPLUGIN, target app Widget UI -->
+			<plugin_foreground_app_priority target_app_id="10282822" priority="NEVER_CLOSE"></plugin_foreground_app_priority> <!-- target app Widget UI -->
+		</app_plugin>
+	<!--CWRTWidget.exe  -  Plugin -->	
+		
+		<app_plugin uid="200267D3" target_app_id="200267C0" priority="70" wait="3500" sync_mode="check" call_if_target_app_not_running="false"> 
+			<plugin_foreground_app_priority target_app_id="200267C0" priority="NEVER_CLOSE"></plugin_foreground_app_priority>
+		</app_plugin>
+	
+	<!--CWRTWidget.exe  -  Plugin   End-->		
+	<!--CWRTWidget2.exe  -  Plugin -->	
+		
+		<app_plugin uid="200267DB" target_app_id="200267D6" priority="50" wait="3500" sync_mode="check" call_if_target_app_not_running="false"> 
+			<plugin_foreground_app_priority target_app_id="200267D6" priority="NEVER_CLOSE"></plugin_foreground_app_priority>
+		</app_plugin>
+	
+	<!--CWRTWidget2.exe  -  Plugin   End-->		
+	</app_plugin_settings>
+</oom_config>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oom_memorymonitor/eabi/ut_oom_memorymonitoru.def	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,23 @@
+EXPORTS
+	_Z9LibEntryLv @ 1 NONAME
+	_Z15SetRequirementsRP16CTestModuleParamRm @ 2 NONAME
+	_Z19SetMemoryMonitorTlsP14CMemoryMonitor @ 3 NONAME
+	_ZN17COomMonitorPlugin10ConstructLEv @ 4 NONAME
+	_ZN17COomMonitorPlugin18ExtensionInterfaceE4TUidRPv @ 5 NONAME
+	_ZN17COomMonitorPlugin9FsSessionEv @ 6 NONAME
+	_ZN17COomMonitorPlugin9WsSessionEv @ 7 NONAME
+	_ZN17COomMonitorPluginC2Ev @ 8 NONAME
+	_ZN17COomMonitorPluginD0Ev @ 9 NONAME
+	_ZN17COomMonitorPluginD1Ev @ 10 NONAME
+	_ZN17COomMonitorPluginD2Ev @ 11 NONAME
+	_ZN19COomMonitorPluginV27FreeRamEv @ 12 NONAME
+	_ZN20CAppOomMonitorPlugin4NewLE4TUid @ 13 NONAME
+	_ZTI15COomFriendClass @ 14 NONAME
+	_ZTI17COomMonitorPlugin @ 15 NONAME
+	_ZTI19COomMonitorPluginV2 @ 16 NONAME
+	_ZTI6DicLog @ 17 NONAME
+	_ZTV15COomFriendClass @ 18 NONAME
+	_ZTV17COomMonitorPlugin @ 19 NONAME
+	_ZTV19COomMonitorPluginV2 @ 20 NONAME
+	_ZTV6DicLog @ 21 NONAME
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oom_memorymonitor/group/bld.inf	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,32 @@
+/*
+* 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:
+*
+*/
+
+PRJ_PLATFORMS
+
+PRJ_TESTEXPORTS
+
+PRJ_EXPORTS
+
+../data/oomconfig.xml               /epoc32/winscw/c/testframework/oomconfig.xml
+
+PRJ_TESTMMPFILES
+
+	ut_oom_memorymonitor.mmp
+
+PRJ_MMPFILES
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oom_memorymonitor/group/ut_oom_memorymonitor.mmp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,72 @@
+/*TYPE STIFUNIT*/
+/*
+* 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: MMP file for STIF Test Framework's STIFUnit test module.
+*
+*/
+
+#include <platform_paths.hrh>
+
+macro CLIENT_REQUEST_QUEUE
+#define CLIENT_REQUEST_QUEUE
+
+macro FCC_UNIT_TEST
+#define FCC_UNIT_TEST
+
+TARGET          ut_oom_memorymonitor.dll
+TARGETTYPE      dll
+UID 0x1000008D 0x200338CC
+
+CAPABILITY      ALL -TCB
+
+DEFFILE         ut_oom_memorymonitor.def
+
+USERINCLUDE     ..\inc 
+USERINCLUDE     ..\..\..\inc
+OS_LAYER_SYSTEMINCLUDE
+MW_LAYER_SYSTEMINCLUDE
+OS_LAYER_LIBC_SYSTEMINCLUDE
+
+SOURCEPATH      ..\..\..\src
+SOURCE          oommemorymonitor.cpp
+
+SOURCEPATH      ..\src
+SOURCE          ut_oom_memorymonitor.cpp
+SOURCE          ut_oom_memorymonitorCases.cpp
+SOURCE 			mockoomclientrequestqueue.cpp
+SOURCE 			diclog.cpp
+SOURCE 			mockoomwindowgrouplist.cpp
+SOURCE 			mockoomactionconfig.cpp
+SOURCE 			mockoomactionlist.cpp
+SOURCE 			mockoomconfig.cpp
+SOURCE 			mockoomconfigparser.cpp
+SOURCE 			mockoomglobalconfig.cpp
+SOURCE 			mockoomlog.cpp
+SOURCE 			mockoommemorymonitorserver.cpp
+SOURCE 			mockoomoutofmemorywatcher.cpp
+SOURCE 			mockoomrunpluginconfig.cpp
+SOURCE 			mockoomwserveventreceiver.cpp
+SOURCE 			mockoommemorymonitorsession.cpp
+SOURCE 			mockoommonitorplugin.cpp
+SOURCE 			oomfriendclass.cpp
+SOURCE 			mockoompanic.cpp
+SOURCE 			mockoomforegroundrule.cpp
+SOURCE 			mockoomcloseappconfig.cpp
+SOURCE 			mockoomapplicationconfig.cpp
+SOURCE 			mockoomIdletimerule.cpp
+
+LIBRARY         euser.lib
+LIBRARY         stiftestinterface.lib ws32.lib apgrfx.lib hal.lib bafl.lib efsrv.lib estor.lib xmlframework.lib
+
+LANG            SC
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oom_memorymonitor/group/ut_oom_memorymonitor.pkg	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,60 @@
+;
+; 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:
+;
+; 	Installation file for STIF
+;
+
+; Languages
+&EN
+
+; Provide value for uid
+#{"STIF"},(0x00000000),1,1,0,TYPE=SA
+
+; Series60 product id for S60 3.0
+[0x101F7961], 0, 0, 0, {"Series60ProductID"}
+
+; Localised Vendor name
+%{"Nokia"}
+
+; Unique Vendor name
+:"Nokia"
+
+; Logo
+; None
+
+; Package signature - Optional
+; None
+
+; Start of Package body
+
+; Condition blocks
+; None
+
+; Options list
+; None
+
+; Install files
+"\epoc32\release\armv5\udeb\ut_oom_memorymonitor.dll"   -   "!:\Sys\Bin\ut_oom_memorymonitor.dll"
+  
+; Embedded SIS 
+; None
+
+; End of Package body
+
+; PKG dependencies
+; None
+
+; PKG capabilities
+; None
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oom_memorymonitor/inc/diclog.h	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,54 @@
+/*
+* 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: This file contains STIFUnit implementation.
+*
+*/
+
+#ifndef DICLOG_H_
+#define DICLOG_H_
+
+#include <e32base.h>
+#include <f32file.h> 
+
+#define DICLOGMAXLENGTH 10;
+
+class DicLog
+    {
+public:
+    DicLog();
+    virtual ~DicLog();
+    static TInt WriteIntLog(const TDesC& aFileName, const TUid aUid, const TInt32 aValue);
+    static TInt WriteIntLog(const TUid aUid, const TInt32 aValue);
+    
+    static TInt WriteLog(const TDesC& aFileName, const TUid aUid, const TDesC& aLog);
+    static TInt WriteLog(const TUid aUid, const TDesC& aLog);
+    
+    static TInt ReadIntLog(const TDesC& aFileName, const TUid aUid, TInt32& aValue);
+    static TInt ReadIntLog(const TUid aUid, TInt32& aValue);
+    
+    static TInt ReadLog(const TDesC& aFileName, const TUid aUid, TDes& aLog);    
+    static TInt ReadLog(const TUid aUid, TDes& aLog);
+    
+    static TInt RemoveLogFile();    
+    static TInt RemoveLogFile(const TDesC& aFileName);    
+    
+private:   
+    static void WriteIntLogL(const TDesC& aFileName, const TUid aUid, const TInt32 aValue);
+    static void WriteLogL(const TDesC& aFileName, const TUid aUid, const TDesC& aLog);
+    static void ReadIntLogL(const TDesC& aFileName, const TUid aUid, TInt32& aValue);
+    static void ReadLogL(const TDesC& aFileName, const TUid aUid, TDes& aLog);
+    static void RemoveLogFileL(const TDesC& aFileName);
+    };
+
+#endif /* DICLOG_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oom_memorymonitor/inc/globaldata.h	Thu Oct 07 06:25:45 2010 +0300
@@ -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: This file contains STIFUnit implementation.
+*
+*/
+
+const TInt KIntValue8=8;
+const TInt KIntValue7=7;
+const TInt KIntValue9=9;
+const TInt KIntValue18=18;
+const TInt KIntValue60=60;
+const TInt KMaxPriority1=889;
+const TInt KGoodRamThreshold=200;
+const TInt KLowRamThreshold=100;
+const TInt KGoodSwapThreshold=400;
+const TInt KLowSwapThreshold=300;
+const TInt KMSize=1024*1024;
+
+_LIT(KConfigParserParser, "ParseL()");                      // 0x0001   8
+_LIT(KOutOfMemoryWatcherStart, "Start()");                  // 0x0002   7
+_LIT(KWingoupListRefresh, "Refresh()");                     // 0x0003   9
+//oomwindowgrouplist SetPriorityHigh                        // 0x0004   int
+//oomwindowgrouplist SetPriorityNormal                      // 0x0005   int
+//oomwindowgrouplist SetPriorityBusy                        // 0x0006   int
+_LIT(KActionListSwitchOffPlugins, "SwitchOffPlugins()");    // 0x0007   18
+_LIT(KClientRequestQueue, "ActionsCompleted()");            // 0x0008   18
+//oomoutofmemorywatcher aLowRamThreshold                    // 0x0009   int
+//oomoutofmemorywatcher aGoodRamThreshold                   // 0x0010   int
+//oomoutofmemorywatcher aLowSwapThreshold                   // 0x0011   int
+//oomoutofmemorywatcher aGoodSwapThreshold                  // 0x0012   int
+_LIT(KOomLoggerStartL, "StartL()");                         // 0x0013   8
+_LIT(KActionListBuildActionListL, "BuildActionListL()");    // 0x0014   18
+//COomActionList FreeMemory aMaxPriority                    // 0x0015   int
+//COomActionList AppNotExiting aWgId                        // 0x0016   int
+
+
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oom_memorymonitor/inc/oomfriendclass.h	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,67 @@
+/*
+* 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: This file contains STIFUnit implementation.
+*
+*/
+
+#ifndef OOMFRIENDCLASS_H_
+#define OOMFRIENDCLASS_H_
+
+#include <e32base.h>
+
+class CMemoryMonitor;
+class COomWindowGroupList;
+class COomConfig;
+class COomClientRequestQueue;
+class CMemoryMonitorServer;
+class COomActionList;
+class COomLogger;
+class COutOfMemoryWatcher;
+class CWservEventReceiver;
+
+class COomFriendClass : public CBase
+    {
+public:
+    static COomFriendClass* NewL();
+    static COomFriendClass* NewLC();
+    virtual ~COomFriendClass();
+    COomWindowGroupList* GetWindowGroupList(CMemoryMonitor* aMemoryMonitor);
+    COomConfig* GetOomConfig(CMemoryMonitor* aMemoryMonitor);
+    COomClientRequestQueue* GetClientRequestQueue(CMemoryMonitor* aMemoryMonitor);
+    CMemoryMonitorServer* GetMemoryMonitorServer(CMemoryMonitor* aMemoryMonitor);
+    COomActionList* GetOomActionList(CMemoryMonitor* aMemoryMonitor);
+    COomLogger* GetOomLogger(CMemoryMonitor* aMemoryMonitor);
+    COutOfMemoryWatcher* GetOutOfMemoryWatcher(CMemoryMonitor* aMemoryMonitor);
+    CWservEventReceiver* GetEventReceiver(CMemoryMonitor* aMemoryMonitor);
+    void CallRefreshThresholds(CMemoryMonitor* aMemoryMonitor);
+    TInt GetGoodRamThreshold(CMemoryMonitor* aMemoryMonitor);
+    TInt GetLowRamThreshold(CMemoryMonitor* aMemoryMonitor);
+    TInt GetGoodSwapThreshold(CMemoryMonitor* aMemoryMonitor);
+    TInt GetLowSwapThreshold(CMemoryMonitor* aMemoryMonitor);
+    TInt GetCurrentRamTarget(CMemoryMonitor* aMemoryMonitor);
+    TInt GetCurrentSwapTarget(CMemoryMonitor* aMemoryMonitor);
+    TInt GetDataPaged(CMemoryMonitor* aMemoryMonitor);
+    TInt GetActionTrigger(CMemoryMonitor* aMemoryMonitor);
+    TInt GetLastMemoryMonitorStatusProperty(CMemoryMonitor* aMemoryMonitor);
+    
+private:    
+    COomFriendClass();
+    void ConstructL();    
+    };
+
+#endif /* OOMFRIENDCLASS_H_ */
+
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oom_memorymonitor/src/diclog.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,204 @@
+/*
+* 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: This file contains STIFUnit implementation.
+*
+*/
+
+#include <S32STOR.H> 
+#include <S32FILE.H> 
+
+#include "diclog.h"
+#include "globaldata.h"
+
+_LIT(KDicLogFileName, "c:\\logs\\diclog");
+
+DicLog::DicLog()
+    {
+
+    }
+
+DicLog::~DicLog()
+    {
+
+    }
+
+void DicLog::WriteIntLogL(const TDesC& aFileName, const TUid aUid, const TInt32 aValue)
+    {
+    RFs fs;    
+    User::LeaveIfError(fs.Connect());
+    CleanupClosePushL(fs);
+    
+    TInt err=KErrGeneral;
+    err = fs.MkDir(aFileName);
+    if(KErrAlreadyExists == err || KErrNone == err)
+        {
+        CDictionaryStore *dicStore = CDictionaryFileStore::OpenLC(fs, aFileName, TUid::Uid(0x0001));
+        
+        RDictionaryWriteStream in;
+        in.AssignLC(*dicStore,aUid);
+        in.WriteInt32L(aValue);
+        in.CommitL();  
+        dicStore->CommitL();
+        
+        CleanupStack::PopAndDestroy(&in);
+        CleanupStack::PopAndDestroy(dicStore);    
+        }
+    else
+        {
+        User::Leave(err);
+        }
+               
+    CleanupStack::PopAndDestroy(&fs);
+    }
+
+TInt DicLog::WriteIntLog(const TDesC& aFileName, const TUid aUid, const TInt32 aValue)
+    {
+    TRAPD(err, DicLog::WriteIntLogL(aFileName, aUid, aValue));
+    return err;
+    }
+
+TInt DicLog::WriteIntLog(const TUid aUid, const TInt32 aValue)
+    {
+    TBuf<KIntValue60> fileNmae(KDicLogFileName);
+    return DicLog::WriteIntLog(fileNmae, aUid, aValue);
+    }
+
+void DicLog::WriteLogL(const TDesC& aFileName, const TUid aUid, const TDesC& aLog)
+    {
+    RFs fs;   
+    User::LeaveIfError(fs.Connect());
+    CleanupClosePushL(fs);
+    
+    TInt err=KErrGeneral;
+    err = fs.MkDir(aFileName);
+    if(KErrAlreadyExists == err || KErrNone == err)
+        {
+        CDictionaryStore *dicStore = CDictionaryFileStore::OpenLC(fs, aFileName, TUid::Uid(0x0001));
+        
+        RDictionaryWriteStream in;
+        in.AssignLC(*dicStore,aUid);
+        in.WriteL(aLog);
+        in.CommitL();  
+        dicStore->CommitL();
+        
+        CleanupStack::PopAndDestroy(&in);
+        CleanupStack::PopAndDestroy(dicStore);    
+        }
+    else
+        {
+        User::Leave(err);
+        }
+               
+    CleanupStack::PopAndDestroy(&fs);
+    }
+
+TInt DicLog::WriteLog(const TDesC& aFileName, const TUid aUid, const TDesC& aLog)
+    {
+    TRAPD(err, DicLog::WriteLogL(aFileName, aUid, aLog));
+    return err;
+    }
+
+TInt DicLog::ReadLog(const TDesC& aFileName, const TUid aUid, TDes& aLog)
+    {
+    TInt err=KErrGeneral;
+    TRAP(err, DicLog::ReadLogL(aFileName, aUid, aLog));      
+
+    return err;
+    }
+
+void DicLog::ReadLogL(const TDesC& aFileName, const TUid aUid, TDes& aLog)
+    {
+    RFs fs;    
+    User::LeaveIfError(fs.Connect());
+    CleanupClosePushL(fs);
+    
+    CDictionaryStore *dicStore = CDictionaryFileStore::OpenLC(fs, aFileName, TUid::Uid(0x0001));
+    
+    RDictionaryReadStream  out;
+    out.OpenLC(*dicStore,aUid);   
+    out.ReadL(aLog);
+    
+    CleanupStack::PopAndDestroy(&out);
+    CleanupStack::PopAndDestroy(dicStore);    
+   
+    CleanupStack::PopAndDestroy(&fs);
+    }
+
+TInt DicLog::ReadIntLog(const TUid aUid, TInt32& aValue)
+    {
+    TBuf<KIntValue60> fileNmae(KDicLogFileName);
+    return DicLog::ReadIntLog(fileNmae, aUid, aValue);
+    }
+
+TInt DicLog::ReadIntLog(const TDesC& aFileName, const TUid aUid, TInt32& aValue)
+    {
+    TInt err=KErrGeneral;
+    TRAP(err, DicLog::ReadIntLogL(aFileName, aUid, aValue));      
+
+    return err;
+    }
+
+void DicLog::ReadIntLogL(const TDesC& aFileName, const TUid aUid, TInt32& aValue)
+    {
+    RFs fs;   
+    User::LeaveIfError(fs.Connect());
+    CleanupClosePushL(fs);
+    
+    CDictionaryStore *dicStore = CDictionaryFileStore::OpenLC(fs, aFileName, TUid::Uid(0x0001));
+    
+    RDictionaryReadStream  out;
+    out.OpenLC(*dicStore,aUid);   
+    aValue=out.ReadInt32L();
+    
+    CleanupStack::PopAndDestroy(&out);
+    CleanupStack::PopAndDestroy(dicStore);    
+   
+    CleanupStack::PopAndDestroy(&fs);
+    }
+
+TInt DicLog::WriteLog(const TUid aUid, const TDesC& aLog)
+    {
+    TBuf<KIntValue60> fileNmae(KDicLogFileName);
+    return DicLog::WriteLog(fileNmae, aUid, aLog);
+    }
+
+TInt DicLog::ReadLog(const TUid aUid, TDes& aLog)
+    {
+    TBuf<KIntValue60> fileNmae(KDicLogFileName);
+    return DicLog::ReadLog(fileNmae, aUid, aLog);
+    }
+
+TInt DicLog::RemoveLogFile()
+    {
+    TBuf<KIntValue60> fileNmae(KDicLogFileName);
+    return RemoveLogFile(fileNmae);
+    }
+
+TInt DicLog::RemoveLogFile(const TDesC& aFileName)
+    {
+    TInt err=KErrGeneral;
+    TRAP(err, DicLog::RemoveLogFileL(aFileName));      
+
+    return err;
+    }
+
+void DicLog::RemoveLogFileL(const TDesC& aFileName)
+    {
+    RFs fs;          
+    User::LeaveIfError(fs.Connect());    
+    CleanupClosePushL(fs);   
+    
+    User::LeaveIfError(fs.Delete(aFileName));
+    CleanupStack::PopAndDestroy(&fs); 
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oom_memorymonitor/src/mockoomIdletimerule.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,51 @@
+/*
+* 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:  Configuration representation classes for Out of Memory Monitor.
+*
+*/
+
+#include "oomidletimerule.h"
+#include "oomwindowgrouplist.h"
+#include "OomTraces.h"
+
+COomIdleTimeRule* COomIdleTimeRule::NewL(TTimeIntervalSeconds aIdleTime, TInt aPriority)
+    {
+    FUNC_LOG;
+
+    COomIdleTimeRule* self = new (ELeave) COomIdleTimeRule(aIdleTime, aPriority);
+    return self;
+    }
+
+TBool COomIdleTimeRule::RuleIsApplicable(const COomWindowGroupList& aWindowGroupList, TInt aAppIndexInWindowGroup) const
+    {
+    FUNC_LOG;
+
+    TBool applicable = EFalse;
+    if (aAppIndexInWindowGroup >= 0)
+        {
+        applicable = (aWindowGroupList.IdleTime(aAppIndexInWindowGroup) >= iIdleTime);
+        }
+    return applicable;
+    }
+
+COomIdleTimeRule::~COomIdleTimeRule()
+    {
+    FUNC_LOG;
+    }
+
+COomIdleTimeRule::COomIdleTimeRule(TTimeIntervalSeconds aIdleTime, TInt aPriority) : iIdleTime(aIdleTime), iPriority(aPriority)
+    {
+    FUNC_LOG;
+    }
+    
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oom_memorymonitor/src/mockoomactionconfig.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,47 @@
+/*
+* 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:  Configuration representation classes for Out of Memory Monitor.
+*
+*/
+
+#include "oomactionconfig.h"
+#include "oomruleconfig.h"
+#include "OomTraces.h"
+
+void COomActionConfig::AddRuleL(MOomRuleConfig* aRule)    // Add the configuration for a rule (e.g. an idle time rule)
+    {
+
+    }
+	
+COomActionConfig::~COomActionConfig()
+    {
+
+    }
+
+TUint COomActionConfig::Priority(const COomWindowGroupList& aWindowGroupList, TInt aAppIndexInWindowGroup) const
+    {
+    return 0;
+    }
+    
+void COomActionConfig::ConstructL()
+    {
+
+    }
+	
+COomActionConfig::COomActionConfig(TInt32 aId) : iId(aId)
+    {
+
+    }
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oom_memorymonitor/src/mockoomactionlist.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,145 @@
+/*
+* 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:  Classes for executing OOM actions (e.g. closing applications and running plugins).
+*
+*/
+
+#include <hal.h>
+#include <u32hal.h>
+#include <apgwgnam.h>
+
+#include "oommonitorplugin.h"
+#include "oommonitorplugin.hrh"
+#include "oomactionlist.h"
+#include "oomwindowgrouplist.h"
+#include "oompanic.h"
+#include "OomTraces.h"
+#include "oomconstants.hrh"
+#include "oommemorymonitor.h"
+#include "oommemorymonitorserver.h"
+#include "oomrunplugin.h"
+#include "oomcloseapp.h"
+#include "oomconfig.h"
+#include "oomactionref.h"
+#include "oomapplicationconfig.h"
+#include "oomcloseappconfig.h"
+#include "oomrunpluginconfig.h"
+
+#include "globaldata.h"
+#include "diclog.h"
+
+template <class T>
+COomPluginList<T>::COomPluginList()
+    {
+
+    }
+
+template <class T>
+COomPluginList<T>::~COomPluginList()
+    {
+
+    }
+
+template <class T>
+void COomPluginList<T>::ConstructL(TInt aInterfaceUid)
+    {
+
+    }
+
+template <class T>
+COomPluginList<T>::TPlugin::TPlugin()
+: iImpl(0)
+    {
+
+    }
+
+template <class T>
+COomPluginList<T>* COomPluginList<T>::NewL(TInt aInterfaceUid)
+    {
+    FUNC_LOG;
+    
+    COomPluginList* self = new (ELeave) COomPluginList();
+    CleanupStack::PushL(self);
+    self->ConstructL(aInterfaceUid);
+    CleanupStack::Pop(self);
+    return self;
+    }
+    
+COomActionList* COomActionList::NewL(CMemoryMonitor& aMonitor, CMemoryMonitorServer& aServer, RWsSession& aWs, COomConfig& aConfig)
+    {
+    FUNC_LOG;
+    
+    COomActionList* self = new (ELeave) COomActionList(aMonitor, aServer, aWs);
+    CleanupStack::PushL(self);
+    self->ConstructL(aConfig);
+    CleanupStack::Pop(self);
+    return self;
+    }
+
+COomActionList::~COomActionList()
+    {
+
+    }
+
+void COomActionList::BuildActionListL(COomWindowGroupList& aWindowGroupList, COomConfig& aConfig)
+    {
+    TBuf<KIntValue18> buf(KActionListBuildActionListL);
+    DicLog::WriteLog(TUid::Uid(0x0014), buf);    
+    }
+
+template <class T>
+void COomActionList::BuildPluginActionsL(COomPluginList<T>& aPluginList, COomWindowGroupList& aWindowGroupList, COomConfig& aConfig, TInt& aActionsIndex)
+    {
+
+    }
+
+
+// Execute the OOM actions according to their priority
+// Run batches of OOM actions according to their sync mode
+void COomActionList::FreeMemory(TInt aMaxPriority)
+    {
+    DicLog::WriteIntLog(TUid::Uid(0x0015),aMaxPriority);
+    }
+
+void COomActionList::SwitchOffPlugins()
+    {
+    TBuf<KIntValue18> buf(KActionListSwitchOffPlugins);
+    DicLog::WriteLog(TUid::Uid(0x0007), buf);
+    }
+
+TInt COomActionList::ComparePriorities(const TActionRef& aPos1, const TActionRef& aPos2 )
+    {  
+    return 0;        
+    }
+
+void COomActionList::AppNotExiting(TInt aWgId)
+    {
+    DicLog::WriteIntLog(TUid::Uid(0x0016),aWgId);
+    }
+
+void COomActionList::StateChanged()
+    {
+
+    }
+
+COomActionList::COomActionList(CMemoryMonitor& aMonitor, CMemoryMonitorServer& aServer, RWsSession& aWs) 
+    : iWs(aWs), iMonitor(aMonitor), iServer(aServer)
+    {
+
+    }
+
+void COomActionList::ConstructL(COomConfig& aConfig)
+    {
+
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oom_memorymonitor/src/mockoomapplicationconfig.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,63 @@
+/*
+* 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:  Configuration representation classes for Out of Memory Monitor.
+*
+*/
+
+#include "oomapplicationconfig.h"
+#include "oomconstants.hrh"
+#include "oomcloseappconfig.h"
+#include "OomTraces.h"
+
+COomApplicationConfig* COomApplicationConfig::NewL(TUint aApplicationId)
+    {
+    FUNC_LOG;
+
+    COomApplicationConfig* self = new (ELeave) COomApplicationConfig(aApplicationId);
+    CleanupStack::PushL(self);
+    self->ConstructL();
+    CleanupStack::Pop(self);
+    return self;
+    }
+
+void COomApplicationConfig::AddRuleL(MOomRuleConfig* aRule)
+    {   
+    FUNC_LOG;
+
+   __ASSERT_ALWAYS(iCloseAppConfig, OomMonitorPanic(KRuleConfiguredBeforeApplication));
+    
+    iCloseAppConfig->AddRuleL(aRule);
+    }
+
+COomApplicationConfig::~COomApplicationConfig()
+    {
+    FUNC_LOG;
+
+    delete iCloseAppConfig;
+    }
+
+void COomApplicationConfig::ConstructL()
+    {
+    FUNC_LOG;
+
+    iGoodRamThreshold = KOomThresholdUnset;
+    iLowRamThreshold = KOomThresholdUnset;  
+    iGoodSwapThreshold = KOomThresholdUnset;
+    iLowSwapThreshold = KOomThresholdUnset;  
+    }
+
+COomApplicationConfig::COomApplicationConfig(TUint aApplicationId) : iApplicationId(aApplicationId)
+    {
+    FUNC_LOG;
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oom_memorymonitor/src/mockoomclientrequestqueue.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,137 @@
+/*
+* 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:  COomClientRequestQueue.cpp.
+*
+*/
+
+#include "oomclientrequestqueue.h"
+#include "OomTraces.h"
+#include "oomsubscribehelper.h"
+#include "oompanic.h"
+#include "oommemorymonitor.h"
+#include <UikonInternalPSKeys.h>
+
+#include "globaldata.h"
+#include "diclog.h"
+
+COomClientRequestQueue::COomClientRequestQueue(CMemoryMonitor& aMonitor)
+    :iQueue(_FOFF(TClientRequest,iLink)),
+    iMonitor(aMonitor)
+    {
+
+    }
+
+COomClientRequestQueue::~COomClientRequestQueue()
+    {
+
+    }
+
+COomClientRequestQueue* COomClientRequestQueue::NewL(CMemoryMonitor& aMonitor)
+    {   
+    COomClientRequestQueue* self = new (ELeave) COomClientRequestQueue(aMonitor);
+    CleanupStack::PushL(self);
+    self->ConstructL();
+    CleanupStack::Pop(self); 
+    return self;
+    }
+
+void COomClientRequestQueue::ConstructL()
+    {
+  
+    }
+
+void COomClientRequestQueue::RequestFreeMemoryL(const RMessage2& aMessage)
+    {
+
+    }
+
+void COomClientRequestQueue::RequestOptionalRamL(const RMessage2& aMessage)
+    {
+
+    }
+
+TInt COomClientRequestQueue::WatchdogStatusStatusChanged(TAny* aPtr)
+    {
+    return KErrNone;
+    }
+
+void COomClientRequestQueue::HandleWatchdogStatusCallBack()
+    {
+
+    }
+
+void COomClientRequestQueue::AddClientRequestL(TClientRequest& request)
+    {
+
+    }
+
+void COomClientRequestQueue::StartClientRequestL()
+    {
+
+    }
+
+CMemoryMonitor& COomClientRequestQueue::Monitor()
+    {  
+    return iMonitor;
+    }
+
+TClientRequest::TClientRequest(TActionTriggerType aClientRequestType, TInt aBytesRequested)    
+    : iClientRequestType(aClientRequestType), iBytesRequested(aBytesRequested)   
+    {
+
+    }
+
+TClientRequest::TClientRequest(TActionTriggerType aClientRequestType, const RMessage2& aRequestFreeRam)    
+    : iClientRequestType(aClientRequestType), iRequestFreeRamMessage(aRequestFreeRam)
+    {
+
+    }
+
+void COomClientRequestQueue::ActionsCompleted(TInt aBytesFree, TBool aMemoryGood)
+    {
+    TBuf<KIntValue18> buf(KClientRequestQueue);
+    DicLog::WriteLog(TUid::Uid(0x0008), buf); 
+    }
+
+void COomClientRequestQueue::RequestTimerCallbackL()
+    {
+
+    }
+
+COomClientRequestTimer* COomClientRequestTimer::NewL(COomClientRequestQueue& aQueue)
+    {
+    COomClientRequestTimer* self = new (ELeave) COomClientRequestTimer(aQueue);
+    CleanupStack::PushL(self);
+    self->ConstructL();
+    CleanupStack::Pop(self);
+    return self;
+    }
+
+COomClientRequestTimer::COomClientRequestTimer(COomClientRequestQueue& aQueue)
+: CTimer(CActive::EPriorityStandard), iClientRequestQueue(aQueue)
+    {
+    
+    }
+
+
+void COomClientRequestTimer::RunL()
+    {
+
+    }
+
+
+
+
+    
+    
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oom_memorymonitor/src/mockoomcloseappconfig.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,42 @@
+/*
+* 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:  Configuration representation classes for Out of Memory Monitor.
+*
+*/
+
+
+
+#include "oomcloseappconfig.h"
+#include "OomTraces.h"
+
+COomCloseAppConfig* COomCloseAppConfig::NewL(TInt32 aId)
+    {
+    FUNC_LOG;
+
+    COomCloseAppConfig* self = new (ELeave) COomCloseAppConfig(aId);
+    CleanupStack::PushL(self);
+    self->ConstructL();
+    CleanupStack::Pop(self);
+    return self;
+    }
+
+COomCloseAppConfig::~COomCloseAppConfig()
+    {
+    FUNC_LOG;
+    }
+
+COomCloseAppConfig::COomCloseAppConfig(TInt32 aId) : COomActionConfig(aId)
+    {
+    FUNC_LOG;
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oom_memorymonitor/src/mockoomconfig.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,201 @@
+/*
+* 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:  Configuration representation classes for Out of Memory Monitor.
+*
+*/
+
+
+#include <e32hashtab.h>
+#include <e32debug.h> // RDebug
+
+#include "oomconfig.h"
+#include "oomconstants.hrh"
+#include "oomapplicationconfig.h"
+#include "oomrunpluginconfig.h"
+#include "oomcloseappconfig.h"
+#include "OomTraces.h"
+
+
+COomConfig* COomConfig::NewL()
+    {
+    FUNC_LOG;
+
+    COomConfig* self = new (ELeave) COomConfig;
+    CleanupStack::PushL(self);
+    self->ConstructL();
+    CleanupStack::Pop(self);
+    return self;
+    }
+
+
+// Add the configuration for an application closure.
+// This class takes ownership of this action.
+void COomConfig::SetAppCloseConfigL(COomCloseAppConfig* aActionConfig)
+    {
+    FUNC_LOG;
+
+    // Find the right application config (if there is one) for the app
+    // The map actually contains pointers for values, so we get pointers to pointers here...
+    COomApplicationConfig** applicationConfigPointer = iApplicationToConfigMapping.Find(aActionConfig->iId);
+    
+    // Used to de-reference the pointer-to-pointer, hopefully making the code more readable
+    COomApplicationConfig* applicationConfig = NULL;
+    
+    // Create a new COomApplicationConfig if there isn't one for this app
+    if (!applicationConfigPointer)
+        {
+        applicationConfig = COomApplicationConfig::NewL(aActionConfig->iId);
+        iApplicationToConfigMapping.InsertL(aActionConfig->iId, applicationConfig);
+        }
+    else
+        {
+        applicationConfig = *applicationConfigPointer;
+        }
+    
+    // Append the action config to the appropriate list (the list for the relevant application)
+    applicationConfig->SetAppCloseConfig(aActionConfig);    
+    }
+
+// Add the configuration for a plugin action.
+// This class takes ownership of the configuration object.
+void COomConfig::AddPluginConfigL(COomRunPluginConfig* aPluginConfig)
+    {
+    FUNC_LOG;
+
+    // Check if the plugin has already been added, if so then this is an error in configuration (something is trying to add the same plugin twice)
+    COomRunPluginConfig** runPluginConfig = iPluginToConfigMapping.Find(aPluginConfig->Id());
+    if (runPluginConfig)
+        {
+        OomMonitorPanic(KPluginConfigAddedTwice);
+        }
+    
+    iPluginToConfigMapping.InsertL(aPluginConfig->Id(), aPluginConfig);
+    
+    }
+
+// Add a rule
+// This class takes ownership of the given rule
+// This rule applies to the specified application (and not a plugin associated with this application)
+// The rule would usually apply to an "application close" event
+void COomConfig::AddApplicationRuleL(TUint aTargetAppId, MOomRuleConfig* aRule)
+    {
+    FUNC_LOG;
+
+    COomApplicationConfig** applicationConfig = iApplicationToConfigMapping.Find(aTargetAppId);
+    
+    if (applicationConfig)
+        {
+        (*applicationConfig)->AddRuleL(aRule);
+        }
+    else
+        {
+        OomMonitorPanic(KRuleConfiguredBeforeApplication);
+        }
+    }
+
+// Add a rule for a plugin
+// This class takes ownership of the given rule
+// This rule is applied to the plugin with the specified ID
+void COomConfig::AddPluginRuleL(TUint aPluginId, MOomRuleConfig* aRule)
+    {
+    FUNC_LOG;
+
+    COomRunPluginConfig** runPluginConfig = iPluginToConfigMapping.Find(aPluginId);
+    
+    if (runPluginConfig)
+        {
+        (*runPluginConfig)->AddRuleL(aRule);
+        }
+    else
+        {
+        OomMonitorPanic(KRuleConfiguredBeforePlugin);
+        }   
+    }
+
+// Add this application config - this class takes ownership of it
+// Application config includes settings for a particular application, e.g. whether or not it can be closed
+void COomConfig::AddApplicationConfigL(COomApplicationConfig* aApplicationConfig)
+    {
+    FUNC_LOG;
+
+    // Check if the application has already been added, if so then this is an error in configuration (something is trying to add the same app twice)
+    COomApplicationConfig** applicationConfig = iApplicationToConfigMapping.Find(aApplicationConfig->Id());
+    if (applicationConfig)
+        {
+        OomMonitorPanic(KAppConfigAddedTwice);
+        }
+    
+    iApplicationToConfigMapping.InsertL(aApplicationConfig->Id(), aApplicationConfig);
+    }
+
+// Get the list of configured actions for the given app id
+// If no specific actions have been configured for this application then the default action is returned
+COomApplicationConfig& COomConfig::GetApplicationConfig(TInt32 aAppId)
+    {
+    RDebug::Print(_L("aPluginId=%d\n"),aAppId);
+    
+    FUNC_LOG;
+
+    COomApplicationConfig** applicationConfig = iApplicationToConfigMapping.Find(aAppId);
+    
+    if (!applicationConfig)
+        applicationConfig = iApplicationToConfigMapping.Find(KOomDefaultAppId);
+    
+    // The default app configuration should always exist
+    __ASSERT_ALWAYS(applicationConfig, OomMonitorPanic(KOomDefaultAppNotConfigured));
+    
+    return *(*applicationConfig);
+    }
+
+// Get the plugin configuration for the given plugin id
+// If no specific actions have been configured for this plugin then the default plugin configuration is returned
+COomRunPluginConfig& COomConfig::GetPluginConfig(TInt32 aPluginId)
+    {
+    FUNC_LOG;
+
+    COomRunPluginConfig** runPluginConfig = iPluginToConfigMapping.Find(aPluginId);
+    
+    if (!runPluginConfig)
+        runPluginConfig = iPluginToConfigMapping.Find(KOomDefaultPluginId);
+    
+    // The default app configuration should always exist
+    __ASSERT_ALWAYS(runPluginConfig, OomMonitorPanic(KOomDefaultPluginNotConfigured));
+    
+    return *(*runPluginConfig);
+    }
+
+COomConfig::~COomConfig()
+    {
+    FUNC_LOG;
+    RDebug::Print( _L("OomMemoryMonitor: Begin delete COomConfig!"));     
+    // Iterate through the hash map deleting all of the items
+    RHashMap<TInt32, COomApplicationConfig*>::TIter iterator(iApplicationToConfigMapping);
+    while (iterator.NextValue())
+        delete *iterator.CurrentValue();
+    
+    // Iterate through the plugiun hash map deleting all of the items
+    RHashMap<TInt32, COomRunPluginConfig*>::TIter pluginIterator(iPluginToConfigMapping);
+    while (pluginIterator.NextValue())
+        delete *pluginIterator.CurrentValue();
+    
+    iApplicationToConfigMapping.Close();
+    iPluginToConfigMapping.Close();
+    
+    RDebug::Print( _L("OomMemoryMonitor: Delete COomConfig!"));     
+    }
+
+void COomConfig::ConstructL()
+    {
+    FUNC_LOG;
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oom_memorymonitor/src/mockoomconfigparser.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,1155 @@
+/*
+* 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:  The parser for the OOM configuration file.
+*
+*/
+#include <e32base.h>
+#include <xml/parser.h>
+
+#include "oomconfigparser.h"
+#include "oompanic.h"
+#include "OomTraces.h"
+#include "oomidletimerule.h"
+#include "oomforegroundrule.h"
+#include "oomconstants.hrh"
+#include "oomapplicationconfig.h"
+#include "oomcloseappconfig.h"
+#include "oomconfig.h"
+#include "oomrunpluginconfig.h"
+
+#include "diclog.h"
+#include "globaldata.h"
+
+enum TOomConfigParserPanic
+{
+KOomErrMoreThanOneOomConfig = 0,
+KOomErrGlobalSettingsMustComeAfterRoot,
+KOomErrAppSettingsMustComeAfterGlobalSettings,
+KOomErrCloseAppSettingsMustComeAfterAppSettings,
+KOomErrAppIdleSettingsMustComeAfterAppCloseSettings,
+KOomErrLowRamErrorInGlobalSettings,
+KOomErrGoodRamErrorInGlobalSettings,
+KOomErrSwapUsageMonitoredErrorInGlobalSettings,
+KOomErrLowSwapErrorInGlobalSettings,
+KOomErrGoodSwapErrorInGlobalSettings,
+KOomErrMaxCloseErrorInGlobalSettings,
+KOomErrDefaultPriorityErrorInGlobalSettings,
+KOomErrMissingUidFromAppCloseConfig,
+KOomErrMissingPriorityFromAppCloseConfig,
+KOomErrMissingSyncModeFromAppCloseConfig,
+KOomErrMissingEstimateFromAppCloseConfig,
+KOomErrInvalidSyncMode,
+KOomErrMissingSyncModeInAppCloseConfig,
+KOomErrBadOrMissingPriorityInAppIdleRule,
+KOomErrBadOrMissingIdleTimeInAppIdleRule,
+KOomErrBadOrMissingUidInAppIdleRule,
+KOomErrBadNeverCloseValue,
+KOomErrBadOrMissingUidInAppConfig,
+KOomErrBadOrMissingPriorityInAppCloseConfig,
+KOomErrBadLowThresholdValueForAppConfig,
+KOomErrBadGoodThresholdValueForAppConfig,
+KOomErrSystemPluginSettingsMustComeAfterAppCloseSettings,
+KOomErrAppPluginSettingsMustComeAfterSystemPluginSettings,
+KOomErrAppPluginIdleTimeRulesMustComeAfterAppPluginSettings,
+KOomErrBadOrMissingUidInAppCloseConfig,
+KOomErrBadOrMissingUidInSystemPluginConfig,
+KOomErrBadOrMissingPriorityInSystemPluginConfig,
+KOomErrBadOrMissingTargetAppIdInAppPluginConfig,
+KOomErrBadOrMissingUidInAppPluginConfig,
+KOomErrBadOrMissingPriorityInAppPluginConfig,
+KOomErrBadOrMissingPriorityInPluginIdleRule,
+KOomErrBadOrMissingIdleTimeInPluginIdleRule,
+KOomErrBadOrMissingUidInPluginIdleRule,
+KOomErrBadOrMissingUidInForegroundAppRule,
+KOomErrBadOrMissingPriorityInForegroundAppRule,
+KOomErrBadOrMissingTargetAppIdInForegroundAppRule,
+KOomErrDefaultWaitAfterPluginInGlobalSettings,
+KOomErrBadOrMissingPriorityInForceCheck,
+KOomErrOomRulesMustComeLast,
+KOomErrBadPluginWaitTime,
+KOomErrBadXml,
+KOomErrAppCloseIdleRuleOutsideAppCloseElement,
+KOomErrForegroundAppRuleOutsideAppCloseElement,
+KOomErrPluginIdleRuleOutsideAppPluginElement,
+KOomErrPluginForegroundRuleOutsidePluginElement,
+KOomErrBadCallIfTargetAppNotRunning
+};
+
+const TInt KOomXmlFileBufferSize = 1024;
+const TInt KOomMaxAppExitTime = 2000;
+const TInt KBytesInMegabyte = 1024;
+#ifdef __WINS__
+const TInt KEmulatorTickDivisor = 5; // The tick is 5 times slower on the emulator than on the phone
+#endif
+using namespace Xml;
+
+// Mime type of the parsed document
+_LIT8(KXmlMimeType, "text/xml");
+
+_LIT(KOomConfigFilePath, ":\\testframework\\oomconfig.xml");
+_LIT(KRomDrive, "z");
+
+// Element strings
+// Root
+_LIT8(KOomConfigOomConfig, "oom_config");
+
+// Global settings
+_LIT8(KOomConfigGlobalSettings, "global_settings");
+_LIT8(KOomConfigForceCheckAtPriority, "force_check");
+
+// App settings
+_LIT8(KOomConfigAppSettings, "app_specific_thresholds");
+_LIT8(KOomConfigApp, "app");
+
+// App close settings
+_LIT8(KOomConfigAppCloseSettings, "app_close_settings");
+_LIT8(KOomConfigCloseApp, "close_app");
+
+// App close idle time
+_LIT8(KOomConfigAppCloseIdlePriority, "app_close_idle_priority");
+
+_LIT8(KOomConfigForegroundAppPriority, "foreground_app_priority");
+
+// Global settings attribute names
+_LIT8(KOomAttributeLowRamThreshold, "low_ram_threshold");
+_LIT8(KOomAttributeGoodRamThreshold, "good_ram_threshold");
+_LIT8(KOomAttributeSwapUsageMonitored, "swap_usage_monitored");
+_LIT8(KOomAttributeLowSwapThreshold, "low_swap_threshold");
+_LIT8(KOomAttributeGoodSwapThreshold, "good_swap_threshold");
+_LIT8(KOomAttributeMaxAppCloseBatch, "max_app_close_batch");
+_LIT8(KOomAttributeDefaultWaitAfterPlugin, "default_wait_after_plugin");
+_LIT8(KOomAttributeMaxAppExitTime , "max_app_exit_time");
+
+// System plugins 
+
+_LIT8(KOomAttributeSystemPluginSettings, "system_plugin_settings");
+_LIT8(KOomAttributeSystemPlugin, "system_plugin");
+
+// Application plugins
+
+_LIT8(KOomAttributeAppPluginSettings, "app_plugin_settings");
+_LIT8(KOomAttributeAppPlugin, "app_plugin");
+
+// Plugin idle time rules
+
+_LIT8(KOomAttributePluginIdlePriority, "plugin_idle_priority");
+
+// Plugin foreground app rules
+_LIT8(KOomAttributePluginForegroundAppPriority, "plugin_foreground_app_priority");
+
+// Atribute names
+_LIT8(KOomAttibuteUid, "uid");
+_LIT8(KOomAttibuteSyncMode, "sync_mode");
+_LIT8(KOomAttibutePriority, "priority");
+_LIT8(KOomAttibuteRamEstimate, "ram_estimate");
+
+_LIT8(KOomConfigSyncModeContinue, "continue");
+_LIT8(KOomConfigSyncModeCheck, "check");
+_LIT8(KOomConfigSyncModeEstimate, "estimate");
+
+_LIT8(KOomAttibuteIdleTime, "idle_time");
+_LIT8(KOomAttibuteIdlePriority, "priority");
+
+_LIT8(KOomAttibuteNeverClose, "NEVER_CLOSE");
+
+_LIT8(KOomAttributeTargetAppId, "target_app_id");
+
+_LIT8(KOomAttributeWait, "wait");
+
+_LIT8(KOomAttributeIfForegroundAppId, "if_foreground_app_id");
+
+_LIT8(KOomAttributeCallIfTargetAppNotRunning, "call_if_target_app_not_running");
+_LIT8(KOomAttributeTrue, "true");
+_LIT8(KOomAttributeFalse, "false");
+_LIT8(KOomAttribute0, "0");
+_LIT8(KOomAttribute1, "1");
+
+
+_LIT8(KOomConfigDefaultAppUid, "DEFAULT_APP");
+_LIT8(KOomConfigDefaultPluginUid, "DEFAULT_PLUGIN");
+_LIT8(KOomConfigTargetAppValue, "TARGET_APP");
+
+_LIT8(KOomConfigBusyAppUid, "BUSY_APP");
+_LIT8(KOomConfigHighPriorityAppUid, "HIGH_PRIORITY_APP");
+
+COomConfigParser::COomConfigParser(COomConfig& aConfig, RFs& aFs) : iConfig(aConfig), iFs(aFs), iState(EOomParsingStateNone)
+    {
+    }
+
+void COomConfigParser::ParseL()
+    {
+    TBuf<KIntValue8> buf(KConfigParserParser);
+    DicLog::WriteLog(TUid::Uid(0x0001), buf);
+    
+    FUNC_LOG;
+
+    TRACES("COomConfigParser::ParseL: Parsing Config File");
+    
+    CParser* parser = CParser::NewLC(KXmlMimeType, *this);
+    
+    RFile configFile;
+    TFileName configFileName;
+    TChar driveChar = iFs.GetSystemDriveChar();
+    configFileName.Append(driveChar);
+    configFileName.Append(KOomConfigFilePath);
+    if (configFile.Open(iFs, configFileName, EFileShareExclusive) != KErrNone)
+        {
+        configFileName.Replace(0,1,KRomDrive); //replace 'c' with 'z'
+        User::LeaveIfError(configFile.Open(iFs, configFileName, EFileShareExclusive));
+        }
+    CleanupClosePushL(configFile);
+    
+    TBuf8<KOomXmlFileBufferSize> fileBuffer;
+    TInt bytesRead;
+    do
+        {
+        User::LeaveIfError(configFile.Read(fileBuffer));
+        bytesRead = fileBuffer.Size();
+        
+        parser->ParseL(fileBuffer);
+        
+        } while (bytesRead != 0);
+    
+    CleanupStack::PopAndDestroy(2, parser); // config file - automatically closes it
+                                            // parser
+            
+    TRACES("COomConfigParser::ParseL: Finished Parsing Config File");    
+    }
+
+void COomConfigParser::OnStartDocumentL(const RDocumentParameters&, TInt)
+    {
+    FUNC_LOG;
+    }
+
+void COomConfigParser::OnEndDocumentL(TInt)
+    {
+    FUNC_LOG;
+    }
+
+
+void COomConfigParser::OnEndElementL(const RTagInfo&, TInt)
+    {
+    }
+
+void COomConfigParser::OnContentL(const TDesC8&, TInt)
+    {
+    }
+
+void COomConfigParser::OnStartPrefixMappingL(const RString&, const RString&, 
+                                   TInt)
+    {
+    }
+
+void COomConfigParser::OnEndPrefixMappingL(const RString&, TInt)
+    {
+    }
+
+void COomConfigParser::OnIgnorableWhiteSpaceL(const TDesC8&, TInt)
+    {
+    }
+
+void COomConfigParser::OnSkippedEntityL(const RString&, TInt)
+    {
+    }
+
+void COomConfigParser::OnProcessingInstructionL(const TDesC8&, const TDesC8&, 
+                                      TInt)
+    {
+    }
+
+void COomConfigParser::OnError(TInt)
+    {
+    }
+
+TAny* COomConfigParser::GetExtendedInterface(const TInt32)
+    {
+    return 0;
+    }
+
+void COomConfigParser::OnStartElementL(const RTagInfo& aElement, const RAttributeArray& aAttributes, 
+                             TInt aErrorCode)
+    {
+    if (aErrorCode != KErrNone)
+        ConfigError(KOomErrBadXml);
+    
+    StartElementL(aElement.LocalName().DesC(), aAttributes);
+    }
+
+void COomConfigParser::StartElementL(const TDesC8& aLocalName,
+                                        const RAttributeArray& aAttributes)
+    {
+    // Root
+    if (aLocalName == KOomConfigOomConfig)
+        {
+        if (iState != EOomParsingStateNone)
+            ConfigError(KOomErrMoreThanOneOomConfig);
+        
+        ChangeState(EOomParsingStateRoot);
+        }
+    // Parse main elements
+    else if (aLocalName == KOomConfigGlobalSettings)
+        {
+        if (iState != EOomParsingStateRoot)
+            ConfigError(KOomErrGlobalSettingsMustComeAfterRoot);
+        
+        SetGlobalSettings(aAttributes);
+        
+        ChangeState(EOomParsingStateGlobalSettings);
+        }
+    else if (aLocalName == KOomConfigAppSettings)
+        {
+        ChangeState(EOomParsingStateAppSettings);
+        }
+    else if (aLocalName == KOomConfigAppCloseSettings)
+        {
+        ChangeState(EOomParsingStateAppCloseSettings);
+        }
+    else if (aLocalName == KOomAttributeSystemPluginSettings)
+        {
+        ChangeState(EOomParsingStateSystemPluginSettings);
+        }
+    else if (aLocalName == KOomAttributeAppPluginSettings)
+        {
+        ChangeState(EOomParsingStateAppPluginSettings);
+        }
+    // Parse actual configuration elements
+    else if (aLocalName == KOomConfigForceCheckAtPriority)
+        {
+        SetForceCheckConfigL(aAttributes);
+        }
+    else if (aLocalName == KOomConfigApp)
+        {
+        SetAppConfigL(aAttributes);
+        }
+    else if (aLocalName == KOomConfigCloseApp)
+        {
+        SetCloseAppConfigL(aAttributes);
+        }
+    else if (aLocalName == KOomConfigAppCloseIdlePriority)
+        {
+        CheckState(EOomParsingStateAppCloseSettings, KOomErrAppCloseIdleRuleOutsideAppCloseElement);
+        SetAppCloseIdlePriorityConfigL(aAttributes);
+        }
+    else if (aLocalName == KOomConfigForegroundAppPriority)
+        {
+        CheckState(EOomParsingStateAppCloseSettings, KOomErrForegroundAppRuleOutsideAppCloseElement);
+        SetForegroundAppPriorityL(aAttributes);
+        }
+    else if (aLocalName == KOomAttributeSystemPlugin)
+        {
+        SetSystemPluginConfigL(aAttributes);
+        }
+    else if (aLocalName == KOomAttributeAppPlugin)
+        {
+        SetAppPluginConfigL(aAttributes);
+        }
+    else if (aLocalName == KOomAttributePluginIdlePriority)
+        {
+        CheckState(EOomParsingStateAppPluginSettings, KOomErrPluginIdleRuleOutsideAppPluginElement);
+        SetPluginIdlePriorityL(aAttributes);
+        }
+    else if (aLocalName == KOomAttributePluginForegroundAppPriority)
+        {
+        CheckState(EOomParsingStateAppPluginSettings, EOomParsingStateSystemPluginSettings, KOomErrPluginForegroundRuleOutsidePluginElement);
+        SetPluginForegroundAppPriorityL(aAttributes);
+        }
+    
+    }
+
+void COomConfigParser::ConfigError(TInt aError)
+    {
+    OomConfigParserPanic(aError);
+    }
+
+void COomConfigParser::SetGlobalSettings(const RAttributeArray& aAttributes)
+    {
+    TInt defaultLowMemoryThreshold;    
+    TInt err = GetValueFromDecimalAttributeList(aAttributes, KOomAttributeLowRamThreshold, defaultLowMemoryThreshold);
+
+    if (err == KErrNone)
+        iConfig.SetDefaultLowRamThreshold(defaultLowMemoryThreshold * KBytesInMegabyte);
+    else
+        ConfigError(KOomErrLowRamErrorInGlobalSettings);
+    
+    if (err == KErrNone)
+        {
+        TInt defaultGoodMemoryThreshold;    
+        TInt err = GetValueFromDecimalAttributeList(aAttributes, KOomAttributeGoodRamThreshold, defaultGoodMemoryThreshold);
+
+        if (err == KErrNone)
+            iConfig.SetDefaultGoodRamThreshold(defaultGoodMemoryThreshold * KBytesInMegabyte);
+        else
+            ConfigError(KOomErrGoodRamErrorInGlobalSettings);
+        }
+
+    if (err == KErrNone)
+        {
+        TInt swapUsageMonitored;
+        TInt err = GetValueFromBooleanAttributeList(aAttributes, KOomAttributeSwapUsageMonitored, swapUsageMonitored);
+        
+        if (err == KErrNone)
+            iConfig.SetSwapUsageMonitored(swapUsageMonitored);
+        else
+            ConfigError(KOomErrSwapUsageMonitoredErrorInGlobalSettings);
+        }
+    
+    if (err == KErrNone)
+        {
+        TInt defaultLowSwapThreshold;    
+        TInt err = GetValueFromDecimalAttributeList(aAttributes, KOomAttributeLowSwapThreshold, defaultLowSwapThreshold);
+
+        if (err == KErrNone)
+            iConfig.SetDefaultLowSwapThreshold(defaultLowSwapThreshold * KBytesInMegabyte);
+        else
+            ConfigError(KOomErrLowSwapErrorInGlobalSettings);
+        }
+
+    if (err == KErrNone)
+        {
+        TInt defaultGoodSwapThreshold;    
+        TInt err = GetValueFromDecimalAttributeList(aAttributes, KOomAttributeGoodSwapThreshold, defaultGoodSwapThreshold);
+
+        if (err == KErrNone)
+            iConfig.SetDefaultGoodSwapThreshold(defaultGoodSwapThreshold * KBytesInMegabyte);
+        else
+            ConfigError(KOomErrGoodSwapErrorInGlobalSettings);
+        }
+    
+    if (err == KErrNone)
+        {
+        TInt defaultMaxCloseAppBatch;    
+        TInt err = GetValueFromDecimalAttributeList(aAttributes, KOomAttributeMaxAppCloseBatch, defaultMaxCloseAppBatch);
+
+        if (err == KErrNone)
+            iConfig.SetMaxCloseAppBatch(defaultMaxCloseAppBatch);
+        else
+            ConfigError(KOomErrMaxCloseErrorInGlobalSettings);
+        }
+    
+    if (err == KErrNone)
+        {
+        TInt defaultWaitAfterPlugin;    
+        TInt err = GetValueFromDecimalAttributeList(aAttributes, KOomAttributeDefaultWaitAfterPlugin, defaultWaitAfterPlugin);
+
+        if (err == KErrNone)
+            iConfig.SetDefaultWaitAfterPlugin(defaultWaitAfterPlugin);
+        else
+            ConfigError(KOomErrDefaultWaitAfterPluginInGlobalSettings);
+        }
+    
+    if (err == KErrNone)
+        {
+        TInt maxAppExitTime;    
+        TInt err = GetValueFromDecimalAttributeList(aAttributes, KOomAttributeMaxAppExitTime, maxAppExitTime);
+
+        if (err == KErrNone)
+            iConfig.SetMaxAppExitTime(maxAppExitTime);
+        else
+            iConfig.SetMaxAppExitTime(KOomMaxAppExitTime);
+        }
+    }
+
+void COomConfigParser::SetForceCheckConfigL(const RAttributeArray& aAttributes)
+    {
+    TUint priority;
+    TInt err = GetValueFromDecimalAttributeList(aAttributes, KOomAttibutePriority, priority);
+    if (err == KErrNone)
+        {
+        iConfig.GlobalConfig().AddForceCheckPriorityL(priority);
+        }
+    else
+        {
+        ConfigError(KOomErrBadOrMissingPriorityInForceCheck);    
+        }
+    }
+
+void COomConfigParser::SetAppConfigL(const RAttributeArray& aAttributes)
+    {
+    TUint uid;
+    COomApplicationConfig* appConfig = NULL;
+    
+    TInt err = GetValueFromHexAttributeList(aAttributes, KOomAttibuteUid, uid);
+    
+    if (err != KErrNone)
+        {
+        ConfigError(KOomErrBadOrMissingUidInAppConfig);
+        }
+    else
+        iParentUid = uid;
+
+    appConfig = COomApplicationConfig::NewL(uid);
+    CleanupStack::PushL(appConfig);    
+        
+    // Set the app specific memory thresholds (if they exist)
+    // Get the app specific low threshold
+    if (err == KErrNone)
+        {
+        TUint lowThreshold;
+        err = GetValueFromDecimalAttributeList(aAttributes, KOomAttributeLowRamThreshold, lowThreshold);
+        if (err == KErrNone)
+            {
+            appConfig->iLowRamThreshold = lowThreshold * KBytesInMegabyte;
+            }
+        else if (err == KErrNotFound)
+            err = KErrNone;
+        
+        if (err != KErrNone)
+            ConfigError(KOomErrBadLowThresholdValueForAppConfig);
+        }
+
+    // Get the app specific good threshold
+    if (err == KErrNone)
+        {
+        TUint goodThreshold;
+        err = GetValueFromDecimalAttributeList(aAttributes, KOomAttributeGoodRamThreshold, goodThreshold);
+        if (err == KErrNone)
+            {
+            appConfig->iGoodRamThreshold = goodThreshold * KBytesInMegabyte;
+            }
+        else if (err == KErrNotFound)
+            err = KErrNone;
+        
+        if (err != KErrNone)
+            ConfigError(KOomErrBadGoodThresholdValueForAppConfig);
+        }
+    
+    // Set the app specific swap thresholds (if they exist)
+    // Get the app specific low swap threshold
+    if (err == KErrNone)
+        {
+        TUint lowThreshold;
+        err = GetValueFromDecimalAttributeList(aAttributes, KOomAttributeLowSwapThreshold, lowThreshold);
+        if (err == KErrNone)
+            {
+            appConfig->iLowSwapThreshold = lowThreshold * KBytesInMegabyte;
+            }
+        else if (err == KErrNotFound)
+            err = KErrNone;
+            
+        if (err != KErrNone)
+            ConfigError(KOomErrBadLowThresholdValueForAppConfig);
+        }
+
+    // Get the app specific good swapthreshold
+    if (err == KErrNone)
+        {
+        TUint goodThreshold;
+        err = GetValueFromDecimalAttributeList(aAttributes, KOomAttributeGoodSwapThreshold, goodThreshold);
+        if (err == KErrNone)
+            {
+            appConfig->iGoodSwapThreshold = goodThreshold * KBytesInMegabyte;
+            }
+        else if (err == KErrNotFound)
+            err = KErrNone;
+            
+        if (err != KErrNone)
+            ConfigError(KOomErrBadGoodThresholdValueForAppConfig);
+        }  
+        
+    // Add the applciation config to the main config
+    if ((err == KErrNone) && (appConfig))
+        {
+        iConfig.AddApplicationConfigL(appConfig);
+        }
+    
+    if (appConfig)
+        CleanupStack::Pop(appConfig);
+    }
+
+void COomConfigParser::SetCloseAppConfigL(const RAttributeArray& aAttributes)
+    {
+    // Get and convert uid attribute to TInt
+    TInt err = KErrNone;
+    
+    TUint uid;
+    err = GetValueFromHexAttributeList(aAttributes, KOomAttibuteUid, uid);
+
+    if (err != KErrNone)
+        {
+        ConfigError(KOomErrBadOrMissingUidInAppCloseConfig);    
+        return;
+        }
+    else
+        iParentUid = uid;
+    
+    COomCloseAppConfig* closeAppConfig = COomCloseAppConfig::NewL(uid); // Radio UID
+    CleanupStack::PushL(closeAppConfig);
+
+     if (err == KErrNone)
+        {
+        // Check that we have a priority for the added app_close event
+        // Specifying a priority is mandatory
+        TUint priority;
+        err = GetValueFromDecimalAttributeList(aAttributes, KOomAttibutePriority, priority);
+        if (err == KErrNone)
+            {
+            closeAppConfig->SetDefaultPriority(priority);
+            }
+        else
+            {
+            ConfigError(KOomErrBadOrMissingPriorityInAppCloseConfig);    
+            }
+        }
+    
+    if (err == KErrNone)
+        {
+        TPtrC8 syncModeString;
+        err = GetValueFromAttributeList(aAttributes, KOomAttibuteSyncMode, syncModeString);
+        
+        if (err == KErrNone)
+            {
+            TOomSyncMode syncMode = EContinue;
+            
+            if (syncModeString == KOomConfigSyncModeContinue)
+                syncMode = EContinue;
+            else if (syncModeString == KOomConfigSyncModeCheck)
+                syncMode = ECheckRam;
+            else if (syncModeString == KOomConfigSyncModeEstimate)
+                syncMode = EEstimate;
+            else
+                ConfigError(KOomErrInvalidSyncMode);
+            
+            if (err == KErrNone)
+                {
+                closeAppConfig->iSyncMode = syncMode;
+                }
+            }
+        else
+            {
+            ConfigError(KOomErrMissingSyncModeInAppCloseConfig);
+            }
+        }
+    
+    
+    if (err == KErrNone)
+        {
+        // If we have a default priority attribute then add it, otherwise use the global default priority
+        TInt ramEstimate;
+        err = GetValueFromDecimalAttributeList(aAttributes, KOomAttibuteRamEstimate, ramEstimate);
+        if ((err == KErrNotFound) && (closeAppConfig->iSyncMode != EEstimate))
+            {
+            err = KErrNone;
+            }
+        
+        if (err != KErrNone)
+            ConfigError(KOomErrMissingEstimateFromAppCloseConfig);
+        else
+            closeAppConfig->iRamEstimate = ramEstimate * KBytesInMegabyte;
+           }
+
+    if (err == KErrNone)
+        iConfig.SetAppCloseConfigL(closeAppConfig);
+    
+    CleanupStack::Pop(closeAppConfig);
+    }
+
+void COomConfigParser::SetAppCloseIdlePriorityConfigL(const RAttributeArray& aAttributes)
+    {
+    TUint uid;
+    TInt idleTime;
+    TUint priority;
+
+    // Use the UID from the parent scope
+    uid = iParentUid;
+
+    TInt err = KErrNone;
+    
+    err = GetValueFromDecimalAttributeList(aAttributes, KOomAttibuteIdleTime, idleTime);
+    
+#ifdef __WINS__
+    // The tick is 5 times slower on the emulator than on the phone
+    idleTime = idleTime / KEmulatorTickDivisor;
+#endif
+    
+    if (err != KErrNone)
+        {
+        ConfigError(KOomErrBadOrMissingIdleTimeInAppIdleRule);
+        }
+    
+    if (err == KErrNone)
+        {
+        err = GetValueFromDecimalAttributeList(aAttributes, KOomAttibuteIdlePriority, priority);
+        
+        if (err != KErrNone)
+            {
+            ConfigError(KOomErrBadOrMissingPriorityInAppIdleRule);
+            }
+        }
+    
+    if (err == KErrNone)
+        {
+        COomIdleTimeRule* idleRule = COomIdleTimeRule::NewL(idleTime, priority);
+        CleanupStack::PushL(idleRule);
+        iConfig.AddApplicationRuleL(uid, idleRule);
+        CleanupStack::Pop(idleRule);
+        }
+    }
+
+void COomConfigParser::SetForegroundAppPriorityL(const RAttributeArray& aAttributes)
+    {
+    TUint appUid;
+    TUint targetAppId;
+    TUint priority;
+
+    TInt err = KErrNone;
+    
+    // Use the UID from the parent scope
+    appUid = iParentUid;
+
+    // Check that we have a priority for the added system plugin action
+    // Specifying a priority is mandatory
+    err = GetValueFromHexAttributeList(aAttributes, KOomAttributeIfForegroundAppId, targetAppId);
+    if (err != KErrNone)
+        {
+        ConfigError(KOomErrBadOrMissingTargetAppIdInForegroundAppRule);    
+        }
+    
+    if (err == KErrNone)
+        {
+        err = GetValueFromDecimalAttributeList(aAttributes, KOomAttibuteIdlePriority, priority);
+        
+        if (err != KErrNone)
+            {
+            ConfigError(KOomErrBadOrMissingPriorityInForegroundAppRule);
+            }
+        }
+    
+    if (err == KErrNone)
+        {
+        COomForegroundRule* foregroundRule = new (ELeave) COomForegroundRule(targetAppId, priority);
+        CleanupStack::PushL(foregroundRule);
+        iConfig.AddApplicationRuleL(appUid, foregroundRule);
+        CleanupStack::Pop(foregroundRule);
+        }
+
+    }
+
+void COomConfigParser::SetSystemPluginConfigL(const RAttributeArray& aAttributes)
+    {
+    // Get and convert uid attribute to TInt
+    TInt err = KErrNone;
+    
+    TUint uid;
+    err = GetValueFromHexAttributeList(aAttributes, KOomAttibuteUid, uid);
+
+    if (err != KErrNone)
+        {
+        ConfigError(KOomErrBadOrMissingUidInSystemPluginConfig);    
+        return;
+        }
+    else
+        iParentUid = uid;
+    
+    COomRunPluginConfig* pluginConfig = COomRunPluginConfig::NewL(uid, EOomSystemPlugin);
+    CleanupStack::PushL(pluginConfig);
+
+     if (err == KErrNone)
+        {
+        // Check that we have a priority for the added system plugin action
+        // Specifying a priority is mandatory
+        TUint priority;
+        err = GetValueFromDecimalAttributeList(aAttributes, KOomAttibutePriority, priority);
+        if (err == KErrNone)
+            {
+            pluginConfig->SetDefaultPriority(priority);
+            }
+        else
+            {
+            ConfigError(KOomErrBadOrMissingPriorityInSystemPluginConfig);    
+            }
+        }
+     
+     if (err == KErrNone)
+        {
+        TInt wait;
+        err = GetValueFromDecimalAttributeList(aAttributes, KOomAttributeWait, wait);
+        if (err == KErrNone)
+            {
+            pluginConfig->SetWaitAfterPlugin(wait);
+            }
+        else if (err == KErrNotFound)
+            {
+            // If this attribute isn't present then just don't set it, and clear the error
+            err = KErrNone;
+            }
+        else
+            ConfigError(KOomErrBadPluginWaitTime);
+        }
+     
+     if (err == KErrNone)
+         {
+         // Get the config for the sync mode for this plugin (if one is specified) and set it
+         SetPluginSyncMode(aAttributes, *pluginConfig);
+         }
+
+     iConfig.AddPluginConfigL(pluginConfig);
+     
+     CleanupStack::Pop(pluginConfig);
+    }
+
+void COomConfigParser::SetAppPluginConfigL(const RAttributeArray& aAttributes)
+    {
+    // Get and convert uid attribute to TInt
+    TInt err = KErrNone;
+    
+    TUint uid;
+    err = GetValueFromHexAttributeList(aAttributes, KOomAttibuteUid, uid);
+
+    if (err != KErrNone)
+        {
+        ConfigError(KOomErrBadOrMissingUidInAppPluginConfig);    
+        return;
+        }
+    else
+        iParentUid = uid;
+    
+    COomRunPluginConfig* pluginConfig = COomRunPluginConfig::NewL(uid, EOomAppPlugin);
+    CleanupStack::PushL(pluginConfig);
+
+    if (err == KErrNone)
+       {
+       // Check that we have a priority for the added system plugin action
+       // Specifying a priority is mandatory
+        TUint priority;
+        err = GetValueFromDecimalAttributeList(aAttributes, KOomAttibutePriority, priority);
+        if (err == KErrNone)
+            {
+            pluginConfig->SetDefaultPriority(priority);
+            }
+        else
+            {
+            ConfigError(KOomErrBadOrMissingPriorityInAppPluginConfig);    
+            }
+       }
+
+    if (err == KErrNone)
+       {
+       // Check that we have a priority for the added system plugin action
+       // Specifying a priority is mandatory
+        TUint targetAppId;
+        err = GetValueFromHexAttributeList(aAttributes, KOomAttributeTargetAppId, targetAppId);
+        if (err == KErrNone)
+            {
+            pluginConfig->SetTargetApp(targetAppId);
+            iParentTargetApp = targetAppId;
+            }
+        else
+            {
+            ConfigError(KOomErrBadOrMissingTargetAppIdInAppPluginConfig);    
+            }
+       }
+    
+    if (err == KErrNone)
+       {
+       TInt wait;
+        err = GetValueFromDecimalAttributeList(aAttributes, KOomAttributeWait, wait);
+        if (err == KErrNone)
+            {
+            pluginConfig->SetWaitAfterPlugin(wait);
+            }
+        else if (err == KErrNotFound)
+            {
+            // If this attribute isn't present then just don't set it, and clear the error
+            err = KErrNone;
+            }
+        else
+            ConfigError(KOomErrBadPluginWaitTime);
+       }    
+    
+    if (err == KErrNone)
+        {
+        // Get the config for the sync mode for this plugin (if one is specified) and set it
+        SetPluginSyncMode(aAttributes, *pluginConfig);
+        
+        TBool targetAppNotRunning;
+        err = GetValueFromBooleanAttributeList(aAttributes, KOomAttributeCallIfTargetAppNotRunning, targetAppNotRunning);
+        if (err == KErrNone)
+            {
+            pluginConfig->SetCallIfTargetAppNotRunning(targetAppNotRunning);
+            }
+        else if (err == KErrNotFound)
+            {
+            // If this attribute isn't present then just don't set it, and clear the error
+            err = KErrNone;
+            }
+        else
+            {
+            ConfigError(KOomErrBadCallIfTargetAppNotRunning);
+            }
+        }
+
+     iConfig.AddPluginConfigL(pluginConfig);
+     
+     CleanupStack::Pop(pluginConfig);
+
+    }
+
+void COomConfigParser::SetPluginIdlePriorityL(const RAttributeArray& aAttributes)
+    {
+    TUint uid;
+    TInt idleTime;
+    TUint priority;
+
+    TInt err = KErrNone;
+    
+    // Use the UID from the parent scope
+    uid = iParentUid;
+
+    err = GetValueFromDecimalAttributeList(aAttributes, KOomAttibuteIdleTime, idleTime);
+    
+#ifdef __WINS__
+    // The tick is 5 times slower on the emulator than on the phone
+    idleTime = idleTime / KEmulatorTickDivisor;
+#endif
+    
+    if (err != KErrNone)
+        {
+        ConfigError(KOomErrBadOrMissingIdleTimeInPluginIdleRule);
+        }
+    
+    if (err == KErrNone)
+        {
+        err = GetValueFromDecimalAttributeList(aAttributes, KOomAttibuteIdlePriority, priority);
+        
+        if (err != KErrNone)
+            {
+            ConfigError(KOomErrBadOrMissingPriorityInPluginIdleRule);
+            }
+        }
+    
+    if (err == KErrNone)
+        {
+        COomIdleTimeRule* idleRule = COomIdleTimeRule::NewL(idleTime, priority);
+        CleanupStack::PushL(idleRule);
+        iConfig.AddPluginRuleL(uid, idleRule);
+        CleanupStack::Pop(idleRule);
+        }
+    }
+
+void COomConfigParser::SetPluginForegroundAppPriorityL(const RAttributeArray& aAttributes)
+    {
+    TUint uid;
+    TUint targetAppId;
+    TUint priority;
+
+    TInt err = KErrNone;
+    
+    // Use the UID from the parent scope
+    uid = iParentUid;
+
+        // Check that we have a priority for the added system plugin action
+        // Specifying a priority is mandatory
+        
+    TPtrC8 targetAppString;
+    err = GetValueFromAttributeList(aAttributes, KOomAttributeTargetAppId, targetAppString);
+    if ((err == KErrNone)
+            && (targetAppString == KOomConfigTargetAppValue)
+            && (iState == EOomParsingStateAppPluginSettings))
+        // If the target app is specified as "TARGET_APP" then we use the target app from the parent entry
+        {
+        targetAppId = iParentTargetApp;
+        }
+    else
+        {
+        err = GetValueFromHexAttributeList(aAttributes, KOomAttributeTargetAppId, targetAppId);
+        if (err != KErrNone)
+            {
+            ConfigError(KOomErrBadOrMissingTargetAppIdInForegroundAppRule);    
+            }
+        }
+     
+    if (err == KErrNone)
+        {
+        err = GetValueFromDecimalAttributeList(aAttributes, KOomAttibuteIdlePriority, priority);
+        
+        if (err != KErrNone)
+            {
+            ConfigError(KOomErrBadOrMissingPriorityInForegroundAppRule);
+            }
+        }
+    
+    if (err == KErrNone)
+        {
+        COomForegroundRule* foregroundRule = new (ELeave) COomForegroundRule(targetAppId, priority);
+        CleanupStack::PushL(foregroundRule);
+        iConfig.AddPluginRuleL(uid, foregroundRule);
+        CleanupStack::Pop(foregroundRule);
+        }
+    }
+
+// Finds an attribute of the given name and gets its value
+// A value is only valid as long as AAtrributes is valid (and unmodified)
+// Returns KErrNone if the attribute is present in the list, KErrNotFound otherwise
+TInt COomConfigParser::GetValueFromAttributeList(const RAttributeArray& aAttributes, const TDesC8& aName, TPtrC8& aValue)
+    {
+    TInt index = aAttributes.Count();
+    TBool attributeFound = EFalse;
+    while ((index--) && (!attributeFound))
+        {
+        if (aAttributes[index].Attribute().LocalName().DesC() == aName)
+            {
+            attributeFound = ETrue;
+            aValue.Set(aAttributes[index].Value().DesC());
+            }
+        }
+    
+    TInt err = KErrNone;
+    
+    if (!attributeFound)
+        err = KErrNotFound;
+    
+    return err;
+    }
+
+// Finds an attribute of the given name and gets its value (coverting the string hex value to a UInt)
+// Returns KErrNone if the attribute is present in the list, KErrNotFound otherwise
+// Returns KErrCorrupt if the string is not a valid hex number
+TInt COomConfigParser::GetValueFromHexAttributeList(const RAttributeArray& aAttributes, const TDesC8& aName, TUint& aValue)
+    {
+    TPtrC8 hexString;
+    TInt err = GetValueFromAttributeList(aAttributes, aName, hexString);
+
+    if (hexString == KOomConfigDefaultAppUid)
+        {
+        // This is a special case
+        // When we hit this value in a hex field then we return the default app UID
+        aValue = KOomDefaultAppId;
+        }
+    else if (hexString == KOomConfigDefaultPluginUid)
+        {
+        // This is a special case
+        // When we hit this value in a hex field then we return the default app UID
+        aValue = KOomDefaultPluginId;
+        }
+    else if (hexString == KOomConfigBusyAppUid)
+        {
+        aValue = KOomBusyAppId;
+        }
+    else if (hexString == KOomConfigHighPriorityAppUid)
+        {
+        aValue = KOomHighPriorityAppId;
+        }
+    else if (err == KErrNone)
+        {
+        TLex8 hexLex(hexString);
+        err = hexLex.Val(aValue, EHex);
+        if (err != KErrNone)
+            err = KErrCorrupt;
+        }
+    
+    return err;
+    }
+
+// Finds an attribute of the given name and gets its value (coverting the string decimal value to a UInt)
+// Returns KErrNone if the attribute is present in the list, KErrNotFound otherwise
+// Returns KErrCorrupt if the string is not a valid decimal number
+TInt COomConfigParser::GetValueFromDecimalAttributeList(const RAttributeArray& aAttributes, const TDesC8& aName, TUint& aValue)
+    {
+    TPtrC8 decimalString;
+    TInt err = GetValueFromAttributeList(aAttributes, aName, decimalString);
+
+    if (err == KErrNone)
+        {
+        if (decimalString == KOomAttibuteNeverClose)
+            aValue = KOomPriorityInfinate;
+        else
+            {
+            TLex8 decimalLex(decimalString);
+            err = decimalLex.Val(aValue, EDecimal);
+            if (err != KErrNone)
+                err = KErrCorrupt;
+            }
+        }
+    
+    return err;
+    }
+
+TInt COomConfigParser::GetValueFromDecimalAttributeList(const RAttributeArray& aAttributes, const TDesC8& aName, TInt& aValue)
+    {
+    TUint uintValue;
+    TInt err = GetValueFromDecimalAttributeList(aAttributes, aName, uintValue);
+    aValue = uintValue;
+    return err;
+    }
+
+TInt COomConfigParser::GetValueFromBooleanAttributeList(const RAttributeArray& aAttributes, const TDesC8& aName, TBool& aValue)
+    {
+    TPtrC8 ptrValue;
+    TInt err = GetValueFromAttributeList(aAttributes, aName, ptrValue);
+    if (err == KErrNone)
+        {
+        if (ptrValue == KOomAttributeTrue || ptrValue == KOomAttribute1)
+            {
+            aValue = ETrue;
+            }
+        else if (ptrValue == KOomAttributeFalse || ptrValue == KOomAttribute0)
+            {
+            aValue = EFalse;
+            }
+        else
+            {
+            err = KErrCorrupt;
+            }
+        }
+    return err;
+    }
+
+void COomConfigParser::SetPluginSyncMode(const RAttributeArray& aAttributes, COomRunPluginConfig& aRunPluginConfig)
+    {
+    TPtrC8 syncModeString;
+    TInt err = GetValueFromAttributeList(aAttributes, KOomAttibuteSyncMode, syncModeString);
+    
+    if (err == KErrNone)
+        // If there is no specified sync mode then leave it as the default
+        {
+        TOomSyncMode syncMode = EContinue;
+        
+        if (syncModeString == KOomConfigSyncModeContinue)
+            syncMode = EContinueIgnoreMaxBatchSize;
+        else if (syncModeString == KOomConfigSyncModeCheck)
+            syncMode = ECheckRam;
+        else if (syncModeString == KOomConfigSyncModeEstimate)
+            syncMode = EEstimate;
+        else
+            ConfigError(KOomErrInvalidSyncMode);
+        
+        if (err == KErrNone)
+            {
+            aRunPluginConfig.iSyncMode = syncMode;
+            }
+        }
+    }
+
+// Check that the current state is as expected
+// If not then the specified config error is generated
+void COomConfigParser::CheckState(TOomParsingState aExpectedState, TInt aError)
+    {
+    if (iState != aExpectedState)
+        ConfigError(aError);
+    }
+
+// Check that the current state is as expected
+// If not then the specified config error is generated
+// This version checks to ensure that the current state matches either of the passed in states
+void COomConfigParser::CheckState(TOomParsingState aExpectedState1, TOomParsingState aExpectedState2, TInt aError)
+    {
+    if ((iState != aExpectedState1)
+            && (iState != aExpectedState2))
+        ConfigError(aError);
+    }
+
+void COomConfigParser::ChangeState(TOomParsingState aState)
+    {
+    iState = aState;
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oom_memorymonitor/src/mockoomforegroundrule.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,43 @@
+/*
+* 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:  Configuration representation classes for Out of Memory Monitor.
+*
+*/
+
+
+#include "oomforegroundrule.h"
+#include "oomwindowgrouplist.h"
+#include "OomTraces.h"
+
+// If the specified target app is in the foreground then apply the specified priority
+COomForegroundRule::COomForegroundRule(TInt aTargetAppId, TInt aPriority) : iTargetAppId(aTargetAppId), iPriority(aPriority)
+    {
+    FUNC_LOG;
+    }
+
+TBool COomForegroundRule::RuleIsApplicable(const COomWindowGroupList& aWindowGroupList, TInt /*aAppIndexInWindowGroup*/) const
+    {
+    FUNC_LOG;
+
+    TBool ruleIsApplicable = EFalse;
+    if (aWindowGroupList.Count() > 0)
+        {
+        // If the target app is in the foreground then this rule is applicable
+        TUint foregroundAppId = aWindowGroupList.AppId(0, ETrue);
+        if (foregroundAppId == iTargetAppId)
+            ruleIsApplicable = ETrue;
+        }
+    
+    return ruleIsApplicable;
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oom_memorymonitor/src/mockoomglobalconfig.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,26 @@
+/*
+* 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:  Configuration representation classes for Out of Memory Monitor.
+*
+*/
+
+
+
+#include "oomglobalconfig.h"
+#include "OomTraces.h"
+
+COomGlobalConfig::~COomGlobalConfig()
+    {
+
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oom_memorymonitor/src/mockoomlog.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,99 @@
+/*
+* 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:  Logging functionality for OOM monitor profiling.
+*
+*/
+
+#ifdef _DEBUG
+
+#include <hal.h>
+#include <w32std.h>
+#include <e32std.h>
+#include <e32hal.h>
+#include <apgwgnam.h>
+#include <flogger.h>
+
+#include "oomlog.h"
+#include "oompanic.h"
+
+#include "globaldata.h"
+#include "diclog.h"
+
+COomLogger* COomLogger::NewL(RWsSession& aWs, RFs& aFs)
+    {
+    COomLogger* self = new (ELeave) COomLogger(aWs, aFs);
+    CleanupStack::PushL(self);
+    self->ConstructL();
+    CleanupStack::Pop(self);
+    return self;
+    }
+    
+void COomLogger::StartL()
+    {
+    TBuf<KIntValue8> buf(KOomLoggerStartL);
+    DicLog::WriteLog(TUid::Uid(0x0013), buf);
+    }
+
+void COomLogger::RunL()
+    {
+
+    }
+
+void COomLogger::DoCancel()
+    {
+
+    }
+
+COomLogger::~COomLogger()
+    {
+
+    }
+
+void COomLogger::Write(const TDesC8& aBuffer)
+    {
+
+    }
+
+void COomLogger::LogApplicationIds()
+    {
+
+    }
+
+void COomLogger::LogFreeMemory()
+    {
+
+    }
+
+COomLogger::COomLogger(RWsSession& aWs, RFs& aFs) : CTimer(EPriorityStandard), iWs(aWs), iFs(aFs)
+    {
+    
+    }
+
+void COomLogger::ConstructL()
+    {
+
+    }
+
+void COomLogger::ColapseWindowGroupTree()
+    {
+
+    }
+
+TUid COomLogger::GetUidFromWindowGroupId(TInt aWgId)
+    {
+    TUid uid=TUid::Uid(0);
+    return uid;
+    }
+
+#endif //_DEBUG
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oom_memorymonitor/src/mockoommemorymonitorserver.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,93 @@
+/*
+* 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:  Main classes for Out of Memory Monitor.
+*
+*/
+
+#include "oommemorymonitorserver.h"
+#include "oommonitorclientserver.h"
+#include "oommemorymonitorsession.h"
+#include "oommemorymonitor.h"
+#include "OomTraces.h"
+
+#ifdef CLIENT_REQUEST_QUEUE        
+CMemoryMonitorServer* CMemoryMonitorServer::NewL(COomClientRequestQueue& aQueue)
+#else
+CMemoryMonitorServer* CMemoryMonitorServer::NewL(CMemoryMonitor& aMonitor)
+#endif
+    {
+//    FUNC_LOG;
+
+#ifdef CLIENT_REQUEST_QUEUE        
+    CMemoryMonitorServer* self=new(ELeave) CMemoryMonitorServer(aQueue);
+#else
+    CMemoryMonitorServer* self=new(ELeave) CMemoryMonitorServer(aMonitor);
+#endif
+    CleanupStack::PushL(self);
+    self->ConstructL();
+    CleanupStack::Pop(self);
+    return self;
+    }
+
+CMemoryMonitorServer::~CMemoryMonitorServer()
+    {
+//    FUNC_LOG;
+    }
+
+#ifdef CLIENT_REQUEST_QUEUE        
+CMemoryMonitorServer::CMemoryMonitorServer(COomClientRequestQueue& aQueue)
+    :CServer2(CActive::EPriorityStandard), iQueue(aQueue)
+#else
+CMemoryMonitorServer::CMemoryMonitorServer(CMemoryMonitor& aMonitor)
+    :CServer2(CActive::EPriorityStandard), iMonitor(aMonitor)    
+#endif
+    {
+
+    }
+
+void CMemoryMonitorServer::ConstructL()
+    {
+
+    }
+
+CSession2* CMemoryMonitorServer::NewSessionL(const TVersion& /*aVersion*/, const RMessage2& /*aMessage*/) const
+    {
+    return new(ELeave) CMemoryMonitorSession();
+    }
+
+TInt CMemoryMonitorServer::RunError(TInt aError)
+    {
+    return KErrNone;    // handled the error fully
+    }
+
+#ifdef CLIENT_REQUEST_QUEUE        
+COomClientRequestQueue& CMemoryMonitorServer::ClientRequestQueue()
+    {
+    FUNC_LOG;
+
+    return iQueue;
+    }
+#else
+CMemoryMonitor& CMemoryMonitorServer::Monitor()
+    {
+
+    }
+#endif
+
+#ifndef CLIENT_REQUEST_QUEUE        
+void CMemoryMonitorServer::CloseAppsFinished(TInt aBytesFree, TBool aMemoryGood)
+    {
+
+    }
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oom_memorymonitor/src/mockoommemorymonitorsession.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,113 @@
+/*
+* 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:  Main classes for Out of Memory Monitor.
+*
+*/
+
+#include <oommonitorclientserver.h>
+#include <oommemorymonitorsession.h>
+#include <../../../inc/oommemorymonitor.h>
+#include <oommemorymonitorserver.h>
+#include <OomTraces.h>
+#include <oomclientrequestqueue.h>
+
+CMemoryMonitorSession::CMemoryMonitorSession()
+    {
+
+    }
+
+CMemoryMonitorSession::~CMemoryMonitorSession()
+    {
+
+    }
+
+CMemoryMonitorServer& CMemoryMonitorSession::Server()
+    {
+    return *static_cast<CMemoryMonitorServer*>(const_cast<CServer2*>(CSession2::Server()));
+    }
+
+#ifdef CLIENT_REQUEST_QUEUE
+COomClientRequestQueue& CMemoryMonitorSession::ClientRequestQueue()
+    {
+    return Server().ClientRequestQueue();
+    }
+#endif
+
+CMemoryMonitor& CMemoryMonitorSession::Monitor()
+    {
+
+#ifdef CLIENT_REQUEST_QUEUE
+    return ClientRequestQueue().Monitor();
+#else
+    return Server().Monitor();    
+#endif
+    }
+#ifndef CLIENT_REQUEST_QUEUE
+TBool CMemoryMonitorSession::IsDataPaged(const RMessage2& aMessage)
+    {
+    RThread clientThread;
+    TInt err = aMessage.Client(clientThread);
+    TBool dataPaged = EFalse;
+    if(err == KErrNone)
+        {
+        RProcess processName;
+        err = clientThread.Process(processName);
+        if(err == KErrNone)
+            {
+            dataPaged = processName.DefaultDataPaged();
+            }
+        else
+            {
+            PanicClient(aMessage, EPanicIllegalFunction);
+            }
+        }
+    else
+        {
+        PanicClient(aMessage, EPanicIllegalFunction);
+        }
+    return dataPaged;            
+    }
+#endif
+
+void CMemoryMonitorSession::ServiceL(const RMessage2& aMessage)
+    {
+
+    }
+
+#ifndef CLIENT_REQUEST_QUEUE
+void CMemoryMonitorSession::CloseAppsFinished(TInt aBytesFree, TBool aMemoryGood)
+    {
+    FUNC_LOG;
+
+    if (!iRequestFreeRam.IsNull())
+        {
+        if (iFunction == EOomMonitorRequestOptionalRam)
+            {
+            TInt memoryAvailable = aBytesFree - CMemoryMonitor::GlobalConfig().iGoodRamThreshold;
+            
+            // If memory available is greater than the requested RAM then complete with the amount of free memory, otherwise complete with KErrNoMemory
+            if (memoryAvailable >= iMinimumMemoryRequested)
+                {
+                iRequestFreeRam.Complete(memoryAvailable);
+                }
+            else
+                {
+                iRequestFreeRam.Complete(KErrNoMemory);
+                }
+               }
+        else 
+            iRequestFreeRam.Complete(aMemoryGood ? KErrNone : KErrNoMemory);
+        }
+    }
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oom_memorymonitor/src/mockoommonitorplugin.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,135 @@
+/*
+* 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:  OOM Monitor plug-in interface.
+*
+*/
+
+#include <apgwgnam.h>
+#include "oommonitorplugin.h"
+#include "oommemorymonitor.h"
+#include "OomTraces.h"
+
+// TLS is used to store the CMemoryMonitor pointer, CMemoryMonitor
+// being the main object in the OOM monitor thread. This allows
+// plugins to access the CMemoryMonitor object easily.
+EXPORT_C void SetMemoryMonitorTls(CMemoryMonitor* aMonitor)
+    {
+    FUNC_LOG;
+
+    Dll::SetTls(aMonitor);
+    }
+
+CMemoryMonitor* MemoryMonitorTls()
+    {
+    FUNC_LOG;
+
+    return static_cast<CMemoryMonitor*>(Dll::Tls());
+    }
+
+
+void OomMonitorPluginPanic(TOomMonitorPluginPanic aReason)
+    {
+    FUNC_LOG;
+
+    _LIT(KCat, "OomMonitorPlugin");
+    User::Panic(KCat, aReason);
+    }
+
+
+EXPORT_C COomMonitorPlugin::COomMonitorPlugin()
+: iMemoryMonitor(MemoryMonitorTls())
+    {
+    FUNC_LOG;
+
+    __ASSERT_ALWAYS(iMemoryMonitor, OomMonitorPluginPanic(EOomMonitorPluginPanic_PluginConstructedOutsideOomMonitorThread));
+    }
+
+EXPORT_C COomMonitorPlugin::~COomMonitorPlugin()
+    {
+    FUNC_LOG;
+    }
+
+EXPORT_C void COomMonitorPlugin::ConstructL()
+    {
+    FUNC_LOG;
+
+    // CAppOomMonitorPlugin assumes ConstructL is empty
+    }
+
+EXPORT_C void COomMonitorPlugin::ExtensionInterface(TUid /*aInterfaceId*/, TAny*& /*aImplementaion*/)
+    {
+    FUNC_LOG;
+    }
+
+EXPORT_C RFs& COomMonitorPlugin::FsSession()
+    {
+    FUNC_LOG;
+
+    return iMemoryMonitor->iFs;
+    }
+
+EXPORT_C RWsSession& COomMonitorPlugin::WsSession()
+    {
+    FUNC_LOG;
+
+    return iMemoryMonitor->iWs;
+    }
+
+EXPORT_C void COomMonitorPluginV2::FreeRam()
+    {
+    // Note that OomMonitorV2 will not call this version of the function
+    // so it does not need to be implemented in derived classes.
+    }
+
+EXPORT_C CAppOomMonitorPlugin* CAppOomMonitorPlugin::NewL(TUid aAppUid)
+    {
+    CAppOomMonitorPlugin* self = new(ELeave) CAppOomMonitorPlugin(aAppUid);
+    // ConstructL() currently not needed
+    return self;
+    }
+
+CAppOomMonitorPlugin::CAppOomMonitorPlugin(TUid aAppUid)
+: iAppUid(aAppUid)
+    {
+    }
+
+void CAppOomMonitorPlugin::FreeRam()
+    {
+    SendMessageToApp(KAppOomMonitor_FreeRam);
+    }
+
+void CAppOomMonitorPlugin::MemoryGood()
+    {
+    SendMessageToApp(KAppOomMonitor_MemoryGood);
+    }
+
+void CAppOomMonitorPlugin::SendMessageToApp(TInt aMessage)
+    {
+    RWsSession& ws = WsSession();
+    TInt wgId = 0;
+
+    do 
+        {
+        CApaWindowGroupName::FindByAppUid(iAppUid, ws, wgId);
+        if (wgId>0)
+            {
+            TWsEvent event;
+            event.SetType(aMessage);
+            event.SetTimeNow();
+            ws.SendEventToWindowGroup(wgId, event);
+            }
+        }
+    while (wgId>0);
+    }
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oom_memorymonitor/src/mockoomoutofmemorywatcher.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,77 @@
+/*
+* 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:  Main classes for Out of Memory Monitor.
+*
+*/
+
+#include "oomoutofmemorywatcher.h"
+#include "oommemorymonitor.h"
+#include "OomTraces.h"
+#include <u32hal.h>
+
+#include "diclog.h"
+#include "globaldata.h"
+
+COutOfMemoryWatcher* COutOfMemoryWatcher::NewL(CMemoryMonitor& aMonitor, TInt aLowRamThreshold, TInt aGoodRamThreshold, TBool aSwapUsageMonitored, TInt aLowSwapThreshold, TInt aGoodSwapThreshold)
+    {
+    FUNC_LOG;
+
+    COutOfMemoryWatcher* self = new (ELeave) COutOfMemoryWatcher(aMonitor, aSwapUsageMonitored);
+    CleanupStack::PushL(self);
+    self->ConstructL(aLowRamThreshold, aGoodRamThreshold, aLowSwapThreshold, aGoodSwapThreshold);
+    CleanupStack::Pop(self);
+    return self;
+    }
+
+COutOfMemoryWatcher::~COutOfMemoryWatcher()
+    {
+
+    }
+
+COutOfMemoryWatcher::COutOfMemoryWatcher(CMemoryMonitor& aMonitor, TBool aSwapUsageMonitored)
+:   CActive(CActive::EPriorityStandard),
+    iMemoryMonitor(aMonitor),
+    iSwapUsageMonitored(aSwapUsageMonitored)
+    {
+
+    }
+
+void COutOfMemoryWatcher::ConstructL(TInt aLowRamThreshold, TInt aGoodRamThreshold, TInt aLowSwapThreshold, TInt aGoodSwapThreshold)
+    {
+
+    }
+
+void COutOfMemoryWatcher::UpdateThresholds(TInt aLowRamThreshold, TInt aGoodRamThreshold, TInt aLowSwapThreshold, TInt aGoodSwapThreshold)
+    {
+    DicLog::WriteIntLog(TUid::Uid(0x0009),aLowRamThreshold);
+    DicLog::WriteIntLog(TUid::Uid(0x0010),aGoodRamThreshold);
+    DicLog::WriteIntLog(TUid::Uid(0x0011),aLowSwapThreshold);
+    DicLog::WriteIntLog(TUid::Uid(0x0012),aGoodSwapThreshold);
+    }
+
+void COutOfMemoryWatcher::Start()
+    {
+    TBuf<KIntValue7> buf(KOutOfMemoryWatcherStart);
+    DicLog::WriteLog(TUid::Uid(0x0002), buf);
+    }
+
+void COutOfMemoryWatcher::DoCancel()
+    {
+
+    }
+
+void COutOfMemoryWatcher::RunL()
+    {
+
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oom_memorymonitor/src/mockoompanic.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,32 @@
+/*
+* 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:  Panic codes for OOM monitor.
+*
+*/
+
+#include "oompanic.h"
+
+#include <e32std.h>
+
+void OomMonitorPanic(TOomMonitorPanic aReason)
+    {
+    _LIT(KCat, "OomMonitor");
+    User::Panic(KCat, aReason);
+    }
+
+void OomConfigParserPanic(TInt aReason)
+    {
+    _LIT(KParserCat, "OomParser");
+    User::Panic(KParserCat, aReason);
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oom_memorymonitor/src/mockoomrunpluginconfig.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,47 @@
+/*
+* 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:  Configuration representation classes for Out of Memory Monitor.
+*
+*/
+
+
+#include "oomrunpluginconfig.h"
+#include "oomwindowgrouplist.h"
+#include "OomTraces.h"
+#include "globaldata.h"
+
+COomRunPluginConfig* COomRunPluginConfig::NewL(TUint aPluginId, TOomPluginType aPluginType)
+    {
+    FUNC_LOG;
+
+    COomRunPluginConfig* self = new (ELeave) COomRunPluginConfig(aPluginId, aPluginType);
+    return self;
+    }
+
+TUint COomRunPluginConfig::CalculatePluginPriority(const COomWindowGroupList& aWindowGroupList)
+    {
+    return KMaxPriority1;
+    }
+
+
+COomRunPluginConfig::~COomRunPluginConfig()
+    {
+
+    }
+    
+
+COomRunPluginConfig::COomRunPluginConfig(TUint aPluginId, TOomPluginType aPluginType) : COomActionConfig(aPluginId), iPluginId(aPluginId), iPluginType(aPluginType)
+    {
+
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oom_memorymonitor/src/mockoomwindowgrouplist.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,485 @@
+/*
+* 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:  A wrapper for the window group list, adding additional functionality required by OOM Monitor v2.
+*
+*/
+
+#include <w32std.h>
+#include <e32std.h>
+#include <apgtask.h>
+#include <apgwgnam.h>
+
+#include "oomwindowgrouplist.h"
+#include "OomTraces.h"
+#include "oomconstants.hrh"
+#include "oompanic.h"
+
+#include "globaldata.h"
+#include "diclog.h"
+
+_LIT(KDummyWgName, "20");
+const TInt KPreallocatedSpaceForAppList = 50;
+
+const TUint KOomTicksPerSecond = 1000;
+
+COomWindowGroupList::TOomWindowGroupProperties::TOomWindowGroupProperties() :  iIdleTickTime(0), iDynamicPriority(EOomPriorityNormal)
+    {
+    FUNC_LOG;
+    }
+
+// Update the list of window groups
+void COomWindowGroupList::Refresh()
+    {
+    TBuf<KIntValue9> buf(KWingoupListRefresh);
+    DicLog::WriteLog(TUid::Uid(0x0003), buf);
+        
+    FUNC_LOG;
+    
+#ifdef _DEBUG
+    TRAPD(err, RefreshL());
+    if (err)
+        {
+        TRACES1("COomWindowGroupList::Refresh(): RefreshL leave %d", err);
+        }
+#else
+    TRAP_IGNORE(RefreshL());
+    // Ignore any error
+    // Errors are very unlikely, the only possibility is OOM errors (which should be very unlikely due to pre-created, re-reserved lists)
+    // The outcome of any error is that the most foreground operations will be missing from the list
+    // meaning that they will not be considered candidates for closing
+#endif    
+    }
+
+// Update the list of window groups
+// Should be called whenever the 
+void COomWindowGroupList::RefreshL()
+    {
+    FUNC_LOG;
+
+    // Refresh window group list
+    // get all window groups, with info about parents
+    TInt numGroups = iWs.NumWindowGroups(0);
+    iWgIds.ReserveL(numGroups);
+    User::LeaveIfError(iWs.WindowGroupList(0, &iWgIds));
+    
+    // Remove all child window groups, promote parents to foremost child position
+    CollapseWindowGroupTree();
+    
+    // Note the current foreground window ID (if there is one)
+    TBool oldForegroundWindowExists = EFalse;
+
+    TInt oldForegroundWindowId;
+    if (iWgIds.Count() > 0)
+        {
+        oldForegroundWindowId = iWgIds[0].iId;
+        oldForegroundWindowExists = ETrue;
+        }    
+    
+    // Cleanup the idletime hash map to remove idle times for any windows that have closed
+    RemovePropertiesForClosedWindowsL();
+    
+    // Update the idle tick on the old foreground application (which might now be in the background)
+    // This will be set to the current system tick count and will be used later to determine the idle time
+    if (oldForegroundWindowExists)
+        {
+        TOomWindowGroupProperties* wgProperties = iWgToPropertiesMapping.Find(oldForegroundWindowId);
+        if (wgProperties)
+            {
+            wgProperties->iIdleTickTime = User::NTickCount();
+            }
+        
+        // If there is no idle tick entry for this window ID then it will be created in the next step...
+        }
+    
+    TInt index = iWgIds.Count();
+    
+    while (index--)
+        {
+        // See if there is a tick count entry for each window in the list
+        TOomWindowGroupProperties* wgProperties = iWgToPropertiesMapping.Find(iWgIds[index].iId);
+        
+        if (!wgProperties)
+            {
+            TOomWindowGroupProperties wgProperties;
+            wgProperties.iIdleTickTime = User::NTickCount();
+            // If there is no idle tick entry for this window then add one
+            iWgToPropertiesMapping.InsertL(iWgIds[index].iId, wgProperties);
+            }
+        }
+    }
+
+
+
+void COomWindowGroupList::RemovePropertiesForClosedWindowsL()
+    {
+    FUNC_LOG;
+    
+    // First, clear the existing set of window IDs (it would be quicker to delete it BUT we have reserved memory for it and don't want to be allocating in low memory conditions)
+    RHashSet<TInt>::TIter windowIdSetIter(iExistingWindowIds);
+    while (windowIdSetIter.Next())
+        {
+        windowIdSetIter.RemoveCurrent();
+        }
+    
+    // Create the set of existing window IDs (this saves expensive/repeated searching later on)
+    TInt index = iWgIds.Count();
+    while (index--)
+        {
+        iExistingWindowIds.InsertL(iWgIds[index].iId);
+        }
+    
+    // Iterate the idle-time hash map - remove any items where the window no longer exists
+    RHashMap<TInt, TOomWindowGroupProperties>::TIter wgToIdleIterator(iWgToPropertiesMapping);
+    while (wgToIdleIterator.NextKey())
+        {
+        // If the current key (window ID) does not exist in the set then remove the idle-time as it is no longer relevant
+        if (!iExistingWindowIds.Find(*(wgToIdleIterator.CurrentKey())))
+                wgToIdleIterator.RemoveCurrent();
+        }
+    }
+
+
+TUint COomWindowGroupList::AppId(TInt aIndex, TBool aResolveFromThread) const
+    {
+    FUNC_LOG;
+
+    // get the app's details
+    TPtr wgPtr(iWgNameBuf->Des());
+    
+    TUid uid;
+      
+    TInt wgId = iWgIds[aIndex].iId;
+    
+    TInt err = iWs.GetWindowGroupNameFromIdentifier(wgId, wgPtr);
+    
+    if (KErrNone != err)
+        // If there is an error then set the UID to 0;
+        {
+        uid.iUid = 0;
+        }
+    else 
+        {
+        iWgName->SetWindowGroupName(iWgNameBuf); // iWgName takes ownership of iWgNameBuf
+        uid = iWgName->AppUid(); // This UID comes from the app, not the mmp!
+        if (aResolveFromThread && uid.iUid == 0)
+            {
+            TApaTask task(iWs);
+            task.SetWgId(wgId);
+            TThreadId threadId = task.ThreadId();
+            
+            TUint resolvedUid = 0;
+            RThread appThread;
+            TInt err = appThread.Open( threadId );
+            if ( err == KErrNone )
+                {
+                resolvedUid = appThread.SecureId().iId;
+                }
+            appThread.Close();
+            TRACES2("COomWindowGroupList::AppId: NULL wg UID, taking from thread; resolvedUid = %x aIndex = %d", resolvedUid, aIndex);            
+            return resolvedUid;               
+            }
+        }
+    
+    return uid.iUid;
+    }
+    
+
+TTimeIntervalSeconds COomWindowGroupList::IdleTime(TInt aIndex) const
+    {
+    FUNC_LOG;
+
+    TUint32 currentTickCount = User::NTickCount();
+        
+    const TOomWindowGroupProperties* wgProperties = iWgToPropertiesMapping.Find(iWgIds[aIndex].iId);
+    
+    TTimeIntervalSeconds idleTime = 0;
+    
+    if (wgProperties)
+        {
+        // This should also handle the case where the current tick count has wrapped to a lower value than the idle tick time
+        // It will only work if it has wrapped once, but
+        TUint32 differenceBetweenTickCounts = currentTickCount - wgProperties->iIdleTickTime;
+        idleTime = differenceBetweenTickCounts / KOomTicksPerSecond;
+        }
+    
+    return idleTime;
+    }
+  
+
+
+void COomWindowGroupList::CollapseWindowGroupTree()
+    {
+    FUNC_LOG;
+
+    // start from the front, wg count can reduce as loop runs
+    for (TInt ii=0; ii<iWgIds.Count();)
+        {
+        RWsSession::TWindowGroupChainInfo& info = iWgIds[ii];
+        if (info.iParentId > 0)        // wg has a parent
+            {
+            // Look for the parent position
+            TInt parentPos = ii;        // use child pos as not-found signal
+            TInt count = iWgIds.Count();
+            for (TInt jj=0; jj<count; jj++)
+                {
+                if (iWgIds[jj].iId == info.iParentId)
+                    {
+                    parentPos = jj;
+                    break;
+                    }
+                }
+
+            if (parentPos > ii)  // parent should be moved forward
+                {
+                iWgIds[ii] = iWgIds[parentPos];
+                iWgIds.Remove(parentPos);
+                }
+            else if (parentPos < ii)  // parent is already ahead of child, remove child
+                iWgIds.Remove(ii);
+            else                    // parent not found, skip
+                ii++;
+            }
+        else    // wg does not have a parent, skip
+            ii++;
+        }    
+    }
+
+
+
+COomWindowGroupList::COomWindowGroupList(RWsSession& aWs) : iWs(aWs)
+    {
+    FUNC_LOG;
+    }
+
+
+
+void COomWindowGroupList::ConstructL()
+    {
+    FUNC_LOG;
+
+    // Reserve enough space to build an app list later.
+    iWgIds.ReserveL(KPreallocatedSpaceForAppList);
+    iUncollapsedWgIds.ReserveL(KPreallocatedSpaceForAppList);
+    
+    // Reserve enough space for the WG to idle tick mapping
+    iWgToPropertiesMapping.ReserveL(KPreallocatedSpaceForAppList);
+    
+    // Reserve enough space for CApaWindowGroupName.
+    iWgName = CApaWindowGroupName::NewL(iWs);
+    iWgNameBuf = HBufC::NewL(CApaWindowGroupName::EMaxLength);
+    (*iWgNameBuf) = KDummyWgName;
+    iWgName->SetWindowGroupName(iWgNameBuf);    // iWgName takes ownership of iWgNameBuf
+    
+    RefreshL();
+    }
+
+
+
+COomWindowGroupList* COomWindowGroupList::NewL(RWsSession& aWs)
+    {
+    FUNC_LOG;
+
+    COomWindowGroupList* self = new (ELeave) COomWindowGroupList(aWs);
+    CleanupStack::PushL(self);
+    self->ConstructL();
+    CleanupStack::Pop(self);
+    return self;
+    }
+
+
+
+COomWindowGroupList::~COomWindowGroupList()
+    {
+    FUNC_LOG;
+
+    iWgIds.Close();
+    iUncollapsedWgIds.Close();
+    iWgToPropertiesMapping.Close();
+    iExistingWindowIds.Close();
+    delete iWgName;
+    }
+
+
+void COomWindowGroupList::SetPriorityBusy(TInt aWgId)
+    {
+    DicLog::WriteIntLog(TUid::Uid(0x0006),aWgId);
+    
+    FUNC_LOG;
+
+    Refresh();
+    
+    TInt parentId;
+    TRAPD(err, parentId = FindParentIdL(aWgId));
+    if (err)
+        {
+        parentId = aWgId;
+        }
+    
+    TOomWindowGroupProperties* wgProperties = iWgToPropertiesMapping.Find(parentId);
+    if (wgProperties)
+        {
+        wgProperties->iDynamicPriority = EOomPriorityBusy;
+        }
+    
+    // If we can't find the window group then ignore it
+    }
+
+
+TInt COomWindowGroupList::FindParentIdL(TInt aWgId)
+    {
+    TInt numGroups = iWs.NumWindowGroups(0);
+    iUncollapsedWgIds.ReserveL(numGroups);
+    User::LeaveIfError(iWs.WindowGroupList(0, &iUncollapsedWgIds));
+
+    TInt parentPos = KErrNotFound;
+   
+    //loop through the window group list
+    for (TInt i=0; i<numGroups; i++)
+        {
+        //find the index for the required aWgId
+        if (iUncollapsedWgIds[i].iId == aWgId)
+            {
+            parentPos = i;
+            break;
+            }
+        }
+
+    if (parentPos >=0 )
+        {
+        while (iUncollapsedWgIds[parentPos].iParentId > 0)
+            {
+            // find the index for the parent
+            for (TInt j=0; j<numGroups; j++)
+                {
+                if (iUncollapsedWgIds[j].iId == iUncollapsedWgIds[parentPos].iParentId)
+                    {
+                    parentPos = j;
+                    break; // break out of inner loop
+                    }
+                }
+            }
+        return iUncollapsedWgIds[parentPos].iId;
+        }
+    else 
+        {
+        return KErrNotFound;
+        }
+    }
+
+
+TBool COomWindowGroupList::IsBusy(TInt aWgIndex)
+    {
+    TBool isBusy = EFalse;
+    //__ASSERT_DEBUG(aWgIndex < iWgIds.Count(), OomMonitorPanic(KWindowGroupArrayIndexOutOfBounds));    
+    TOomWindowGroupProperties* wgProperties = iWgToPropertiesMapping.Find(iWgIds[aWgIndex].iId);
+    if (wgProperties)
+        {
+        isBusy = (wgProperties->iDynamicPriority == EOomPriorityBusy);
+        }
+    
+    return isBusy;
+    }
+
+// Returns ETrue if an application has registered itself as high priority at runtime
+TBool COomWindowGroupList::IsDynamicHighPriority(TInt aWgIndex)
+    {
+    FUNC_LOG;
+
+    TBool isHighPriority = EFalse;
+    //__ASSERT_DEBUG(aWgIndex < iWgIds.Count(), OomMonitorPanic(KWindowGroupArrayIndexOutOfBounds));    
+    TOomWindowGroupProperties* wgProperties = iWgToPropertiesMapping.Find(iWgIds[aWgIndex].iId);
+    if (wgProperties)
+        {
+        isHighPriority = (wgProperties->iDynamicPriority == EOomPriorityHigh);
+        }
+    
+    return isHighPriority;
+    }
+
+CApaWindowGroupName* COomWindowGroupList::WgName() const
+    {
+    return iWgName;
+    }
+
+void COomWindowGroupList::SetPriorityNormal(TInt aWgId)
+    {
+    DicLog::WriteIntLog(TUid::Uid(0x0005),aWgId);
+    
+    FUNC_LOG;
+
+    Refresh();
+    
+    TInt parentId;
+    TRAPD(err, parentId = FindParentIdL(aWgId));
+    if (err)
+        {
+        parentId = aWgId;
+        }
+    
+    TOomWindowGroupProperties* wgProperties = iWgToPropertiesMapping.Find(parentId);
+    if (wgProperties)
+        {
+        wgProperties->iDynamicPriority = EOomPriorityNormal;
+        }
+    
+    // If we can't find the window group then ignore it
+    }
+
+
+void COomWindowGroupList::SetPriorityHigh(TInt aWgId)
+    {
+    DicLog::WriteIntLog(TUid::Uid(0x0004),aWgId);
+    
+    FUNC_LOG;
+
+    Refresh();
+
+    TInt parentId;
+    TRAPD(err, parentId = FindParentIdL(aWgId));
+    if (err)
+        {
+        parentId = aWgId;
+        }
+    
+    TOomWindowGroupProperties* wgProperties = iWgToPropertiesMapping.Find(parentId);
+    if (wgProperties)
+        {
+        wgProperties->iDynamicPriority = EOomPriorityHigh;
+        }
+    
+    // If we can't find the window group then ignore it
+    }
+
+// Find the specificed application in the window group list and return the index
+TInt COomWindowGroupList::GetIndexFromAppId(TUint aAppId) const
+    {
+    FUNC_LOG;
+
+    TInt indexInGroupList = Count();
+    TBool appFoundInWindowGroupList = EFalse;
+    
+    while (indexInGroupList--)
+        {
+        if (AppId(indexInGroupList, ETrue) == aAppId)
+            {
+            appFoundInWindowGroupList = ETrue;
+            break;
+            }
+        }
+    
+    if (!appFoundInWindowGroupList)
+        indexInGroupList = KAppNotInWindowGroupList;
+
+    return indexInGroupList;
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oom_memorymonitor/src/mockoomwserveventreceiver.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,56 @@
+/*
+* 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:  Main classes for Out of Memory Monitor.
+*
+*/
+
+#include <akneiksrvc.h>
+#include <apgwgnam.h>
+#include "oomwserveventreceiver.h"
+#include "oommemorymonitor.h"
+#include "OomTraces.h"
+#include "oomconstants.hrh"
+
+#include "apgwgnam.h"
+
+CWservEventReceiver::CWservEventReceiver(CMemoryMonitor& aMonitor, RWsSession& aWs)
+: CActive(CActive::EPriorityStandard), iMonitor(aMonitor), iWs(aWs), iWg(aWs)
+    {
+
+    }
+
+CWservEventReceiver::~CWservEventReceiver()
+    {
+
+    }
+
+void CWservEventReceiver::ConstructL()
+    {
+
+    }
+
+void CWservEventReceiver::Queue()
+    {
+
+    }
+
+void CWservEventReceiver::DoCancel()
+    {
+
+    }
+
+void CWservEventReceiver::RunL()
+    {
+
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oom_memorymonitor/src/oomfriendclass.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,150 @@
+/*
+* 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: This file contains STIFUnit implementation.
+*
+*/
+
+#include "oomfriendclass.h"
+#include <../../../inc/oommemorymonitor.h>
+#include <oomwindowgrouplist.h>
+#include <oomconfig.h>
+#include <oomclientrequestqueue.h>
+#include <oommemorymonitorserver.h>
+#include <oomactionlist.h>
+#include <oomlog.h>
+#include <oomoutofmemorywatcher.h>
+#include <oomwserveventreceiver.h>
+
+
+COomFriendClass::COomFriendClass()
+    {
+
+    }
+
+COomFriendClass::~COomFriendClass()
+    {
+
+    }
+
+COomFriendClass* COomFriendClass::COomFriendClass::NewLC()
+    {
+    COomFriendClass* self=new(ELeave) COomFriendClass();
+    CleanupStack::PushL(self);
+    self->ConstructL();
+    return self;    
+    }
+
+COomFriendClass* COomFriendClass::COomFriendClass::NewL()
+    {
+    COomFriendClass* self=COomFriendClass::NewLC();
+    CleanupStack::Pop(self);
+    return self;    
+    }
+
+void COomFriendClass::ConstructL()
+    {
+   
+    }
+
+COomWindowGroupList* COomFriendClass::GetWindowGroupList(CMemoryMonitor* aMemoryMonitor)
+    {
+    return aMemoryMonitor->iOomWindowGroupList;
+    }
+
+COomConfig* COomFriendClass::GetOomConfig(CMemoryMonitor* aMemoryMonitor)
+    {
+    return aMemoryMonitor->iConfig;
+    }
+
+COomClientRequestQueue* COomFriendClass::GetClientRequestQueue(CMemoryMonitor* aMemoryMonitor)
+    {
+    return aMemoryMonitor->iQueue;
+    }
+
+CMemoryMonitorServer* COomFriendClass::GetMemoryMonitorServer(CMemoryMonitor* aMemoryMonitor)
+    {
+    return aMemoryMonitor->iServer;
+    }
+
+COomActionList* COomFriendClass::GetOomActionList(CMemoryMonitor* aMemoryMonitor)
+    {
+    return aMemoryMonitor->iOomActionList;
+    }
+
+#ifdef _DEBUG    
+COomLogger* COomFriendClass::GetOomLogger(CMemoryMonitor* aMemoryMonitor)
+    {
+    return aMemoryMonitor->iLogger;
+    }
+#endif
+
+COutOfMemoryWatcher* COomFriendClass::GetOutOfMemoryWatcher(CMemoryMonitor* aMemoryMonitor)
+    {
+    return aMemoryMonitor->iOOMWatcher;
+    }
+
+CWservEventReceiver* COomFriendClass::GetEventReceiver(CMemoryMonitor* aMemoryMonitor)
+    {
+    return aMemoryMonitor->iWservEventReceiver;
+    }
+
+void COomFriendClass::CallRefreshThresholds(CMemoryMonitor* aMemoryMonitor)
+    {
+    aMemoryMonitor->RefreshThresholds();
+    }
+
+TInt COomFriendClass::GetGoodRamThreshold(CMemoryMonitor* aMemoryMonitor)
+    {
+    return aMemoryMonitor->iGoodRamThreshold;
+    }
+
+TInt COomFriendClass::GetLowRamThreshold(CMemoryMonitor* aMemoryMonitor)
+    {
+    return aMemoryMonitor->iLowRamThreshold;
+    }
+
+TInt COomFriendClass::GetGoodSwapThreshold(CMemoryMonitor* aMemoryMonitor)
+    {
+    return aMemoryMonitor->iGoodSwapThreshold;
+    }
+
+TInt COomFriendClass::GetLowSwapThreshold(CMemoryMonitor* aMemoryMonitor)
+    {
+    return aMemoryMonitor->iLowSwapThreshold;
+    }
+
+TInt COomFriendClass::GetCurrentRamTarget(CMemoryMonitor* aMemoryMonitor)
+    {
+    return aMemoryMonitor->iCurrentRamTarget;
+    }
+
+TInt COomFriendClass::GetCurrentSwapTarget(CMemoryMonitor* aMemoryMonitor)
+    {
+    return aMemoryMonitor->iCurrentSwapTarget;
+    }
+    
+TInt COomFriendClass::GetActionTrigger(CMemoryMonitor* aMemoryMonitor)
+    {
+    return STATIC_CAST(TInt, aMemoryMonitor->iActionTrigger);    
+    }
+
+TBool COomFriendClass::GetDataPaged(CMemoryMonitor* aMemoryMonitor)
+    {   
+    return aMemoryMonitor->iDataPaged;    
+    }
+
+TInt COomFriendClass::GetLastMemoryMonitorStatusProperty(CMemoryMonitor* aMemoryMonitor)
+    {
+    return aMemoryMonitor->iLastMemoryMonitorStatusProperty;
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oom_memorymonitor/src/ut_oom_memorymonitor.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,125 @@
+/*
+* 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: This file contains STIFUnit module implementation.
+*
+*/
+
+/******************************************************************************/
+/*
+ *
+ * Test module configuration 
+*/
+
+// Version
+#define TEST_MODULE_VERSION_MAJOR 0
+#define TEST_MODULE_VERSION_MINOR 0
+#define TEST_MODULE_VERSION_BUILD 0
+
+// Uncomment following defines, if you want to provide implementation
+// of enlisted virtual methods of test module.
+// Implementation part is located at the end of this file.
+//#define STIFUNIT_OOMTESTQUERYL
+//#define STIFUNIT_OOMTESTINITIALIZEL
+//#define STIFUNIT_OOMHANDLEWARNINGL
+//#define STIFUNIT_OOMTESTFINALIZEL
+// Uncomment following define, if you want to increase heap or stack size.
+// #define STIFUNIT_SETHEAPANDSTACKSIZE
+/******************************************************************************/
+
+
+/*
+ * Test module internals. Please do not edit them. 
+*/
+
+// Includes
+#include <e32base.h>
+
+// Literals
+_LIT( KUnitLogPath, "\\logs\\testframework\\ut_oom_memorymonitor\\" ); 
+_LIT( KUnitLogFile, "ut_oom_memorymonitor.txt" ); 
+_LIT( KLogStart, "ut_oom_memorymonitor logging starts!" );
+
+// Defines
+#define STIF_UNIT_TEST_CASES "../src/ut_oom_memorymonitorCases.cpp"
+#define STIF_UNIT_MODULE_CLASS_NAME Cut_oom_memorymonitor
+#define STIF_UNIT_MODULE_NAME _L("ut_oom_memorymonitor.dll")
+
+// Include STIF unit generic file
+#include <StifUnitGeneric.h>
+
+/*
+ * Implementation of setHeapAndStack virtual methods.
+ * To changes heap and stack size provide new values to iTestThreadStackSize, iTestThreadMinHeap and iTestThreadMaxHeap. 
+*/
+
+#ifdef STIFUNIT_SETHEAPANDSTACKSIZE
+EXPORT_C TInt SetRequirements( CTestModuleParam*& aTestModuleParam, 
+                               TUint32& aParameterValid )
+    {
+    aParameterValid = KStifTestModuleParameterChanged;
+    TRAPD(err, CTestModuleParamVer01* param = CTestModuleParamVer01::NewL()); 
+    if(KErrNone==err)
+        {
+        // Stack size 
+        param->iTestThreadStackSize= 16384; // 16K stack 
+        // Heap sizes 
+        param->iTestThreadMinHeap = 4096; // 4K heap min 
+        param->iTestThreadMaxHeap = 1048576;// 1M heap max 
+        }
+    }
+#undef STIFUNIT_SETHEAPANDSTACKSIZE
+#endif
+
+/*
+ * User implementation of OOM virtual methods.
+ * Providing own implementation requires uncommenting defines at the
+ * beginnig of this file.   
+*/
+#ifdef STIFUNIT_OOMTESTQUERYL
+TBool Cut_oom_memorymonitor::OOMTestQueryL( const TFileName& /*aTestCaseFile*/, 
+                                   const TInt aCaseNumber, 
+                                   TOOMFailureType& aFailureType, 
+                                   TInt& aFirstMemFailure, 
+                                   TInt& aLastMemFailure)
+    {
+    }
+#undef STIFUNIT_OOMTESTQUERYL
+#endif
+
+#ifdef STIFUNIT_OOMTESTINITIALIZEL
+void Cut_oom_memorymonitor::OOMTestInitializeL( const TFileName& /*aTestCaseFile*/, 
+                                       const TInt /*aCaseNumber*/ )
+    {
+    }
+#undef STIFUNIT_OOMTESTINITIALIZEL
+#endif
+
+#ifdef STIFUNIT_OOMHANDLEWARNINGL
+void Cut_oom_memorymonitor::OOMHandleWarningL( const TFileName& /*aTestCaseFile*/,
+                                      const TInt /*aCaseNumber*/, 
+                                      TInt& /*aFailNextValue*/)
+    {
+    }
+#undef STIFUNIT_OOMHANDLEWARNINGL
+#endif
+    
+#ifdef STIFUNIT_OOMTESTFINALIZEL
+void Cut_oom_memorymonitor::OOMTestFinalizeL( const TFileName& /*aTestCaseFile*/, 
+                                     const TInt /*aCaseNumber*/ )
+    {
+    }
+#undef STIFUNIT_OOMTESTFINALIZEL
+#endif
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oom_memorymonitor/src/ut_oom_memorymonitorCases.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,1109 @@
+/*
+* 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: This file contains STIFUnit implementation.
+*
+*/
+
+/**
+ * STIF_UNIT_INCLUDE SECTION - put all #includes between STIF_UNIT_INCLUDE_SECTION
+ *                             and STIF_UNIT_INCLUDE_SECTION_END
+ */
+#ifdef STIF_UNIT_INCLUDE_SECTION
+
+#include <e32debug.h> // RDebug
+#include <hal.h>
+#include <u32hal.h>
+#include <oommemorymonitor.h> 
+#include <oomconfig.h>
+#include <oomconstants.hrh>
+#include "diclog.h"
+#include "globaldata.h"
+#include "oomfriendclass.h"
+
+#endif //STIF_UNIT_INCLUDE_SECTION_END
+
+/**
+ * GLOBAL VARIABLES SECTION
+ */
+#ifdef TEST_VAR_DECLARATIONS
+	/**
+	 * Example of variable common for some test cases
+	 */
+
+	 
+#endif
+/**
+ * END OF GLOBAL VARIABLES SECTION
+ */
+
+
+/**
+ * TEST CASES SECTION
+ */
+#ifdef TEST_CASES
+/**
+ * STIF_SETUP defines activities needed before every test case.
+ */
+STIF_SETUP
+{
+	/** Example of use of STIF_SETUP - a variable common for some test cases is initialized
+	 */
+
+}
+
+/**
+ * STIF_TEARDOWN defines activities needed after every test case
+ */
+STIF_TEARDOWN
+{
+	/** Example of use of STIF_TEARDOWN - a variable common for some test cases is destroyed
+	 */
+
+}
+
+/**
+ * @SYMTestCaseID              GAPS-OOM-MEMORYMONITOR-001
+ * @SYMTestCaseDesc            Test ConstruL() function of CMemoryMonitor.
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1. Create CMemoryMonitor object.
+ *                             2. Create COomFriendClass object.
+ *                             3. Check WindowGroupList pointer.
+ *                             4. Check OomConfig pointer.
+ *                             5. Check ClientRequestQueue pointer.
+ *                             6. Check MemoryMonitorServer pointer.
+ *                             7. Check ActionList pointer.
+ *                             8. Check OomLogger pointer when debug.
+ *                             9. Check OutOfMemoryWatcher pointer.
+ *                             10. Check EventReceiver pointer.
+ *                             11. Check the call of COomConfigParser::ParseL().
+ *                             12. Check the call of COutOfMemoryWatcher::Start().
+ *                             13. Check the call of COomWindowGroupList::Refresh().
+ *                             14. Delete diclog file.
+ *                             15. Delete COomFriendClass object.
+ *                             16. Delete CMemoryMonitor object.
+ * @SYMTestExpectedResults     1. Create CMemoryMonitor object successfully.
+ *                             2. Create COomFriendClass object sucessfully.
+ *                             3. WindowGroupList pointer is not NULL.
+ *                             4. OomConfig pointer is not NULL.
+ *                             5. ClientRequestQueue pointer is not NULL.
+ *                             6. MemoryMonitorServer pointer is not NULL.
+ *                             7. ActionList pointer is not NULL.
+ *                             8. OomLogger pointer when debug is not NULL.
+ *                             9. OutOfMemoryWatcher pointer is not NULL.
+ *                             10. EventReceiver pointer is not NULL.
+ *                             11. COomConfigParser::ParseL() is called.
+ *                             12. COutOfMemoryWatcher::Start() is called.
+ *                             13. COomWindowGroupList::Refresh() is called.
+ *                             14. Delete diclog file successfully.
+ *                             15. Delete COomFriendClass object successfully.
+ *                             16. Delete CMemoryMonitor object successfully.
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            15-08-2010
+ */
+STIF_TESTDEFINE(GAPS-OOM-MEMORYMONITOR-001)
+{
+    iLog->Log( _L("OomMemoryMonitor: Start test ConstructL()!"));
+    iLog->Log( _L("OomMemoryMonitor: Create CMemoryMonitor object!"));
+    CMemoryMonitor* oom = NULL;
+    oom = CMemoryMonitor::NewL();
+    STIF_ASSERT_NOT_NULL(oom);
+    
+    CleanupStack::PushL(oom);
+    iLog->Log( _L("OomMemoryMonitor: Delete diclog file."));
+    
+    iLog->Log( _L("OomMemoryMonitor: Create friend class!"));
+    COomFriendClass* oomFriendClass=COomFriendClass::NewLC();
+    STIF_ASSERT_NOT_NULL(oomFriendClass);
+    
+    COomWindowGroupList* oomWindowGroupList=oomFriendClass->GetWindowGroupList(oom);
+    iLog->Log( _L("OomMemoryMonitor: oomWindowGroupList=%d"),oomWindowGroupList);
+    STIF_ASSERT_NOT_NULL(oomWindowGroupList);
+    
+    COomConfig* oomConfig=oomFriendClass->GetOomConfig(oom);
+    iLog->Log( _L("OomMemoryMonitor: oomConfig=%d"),oomConfig);
+    STIF_ASSERT_NOT_NULL(oomConfig);
+    
+    COomClientRequestQueue* oomClientRequestQueue=oomFriendClass->GetClientRequestQueue(oom);
+    iLog->Log( _L("OomMemoryMonitor: oomClientRequestQueue=%d"),oomClientRequestQueue);
+    STIF_ASSERT_NOT_NULL(oomClientRequestQueue);
+       
+    CMemoryMonitorServer* oomMemoryMonitorServer=oomFriendClass->GetMemoryMonitorServer(oom);
+    iLog->Log( _L("OomMemoryMonitor: oomMemoryMonitorServer=%d"),oomMemoryMonitorServer);
+    STIF_ASSERT_NOT_NULL(oomMemoryMonitorServer);
+    
+    COomActionList* oomActionList=oomFriendClass->GetOomActionList(oom);
+    iLog->Log( _L("OomMemoryMonitor: oomActionList=%d"),oomActionList);
+    STIF_ASSERT_NOT_NULL(oomActionList);
+
+#ifdef _DEBUG     
+    COomLogger* oomLogger=oomFriendClass->GetOomLogger(oom);
+    iLog->Log( _L("OomMemoryMonitor: oomLogger=%d"),oomLogger);
+    STIF_ASSERT_NOT_NULL(oomLogger);
+    
+#endif    
+        
+    COutOfMemoryWatcher* oomOutOfMemoryWatcher=oomFriendClass->GetOutOfMemoryWatcher(oom);
+    iLog->Log( _L("OomMemoryMonitor: oomOutOfMemoryWatcher=%d"),oomOutOfMemoryWatcher);
+    STIF_ASSERT_NOT_NULL(oomOutOfMemoryWatcher);
+    
+    CWservEventReceiver* oomEventReceiver=oomFriendClass->GetEventReceiver(oom);
+    iLog->Log( _L("OomMemoryMonitor: oomEventReceiver=%d"),oomEventReceiver);
+    STIF_ASSERT_NOT_NULL(oomEventReceiver);
+    
+    iLog->Log( _L("OomMemoryMonitor: Check the call of COomConfigParser::ParseL()!"));
+    TBuf<KIntValue8> buf(KConfigParserParser);
+    TBuf<KIntValue8> buf1;    
+    DicLog::ReadLog(TUid::Uid(0x0001), buf1);
+    STIF_ASSERT_EQUALS(buf1, buf);
+    
+    iLog->Log( _L("OomMemoryMonitor: Check the call of COutOfMemoryWatcher::Start()!"));
+    TBuf<KIntValue7> buf2(KOutOfMemoryWatcherStart);
+    TBuf<KIntValue7> buf3;    
+    DicLog::ReadLog(TUid::Uid(0x0002), buf3);
+    STIF_ASSERT_EQUALS(buf2, buf3);
+    
+    iLog->Log( _L("OomMemoryMonitor: Check the call of COomWindowGroupList::Refresh()!"));
+    TBuf<KIntValue9> buf4(KWingoupListRefresh);
+    TBuf<KIntValue9> buf5;    
+    DicLog::ReadLog(TUid::Uid(0x0003), buf5);
+    STIF_ASSERT_EQUALS(buf4, buf5);
+       
+    DicLog::RemoveLogFile();
+    iLog->Log( _L("OomMemoryMonitor: Delete diclog file."));
+    CleanupStack::PopAndDestroy(oomFriendClass);
+    iLog->Log( _L("OomMemoryMonitor: Delete oomFriendClass!"));
+    CleanupStack::PopAndDestroy(oom);
+    iLog->Log( _L("OomMemoryMonitor: test ConstructL() finished!"));
+}
+
+/**
+ * @SYMTestCaseID              GAPS-OOM-MEMORYMONITOR-002
+ * @SYMTestCaseDesc            Test RefreshThresholds() function of CMemoryMonitor.
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1. Create CMemoryMonitor object.
+ *                             2. Create COomFriendClass object.
+ *                             3. Set GoodRamThreshold, LowRamThreshold, GoodSwapThreshold and LowSwapThreshold
+ *                                of global config.
+ *                             4. Call RefreshThresholds().
+ *                             5. Check windowgrouplist refresh function is called.
+ *                             6. Check GoodRamThreshold, LowRamThreshold, GoodSwapThreshold and LowSwapThreshold
+ *                                value of CMemoryMonitor object.
+ *                             7. Delete diclog file.
+ *                             8. Delete COomFriendClass object.
+ *                             9. Delete CMemoryMonitor object.
+ * @SYMTestExpectedResults     1. Create CMemoryMonitor object successfully.
+ *                             2. Create COomFriendClass object.
+ *                             3. The value of GoodRamThreshold, LowRamThreshold, GoodSwapThreshold and LowSwapThreshold
+ *                                of global config is set.
+ *                             4. RefreshThresholds() function is called.
+ *                             5. Refresh function of windowgrouplist is called.
+ *                             6. The value of GoodRamThreshold, LowRamThreshold, GoodSwapThreshold and LowSwapThreshold
+ *                                of CMemoryMonitor object is set as expected.
+ *                             7. Delete diclog file successfully.
+ *                             8. Delete COomFriendClass object successfully.
+ *                             9. Delete CMemoryMonitor object successfully.
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            15-08-2010
+ */
+STIF_TESTDEFINE(GAPS-OOM-MEMORYMONITOR-002)
+{
+    iLog->Log(_L("OomMemoryMonitor: Start test RefreshThresholds()!\n"));
+    CMemoryMonitor* oom = NULL;
+    oom = CMemoryMonitor::NewL();
+    STIF_ASSERT_NOT_NULL(oom);
+    
+    CleanupStack::PushL(oom);
+    iLog->Log( _L("OomMemoryMonitor: Create friend class!\n"));
+    COomFriendClass* oomFriendClass=COomFriendClass::NewLC();
+
+    COomConfig* oomConfig=oomFriendClass->GetOomConfig(oom);
+    STIF_ASSERT_NOT_NULL(oomConfig);
+    
+    const TInt goodRamThre=100;
+    const TInt lowRamThre=200;
+    const TInt goodSwapThre=300;
+    const TInt lowSwapThre=400;
+    
+    oomConfig->SetDefaultGoodRamThreshold(goodRamThre);
+    oomConfig->SetDefaultLowRamThreshold(lowRamThre);
+    oomConfig->SetDefaultGoodSwapThreshold(goodSwapThre);
+    oomConfig->SetDefaultLowSwapThreshold(lowSwapThre);
+     
+    oomFriendClass->CallRefreshThresholds(oom);
+      
+    iLog->Log( _L("OomMemoryMonitor: Call COomWindowGroupList::Refresh()!\n"));
+    TBuf<KIntValue9> buf1(KWingoupListRefresh);
+    TBuf<KIntValue9> buf2;    
+    DicLog::ReadLog(TUid::Uid(0x0003), buf2);
+    iLog->Log(_L("KWingoupListRefresh=%s"),buf2.Ptr());
+    STIF_ASSERT_EQUALS(buf1, buf2);
+    
+    iLog->Log(_L("OomMemoryMonitor: Check return value!\n"));   
+    TInt goodRamThreshold=oomFriendClass->GetGoodRamThreshold(oom);
+    TInt lowRamThreshold=oomFriendClass->GetLowRamThreshold(oom);
+    TInt goodSwapThreshold=oomFriendClass->GetGoodSwapThreshold(oom);
+    TInt lowSwapThreshold=oomFriendClass->GetLowSwapThreshold(oom);
+    iLog->Log(_L("valuse=%d,%d,%d,%d\n"),&goodRamThreshold, &lowRamThreshold, &goodSwapThreshold, &lowSwapThreshold);
+    STIF_ASSERT_EQUALS(goodRamThre,goodRamThreshold);
+    STIF_ASSERT_EQUALS(lowRamThre,lowRamThreshold);
+    STIF_ASSERT_EQUALS(goodSwapThre,goodSwapThreshold);
+    STIF_ASSERT_EQUALS(lowSwapThre,lowSwapThreshold);
+        
+    DicLog::RemoveLogFile();
+    CleanupStack::PopAndDestroy(oomFriendClass);
+    CleanupStack::PopAndDestroy(oom);
+    iLog->Log( _L("OomMemoryMonitor: test RefreshThresholds() finished!"));
+}
+
+/**
+ * @SYMTestCaseID              GAPS-OOM-MEMORYMONITOR-003
+ * @SYMTestCaseDesc            Test StartFreeSomeRamL() function of CMemoryMonitor.
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1. Create CMemoryMonitor object.
+ *                             2. Create COomFriendClass object.
+ *                             3. Call StartFreeSomeRamL() function;
+ *                             4. Check COomActionList->FreeMemory(aMaxPriority) is function is called.
+ *                             5. Delete diclog file.
+ *                             6. Delete COomFriendClass object.
+ *                             7. Delete CMemoryMonitor object.
+ * @SYMTestExpectedResults     1. Create CMemoryMonitor object successfully.
+ *                             2. Create COomFriendClass object.
+ *                             3. StartFreeSomeRamL() function is called.
+ *                             4. COomActionList->SwitchOffPlugins() is called.
+ *                             5. Delete diclog file successfully.
+ *                             6. Delete COomFriendClass object successfully.
+ *                             7. Delete CMemoryMonitor object successfully.
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            15-08-2010
+ */
+
+STIF_TESTDEFINE(GAPS-OOM-MEMORYMONITOR-003)
+{
+    iLog->Log(_L("OomMemoryMonitor: Start test StartFreeSomeRamL()!\n"));
+    CMemoryMonitor* oom = NULL;
+    oom = CMemoryMonitor::NewL();
+    STIF_ASSERT_NOT_NULL(oom);
+    
+    CleanupStack::PushL(oom);
+    iLog->Log( _L("OomMemoryMonitor: Create friend class!\n"));
+    COomFriendClass* oomFriendClass=COomFriendClass::NewLC();
+
+    const TInt KPriority2=35;
+    const TInt KTargeRamSize=500*1024*1024;
+    oom->StartFreeSomeRamL(KTargeRamSize, KTargeRamSize, KPriority2);
+    
+    TInt32 maxPriority32=0;
+    DicLog::ReadIntLog(TUid::Uid(0x0015), maxPriority32);
+    TInt maxPriority=STATIC_CAST(TInt, maxPriority32);
+    iLog->Log(_L("OomMemoryMonitor: maxPriority32=%d"), maxPriority32);
+    STIF_ASSERT_EQUALS(maxPriority, KPriority2);
+        
+    DicLog::RemoveLogFile();
+    CleanupStack::PopAndDestroy(oomFriendClass);
+    CleanupStack::PopAndDestroy(oom);
+    iLog->Log(_L("OomMemoryMonitor: test StartFreeSomeRamL() finished!"));
+}
+
+/**
+ * @SYMTestCaseID              GAPS-OOM-MEMORYMONITOR-004
+ * @SYMTestCaseDesc            Test HandleFocusedWgChangeL() function of CMemoryMonitor.
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1. Create CMemoryMonitor object.
+ *                             2. Create COomFriendClass object.
+ *                             3. Set the value of iGoodRamThreshold, iLowRamThreshold, iGoodSwapThreshold
+ *                                iLowSwapThreshold of CMemoryMonitor object.
+ *                             4. Set GoodRamThreshold, LowRamThreshold, GoodSwapThreshold and LowSwapThreshold
+ *                                of global config.
+ *                             5. Call HandleFocusedWgChangeL function.
+ *                             6. Check iGoodRamThreshold, iLowRamThreshold, iGoodSwapThreshold
+ *                                iLowSwapThreshold of CMemoryMonitor object is set correct value.
+ *                             7. Check iCurrentRamTarget and iCurrentSwapTarget of CMemoryMonitor object
+ *                                is set correct value.
+ *                             8. Check COomConfig->StartL() is called.
+ *                             9. Check COomActionList->BuildActionListL() is called.
+ *                             10. Check COomActionList->FreeMemory(aMaxPriority) is called.
+ *                             11. Delete diclog file.
+ *                             12. Delete COomFriendClass object.
+ *                             13. Delete CMemoryMonitor object.
+ * @SYMTestExpectedResults     1. Create CMemoryMonitor object successfully.
+ *                             2. Create COomFriendClass object.
+ *                             3. The value of iGoodRamThreshold, iLowRamThreshold, iGoodSwapThreshold
+ *                                iLowSwapThreshold of CMemoryMonitor object is set.
+ *                             4. The value of GoodRamThreshold, LowRamThreshold, GoodSwapThreshold and LowSwapThreshold
+ *                                of global config is set.
+ *                             5. HandleFocusedWgChangeL function is called.
+ *                             6. iGoodRamThreshold, iLowRamThreshold, iGoodSwapThreshold
+ *                                iLowSwapThreshold of CMemoryMonitor object is set correct value.
+ *                             7. iCurrentRamTarget and iCurrentSwapTarget of CMemoryMonitor object
+ *                                is set correct value.
+ *                             8. COomConfig->StartL() is called.
+ *                             9. COomActionList->BuildActionListL() is called.
+ *                             10. COomActionList->FreeMemory(aMaxPriority) is called.
+ *                             11. Delete diclog file successfully.
+ *                             12. Delete COomFriendClass object successfully.
+ *                             13. Delete CMemoryMonitor object successfully.
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            15-08-2010
+ */
+
+STIF_TESTDEFINE(GAPS-OOM-MEMORYMONITOR-004)
+{
+    iLog->Log(_L("OomMemoryMonitor: Start test HandleFocusedWgChangeL()!\n"));
+    CMemoryMonitor* oom = NULL;
+    oom = CMemoryMonitor::NewL();
+    STIF_ASSERT_NOT_NULL(oom);
+    
+    CleanupStack::PushL(oom);
+    iLog->Log( _L("OomMemoryMonitor: Create friend class!\n"));
+    COomFriendClass* oomFriendClass=COomFriendClass::NewLC();
+    
+    COomConfig* oomConfig=oomFriendClass->GetOomConfig(oom);
+    STIF_ASSERT_NOT_NULL(oomConfig);
+    
+    oomConfig->SetDefaultGoodRamThreshold(KGoodRamThreshold);
+    oomConfig->SetDefaultLowRamThreshold(KLowRamThreshold);
+    oomConfig->SetDefaultGoodSwapThreshold(KGoodSwapThreshold);
+    oomConfig->SetDefaultLowSwapThreshold(KLowSwapThreshold);
+     
+    oomFriendClass->CallRefreshThresholds(oom);
+    
+    oomConfig->SetDefaultGoodRamThreshold(KGoodRamThreshold*KMSize);
+    oomConfig->SetDefaultLowRamThreshold(KLowRamThreshold*KMSize);
+    oomConfig->SetDefaultGoodSwapThreshold(KGoodSwapThreshold*KMSize);
+    oomConfig->SetDefaultLowSwapThreshold(KLowSwapThreshold*KMSize);
+
+    oom->HandleFocusedWgChangeL();
+    
+    TInt32 lowRamThreshold32=0;
+    DicLog::ReadIntLog(TUid::Uid(0x0009), lowRamThreshold32);
+    TInt lowRamThreshold=STATIC_CAST(TInt, lowRamThreshold32);
+    STIF_ASSERT_EQUALS(lowRamThreshold, KLowRamThreshold*KMSize);
+    
+    TInt32 goodRamThreshold32=0;
+    DicLog::ReadIntLog(TUid::Uid(0x0010), goodRamThreshold32);
+    TInt goodRamThreshold=STATIC_CAST(TInt, goodRamThreshold32);
+    STIF_ASSERT_EQUALS(goodRamThreshold, KGoodRamThreshold*KMSize);
+    
+    TInt32 lowSwapThreshold32=0;
+    DicLog::ReadIntLog(TUid::Uid(0x0011), lowSwapThreshold32);
+    TInt lowSwapThreshold=STATIC_CAST(TInt, lowSwapThreshold32);
+    STIF_ASSERT_EQUALS((TInt)lowSwapThreshold, KLowSwapThreshold*KMSize);
+    
+    TInt32 goodSwapThreshold32=0;
+    DicLog::ReadIntLog(TUid::Uid(0x0012), goodSwapThreshold32);
+    TInt goodSwapThreshold=STATIC_CAST(TInt, goodSwapThreshold32);
+    STIF_ASSERT_EQUALS(goodSwapThreshold, KGoodSwapThreshold*KMSize);
+    
+    TInt ramTarget=oomFriendClass->GetCurrentRamTarget(oom);
+    TInt swapTarget=oomFriendClass->GetCurrentSwapTarget(oom);
+    
+    STIF_ASSERT_EQUALS(ramTarget, KGoodRamThreshold*KMSize);
+    STIF_ASSERT_EQUALS(swapTarget, KGoodSwapThreshold*KMSize);
+
+#ifdef _DEBUG     
+    TBuf<KIntValue8> buf1(KOomLoggerStartL);
+    TBuf<KIntValue8> buf2;    
+    DicLog::ReadLog(TUid::Uid(0x0013), buf2);
+    iLog->Log(_L("KOomLoggerStartL=%s"),buf2.Ptr());
+    STIF_ASSERT_EQUALS(buf1, buf2);
+#endif
+    
+    TBuf<KIntValue18> buf3(KActionListBuildActionListL);
+    TBuf<KIntValue18> buf4;    
+    DicLog::ReadLog(TUid::Uid(0x0014), buf4);
+    iLog->Log(_L("KActionListBuildActionListL=%s"),buf4.Ptr());
+    STIF_ASSERT_EQUALS(buf3, buf4);
+    
+    TInt32 maxPriority32=0;
+    DicLog::ReadIntLog(TUid::Uid(0x0015), maxPriority32);
+    TInt maxPriority=STATIC_CAST(TInt, maxPriority32);
+    STIF_ASSERT_EQUALS(maxPriority, KOomPriorityInfinate - 1);
+      
+    DicLog::RemoveLogFile();
+    CleanupStack::PopAndDestroy(oomFriendClass);
+    CleanupStack::PopAndDestroy(oom);
+    iLog->Log(_L("OomMemoryMonitor: test HandleFocusedWgChangeL() finished!"));
+}
+
+/**
+ * @SYMTestCaseID              GAPS-OOM-MEMORYMONITOR-005
+ * @SYMTestCaseDesc            Test FreeMemThresholdCrossedL() function of CMemoryMonitor.
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1. Create CMemoryMonitor object.
+ *                             2. Create COomFriendClass object.
+ *                             3. Set GoodRamThreshold, LowRamThreshold, GoodSwapThreshold and LowSwapThreshold
+ *                                of global config.
+ *                             4. Call FreeMemThresholdCrossedL function.
+ *                             5. Check iActionTrigger value of CMemoryMonitor object.
+ *                             6. Check iCurrentRamTarget and iCurrentSwapTarget of CMemoryMonitor object
+ *                                is set correct value.
+ *                             7. Delete diclog file.
+ *                             8. Delete COomFriendClass object.
+ *                             9. Delete CMemoryMonitor object.
+ * @SYMTestExpectedResults     1. Create CMemoryMonitor object successfully.
+ *                             2. Create COomFriendClass object.
+ *                             3. The value of GoodRamThreshold, LowRamThreshold, GoodSwapThreshold and LowSwapThreshold
+ *                                of global config is set.
+ *                             4. FreeMemThresholdCrossedL function is called.
+ *                             5. The value of iActionTrigger of CMemoryMonitor object is set as expected.
+ *                             6. iCurrentRamTarget and iCurrentSwapTarget of CMemoryMonitor object
+ *                                is set correct value.
+ *                             7. Delete diclog file successfully.
+ *                             8. Delete COomFriendClass object successfully.
+ *                             9. Delete CMemoryMonitor object successfully.
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            15-08-2010
+ */
+
+STIF_TESTDEFINE(GAPS-OOM-MEMORYMONITOR-005)
+{
+    iLog->Log(_L("OomMemoryMonitor: Start test FreeMemThresholdCrossedL()!\n"));
+    CMemoryMonitor* oom = NULL;
+    oom = CMemoryMonitor::NewL();
+    STIF_ASSERT_NOT_NULL(oom);
+    
+    CleanupStack::PushL(oom);
+    iLog->Log(_L("OomMemoryMonitor: Create friend class!\n"));
+    COomFriendClass* oomFriendClass=COomFriendClass::NewLC();
+    
+    COomConfig* oomConfig=oomFriendClass->GetOomConfig(oom);
+    STIF_ASSERT_NOT_NULL(oomConfig);
+    
+    oomConfig->SetDefaultGoodRamThreshold(KGoodRamThreshold*KMSize);
+    oomConfig->SetDefaultLowRamThreshold(KLowRamThreshold*KMSize);
+    oomConfig->SetDefaultGoodSwapThreshold(KGoodSwapThreshold*KMSize);
+    oomConfig->SetDefaultLowSwapThreshold(KLowSwapThreshold*KMSize);
+     
+    oomFriendClass->CallRefreshThresholds(oom);
+
+    oom->FreeMemThresholdCrossedL();
+    
+    TInt actionTriggerType1=STATIC_CAST(TInt, ERamRotation);
+    TInt actionTriggerType2=oom->ActionTrigger();
+    TInt actionTriggerType3=STATIC_CAST(TInt, actionTriggerType2);
+    iLog->Log( _L("OomMemoryMonitor: ActionTrigger=%d\n"), actionTriggerType3);
+    STIF_ASSERT_EQUALS(actionTriggerType1, actionTriggerType3);    
+
+    TInt ramTarget=oomFriendClass->GetCurrentRamTarget(oom);
+    TInt swapTarget=oomFriendClass->GetCurrentSwapTarget(oom);
+    iLog->Log( _L("OomMemoryMonitor: ramTarget=%d, swapTarget=%d\n"), ramTarget, swapTarget);
+
+    STIF_ASSERT_EQUALS(ramTarget, KGoodRamThreshold*KMSize);
+    STIF_ASSERT_EQUALS(swapTarget, KGoodSwapThreshold*KMSize);
+    
+    DicLog::RemoveLogFile();
+    CleanupStack::PopAndDestroy(oomFriendClass);
+    CleanupStack::PopAndDestroy(oom);
+    iLog->Log(_L("OomMemoryMonitor: test FreeMemThresholdCrossedL() finished!"));
+}
+
+/**
+ * @SYMTestCaseID              GAPS-OOM-MEMORYMONITOR-006
+ * @SYMTestCaseDesc            Test RequestFreeMemoryPandSL() function of CMemoryMonitor.
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1. Create CMemoryMonitor object.
+ *                             2. Create COomFriendClass object.
+ *                             3. Set GoodRamThreshold, LowRamThreshold, GoodSwapThreshold and LowSwapThreshold
+ *                                of global config.
+ *                             4. Call RequestFreeMemoryPandSL function.
+ *                             5. Check iActionTrigger value of CMemoryMonitor object.
+ *                             6. Check iCurrentRamTarget and iCurrentSwapTarget of CMemoryMonitor object
+ *                                is set correct value.
+ *                             7. Delete diclog file.
+ *                             8. Delete COomFriendClass object.
+ *                             9. Delete CMemoryMonitor object.
+ * @SYMTestExpectedResults     1. Create CMemoryMonitor object successfully.
+ *                             2. Create COomFriendClass object.
+ *                             3. The value of GoodRamThreshold, LowRamThreshold, GoodSwapThreshold and LowSwapThreshold
+ *                                of global config is set.
+ *                             4. RequestFreeMemoryPandSL function is called.
+ *                             5. The value of iActionTrigger of CMemoryMonitor object is set as expected.
+ *                             6. iCurrentRamTarget and iCurrentSwapTarget of CMemoryMonitor object
+ *                                is set correct value.
+ *                             7. Delete diclog file successfully.
+ *                             8. Delete COomFriendClass object successfully.
+ *                             9. Delete CMemoryMonitor object successfully.
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            15-08-2010
+ */
+
+STIF_TESTDEFINE(GAPS-OOM-MEMORYMONITOR-006)
+{
+    iLog->Log(_L("OomMemoryMonitor: Start test RequestFreeMemoryPandSL()!\n"));
+    CMemoryMonitor* oom = NULL;
+    oom = CMemoryMonitor::NewL();
+    STIF_ASSERT_NOT_NULL(oom);
+    
+    CleanupStack::PushL(oom);
+    iLog->Log(_L("OomMemoryMonitor: Create friend class!\n"));
+    COomFriendClass* oomFriendClass=COomFriendClass::NewLC();
+    
+    COomConfig* oomConfig=oomFriendClass->GetOomConfig(oom);
+    STIF_ASSERT_NOT_NULL(oomConfig);
+    
+    oomConfig->SetDefaultGoodRamThreshold(KGoodRamThreshold*KMSize);
+    oomConfig->SetDefaultLowRamThreshold(KLowRamThreshold*KMSize);
+    oomConfig->SetDefaultGoodSwapThreshold(KGoodSwapThreshold*KMSize);
+    oomConfig->SetDefaultLowSwapThreshold(KLowSwapThreshold*KMSize);    
+     
+    oomFriendClass->CallRefreshThresholds(oom);
+
+    TInt KByetRequest=1000;
+    oom->RequestFreeMemoryPandSL(KByetRequest);
+    
+    TInt actionTriggerType1=STATIC_CAST(TInt, EPublishAndSubscribe);
+    TInt actionTriggerType2=oom->ActionTrigger();
+    TInt actionTriggerType3=STATIC_CAST(TInt, actionTriggerType2);
+    iLog->Log(_L("OomMemoryMonitor: ActionTrigger=%d\n"), actionTriggerType3);
+    STIF_ASSERT_EQUALS(actionTriggerType1, actionTriggerType3);    
+
+    TInt ramTarget=oomFriendClass->GetCurrentRamTarget(oom);
+    TInt swapTarget=oomFriendClass->GetCurrentSwapTarget(oom);
+    iLog->Log(_L("OomMemoryMonitor: ramTarget=%d, swapTarget=%d\n"), ramTarget, swapTarget);
+    STIF_ASSERT_EQUALS(ramTarget, KLowRamThreshold*KMSize+KByetRequest);
+    STIF_ASSERT_EQUALS(swapTarget, KLowSwapThreshold*KMSize);
+      
+    DicLog::RemoveLogFile();
+    CleanupStack::PopAndDestroy(oomFriendClass);
+    CleanupStack::PopAndDestroy(oom);
+    iLog->Log(_L("OomMemoryMonitor: test RequestFreeMemoryPandSL() finished!"));
+}
+
+/**
+ * @SYMTestCaseID              GAPS-OOM-MEMORYMONITOR-007
+ * @SYMTestCaseDesc            Test RequestFreeMemoryL() function of CMemoryMonitor.
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1. Create CMemoryMonitor object.
+ *                             2. Create COomFriendClass object.
+ *                             3. Set GoodRamThreshold, LowRamThreshold, GoodSwapThreshold and LowSwapThreshold
+ *                                of global config.
+ *                             4. Call RequestFreeMemoryL function.
+ *                             5. Check iActionTrigger value of CMemoryMonitor object.
+ *                             6. Check iCurrentRamTarget and iCurrentSwapTarget of CMemoryMonitor object
+ *                                is set correct value.
+ *                             7. Check iDataPaged value.
+ *                             8. Delete diclog file.
+ *                             9. Delete COomFriendClass object.
+ *                             10. Delete CMemoryMonitor object.
+ * @SYMTestExpectedResults     1. Create CMemoryMonitor object successfully.
+ *                             2. Create COomFriendClass object.
+ *                             3. The value of GoodRamThreshold, LowRamThreshold, GoodSwapThreshold and LowSwapThreshold
+ *                                of global config is set.
+ *                             4. RequestFreeMemoryL function is called.
+ *                             5. The value of iActionTrigger of CMemoryMonitor object is set as expected.
+ *                             6. iCurrentRamTarget and iCurrentSwapTarget of CMemoryMonitor object
+ *                                is set correct value.
+ *                             7. iDataPaged is assigned value as expected.
+ *                             8. Delete diclog file successfully.
+ *                             9. Delete COomFriendClass object successfully.
+ *                             10. Delete CMemoryMonitor object successfully.
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            15-08-2010
+ */
+STIF_TESTDEFINE(GAPS-OOM-MEMORYMONITOR-007)
+{
+    iLog->Log(_L("OomMemoryMonitor: Start test RequestFreeMemoryL()!\n"));
+    CMemoryMonitor* oom = NULL;
+    oom = CMemoryMonitor::NewL();
+    STIF_ASSERT_NOT_NULL(oom);
+    
+    CleanupStack::PushL(oom);
+    iLog->Log(_L("OomMemoryMonitor: Create friend class!\n"));
+    COomFriendClass* oomFriendClass=COomFriendClass::NewLC();
+    
+    COomConfig* oomConfig=oomFriendClass->GetOomConfig(oom);
+    STIF_ASSERT_NOT_NULL(oomConfig);
+    
+    oomConfig->SetDefaultGoodRamThreshold(KGoodRamThreshold*KMSize);
+    oomConfig->SetDefaultLowRamThreshold(KLowRamThreshold*KMSize);
+    oomConfig->SetDefaultGoodSwapThreshold(KGoodSwapThreshold*KMSize);
+    oomConfig->SetDefaultLowSwapThreshold(KLowSwapThreshold*KMSize);     
+     
+    oomFriendClass->CallRefreshThresholds(oom);
+
+    const TInt KByetRequestMem=2000;
+    oom->RequestFreeMemoryL(KByetRequestMem, ETrue);
+    
+    TInt actionTriggerType1=STATIC_CAST(TInt, EClientServerRequestFreeMemory);
+    TInt actionTriggerType2=oom->ActionTrigger();
+    TInt actionTriggerType3=STATIC_CAST(TInt, actionTriggerType2);
+    iLog->Log(_L("OomMemoryMonitor: ActionTrigger=%d\n"), actionTriggerType3);
+    STIF_ASSERT_EQUALS(actionTriggerType1, actionTriggerType3);    
+
+    TInt ramTarget=oomFriendClass->GetCurrentRamTarget(oom);
+    TInt swapTarget=oomFriendClass->GetCurrentSwapTarget(oom);
+    iLog->Log(_L("OomMemoryMonitor: ramTarget=%d, swapTarget=%d\n"), ramTarget, swapTarget);
+    STIF_ASSERT_EQUALS(ramTarget, KLowRamThreshold*KMSize);
+    STIF_ASSERT_EQUALS(swapTarget, KLowSwapThreshold*KMSize+KByetRequestMem);
+    
+    TBool dataPaged=oomFriendClass->GetDataPaged(oom);
+    STIF_ASSERT_TRUE(dataPaged);
+      
+    DicLog::RemoveLogFile();
+    CleanupStack::PopAndDestroy(oomFriendClass);
+    CleanupStack::PopAndDestroy(oom);
+    iLog->Log(_L("OomMemoryMonitor: test RequestFreeMemoryL() finished!"));
+}
+
+/**
+ * @SYMTestCaseID              GAPS-OOM-MEMORYMONITOR-008
+ * @SYMTestCaseDesc            Test FreeOptionalRamL() function of CMemoryMonitor.
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1. Create CMemoryMonitor object.
+ *                             2. Create COomFriendClass object.
+ *                             3. Set GoodRamThreshold, LowRamThreshold, GoodSwapThreshold and LowSwapThreshold
+ *                                of global config.
+ *                             4. Call FreeOptionalRamL function.
+ *                             5. Check iActionTrigger value of CMemoryMonitor object.
+ *                             6. Check iCurrentRamTarget and iCurrentSwapTarget of CMemoryMonitor object
+ *                                is set correct value.
+ *                             7. Check iDataPaged value.
+ *                             8. Check COomActionList->FreeMemory(aMaxPriority) is called.
+ *                             9. Delete diclog file.
+ *                             10. Delete COomFriendClass object.
+ *                             11. Delete CMemoryMonitor object.
+ * @SYMTestExpectedResults     1. Create CMemoryMonitor object successfully.
+ *                             2. Create COomFriendClass object.
+ *                             3. The value of GoodRamThreshold, LowRamThreshold, GoodSwapThreshold and LowSwapThreshold
+ *                                of global config is set.
+ *                             4. FreeOptionalRamL function is called.
+ *                             5. The value of iActionTrigger of CMemoryMonitor object is set as expected.
+ *                             6. iCurrentRamTarget and iCurrentSwapTarget of CMemoryMonitor object
+ *                                is set correct value.
+ *                             7. iDataPaged is assigned value as expected.
+ *                             8. COomActionList->FreeMemory(aMaxPriority) is called.
+ *                             9. Delete diclog file successfully.
+ *                             10. Delete COomFriendClass object successfully.
+ *                             11. Delete CMemoryMonitor object successfully.
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            15-08-2010
+ */
+
+STIF_TESTDEFINE(GAPS-OOM-MEMORYMONITOR-008)
+{
+    iLog->Log(_L("OomMemoryMonitor: Start test FreeOptionalRamL()!\n"));
+    CMemoryMonitor* oom = NULL;
+    oom = CMemoryMonitor::NewL();
+    STIF_ASSERT_NOT_NULL(oom);
+    
+    CleanupStack::PushL(oom);
+    iLog->Log(_L("OomMemoryMonitor: Create friend class!\n"));
+    COomFriendClass* oomFriendClass=COomFriendClass::NewLC();
+    
+    COomConfig* oomConfig=oomFriendClass->GetOomConfig(oom);
+    STIF_ASSERT_NOT_NULL(oomConfig);
+    
+    oomConfig->SetDefaultGoodRamThreshold(KGoodRamThreshold*KMSize);
+    oomConfig->SetDefaultLowRamThreshold(KLowRamThreshold*KMSize);
+    oomConfig->SetDefaultGoodSwapThreshold(KGoodSwapThreshold*KMSize);
+    oomConfig->SetDefaultLowSwapThreshold(KLowSwapThreshold*KMSize); 
+     
+    oomFriendClass->CallRefreshThresholds(oom);
+
+    const TInt KByetRequestMemory=3000;
+    const TInt KPluginID=99;
+    oom->FreeOptionalRamL(KByetRequestMemory, KPluginID, EFalse);
+    
+    TInt actionTriggerType1=STATIC_CAST(TInt, EClientServerRequestOptionalRam);
+    TInt actionTriggerType2=oom->ActionTrigger();
+    TInt actionTriggerType3=STATIC_CAST(TInt, actionTriggerType2);
+    iLog->Log(_L("OomMemoryMonitor: ActionTrigger=%d\n"), actionTriggerType3);
+    STIF_ASSERT_EQUALS(actionTriggerType1, actionTriggerType3);    
+
+    TInt ramTarget=oomFriendClass->GetCurrentRamTarget(oom);
+    TInt swapTarget=oomFriendClass->GetCurrentSwapTarget(oom);
+    iLog->Log(_L("OomMemoryMonitor: ramTarget=%d, swapTarget=%d\n"), ramTarget, swapTarget);
+    STIF_ASSERT_EQUALS(ramTarget, KGoodRamThreshold*KMSize+KByetRequestMemory);
+    STIF_ASSERT_EQUALS(swapTarget, KLowSwapThreshold*KMSize);
+    
+    TBool dataPaged=oomFriendClass->GetDataPaged(oom);
+    iLog->Log( _L("OomMemoryMonitor: GetDataPaged=%d\n"), dataPaged);
+    STIF_ASSERT_FALSE(dataPaged);
+    
+    TInt32 maxPriority32=0;
+    DicLog::ReadIntLog(TUid::Uid(0x0015), maxPriority32);
+    TInt maxPriority=STATIC_CAST(TInt, maxPriority32);
+    iLog->Log(_L("OomMemoryMonitor: maxPriority=%d\n"), maxPriority);
+    STIF_ASSERT_EQUALS(maxPriority, KMaxPriority1-1);
+      
+    DicLog::RemoveLogFile();
+    CleanupStack::PopAndDestroy(oomFriendClass);
+    CleanupStack::PopAndDestroy(oom);
+    iLog->Log(_L("OomMemoryMonitor: test FreeOptionalRamL() finished!"));
+}
+
+/**
+ * @SYMTestCaseID              GAPS-OOM-MEMORYMONITOR-009
+ * @SYMTestCaseDesc            Test GetFreeMemory() function of CMemoryMonitor.
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1. Create CMemoryMonitor object.
+ *                             2. Get free memory value.
+ *                             3. Calculate free memory value.
+ *                             4. Check free memory value.
+ *                             5. Delete CMemoryMonitor object.
+ * @SYMTestExpectedResults     1. Create CMemoryMonitor object successfully.
+ *                             2. Get free memory successfully.
+ *                             3. Calculate free memory successfully.
+ *                             4. Two value are same.
+ *                             5. Delete CMemoryMonitor object.
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            15-08-2010
+ */
+
+STIF_TESTDEFINE(GAPS-OOM-MEMORYMONITOR-009)
+{
+    iLog->Log(_L("OomMemoryMonitor: Start test GetFreeMemory()!\n"));
+    CMemoryMonitor* oom = NULL;
+    oom = CMemoryMonitor::NewL();
+    STIF_ASSERT_NOT_NULL(oom);
+    
+    CleanupStack::PushL(oom);
+    
+    TInt freeMemory;
+    oom->GetFreeMemory(freeMemory);
+    TInt freeMemory1;
+    User::CompressAllHeaps();
+    HAL::Get( HALData::EMemoryRAMFree, freeMemory1);
+    iLog->Log(_L("OomMemoryMonitor: test freeMemory=%d, freeMemory1=%d!"), freeMemory, freeMemory1);
+    STIF_ASSERT_EQUALS(freeMemory, freeMemory1);
+    
+    CleanupStack::PopAndDestroy(oom);
+    iLog->Log(_L("OomMemoryMonitor: test GetFreeMemory() finished!"));
+}
+
+/**
+ * @SYMTestCaseID              GAPS-OOM-MEMORYMONITOR-010
+ * @SYMTestCaseDesc            Test AppNotExiting(), ActionsCompleted() function of CMemoryMonitor.
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1. Create CMemoryMonitor object.
+ *                             2. Call AppNotExiting function.
+ *                             3. Check COomActionList->AppNotExiting() is called.
+ *                             4. Call ActionsCompleted function.
+ *                             5. Check ActionsCompleted() function is called.
+ *                             6. Delete diclog file.
+ *                             7. Delete CMemoryMonitor object.
+ * @SYMTestExpectedResults     1. Create CMemoryMonitor object successfully.
+ *                             2. AppNotExiting function is called.
+ *                             3. COomActionList->AppNotExiting() is called.
+ *                             4. Call ActionsCompleted function.
+ *                             5. COomClientRequestQueue->ActionsCompleted() function is called.
+ *                             6. Diclog file is deleted.
+ *                             7. Delete CMemoryMonitor object.
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            15-08-2010
+ */
+
+STIF_TESTDEFINE(GAPS-OOM-MEMORYMONITOR-010)
+{
+    iLog->Log(_L("OomMemoryMonitor: Start test AppNotExiting(), ActionsCompleted()!\n"));
+    CMemoryMonitor* oom = NULL;
+    oom = CMemoryMonitor::NewL();
+    STIF_ASSERT_NOT_NULL(oom);
+    
+    CleanupStack::PushL(oom);
+    
+    const TInt KWgId=99;
+    oom->AppNotExiting(KWgId);
+    
+    TInt32 wgID32=0;
+    DicLog::ReadIntLog(TUid::Uid(0x0016), wgID32);
+    TInt wgID=STATIC_CAST(TInt, wgID32);
+    STIF_ASSERT_EQUALS(wgID, KWgId);
+    
+    oom->ActionsCompleted(KWgId,KWgId);
+    
+    iLog->Log(_L("OomMemoryMonitor: Call COomClientRequestQueue::ActionsCompleted()!\n"));
+    TBuf<18> buf3(KClientRequestQueue);
+    TBuf<18> buf4;    
+    DicLog::ReadLog(TUid::Uid(0x0008), buf4);
+    iLog->Log(_L("COomClientRequestQueue::ActionsCompleted()()=%s"),buf4.Ptr());
+    STIF_ASSERT_EQUALS(buf3, buf4);
+    
+    DicLog::RemoveLogFile();
+    CleanupStack::PopAndDestroy(oom);
+    iLog->Log(_L("OomMemoryMonitor: test AppNotExiting(), ActionsCompleted() finished!"));
+}
+
+/**
+ * @SYMTestCaseID              GAPS-OOM-MEMORYMONITOR-011
+ * @SYMTestCaseDesc            Test ResetTargets() function of CMemoryMonitor.
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1. Create CMemoryMonitor object.
+ *                             2. Create COomFriendClass object.
+ *                             3. Set GoodRamThreshold, GoodSwapThreshold of global config.                             
+ *                             4. Call ResetTargets function.
+ *                             5. Check iCurrentRamTarget and iCurrentSwapTarget of CMemoryMonitor object
+ *                                is set correct value.
+ *                             6. Delete diclog file.
+ *                             7. Delete COomFriendClass object.
+ *                             8. Delete CMemoryMonitor object.
+ * @SYMTestExpectedResults     1. Create CMemoryMonitor object successfully.
+ *                             2. Create COomFriendClass object.
+ *                             3. The value of GoodRamThreshold, GoodSwapThreshold of global config is set.                             
+ *                             4. ResetTargets function is called.
+ *                             5. iCurrentRamTarget and iCurrentSwapTarget of CMemoryMonitor object
+ *                                is set correct value.
+ *                             6. Delete diclog file successfully.
+ *                             7. Delete COomFriendClass object successfully.
+ *                             8. Delete CMemoryMonitor object successfully.
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            15-08-2010
+ */
+
+STIF_TESTDEFINE(GAPS-OOM-MEMORYMONITOR-011)
+{
+    iLog->Log(_L("OomMemoryMonitor: Test ResetTargets()"));
+    
+    iLog->Log(_L("OomMemoryMonitor: Create CMemoryMonitor object!"));
+    CMemoryMonitor* oom = NULL;
+    oom = CMemoryMonitor::NewL();
+    STIF_ASSERT_NOT_NULL(oom);
+    
+    CleanupStack::PushL(oom);
+       
+    iLog->Log(_L("OomMemoryMonitor: Create friend class!"));
+    COomFriendClass* oomFriendClass=COomFriendClass::NewLC();
+    
+    COomConfig* oomConfig=oomFriendClass->GetOomConfig(oom);
+    STIF_ASSERT_NOT_NULL(oomConfig);
+    
+    const TInt KGoodRamThre=500;
+    const TInt KGoodSwapThre=600;
+
+    oomConfig->SetDefaultGoodRamThreshold(KGoodRamThre);
+    oomConfig->SetDefaultGoodSwapThreshold(KGoodSwapThre);
+    oomFriendClass->CallRefreshThresholds(oom);
+    
+    oom->ResetTargets();
+    TInt ramTarget=oomFriendClass->GetCurrentRamTarget(oom);
+    TInt swapTarget=oomFriendClass->GetCurrentSwapTarget(oom);
+    iLog->Log(_L("OomMemoryMonitor: ramTarget=%d, swapTarget=%d!"), ramTarget, swapTarget);
+    STIF_ASSERT_EQUALS(ramTarget, KGoodRamThre);
+    STIF_ASSERT_EQUALS(swapTarget, KGoodSwapThre);
+           
+    DicLog::RemoveLogFile();
+    CleanupStack::PopAndDestroy(oomFriendClass);
+    iLog->Log(_L("OomMemoryMonitor: Delete oomFriendClass!"));
+    CleanupStack::PopAndDestroy(oom);
+    iLog->Log(_L("OomMemoryMonitor: Delete  OomMemoryMonitor object!"));
+    iLog->Log(_L("OomMemoryMonitor: Test ResetTargets() finished!"));
+}
+
+/**
+ * @SYMTestCaseID              GAPS-OOM-MEMORYMONITOR-012
+ * @SYMTestCaseDesc            Test ResetTargets() function of CMemoryMonitor.
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1. Create CMemoryMonitor object.
+ *                             2. Create COomFriendClass object.                          
+ *                             3. Call SetMemoryMonitorStatusProperty function.
+ *                             4. Check iLastMemoryMonitorStatusProperty value.
+ *                             5. Delete diclog file.
+ *                             6. Delete COomFriendClass object.
+ *                             7. Delete CMemoryMonitor object.
+ * @SYMTestExpectedResults     1. Create CMemoryMonitor object successfully.
+ *                             2. Create COomFriendClass object.
+ *                             3. SetMemoryMonitorStatusProperty function is called.
+ *                             4. iLastMemoryMonitorStatusProperty is set as expected value.
+ *                             5. Delete diclog file successfully.
+ *                             6. Delete COomFriendClass object successfully.
+ *                             7. Delete CMemoryMonitor object successfully.
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            15-08-2010
+ */
+
+STIF_TESTDEFINE(GAPS-OOM-MEMORYMONITOR-012)
+{
+    iLog->Log(_L("OomMemoryMonitor: Test SetMemoryMonitorStatusProperty()"));
+    
+    iLog->Log(_L("OomMemoryMonitor: Create CMemoryMonitor object!"));
+    CMemoryMonitor* oom = NULL;
+    oom = CMemoryMonitor::NewL();
+    STIF_ASSERT_NOT_NULL(oom);
+    
+    CleanupStack::PushL(oom);
+       
+    iLog->Log(_L("OomMemoryMonitor: Create friend class!"));
+    COomFriendClass* oomFriendClass=COomFriendClass::NewLC();
+    
+    COomConfig* oomConfig=oomFriendClass->GetOomConfig(oom);
+    STIF_ASSERT_NOT_NULL(oomConfig);
+       
+    oom->SetMemoryMonitorStatusProperty(EBelowTreshHold);
+    TInt lastMemoryMonitorStatusProperty=oomFriendClass->GetLastMemoryMonitorStatusProperty(oom);
+       
+    iLog->Log(_L("OomMemoryMonitor: lastMemoryMonitorStatusProperty=%d"),lastMemoryMonitorStatusProperty);
+
+    TInt statusPropertyValues= STATIC_CAST(TInt,EBelowTreshHold);
+    STIF_ASSERT_EQUALS(lastMemoryMonitorStatusProperty, statusPropertyValues);
+            
+    DicLog::RemoveLogFile();
+    CleanupStack::PopAndDestroy(oomFriendClass);
+    iLog->Log(_L("OomMemoryMonitor: Delete oomFriendClass!"));
+    CleanupStack::PopAndDestroy(oom);
+    iLog->Log(_L("OomMemoryMonitor: Delete  OomMemoryMonitor object!"));
+    iLog->Log(_L("OomMemoryMonitor: Test SetMemoryMonitorStatusProperty() finished!"));
+}
+
+/**
+ * @SYMTestCaseID              GAPS-OOM-MEMORYMONITOR-013
+ * @SYMTestCaseDesc            Test GoodRamThreshold() LowRamThreshold() and ActionTrigger() function of CMemoryMonitor.
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1. Create CMemoryMonitor object.
+ *                             2. Create COomFriendClass object.                          
+ *                             3. Call GoodRamThreshold function.
+ *                             4. Check iGoodRamThreshold value.
+ *                             5. Call LowRamThreshold function.
+ *                             6. Check iLowRamThreshold value.
+ *                             7. Call ActionTrigger function.
+ *                             8. Check iActionTrigger value.
+ *                             9. Delete COomFriendClass object.
+ *                             10. Delete CMemoryMonitor object.
+ * @SYMTestExpectedResults     1. Create CMemoryMonitor object successfully.
+ *                             2. Create COomFriendClass object.
+ *                             3. GoodRamThreshold function is called.
+ *                             4. iGoodRamThreshold is set as expected value.
+ *                             5. LowRamThreshold function is called.
+ *                             6. iLowRamThreshold is set as expected value.
+ *                             7. ActionTrigger function is called.
+ *                             8. iActionTrigger is set as expected value.
+ *                             9. Delete COomFriendClass object successfully.
+ *                             10. Delete CMemoryMonitor object successfully.
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            15-08-2010
+ */
+
+STIF_TESTDEFINE(GAPS-OOM-MEMORYMONITOR-013)
+{
+    iLog->Log(_L("OomMemoryMonitor: Test GoodRamThreshold() LowRamThreshold() and ActionTrigger()"));
+    
+    iLog->Log(_L("OomMemoryMonitor: Create CMemoryMonitor object!"));
+    CMemoryMonitor* oom = NULL;
+    oom = CMemoryMonitor::NewL();
+    STIF_ASSERT_NOT_NULL(oom);
+    
+    CleanupStack::PushL(oom);
+    
+    iLog->Log(_L("OomMemoryMonitor: Create friend class!"));
+    COomFriendClass* oomFriendClass=COomFriendClass::NewLC();
+    
+    TInt goodRamThreshold2=oom->GoodRamThreshold();
+    TInt goodRamThreshold1=oomFriendClass->GetGoodRamThreshold(oom);    
+    STIF_ASSERT_EQUALS(goodRamThreshold1, goodRamThreshold2);
+    iLog->Log(_L("OomMemoryMonitor: GoodRamThreshold() passed!"));
+       
+    TInt lowRamThreshold2=oom->LowRamThreshold();
+    TInt lowRamThreshold1=oomFriendClass->GetLowRamThreshold(oom);
+    STIF_ASSERT_EQUALS(lowRamThreshold1, lowRamThreshold2);
+    iLog->Log(_L("OomMemoryMonitor: GetLowRamThreshold() passed!"));
+       
+    TInt actionTriggerType2=STATIC_CAST(TInt,oom->ActionTrigger());
+    TInt actionTriggerType1=oomFriendClass->GetActionTrigger(oom);
+    STIF_ASSERT_EQUALS(actionTriggerType1, actionTriggerType2);
+    iLog->Log(_L("OomMemoryMonitor: ActionTrigger() passed!"));
+    
+    DicLog::RemoveLogFile();
+    CleanupStack::PopAndDestroy(oomFriendClass);
+    iLog->Log(_L("OomMemoryMonitor: Delete oomFriendClass!"));
+    CleanupStack::PopAndDestroy(oom);
+    iLog->Log(_L("OomMemoryMonitor: Delete  OomMemoryMonitor object!"));
+    iLog->Log(_L("OomMemoryMonitor: Test GoodRamThreshold() LowRamThreshold() and ActionTrigger() finished!"));
+}
+
+
+/**
+ * @SYMTestCaseID              GAPS-OOM-MEMORYMONITOR-014
+ * @SYMTestCaseDesc            Test SetPriorityBusy(), SetPriorityNormal() and SetPriorityHigh() function of CMemoryMonitor.
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1. Create CMemoryMonitor object.
+ *                             2. Create COomFriendClass object.  
+ *                             3. Get wgID of forground window.                        
+ *                             4. Call SetPriorityBusy function.
+ *                             5. Check COomWindowGroupList->SetPriorityBusy() is called.
+ *                             6. Call SetPriorityHigh function.
+ *                             7. Check COomWindowGroupList->SetPriorityHigh() is called.
+ *                             8. Call SetPriorityNormal function.
+ *                             9. Check COomWindowGroupList->SetPriorityNormal() is called.
+ *                             10. Delete diclog file.
+ *                             11. Delete COomFriendClass object.
+ *                             12. Delete CMemoryMonitor object.
+ * @SYMTestExpectedResults     1. Create CMemoryMonitor object successfully.
+ *                             2. Create COomFriendClass object successfully.  
+ *                             3. The wgID of forground window is get.                        
+ *                             4. Call SetPriorityBusy function.
+ *                             5. COomWindowGroupList->SetPriorityBusy() is called.
+ *                             6. Call SetPriorityHigh function.
+ *                             7. COomWindowGroupList->SetPriorityHigh() is called.
+ *                             8. Call SetPriorityNormal function.
+ *                             9. COomWindowGroupList->SetPriorityNormal() is called.
+ *                             10. Delete diclog file successfully.
+ *                             11. Delete COomFriendClass object successfully.
+ *                             12. Delete CMemoryMonitor object sucessfully.
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            15-08-2010
+ */
+
+STIF_TESTDEFINE(GAPS-OOM-MEMORYMONITOR-014)
+{
+    iLog->Log(_L("OomMemoryMonitor: Test SetPriorityBusy(), SetPriorityNormal() and SetPriorityHigh()"));
+    
+    iLog->Log(_L("OomMemoryMonitor: Create CMemoryMonitor object!"));
+    CMemoryMonitor* oom = NULL;
+    oom = CMemoryMonitor::NewL();
+    STIF_ASSERT_NOT_NULL(oom);
+    
+    CleanupStack::PushL(oom);
+    
+    iLog->Log(_L("OomMemoryMonitor: Create friend class!"));
+    COomFriendClass* oomFriendClass=COomFriendClass::NewLC();
+   
+    COomWindowGroupList* oomWindowGroupList=oomFriendClass->GetWindowGroupList(oom);
+    STIF_ASSERT_NOT_NULL(oomWindowGroupList);
+    
+    RWsSession::TWindowGroupChainInfo wgChainInfo=oomWindowGroupList->WgId(0);
+    TInt wgId=wgChainInfo.iId;
+    
+    iLog->Log(_L("OomMemoryMonitor: wgId=%d"), wgId);
+    
+    oom->SetPriorityBusy(wgId);
+    TInt32 return1=0;
+    DicLog::ReadIntLog(TUid::Uid(0x0006), return1);
+    iLog->Log(_L("OomMemoryMonitor: wgId=%d"), return1);
+    STIF_ASSERT_EQUALS((TInt)return1, wgId);
+          
+    oom->SetPriorityHigh(wgId);
+    TInt32 return2=0;
+    DicLog::ReadIntLog(TUid::Uid(0x0004), return2);
+    iLog->Log(_L("OomMemoryMonitor: wgId=%d"), return2);
+    STIF_ASSERT_EQUALS((TInt)return2, wgId);
+    
+    oom->SetPriorityNormal(wgId);
+    TInt32 return3=0;
+    DicLog::ReadIntLog(TUid::Uid(0x0005), return3);
+    iLog->Log(_L("OomMemoryMonitor: wgId=%d"), return3);
+    STIF_ASSERT_EQUALS((TInt)return3, wgId);
+    
+    DicLog::RemoveLogFile();
+    CleanupStack::PopAndDestroy(oomFriendClass);
+    iLog->Log(_L("OomMemoryMonitor: Delete oomFriendClass!"));
+    CleanupStack::PopAndDestroy(oom);
+    iLog->Log(_L("OomMemoryMonitor: Delete  OomMemoryMonitor object!"));
+    iLog->Log(_L("OomMemoryMonitor: Test SetPriorityBusy(), SetPriorityNormal() and SetPriorityHigh() finished."));
+}
+
+#endif
+/**
+ * END OF TEST CASES SECTION
+ */
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oomwatcher/.cproject	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,257 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?fileVersion 4.0.0?>
+
+<cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
+<storageModule buildFromInf="true" buildingTestComps="true" cleanLevel="0" concurrentBuildJobs="4" defaultMMPChangedAction="0" extraSBSv2Args="" infBuildComponents="" infFileLocation="group\bld.inf" macrosFile="" makeEngineToUse="make" manageDependencies="true" moduleId="com.nokia.carbide.cdt.builder.carbideCPPBuilder" overrideMakeEngine="false" overrideWorkspaceSettings="false" promptForMMPChangedAction="true" useConcurrentBuilding="true" useDebugMode="false" useIncrementalBuilder="false" useKeepGoing="false" useMMPMacros="true"/>
+<storageModule moduleId="org.eclipse.cdt.core.settings">
+<cconfiguration id="Emulator Debug (WINSCW) [92_1027]">
+<storageModule buildSystemId="com.nokia.carbide.cdt.builder.CarbideConfigurationDataProvider" id="Emulator Debug (WINSCW) [92_1027]" moduleId="org.eclipse.cdt.core.settings" name="Emulator Debug (WINSCW) [92_1027]">
+<externalSettings/>
+<extensions>
+<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="org.eclipse.cdt.core.PE" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="com.nokia.cdt.debug.cw.symbian.SymbianE32" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MakmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.CarbideMakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.SBSv2ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MWLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RCOMPErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MWCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MakeDefErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+</extensions>
+</storageModule>
+<storageModule moduleId="CarbideConfigurationDataProvider">
+<ENV_VAR_DATA_ID/>
+<ARGUMENTS_DATA_ID ABLDFREEZEARGSSTORAGE="-r"/>
+<ROM_BUILDER_DATA_ID ROMBUILDWORKINGDIRECTORYSTORAGE="D:\Symbian\92_1027\epoc32\rom\"/>
+</storageModule>
+<storageModule filesCache="D:\Symbian\92_1027\sf\mw\appsupport\sysresmonitoring\oommonitor\tsrc\ut_oomwatcher\group\bld.inf;D:\Symbian\92_1027\sf\mw\appsupport\sysresmonitoring\oommonitor\tsrc\ut_oomwatcher\group\ut_oomwatcher.mmp;D:\Symbian\92_1027\epoc32\include\platform_paths.hrh;" includesCache="D:/Symbian/92_1027/sf/mw/appsupport/sysresmonitoring/oommonitor/tsrc/ut_oomwatcher/inc[LOCAL];D:/Symbian/92_1027/epoc32/include;D:/Symbian/92_1027/epoc32/include/platform;D:/Symbian/92_1027/epoc32/include/platform/loc;D:/Symbian/92_1027/epoc32/include/platform/loc/sc;D:/Symbian/92_1027/epoc32/include/oem;" macrosCache="__DLL__;_UNICODE;__SYMBIAN32__;__SUPPORT_CPP_EXCEPTIONS__;__CW32__;__WINS__;__WINSCW__;_DEBUG;" moduleId="configDataCache" sourcesCache="/ut_oomwatcher/inc;/ut_oomwatcher/src;" timestampCache="1280987123576" useMmpMacrosCache="true"/>
+<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+</cconfiguration>
+<cconfiguration id="Emulator Release (WINSCW) [92_1027]">
+<storageModule buildSystemId="com.nokia.carbide.cdt.builder.CarbideConfigurationDataProvider" id="Emulator Release (WINSCW) [92_1027]" moduleId="org.eclipse.cdt.core.settings" name="Emulator Release (WINSCW) [92_1027]">
+<externalSettings/>
+<extensions>
+<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="org.eclipse.cdt.core.PE" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="com.nokia.cdt.debug.cw.symbian.SymbianE32" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MakmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.CarbideMakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.SBSv2ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MWLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RCOMPErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MWCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MakeDefErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+</extensions>
+</storageModule>
+<storageModule moduleId="CarbideConfigurationDataProvider">
+<ENV_VAR_DATA_ID/>
+<ARGUMENTS_DATA_ID ABLDFREEZEARGSSTORAGE="-r"/>
+<ROM_BUILDER_DATA_ID ROMBUILDWORKINGDIRECTORYSTORAGE="D:\Symbian\92_1027\epoc32\rom\"/>
+</storageModule>
+<storageModule filesCache="D:\Symbian\92_1027\sf\mw\appsupport\sysresmonitoring\oommonitor\tsrc\ut_oomwatcher\group\bld.inf;D:\Symbian\92_1027\sf\mw\appsupport\sysresmonitoring\oommonitor\tsrc\ut_oomwatcher\group\ut_oomwatcher.mmp;D:\Symbian\92_1027\epoc32\include\platform_paths.hrh;" includesCache="D:/Symbian/92_1027/sf/mw/appsupport/sysresmonitoring/oommonitor/tsrc/ut_oomwatcher/inc[LOCAL];D:/Symbian/92_1027/epoc32/include;D:/Symbian/92_1027/epoc32/include/platform;D:/Symbian/92_1027/epoc32/include/platform/loc;D:/Symbian/92_1027/epoc32/include/platform/loc/sc;D:/Symbian/92_1027/epoc32/include/oem;" macrosCache="__DLL__;_UNICODE;__SYMBIAN32__;__SUPPORT_CPP_EXCEPTIONS__;__CW32__;NDEBUG;__WINS__;__WINSCW__;" moduleId="configDataCache" sourcesCache="/ut_oomwatcher/inc;/ut_oomwatcher/src;" timestampCache="1280987123654" useMmpMacrosCache="true"/>
+</cconfiguration>
+<cconfiguration id="Phone Debug (ARMV5) [92_1027]">
+<storageModule buildSystemId="com.nokia.carbide.cdt.builder.CarbideConfigurationDataProvider" id="Phone Debug (ARMV5) [92_1027]" moduleId="org.eclipse.cdt.core.settings" name="Phone Debug (ARMV5) [92_1027]">
+<externalSettings/>
+<extensions>
+<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="org.eclipse.cdt.core.PE" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="com.nokia.cdt.debug.cw.symbian.SymbianE32" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MakmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RVCTLinkerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.CarbideMakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.SBSv2ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.Elf2E32ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RCOMPErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MakeDefErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RVCTCompilerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+</extensions>
+</storageModule>
+<storageModule moduleId="CarbideConfigurationDataProvider">
+<ENV_VAR_DATA_ID/>
+<ARGUMENTS_DATA_ID ABLDFREEZEARGSSTORAGE="-r"/>
+<ROM_BUILDER_DATA_ID ROMBUILDWORKINGDIRECTORYSTORAGE="D:\Symbian\92_1027\epoc32\rom\"/>
+</storageModule>
+<storageModule filesCache="D:\Symbian\92_1027\sf\mw\appsupport\sysresmonitoring\oommonitor\tsrc\ut_oomwatcher\group\bld.inf;D:\Symbian\92_1027\sf\mw\appsupport\sysresmonitoring\oommonitor\tsrc\ut_oomwatcher\group\ut_oomwatcher.mmp;D:\Symbian\92_1027\epoc32\include\platform_paths.hrh;" includesCache="D:/Symbian/92_1027/sf/mw/appsupport/sysresmonitoring/oommonitor/tsrc/ut_oomwatcher/inc[LOCAL];D:/Symbian/92_1027/epoc32/include;D:/Symbian/92_1027/epoc32/include/platform;D:/Symbian/92_1027/epoc32/include/platform/loc;D:/Symbian/92_1027/epoc32/include/platform/loc/sc;D:/Symbian/92_1027/epoc32/include/oem;" macrosCache="_UNICODE;__DLL__;__SUPPORT_CPP_EXCEPTIONS__;__MARM_ARMV5__;__ARMCC__;__ARMCC_2_2__;__SYMBIAN32__;__MARM__;__ARMCC_2__;__EPOC32__;__GENERIC_MARM__;__EABI__;_DEBUG;" moduleId="configDataCache" sourcesCache="/ut_oomwatcher/inc;/ut_oomwatcher/src;" timestampCache="1280987123733" useMmpMacrosCache="true"/>
+</cconfiguration>
+<cconfiguration id="Phone Release (ARMV5) [92_1027]">
+<storageModule buildSystemId="com.nokia.carbide.cdt.builder.CarbideConfigurationDataProvider" id="Phone Release (ARMV5) [92_1027]" moduleId="org.eclipse.cdt.core.settings" name="Phone Release (ARMV5) [92_1027]">
+<externalSettings/>
+<extensions>
+<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="org.eclipse.cdt.core.PE" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="com.nokia.cdt.debug.cw.symbian.SymbianE32" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MakmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RVCTLinkerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.CarbideMakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.SBSv2ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.Elf2E32ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RCOMPErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MakeDefErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RVCTCompilerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+</extensions>
+</storageModule>
+<storageModule moduleId="CarbideConfigurationDataProvider">
+<ENV_VAR_DATA_ID/>
+<ARGUMENTS_DATA_ID ABLDFREEZEARGSSTORAGE="-r"/>
+<ROM_BUILDER_DATA_ID ROMBUILDWORKINGDIRECTORYSTORAGE="D:\Symbian\92_1027\epoc32\rom\"/>
+</storageModule>
+<storageModule filesCache="D:\Symbian\92_1027\sf\mw\appsupport\sysresmonitoring\oommonitor\tsrc\ut_oomwatcher\group\bld.inf;D:\Symbian\92_1027\sf\mw\appsupport\sysresmonitoring\oommonitor\tsrc\ut_oomwatcher\group\ut_oomwatcher.mmp;D:\Symbian\92_1027\epoc32\include\platform_paths.hrh;" includesCache="D:/Symbian/92_1027/sf/mw/appsupport/sysresmonitoring/oommonitor/tsrc/ut_oomwatcher/inc[LOCAL];D:/Symbian/92_1027/epoc32/include;D:/Symbian/92_1027/epoc32/include/platform;D:/Symbian/92_1027/epoc32/include/platform/loc;D:/Symbian/92_1027/epoc32/include/platform/loc/sc;D:/Symbian/92_1027/epoc32/include/oem;" macrosCache="_UNICODE;__DLL__;__SUPPORT_CPP_EXCEPTIONS__;__MARM_ARMV5__;NDEBUG;__ARMCC__;__ARMCC_2_2__;__SYMBIAN32__;__MARM__;__ARMCC_2__;__EPOC32__;__GENERIC_MARM__;__EABI__;" moduleId="configDataCache" sourcesCache="/ut_oomwatcher/inc;/ut_oomwatcher/src;" timestampCache="1280987123826" useMmpMacrosCache="true"/>
+</cconfiguration>
+<cconfiguration id="Phone Debug (ARMV6) [92_1027]">
+<storageModule buildSystemId="com.nokia.carbide.cdt.builder.CarbideConfigurationDataProvider" id="Phone Debug (ARMV6) [92_1027]" moduleId="org.eclipse.cdt.core.settings" name="Phone Debug (ARMV6) [92_1027]">
+<externalSettings/>
+<extensions>
+<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="org.eclipse.cdt.core.PE" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="com.nokia.cdt.debug.cw.symbian.SymbianE32" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MakmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RVCTLinkerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.CarbideMakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.SBSv2ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.Elf2E32ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RCOMPErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MakeDefErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RVCTCompilerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+</extensions>
+</storageModule>
+<storageModule moduleId="CarbideConfigurationDataProvider">
+<ENV_VAR_DATA_ID/>
+<ARGUMENTS_DATA_ID ABLDFREEZEARGSSTORAGE="-r"/>
+<ROM_BUILDER_DATA_ID ROMBUILDWORKINGDIRECTORYSTORAGE="D:\Symbian\92_1027\epoc32\rom\"/>
+</storageModule>
+<storageModule filesCache="D:\Symbian\92_1027\sf\mw\appsupport\sysresmonitoring\oommonitor\tsrc\ut_oomwatcher\group\bld.inf;D:\Symbian\92_1027\sf\mw\appsupport\sysresmonitoring\oommonitor\tsrc\ut_oomwatcher\group\ut_oomwatcher.mmp;D:\Symbian\92_1027\epoc32\include\platform_paths.hrh;" includesCache="D:/Symbian/92_1027/sf/mw/appsupport/sysresmonitoring/oommonitor/tsrc/ut_oomwatcher/inc[LOCAL];D:/Symbian/92_1027/epoc32/include;D:/Symbian/92_1027/epoc32/include/platform;D:/Symbian/92_1027/epoc32/include/platform/loc;D:/Symbian/92_1027/epoc32/include/platform/loc/sc;D:/Symbian/92_1027/epoc32/include/oem;" macrosCache="__DLL__;_UNICODE;__SUPPORT_CPP_EXCEPTIONS__;__MARM_ARMV5__;__ARMCC__;__ARMCC_2_2__;__SYMBIAN32__;__MARM__;__ARMCC_2__;__ARMV6__;__EPOC32__;__GENERIC_MARM__;__EABI__;_DEBUG;" moduleId="configDataCache" sourcesCache="/ut_oomwatcher/inc;/ut_oomwatcher/src;" timestampCache="1280987123904" useMmpMacrosCache="true"/>
+</cconfiguration>
+<cconfiguration id="Phone Release (ARMV6) [92_1027]">
+<storageModule buildSystemId="com.nokia.carbide.cdt.builder.CarbideConfigurationDataProvider" id="Phone Release (ARMV6) [92_1027]" moduleId="org.eclipse.cdt.core.settings" name="Phone Release (ARMV6) [92_1027]">
+<externalSettings/>
+<extensions>
+<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="org.eclipse.cdt.core.PE" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="com.nokia.cdt.debug.cw.symbian.SymbianE32" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MakmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RVCTLinkerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.CarbideMakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.SBSv2ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.Elf2E32ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RCOMPErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MakeDefErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RVCTCompilerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+</extensions>
+</storageModule>
+<storageModule moduleId="CarbideConfigurationDataProvider">
+<ENV_VAR_DATA_ID/>
+<ARGUMENTS_DATA_ID ABLDFREEZEARGSSTORAGE="-r"/>
+<ROM_BUILDER_DATA_ID ROMBUILDWORKINGDIRECTORYSTORAGE="D:\Symbian\92_1027\epoc32\rom\"/>
+</storageModule>
+<storageModule filesCache="D:\Symbian\92_1027\sf\mw\appsupport\sysresmonitoring\oommonitor\tsrc\ut_oomwatcher\group\bld.inf;D:\Symbian\92_1027\sf\mw\appsupport\sysresmonitoring\oommonitor\tsrc\ut_oomwatcher\group\ut_oomwatcher.mmp;D:\Symbian\92_1027\epoc32\include\platform_paths.hrh;" includesCache="D:/Symbian/92_1027/sf/mw/appsupport/sysresmonitoring/oommonitor/tsrc/ut_oomwatcher/inc[LOCAL];D:/Symbian/92_1027/epoc32/include;D:/Symbian/92_1027/epoc32/include/platform;D:/Symbian/92_1027/epoc32/include/platform/loc;D:/Symbian/92_1027/epoc32/include/platform/loc/sc;D:/Symbian/92_1027/epoc32/include/oem;" macrosCache="__DLL__;_UNICODE;__SUPPORT_CPP_EXCEPTIONS__;__MARM_ARMV5__;NDEBUG;__ARMCC__;__ARMCC_2_2__;__SYMBIAN32__;__MARM__;__ARMCC_2__;__ARMV6__;__EPOC32__;__GENERIC_MARM__;__EABI__;" moduleId="configDataCache" sourcesCache="/ut_oomwatcher/inc;/ut_oomwatcher/src;" timestampCache="1280987123983" useMmpMacrosCache="true"/>
+</cconfiguration>
+<cconfiguration id="Phone Debug (ARMV7) [92_1027]">
+<storageModule buildSystemId="com.nokia.carbide.cdt.builder.CarbideConfigurationDataProvider" id="Phone Debug (ARMV7) [92_1027]" moduleId="org.eclipse.cdt.core.settings" name="Phone Debug (ARMV7) [92_1027]">
+<externalSettings/>
+<extensions>
+<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="org.eclipse.cdt.core.PE" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="com.nokia.cdt.debug.cw.symbian.SymbianE32" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MakmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RVCTLinkerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.CarbideMakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.SBSv2ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.Elf2E32ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RCOMPErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MakeDefErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RVCTCompilerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+</extensions>
+</storageModule>
+<storageModule moduleId="CarbideConfigurationDataProvider">
+<ENV_VAR_DATA_ID/>
+<ARGUMENTS_DATA_ID ABLDFREEZEARGSSTORAGE="-r"/>
+<ROM_BUILDER_DATA_ID ROMBUILDWORKINGDIRECTORYSTORAGE="D:\Symbian\92_1027\epoc32\rom\"/>
+</storageModule>
+<storageModule filesCache="D:\Symbian\92_1027\sf\mw\appsupport\sysresmonitoring\oommonitor\tsrc\ut_oomwatcher\group\bld.inf;D:\Symbian\92_1027\sf\mw\appsupport\sysresmonitoring\oommonitor\tsrc\ut_oomwatcher\group\ut_oomwatcher.mmp;D:\Symbian\92_1027\epoc32\include\platform_paths.hrh;" includesCache="D:/Symbian/92_1027/sf/mw/appsupport/sysresmonitoring/oommonitor/tsrc/ut_oomwatcher/inc[LOCAL];D:/Symbian/92_1027/epoc32/include;D:/Symbian/92_1027/epoc32/include/platform;D:/Symbian/92_1027/epoc32/include/platform/loc;D:/Symbian/92_1027/epoc32/include/platform/loc/sc;D:/Symbian/92_1027/epoc32/include/oem;" macrosCache="__DLL__;_UNICODE;__SUPPORT_CPP_EXCEPTIONS__;__ARMV7__;__MARM_ARMV5__;__ARMCC__;__ARMCC_2_2__;__SYMBIAN32__;__MARM__;__ARMCC_2__;__EPOC32__;__GENERIC_MARM__;__EABI__;_DEBUG;" moduleId="configDataCache" sourcesCache="/ut_oomwatcher/inc;/ut_oomwatcher/src;" timestampCache="1280987124076" useMmpMacrosCache="true"/>
+</cconfiguration>
+<cconfiguration id="Phone Release (ARMV7) [92_1027]">
+<storageModule buildSystemId="com.nokia.carbide.cdt.builder.CarbideConfigurationDataProvider" id="Phone Release (ARMV7) [92_1027]" moduleId="org.eclipse.cdt.core.settings" name="Phone Release (ARMV7) [92_1027]">
+<externalSettings/>
+<extensions>
+<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="org.eclipse.cdt.core.PE" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="com.nokia.cdt.debug.cw.symbian.SymbianE32" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MakmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RVCTLinkerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.CarbideMakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.SBSv2ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.Elf2E32ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RCOMPErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MakeDefErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RVCTCompilerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+</extensions>
+</storageModule>
+<storageModule moduleId="CarbideConfigurationDataProvider">
+<ENV_VAR_DATA_ID/>
+<ARGUMENTS_DATA_ID ABLDFREEZEARGSSTORAGE="-r"/>
+<ROM_BUILDER_DATA_ID ROMBUILDWORKINGDIRECTORYSTORAGE="D:\Symbian\92_1027\epoc32\rom\"/>
+</storageModule>
+<storageModule filesCache="D:\Symbian\92_1027\sf\mw\appsupport\sysresmonitoring\oommonitor\tsrc\ut_oomwatcher\group\bld.inf;D:\Symbian\92_1027\sf\mw\appsupport\sysresmonitoring\oommonitor\tsrc\ut_oomwatcher\group\ut_oomwatcher.mmp;D:\Symbian\92_1027\epoc32\include\platform_paths.hrh;" includesCache="D:/Symbian/92_1027/sf/mw/appsupport/sysresmonitoring/oommonitor/tsrc/ut_oomwatcher/inc[LOCAL];D:/Symbian/92_1027/epoc32/include;D:/Symbian/92_1027/epoc32/include/platform;D:/Symbian/92_1027/epoc32/include/platform/loc;D:/Symbian/92_1027/epoc32/include/platform/loc/sc;D:/Symbian/92_1027/epoc32/include/oem;" macrosCache="__DLL__;_UNICODE;__SUPPORT_CPP_EXCEPTIONS__;__ARMV7__;__MARM_ARMV5__;NDEBUG;__ARMCC__;__ARMCC_2_2__;__SYMBIAN32__;__MARM__;__ARMCC_2__;__EPOC32__;__GENERIC_MARM__;__EABI__;" moduleId="configDataCache" sourcesCache="/ut_oomwatcher/inc;/ut_oomwatcher/src;" timestampCache="1280987124154" useMmpMacrosCache="true"/>
+</cconfiguration>
+<cconfiguration id="Phone Debug (ARMV9E) [92_1027]">
+<storageModule buildSystemId="com.nokia.carbide.cdt.builder.CarbideConfigurationDataProvider" id="Phone Debug (ARMV9E) [92_1027]" moduleId="org.eclipse.cdt.core.settings" name="Phone Debug (ARMV9E) [92_1027]">
+<externalSettings/>
+<extensions>
+<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="org.eclipse.cdt.core.PE" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="com.nokia.cdt.debug.cw.symbian.SymbianE32" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MakmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RVCTLinkerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.CarbideMakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.SBSv2ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.Elf2E32ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RCOMPErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MakeDefErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RVCTCompilerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+</extensions>
+</storageModule>
+<storageModule moduleId="CarbideConfigurationDataProvider">
+<ENV_VAR_DATA_ID/>
+<ARGUMENTS_DATA_ID ABLDFREEZEARGSSTORAGE="-r"/>
+<ROM_BUILDER_DATA_ID ROMBUILDWORKINGDIRECTORYSTORAGE="D:\Symbian\92_1027\epoc32\rom\"/>
+</storageModule>
+<storageModule filesCache="D:\Symbian\92_1027\sf\mw\appsupport\sysresmonitoring\oommonitor\tsrc\ut_oomwatcher\group\bld.inf;D:\Symbian\92_1027\sf\mw\appsupport\sysresmonitoring\oommonitor\tsrc\ut_oomwatcher\group\ut_oomwatcher.mmp;D:\Symbian\92_1027\epoc32\include\platform_paths.hrh;" includesCache="D:/Symbian/92_1027/sf/mw/appsupport/sysresmonitoring/oommonitor/tsrc/ut_oomwatcher/inc[LOCAL];D:/Symbian/92_1027/epoc32/include;D:/Symbian/92_1027/epoc32/include/platform;D:/Symbian/92_1027/epoc32/include/platform/loc;D:/Symbian/92_1027/epoc32/include/platform/loc/sc;D:/Symbian/92_1027/epoc32/include/oem;" macrosCache="__DLL__;_UNICODE;__SYMBIAN32__;__SUPPORT_CPP_EXCEPTIONS__;_DEBUG;" moduleId="configDataCache" sourcesCache="/ut_oomwatcher/inc;/ut_oomwatcher/src;" timestampCache="1280987124233" useMmpMacrosCache="true"/>
+</cconfiguration>
+<cconfiguration id="Phone Release (ARMV9E) [92_1027]">
+<storageModule buildSystemId="com.nokia.carbide.cdt.builder.CarbideConfigurationDataProvider" id="Phone Release (ARMV9E) [92_1027]" moduleId="org.eclipse.cdt.core.settings" name="Phone Release (ARMV9E) [92_1027]">
+<externalSettings/>
+<extensions>
+<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="org.eclipse.cdt.core.PE" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="com.nokia.cdt.debug.cw.symbian.SymbianE32" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MakmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RVCTLinkerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.CarbideMakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.SBSv2ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.Elf2E32ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RCOMPErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MakeDefErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RVCTCompilerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+</extensions>
+</storageModule>
+<storageModule moduleId="CarbideConfigurationDataProvider">
+<ENV_VAR_DATA_ID/>
+<ARGUMENTS_DATA_ID ABLDFREEZEARGSSTORAGE="-r"/>
+<ROM_BUILDER_DATA_ID ROMBUILDWORKINGDIRECTORYSTORAGE="D:\Symbian\92_1027\epoc32\rom\"/>
+</storageModule>
+<storageModule filesCache="D:\Symbian\92_1027\sf\mw\appsupport\sysresmonitoring\oommonitor\tsrc\ut_oomwatcher\group\bld.inf;D:\Symbian\92_1027\sf\mw\appsupport\sysresmonitoring\oommonitor\tsrc\ut_oomwatcher\group\ut_oomwatcher.mmp;D:\Symbian\92_1027\epoc32\include\platform_paths.hrh;" includesCache="D:/Symbian/92_1027/sf/mw/appsupport/sysresmonitoring/oommonitor/tsrc/ut_oomwatcher/inc[LOCAL];D:/Symbian/92_1027/epoc32/include;D:/Symbian/92_1027/epoc32/include/platform;D:/Symbian/92_1027/epoc32/include/platform/loc;D:/Symbian/92_1027/epoc32/include/platform/loc/sc;D:/Symbian/92_1027/epoc32/include/oem;" macrosCache="__DLL__;_UNICODE;__SYMBIAN32__;__SUPPORT_CPP_EXCEPTIONS__;NDEBUG;" moduleId="configDataCache" sourcesCache="/ut_oomwatcher/inc;/ut_oomwatcher/src;" timestampCache="1280987124326" useMmpMacrosCache="true"/>
+</cconfiguration>
+</storageModule>
+</cproject>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oomwatcher/.project	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>ut_oomwatcher</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>com.nokia.carbide.cdt.builder.carbideCPPBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.cdt.core.cnature</nature>
+		<nature>org.eclipse.cdt.core.ccnature</nature>
+		<nature>com.nokia.carbide.cdt.builder.carbideCPPBuilderNature</nature>
+		<nature>com.nokia.carbide.cdt.builder.carbideSBSv2BuilderNature</nature>
+	</natures>
+</projectDescription>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oomwatcher/Bwins/ut_oomwatcheru.def	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,12 @@
+EXPORTS
+	?LibEntryL@@YAPAVCTestModuleBase@@XZ @ 1 NONAME ; class CTestModuleBase * __cdecl LibEntryL(void)
+	?SetRequirements@@YAHAAPAVCTestModuleParam@@AAK@Z @ 2 NONAME ; int __cdecl SetRequirements(class CTestModuleParam * &,unsigned long &)
+	?RequestFreeMemory@ROomMonitorSession@@QAEXHAAVTRequestStatus@@@Z @ 3 NONAME ; void ROomMonitorSession::RequestFreeMemory(int, class TRequestStatus &)
+	?RequestFreeMemory@ROomMonitorSession@@QAEHH@Z @ 4 NONAME ; int ROomMonitorSession::RequestFreeMemory(int)
+	?RequestOptionalRam@ROomMonitorSession@@QAEXHHHAAVTRequestStatus@@@Z @ 5 NONAME ; void ROomMonitorSession::RequestOptionalRam(int, int, int, class TRequestStatus &)
+	?RequestOptionalRam@ROomMonitorSession@@QAEHHHHAAH@Z @ 6 NONAME ; int ROomMonitorSession::RequestOptionalRam(int, int, int, int &)
+	?SetOomPriority@ROomMonitorSession@@QAEXW4TOomPriority@1@@Z @ 7 NONAME ; void ROomMonitorSession::SetOomPriority(enum ROomMonitorSession::TOomPriority)
+	?CancelRequestFreeMemory@ROomMonitorSession@@QAEXXZ @ 8 NONAME ; void ROomMonitorSession::CancelRequestFreeMemory(void)
+	?ThisAppIsNotExiting@ROomMonitorSession@@QAEXH@Z @ 9 NONAME ; void ROomMonitorSession::ThisAppIsNotExiting(int)
+	?Connect@ROomMonitorSession@@QAEHXZ @ 10 NONAME ; int ROomMonitorSession::Connect(void)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oomwatcher/eabi/ut_oomwatcheru.def	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,12 @@
+EXPORTS
+	_Z9LibEntryLv @ 1 NONAME
+	_Z15SetRequirementsRP16CTestModuleParamRm @ 2 NONAME
+	_ZN18ROomMonitorSession14SetOomPriorityENS_12TOomPriorityE @ 3 NONAME
+	_ZN18ROomMonitorSession17RequestFreeMemoryEi @ 4 NONAME
+	_ZN18ROomMonitorSession17RequestFreeMemoryEiR14TRequestStatus @ 5 NONAME
+	_ZN18ROomMonitorSession18RequestOptionalRamEiiiR14TRequestStatus @ 6 NONAME
+	_ZN18ROomMonitorSession18RequestOptionalRamEiiiRi @ 7 NONAME
+	_ZN18ROomMonitorSession19ThisAppIsNotExitingEi @ 8 NONAME
+	_ZN18ROomMonitorSession23CancelRequestFreeMemoryEv @ 9 NONAME
+	_ZN18ROomMonitorSession7ConnectEv @ 10 NONAME
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oomwatcher/group/bld.inf	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,33 @@
+/*
+* 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:
+*
+*/
+
+PRJ_PLATFORMS
+
+	DEFAULT
+
+PRJ_TESTEXPORTS
+
+
+PRJ_EXPORTS
+
+
+PRJ_TESTMMPFILES
+
+	ut_oomwatcher.mmp
+	ut_mockoomserver.mmp
+
+//  End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oomwatcher/group/ut_mockoomserver.mmp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,48 @@
+/*
+* 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:  Project definition file
+*
+*/
+
+macro CLIENT_REQUEST_QUEUE
+#define CLIENT_REQUEST_QUEUE
+macro FCC_UNIT_TEST
+#define FCC_UNIT_TEST
+
+TARGET		  ut_mockoomserver.exe
+TARGETTYPE	  exe
+UID			 0 0xA89FA86D
+
+USERINCLUDE     ../inc
+USERINCLUDE     ../../../inc
+
+OS_LAYER_SYSTEMINCLUDE
+MW_LAYER_SYSTEMINCLUDE
+
+SOURCEPATH	  ../src
+SOURCE		  ut_mockoomserver.cpp
+SOURCE		  ut_mockoommonitor.cpp
+SOURCE		  ut_mockoomclientrequestqueue.cpp
+SOURCEPATH	  ../../../src
+SOURCE		  oommemorymonitorserver.cpp
+SOURCE		  oommemorymonitorsession.cpp
+SOURCE		  oommonitor.cpp
+
+LIBRARY		  euser.lib
+LIBRARY		  ws32.lib
+LIBRARY		  ecom.lib
+
+#ifdef ENABLE_ABIV2_MODE
+DEBUGGABLE_UDEBONLY
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oomwatcher/group/ut_oomwatcher.mmp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,61 @@
+/*TYPE STIFUNIT*/
+/*
+* 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: MMP file for STIF Test Framework's STIFUnit test module.
+*
+*/
+
+#include <platform_paths.hrh>
+
+macro FCC_UNIT_TEST
+#define FCC_UNIT_TEST
+
+SMPSAFE
+
+TARGET          ut_oomwatcher.dll
+TARGETTYPE      dll
+UID             0x1000008D 0x101FB3E7
+
+CAPABILITY      ALL -TCB
+/* Remove comments and replace 0x00000000 with correct vendor id */
+// VENDORID     0x00000000
+/* Remove comments and replace 0x00000000 with correct secure id */
+// SECUREID     0x00000000
+
+//TARGETPATH      ?target_path
+DEFFILE         ut_oomwatcher.def
+
+USERINCLUDE     ../inc
+USERINCLUDE     ../../../inc
+
+OS_LAYER_SYSTEMINCLUDE
+MW_LAYER_SYSTEMINCLUDE
+
+SOURCEPATH      ../src
+SOURCE          ut_oomwatcher.cpp
+SOURCE          ut_oomwatchercases.cpp
+SOURCE          ut_mockoommonitor.cpp
+
+SOURCEPATH      ../../../src
+SOURCE          oomoutofmemorywatcher.cpp
+SOURCE          oommonitorsession.cpp
+SOURCE          oompanic.cpp
+
+LIBRARY         euser.lib
+LIBRARY         stiftestinterface.lib
+LIBRARY         ws32.lib
+LIBRARY         hal.lib
+LIBRARY         cone.lib
+
+LANG            SC
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oomwatcher/group/ut_oomwatcher.pkg	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,60 @@
+;
+; 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:
+;
+; 	Installation file for STIF
+;
+
+; Languages
+&EN
+
+; Provide value for uid
+#{"STIF"},(0x00000000),1,1,0,TYPE=SA
+
+; Series60 product id for S60 3.0
+[0x101F7961], 0, 0, 0, {"Series60ProductID"}
+
+; Localised Vendor name
+%{"Nokia"}
+
+; Unique Vendor name
+:"Nokia"
+
+; Logo
+; None
+
+; Package signature - Optional
+; None
+
+; Start of Package body
+
+; Condition blocks
+; None
+
+; Options list
+; None
+
+; Install files
+"\epoc32\release\armv5\udeb\ut_oomwatcher.dll"   -   "!:\Sys\Bin\ut_oomwatcher.dll"
+  
+; Embedded SIS 
+; None
+
+; End of Package body
+
+; PKG dependencies
+; None
+
+; PKG capabilities
+; None
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oomwatcher/inc/ut_mockoomserver.h	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,30 @@
+/*
+* 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:  Mock oom server entry
+*
+*/
+
+#ifndef UT_MOCKOOMSERVER_H
+#define UT_MOCKOOMSERVER_H
+
+//  Include Files
+
+#include <e32base.h>
+
+//  Function Prototypes
+
+GLDEF_C TInt E32Main();
+
+#endif  // UT_MOCKOOMSERVER_H
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oomwatcher/inc/ut_oomwatchercommon.h	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,38 @@
+/*
+* 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: Common variables used in COutOfMemoryWatcher testing
+*
+*/
+
+#ifndef UT_OOMWATCHERCOMMON_H
+#define UT_OOMWATCHERCOMMON_H
+
+#include <e32base.h> 
+
+_LIT_SECURITY_POLICY_PASS(KAllowAllPolicy);
+const TInt KOomTestWatcherPropertyValue = 11;
+const TUid KOomWatcherTestProperty = { 0x10000000 };
+const TUint32 KOomWatcherTestKey = 0x00000001;
+const TUid KOomServerTestProperty = { 0x10000001 };
+const TUint32 KOomServerTestKey = 0x00000001;
+const TInt KOomTestInitialValue = 0;
+const TInt KOomTestClientQueueFreeMemoryCalled = 100;
+const TInt KOomTestClientQueueOptionalRamCalled = KOomTestClientQueueFreeMemoryCalled+1;
+const TInt KOomTestMonitorAppNotExitingCalled = 200;
+const TInt KOomTestMonitorSetPriorityBusyCalled = KOomTestMonitorAppNotExitingCalled+1;
+const TInt KOomTestMonitorSetPriorityNormalCalled = KOomTestMonitorAppNotExitingCalled+2;
+const TInt KOomTestMonitorSetPriorityHighCalled = KOomTestMonitorAppNotExitingCalled+3;
+
+
+#endif /* UT_OOMWATCHERCOMMON_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oomwatcher/src/ut_mockoomclientrequestqueue.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,161 @@
+/*
+* 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: Mock COomClientRequestQueue implementation for unit test
+*
+*/
+
+#include "oomclientrequestqueue.h"
+#include "ut_oomwatchercommon.h"
+//#include "OomTraces.h"
+//#include "oomsubscribehelper.h"
+//#include "oompanic.h"
+//#include "oommemorymonitor.h"
+//#include <UikonInternalPSKeys.h>
+//
+//const TInt KOomWatchDogStatusIdle = -1;
+//const TInt KClientTimeToFreeMemory = 500000; //microseconds
+
+COomClientRequestQueue::COomClientRequestQueue(CMemoryMonitor& aMonitor)
+    :iQueue(_FOFF(TClientRequest,iLink)),
+    iMonitor(aMonitor)
+    {
+
+    }
+
+COomClientRequestQueue::~COomClientRequestQueue()
+    {
+    TClientRequest* request;
+    TSglQueIter<TClientRequest> iter(iQueue);
+    iter.SetToFirst(); 
+    while (iter)
+        {
+        request = iter++;
+        iQueue.Remove(*request);
+        delete request;
+        };
+    }
+
+COomClientRequestQueue* COomClientRequestQueue::NewL(CMemoryMonitor& aMonitor)
+    {
+    COomClientRequestQueue* self = new (ELeave) COomClientRequestQueue(aMonitor);
+    CleanupStack::PushL(self);
+    self->ConstructL();
+    CleanupStack::Pop(self); 
+    return self;
+    }
+
+void COomClientRequestQueue::ConstructL()
+    {
+
+    }
+
+void COomClientRequestQueue::RequestFreeMemoryL(const RMessage2& aMessage)
+    {
+    // Create property for getting whether server has called correct method
+    RProperty testServerProperty;
+
+    testServerProperty.Attach(KOomServerTestProperty, KOomServerTestKey, EOwnerThread);
+    testServerProperty.Set(KOomTestClientQueueFreeMemoryCalled);
+    testServerProperty.Close();
+
+    aMessage.Complete(KErrNone);
+    }
+
+void COomClientRequestQueue::RequestOptionalRamL(const RMessage2& aMessage)
+    {
+    // Create property for getting whether server has called correct method
+    RProperty testServerProperty;
+
+    testServerProperty.Attach(KOomServerTestProperty, KOomServerTestKey, EOwnerThread);
+    testServerProperty.Set(KOomTestClientQueueOptionalRamCalled);
+    testServerProperty.Close();
+    
+    aMessage.Complete(KErrNone);
+    }
+
+TInt COomClientRequestQueue::WatchdogStatusStatusChanged(TAny* /*aPtr*/)
+    {
+    return KErrNone;
+    }
+
+void COomClientRequestQueue::HandleWatchdogStatusCallBack()
+    {
+
+    }
+
+// The new request is added to the queue, then we have the following conditions: 
+// 1. A client request is currently being processed
+// 2. The last client request completed less than KClientTimeToFreeMemory microseconds ago -> start the timer
+// 3. The timer has already been started
+// 4. none of the above -> process this request
+void COomClientRequestQueue::AddClientRequestL(TClientRequest& /*request*/)
+    {
+
+    }
+
+void COomClientRequestQueue::StartClientRequestL()
+    {    
+
+    }
+
+CMemoryMonitor& COomClientRequestQueue::Monitor()
+    {
+    return iMonitor;
+    }
+
+TClientRequest::TClientRequest(TActionTriggerType aClientRequestType, TInt aBytesRequested)    
+    : iClientRequestType(aClientRequestType), iBytesRequested(aBytesRequested)   
+    {
+
+    }
+
+TClientRequest::TClientRequest(TActionTriggerType aClientRequestType, const RMessage2& aRequestFreeRam)    
+    : iClientRequestType(aClientRequestType), iRequestFreeRamMessage(aRequestFreeRam)
+    {
+    iBytesRequested = aRequestFreeRam.Int0();
+    }
+
+void COomClientRequestQueue::ActionsCompleted(TInt /*aBytesFree*/, TBool /*aMemoryGood*/)
+    {
+
+    }
+
+void COomClientRequestQueue::RequestTimerCallbackL()
+    {
+
+    }
+
+COomClientRequestTimer* COomClientRequestTimer::NewL(COomClientRequestQueue& aQueue)
+    {
+    COomClientRequestTimer* self = new (ELeave) COomClientRequestTimer(aQueue);
+    CleanupStack::PushL(self);
+    self->ConstructL();
+    CleanupStack::Pop(self);
+    return self;
+    }
+
+COomClientRequestTimer::COomClientRequestTimer(COomClientRequestQueue& aQueue)
+: CTimer(CActive::EPriorityStandard), iClientRequestQueue(aQueue)
+    {
+    CActiveScheduler::Add(this);
+    }
+
+
+void COomClientRequestTimer::RunL()
+    {
+    iClientRequestQueue.RequestTimerCallbackL();
+    }
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oomwatcher/src/ut_mockoommonitor.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,229 @@
+/*
+* 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: Mock CMemoryMonitor
+*
+*/
+
+#include "ut_oomwatchercommon.h"
+#include "oommemorymonitor.h"
+#include "oomclientrequestqueue.h"
+#include "oommemorymonitorserver.h"
+#include <e32property.h>
+
+
+
+// ======================================================================
+// class CMemoryMonitor
+// ======================================================================
+
+// ---------------------------------------------------------
+//
+// ---------------------------------------------------------
+//
+CMemoryMonitor* CMemoryMonitor::NewL()
+    { // static
+    CMemoryMonitor* self = new(ELeave) CMemoryMonitor();
+    CleanupStack::PushL(self);
+    self->ConstructL();
+    CleanupStack::Pop(self);
+    return self;
+    }
+
+CMemoryMonitor::CMemoryMonitor()
+    {
+
+    }
+
+// ---------------------------------------------------------
+//
+// ---------------------------------------------------------
+//
+CMemoryMonitor::~CMemoryMonitor()
+    {
+#ifdef CLIENT_REQUEST_QUEUE
+    delete iServer;
+
+    delete iQueue;
+#endif
+    }
+
+// ---------------------------------------------------------
+//
+// ---------------------------------------------------------
+//
+void CMemoryMonitor::ConstructL()
+    {
+#ifdef CLIENT_REQUEST_QUEUE
+    iQueue = COomClientRequestQueue::NewL(*this);
+    
+    iServer = CMemoryMonitorServer::NewL(*iQueue);
+#endif
+    }
+
+const COomGlobalConfig& CMemoryMonitor::GlobalConfig()
+    {
+    COomGlobalConfig* MyConfig=NULL; 
+    return *MyConfig;
+    }
+
+
+// ---------------------------------------------------------
+//
+// ---------------------------------------------------------
+//
+void CMemoryMonitor::FreeMemThresholdCrossedL()
+    {
+    // Create property for getting whether watcher has called correct method
+    RProperty testWatcherProperty;
+
+    User::LeaveIfError(testWatcherProperty.Attach(KOomWatcherTestProperty, KOomWatcherTestKey, EOwnerThread));
+    CleanupClosePushL(testWatcherProperty);
+    User::LeaveIfError(testWatcherProperty.Set(KOomTestWatcherPropertyValue));
+    CleanupStack::PopAndDestroy();
+
+    CActiveScheduler::Stop();
+    }
+
+void CMemoryMonitor::HandleFocusedWgChangeL()
+    {
+    }
+
+void CMemoryMonitor::StartFreeSomeRamL(TInt /*aFreeRamTarget*/, TInt /*aFreeSwapTarget*/)
+    {
+
+    }
+
+void CMemoryMonitor::StartFreeSomeRamL(TInt /*aFreeRamTarget*/, TInt /*aFreeSwapTarget*/, TInt /*aMaxPriority*/) // The maximum priority of action to run
+    {
+
+    
+    // Build the list of memory freeing actions
+
+    }
+
+void CMemoryMonitor::RequestFreeMemoryPandSL(TInt /*aBytesRequested*/)
+    {
+
+    }
+
+void CMemoryMonitor::RequestFreeMemoryL(TInt /*aBytesRequested*/, TBool /*aDataPaged*/)
+    {
+
+    }
+
+void CMemoryMonitor::FreeOptionalRamL(TInt /*aBytesRequested*/, TInt /*aPluginId*/, TBool /*aDataPaged*/) // The ID of the plugin that will clear up the allocation, used to determine the priority of the allocation
+    {
+
+    }
+
+void CMemoryMonitor::GetFreeMemory(TInt& /*aCurrentFreeMemory*/)
+    {
+
+    }
+
+void CMemoryMonitor::GetFreeSwapSpace(TInt& /*aCurrentFreeSwapSpace*/)
+    {
+
+    }
+
+#ifndef CLIENT_REQUEST_QUEUE 
+TInt CMemoryMonitor::WatchdogStatusStatusChanged(TAny* /*aPtr*/)
+    {
+    return KErrNone;
+    }
+
+void CMemoryMonitor::HandleWatchdogStatusCallBack()
+    {
+
+    }
+#endif //CLIENT_REQUEST_QUEUE
+
+void CMemoryMonitor::AppNotExiting(TInt /*aWgId*/)
+    {
+    // Create property for getting whether server has called correct method
+    RProperty testServerProperty;
+
+    testServerProperty.Attach(KOomServerTestProperty, KOomServerTestKey, EOwnerThread);
+    testServerProperty.Set(KOomTestMonitorAppNotExitingCalled);
+    testServerProperty.Close();
+    }
+
+
+void CMemoryMonitor::RefreshThresholds()
+    {
+
+    }
+
+// SetMemoryMonitorStatusProperty - updates the property value only if it has changed
+void CMemoryMonitor::SetMemoryMonitorStatusProperty(const TMemoryMonitorStatusPropertyValues /*aValue*/)
+    {
+
+    }
+
+void CMemoryMonitor::ResetTargets()
+    {
+
+    }
+
+void CMemoryMonitor::SetPriorityBusy(TInt /*aWgId*/)
+    {
+    // Create property for getting whether server has called correct method
+    RProperty testServerProperty;
+
+    testServerProperty.Attach(KOomServerTestProperty, KOomServerTestKey, EOwnerThread);
+    testServerProperty.Set(KOomTestMonitorSetPriorityBusyCalled);
+    testServerProperty.Close();
+    }
+
+void CMemoryMonitor::SetPriorityNormal(TInt /*aWgId*/)
+    {
+    // Create property for getting whether server has called correct method
+    RProperty testServerProperty;
+
+    testServerProperty.Attach(KOomServerTestProperty, KOomServerTestKey, EOwnerThread);
+    testServerProperty.Set(KOomTestMonitorSetPriorityNormalCalled);
+    testServerProperty.Close();
+    }
+
+void CMemoryMonitor::SetPriorityHigh(TInt /*aWgId*/)
+    {
+    // Create property for getting whether server has called correct method
+    RProperty testServerProperty;
+
+    testServerProperty.Attach(KOomServerTestProperty, KOomServerTestKey, EOwnerThread);
+    testServerProperty.Set(KOomTestMonitorSetPriorityHighCalled);
+    testServerProperty.Close();
+    }
+
+TActionTriggerType CMemoryMonitor::ActionTrigger() const
+    {
+    return iActionTrigger;
+    }
+
+#ifdef CLIENT_REQUEST_QUEUE 
+TInt CMemoryMonitor::GoodRamThreshold() const
+    {
+    return 0;
+    }
+
+TInt CMemoryMonitor::LowRamThreshold() const
+    {
+    return 0;
+    }
+
+void CMemoryMonitor::ActionsCompleted(TInt /*aBytesFree*/, TBool /*aMemoryGood*/)
+    {
+
+    }
+#endif //CLIENT_REQUEST_QUEUE
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oomwatcher/src/ut_mockoomserver.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,90 @@
+/*
+* 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:  Mock oom server entry
+*
+*/
+//  Include Files  
+
+#include "ut_mockoomserver.h"
+#include "oommemorymonitor.h"
+#include <e32base.h>
+#include <e32std.h>
+#include <e32cons.h>			// Console
+
+//  Constants
+
+_LIT(KTextConsoleTitle, "Console");
+_LIT(KTextFailed, " failed, leave code = %d");
+_LIT(KTextPressAnyKey, " [press any key]\n");
+
+//  Global Variables
+
+LOCAL_D CConsoleBase* console; // write all messages to this
+
+
+//  Local Functions
+
+LOCAL_C void MainL()
+    {
+    CMemoryMonitor* monitor = CMemoryMonitor::NewL();
+    CleanupStack::PushL(monitor);
+    RProcess::Rendezvous(KErrNone);
+    CActiveScheduler::Start();
+    
+    CleanupStack::PopAndDestroy(monitor);
+    }
+
+LOCAL_C void DoStartL()
+    {
+    // Create active scheduler (to run active objects)
+    CActiveScheduler* scheduler = new (ELeave) CActiveScheduler();
+    CleanupStack::PushL(scheduler);
+    CActiveScheduler::Install(scheduler);
+
+    MainL();
+
+    // Delete active scheduler
+    CleanupStack::PopAndDestroy(scheduler);
+    }
+
+//  Global Functions
+
+GLDEF_C TInt E32Main()
+    {
+    // Create cleanup stack
+    __UHEAP_MARK;
+    CTrapCleanup* cleanup = CTrapCleanup::New();
+
+    // Create output console
+    TRAPD(createError, console = Console::NewL(KTextConsoleTitle, TSize(
+            KConsFullScreen, KConsFullScreen)));
+    if (createError)
+        {
+        delete cleanup;
+        return createError;
+        }
+
+    // Run application code inside TRAP harness, wait keypress when terminated
+    TRAPD(mainError, DoStartL());
+    if (mainError)
+        console->Printf(KTextFailed, mainError);
+    console->Printf(KTextPressAnyKey);
+    console->Getch();
+
+    delete console;
+    delete cleanup;
+    __UHEAP_MARKEND;
+    return KErrNone;
+    }
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oomwatcher/src/ut_oomwatcher.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,125 @@
+/*
+* 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: This file contains STIFUnit module implementation.
+*
+*/
+
+/******************************************************************************/
+/*
+ *
+ * Test module configuration 
+*/
+
+// Version
+#define TEST_MODULE_VERSION_MAJOR 0
+#define TEST_MODULE_VERSION_MINOR 0
+#define TEST_MODULE_VERSION_BUILD 0
+
+// Uncomment following defines, if you want to provide implementation
+// of enlisted virtual methods of test module.
+// Implementation part is located at the end of this file.
+//#define STIFUNIT_OOMTESTQUERYL
+//#define STIFUNIT_OOMTESTINITIALIZEL
+//#define STIFUNIT_OOMHANDLEWARNINGL
+//#define STIFUNIT_OOMTESTFINALIZEL
+// Uncomment following define, if you want to increase heap or stack size.
+// #define STIFUNIT_SETHEAPANDSTACKSIZE
+/******************************************************************************/
+
+
+/*
+ * Test module internals. Please do not edit them. 
+*/
+
+// Includes
+#include <e32base.h>
+
+// Literals
+_LIT( KUnitLogPath, "\\logs\\testframework\\ut_oomwatcher\\" ); 
+_LIT( KUnitLogFile, "ut_oomwatcher.txt" ); 
+_LIT( KLogStart, "ut_oomwatcher logging starts!" );
+
+// Defines
+#define STIF_UNIT_TEST_CASES "../src/ut_oomwatchercases.cpp"
+#define STIF_UNIT_MODULE_CLASS_NAME Cut_oomwatcher
+#define STIF_UNIT_MODULE_NAME _L("ut_oomwatcher.dll")
+
+// Include STIF unit generic file
+#include <StifUnitGeneric.h>
+
+/*
+ * Implementation of setHeapAndStack virtual methods.
+ * To changes heap and stack size provide new values to iTestThreadStackSize, iTestThreadMinHeap and iTestThreadMaxHeap. 
+*/
+
+#ifdef STIFUNIT_SETHEAPANDSTACKSIZE
+EXPORT_C TInt SetRequirements( CTestModuleParam*& aTestModuleParam, 
+                               TUint32& aParameterValid )
+    {
+    aParameterValid = KStifTestModuleParameterChanged;
+    CTestModuleParamVer01* param;
+    TRAPD(err, param = CTestModuleParamVer01::NewL()); 
+    // Stack size 
+    param->iTestThreadStackSize= 16384; // 16K stack 
+    // Heap sizes 
+    param->iTestThreadMinHeap = 4096; // 4K heap min 
+    param->iTestThreadMaxHeap = 1048576;// 1M heap max 
+
+    return KErrNone;
+    }
+#undef STIFUNIT_SETHEAPANDSTACKSIZE
+#endif
+
+/*
+ * User implementation of OOM virtual methods.
+ * Providing own implementation requires uncommenting defines at the
+ * beginnig of this file.   
+*/
+#ifdef STIFUNIT_OOMTESTQUERYL
+TBool Cut_oomwatcher::OOMTestQueryL( const TFileName& /*aTestCaseFile*/, 
+                                   const TInt aCaseNumber, 
+                                   TOOMFailureType& aFailureType, 
+                                   TInt& aFirstMemFailure, 
+                                   TInt& aLastMemFailure)
+    {
+    }
+#undef STIFUNIT_OOMTESTQUERYL
+#endif
+
+#ifdef STIFUNIT_OOMTESTINITIALIZEL
+void Cut_oomwatcher::OOMTestInitializeL( const TFileName& /*aTestCaseFile*/, 
+                                       const TInt /*aCaseNumber*/ )
+    {
+    }
+#undef STIFUNIT_OOMTESTINITIALIZEL
+#endif
+
+#ifdef STIFUNIT_OOMHANDLEWARNINGL
+void Cut_oomwatcher::OOMHandleWarningL( const TFileName& /*aTestCaseFile*/,
+                                      const TInt /*aCaseNumber*/, 
+                                      TInt& /*aFailNextValue*/)
+    {
+    }
+#undef STIFUNIT_OOMHANDLEWARNINGL
+#endif
+    
+#ifdef STIFUNIT_OOMTESTFINALIZEL
+void Cut_oomwatcher::OOMTestFinalizeL( const TFileName& /*aTestCaseFile*/, 
+                                     const TInt /*aCaseNumber*/ )
+    {
+    }
+#undef STIFUNIT_OOMTESTFINALIZEL
+#endif
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/ut_oomwatcher/src/ut_oomwatchercases.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,390 @@
+/*
+* 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: This file contains STIFUnit implementation.
+*
+*/
+
+/**
+ * STIF_UNIT_INCLUDE SECTION - put all #includes between STIF_UNIT_INCLUDE_SECTION
+ *                             and STIF_UNIT_INCLUDE_SECTION_END
+ */
+#ifdef STIF_UNIT_INCLUDE_SECTION
+#include "ut_oomwatchercommon.h"
+#include "oomoutofmemorywatcher.h"
+#include "oommemorymonitor.h"
+#include <oommonitorsession.h>
+#include "oompanic.h"
+
+#include <u32hal.h>
+#include <hal.h>
+#include <e32property.h>
+
+#endif //STIF_UNIT_INCLUDE_SECTION_END
+
+/**
+ * GLOBAL VARIABLES SECTION
+ */
+#ifdef TEST_VAR_DECLARATIONS
+CActiveScheduler* scheduler;
+	 
+#endif
+/**
+ * END OF GLOBAL VARIABLES SECTION
+ */
+
+
+/**
+ * TEST CASES SECTION
+ */
+#ifdef TEST_CASES
+/**
+ * STIF_SETUP defines activities needed before every test case.
+ */
+STIF_SETUP
+{
+    // Install active scheduler at start up
+    scheduler = new (ELeave) CActiveScheduler();
+    CleanupStack::PushL(scheduler);
+    CActiveScheduler::Install(scheduler);
+}
+
+/**
+ * STIF_TEARDOWN defines activities needed after every test case
+ */
+STIF_TEARDOWN
+{
+    // Delete active scheduler at last
+    CActiveScheduler::Install(NULL);
+    CleanupStack::PopAndDestroy(scheduler);
+}
+
+/**
+ * @SYMTestCaseID              GAPS-OOM-WATCHER-001
+ * @SYMTestCaseDesc            Watch when memory is lower then threshold
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1) Create COutOfMemoryWatcher object, set memory threshold in constructor
+ *                             2) Occupy memory so that free memory is below memory threshold
+ * @SYMTestExpectedResults     1) COutOfMemoryWatcher object created
+ *                             2) FreeMemThresholdCrossedL() is called       
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            20-07-2010
+ */
+STIF_TESTDEFINE(GAPS-OOM-WATCHER-001)
+{
+    const TInt KMemThresholdLow = 26214400;
+    const TInt KMemThresholdGood = 31457280; // low=25M good=30M
+    CMemoryMonitor* monitor = CMemoryMonitor::NewL();
+    CleanupStack::PushL(monitor);
+    COutOfMemoryWatcher* watcher = COutOfMemoryWatcher::NewL(*monitor, KMemThresholdLow, KMemThresholdGood, 
+                                                              ETrue, KMemThresholdLow, KMemThresholdGood);// low=25M good=30M
+    CleanupStack::PushL(watcher);
+    // Verify objects created
+    STIF_ASSERT_NOT_NULL(monitor);
+    STIF_ASSERT_NOT_NULL(watcher);
+    STIF_LOG("CMemoryMonitor and COutOfMemoryWatcher has been created successfully");
+    
+    // Start the watcher
+    watcher->Start();
+    
+    // Create property for getting whether watcher has called correct method
+    RProperty testWatcherProperty;
+    TInt error;
+    error = RProperty::Define(KOomWatcherTestProperty, KOomWatcherTestKey, RProperty::EInt, 
+                              KAllowAllPolicy, KAllowAllPolicy);
+    STIF_ASSERT_EQUALS(error, KErrNone);
+    error = testWatcherProperty.Attach(KOomWatcherTestProperty, KOomWatcherTestKey, EOwnerThread);
+    STIF_ASSERT_EQUALS(error, KErrNone);
+    CleanupClosePushL(testWatcherProperty);
+    STIF_LOG("Communication property created");
+    
+    // Occupy memory so that low mem is triggered
+    UserSvr::HalFunction(EHalGroupKernel, EKernelHalSupervisorBarrier, 0, 0);
+    TMemoryInfoV1Buf meminfo;
+    UserHal::MemoryInfo(meminfo);
+    TInt free = meminfo().iFreeRamInBytes;
+    TInt totalRam;
+    STIF_ASSERT_EQUALS(HAL::Get(HAL::EMemoryRAM, totalRam), KErrNone);
+    TChunkCreateInfo createInfo;
+    const TInt KChunkMaximumBelowFree = 20480*1024; // Chunk maximum = free - 20M
+    createInfo.SetNormal(0, free - KChunkMaximumBelowFree);
+    createInfo.SetPaging(TChunkCreateInfo::EUnpaged);
+    RChunk c;
+    error = c.Create(createInfo);
+    STIF_ASSERT_EQUALS(error, KErrNone);
+    CleanupClosePushL(c);
+    const TInt KBufferSpace = 22528*1024; // 22M buffer
+    STIF_LOG("Leave 22M RAM");
+    error = c.Adjust(free - KBufferSpace);  // leave 22M
+    STIF_ASSERT_EQUALS(error, KErrNone);
+    STIF_LOG("Memory occupied");
+    
+    CActiveScheduler::Start();
+    TInt propValue;
+    error = testWatcherProperty.Get(propValue);
+    STIF_ASSERT_EQUALS(error, KErrNone);
+    STIF_ASSERT_EQUALS(propValue, KOomTestWatcherPropertyValue); // Same with set in ut_mockoommonitor.cpp
+    STIF_LOG("Memory low handling function has been called correctly");
+
+    // Cleanup
+    CleanupStack::PopAndDestroy(4);
+    error = RProperty::Delete(KOomWatcherTestProperty, KOomWatcherTestKey);
+    STIF_ASSERT_EQUALS(error, KErrNone);
+}
+
+/**
+ * @SYMTestCaseID              GAPS-OOM-WATCHER-002
+ * @SYMTestCaseDesc            Watch when swap memory is lower then threshold
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1) Create COutOfMemoryWatcher object
+ *                             2) Set swap memory threshold with UpdateThresholds, 
+ *                                the value is larger than maximum swap memory space
+ * @SYMTestExpectedResults     1) COutOfMemoryWatcher object created
+ *                             2) FreeMemThresholdCrossedL() is called                      
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            20-07-2010
+ */
+STIF_TESTDEFINE(GAPS-OOM-WATCHER-002)
+{
+    const TInt KMemThresholdLow = 26214400;
+    const TInt KMemThresholdGood = 31457280; // low=25M good=30M
+    CMemoryMonitor* monitor = CMemoryMonitor::NewL();
+    CleanupStack::PushL(monitor);
+    COutOfMemoryWatcher* watcher = COutOfMemoryWatcher::NewL(*monitor, KMemThresholdLow, KMemThresholdGood, ETrue, KMemThresholdLow, KMemThresholdGood);// low=25M good=30M
+    CleanupStack::PushL(watcher);
+    // Verify objects created
+    STIF_ASSERT_NOT_NULL(monitor);
+    STIF_ASSERT_NOT_NULL(watcher);
+    STIF_LOG("CMemoryMonitor and COutOfMemoryWatcher has been created successfully");
+    
+    // Start the watcher
+    watcher->Start();
+    
+    // Create property for getting whether watcher has called correct method
+    RProperty testWatcherProperty;
+    TInt error;
+    error = RProperty::Define(KOomWatcherTestProperty, KOomWatcherTestKey, RProperty::EInt, 
+                              KAllowAllPolicy, KAllowAllPolicy);
+    STIF_ASSERT_EQUALS(error, KErrNone);
+    error = testWatcherProperty.Attach(KOomWatcherTestProperty, KOomWatcherTestKey, EOwnerThread);
+    STIF_ASSERT_EQUALS(error, KErrNone);
+    CleanupClosePushL(testWatcherProperty);
+    STIF_LOG("Communication property created");
+    
+    // Change swap memory target to lower then swap memory, so that low mem is triggered
+    // Get swap info
+    SVMSwapInfo swapInfo;
+    error = UserSvr::HalFunction(EHalGroupVM, EVMHalGetSwapInfo, &swapInfo, 0);
+    STIF_ASSERT_EQUALS(error, KErrNone);
+    // Set swap threshold
+    watcher->UpdateThresholds(KMemThresholdLow, KMemThresholdGood, swapInfo.iSwapSize, swapInfo.iSwapSize);
+    STIF_LOG("Swap memory threshold changed");
+    
+    CActiveScheduler::Start();
+    TInt propValue;
+    error = testWatcherProperty.Get(propValue);
+    STIF_ASSERT_EQUALS(error, KErrNone);
+    STIF_ASSERT_EQUALS(propValue, KOomTestWatcherPropertyValue); // Same with set in ut_mockoommonitor.cpp
+    STIF_LOG("Swap memory low handling function has been called correctly");
+
+    // Cleanup
+    CleanupStack::PopAndDestroy(3);
+    error = RProperty::Delete(KOomWatcherTestProperty, KOomWatcherTestKey);
+    STIF_ASSERT_EQUALS(error, KErrNone);
+}
+
+/**
+ * @SYMTestCaseID              GAPS-OOM-SERVER-001
+ * @SYMTestCaseDesc            Test calling functions via client-server
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1) Start server in another process
+ *                             2) Create and connect to ROomMonitorSession
+ *                             3) Call ROomMonitorSession::RequestFreeMemory() function
+ *                             4) Call ROomMonitorSession::RequestOptionalRam() function
+ *                             5) Call ROomMonitorSession::CancelRequestFreeMemory() function
+ *                             6) Call ROomMonitorSession::ThisAppIsNotExiting() function
+ * @SYMTestExpectedResults     1) Server started
+ *                             2) ROomMonitorSession connects to server successfully
+ *                             3) RequestFreeMemoryL() function at server side is called
+ *                             4) RequestOptionalRamL() function at server side is called
+ *                             5) The cancel request is handled by ServiceL() function at server side
+ *                             6) AppNotExiting() function at server side is called
+ * @SYMTestExpectedResults     
+ *                             
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            20-07-2010
+ */
+STIF_TESTDEFINE(GAPS-OOM-SERVER-001)
+{
+    // Start the mock server
+    _LIT(KServerName, "ut_mockoomserver.exe");
+    RProcess process;
+    TInt error = process.Create(KServerName, KNullDesC);
+    STIF_ASSERT_EQUALS(error, KErrNone);
+    CleanupClosePushL(process);
+    TRequestStatus status;
+    process.Rendezvous(status);
+    process.Resume();
+    User::WaitForRequest(status);
+    STIF_ASSERT_EQUALS(status.Int(), KErrNone);
+    STIF_LOG("Mock test server has been started");
+
+    // Create property for getting whether server has called correct method
+    RProperty testServerProperty;
+    error = RProperty::Define(KOomServerTestProperty, KOomServerTestKey, RProperty::EInt, 
+                              KAllowAllPolicy, KAllowAllPolicy);
+    STIF_ASSERT_EQUALS(error, KErrNone);
+    error = testServerProperty.Attach(KOomServerTestProperty, KOomServerTestKey, EOwnerThread);
+    STIF_ASSERT_EQUALS(error, KErrNone);
+    CleanupClosePushL(testServerProperty);
+    STIF_LOG("Communication property created");
+
+    // Connect to ROomMonitorSession
+    ROomMonitorSession monitorSession;
+    error = monitorSession.Connect();
+    STIF_ASSERT_EQUALS(error, KErrNone);
+    CleanupClosePushL(monitorSession);
+    STIF_LOG("ROomMonitorSession has connected to server successfully");
+    
+    // Test ROomMonitorSession::RequestFreeMemory() function (2 overloaded versions)
+    monitorSession.RequestFreeMemory(0);
+    // The function shall already be called at this time, and the property shall already get set
+    TInt propValue = KOomTestInitialValue;
+    error = testServerProperty.Get(propValue);
+    STIF_ASSERT_EQUALS(error, KErrNone);
+    STIF_ASSERT_EQUALS(propValue, KOomTestClientQueueFreeMemoryCalled); // Same with set in ut_mockoomclientrequestqueue.cpp
+    STIF_LOG("RequestFreeMemory() sync version has been called correctly");
+    // Set the property to initial value before next call
+    error = testServerProperty.Set(KOomTestInitialValue);
+    STIF_ASSERT_EQUALS(error, KErrNone);
+    propValue = KOomTestInitialValue;
+    
+    monitorSession.RequestFreeMemory(0, status);
+    User::WaitForRequest(status);
+    // The function shall already be called at this time, and the property shall already get set
+    error = testServerProperty.Get(propValue);
+    STIF_ASSERT_EQUALS(error, KErrNone);
+    STIF_ASSERT_EQUALS(propValue, KOomTestClientQueueFreeMemoryCalled); // Same with set in ut_mockoomclientrequestqueue.cpp
+    STIF_LOG("RequestFreeMemory() async version has been called correctly"); 
+    // Set the property to initial value before next call
+    error = testServerProperty.Set(KOomTestInitialValue);
+    STIF_ASSERT_EQUALS(error, KErrNone);
+    propValue = KOomTestInitialValue;
+
+    // Test ROomMonitorSession::RequestOptionalRam() function (2 overloaded versions)
+    TInt bytesAvailable;
+    monitorSession.RequestOptionalRam(0, 0, 0, bytesAvailable);
+    // The function shall already be called at this time, and the property shall already get set
+    error = testServerProperty.Get(propValue);
+    STIF_ASSERT_EQUALS(error, KErrNone);
+    STIF_ASSERT_EQUALS(propValue, KOomTestClientQueueOptionalRamCalled); // Same with set in ut_mockoomclientrequestqueue.cpp
+    STIF_LOG("RequestOptionalRam() sync version has been called correctly"); 
+    // Set the property to initial value before next call
+    error = testServerProperty.Set(KOomTestInitialValue);
+    STIF_ASSERT_EQUALS(error, KErrNone);
+    propValue = KOomTestInitialValue;
+    
+    monitorSession.RequestOptionalRam(0, 0, 0, status);
+    User::WaitForRequest(status);
+    // The function shall already be called at this time, and the property shall already get set
+    error = testServerProperty.Get(propValue);
+    STIF_ASSERT_EQUALS(error, KErrNone);
+    STIF_ASSERT_EQUALS(propValue, KOomTestClientQueueOptionalRamCalled); // Same with set in ut_mockoomclientrequestqueue.cpp
+    STIF_LOG("RequestOptionalRam() async version has been called correctly"); 
+    // Set the property to initial value before next call
+    error = testServerProperty.Set(KOomTestInitialValue);
+    STIF_ASSERT_EQUALS(error, KErrNone);
+    propValue = KOomTestInitialValue;
+
+    // Test ROomMonitorSession::CancelRequestFreeMemory()
+    monitorSession.CancelRequestFreeMemory();
+    // No verification is needed as this function only returns success
+    STIF_LOG("CancelRequestFreeMemory() has been called correctly"); 
+    
+    // Test ROomMonitorSession::ThisAppIsNotExiting() function 
+    monitorSession.ThisAppIsNotExiting(0);
+    // The function shall already be called at this time, and the property shall already get set
+    error = testServerProperty.Get(propValue);
+    STIF_ASSERT_EQUALS(error, KErrNone);
+    STIF_ASSERT_EQUALS(propValue, KOomTestMonitorAppNotExitingCalled); // Same with set in ut_mockoommonitor.cpp
+    STIF_LOG("ThisAppIsNotExiting() has been called correctly"); 
+    // Set the property to initial value before next call
+    error = testServerProperty.Set(KOomTestInitialValue);
+    STIF_ASSERT_EQUALS(error, KErrNone);
+    propValue = KOomTestInitialValue;
+
+    // The test is done, close the app
+    process.Kill(KErrNone);
+    // Cleanup
+    CleanupStack::PopAndDestroy(3);
+    error = RProperty::Delete(KOomServerTestProperty, KOomServerTestKey);
+    STIF_ASSERT_EQUALS(error, KErrNone);
+}
+
+/**
+ * @SYMTestCaseID              GAPS-OOM-SERVER-002
+ * @SYMTestCaseDesc            Test calling SetOomPriority functions via client-server
+ * @SYMTestPriority            Medium
+ * @SYMTestActions             1) Start server in another process
+ *                             2) Create and connect to ROomMonitorSession
+ *                             3) Call ROomMonitorSession::SetOomPriority() function
+ * @SYMTestExpectedResults     1) Server started
+ *                             2) ROomMonitorSession connects to server successfully
+ *                             3) The request is handled by ServiceL() function at server side
+ * @SYMTestType                Unit Test
+ * @SYMCreationDate            20-07-2010
+ */
+STIF_TESTDEFINE(GAPS-OOM-SERVER-002)
+{
+    // Start the mock server
+    _LIT(KServerName, "ut_mockoomserver.exe");
+    RProcess process;
+    TInt error = process.Create(KServerName, KNullDesC);
+    STIF_ASSERT_EQUALS(error, KErrNone);
+    CleanupClosePushL(process);
+    TRequestStatus status;
+    process.Rendezvous(status);
+    process.Resume();
+    User::WaitForRequest(status);
+    STIF_ASSERT_EQUALS(status.Int(), KErrNone);
+    STIF_LOG("Mock test server has been started");
+
+    // Connect to ROomMonitorSession
+    ROomMonitorSession monitorSession;
+    error = monitorSession.Connect();
+    STIF_ASSERT_EQUALS(error, KErrNone);
+    CleanupClosePushL(monitorSession);
+    STIF_LOG("ROomMonitorSession has connected to server successfully");
+
+#ifdef _DEBUG
+    TestModuleIf().SetExitReason(CTestModuleIf::EPanic, KNoCoeEnvFound);
+#endif
+    // Test ROomMonitorSession::SetOomPriority() function 
+    monitorSession.SetOomPriority(ROomMonitorSession::EOomPriorityNormal);
+    // No need to verify
+    STIF_LOG("SetOomPriority() has been called correctly"); 
+
+    // The test is done, close the app
+    process.Kill(KErrNone);
+    // Cleanup
+    CleanupStack::PopAndDestroy(2);
+    error = RProperty::Delete(KOomServerTestProperty, KOomServerTestKey);
+    STIF_ASSERT_EQUALS(error, KErrNone);
+}
+
+#endif
+/**
+ * END OF TEST CASES SECTION
+ */
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/utoomclientrequestqueue/.cproject	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,267 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?fileVersion 4.0.0?>
+
+<cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
+<storageModule buildFromInf="false" buildingTestComps="true" cleanLevel="0" concurrentBuildJobs="4" defaultMMPChangedAction="0" extraSBSv2Args="" infBuildComponents="utoomclientrequestqueue.mmp [test component];" infFileLocation="group\bld.inf" macrosFile="" makeEngineToUse="make" manageDependencies="true" moduleId="com.nokia.carbide.cdt.builder.carbideCPPBuilder" overrideMakeEngine="false" overrideWorkspaceSettings="false" promptForMMPChangedAction="true" useConcurrentBuilding="true" useDebugMode="false" useIncrementalBuilder="false" useKeepGoing="false" useMMPMacros="true"/>
+<storageModule moduleId="org.eclipse.cdt.core.settings">
+<cconfiguration id="Emulator Debug (winscw_udeb) [s60_wk50_dfs]">
+<storageModule buildSystemId="com.nokia.carbide.cdt.builder.CarbideConfigurationDataProvider" id="Emulator Debug (winscw_udeb) [s60_wk50_dfs]" moduleId="org.eclipse.cdt.core.settings" name="Emulator Debug (winscw_udeb) [s60_wk50_dfs]">
+<externalSettings/>
+<extensions>
+<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="org.eclipse.cdt.core.PE" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="com.nokia.cdt.debug.cw.symbian.SymbianE32" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MakmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.CarbideMakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.SBSv2ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MWLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RCOMPErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MWCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MakeDefErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+</extensions>
+</storageModule>
+<storageModule moduleId="CarbideConfigurationDataProvider">
+<ENV_VAR_DATA_ID/>
+<ARGUMENTS_DATA_ID ABLDFREEZEARGSSTORAGE="-r"/>
+<ROM_BUILDER_DATA_ID ROMBUILDWORKINGDIRECTORYSTORAGE="W:\epoc32\rom\"/>
+<SBSV2_DATA_ID CONFIG_BASE_PLATFORM="WINSCW" CONFIG_TARGET="UDEB" SBSV2_BUILD_ALIAS="winscw_udeb" SBSV2_CONFIG_DISPLAY_STRING="Emulator Debug (winscw_udeb) [s60_wk50_dfs]"/>
+</storageModule>
+<storageModule filesCache="W:\sf\mw\appsupport\sysresmonitoring\oommonitor\tsrc\utoomclientrequestqueue\group\utoomclientrequestqueue.mmp;W:\sf\mw\appsupport\sysresmonitoring\oommonitor\tsrc\utoomclientrequestqueue\group\bld.inf;W:\epoc32\include\platform_paths.hrh;" includesCache="W:/sf/mw/appsupport/sysresmonitoring/oommonitor/tsrc/utoomclientrequestqueue/inc[LOCAL];W:/sf/mw/appsupport/sysresmonitoring/oommonitor/inc[LOCAL];W:/epoc32/include;W:/epoc32/include/platform;W:/epoc32/include/platform/loc;W:/epoc32/include/platform/loc/sc;W:/epoc32/include/mw;W:/epoc32/include/platform/mw;W:/epoc32/include/platform/mw/loc;W:/epoc32/include/platform/mw/loc/sc;" macrosCache="__DLL__;_UNICODE;__SYMBIAN32__;__SUPPORT_CPP_EXCEPTIONS__;__CW32__;__WINS__;CLIENT_REQUEST_QUEUE;SBSV2;__WINSCW__;_DEBUG;" moduleId="configDataCache" sourcesCache="/oommonitor/inc;/oommonitor/src;/utoomclientrequestqueue/inc;/utoomclientrequestqueue/src;" timestampCache="1281350405965" useMmpMacrosCache="true"/>
+<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+<storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>
+<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
+</cconfiguration>
+<cconfiguration id="Emulator Release (winscw_urel) [s60_wk50_dfs]">
+<storageModule buildSystemId="com.nokia.carbide.cdt.builder.CarbideConfigurationDataProvider" id="Emulator Release (winscw_urel) [s60_wk50_dfs]" moduleId="org.eclipse.cdt.core.settings" name="Emulator Release (winscw_urel) [s60_wk50_dfs]">
+<externalSettings/>
+<extensions>
+<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="org.eclipse.cdt.core.PE" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="com.nokia.cdt.debug.cw.symbian.SymbianE32" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MakmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.CarbideMakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.SBSv2ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MWLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RCOMPErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MWCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MakeDefErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+</extensions>
+</storageModule>
+<storageModule moduleId="CarbideConfigurationDataProvider">
+<ENV_VAR_DATA_ID/>
+<ARGUMENTS_DATA_ID ABLDFREEZEARGSSTORAGE="-r"/>
+<ROM_BUILDER_DATA_ID ROMBUILDWORKINGDIRECTORYSTORAGE="W:\epoc32\rom\"/>
+<SBSV2_DATA_ID CONFIG_BASE_PLATFORM="WINSCW" CONFIG_TARGET="UREL" SBSV2_BUILD_ALIAS="winscw_urel" SBSV2_CONFIG_DISPLAY_STRING="Emulator Release (winscw_urel) [s60_wk50_dfs]"/>
+</storageModule>
+<storageModule filesCache="W:\sf\mw\appsupport\sysresmonitoring\oommonitor\tsrc\utoomclientrequestqueue\group\utoomclientrequestqueue.mmp;W:\sf\mw\appsupport\sysresmonitoring\oommonitor\tsrc\utoomclientrequestqueue\group\bld.inf;W:\epoc32\include\platform_paths.hrh;" includesCache="W:/sf/mw/appsupport/sysresmonitoring/oommonitor/tsrc/utoomclientrequestqueue/inc[LOCAL];W:/sf/mw/appsupport/sysresmonitoring/oommonitor/inc[LOCAL];W:/epoc32/include;W:/epoc32/include/platform;W:/epoc32/include/platform/loc;W:/epoc32/include/platform/loc/sc;W:/epoc32/include/mw;W:/epoc32/include/platform/mw;W:/epoc32/include/platform/mw/loc;W:/epoc32/include/platform/mw/loc/sc;" macrosCache="__DLL__;_UNICODE;__SYMBIAN32__;__SUPPORT_CPP_EXCEPTIONS__;__CW32__;NDEBUG;__WINS__;CLIENT_REQUEST_QUEUE;SBSV2;__WINSCW__;" moduleId="configDataCache" sourcesCache="/oommonitor/inc;/oommonitor/src;/utoomclientrequestqueue/inc;/utoomclientrequestqueue/src;" timestampCache="1281350406059" useMmpMacrosCache="true"/>
+<storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>
+<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
+<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+</cconfiguration>
+<cconfiguration id="Phone Debug (armv5_udeb) [s60_wk50_dfs]">
+<storageModule buildSystemId="com.nokia.carbide.cdt.builder.CarbideConfigurationDataProvider" id="Phone Debug (armv5_udeb) [s60_wk50_dfs]" moduleId="org.eclipse.cdt.core.settings" name="Phone Debug (armv5_udeb) [s60_wk50_dfs]">
+<externalSettings/>
+<extensions>
+<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="org.eclipse.cdt.core.PE" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="com.nokia.cdt.debug.cw.symbian.SymbianE32" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MakmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RVCTLinkerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.CarbideMakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.SBSv2ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.Elf2E32ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RCOMPErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MakeDefErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RVCTCompilerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+</extensions>
+</storageModule>
+<storageModule moduleId="CarbideConfigurationDataProvider">
+<ENV_VAR_DATA_ID/>
+<ARGUMENTS_DATA_ID ABLDFREEZEARGSSTORAGE="-r"/>
+<ROM_BUILDER_DATA_ID ROMBUILDWORKINGDIRECTORYSTORAGE="W:\epoc32\rom\"/>
+<SBSV2_DATA_ID CONFIG_BASE_PLATFORM="ARMV5" CONFIG_TARGET="UDEB" SBSV2_BUILD_ALIAS="armv5_udeb" SBSV2_CONFIG_DISPLAY_STRING="Phone Debug (armv5_udeb) [s60_wk50_dfs]"/>
+</storageModule>
+<storageModule filesCache="W:\sf\mw\appsupport\sysresmonitoring\oommonitor\tsrc\utoomclientrequestqueue\group\utoomclientrequestqueue.mmp;W:\sf\mw\appsupport\sysresmonitoring\oommonitor\tsrc\utoomclientrequestqueue\group\bld.inf;W:\epoc32\include\platform_paths.hrh;" includesCache="W:/sf/mw/appsupport/sysresmonitoring/oommonitor/tsrc/utoomclientrequestqueue/inc[LOCAL];W:/sf/mw/appsupport/sysresmonitoring/oommonitor/inc[LOCAL];W:/epoc32/include;W:/epoc32/include/platform;W:/epoc32/include/platform/loc;W:/epoc32/include/platform/loc/sc;W:/epoc32/include/mw;W:/epoc32/include/platform/mw;W:/epoc32/include/platform/mw/loc;W:/epoc32/include/platform/mw/loc/sc;" macrosCache="__DLL__;_UNICODE;__SUPPORT_CPP_EXCEPTIONS__;__MARM_ARMV5__;CLIENT_REQUEST_QUEUE;__ARMCC__;__ARMCC_2_2__;__SYMBIAN32__;__MARM__;__ARMCC_2__;__EPOC32__;__GENERIC_MARM__;SBSV2;__EABI__;_DEBUG;" moduleId="configDataCache" sourcesCache="/oommonitor/inc;/oommonitor/src;/utoomclientrequestqueue/inc;/utoomclientrequestqueue/src;" timestampCache="1281350406152" useMmpMacrosCache="true"/>
+<storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>
+<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
+<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+</cconfiguration>
+<cconfiguration id="Phone Release (armv5_urel) [s60_wk50_dfs]">
+<storageModule buildSystemId="com.nokia.carbide.cdt.builder.CarbideConfigurationDataProvider" id="Phone Release (armv5_urel) [s60_wk50_dfs]" moduleId="org.eclipse.cdt.core.settings" name="Phone Release (armv5_urel) [s60_wk50_dfs]">
+<externalSettings/>
+<extensions>
+<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="org.eclipse.cdt.core.PE" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="com.nokia.cdt.debug.cw.symbian.SymbianE32" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MakmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RVCTLinkerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.CarbideMakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.SBSv2ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.Elf2E32ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RCOMPErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MakeDefErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RVCTCompilerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+</extensions>
+</storageModule>
+<storageModule moduleId="CarbideConfigurationDataProvider">
+<ENV_VAR_DATA_ID/>
+<ARGUMENTS_DATA_ID ABLDFREEZEARGSSTORAGE="-r"/>
+<ROM_BUILDER_DATA_ID ROMBUILDWORKINGDIRECTORYSTORAGE="W:\epoc32\rom\"/>
+<SBSV2_DATA_ID CONFIG_BASE_PLATFORM="ARMV5" CONFIG_TARGET="UREL" SBSV2_BUILD_ALIAS="armv5_urel" SBSV2_CONFIG_DISPLAY_STRING="Phone Release (armv5_urel) [s60_wk50_dfs]"/>
+</storageModule>
+<storageModule filesCache="W:\sf\mw\appsupport\sysresmonitoring\oommonitor\tsrc\utoomclientrequestqueue\group\utoomclientrequestqueue.mmp;W:\sf\mw\appsupport\sysresmonitoring\oommonitor\tsrc\utoomclientrequestqueue\group\bld.inf;W:\epoc32\include\platform_paths.hrh;" includesCache="W:/sf/mw/appsupport/sysresmonitoring/oommonitor/tsrc/utoomclientrequestqueue/inc[LOCAL];W:/sf/mw/appsupport/sysresmonitoring/oommonitor/inc[LOCAL];W:/epoc32/include;W:/epoc32/include/platform;W:/epoc32/include/platform/loc;W:/epoc32/include/platform/loc/sc;W:/epoc32/include/mw;W:/epoc32/include/platform/mw;W:/epoc32/include/platform/mw/loc;W:/epoc32/include/platform/mw/loc/sc;" macrosCache="__DLL__;_UNICODE;__SUPPORT_CPP_EXCEPTIONS__;__MARM_ARMV5__;NDEBUG;CLIENT_REQUEST_QUEUE;__ARMCC__;__ARMCC_2_2__;__SYMBIAN32__;__MARM__;__ARMCC_2__;__EPOC32__;__GENERIC_MARM__;SBSV2;__EABI__;" moduleId="configDataCache" sourcesCache="/oommonitor/inc;/oommonitor/src;/utoomclientrequestqueue/inc;/utoomclientrequestqueue/src;" timestampCache="1281350406262" useMmpMacrosCache="true"/>
+<storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>
+<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
+<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+</cconfiguration>
+<cconfiguration id="Phone Debug (armv6_udeb) [s60_wk50_dfs]">
+<storageModule buildSystemId="com.nokia.carbide.cdt.builder.CarbideConfigurationDataProvider" id="Phone Debug (armv6_udeb) [s60_wk50_dfs]" moduleId="org.eclipse.cdt.core.settings" name="Phone Debug (armv6_udeb) [s60_wk50_dfs]">
+<externalSettings/>
+<extensions>
+<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="org.eclipse.cdt.core.PE" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="com.nokia.cdt.debug.cw.symbian.SymbianE32" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MakmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RVCTLinkerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.CarbideMakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.SBSv2ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.Elf2E32ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RCOMPErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MakeDefErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RVCTCompilerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+</extensions>
+</storageModule>
+<storageModule moduleId="CarbideConfigurationDataProvider">
+<ENV_VAR_DATA_ID/>
+<ARGUMENTS_DATA_ID ABLDFREEZEARGSSTORAGE="-r"/>
+<ROM_BUILDER_DATA_ID ROMBUILDWORKINGDIRECTORYSTORAGE="W:\epoc32\rom\"/>
+<SBSV2_DATA_ID CONFIG_BASE_PLATFORM="ARMV6" CONFIG_TARGET="UDEB" SBSV2_BUILD_ALIAS="armv6_udeb" SBSV2_CONFIG_DISPLAY_STRING="Phone Debug (armv6_udeb) [s60_wk50_dfs]"/>
+</storageModule>
+<storageModule filesCache="W:\sf\mw\appsupport\sysresmonitoring\oommonitor\tsrc\utoomclientrequestqueue\group\utoomclientrequestqueue.mmp;W:\sf\mw\appsupport\sysresmonitoring\oommonitor\tsrc\utoomclientrequestqueue\group\bld.inf;W:\epoc32\include\platform_paths.hrh;" includesCache="W:/sf/mw/appsupport/sysresmonitoring/oommonitor/tsrc/utoomclientrequestqueue/inc[LOCAL];W:/sf/mw/appsupport/sysresmonitoring/oommonitor/inc[LOCAL];W:/epoc32/include;W:/epoc32/include/platform;W:/epoc32/include/platform/loc;W:/epoc32/include/platform/loc/sc;W:/epoc32/include/mw;W:/epoc32/include/platform/mw;W:/epoc32/include/platform/mw/loc;W:/epoc32/include/platform/mw/loc/sc;" macrosCache="__DLL__;_UNICODE;__SUPPORT_CPP_EXCEPTIONS__;__MARM_ARMV5__;CLIENT_REQUEST_QUEUE;__ARMCC__;__ARMCC_2_2__;__SYMBIAN32__;__MARM__;__ARMCC_2__;__ARMV6__;__EPOC32__;__GENERIC_MARM__;SBSV2;__EABI__;_DEBUG;" moduleId="configDataCache" sourcesCache="/oommonitor/inc;/oommonitor/src;/utoomclientrequestqueue/inc;/utoomclientrequestqueue/src;" timestampCache="1281350406356" useMmpMacrosCache="true"/>
+<storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>
+<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
+<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+</cconfiguration>
+<cconfiguration id="Phone Release (armv6_urel) [s60_wk50_dfs]">
+<storageModule buildSystemId="com.nokia.carbide.cdt.builder.CarbideConfigurationDataProvider" id="Phone Release (armv6_urel) [s60_wk50_dfs]" moduleId="org.eclipse.cdt.core.settings" name="Phone Release (armv6_urel) [s60_wk50_dfs]">
+<externalSettings/>
+<extensions>
+<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="org.eclipse.cdt.core.PE" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="com.nokia.cdt.debug.cw.symbian.SymbianE32" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MakmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RVCTLinkerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.CarbideMakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.SBSv2ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.Elf2E32ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RCOMPErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MakeDefErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RVCTCompilerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+</extensions>
+</storageModule>
+<storageModule moduleId="CarbideConfigurationDataProvider">
+<ENV_VAR_DATA_ID/>
+<ARGUMENTS_DATA_ID ABLDFREEZEARGSSTORAGE="-r"/>
+<ROM_BUILDER_DATA_ID ROMBUILDWORKINGDIRECTORYSTORAGE="W:\epoc32\rom\"/>
+<SBSV2_DATA_ID CONFIG_BASE_PLATFORM="ARMV6" CONFIG_TARGET="UREL" SBSV2_BUILD_ALIAS="armv6_urel" SBSV2_CONFIG_DISPLAY_STRING="Phone Release (armv6_urel) [s60_wk50_dfs]"/>
+</storageModule>
+<storageModule filesCache="W:\sf\mw\appsupport\sysresmonitoring\oommonitor\tsrc\utoomclientrequestqueue\group\utoomclientrequestqueue.mmp;W:\sf\mw\appsupport\sysresmonitoring\oommonitor\tsrc\utoomclientrequestqueue\group\bld.inf;W:\epoc32\include\platform_paths.hrh;" includesCache="W:/sf/mw/appsupport/sysresmonitoring/oommonitor/tsrc/utoomclientrequestqueue/inc[LOCAL];W:/sf/mw/appsupport/sysresmonitoring/oommonitor/inc[LOCAL];W:/epoc32/include;W:/epoc32/include/platform;W:/epoc32/include/platform/loc;W:/epoc32/include/platform/loc/sc;W:/epoc32/include/mw;W:/epoc32/include/platform/mw;W:/epoc32/include/platform/mw/loc;W:/epoc32/include/platform/mw/loc/sc;" macrosCache="__DLL__;_UNICODE;__SUPPORT_CPP_EXCEPTIONS__;NDEBUG;__MARM_ARMV5__;CLIENT_REQUEST_QUEUE;__ARMCC__;__ARMCC_2_2__;__SYMBIAN32__;__MARM__;__ARMCC_2__;__ARMV6__;__EPOC32__;__GENERIC_MARM__;SBSV2;__EABI__;" moduleId="configDataCache" sourcesCache="/oommonitor/inc;/oommonitor/src;/utoomclientrequestqueue/inc;/utoomclientrequestqueue/src;" timestampCache="1281350406449" useMmpMacrosCache="true"/>
+<storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>
+<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
+<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+</cconfiguration>
+<cconfiguration id="Phone Debug (armv7_udeb) [s60_wk50_dfs]">
+<storageModule buildSystemId="com.nokia.carbide.cdt.builder.CarbideConfigurationDataProvider" id="Phone Debug (armv7_udeb) [s60_wk50_dfs]" moduleId="org.eclipse.cdt.core.settings" name="Phone Debug (armv7_udeb) [s60_wk50_dfs]">
+<externalSettings/>
+<extensions>
+<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="org.eclipse.cdt.core.PE" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="com.nokia.cdt.debug.cw.symbian.SymbianE32" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MakmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RVCTLinkerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.CarbideMakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.SBSv2ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.Elf2E32ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RCOMPErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MakeDefErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RVCTCompilerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+</extensions>
+</storageModule>
+<storageModule moduleId="CarbideConfigurationDataProvider">
+<ENV_VAR_DATA_ID/>
+<ARGUMENTS_DATA_ID ABLDFREEZEARGSSTORAGE="-r"/>
+<ROM_BUILDER_DATA_ID ROMBUILDWORKINGDIRECTORYSTORAGE="W:\epoc32\rom\"/>
+<SBSV2_DATA_ID CONFIG_BASE_PLATFORM="ARMV7" CONFIG_TARGET="UDEB" SBSV2_BUILD_ALIAS="armv7_udeb" SBSV2_CONFIG_DISPLAY_STRING="Phone Debug (armv7_udeb) [s60_wk50_dfs]"/>
+</storageModule>
+<storageModule filesCache="W:\sf\mw\appsupport\sysresmonitoring\oommonitor\tsrc\utoomclientrequestqueue\group\utoomclientrequestqueue.mmp;W:\sf\mw\appsupport\sysresmonitoring\oommonitor\tsrc\utoomclientrequestqueue\group\bld.inf;W:\epoc32\include\platform_paths.hrh;" includesCache="W:/sf/mw/appsupport/sysresmonitoring/oommonitor/tsrc/utoomclientrequestqueue/inc[LOCAL];W:/sf/mw/appsupport/sysresmonitoring/oommonitor/inc[LOCAL];W:/epoc32/include;W:/epoc32/include/platform;W:/epoc32/include/platform/loc;W:/epoc32/include/platform/loc/sc;W:/epoc32/include/mw;W:/epoc32/include/platform/mw;W:/epoc32/include/platform/mw/loc;W:/epoc32/include/platform/mw/loc/sc;" macrosCache="__DLL__;_UNICODE;__SUPPORT_CPP_EXCEPTIONS__;__ARMV7__;__MARM_ARMV5__;CLIENT_REQUEST_QUEUE;__ARMCC__;__ARMCC_2_2__;__SYMBIAN32__;__MARM__;__ARMCC_2__;__EPOC32__;__GENERIC_MARM__;SBSV2;__EABI__;_DEBUG;" moduleId="configDataCache" sourcesCache="/oommonitor/inc;/oommonitor/src;/utoomclientrequestqueue/inc;/utoomclientrequestqueue/src;" timestampCache="1281350406559" useMmpMacrosCache="true"/>
+<storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>
+<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
+<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+</cconfiguration>
+<cconfiguration id="Phone Release (armv7_urel) [s60_wk50_dfs]">
+<storageModule buildSystemId="com.nokia.carbide.cdt.builder.CarbideConfigurationDataProvider" id="Phone Release (armv7_urel) [s60_wk50_dfs]" moduleId="org.eclipse.cdt.core.settings" name="Phone Release (armv7_urel) [s60_wk50_dfs]">
+<externalSettings/>
+<extensions>
+<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="org.eclipse.cdt.core.PE" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="com.nokia.cdt.debug.cw.symbian.SymbianE32" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MakmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RVCTLinkerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.CarbideMakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.SBSv2ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.Elf2E32ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RCOMPErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MakeDefErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RVCTCompilerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+</extensions>
+</storageModule>
+<storageModule moduleId="CarbideConfigurationDataProvider">
+<ENV_VAR_DATA_ID/>
+<ARGUMENTS_DATA_ID ABLDFREEZEARGSSTORAGE="-r"/>
+<ROM_BUILDER_DATA_ID ROMBUILDWORKINGDIRECTORYSTORAGE="W:\epoc32\rom\"/>
+<SBSV2_DATA_ID CONFIG_BASE_PLATFORM="ARMV7" CONFIG_TARGET="UREL" SBSV2_BUILD_ALIAS="armv7_urel" SBSV2_CONFIG_DISPLAY_STRING="Phone Release (armv7_urel) [s60_wk50_dfs]"/>
+</storageModule>
+<storageModule filesCache="W:\sf\mw\appsupport\sysresmonitoring\oommonitor\tsrc\utoomclientrequestqueue\group\utoomclientrequestqueue.mmp;W:\sf\mw\appsupport\sysresmonitoring\oommonitor\tsrc\utoomclientrequestqueue\group\bld.inf;W:\epoc32\include\platform_paths.hrh;" includesCache="W:/sf/mw/appsupport/sysresmonitoring/oommonitor/tsrc/utoomclientrequestqueue/inc[LOCAL];W:/sf/mw/appsupport/sysresmonitoring/oommonitor/inc[LOCAL];W:/epoc32/include;W:/epoc32/include/platform;W:/epoc32/include/platform/loc;W:/epoc32/include/platform/loc/sc;W:/epoc32/include/mw;W:/epoc32/include/platform/mw;W:/epoc32/include/platform/mw/loc;W:/epoc32/include/platform/mw/loc/sc;" macrosCache="__DLL__;_UNICODE;__SUPPORT_CPP_EXCEPTIONS__;__ARMV7__;NDEBUG;__MARM_ARMV5__;CLIENT_REQUEST_QUEUE;__ARMCC__;__ARMCC_2_2__;__SYMBIAN32__;__MARM__;__ARMCC_2__;__EPOC32__;__GENERIC_MARM__;SBSV2;__EABI__;" moduleId="configDataCache" sourcesCache="/oommonitor/inc;/oommonitor/src;/utoomclientrequestqueue/inc;/utoomclientrequestqueue/src;" timestampCache="1281350406652" useMmpMacrosCache="true"/>
+<storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>
+<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
+<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+</cconfiguration>
+<cconfiguration id="Phone Debug (armv9e_udeb) [s60_wk50_dfs]">
+<storageModule buildSystemId="com.nokia.carbide.cdt.builder.CarbideConfigurationDataProvider" id="Phone Debug (armv9e_udeb) [s60_wk50_dfs]" moduleId="org.eclipse.cdt.core.settings" name="Phone Debug (armv9e_udeb) [s60_wk50_dfs]">
+<externalSettings/>
+<extensions>
+<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="org.eclipse.cdt.core.PE" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="com.nokia.cdt.debug.cw.symbian.SymbianE32" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MakmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RVCTLinkerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.CarbideMakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.SBSv2ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.Elf2E32ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RCOMPErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MakeDefErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RVCTCompilerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+</extensions>
+</storageModule>
+<storageModule moduleId="CarbideConfigurationDataProvider">
+<ENV_VAR_DATA_ID/>
+<ARGUMENTS_DATA_ID ABLDFREEZEARGSSTORAGE="-r"/>
+<ROM_BUILDER_DATA_ID ROMBUILDWORKINGDIRECTORYSTORAGE="W:\epoc32\rom\"/>
+<SBSV2_DATA_ID CONFIG_BASE_PLATFORM="ARMV9E" CONFIG_TARGET="UDEB" SBSV2_BUILD_ALIAS="armv9e_udeb" SBSV2_CONFIG_DISPLAY_STRING="Phone Debug (armv9e_udeb) [s60_wk50_dfs]"/>
+</storageModule>
+<storageModule filesCache="W:\sf\mw\appsupport\sysresmonitoring\oommonitor\tsrc\utoomclientrequestqueue\group\utoomclientrequestqueue.mmp;W:\sf\mw\appsupport\sysresmonitoring\oommonitor\tsrc\utoomclientrequestqueue\group\bld.inf;W:\epoc32\include\platform_paths.hrh;" includesCache="W:/sf/mw/appsupport/sysresmonitoring/oommonitor/tsrc/utoomclientrequestqueue/inc[LOCAL];W:/sf/mw/appsupport/sysresmonitoring/oommonitor/inc[LOCAL];W:/epoc32/include;W:/epoc32/include/platform;W:/epoc32/include/platform/loc;W:/epoc32/include/platform/loc/sc;W:/epoc32/include/mw;W:/epoc32/include/platform/mw;W:/epoc32/include/platform/mw/loc;W:/epoc32/include/platform/mw/loc/sc;" macrosCache="__DLL__;_UNICODE;__SYMBIAN32__;__SUPPORT_CPP_EXCEPTIONS__;CLIENT_REQUEST_QUEUE;SBSV2;_DEBUG;" moduleId="configDataCache" sourcesCache="/oommonitor/inc;/oommonitor/src;/utoomclientrequestqueue/inc;/utoomclientrequestqueue/src;" timestampCache="1281350406746" useMmpMacrosCache="true"/>
+<storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>
+<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
+<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+</cconfiguration>
+</storageModule>
+</cproject>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/utoomclientrequestqueue/.project	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>utoomclientrequestqueue</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>com.nokia.carbide.cdt.builder.carbideCPPBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.cdt.core.cnature</nature>
+		<nature>org.eclipse.cdt.core.ccnature</nature>
+		<nature>com.nokia.carbide.cdt.builder.carbideCPPBuilderNature</nature>
+		<nature>com.nokia.carbide.cdt.builder.carbideSBSv2BuilderNature</nature>
+	</natures>
+</projectDescription>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/utoomclientrequestqueue/Bwins/utoomclientrequestqueueu.def	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,4 @@
+EXPORTS
+	?LibEntryL@@YAPAVCTestModuleBase@@XZ @ 1 NONAME ; class CTestModuleBase * __cdecl LibEntryL(void)
+	?SetRequirements@@YAHAAPAVCTestModuleParam@@AAK@Z @ 2 NONAME ; int __cdecl SetRequirements(class CTestModuleParam * &,unsigned long &)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/utoomclientrequestqueue/eabi/mockoommemorymonitorserveru.def	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,3 @@
+EXPORTS
+	_Z11StartThreadR7RThread @ 1 NONAME
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/utoomclientrequestqueue/eabi/utoomclientrequestqueueu.def	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,4 @@
+EXPORTS
+	_Z9LibEntryLv @ 1 NONAME
+	_Z15SetRequirementsRP16CTestModuleParamRm @ 2 NONAME
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/utoomclientrequestqueue/group/bld.inf	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,61 @@
+/*
+* 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:
+*
+*/
+
+PRJ_PLATFORMS
+// specify the platforms your component needs to be built for here
+// defaults to WINS MARM so you can ignore this if you just build these
+
+	DEFAULT
+
+PRJ_TESTEXPORTS
+// NOTE: If using ARS requirements all export operations should be done under this.
+// 'abld test export'
+
+PRJ_EXPORTS
+// Specify the source file followed by its destination here
+// copy will be used to copy the source file to its destination
+// If there's no destination then the source file will be copied
+// to the same name in \epoc32\include
+// Example: 
+/*
+\agnmodel\inc\AGMCOMON.H
+*/
+
+PRJ_TESTMMPFILES
+
+	mockoommemorymonitorserver.mmp
+	utoomclientrequestqueue.mmp
+
+PRJ_MMPFILES
+
+
+
+// Specify the .mmp files required for building the important component
+// releasables.
+//
+// Specify "tidy" if the component you need to build doesn't need to be
+// released. Specify "ignore" if the MMP file exists but should be
+// ignored.
+// Example:
+/*
+\agnmodel\group\agnmodel.mmp
+#if defined(MARM)
+\agnmodel\group\agsvexe.mmp
+#endif
+*/
+
+//  End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/utoomclientrequestqueue/group/mockoommemorymonitorserver.mmp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,44 @@
+/*
+============================================================================
+ Name		: mockoommemorymonitorserver.mmp
+ Author	  : 
+ Copyright   : Your copyright notice
+ Description : This is the project specification file for w213.
+============================================================================
+*/
+
+TARGET		  mockoommonitorserver.exe
+TARGETTYPE	  exe
+UID			 0 0x2002CAD3
+
+//CAPABILITY    all - TCB
+
+macro CLIENT_REQUEST_QUEUE
+#define CLIENT_REQUEST_QUEUE
+macro FCC_UNIT_TEST
+#define FCC_UNIT_TEST
+
+USERINCLUDE     ../inc 
+USERINCLUDE     ../../../inc 
+
+OS_LAYER_SYSTEMINCLUDE
+MW_LAYER_SYSTEMINCLUDE
+
+SOURCEPATH      ../src
+SOURCE          mockoommemorymonitor.cpp
+
+SOURCEPATH      ../../../src
+SOURCE          oommemorymonitorserver.cpp
+SOURCE          oommemorymonitorsession.cpp
+SOURCE          oompanic.cpp
+SOURCE          oomsubscribehelper.cpp
+#ifdef CLIENT_REQUEST_QUEUE
+SOURCE          oomclientrequestqueue.cpp
+#endif
+
+LIBRARY         euser.lib
+LIBRARY         ws32.lib
+LIBRARY         hal.lib
+
+LANG            SC
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/utoomclientrequestqueue/group/utoomclientrequestqueue.mmp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,90 @@
+/*TYPE STIFUNIT*/
+/*
+* 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: MMP file for STIF Test Framework's STIFUnit test module.
+*
+*/
+
+#include <platform_paths.hrh>
+
+//uncomment both of these macros to use the CLIENT_REQUEST_QUEUE
+macro CLIENT_REQUEST_QUEUE
+#define CLIENT_REQUEST_QUEUE
+macro FCC_UNIT_TEST
+#define FCC_UNIT_TEST
+
+
+SMPSAFE
+
+TARGET          utoomclientrequestqueue.dll
+TARGETTYPE      dll
+UID             0x1000008D 0x2002CAD4
+
+CAPABILITY      ALL -TCB
+/* Remove comments and replace 0x00000000 with correct vendor id */
+// VENDORID     0x00000000
+/* Remove comments and replace 0x00000000 with correct secure id */
+// SECUREID     0x00000000
+
+//TARGETPATH      ?target_path
+DEFFILE         utoomclientrequestqueue.def
+
+USERINCLUDE     ../inc 
+USERINCLUDE     ../../../inc 
+
+
+OS_LAYER_SYSTEMINCLUDE
+MW_LAYER_SYSTEMINCLUDE
+
+SOURCEPATH      ../src
+SOURCE          utoomclientrequestqueue.cpp
+SOURCE          utoomclientrequestqueueCases.cpp
+
+SOURCEPATH      ../../../src
+SOURCE          oommonitorsession.cpp
+SOURCE          oompanic.cpp
+
+
+
+//RESOURCE        resource_file
+//RESOURCE        resource_file2
+
+LIBRARY         stiftestinterface.lib
+LIBRARY         euser.lib
+LIBRARY         cone.lib 
+LIBRARY         ws32.lib
+
+LANG            SC
+
+/*
+START WINS      
+?wins_specific_information
+END
+
+START MARM
+?marm_specific_information
+END
+*/
+// Other possible keywords:
+ 
+// DOCUMENT     ?file, that is not compiled, but added to MSVC project workspace (i.e. release notes)
+/*
+START BITMAP ?target
+TARGETPATH   ?emulated_path_on_target_machine
+HEADER
+SOURCE       ?color_depth ?source_bitmap
+END
+*/
+// DEFFILE ?filename
+// AIF ?filename// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/utoomclientrequestqueue/group/utoomclientrequestqueue.pkg	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,60 @@
+;
+; 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:
+;
+; 	Installation file for STIF
+;
+
+; Languages
+&EN
+
+; Provide value for uid
+#{"STIF"},(0x00000000),1,1,0,TYPE=SA
+
+; Series60 product id for S60 3.0
+[0x101F7961], 0, 0, 0, {"Series60ProductID"}
+
+; Localised Vendor name
+%{"Nokia"}
+
+; Unique Vendor name
+:"Nokia"
+
+; Logo
+; None
+
+; Package signature - Optional
+; None
+
+; Start of Package body
+
+; Condition blocks
+; None
+
+; Options list
+; None
+
+; Install files
+"\epoc32\release\armv5\udeb\utoomclientrequestqueue.dll"   -   "!:\Sys\Bin\utoomclientrequestqueue.dll"
+  
+; Embedded SIS 
+; None
+
+; End of Package body
+
+; PKG dependencies
+; None
+
+; PKG capabilities
+; None
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/utoomclientrequestqueue/inc/utoommockclientserver.h	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,35 @@
+/*
+ * utoomconstant.h
+ *
+ *  Created on: Aug 9, 2010
+ *      Author: t4sun
+ */
+
+#ifndef UTOOMMOCKCLIENTSERVER_H_
+#define UTOOMMOCKCLIENTSERVER_H_
+// define properties names 
+const TUid KUTOomPropertyCategory = {0x10000000};
+const TUint32 KUTOomStubPropertyKey = 0;
+const TUint32 KUTOomFreeMemorySetKey = 1;
+const TUint32 KUTOomMemoryGoodSetKey = 2;
+const TInt Stub_CMemoryMonitor_FreeOptionalRamL = 100;
+const TInt Stub_CMemoryMonitor_RequestFreeMemoryL = 200;
+const TInt Stub_CMemoryMonitor_RequestFreeMemoryPandSL = 300;
+
+
+const TUint KDefaultHeapSize=0x10000;
+
+enum TOomServerPanic
+    {
+    EBadRequest = 1,
+    EBadDescriptor,
+    EMainSchedulerError,
+    ESvrCreateServer,
+    ESvrStartServer,
+    ECreateTrapCleanup,
+    ENotImplementedYet,
+    };
+
+IMPORT_C TInt StartThread(RThread& aServerThread);
+
+#endif /* UTOOMMOCKCLIENTSERVER_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/utoomclientrequestqueue/src/mockoommemorymonitor.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,257 @@
+/*
+ * mockoommemorymonitor.cpp
+ *
+ *  Created on: Aug 5, 2010
+ *      Author: t4sun
+ */
+#include <e32base.h>
+#include <hal.h>
+#include <u32hal.h>
+
+#include "oomconstants.hrh"
+
+#include "oommemorymonitor.h"
+#include "oomclientrequestqueue.h"
+#include "oomconfig.h"
+#include "oomconfigparser.h"
+#include "oomconstants.hrh"
+#include "oomapplicationconfig.h"
+#include "oompanic.h"
+#include "oommemorymonitorserver.h"
+#include "oommonitorclientserver.h"
+
+#include "utoommockclientserver.h"
+
+
+
+CMemoryMonitor* CMemoryMonitor::NewL()
+    { 
+
+    CMemoryMonitor* self = new(ELeave) CMemoryMonitor();
+    CleanupStack::PushL(self);
+    self->ConstructL();
+    CleanupStack::Pop(self);
+    return self;
+    }
+
+CMemoryMonitor::CMemoryMonitor()
+    {
+    }
+
+// ---------------------------------------------------------
+//
+// ---------------------------------------------------------
+//
+CMemoryMonitor::~CMemoryMonitor()
+    {
+
+#ifndef CLIENT_REQUEST_QUEUE
+    if (iWatchdogStatusSubscriber)
+        {
+        iWatchdogStatusSubscriber->StopSubscribe();
+        }
+    iWatchdogStatusProperty.Close();
+    delete iWatchdogStatusSubscriber;
+#endif
+    
+    delete iServer;
+#ifdef CLIENT_REQUEST_QUEUE
+    delete iQueue;
+#endif
+    
+#ifdef _DEBUG    
+    delete iLogger;
+#endif
+    }
+
+// ---------------------------------------------------------
+//
+// ---------------------------------------------------------
+//
+void CMemoryMonitor::ConstructL()
+    {
+    
+#ifdef CLIENT_REQUEST_QUEUE
+    iQueue = COomClientRequestQueue::NewL(*this);
+    
+    iServer = CMemoryMonitorServer::NewL(*iQueue);
+#else
+    iServer = CMemoryMonitorServer::NewL(*this);    
+#endif
+    
+    
+    
+    }
+
+const COomGlobalConfig& CMemoryMonitor::GlobalConfig()
+    {
+    TPtrC* par;
+    CMemoryMonitor* globalMemoryMonitor = (CMemoryMonitor*)(par);
+    return globalMemoryMonitor->iConfig->GlobalConfig();
+    
+    }
+
+
+
+/***
+ * FreeOptionalRamL
+ * RequestFreeMemoryL
+ * RequestFreeMemoryPandSL
+ * GoodRamThreshold
+ */
+
+void CMemoryMonitor::FreeOptionalRamL(TInt aBytesRequested, TInt aPluginId, TBool aDataPaged) // The ID of the plugin that will clear up the allocation, used to determine the priority of the allocation
+    {
+    // make mark here
+    RProperty::Set(KUTOomPropertyCategory, KUTOomStubPropertyKey, Stub_CMemoryMonitor_FreeOptionalRamL );
+    
+    iActionTrigger = EClientServerRequestOptionalRam;
+
+    iDataPaged = aDataPaged;
+       
+    StartFreeSomeRamL(aBytesRequested + iGoodRamThreshold, iLowSwapThreshold, 0);
+    }
+
+void CMemoryMonitor::RequestFreeMemoryL(TInt aBytesRequested, TBool aDataPaged)
+    {
+    // make mark here
+    RProperty::Set(KUTOomPropertyCategory, KUTOomStubPropertyKey, Stub_CMemoryMonitor_RequestFreeMemoryL );
+    
+    iActionTrigger = EClientServerRequestFreeMemory;
+    iDataPaged = aDataPaged;
+    StartFreeSomeRamL(iLowRamThreshold, aBytesRequested + iLowSwapThreshold);
+    }
+
+void CMemoryMonitor::RequestFreeMemoryPandSL(TInt aBytesRequested)
+    {
+    RProperty::Set(KUTOomPropertyCategory, KUTOomStubPropertyKey, Stub_CMemoryMonitor_RequestFreeMemoryPandSL );
+    
+    iActionTrigger = EPublishAndSubscribe;
+    StartFreeSomeRamL(aBytesRequested + iLowRamThreshold, iLowSwapThreshold);
+    }
+
+TInt CMemoryMonitor::GoodRamThreshold() const
+    {
+    return 0;
+    }
+
+void CMemoryMonitor::StartFreeSomeRamL(TInt aFreeRamTarget, TInt aFreeSwapTarget)
+    {
+    StartFreeSomeRamL(aFreeRamTarget, aFreeSwapTarget, KOomPriorityInfinate - 1);
+    }
+
+void CMemoryMonitor::StartFreeSomeRamL(TInt aFreeRamTarget, TInt aFreeSwapTarget, TInt aMaxPriority) // The maximum priority of action to run
+    {
+    TInt freeMemory = 0;
+    
+    // put it here for ut test
+    // get free memory from property for test
+    TInt memoryGood(0);
+    RProperty::Get(KUTOomPropertyCategory, KUTOomFreeMemorySetKey, freeMemory );
+    RProperty::Get(KUTOomPropertyCategory, KUTOomMemoryGoodSetKey, memoryGood );
+    RProperty::Set(KUTOomPropertyCategory, KUTOomMemoryGoodSetKey, memoryGood+1 );
+    if( memoryGood >= 1)
+        {
+        iQueue->ActionsCompleted(freeMemory, ETrue);
+        }
+    else
+        {
+        iQueue->ActionsCompleted(freeMemory, EFalse);
+        }
+    
+    }
+
+void CMemoryMonitor::GetFreeMemory(TInt& aCurrentFreeMemory)
+    {
+    }
+TActionTriggerType CMemoryMonitor::ActionTrigger() const
+    {
+    return iActionTrigger;
+    }
+
+void CMemoryMonitor::RefreshThresholds()
+    {
+    }
+
+void CMemoryMonitor::SetPriorityBusy(TInt aWgId)
+    {
+    //FUNC_LOG;
+
+    //iOomWindowGroupList->SetPriorityBusy(aWgId);
+    }
+void CMemoryMonitor::SetPriorityNormal(TInt aWgId)
+    {
+    //FUNC_LOG;
+
+    //iOomWindowGroupList->SetPriorityNormal(aWgId);
+    }
+
+void CMemoryMonitor::SetPriorityHigh(TInt aWgId)
+    {
+    //iOomWindowGroupList->SetPriorityHigh(aWgId);
+    }
+
+void CMemoryMonitor::AppNotExiting(TInt aWgId)
+    {
+    //FUNC_LOG;
+
+    //iOomActionList->AppNotExiting(aWgId);
+    }
+
+void PanicClient(const RMessagePtr2& aMessage,TOomMonitorClientPanic aPanic)
+    {
+    //FUNC_LOG;
+
+    aMessage.Panic(KMemoryMonitorServerName, aPanic);
+    }
+
+//**********************************
+//Global functions
+//**********************************
+
+LOCAL_C void MainL()
+    {
+    //
+    // create and install the active scheduler we need
+    CActiveScheduler* s=new(ELeave) CActiveScheduler;
+    CleanupStack::PushL(s);
+    CActiveScheduler::Install(s);
+    //
+    // create the server (leave it on the cleanup stack)
+    CMemoryMonitor* mmPtr = CMemoryMonitor::NewL();
+    if(mmPtr!=NULL)
+        {
+        CleanupStack::PushL(mmPtr);
+
+        // Initialisation complete, now signal the client
+        RProcess::Rendezvous(KErrNone);
+        //
+        // Ready to run
+        CActiveScheduler::Start();
+        //
+        // Cleanup the server
+        CleanupStack::PopAndDestroy(1);
+        }
+    // Cleanup the scheduler
+    CleanupStack::PopAndDestroy(1);
+    }
+/**
+    Returns standard error code on exit
+*/
+GLDEF_C TInt E32Main()
+    {
+    __UHEAP_MARK;
+    //
+    CTrapCleanup* cleanup=CTrapCleanup::New();
+    TInt r=KErrNoMemory;
+    if (cleanup)
+        {
+        TRAP(r,MainL());
+        delete cleanup;
+        }
+    //
+    __UHEAP_MARKEND;
+    return r;
+    }
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/utoomclientrequestqueue/src/utoomclientrequestqueue.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,124 @@
+/*
+* 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: This file contains STIFUnit module implementation.
+*
+*/
+
+/******************************************************************************/
+/*
+ *
+ * Test module configuration 
+*/
+
+// Version
+#define TEST_MODULE_VERSION_MAJOR 0
+#define TEST_MODULE_VERSION_MINOR 0
+#define TEST_MODULE_VERSION_BUILD 0
+
+// Uncomment following defines, if you want to provide implementation
+// of enlisted virtual methods of test module.
+// Implementation part is located at the end of this file.
+//#define STIFUNIT_OOMTESTQUERYL
+//#define STIFUNIT_OOMTESTINITIALIZEL
+//#define STIFUNIT_OOMHANDLEWARNINGL
+//#define STIFUNIT_OOMTESTFINALIZEL
+// Uncomment following define, if you want to increase heap or stack size.
+// #define STIFUNIT_SETHEAPANDSTACKSIZE
+/******************************************************************************/
+
+
+/*
+ * Test module internals. Please do not edit them. 
+*/
+
+// Includes
+#include <e32base.h>
+
+// Literals
+_LIT( KUnitLogPath, "\\logs\\testframework\\" ); 
+_LIT( KUnitLogFile, "utoomclientrequestqueue.txt" ); 
+_LIT( KLogStart, "utoomclientrequestqueue logging starts!" );
+
+// Defines
+#define STIF_UNIT_TEST_CASES "../src/utoomclientrequestqueueCases.cpp"
+#define STIF_UNIT_MODULE_CLASS_NAME Cutoomclientrequestqueue
+#define STIF_UNIT_MODULE_NAME _L("utoomclientrequestqueue.dll")
+
+// Include STIF unit generic file
+#include <StifUnitGeneric.h>
+
+/*
+ * Implementation of setHeapAndStack virtual methods.
+ * To changes heap and stack size provide new values to iTestThreadStackSize, iTestThreadMinHeap and iTestThreadMaxHeap. 
+*/
+
+#ifdef STIFUNIT_SETHEAPANDSTACKSIZE
+EXPORT_C TInt SetRequirements( CTestModuleParam*& aTestModuleParam, 
+                               TUint32& aParameterValid )
+    {
+    aParameterValid = KStifTestModuleParameterChanged;
+    CTestModuleParamVer01* param = CTestModuleParamVer01::NewL(); 
+    // Stack size 
+    param->iTestThreadStackSize= 16384; // 16K stack 
+    // Heap sizes 
+    param->iTestThreadMinHeap = 4096; // 4K heap min 
+    param->iTestThreadMaxHeap = 1048576;// 1M heap max 
+
+    return KErrNone;
+    }
+#undef STIFUNIT_SETHEAPANDSTACKSIZE
+#endif
+
+/*
+ * User implementation of OOM virtual methods.
+ * Providing own implementation requires uncommenting defines at the
+ * beginnig of this file.   
+*/
+#ifdef STIFUNIT_OOMTESTQUERYL
+TBool Cutoomclientrequestqueue::OOMTestQueryL( const TFileName& /*aTestCaseFile*/, 
+                                   const TInt aCaseNumber, 
+                                   TOOMFailureType& aFailureType, 
+                                   TInt& aFirstMemFailure, 
+                                   TInt& aLastMemFailure)
+    {
+    }
+#undef STIFUNIT_OOMTESTQUERYL
+#endif
+
+#ifdef STIFUNIT_OOMTESTINITIALIZEL
+void Cutoomclientrequestqueue::OOMTestInitializeL( const TFileName& /*aTestCaseFile*/, 
+                                       const TInt /*aCaseNumber*/ )
+    {
+    }
+#undef STIFUNIT_OOMTESTINITIALIZEL
+#endif
+
+#ifdef STIFUNIT_OOMHANDLEWARNINGL
+void Cutoomclientrequestqueue::OOMHandleWarningL( const TFileName& /*aTestCaseFile*/,
+                                      const TInt /*aCaseNumber*/, 
+                                      TInt& /*aFailNextValue*/)
+    {
+    }
+#undef STIFUNIT_OOMHANDLEWARNINGL
+#endif
+    
+#ifdef STIFUNIT_OOMTESTFINALIZEL
+void Cutoomclientrequestqueue::OOMTestFinalizeL( const TFileName& /*aTestCaseFile*/, 
+                                     const TInt /*aCaseNumber*/ )
+    {
+    }
+#undef STIFUNIT_OOMTESTFINALIZEL
+#endif
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/utoomclientrequestqueue/src/utoomclientrequestqueueCases.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,295 @@
+/*
+* 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: This file contains STIFUnit implementation.
+*
+*/
+
+/**
+ * STIF_UNIT_INCLUDE SECTION - put all #includes between STIF_UNIT_INCLUDE_SECTION
+ *                             and STIF_UNIT_INCLUDE_SECTION_END
+ */
+#ifdef STIF_UNIT_INCLUDE_SECTION
+#include <e32def.h> 
+#include <e32std.h>
+#include <e32property.h> 
+#include <UikonInternalPSKeys.h>
+
+
+#include "oommonitorsession.h"
+#include "utoommockclientserver.h"
+#include "oommonitorclientserver.h"
+
+#endif //STIF_UNIT_INCLUDE_SECTION_END
+
+    #define KMaxServerNameLength 256
+    #define KRequestMemoryValue 100
+    #define KMinMemoryNeedValue 50
+    #define KMemoryGoodSetKeyETrueValue 10    // >=1 for memorygood = ETrue else EFalse
+    #define KMemoryGoodSetKeyEFalseValue 0    // >=1 for memorygood = ETrue else EFalse
+
+/**
+ * GLOBAL VARIABLES SECTION
+ */
+#ifdef TEST_VAR_DECLARATIONS
+	ROomMonitorSession ss;
+	const TInt KCreateSessionRetryCount = 2;                    //CreateSession retry count
+    const TInt KServerDefaultMessageSlots = 2;                  //server async Message Slots
+    RProcess serverProcess;
+    TRequestStatus waitStatus;
+    TInt stubValue;
+    TInt value2;
+    const TInt KOomWatchDogStatusIdle = -1;
+
+#endif
+/**
+ * END OF GLOBAL VARIABLES SECTION
+ */
+
+
+/**
+ * TEST CASES SECTION
+ */
+#ifdef TEST_CASES
+/**
+ * STIF_SETUP defines activities needed before every test case.
+ */
+STIF_SETUP
+    {
+    TInt retry=KCreateSessionRetryCount; //number of CreateSession retries
+    FOREVER
+        {
+        // try to create a session with the server which has KServerDefaultMessageSlots async message slots.
+        TInt err;
+        err = ss.Connect();
+        if (err!=KErrNotFound && err!=KErrServerTerminated)
+            break;
+        STIF_ASSERT_NOT_EQUALS(retry, 0);
+        //if (--retry==0)
+        //  User::Leave(err);    
+        err = serverProcess.Create(KMemoryMonitorServerName, KNullDesC);
+        if (err!=KErrNone)
+            User::Leave(err);   
+        
+        TRequestStatus stat;
+        serverProcess.Rendezvous(stat);
+    
+        if (stat!=KRequestPending)
+            serverProcess.Kill(KErrCouldNotConnect);       // abort startup
+        else
+            serverProcess.Resume();    // logon OK - start the server
+        
+        User::WaitForRequest(stat);     // wait for start or death
+    
+        // The server exit type may be a panic value and a panic value can be zero, which is the same 
+        // value as KErrNone. So, the exit type is tested for a panic before being returned.
+        if (serverProcess.ExitType()==EExitPanic)
+            {
+            err = KErrServerTerminated;
+            }
+        else
+            {
+            err = stat.Int();
+            }
+        iLog->Log(_L("start server return with %d"), err);
+        if (err!=KErrNone && err!=KErrAlreadyExists)
+            User::Leave(err);
+        }
+
+    _LIT_SECURITY_POLICY_PASS(KOomMemoryMonitorPolicyRead);
+    
+    RProperty::Define(KUTOomPropertyCategory, KUTOomStubPropertyKey, RProperty::EInt, KOomMemoryMonitorPolicyRead, KOomMemoryMonitorPolicyRead);
+    RProperty::Define(KUTOomPropertyCategory, KUTOomFreeMemorySetKey, RProperty::EInt, KOomMemoryMonitorPolicyRead, KOomMemoryMonitorPolicyRead);
+    RProperty::Define(KUTOomPropertyCategory, KUTOomMemoryGoodSetKey, RProperty::EInt, KOomMemoryMonitorPolicyRead, KOomMemoryMonitorPolicyRead);
+
+    }
+
+/**
+ * STIF_TEARDOWN defines activities needed after every test case
+ */
+STIF_TEARDOWN
+    {
+    RProperty::Delete(KUTOomPropertyCategory, KUTOomStubPropertyKey);
+    RProperty::Delete(KUTOomPropertyCategory, KUTOomFreeMemorySetKey);
+    RProperty::Delete(KUTOomPropertyCategory, KUTOomMemoryGoodSetKey);
+
+    // close the session
+    ss.Close();
+    
+    // kill server process
+    serverProcess.Kill(KErrNone);
+    iLog->Log(_L("server process killed"));
+    
+    }
+
+/**
+ * STIF_TESTDEFINE defines a test case
+ *
+ *  following test case are make call to client resession - ROomMonitorSession
+ *  through client/server framework, control transfer to oomclientrequestqueue
+ *  and then to oommemorymonitor (implementation is mockoommemorymonitor.cpp),
+ *  in which 
+ *  1. will change corresponding property's value to show an API had been called, and 
+ *  2. will check corresponding property's value, and use these values to call 
+ *     oomclientrequestqueue::ActionsCompleted(...), then complete RMessage2,
+ *  then control transfer back to test code, so that we check return value and 
+ *  corresponsing property's value, make verification, decide if test pass or not. 
+ */
+STIF_TESTDEFINE(RequestFreeMemory_KErrNone)
+    {
+    // 1. check call to RequestFreeMemory, 
+    //  memory request can be fullfilled,
+    //  return value should be KErrNone.
+    //  make a call and check stub
+    iLog->Log(_L("start RequestFreeMemory_KErrNone"));
+    RProperty::Set(KUTOomPropertyCategory, KUTOomStubPropertyKey, 0 );
+    RProperty::Set(KUTOomPropertyCategory, KUTOomMemoryGoodSetKey, KMemoryGoodSetKeyETrueValue );
+    ss.RequestFreeMemory(KRequestMemoryValue, waitStatus);
+    User::WaitForRequest(waitStatus);
+    iLog->Log(_L("wait status is %d"), waitStatus);
+    RProperty::Get(KUTOomPropertyCategory, KUTOomStubPropertyKey, stubValue );
+    RProperty::Get(KUTOomPropertyCategory, KUTOomMemoryGoodSetKey, value2 );
+    iLog->Log(_L("call return and property value now is %d, %d"), stubValue, value2);
+    STIF_ASSERT_EQUALS(stubValue, Stub_CMemoryMonitor_RequestFreeMemoryL);
+    STIF_ASSERT_EQUALS(waitStatus.Int(), KErrNone);
+    iLog->Log(_L("RequestFreeMemory_KErrNone passed"));
+    }
+
+STIF_TESTDEFINE(RequestFreeMemory_KErrNoMemory)
+    {    
+    // 2. check call to RequestFreeMemory, 
+    //  memory request can not be fullfilled,
+    //  return value should be KErrNoMemory.
+    //  make a call and check stub
+    iLog->Log(_L("start RequestFreeMemory_KErrNoMemory"));
+    RProperty::Set(KUTOomPropertyCategory, KUTOomStubPropertyKey, 0 );
+    RProperty::Set(KUTOomPropertyCategory, KUTOomMemoryGoodSetKey, KMemoryGoodSetKeyEFalseValue );
+    ss.RequestFreeMemory(KRequestMemoryValue, waitStatus);
+    User::WaitForRequest(waitStatus);
+    iLog->Log(_L("wait status is %d"), waitStatus);
+    RProperty::Get(KUTOomPropertyCategory, KUTOomStubPropertyKey, stubValue );
+    RProperty::Get(KUTOomPropertyCategory, KUTOomMemoryGoodSetKey, value2 );
+    STIF_ASSERT_EQUALS(stubValue, Stub_CMemoryMonitor_RequestFreeMemoryL);
+    STIF_ASSERT_EQUALS(waitStatus.Int(), KErrNoMemory);
+    iLog->Log(_L("RequestFreeMemory_KErrNoMemory passed"));
+
+    }
+
+STIF_TESTDEFINE(Twice_RequestFreeMemory_KErrNoMemory)
+    {    
+    // 2. check call to RequestFreeMemory, 
+    //  memory request can not be fullfilled,
+    //  return value should be KErrNoMemory.
+    //  make a call and check stub
+    iLog->Log(_L("start RequestFreeMemory_KErrNoMemory"));
+    RProperty::Set(KUTOomPropertyCategory, KUTOomStubPropertyKey, 0 );
+    RProperty::Set(KUTOomPropertyCategory, KUTOomMemoryGoodSetKey, KMemoryGoodSetKeyEFalseValue );
+    TRequestStatus waitStatus_second;
+    ss.RequestFreeMemory(KRequestMemoryValue, waitStatus);
+    ss.RequestFreeMemory(KRequestMemoryValue, waitStatus_second);
+    User::WaitForRequest(waitStatus);
+    User::WaitForRequest(waitStatus_second);
+    iLog->Log(_L("wait status is %d"), waitStatus);
+    iLog->Log(_L("second wait status is %d"), waitStatus_second);
+    RProperty::Get(KUTOomPropertyCategory, KUTOomStubPropertyKey, stubValue );
+    RProperty::Get(KUTOomPropertyCategory, KUTOomMemoryGoodSetKey, value2 );
+    STIF_ASSERT_EQUALS(stubValue, Stub_CMemoryMonitor_RequestFreeMemoryL);
+    STIF_ASSERT_EQUALS(waitStatus.Int(), KErrNoMemory);
+    iLog->Log(_L("RequestFreeMemory_KErrNoMemory passed"));
+
+    }
+
+STIF_TESTDEFINE(RequestOptionalRam_MemoryAvailable)
+    {
+
+    // 3. check call to RequestOptionalRam, 
+    //  memory request can be fullfilled,
+    //  return value should be memory available.
+    //  make a call and check stub
+    iLog->Log(_L("start RequestOptionalRam_MemoryAvailable"));
+    RProperty::Set(KUTOomPropertyCategory, KUTOomStubPropertyKey, 0 );
+    RProperty::Set(KUTOomPropertyCategory, KUTOomFreeMemorySetKey, KMinMemoryNeedValue + 10 );
+    RProperty::Set(KUTOomPropertyCategory, KUTOomMemoryGoodSetKey, KMemoryGoodSetKeyETrueValue );
+    ss.RequestOptionalRam(KRequestMemoryValue, KMinMemoryNeedValue, 1, waitStatus);
+    User::WaitForRequest(waitStatus);
+    iLog->Log(_L("wait status is %d"), waitStatus);
+    RProperty::Get(KUTOomPropertyCategory, KUTOomStubPropertyKey, stubValue );
+    RProperty::Get(KUTOomPropertyCategory, KUTOomMemoryGoodSetKey, value2 );
+    iLog->Log(_L("call return and property value now is %d, %d"), stubValue, value2);
+    STIF_ASSERT_EQUALS(stubValue, Stub_CMemoryMonitor_FreeOptionalRamL);
+    STIF_ASSERT_EQUALS(waitStatus.Int(), 60);
+
+    iLog->Log(_L("RequestOptionalRam_MemoryAvailable passed"));
+    
+    }
+
+STIF_TESTDEFINE(RequestOptionalRam_KErrNoMemory)
+    {
+
+    // 3. check call to RequestOptionalRam, 
+    //  memory request can be fullfilled,
+    //  return value should be memory available.
+    //  make a call and check stub
+    iLog->Log(_L("start RequestOptionalRam_KErrNoMemory"));
+    RProperty::Set(KUTOomPropertyCategory, KUTOomStubPropertyKey, 0 );
+    RProperty::Set(KUTOomPropertyCategory, KUTOomFreeMemorySetKey, KMinMemoryNeedValue - 10 );
+    RProperty::Set(KUTOomPropertyCategory, KUTOomMemoryGoodSetKey, KMemoryGoodSetKeyETrueValue );
+    ss.RequestOptionalRam(KRequestMemoryValue, KMinMemoryNeedValue, 1, waitStatus);
+    User::WaitForRequest(waitStatus);
+    iLog->Log(_L("wait status is %d"), waitStatus);
+    RProperty::Get(KUTOomPropertyCategory, KUTOomStubPropertyKey, stubValue );
+    RProperty::Get(KUTOomPropertyCategory, KUTOomMemoryGoodSetKey, value2 );
+    iLog->Log(_L("call return and property value now is %d, %d"), stubValue, value2);
+    STIF_ASSERT_EQUALS(stubValue, Stub_CMemoryMonitor_FreeOptionalRamL);
+    STIF_ASSERT_EQUALS(waitStatus.Int(), KErrNoMemory);
+
+    iLog->Log(_L("RequestOptionalRam_KErrNoMemory passed"));
+    
+    }
+
+/**
+ * in this test case, 
+ * 1. set property's value, 
+ * 2. check that a stub property's value is changed while mockoommemorymonitor's API 
+ *    being called.
+ */
+STIF_TESTDEFINE(KUikOOMWatchdogStatus_Changed)
+    {
+    // 4. check WatchdogStatusStatusChanged should be triggered,  
+    //  memory request can be fullfilled,
+    //  check that CMemoryMonitor_RequestFreeMemoryPandSL should be called
+    
+
+    RProperty::Set(KUTOomPropertyCategory, KUTOomStubPropertyKey, 0 );
+
+    // set a value to trigger handle function in oomclientrequestqueue
+    TInt err = RProperty::Set(KPSUidUikon, KUikOOMWatchdogStatus, KRequestMemoryValue );
+    STIF_ASSERT_EQUALS(err, KErrNone);
+        
+    //wait aleast that last item in queue had been process and idel enough time
+    User::After(1000000);    //microseconds
+    
+    // check stub property's value
+    RProperty::Get(KUTOomPropertyCategory, KUTOomStubPropertyKey, stubValue );
+    STIF_ASSERT_EQUALS(stubValue, Stub_CMemoryMonitor_RequestFreeMemoryPandSL);
+    
+    CleanupStack::PopAndDestroy();  // watchdogStatusProperty
+    }
+
+#endif
+/**
+ * END OF TEST CASES SECTION
+ */
+
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/utoomconfigparser/.cproject	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,267 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?fileVersion 4.0.0?>
+
+<cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
+<storageModule buildFromInf="false" buildingTestComps="true" cleanLevel="0" concurrentBuildJobs="4" defaultMMPChangedAction="0" extraSBSv2Args="" infBuildComponents="utoomconfigparser.mmp [test component];" infFileLocation="group\bld.inf" macrosFile="" makeEngineToUse="make" manageDependencies="true" moduleId="com.nokia.carbide.cdt.builder.carbideCPPBuilder" overrideMakeEngine="false" overrideWorkspaceSettings="false" promptForMMPChangedAction="true" useConcurrentBuilding="true" useDebugMode="false" useIncrementalBuilder="false" useKeepGoing="false" useMMPMacros="true"/>
+<storageModule moduleId="org.eclipse.cdt.core.settings">
+<cconfiguration id="Emulator Debug (winscw_udeb) [s60_wk50_dfs]">
+<storageModule buildSystemId="com.nokia.carbide.cdt.builder.CarbideConfigurationDataProvider" id="Emulator Debug (winscw_udeb) [s60_wk50_dfs]" moduleId="org.eclipse.cdt.core.settings" name="Emulator Debug (winscw_udeb) [s60_wk50_dfs]">
+<externalSettings/>
+<extensions>
+<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="org.eclipse.cdt.core.PE" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="com.nokia.cdt.debug.cw.symbian.SymbianE32" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MakmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.CarbideMakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.SBSv2ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MWLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RCOMPErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MWCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MakeDefErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+</extensions>
+</storageModule>
+<storageModule moduleId="CarbideConfigurationDataProvider">
+<ENV_VAR_DATA_ID/>
+<ARGUMENTS_DATA_ID ABLDFREEZEARGSSTORAGE="-r"/>
+<ROM_BUILDER_DATA_ID ROMBUILDWORKINGDIRECTORYSTORAGE="W:\epoc32\rom\"/>
+<SBSV2_DATA_ID CONFIG_BASE_PLATFORM="WINSCW" CONFIG_TARGET="UDEB" SBSV2_BUILD_ALIAS="winscw_udeb" SBSV2_CONFIG_DISPLAY_STRING="Emulator Debug (winscw_udeb) [s60_wk50_dfs]"/>
+</storageModule>
+<storageModule filesCache="W:\sf\mw\appsupport\sysresmonitoring\oommonitor\tsrc\utoomconfigparser\group\utoomconfigparser.mmp;W:\sf\mw\appsupport\sysresmonitoring\oommonitor\tsrc\utoomconfigparser\group\bld.inf;W:\epoc32\include\platform_paths.hrh;" includesCache="W:/sf/mw/appsupport/sysresmonitoring/oommonitor/tsrc/utoomconfigparser/inc[LOCAL];W:/sf/mw/appsupport/sysresmonitoring/oommonitor/inc[LOCAL];W:/epoc32/include;W:/epoc32/include/platform;W:/epoc32/include/platform/loc;W:/epoc32/include/platform/loc/sc;W:/epoc32/include/mw;W:/epoc32/include/platform/mw;W:/epoc32/include/platform/mw/loc;W:/epoc32/include/platform/mw/loc/sc;" macrosCache="__DLL__;_UNICODE;__SYMBIAN32__;__SUPPORT_CPP_EXCEPTIONS__;__CW32__;__WINS__;SBSV2;__WINSCW__;_DEBUG;" moduleId="configDataCache" sourcesCache="/oommonitor/inc;/oommonitor/src;/utoomconfigparser/inc;/utoomconfigparser/src;" timestampCache="1280994460645" useMmpMacrosCache="true"/>
+<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+<storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>
+<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
+</cconfiguration>
+<cconfiguration id="Emulator Release (winscw_urel) [s60_wk50_dfs]">
+<storageModule buildSystemId="com.nokia.carbide.cdt.builder.CarbideConfigurationDataProvider" id="Emulator Release (winscw_urel) [s60_wk50_dfs]" moduleId="org.eclipse.cdt.core.settings" name="Emulator Release (winscw_urel) [s60_wk50_dfs]">
+<externalSettings/>
+<extensions>
+<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="org.eclipse.cdt.core.PE" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="com.nokia.cdt.debug.cw.symbian.SymbianE32" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MakmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.CarbideMakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.SBSv2ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MWLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RCOMPErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MWCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MakeDefErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+</extensions>
+</storageModule>
+<storageModule moduleId="CarbideConfigurationDataProvider">
+<ENV_VAR_DATA_ID/>
+<ARGUMENTS_DATA_ID ABLDFREEZEARGSSTORAGE="-r"/>
+<ROM_BUILDER_DATA_ID ROMBUILDWORKINGDIRECTORYSTORAGE="W:\epoc32\rom\"/>
+<SBSV2_DATA_ID CONFIG_BASE_PLATFORM="WINSCW" CONFIG_TARGET="UREL" SBSV2_BUILD_ALIAS="winscw_urel" SBSV2_CONFIG_DISPLAY_STRING="Emulator Release (winscw_urel) [s60_wk50_dfs]"/>
+</storageModule>
+<storageModule filesCache="W:\sf\mw\appsupport\sysresmonitoring\oommonitor\tsrc\utoomconfigparser\group\utoomconfigparser.mmp;W:\sf\mw\appsupport\sysresmonitoring\oommonitor\tsrc\utoomconfigparser\group\bld.inf;W:\epoc32\include\platform_paths.hrh;" includesCache="W:/sf/mw/appsupport/sysresmonitoring/oommonitor/tsrc/utoomconfigparser/inc[LOCAL];W:/sf/mw/appsupport/sysresmonitoring/oommonitor/inc[LOCAL];W:/epoc32/include;W:/epoc32/include/platform;W:/epoc32/include/platform/loc;W:/epoc32/include/platform/loc/sc;W:/epoc32/include/mw;W:/epoc32/include/platform/mw;W:/epoc32/include/platform/mw/loc;W:/epoc32/include/platform/mw/loc/sc;" macrosCache="__DLL__;_UNICODE;__SYMBIAN32__;__SUPPORT_CPP_EXCEPTIONS__;__CW32__;NDEBUG;__WINS__;SBSV2;__WINSCW__;" moduleId="configDataCache" sourcesCache="/oommonitor/inc;/oommonitor/src;/utoomconfigparser/inc;/utoomconfigparser/src;" timestampCache="1280994460723" useMmpMacrosCache="true"/>
+<storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>
+<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
+<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+</cconfiguration>
+<cconfiguration id="Phone Debug (armv5_udeb) [s60_wk50_dfs]">
+<storageModule buildSystemId="com.nokia.carbide.cdt.builder.CarbideConfigurationDataProvider" id="Phone Debug (armv5_udeb) [s60_wk50_dfs]" moduleId="org.eclipse.cdt.core.settings" name="Phone Debug (armv5_udeb) [s60_wk50_dfs]">
+<externalSettings/>
+<extensions>
+<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="org.eclipse.cdt.core.PE" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="com.nokia.cdt.debug.cw.symbian.SymbianE32" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MakmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RVCTLinkerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.CarbideMakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.SBSv2ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.Elf2E32ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RCOMPErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MakeDefErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RVCTCompilerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+</extensions>
+</storageModule>
+<storageModule moduleId="CarbideConfigurationDataProvider">
+<ENV_VAR_DATA_ID/>
+<ARGUMENTS_DATA_ID ABLDFREEZEARGSSTORAGE="-r"/>
+<ROM_BUILDER_DATA_ID ROMBUILDWORKINGDIRECTORYSTORAGE="W:\epoc32\rom\"/>
+<SBSV2_DATA_ID CONFIG_BASE_PLATFORM="ARMV5" CONFIG_TARGET="UDEB" SBSV2_BUILD_ALIAS="armv5_udeb" SBSV2_CONFIG_DISPLAY_STRING="Phone Debug (armv5_udeb) [s60_wk50_dfs]"/>
+</storageModule>
+<storageModule filesCache="W:\sf\mw\appsupport\sysresmonitoring\oommonitor\tsrc\utoomconfigparser\group\utoomconfigparser.mmp;W:\sf\mw\appsupport\sysresmonitoring\oommonitor\tsrc\utoomconfigparser\group\bld.inf;W:\epoc32\include\platform_paths.hrh;" includesCache="W:/sf/mw/appsupport/sysresmonitoring/oommonitor/tsrc/utoomconfigparser/inc[LOCAL];W:/sf/mw/appsupport/sysresmonitoring/oommonitor/inc[LOCAL];W:/epoc32/include;W:/epoc32/include/platform;W:/epoc32/include/platform/loc;W:/epoc32/include/platform/loc/sc;W:/epoc32/include/mw;W:/epoc32/include/platform/mw;W:/epoc32/include/platform/mw/loc;W:/epoc32/include/platform/mw/loc/sc;" macrosCache="__DLL__;_UNICODE;__SUPPORT_CPP_EXCEPTIONS__;__MARM_ARMV5__;__ARMCC__;__ARMCC_2_2__;__SYMBIAN32__;__MARM__;__ARMCC_2__;__EPOC32__;__GENERIC_MARM__;SBSV2;__EABI__;_DEBUG;" moduleId="configDataCache" sourcesCache="/oommonitor/inc;/oommonitor/src;/utoomconfigparser/inc;/utoomconfigparser/src;" timestampCache="1280994460817" useMmpMacrosCache="true"/>
+<storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>
+<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
+<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+</cconfiguration>
+<cconfiguration id="Phone Release (armv5_urel) [s60_wk50_dfs]">
+<storageModule buildSystemId="com.nokia.carbide.cdt.builder.CarbideConfigurationDataProvider" id="Phone Release (armv5_urel) [s60_wk50_dfs]" moduleId="org.eclipse.cdt.core.settings" name="Phone Release (armv5_urel) [s60_wk50_dfs]">
+<externalSettings/>
+<extensions>
+<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="org.eclipse.cdt.core.PE" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="com.nokia.cdt.debug.cw.symbian.SymbianE32" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MakmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RVCTLinkerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.CarbideMakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.SBSv2ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.Elf2E32ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RCOMPErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MakeDefErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RVCTCompilerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+</extensions>
+</storageModule>
+<storageModule moduleId="CarbideConfigurationDataProvider">
+<ENV_VAR_DATA_ID/>
+<ARGUMENTS_DATA_ID ABLDFREEZEARGSSTORAGE="-r"/>
+<ROM_BUILDER_DATA_ID ROMBUILDWORKINGDIRECTORYSTORAGE="W:\epoc32\rom\"/>
+<SBSV2_DATA_ID CONFIG_BASE_PLATFORM="ARMV5" CONFIG_TARGET="UREL" SBSV2_BUILD_ALIAS="armv5_urel" SBSV2_CONFIG_DISPLAY_STRING="Phone Release (armv5_urel) [s60_wk50_dfs]"/>
+</storageModule>
+<storageModule filesCache="W:\sf\mw\appsupport\sysresmonitoring\oommonitor\tsrc\utoomconfigparser\group\utoomconfigparser.mmp;W:\sf\mw\appsupport\sysresmonitoring\oommonitor\tsrc\utoomconfigparser\group\bld.inf;W:\epoc32\include\platform_paths.hrh;" includesCache="W:/sf/mw/appsupport/sysresmonitoring/oommonitor/tsrc/utoomconfigparser/inc[LOCAL];W:/sf/mw/appsupport/sysresmonitoring/oommonitor/inc[LOCAL];W:/epoc32/include;W:/epoc32/include/platform;W:/epoc32/include/platform/loc;W:/epoc32/include/platform/loc/sc;W:/epoc32/include/mw;W:/epoc32/include/platform/mw;W:/epoc32/include/platform/mw/loc;W:/epoc32/include/platform/mw/loc/sc;" macrosCache="__DLL__;_UNICODE;__SUPPORT_CPP_EXCEPTIONS__;__MARM_ARMV5__;NDEBUG;__ARMCC__;__ARMCC_2_2__;__SYMBIAN32__;__MARM__;__ARMCC_2__;__EPOC32__;__GENERIC_MARM__;SBSV2;__EABI__;" moduleId="configDataCache" sourcesCache="/oommonitor/inc;/oommonitor/src;/utoomconfigparser/inc;/utoomconfigparser/src;" timestampCache="1280994460895" useMmpMacrosCache="true"/>
+<storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>
+<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
+<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+</cconfiguration>
+<cconfiguration id="Phone Debug (armv6_udeb) [s60_wk50_dfs]">
+<storageModule buildSystemId="com.nokia.carbide.cdt.builder.CarbideConfigurationDataProvider" id="Phone Debug (armv6_udeb) [s60_wk50_dfs]" moduleId="org.eclipse.cdt.core.settings" name="Phone Debug (armv6_udeb) [s60_wk50_dfs]">
+<externalSettings/>
+<extensions>
+<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="org.eclipse.cdt.core.PE" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="com.nokia.cdt.debug.cw.symbian.SymbianE32" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MakmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RVCTLinkerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.CarbideMakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.SBSv2ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.Elf2E32ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RCOMPErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MakeDefErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RVCTCompilerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+</extensions>
+</storageModule>
+<storageModule moduleId="CarbideConfigurationDataProvider">
+<ENV_VAR_DATA_ID/>
+<ARGUMENTS_DATA_ID ABLDFREEZEARGSSTORAGE="-r"/>
+<ROM_BUILDER_DATA_ID ROMBUILDWORKINGDIRECTORYSTORAGE="W:\epoc32\rom\"/>
+<SBSV2_DATA_ID CONFIG_BASE_PLATFORM="ARMV6" CONFIG_TARGET="UDEB" SBSV2_BUILD_ALIAS="armv6_udeb" SBSV2_CONFIG_DISPLAY_STRING="Phone Debug (armv6_udeb) [s60_wk50_dfs]"/>
+</storageModule>
+<storageModule filesCache="W:\sf\mw\appsupport\sysresmonitoring\oommonitor\tsrc\utoomconfigparser\group\utoomconfigparser.mmp;W:\sf\mw\appsupport\sysresmonitoring\oommonitor\tsrc\utoomconfigparser\group\bld.inf;W:\epoc32\include\platform_paths.hrh;" includesCache="W:/sf/mw/appsupport/sysresmonitoring/oommonitor/tsrc/utoomconfigparser/inc[LOCAL];W:/sf/mw/appsupport/sysresmonitoring/oommonitor/inc[LOCAL];W:/epoc32/include;W:/epoc32/include/platform;W:/epoc32/include/platform/loc;W:/epoc32/include/platform/loc/sc;W:/epoc32/include/mw;W:/epoc32/include/platform/mw;W:/epoc32/include/platform/mw/loc;W:/epoc32/include/platform/mw/loc/sc;" macrosCache="__DLL__;_UNICODE;__SUPPORT_CPP_EXCEPTIONS__;__MARM_ARMV5__;__ARMCC__;__ARMCC_2_2__;__SYMBIAN32__;__MARM__;__ARMCC_2__;__ARMV6__;__EPOC32__;__GENERIC_MARM__;SBSV2;__EABI__;_DEBUG;" moduleId="configDataCache" sourcesCache="/oommonitor/inc;/oommonitor/src;/utoomconfigparser/inc;/utoomconfigparser/src;" timestampCache="1280994460989" useMmpMacrosCache="true"/>
+<storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>
+<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
+<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+</cconfiguration>
+<cconfiguration id="Phone Release (armv6_urel) [s60_wk50_dfs]">
+<storageModule buildSystemId="com.nokia.carbide.cdt.builder.CarbideConfigurationDataProvider" id="Phone Release (armv6_urel) [s60_wk50_dfs]" moduleId="org.eclipse.cdt.core.settings" name="Phone Release (armv6_urel) [s60_wk50_dfs]">
+<externalSettings/>
+<extensions>
+<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="org.eclipse.cdt.core.PE" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="com.nokia.cdt.debug.cw.symbian.SymbianE32" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MakmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RVCTLinkerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.CarbideMakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.SBSv2ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.Elf2E32ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RCOMPErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MakeDefErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RVCTCompilerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+</extensions>
+</storageModule>
+<storageModule moduleId="CarbideConfigurationDataProvider">
+<ENV_VAR_DATA_ID/>
+<ARGUMENTS_DATA_ID ABLDFREEZEARGSSTORAGE="-r"/>
+<ROM_BUILDER_DATA_ID ROMBUILDWORKINGDIRECTORYSTORAGE="W:\epoc32\rom\"/>
+<SBSV2_DATA_ID CONFIG_BASE_PLATFORM="ARMV6" CONFIG_TARGET="UREL" SBSV2_BUILD_ALIAS="armv6_urel" SBSV2_CONFIG_DISPLAY_STRING="Phone Release (armv6_urel) [s60_wk50_dfs]"/>
+</storageModule>
+<storageModule filesCache="W:\sf\mw\appsupport\sysresmonitoring\oommonitor\tsrc\utoomconfigparser\group\utoomconfigparser.mmp;W:\sf\mw\appsupport\sysresmonitoring\oommonitor\tsrc\utoomconfigparser\group\bld.inf;W:\epoc32\include\platform_paths.hrh;" includesCache="W:/sf/mw/appsupport/sysresmonitoring/oommonitor/tsrc/utoomconfigparser/inc[LOCAL];W:/sf/mw/appsupport/sysresmonitoring/oommonitor/inc[LOCAL];W:/epoc32/include;W:/epoc32/include/platform;W:/epoc32/include/platform/loc;W:/epoc32/include/platform/loc/sc;W:/epoc32/include/mw;W:/epoc32/include/platform/mw;W:/epoc32/include/platform/mw/loc;W:/epoc32/include/platform/mw/loc/sc;" macrosCache="__DLL__;_UNICODE;__SUPPORT_CPP_EXCEPTIONS__;NDEBUG;__MARM_ARMV5__;__ARMCC__;__ARMCC_2_2__;__SYMBIAN32__;__MARM__;__ARMCC_2__;__ARMV6__;__EPOC32__;__GENERIC_MARM__;SBSV2;__EABI__;" moduleId="configDataCache" sourcesCache="/oommonitor/inc;/oommonitor/src;/utoomconfigparser/inc;/utoomconfigparser/src;" timestampCache="1280994461067" useMmpMacrosCache="true"/>
+<storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>
+<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
+<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+</cconfiguration>
+<cconfiguration id="Phone Debug (armv7_udeb) [s60_wk50_dfs]">
+<storageModule buildSystemId="com.nokia.carbide.cdt.builder.CarbideConfigurationDataProvider" id="Phone Debug (armv7_udeb) [s60_wk50_dfs]" moduleId="org.eclipse.cdt.core.settings" name="Phone Debug (armv7_udeb) [s60_wk50_dfs]">
+<externalSettings/>
+<extensions>
+<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="org.eclipse.cdt.core.PE" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="com.nokia.cdt.debug.cw.symbian.SymbianE32" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MakmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RVCTLinkerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.CarbideMakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.SBSv2ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.Elf2E32ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RCOMPErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MakeDefErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RVCTCompilerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+</extensions>
+</storageModule>
+<storageModule moduleId="CarbideConfigurationDataProvider">
+<ENV_VAR_DATA_ID/>
+<ARGUMENTS_DATA_ID ABLDFREEZEARGSSTORAGE="-r"/>
+<ROM_BUILDER_DATA_ID ROMBUILDWORKINGDIRECTORYSTORAGE="W:\epoc32\rom\"/>
+<SBSV2_DATA_ID CONFIG_BASE_PLATFORM="ARMV7" CONFIG_TARGET="UDEB" SBSV2_BUILD_ALIAS="armv7_udeb" SBSV2_CONFIG_DISPLAY_STRING="Phone Debug (armv7_udeb) [s60_wk50_dfs]"/>
+</storageModule>
+<storageModule filesCache="W:\sf\mw\appsupport\sysresmonitoring\oommonitor\tsrc\utoomconfigparser\group\utoomconfigparser.mmp;W:\sf\mw\appsupport\sysresmonitoring\oommonitor\tsrc\utoomconfigparser\group\bld.inf;W:\epoc32\include\platform_paths.hrh;" includesCache="W:/sf/mw/appsupport/sysresmonitoring/oommonitor/tsrc/utoomconfigparser/inc[LOCAL];W:/sf/mw/appsupport/sysresmonitoring/oommonitor/inc[LOCAL];W:/epoc32/include;W:/epoc32/include/platform;W:/epoc32/include/platform/loc;W:/epoc32/include/platform/loc/sc;W:/epoc32/include/mw;W:/epoc32/include/platform/mw;W:/epoc32/include/platform/mw/loc;W:/epoc32/include/platform/mw/loc/sc;" macrosCache="__DLL__;_UNICODE;__SUPPORT_CPP_EXCEPTIONS__;__ARMV7__;__MARM_ARMV5__;__ARMCC__;__ARMCC_2_2__;__SYMBIAN32__;__MARM__;__ARMCC_2__;__EPOC32__;__GENERIC_MARM__;SBSV2;__EABI__;_DEBUG;" moduleId="configDataCache" sourcesCache="/oommonitor/inc;/oommonitor/src;/utoomconfigparser/inc;/utoomconfigparser/src;" timestampCache="1280994461161" useMmpMacrosCache="true"/>
+<storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>
+<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
+<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+</cconfiguration>
+<cconfiguration id="Phone Release (armv7_urel) [s60_wk50_dfs]">
+<storageModule buildSystemId="com.nokia.carbide.cdt.builder.CarbideConfigurationDataProvider" id="Phone Release (armv7_urel) [s60_wk50_dfs]" moduleId="org.eclipse.cdt.core.settings" name="Phone Release (armv7_urel) [s60_wk50_dfs]">
+<externalSettings/>
+<extensions>
+<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="org.eclipse.cdt.core.PE" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="com.nokia.cdt.debug.cw.symbian.SymbianE32" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MakmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RVCTLinkerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.CarbideMakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.SBSv2ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.Elf2E32ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RCOMPErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MakeDefErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RVCTCompilerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+</extensions>
+</storageModule>
+<storageModule moduleId="CarbideConfigurationDataProvider">
+<ENV_VAR_DATA_ID/>
+<ARGUMENTS_DATA_ID ABLDFREEZEARGSSTORAGE="-r"/>
+<ROM_BUILDER_DATA_ID ROMBUILDWORKINGDIRECTORYSTORAGE="W:\epoc32\rom\"/>
+<SBSV2_DATA_ID CONFIG_BASE_PLATFORM="ARMV7" CONFIG_TARGET="UREL" SBSV2_BUILD_ALIAS="armv7_urel" SBSV2_CONFIG_DISPLAY_STRING="Phone Release (armv7_urel) [s60_wk50_dfs]"/>
+</storageModule>
+<storageModule filesCache="W:\sf\mw\appsupport\sysresmonitoring\oommonitor\tsrc\utoomconfigparser\group\utoomconfigparser.mmp;W:\sf\mw\appsupport\sysresmonitoring\oommonitor\tsrc\utoomconfigparser\group\bld.inf;W:\epoc32\include\platform_paths.hrh;" includesCache="W:/sf/mw/appsupport/sysresmonitoring/oommonitor/tsrc/utoomconfigparser/inc[LOCAL];W:/sf/mw/appsupport/sysresmonitoring/oommonitor/inc[LOCAL];W:/epoc32/include;W:/epoc32/include/platform;W:/epoc32/include/platform/loc;W:/epoc32/include/platform/loc/sc;W:/epoc32/include/mw;W:/epoc32/include/platform/mw;W:/epoc32/include/platform/mw/loc;W:/epoc32/include/platform/mw/loc/sc;" macrosCache="__DLL__;_UNICODE;__SUPPORT_CPP_EXCEPTIONS__;__ARMV7__;NDEBUG;__MARM_ARMV5__;__ARMCC__;__ARMCC_2_2__;__SYMBIAN32__;__MARM__;__ARMCC_2__;__EPOC32__;__GENERIC_MARM__;SBSV2;__EABI__;" moduleId="configDataCache" sourcesCache="/oommonitor/inc;/oommonitor/src;/utoomconfigparser/inc;/utoomconfigparser/src;" timestampCache="1280994461239" useMmpMacrosCache="true"/>
+<storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>
+<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
+<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+</cconfiguration>
+<cconfiguration id="Phone Debug (armv9e_udeb) [s60_wk50_dfs]">
+<storageModule buildSystemId="com.nokia.carbide.cdt.builder.CarbideConfigurationDataProvider" id="Phone Debug (armv9e_udeb) [s60_wk50_dfs]" moduleId="org.eclipse.cdt.core.settings" name="Phone Debug (armv9e_udeb) [s60_wk50_dfs]">
+<externalSettings/>
+<extensions>
+<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="org.eclipse.cdt.core.PE" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="com.nokia.cdt.debug.cw.symbian.SymbianE32" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MakmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RVCTLinkerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.CarbideMakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.SBSv2ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.Elf2E32ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RCOMPErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MakeDefErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RVCTCompilerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+</extensions>
+</storageModule>
+<storageModule moduleId="CarbideConfigurationDataProvider">
+<ENV_VAR_DATA_ID/>
+<ARGUMENTS_DATA_ID ABLDFREEZEARGSSTORAGE="-r"/>
+<ROM_BUILDER_DATA_ID ROMBUILDWORKINGDIRECTORYSTORAGE="W:\epoc32\rom\"/>
+<SBSV2_DATA_ID CONFIG_BASE_PLATFORM="ARMV9E" CONFIG_TARGET="UDEB" SBSV2_BUILD_ALIAS="armv9e_udeb" SBSV2_CONFIG_DISPLAY_STRING="Phone Debug (armv9e_udeb) [s60_wk50_dfs]"/>
+</storageModule>
+<storageModule filesCache="W:\sf\mw\appsupport\sysresmonitoring\oommonitor\tsrc\utoomconfigparser\group\utoomconfigparser.mmp;W:\sf\mw\appsupport\sysresmonitoring\oommonitor\tsrc\utoomconfigparser\group\bld.inf;W:\epoc32\include\platform_paths.hrh;" includesCache="W:/sf/mw/appsupport/sysresmonitoring/oommonitor/tsrc/utoomconfigparser/inc[LOCAL];W:/sf/mw/appsupport/sysresmonitoring/oommonitor/inc[LOCAL];W:/epoc32/include;W:/epoc32/include/platform;W:/epoc32/include/platform/loc;W:/epoc32/include/platform/loc/sc;W:/epoc32/include/mw;W:/epoc32/include/platform/mw;W:/epoc32/include/platform/mw/loc;W:/epoc32/include/platform/mw/loc/sc;" macrosCache="__DLL__;_UNICODE;__SYMBIAN32__;__SUPPORT_CPP_EXCEPTIONS__;SBSV2;_DEBUG;" moduleId="configDataCache" sourcesCache="/oommonitor/inc;/oommonitor/src;/utoomconfigparser/inc;/utoomconfigparser/src;" timestampCache="1280994461333" useMmpMacrosCache="true"/>
+<storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>
+<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
+<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+</cconfiguration>
+</storageModule>
+</cproject>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/utoomconfigparser/.project	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>utoomconfigparser</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>com.nokia.s60tools.ctc.ctcPreBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>com.nokia.carbide.cdt.builder.carbideCPPBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>com.nokia.s60tools.ctc.ctcPostBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.cdt.core.cnature</nature>
+		<nature>org.eclipse.cdt.core.ccnature</nature>
+		<nature>com.nokia.carbide.cdt.builder.carbideCPPBuilderNature</nature>
+		<nature>com.nokia.carbide.cdt.builder.carbideSBSv2BuilderNature</nature>
+		<nature>com.nokia.s60tools.ctc.ctcNature</nature>
+	</natures>
+</projectDescription>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/utoomconfigparser/Bmarm/utoomconfigparserU.DEF	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,4 @@
+EXPORTS
+	LibEntryL__Fv @ 1 NONAME R3UNUSED ; LibEntryL(void)
+	SetRequirements__FRP16CTestModuleParamRUl @ 2 NONAME R3UNUSED ; SetRequirements(CTestModuleParam *&, unsigned long &)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/utoomconfigparser/Bwins/utoomconfigparseru.def	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,4 @@
+EXPORTS
+	?LibEntryL@@YAPAVCTestModuleBase@@XZ @ 1 NONAME ; class CTestModuleBase * __cdecl LibEntryL(void)
+	?SetRequirements@@YAHAAPAVCTestModuleParam@@AAK@Z @ 2 NONAME ; int __cdecl SetRequirements(class CTestModuleParam * &,unsigned long &)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/utoomconfigparser/eabi/utoomconfigparseru.def	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,4 @@
+EXPORTS
+	_Z9LibEntryLv @ 1 NONAME
+	_Z15SetRequirementsRP16CTestModuleParamRm @ 2 NONAME
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/utoomconfigparser/group/bld.inf	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,59 @@
+/*
+* 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:
+*
+*/
+
+PRJ_PLATFORMS
+// specify the platforms your component needs to be built for here
+// defaults to WINS MARM so you can ignore this if you just build these
+
+	DEFAULT
+
+PRJ_TESTEXPORTS
+// NOTE: If using ARS requirements all export operations should be done under this.
+// 'abld test export'
+
+PRJ_EXPORTS
+// Specify the source file followed by its destination here
+// copy will be used to copy the source file to its destination
+// If there's no destination then the source file will be copied
+// to the same name in \epoc32\include
+// Example: 
+/*
+\agnmodel\inc\AGMCOMON.H
+*/
+
+PRJ_TESTMMPFILES
+
+	utoomconfigparser.mmp
+
+PRJ_MMPFILES
+
+
+// Specify the .mmp files required for building the important component
+// releasables.
+//
+// Specify "tidy" if the component you need to build doesn't need to be
+// released. Specify "ignore" if the MMP file exists but should be
+// ignored.
+// Example:
+/*
+\agnmodel\group\agnmodel.mmp
+#if defined(MARM)
+\agnmodel\group\agsvexe.mmp
+#endif
+*/
+
+//  End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/utoomconfigparser/group/utoomconfigparser.mmp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,103 @@
+/*TYPE STIFUNIT*/
+/*
+* 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: MMP file for STIF Test Framework's STIFUnit test module.
+*
+*/
+
+#include <platform_paths.hrh>
+
+SMPSAFE
+
+TARGET          utoomconfigparser.dll
+TARGETTYPE      dll
+UID             0x1000008D 0x2002CAD2
+
+CAPABILITY      ALL -TCB
+/* Remove comments and replace 0x00000000 with correct vendor id */
+// VENDORID     0x00000000
+/* Remove comments and replace 0x00000000 with correct secure id */
+// SECUREID     0x00000000
+
+//TARGETPATH      ?target_path
+DEFFILE         utoomconfigparser.def
+
+USERINCLUDE     ../inc 
+USERINCLUDE     ../../../inc 
+
+
+OS_LAYER_SYSTEMINCLUDE
+MW_LAYER_SYSTEMINCLUDE
+
+SOURCEPATH      ../src
+
+SOURCE          utoomconfigparser.cpp
+SOURCE          utoomconfigparserCases.cpp
+
+SOURCEPATH      ../../../src
+SOURCE          oomconfigparser.cpp
+SOURCE          oomconfig.cpp
+SOURCE          oomapplicationconfig.cpp
+SOURCE          oomcloseappconfig.cpp
+SOURCE          oomactionconfig.cpp
+SOURCE          oomglobalconfig.cpp
+SOURCE          oompanic.cpp
+SOURCE          oomforegroundrule.cpp
+SOURCE          oomidletimerule.cpp
+SOURCE          oomrunpluginconfig.cpp
+SOURCE          oomwindowgrouplist.cpp
+
+//RESOURCE        resource_file
+//RESOURCE        resource_file2
+
+LIBRARY         euser.lib
+LIBRARY         stiftestinterface.lib
+LIBRARY         apparc.lib
+LIBRARY         eikcore.lib
+LIBRARY         aknnotify.lib
+LIBRARY         apgrfx.lib
+LIBRARY         ws32.lib
+LIBRARY         bafl.lib
+LIBRARY         ecom.lib
+LIBRARY         hal.lib
+LIBRARY         efsrv.lib
+LIBRARY         xmlframework.lib
+LIBRARY         cone.lib
+#ifdef _DEBUG
+LIBRARY         flogger.lib
+#endif 
+
+LANG            SC
+
+/*
+START WINS      
+?wins_specific_information
+END
+
+START MARM
+?marm_specific_information
+END
+*/
+// Other possible keywords:
+ 
+// DOCUMENT     ?file, that is not compiled, but added to MSVC project workspace (i.e. release notes)
+/*
+START BITMAP ?target
+TARGETPATH   ?emulated_path_on_target_machine
+HEADER
+SOURCE       ?color_depth ?source_bitmap
+END
+*/
+// DEFFILE ?filename
+// AIF ?filename// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/utoomconfigparser/group/utoomconfigparser.pkg	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,60 @@
+;
+; 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:
+;
+; 	Installation file for STIF
+;
+
+; Languages
+&EN
+
+; Provide value for uid
+#{"STIF"},(0x00000000),1,1,0,TYPE=SA
+
+; Series60 product id for S60 3.0
+[0x101F7961], 0, 0, 0, {"Series60ProductID"}
+
+; Localised Vendor name
+%{"Nokia"}
+
+; Unique Vendor name
+:"Nokia"
+
+; Logo
+; None
+
+; Package signature - Optional
+; None
+
+; Start of Package body
+
+; Condition blocks
+; None
+
+; Options list
+; None
+
+; Install files
+"\epoc32\release\armv5\udeb\utoomconfigparser.dll"   -   "!:\Sys\Bin\utoomconfigparser.dll"
+  
+; Embedded SIS 
+; None
+
+; End of Package body
+
+; PKG dependencies
+; None
+
+; PKG capabilities
+; None
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/utoomconfigparser/src/utoomconfigparser.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,125 @@
+/*
+* 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: This file contains STIFUnit module implementation.
+*
+*/
+
+/******************************************************************************/
+/*
+ *
+ * Test module configuration 
+*/
+
+// Version
+#define TEST_MODULE_VERSION_MAJOR 0
+#define TEST_MODULE_VERSION_MINOR 0
+#define TEST_MODULE_VERSION_BUILD 0
+
+// Uncomment following defines, if you want to provide implementation
+// of enlisted virtual methods of test module.
+// Implementation part is located at the end of this file.
+//#define STIFUNIT_OOMTESTQUERYL
+//#define STIFUNIT_OOMTESTINITIALIZEL
+//#define STIFUNIT_OOMHANDLEWARNINGL
+//#define STIFUNIT_OOMTESTFINALIZEL
+// Uncomment following define, if you want to increase heap or stack size.
+// #define STIFUNIT_SETHEAPANDSTACKSIZE
+/******************************************************************************/
+
+
+/*
+ * Test module internals. Please do not edit them. 
+*/
+
+// Includes
+#include <e32base.h>
+
+// Literals
+//_LIT( KUnitLogPath, "\\logs\\testframework\\utoomconfigparser\\" ); 
+_LIT( KUnitLogPath, "\\logs\\testframework\\" );
+_LIT( KUnitLogFile, "utoomconfigparser.txt" ); 
+_LIT( KLogStart, "utoomconfigparser logging starts!" );
+
+// Defines
+#define STIF_UNIT_TEST_CASES "../src/utoomconfigparserCases.cpp"
+#define STIF_UNIT_MODULE_CLASS_NAME Cutoomconfigparser
+#define STIF_UNIT_MODULE_NAME _L("utoomconfigparser.dll")
+
+// Include STIF unit generic file
+#include <StifUnitGeneric.h>
+
+/*
+ * Implementation of setHeapAndStack virtual methods.
+ * To changes heap and stack size provide new values to iTestThreadStackSize, iTestThreadMinHeap and iTestThreadMaxHeap. 
+*/
+
+#ifdef STIFUNIT_SETHEAPANDSTACKSIZE
+EXPORT_C TInt SetRequirements( CTestModuleParam*& aTestModuleParam, 
+                               TUint32& aParameterValid )
+    {
+    aParameterValid = KStifTestModuleParameterChanged;
+    CTestModuleParamVer01* param = CTestModuleParamVer01::NewL(); 
+    // Stack size 
+    param->iTestThreadStackSize= 16384; // 16K stack 
+    // Heap sizes 
+    param->iTestThreadMinHeap = 4096; // 4K heap min 
+    param->iTestThreadMaxHeap = 1048576;// 1M heap max 
+
+    return KErrNone;
+    }
+#undef STIFUNIT_SETHEAPANDSTACKSIZE
+#endif
+
+/*
+ * User implementation of OOM virtual methods.
+ * Providing own implementation requires uncommenting defines at the
+ * beginnig of this file.   
+*/
+#ifdef STIFUNIT_OOMTESTQUERYL
+TBool Cutoomconfigparser::OOMTestQueryL( const TFileName& /*aTestCaseFile*/, 
+                                   const TInt aCaseNumber, 
+                                   TOOMFailureType& aFailureType, 
+                                   TInt& aFirstMemFailure, 
+                                   TInt& aLastMemFailure)
+    {
+    }
+#undef STIFUNIT_OOMTESTQUERYL
+#endif
+
+#ifdef STIFUNIT_OOMTESTINITIALIZEL
+void Cutoomconfigparser::OOMTestInitializeL( const TFileName& /*aTestCaseFile*/, 
+                                       const TInt /*aCaseNumber*/ )
+    {
+    }
+#undef STIFUNIT_OOMTESTINITIALIZEL
+#endif
+
+#ifdef STIFUNIT_OOMHANDLEWARNINGL
+void Cutoomconfigparser::OOMHandleWarningL( const TFileName& /*aTestCaseFile*/,
+                                      const TInt /*aCaseNumber*/, 
+                                      TInt& /*aFailNextValue*/)
+    {
+    }
+#undef STIFUNIT_OOMHANDLEWARNINGL
+#endif
+    
+#ifdef STIFUNIT_OOMTESTFINALIZEL
+void Cutoomconfigparser::OOMTestFinalizeL( const TFileName& /*aTestCaseFile*/, 
+                                     const TInt /*aCaseNumber*/ )
+    {
+    }
+#undef STIFUNIT_OOMTESTFINALIZEL
+#endif
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysresmonitoring/oommonitor/tsrc/utoomconfigparser/src/utoomconfigparserCases.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,442 @@
+/*
+* 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: This file contains STIFUnit implementation.
+*
+*/
+
+/**
+ * STIF_UNIT_INCLUDE SECTION - put all #includes between STIF_UNIT_INCLUDE_SECTION
+ *                             and STIF_UNIT_INCLUDE_SECTION_END
+ */
+#ifdef STIF_UNIT_INCLUDE_SECTION
+#include <f32file.h> 
+#include <xml/parser.h>
+#include <platform/xml/documentparameters.h>
+#include <stringpool.h>
+
+#include "oomrunpluginconfig.h"
+#include "oomconfig.h"
+#include "oomconfigparser.h"
+#include "oomwindowgrouplist.h"
+#include "oomcloseappconfig.h"
+#include "oomapplicationconfig.h"
+
+#endif //STIF_UNIT_INCLUDE_SECTION_END
+
+/**
+ * GLOBAL VARIABLES SECTION
+ */
+#ifdef TEST_VAR_DECLARATIONS
+	/**
+	 * Example of variable common for some test cases
+	 */
+     TInt err;
+     RFs configRFs;
+	 COomConfig* oomConfig;
+	 COomConfigParser* oomConfigParser;
+	 // this plugin should be defined in oomconfig.xml 
+	 // locate at z:\\private\\10207218\\oomconfig.xml
+	 // if this changes, also update this value to let the 
+	 // test valid
+	 const TUint KTestPluginId = 0x10281f93;
+	 const TUint KTestPluginPriority = 30;
+	 const TUint KTestTargetAPPId = 0x10008d39;
+	 const TUint KTestAppId = 0x10005903;
+	 const TInt KOomDefaultAppId = 0;
+     const TUint KTestDefaultAppPriority = 80;
+     const TUint KOomErrBadXml = 45;
+     
+     // 
+#endif
+/**
+ * END OF GLOBAL VARIABLES SECTION
+ */
+
+
+/**
+ * TEST CASES SECTION
+ */
+#ifdef TEST_CASES
+/**
+ * STIF_SETUP defines activities needed before every test case.
+ */
+STIF_SETUP
+{
+	/** Example of use of STIF_SETUP - a variable common for some test cases is initialized
+	 */
+     oomConfig = COomConfig::NewL();
+     STIF_ASSERT_NOT_NULL(oomConfig);
+     CleanupStack::PushL(oomConfig);
+
+     err = configRFs.Connect();  
+     CleanupClosePushL(configRFs);
+     STIF_ASSERT_EQUALS(err, KErrNone);
+
+     oomConfigParser = new (ELeave) COomConfigParser(*oomConfig, configRFs);    
+     STIF_ASSERT_NOT_NULL(oomConfigParser);
+     CleanupStack::PushL(oomConfigParser);
+     
+}
+
+/**
+ * STIF_TEARDOWN defines activities needed after every test case
+ */
+STIF_TEARDOWN
+{
+	/** Example of use of STIF_TEARDOWN - a variable common for some test cases is destroyed
+	 */
+    iLog->Log(_L("enter tear down"));
+    CleanupStack::PopAndDestroy(oomConfigParser);
+    iLog->Log(_L("oomConfigParser pop and desed"));
+    CleanupStack::PopAndDestroy();      //configRFs
+    iLog->Log(_L("configRFs closed"));
+    CleanupStack::PopAndDestroy(oomConfig);
+    iLog->Log(_L("oomconfig pop and desed"));
+}
+
+/**
+ * STIF_TESTDEFINE defines a test case
+ *
+ *  Example test case - length of string is checked.
+ *  The only argument of macro is a name of test case.
+ */
+STIF_TESTDEFINE(oomconfigparser_ParseL)
+{
+    
+    iLog->Log(_L("ParseL start"));
+    oomConfigParser->ParseL();
+    iLog->Log(_L("ParseL returned"));
+    
+    COomRunPluginConfig& runPC = oomConfig->GetPluginConfig(KTestPluginId);
+
+    iLog->Log(_L("GetPluginConfig returned %x, %x"), runPC.Id(), runPC.TargetApp());
+    if( runPC.Id()!=KTestPluginId )
+        {
+        aResult.SetResult( KErrGeneral, _L("expected plugin did not found") );
+        }
+    if( runPC.TargetApp()!=KTestTargetAPPId )
+        {
+        aResult.SetResult( KErrGeneral, _L("expected Target APP id  did not match") );
+        }
+    aResult.SetResult( KErrNone, _L("ParseL passed"));
+}
+
+STIF_TESTDEFINE(oomconfigparser_OnStartElementL_Error)
+{
+    RTagInfo element;
+    RAttributeArray attrArray;
+    
+    STIF_ASSERT_PANIC(KOomErrBadXml, oomConfigParser->OnStartElementL(element, attrArray, KErrGeneral));
+}
+
+// call OnStartDocumentL, no leave
+STIF_TESTDEFINE(oomconfigparser_OnStartDocumentL)
+    {
+    const RDocumentParameters configDocument;
+    TRAP(err, oomConfigParser->OnStartDocumentL(configDocument, KErrNone));
+    STIF_ASSERT_EQUALS(err, KErrNone);    
+    }
+
+// call OnEndDocumentL, no leave
+STIF_TESTDEFINE(oomconfigparser_OnEndDocumentL)
+    {
+    TRAP(err, oomConfigParser->OnEndDocumentL(KErrNone));
+    STIF_ASSERT_EQUALS(err, KErrNone);    
+    }
+
+// call OnStartPrefixMappingL, no leave
+STIF_TESTDEFINE(oomconfigparser_OnStartPrefixMappingL)
+    {
+    RString par1;
+    RString par2;
+    
+    TRAP(err, oomConfigParser->OnStartPrefixMappingL(par1, par2, KErrNone));
+    STIF_ASSERT_EQUALS(err, KErrNone);    
+    }
+
+STIF_TESTDEFINE(oomconfigparser_OnEndPrefixMappingL)
+    {
+    RString par1;
+    
+    TRAP(err, oomConfigParser->OnEndPrefixMappingL(par1, KErrNone));
+    STIF_ASSERT_EQUALS(err, KErrNone);    
+    }
+
+STIF_TESTDEFINE(oomconfigparser_OnIgnorableWhiteSpaceL)
+    {
+    TPtrC8 par1; 
+    
+    TRAP(err, oomConfigParser->OnIgnorableWhiteSpaceL(par1, KErrNone));
+    STIF_ASSERT_EQUALS(err, KErrNone);        
+    }
+STIF_TESTDEFINE(oomconfigparser_OnSkippedEntityL)
+    {
+    RString par1;
+    
+    TRAP(err, oomConfigParser->OnSkippedEntityL(par1, KErrNone));
+    STIF_ASSERT_EQUALS(err, KErrNone);    
+    }
+
+STIF_TESTDEFINE(oomconfigparser_OnProcessingInstructionL)
+    {
+    TPtrC8 par1; 
+    TPtrC8 par2; 
+    
+    TRAP(err, oomConfigParser->OnProcessingInstructionL(par1, par2, KErrNone));
+    STIF_ASSERT_EQUALS(err, KErrNone);        
+    }
+
+STIF_TESTDEFINE(oomconfigparser_OnError)
+    {
+    oomConfigParser->OnError(KErrNone);
+    }
+STIF_TESTDEFINE(oomconfigparser_GetExtendedInterface)
+    {
+    TInt32 par1(KErrNone);
+    TAny* retPtr;
+    retPtr = oomConfigParser->GetExtendedInterface(par1);
+    STIF_ASSERT_NULL(retPtr);        
+    }
+STIF_TESTDEFINE(OomIdleTimeRule_RuleIsApplicable)
+    {
+
+    RWsSession ws;
+    err = ws.Connect();
+    
+    if( err!=KErrNone)
+        {
+        ws.Close();
+        aResult.SetResult( KErrGeneral, _L("WsSession connect() return error") );
+        }
+    else
+        {    
+        CleanupClosePushL(ws);
+        oomConfigParser->ParseL();
+
+        COomWindowGroupList* oomWindowGroupList = COomWindowGroupList::NewL(ws);
+        CleanupStack::PushL(oomWindowGroupList);
+
+        // get appconfig
+        COomCloseAppConfig* oomCloseAppConfig = oomConfig->GetApplicationConfig(KOomDefaultAppId).GetAppCloseConfig();
+        STIF_ASSERT_NOT_NULL(oomCloseAppConfig);
+        // get prioity, as we did not wait about 15 minutes, so default value -- 80 returned.
+        TUint priority = oomCloseAppConfig->CalculateCloseAppPriority(*oomWindowGroupList, oomWindowGroupList->Count() - 1);
+        iLog->Log(_L("call CalculateCloseAppPriority returned with %d"), priority);
+        STIF_ASSERT_EQUALS(priority, KTestDefaultAppPriority);      
+            
+        CleanupStack::PopAndDestroy(oomWindowGroupList);
+        CleanupStack::PopAndDestroy();  //ws
+        }
+    }
+
+STIF_TESTDEFINE(OomForegroundRule_RuleIsApplicable)
+{
+    
+    RWsSession ws;
+    err = ws.Connect();
+    if( err!=KErrNone)
+        {
+        ws.Close();
+        aResult.SetResult( KErrGeneral, _L("WsSession connect() return error") );
+        }
+    else
+        {    
+        CleanupClosePushL(ws);        
+        
+        oomConfigParser->ParseL();
+        iLog->Log(_L("ParseL returned"));
+
+        COomWindowGroupList* oomWindowGroupList = COomWindowGroupList::NewL(ws);
+        CleanupStack::PushL(oomWindowGroupList);
+
+        COomRunPluginConfig& runPC = oomConfig->GetPluginConfig(KTestPluginId);
+        
+        iLog->Log(_L("GetPluginConfig returned %x, %x"), runPC.Id(), runPC.TargetApp());
+        if( runPC.Id()!=KTestPluginId )
+            {
+            aResult.SetResult( KErrGeneral, _L("expected plugin did not found") );
+            }
+        else
+            {            
+            TUint priority = runPC.CalculatePluginPriority(*oomWindowGroupList);
+            // as this plugin's target app is Browser, which is not on foreground by now
+            // so we got default priority --30 returned
+            iLog->Log(_L("call CalculateCloseAppPriority returned with %d"), priority);
+            STIF_ASSERT_EQUALS(priority, KTestPluginPriority);      
+            }
+        
+        CleanupStack::PopAndDestroy(oomWindowGroupList);
+        CleanupStack::PopAndDestroy();  //ws
+        }
+}
+STIF_TESTDEFINE(oomconfigparser_SetForceCheckConfigL)
+    {
+    //const TUint KCurrPluginId = 0x200267DB;
+    TInt expectedPriority = 100;
+    RTagInfo elementTagInfo;
+    RAttribute priAttr;
+    RAttribute idleAttr;
+    RAttributeArray elementAttrs;
+
+    // tag name and attribute
+    CleanupClosePushL(elementTagInfo);
+    CleanupClosePushL(priAttr);
+    CleanupClosePushL(idleAttr);
+    CleanupClosePushL(elementAttrs);    
+    
+    
+    // string table
+    _LIT8(KOomConfigForceCheckAtPriority, "force_check");
+    TPtrC8 par1(KOomConfigForceCheckAtPriority); 
+    _LIT8(KOomAttibutePriority, "priority");    
+    TPtrC8 par2(KOomAttibutePriority); 
+    _LIT8(KValue, "100");
+    TPtrC8 par3(KValue); 
+
+    _LIT8(KOomAttributePluginIdlePriority, "plugin_idle_priority");
+    TPtrC8 par11(KOomAttributePluginIdlePriority); 
+    _LIT8(KOomAttibuteIdleTime, "idle_time");    
+    TPtrC8 par12(KOomAttibuteIdleTime); 
+    _LIT8(KIdleTimeValue, "900");
+    TPtrC8 par13(KIdleTimeValue); 
+    _LIT8(KOomAttibuteIdlePriority, "priority");
+    TPtrC8 par14(KOomAttibuteIdlePriority); 
+    _LIT8(KPriorityValue, "100");
+    TPtrC8 par15(KPriorityValue);
+    
+    // Intermediate table of pointers to strings
+    const void * const KStringPointers2[] =    
+            {    
+            (const void*)&KOomConfigForceCheckAtPriority,    
+            (const void*)&KOomAttibutePriority,    
+            (const void*)&KValue,    
+            (const void*)&KOomAttributePluginIdlePriority,    
+            (const void*)&KOomAttibuteIdleTime,    
+            (const void*)&KIdleTimeValue,    
+            (const void*)&KOomAttibuteIdlePriority,    
+            (const void*)&KPriorityValue    
+            };
+
+    const TStringTable exampleStringTable = {8, KStringPointers2, EFalse};   
+    iLog->Log(_L("1"));
+    // open string table and push to cleanup
+    RStringPool stringPool;
+    stringPool.OpenL(exampleStringTable);
+    CleanupClosePushL(stringPool);
+
+    // all rstrings
+    RString pluginIdlePriority;         
+    RString idleTimeName;
+    RString idleTimeValue;     
+    RString idlePriorityName;
+    RString idlePriorityValue;
+    RString forceCheck;
+    RString attrNamePriority;
+    RString attrValuePriority;
+    
+    pluginIdlePriority = stringPool.OpenStringL(par11);    
+    CleanupClosePushL(pluginIdlePriority);
+    
+    idleTimeName = stringPool.OpenStringL(par12);
+    CleanupClosePushL(idleTimeName);
+    idleTimeValue = stringPool.OpenStringL(par13);    
+    CleanupClosePushL(idleTimeValue);
+    
+    idlePriorityName = stringPool.OpenStringL(par14);
+    CleanupClosePushL(idlePriorityName);
+    idlePriorityValue = stringPool.OpenStringL(par15);    
+    CleanupClosePushL(idlePriorityValue);
+
+    forceCheck = stringPool.OpenStringL(par1);
+    CleanupClosePushL(forceCheck);
+
+    attrNamePriority = stringPool.OpenStringL(par2);
+    CleanupClosePushL(attrNamePriority);
+    attrValuePriority = stringPool.OpenStringL(par3);
+    CleanupClosePushL(attrValuePriority);
+    iLog->Log(_L("2"));
+
+    iLog->Log(_L("start oomconfigparser_SetForceCheckConfigL"));
+    
+    
+    oomConfigParser->ParseL();
+    iLog->Log(_L("ParseL returned"));
+
+    // insert a rule for force check
+    elementTagInfo.Open(forceCheck, forceCheck, forceCheck);
+    priAttr.Open(forceCheck, forceCheck, attrNamePriority, attrValuePriority);
+    elementAttrs.AppendL(priAttr);
+    
+    iLog->Log(_L("3"));
+    
+    oomConfigParser->OnStartElementL(elementTagInfo, elementAttrs, KErrNone);
+    iLog->Log(_L("4"));
+    
+    // get global force_check rule with non-exist priority, should return a null pointer
+    TUint *priority(NULL);
+    priority = oomConfig->GlobalConfig().iForceCheckPriorities.Find(expectedPriority-1);
+    STIF_ASSERT_NULL(priority);
+    // get global force_check rule with a priority value that just added in
+    // so should return a correct value
+    priority = oomConfig->GlobalConfig().iForceCheckPriorities.Find(expectedPriority);
+    STIF_ASSERT_NOT_NULL(priority);
+    iLog->Log(_L("call CalculateCloseAppPriority returned with %d"), *priority);
+    
+    // reset element content for ...
+    elementAttrs.Close();
+    priAttr.Close();
+    elementTagInfo.Close();
+    
+    // insert a rule for plugin idle time    
+    elementTagInfo.Open(pluginIdlePriority, pluginIdlePriority, pluginIdlePriority);
+    
+    idleAttr.Open(pluginIdlePriority, pluginIdlePriority, idleTimeName, idleTimeValue);
+    priAttr.Open(pluginIdlePriority, pluginIdlePriority, idlePriorityName, idlePriorityValue);
+    elementAttrs.AppendL(idleAttr);
+    elementAttrs.AppendL(priAttr);
+    
+    iLog->Log(_L("3"));
+    
+    oomConfigParser->OnStartElementL(elementTagInfo, elementAttrs, KErrNone);
+    iLog->Log(_L("add a fake plugin idle priority rule successfully."));
+    
+    
+    CleanupStack::PopAndDestroy(13);      //
+    /*
+    // close all RStrings
+    CleanupStack::PopAndDestroy();      //
+    CleanupStack::PopAndDestroy();      //
+    CleanupStack::PopAndDestroy();      //
+    CleanupStack::PopAndDestroy();      //
+    CleanupStack::PopAndDestroy();      //
+    CleanupStack::PopAndDestroy();      //
+    CleanupStack::PopAndDestroy();      //
+    CleanupStack::PopAndDestroy();      //
+    
+    // string pool
+    CleanupStack::PopAndDestroy();      //
+    //
+    CleanupStack::PopAndDestroy();      //elementAttrs
+    CleanupStack::PopAndDestroy();      //idleAttr
+    CleanupStack::PopAndDestroy();      //priAttr
+    CleanupStack::PopAndDestroy();      //elementTagInfo
+    */ 
+    }
+
+#endif
+/**
+ * END OF TEST CASES SECTION
+ */
+
+// End of File
--- a/systemsettings/accindicatorplugin/inc/accindicator.h	Wed Sep 29 15:24:56 2010 +0300
+++ b/systemsettings/accindicatorplugin/inc/accindicator.h	Thu Oct 07 06:25:45 2010 +0300
@@ -70,6 +70,10 @@
 private:
     Q_DISABLE_COPY(AccIndicatorPlugin)
     int mError;
+
+#ifdef FCC_UNIT_TEST
+    friend class Cutaccindicatorplugin;
+#endif
     };
 
 #endif // ACCINDICATOR_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/Bmarm/utaccindicatorpluginU.DEF	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,4 @@
+EXPORTS
+	LibEntryL__Fv @ 1 NONAME R3UNUSED ; LibEntryL(void)
+	SetRequirements__FRP16CTestModuleParamRUl @ 2 NONAME R3UNUSED ; SetRequirements(CTestModuleParam *&, unsigned long &)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/Bwins/utaccindicatorpluginu.def	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,4 @@
+EXPORTS
+	?LibEntryL@@YAPAVCTestModuleBase@@XZ @ 1 NONAME ; class CTestModuleBase * __cdecl LibEntryL(void)
+	?SetRequirements@@YAHAAPAVCTestModuleParam@@AAK@Z @ 2 NONAME ; int __cdecl SetRequirements(class CTestModuleParam * &,unsigned long &)
+
Binary file systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/CTCHTML/blue.gif has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/CTCHTML/ctc.css	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,35 @@
+/************************************************************************
+* CSS stylesheet file generated by ctc2html v2.6
+* Copyright (c) 2006-2010 Testwell Oy
+************************************************************************/
+
+ .head1 {font-family: verdana, arial, helvetica, sans-serif; color: #000088;
+         font-size: 17pt; background-color: white; font-weight: bold;}
+ .head2 {font-family: verdana, arial, helvetica, sans-serif; color: #000000;
+         font-size: 17pt; background-color: white;}
+ .head3 {font-family: verdana, arial, helvetica, sans-serif; color: #000000;
+         font-size: 10pt; background-color: white;}
+ .black {font-family: verdana, arial, helvetica, sans-serif; color: #000000;
+         font-size: 10pt; background-color: white;}
+ .blackDecoNo {font-family: verdana, arial, helvetica, sans-serif; color: #000000;
+               text-decoration: none; font-size: 10pt; background-color: white;}
+ .red {font-family: verdana, arial, helvetica, sans-serif; color: #FF0000;
+       text-decoration: none; font-size: 10pt; background-color: white;}
+ .blue {font-family: verdana, arial, helvetica, sans-serif; color: #101080;
+        text-decoration: none; font-size: 10pt; background-color: white;}
+ .black_source {font-family: "courier new", courier, monospace; color: #000000; 
+                font-size: 9pt; background-color: white;}
+ .red_source {font-family: "courier new", courier, monospace; color: #FF0000;
+              font-size: 9pt; background-color: white;}
+ .black_profile {font-family: "courier new", courier, monospace; color: #000000; 
+                 font-size: 9pt; background-color: #DFDFE5;}
+ .red_profile {font-family: "courier new", courier, monospace; color: #FF0000;
+               font-size: 9pt; background-color: #DFDFE5;}
+ a:hover {text-decoration: underline;}
+ table.sortable thead {font-family: verdana, arial, helvetica, sans-serif; color: #000000;
+                       font-size: 10pt; background-color: white;
+                       font-weight: bold; cursor: default;}
+ table.sortable th {border-bottom: thin solid black; padding-bottom: 0.20em;
+                    padding-right: 0.20em;}
+ table.sortable td {padding-top: 0.20em; padding-right: 0.20em;}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/CTCHTML/ctc.js	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,41 @@
+/////////////////////////////////////////////////////////////////////////
+// Javascript file generated by ctc2html v2.6
+// Copyright (c) 2006-2010 Testwell Oy
+/////////////////////////////////////////////////////////////////////////
+target=location.hash;
+function load(){
+if(target=="#a1"){
+parent.index.location="indexC.html#a1";
+parent.profile.location="indexD1.html";
+}
+if(target=="#a2"){
+parent.index.location="indexC.html#a2";
+parent.profile.location="indexD2.html";
+}
+if(target=="#a3"){
+parent.index.location="indexC.html#a3";
+parent.profile.location="indexD3.html";
+}
+if(target=="#a4"){
+parent.index.location="indexC.html#a4";
+parent.profile.location="indexD4.html";
+}
+}
+function load2(){
+if(target=="#ad1"){
+parent.index2.location="indexH.html#ad1";
+parent.functions.location="indexB1.html";
+}
+if(target=="#ad2"){
+parent.index2.location="indexH.html#ad2";
+parent.functions.location="indexB2.html";
+}
+if(target=="#ad2"){
+parent.index2.location="indexH.html#ad2";
+parent.functions.location="indexB2.html";
+}
+if(target=="#ad2"){
+parent.index2.location="indexH.html#ad2";
+parent.functions.location="indexB2.html";
+}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/CTCHTML/index.html	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,53 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head>
+<title>CTC++ Coverage Report - Files Summary</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<meta name="keyword" content="CTC++, Testwell, Test Coverage Analyzer">
+<meta name="date" content="Tue Aug 24 13:33:36 2010">
+<meta name="generator" content="Testwell CTC++ add-on utility ctc2html v2.6">
+<link rel="stylesheet" type="text/css" href="ctc.css">
+<link rel="contents" href="index.html">
+</head>
+<body text="#150040" bgcolor="#ffffff" link="#000088" vlink="#007788">
+<span class="head1">CTC++ Coverage Report - </span>
+<span class="head2">Files Summary</span><br><br>
+<span class="black"><a href="indexF.html">Directory Summary</a> | <a href="index.html">Files Summary</a> | <a href="indexB1.html">Functions Summary</a> | <a href="indexD1.html">Execution Profile</a></span><br><br>
+<table cellspacing="0">
+<tr><td class="black">Symbol&nbsp;file(s)</td><td class="black">:</td><td class="black">&nbsp;MON.sym&nbsp;(Tue&nbsp;Aug&nbsp;24&nbsp;13:18:59&nbsp;2010)</td></tr>
+<tr><td class="black">Data&nbsp;file(s)</td><td class="black">:</td><td class="black">&nbsp;MON.dat&nbsp;(Tue&nbsp;Aug&nbsp;24&nbsp;13:33:11&nbsp;2010)</td></tr>
+<tr><td class="black">Listing&nbsp;produced&nbsp;at</td><td class="black">:</td><td class="black">&nbsp;Tue&nbsp;Aug&nbsp;24&nbsp;13:33:29&nbsp;2010</td></tr>
+<tr><td class="black">Coverage&nbsp;view</td><td class="black">:</td><td class="black">&nbsp;As&nbsp;instrumented</td></tr>
+<tr><td colspan="3">&nbsp;</td></tr>
+<tr><td class="black">Input&nbsp;listing</td><td class="black">:</td><td class="black">&nbsp;profile.txt</td></tr>
+<tr><td class="black">Html&nbsp;generated&nbsp;at</td><td class="black">:</td><td class="black">&nbsp;Tue&nbsp;Aug&nbsp;24&nbsp;13:33:36&nbsp;2010</td></tr>
+<tr><td class="black">ctc2html v2.6 options</td><td class="black">:</td><td class="black">&nbsp;-i&nbsp;profile.txt&nbsp;</td></tr>
+<tr><td class="black">Threshold&nbsp;percent</td><td class="black">:</td><td class="black">&nbsp;<strong>100</strong>&nbsp;%</td></tr>
+</table><br>
+<table cellspacing="0">
+<tr><td class="black"><strong>TER&nbsp;%</strong>&nbsp;</td>
+<td class="black"><strong>-</strong></td><td class="black">&nbsp;<strong>covered/&nbsp;all</strong>&nbsp;</td>
+<td width="115">&nbsp;</td><td class="black"><strong>File</strong></td></tr>
+<tr><td colspan="5"><hr width="100%"></td></tr>
+<tr><td colspan="5" align="left" class="black"><a name="a1"></a><strong>Directory:&nbsp;W:\sf\mw\appsupport\systemsettings\accindicatorplugin\src</strong></td></tr>
+<tr><td align="right" class="red">41&nbsp;%&nbsp;</td><td align="right" class="red">-</td><td align="right" class="red">&nbsp;31/ 75&nbsp;</td><td width="115"><img border="1" src="red.gif" width="41" height="5" alt=""><img border="1" src="white.gif" width="59" height="5" alt=""></td><td><a href="indexB1.html#a1" class="red">accindicator.cpp</a></td></tr>
+<tr><td align="right" class="red">41&nbsp;%&nbsp;</td><td align="right" class="red">-</td><td align="right" class="red">&nbsp;31/ 75&nbsp;</td><td width="115"><img border="1" src="red.gif" width="41" height="5" alt=""><img border="1" src="white.gif" width="59" height="5" alt=""></td><td><a href="indexB1.html" class="red"><strong>DIRECTORY OVERALL</strong> (W:\sf\mw\appsupport\systemsettings\accindicatorplugin\src)</a></td></tr>
+<tr><td colspan="5">&nbsp;</td></tr>
+<tr><td colspan="5" align="left" class="black"><a name="a2"></a><strong>Directory:&nbsp;W:\sf\mw\appsupport\systemsettings\accindicatorplugin\tsrc\utaccindicatorplugin\src</strong></td></tr>
+<tr><td align="right" class="blue">100&nbsp;%&nbsp;</td><td align="right" class="blue">&nbsp;</td><td align="right" class="blue">&nbsp;0/ 0&nbsp;</td><td width="115"><img border="1" src="blue.gif" width="100" height="5" alt=""></td><td><a href="indexB2.html#a2" class="blue">utaccindicatorplugin.cpp</a></td></tr>
+<tr><td align="right" class="blue">100&nbsp;%&nbsp;</td><td align="right" class="blue">&nbsp;</td><td align="right" class="blue">&nbsp;0/ 0&nbsp;</td><td width="115"><img border="1" src="blue.gif" width="100" height="5" alt=""></td><td><a href="indexB2.html#a3" class="blue">utaccindicatorplugincases.cpp</a></td></tr>
+<tr><td align="right" class="red">75&nbsp;%&nbsp;</td><td align="right" class="red">-</td><td align="right" class="red">&nbsp;3/ 4&nbsp;</td><td width="115"><img border="1" src="red.gif" width="75" height="5" alt=""><img border="1" src="white.gif" width="25" height="5" alt=""></td><td><a href="indexB2.html#a4" class="red">utslot.cpp</a></td></tr>
+<tr><td align="right" class="red">75&nbsp;%&nbsp;</td><td align="right" class="red">-</td><td align="right" class="red">&nbsp;3/ 4&nbsp;</td><td width="115"><img border="1" src="red.gif" width="75" height="5" alt=""><img border="1" src="white.gif" width="25" height="5" alt=""></td><td><a href="indexB2.html" class="red"><strong>DIRECTORY OVERALL</strong> (W:\sf\mw\appsupport\systemsettings\accindicatorplugin\tsrc\utaccindicatorplugin\src)</a></td></tr>
+<tr><td colspan="5">&nbsp;</td></tr>
+<tr><td colspan="5"><hr width="100%"></td></tr>
+<tr><td align="right" class="red"><strong>43&nbsp;%</strong>&nbsp;</td><td align="right" class="red"><strong>-</strong></td><td align="right" class="red"><strong>&nbsp;34/ 79</strong>&nbsp;</td><td width="115"><img border="1" src="red.gif" width="43" height="5" alt=""><img border="1" src="white.gif" width="57" height="5" alt=""></td><td class="red"><strong>OVERALL</strong></td></tr>
+</table><br>
+<table cellspacing="0">
+<tr><td class="black">Number of directories</td><td class="black">:</td><td class="black">&nbsp;2</td></tr>
+<tr><td class="black">Number&nbsp;of&nbsp;monitored&nbsp;source&nbsp;files</td><td class="black">:</td><td class="black">&nbsp;4</td></tr>
+<tr><td class="black">Number of functions</td><td class="black">:</td><td class="black">&nbsp;17</td></tr>
+<tr><td class="black">Number&nbsp;of&nbsp;source&nbsp;lines</td><td class="black">:</td><td class="black">&nbsp;623</td></tr>
+<tr><td class="black">Number&nbsp;of&nbsp;measurement&nbsp;points</td><td class="black">:</td><td class="black">&nbsp;96</td></tr>
+<tr><td class="red">TER</td><td class="red">:</td><td class="red">&nbsp;<strong>43%</strong>&nbsp;(decision)</td></tr>
+</table><br>
+<span class="black"><a href="indexF.html">Directory Summary</a> | <a href="index.html">Files Summary</a> | <a href="indexB1.html">Functions Summary</a> | <a href="indexD1.html">Execution Profile</a></span><br><br>
+</body></html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/CTCHTML/indexA.html	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,16 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
+<html><head>
+<title>CTC++ Coverage Report - Execution Profile - Index</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<meta name="keyword" content="CTC++, Testwell, Test Coverage Analyzer">
+<meta name="date" content="Tue Aug 24 13:33:36 2010">
+<meta name="generator" content="Testwell CTC++ add-on utility ctc2html v2.6">
+<link rel="stylesheet" type="text/css" href="ctc.css">
+<link rel="contents" href="index.html">
+<script src="ctc.js" type="text/javascript"></script>
+</head>
+<frameset cols="25%,75%" onLoad="load(); return false;">
+<frame src="indexC.html" name="index">
+<frame src="indexD1.html" name="profile">
+</frameset>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/CTCHTML/indexB1.html	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,66 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head>
+<title>CTC++ Coverage Report - Functions Summary - W:\sf\mw\appsupport\systemsettings\accindicatorplugin\src</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<meta name="keyword" content="CTC++, Testwell, Test Coverage Analyzer">
+<meta name="date" content="Tue Aug 24 13:33:36 2010">
+<meta name="generator" content="Testwell CTC++ add-on utility ctc2html v2.6">
+<link rel="stylesheet" type="text/css" href="ctc.css">
+<link rel="contents" href="index.html">
+</head>
+<body text="#150040" bgcolor="#ffffff" link="#000088" vlink="#007788">
+<span class="head1">CTC++ Coverage Report - </span>
+<span class="head2">Functions Summary</span>
+<span class="head3">&nbsp;&nbsp;&nbsp;#1/2</span><br><br>
+<span class="black"><a href="indexF.html" target="_top">Directory Summary</a> | <a href="index.html" target="_top">Files Summary</a> | <a href="indexB1.html">Functions Summary</a> | <a href="indexD1.html" target="_top">Execution Profile</a><br>
+To directories: <a href="indexB1.html">First</a> | Previous | <a href="indexB2.html">Next</a> | <a href="indexB2.html">Last</a> | <a href="indexG.html#ad1">Index</a> | <a href="indexB1.html" target="_top">No Index</a></span><br><br>
+<span class="black"><strong>Directory: W:\sf\mw\appsupport\systemsettings\accindicatorplugin\src</strong></span><br>
+<span class="black"><strong>TER: </strong></span><span class="red">41 % ( 31/ 75)</span><br><br>
+<span class="black"><strong>File: <a href="indexD1.html" name="a1" target="_top">W:\sf\mw\appsupport\systemsettings\accindicatorplugin\src\accindicator.cpp</a></strong></span><br>
+<span class="black"><strong>Instrumentation&nbsp;mode:&nbsp;</strong>function-decision</span><br>
+<span class="black"><strong>TER: </strong></span><span class="red">41&nbsp;%&nbsp;(&nbsp;31/&nbsp;75)</span><br>
+<span class="black">To files: Previous | </span>
+<span class="black">Next</span><br><br>
+<table cellspacing="0">
+<tr><td align="right" class="black"><strong>TER&nbsp;%</strong>&nbsp;</td><td align="right" class="black"><strong>-</strong></td><td align="right" class="black">&nbsp;<strong>covered/&nbsp;all</strong>&nbsp;</td><td width="115">&nbsp;</td>
+<td align="right" class="black"><strong>Calls</strong>&nbsp;</td><td align="right" class="black"><strong>Line</strong>&nbsp;</td><td class="black"><strong>Function</strong></td></tr>
+<tr><td colspan="7"><hr width="100%"></td></tr>
+<tr><td align="right" class="red">0 %&nbsp;</td><td align="right" class="red">-</td><td align="right" class="red">&nbsp;0/ 2&nbsp;</td><td width="115"><img border="1" src="white.gif" width="100" height="5" alt=""></td>
+<td align="right" class="red">0&nbsp;</td><td align="right" class="red">23&nbsp;</td><td><a href="indexD1.html#a1" class="red" target="_top">qt_plugin_query_verification_data()</a></td></tr>
+<tr><td align="right" class="red">0 %&nbsp;</td><td align="right" class="red">-</td><td align="right" class="red">&nbsp;0/ 4&nbsp;</td><td width="115"><img border="1" src="white.gif" width="100" height="5" alt=""></td>
+<td align="right" class="red">0&nbsp;</td><td align="right" class="red">23&nbsp;</td><td><a href="indexD1.html#a2" class="red" target="_top">qt_plugin_instance()</a></td></tr>
+<tr><td align="right" class="blue">100 %&nbsp;</td><td align="right" class="blue">&nbsp;</td><td align="right" class="blue">&nbsp;1/ 1&nbsp;</td><td width="115"><img border="1" src="blue.gif" width="100" height="5" alt=""></td>
+<td align="right" class="blue">6&nbsp;</td><td align="right" class="blue">28&nbsp;</td><td><a href="indexD1.html#a3" class="blue" target="_top">AccIndicatorPlugin::AccIndicatorPlugin()</a></td></tr>
+<tr><td align="right" class="red">0 %&nbsp;</td><td align="right" class="red">-</td><td align="right" class="red">&nbsp;0/ 1&nbsp;</td><td width="115"><img border="1" src="white.gif" width="100" height="5" alt=""></td>
+<td align="right" class="red">0&nbsp;</td><td align="right" class="red">36&nbsp;</td><td><a href="indexD1.html#a4" class="red" target="_top">AccIndicatorPlugin::~AccIndicatorPlugin()</a></td></tr>
+<tr><td align="right" class="blue">100 %&nbsp;</td><td align="right" class="blue">&nbsp;</td><td align="right" class="blue">&nbsp;2/ 2&nbsp;</td><td width="115"><img border="1" src="blue.gif" width="100" height="5" alt=""></td>
+<td align="right" class="blue">1&nbsp;</td><td align="right" class="blue">45&nbsp;</td><td><a href="indexD1.html#a5" class="blue" target="_top">AccIndicatorPlugin::indicatorTypes()</a></td></tr>
+<tr><td align="right" class="blue">100 %&nbsp;</td><td align="right" class="blue">&nbsp;</td><td align="right" class="blue">&nbsp;2/ 2&nbsp;</td><td width="115"><img border="1" src="blue.gif" width="100" height="5" alt=""></td>
+<td align="right" class="blue">1&nbsp;</td><td align="right" class="blue">55&nbsp;</td><td><a href="indexD1.html#a6" class="blue" target="_top">AccIndicatorPlugin::createIndicator()</a></td></tr>
+<tr><td align="right" class="red">0 %&nbsp;</td><td align="right" class="red">-</td><td align="right" class="red">&nbsp;0/ 2&nbsp;</td><td width="115"><img border="1" src="white.gif" width="100" height="5" alt=""></td>
+<td align="right" class="red">0&nbsp;</td><td align="right" class="red">67&nbsp;</td><td><a href="indexD1.html#a7" class="red" target="_top">AccIndicatorPlugin::error()</a></td></tr>
+<tr><td align="right" class="blue">100 %&nbsp;</td><td align="right" class="blue">&nbsp;</td><td align="right" class="blue">&nbsp;2/ 2&nbsp;</td><td width="115"><img border="1" src="blue.gif" width="100" height="5" alt=""></td>
+<td align="right" class="blue">1&nbsp;</td><td align="right" class="blue">78&nbsp;</td><td><a href="indexD1.html#a8" class="blue" target="_top">AccIndicatorPlugin::accessAllowed()</a></td></tr>
+<tr><td align="right" class="red">83 %&nbsp;</td><td align="right" class="red">-</td><td align="right" class="red">&nbsp;5/ 6&nbsp;</td><td width="115"><img border="1" src="red.gif" width="83" height="5" alt=""><img border="1" src="white.gif" width="17" height="5" alt=""></td>
+<td align="right" class="red">4&nbsp;</td><td align="right" class="red">91&nbsp;</td><td><a href="indexD1.html#a9" class="red" target="_top">AccIndicatorPlugin::handleInteraction()</a></td></tr>
+<tr><td align="right" class="red">55 %&nbsp;</td><td align="right" class="red">-</td><td align="right" class="red">&nbsp;6/ 11&nbsp;</td><td width="115"><img border="1" src="red.gif" width="55" height="5" alt=""><img border="1" src="white.gif" width="45" height="5" alt=""></td>
+<td align="right" class="red">3&nbsp;</td><td align="right" class="red">120&nbsp;</td><td><a href="indexD1.html#a10" class="red" target="_top">AccIndicatorPlugin::indicatorData()</a></td></tr>
+<tr><td align="right" class="red">67 %&nbsp;</td><td align="right" class="red">-</td><td align="right" class="red">&nbsp;8/ 12&nbsp;</td><td width="115"><img border="1" src="red.gif" width="67" height="5" alt=""><img border="1" src="white.gif" width="33" height="5" alt=""></td>
+<td align="right" class="red">4&nbsp;</td><td align="right" class="red">153&nbsp;</td><td><a href="indexD1.html#a11" class="red" target="_top">AccIndicatorPlugin::handleClientRequest()</a></td></tr>
+<tr><td align="right" class="red">25 %&nbsp;</td><td align="right" class="red">-</td><td align="right" class="red">&nbsp;5/ 20&nbsp;</td><td width="115"><img border="1" src="red.gif" width="25" height="5" alt=""><img border="1" src="white.gif" width="75" height="5" alt=""></td>
+<td align="right" class="red">3&nbsp;</td><td align="right" class="red">195&nbsp;</td><td><a href="indexD1.html#a12" class="red" target="_top">AccIndicatorPlugin::prepareDisplayName()</a></td></tr>
+<tr><td align="right" class="red">0 %&nbsp;</td><td align="right" class="red">-</td><td align="right" class="red">&nbsp;0/ 10&nbsp;</td><td width="115"><img border="1" src="white.gif" width="100" height="5" alt=""></td>
+<td align="right" class="red">0&nbsp;</td><td align="right" class="red">237&nbsp;</td><td><a href="indexD1.html#a13" class="red" target="_top">AccIndicatorPlugin::processError()</a></td></tr>
+<tr><td colspan="7"><hr width="100%"></td></tr>
+<tr><td align="right" class="red"><strong>41&nbsp;%</strong>&nbsp;</td><td align="right" class="red"><strong>-</strong></td><td align="right" class="red">&nbsp;<strong>31/ 75</strong>&nbsp;</td>
+<td width="115"><img border="1" src="red.gif" width="41" height="5" alt=""><img border="1" src="white.gif" width="59" height="5" alt=""></td>
+<td>&nbsp;</td><td>&nbsp;</td><td><a href="indexD1.html" class="red" target="_top"><strong>accindicator.cpp</strong></a></td></tr>
+<tr><td colspan="7">&nbsp;</td></tr>
+<tr><td colspan="7"><hr width="100%"></td></tr>
+<tr><td align="right" class="red"><strong>41&nbsp;%</strong>&nbsp;</td><td align="right" class="red"><strong>-</strong></td><td align="right" class="red">&nbsp;<strong>31/ 75</strong>&nbsp;</td>
+<td width="115"><img border="1" src="red.gif" width="41" height="5" alt=""><img border="1" src="white.gif" width="59" height="5" alt=""></td>
+<td>&nbsp;</td><td>&nbsp;</td><td class="red"><strong>DIRECTORY OVERALL (W:\sf\mw\appsupport\systemsettings\accindicatorplugin\src)</strong></td></tr>
+</table><br>
+<span class="black"><a href="indexF.html" target="_top">Directory Summary</a> | <a href="index.html" target="_top">Files Summary</a> | <a href="indexB1.html">Functions Summary</a> | <a href="indexD1.html" target="_top">Execution Profile</a><br>
+To directories: <a href="indexB1.html">First</a> | Previous | <a href="indexB2.html">Next</a> | <a href="indexB2.html">Last</a> | <a href="indexB1.html">Top</a> | <a href="indexG.html#ad1">Index</a> | <a href="indexB1.html" target="_top">No Index</a></span><br><br>
+</body></html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/CTCHTML/indexB2.html	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,76 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head>
+<title>CTC++ Coverage Report - Functions Summary - W:\sf\mw\appsupport\systemsettings\accindicatorplugin\tsrc\utaccindicatorplugin\src</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<meta name="keyword" content="CTC++, Testwell, Test Coverage Analyzer">
+<meta name="date" content="Tue Aug 24 13:33:36 2010">
+<meta name="generator" content="Testwell CTC++ add-on utility ctc2html v2.6">
+<link rel="stylesheet" type="text/css" href="ctc.css">
+<link rel="contents" href="index.html">
+</head>
+<body text="#150040" bgcolor="#ffffff" link="#000088" vlink="#007788">
+<span class="head1">CTC++ Coverage Report - </span>
+<span class="head2">Functions Summary</span>
+<span class="head3">&nbsp;&nbsp;&nbsp;#2/2</span><br><br>
+<span class="black"><a href="indexF.html" target="_top">Directory Summary</a> | <a href="index.html" target="_top">Files Summary</a> | <a href="indexB1.html">Functions Summary</a> | <a href="indexD1.html" target="_top">Execution Profile</a><br>
+To directories: <a href="indexB1.html">First</a> | <a href="indexB1.html">Previous</a> | Next | <a href="indexB2.html">Last</a> | <a href="indexG.html#ad2">Index</a> | <a href="indexB2.html" target="_top">No Index</a></span><br><br>
+<span class="black"><strong>Directory: W:\sf\mw\appsupport\systemsettings\accindicatorplugin\tsrc\utaccindicatorplugin\src</strong></span><br>
+<span class="black"><strong>TER: </strong></span><span class="red">75 % ( 3/ 4)</span><br><br>
+<span class="black"><strong>File: <a href="indexD2.html" name="a2" target="_top">W:\sf\mw\appsupport\systemsettings\accindicatorplugin\tsrc\utaccindicatorplugin\src\utaccindicatorplugin.cpp</a></strong></span><br>
+<span class="black"><strong>Instrumentation&nbsp;mode:&nbsp;</strong>function-decision</span><br>
+<span class="black"><strong>TER: </strong></span><span class="black">100&nbsp;%&nbsp;(&nbsp;&nbsp;0/&nbsp;&nbsp;0)</span><br>
+<span class="black">To files: Previous | </span>
+<span class="black"><a href="indexB2.html#a3">Next</a></span><br><br>
+<table cellspacing="0">
+<tr><td align="right" class="black"><strong>TER&nbsp;%</strong>&nbsp;</td><td align="right" class="black"><strong>-</strong></td><td align="right" class="black">&nbsp;<strong>covered/&nbsp;all</strong>&nbsp;</td><td width="115">&nbsp;</td>
+<td align="right" class="black"><strong>Calls</strong>&nbsp;</td><td align="right" class="black"><strong>Line</strong>&nbsp;</td><td class="black"><strong>Function</strong></td></tr>
+<tr><td colspan="7"><hr width="100%"></td></tr>
+<tr><td colspan="7"><hr width="100%"></td></tr>
+<tr><td align="right" class="blue"><strong>100&nbsp;%</strong>&nbsp;</td><td align="right" class="blue"><strong>&nbsp;</strong></td><td align="right" class="blue">&nbsp;<strong>0/ 0</strong>&nbsp;</td>
+<td width="115"><img border="1" src="blue.gif" width="100" height="5" alt=""></td>
+<td>&nbsp;</td><td>&nbsp;</td><td><a href="indexD2.html" class="blue" target="_top"><strong>utaccindicatorplugin.cpp</strong></a></td></tr>
+</table><br>
+<span class="black"><strong>File: <a href="indexD3.html" name="a3" target="_top">W:\sf\mw\appsupport\systemsettings\accindicatorplugin\tsrc\utaccindicatorplugin\src\utaccindicatorplugincases.cpp</a></strong></span><br>
+<span class="black"><strong>Instrumentation&nbsp;mode:&nbsp;</strong>function-decision</span><br>
+<span class="black"><strong>TER: </strong></span><span class="black">100&nbsp;%&nbsp;(&nbsp;&nbsp;0/&nbsp;&nbsp;0)</span><br>
+<span class="black">To files: <a href="indexB2.html#a2">Previous</a> | </span>
+<span class="black"><a href="indexB2.html#a4">Next</a></span><br><br>
+<table cellspacing="0">
+<tr><td align="right" class="black"><strong>TER&nbsp;%</strong>&nbsp;</td><td align="right" class="black"><strong>-</strong></td><td align="right" class="black">&nbsp;<strong>covered/&nbsp;all</strong>&nbsp;</td><td width="115">&nbsp;</td>
+<td align="right" class="black"><strong>Calls</strong>&nbsp;</td><td align="right" class="black"><strong>Line</strong>&nbsp;</td><td class="black"><strong>Function</strong></td></tr>
+<tr><td colspan="7"><hr width="100%"></td></tr>
+<tr><td colspan="7"><hr width="100%"></td></tr>
+<tr><td align="right" class="blue"><strong>100&nbsp;%</strong>&nbsp;</td><td align="right" class="blue"><strong>&nbsp;</strong></td><td align="right" class="blue">&nbsp;<strong>0/ 0</strong>&nbsp;</td>
+<td width="115"><img border="1" src="blue.gif" width="100" height="5" alt=""></td>
+<td>&nbsp;</td><td>&nbsp;</td><td><a href="indexD3.html" class="blue" target="_top"><strong>utaccindicatorplugincases.cpp</strong></a></td></tr>
+</table><br>
+<span class="black"><strong>File: <a href="indexD4.html" name="a4" target="_top">W:\sf\mw\appsupport\systemsettings\accindicatorplugin\tsrc\utaccindicatorplugin\src\utslot.cpp</a></strong></span><br>
+<span class="black"><strong>Instrumentation&nbsp;mode:&nbsp;</strong>function-decision</span><br>
+<span class="black"><strong>TER: </strong></span><span class="red">75&nbsp;%&nbsp;(&nbsp;&nbsp;3/&nbsp;&nbsp;4)</span><br>
+<span class="black">To files: <a href="indexB2.html#a3">Previous</a> | </span>
+<span class="black">Next</span><br><br>
+<table cellspacing="0">
+<tr><td align="right" class="black"><strong>TER&nbsp;%</strong>&nbsp;</td><td align="right" class="black"><strong>-</strong></td><td align="right" class="black">&nbsp;<strong>covered/&nbsp;all</strong>&nbsp;</td><td width="115">&nbsp;</td>
+<td align="right" class="black"><strong>Calls</strong>&nbsp;</td><td align="right" class="black"><strong>Line</strong>&nbsp;</td><td class="black"><strong>Function</strong></td></tr>
+<tr><td colspan="7"><hr width="100%"></td></tr>
+<tr><td align="right" class="blue">100 %&nbsp;</td><td align="right" class="blue">&nbsp;</td><td align="right" class="blue">&nbsp;1/ 1&nbsp;</td><td width="115"><img border="1" src="blue.gif" width="100" height="5" alt=""></td>
+<td align="right" class="blue">1&nbsp;</td><td align="right" class="blue">10&nbsp;</td><td><a href="indexD4.html#a14" class="blue" target="_top">UTSlot::UTSlot()</a></td></tr>
+<tr><td align="right" class="red">0 %&nbsp;</td><td align="right" class="red">-</td><td align="right" class="red">&nbsp;0/ 1&nbsp;</td><td width="115"><img border="1" src="white.gif" width="100" height="5" alt=""></td>
+<td align="right" class="red">0&nbsp;</td><td align="right" class="red">17&nbsp;</td><td><a href="indexD4.html#a15" class="red" target="_top">UTSlot::~UTSlot()</a></td></tr>
+<tr><td align="right" class="blue">100 %&nbsp;</td><td align="right" class="blue">&nbsp;</td><td align="right" class="blue">&nbsp;1/ 1&nbsp;</td><td width="115"><img border="1" src="blue.gif" width="100" height="5" alt=""></td>
+<td align="right" class="blue">1&nbsp;</td><td align="right" class="blue">22&nbsp;</td><td><a href="indexD4.html#a16" class="blue" target="_top">UTSlot::dataChangedSlot()</a></td></tr>
+<tr><td align="right" class="blue">100 %&nbsp;</td><td align="right" class="blue">&nbsp;</td><td align="right" class="blue">&nbsp;1/ 1&nbsp;</td><td width="115"><img border="1" src="blue.gif" width="100" height="5" alt=""></td>
+<td align="right" class="blue">1&nbsp;</td><td align="right" class="blue">27&nbsp;</td><td><a href="indexD4.html#a17" class="blue" target="_top">UTSlot::deactivateSlot()</a></td></tr>
+<tr><td colspan="7"><hr width="100%"></td></tr>
+<tr><td align="right" class="red"><strong>75&nbsp;%</strong>&nbsp;</td><td align="right" class="red"><strong>-</strong></td><td align="right" class="red">&nbsp;<strong>3/ 4</strong>&nbsp;</td>
+<td width="115"><img border="1" src="red.gif" width="75" height="5" alt=""><img border="1" src="white.gif" width="25" height="5" alt=""></td>
+<td>&nbsp;</td><td>&nbsp;</td><td><a href="indexD4.html" class="red" target="_top"><strong>utslot.cpp</strong></a></td></tr>
+<tr><td colspan="7">&nbsp;</td></tr>
+<tr><td colspan="7"><hr width="100%"></td></tr>
+<tr><td align="right" class="red"><strong>75&nbsp;%</strong>&nbsp;</td><td align="right" class="red"><strong>-</strong></td><td align="right" class="red">&nbsp;<strong>3/ 4</strong>&nbsp;</td>
+<td width="115"><img border="1" src="red.gif" width="75" height="5" alt=""><img border="1" src="white.gif" width="25" height="5" alt=""></td>
+<td>&nbsp;</td><td>&nbsp;</td><td class="red"><strong>DIRECTORY OVERALL (W:\sf\mw\appsupport\systemsettings\accindicatorplugin\tsrc\utaccindicatorplugin\src)</strong></td></tr>
+</table><br>
+<span class="black"><a href="indexF.html" target="_top">Directory Summary</a> | <a href="index.html" target="_top">Files Summary</a> | <a href="indexB1.html">Functions Summary</a> | <a href="indexD1.html" target="_top">Execution Profile</a><br>
+To directories: <a href="indexB1.html">First</a> | <a href="indexB1.html">Previous</a> | Next | <a href="indexB2.html">Last</a> | <a href="indexB2.html">Top</a> | <a href="indexG.html#ad2">Index</a> | <a href="indexB2.html" target="_top">No Index</a></span><br><br>
+</body></html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/CTCHTML/indexC.html	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,40 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head>
+<title>CTC++ Coverage Report - Execution Profile - Index</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<meta name="keyword" content="CTC++, Testwell, Test Coverage Analyzer">
+<meta name="date" content="Tue Aug 24 13:33:36 2010">
+<meta name="generator" content="Testwell CTC++ add-on utility ctc2html v2.6">
+<link rel="stylesheet" type="text/css" href="ctc.css">
+<link rel="contents" href="index.html">
+</head>
+<body text="#150040" bgcolor="#ffffff" link="#000088" vlink="#007788">
+<span class="black"><strong>Index</strong></span><br>
+<span class="black"></span>
+<table cellspacing="0">
+<tr><td>&nbsp;</td></tr>
+<tr><td><a name="a1" target="profile" title="W:\sf\mw\appsupport\systemsettings\accindicatorplugin\src\accindicator.cpp TER  41 % ( 31/ 75)" href="indexD1.html" class="red"><strong>W:\sf\mw\appsupport\systemsettings\accindicatorplugin\src\accindicator.cpp</strong></a></td></tr>
+<tr><td><small>&nbsp;&nbsp;&nbsp;</small><a target="profile" title="qt_plugin_query_verification_data() TER   0 % (  0/  2)" href="indexD1.html#a1" class="red">qt_plugin_query_verification_data()</a></td></tr>
+<tr><td><small>&nbsp;&nbsp;&nbsp;</small><a target="profile" title="qt_plugin_instance() TER   0 % (  0/  4)" href="indexD1.html#a2" class="red">qt_plugin_instance()</a></td></tr>
+<tr><td><small>&nbsp;&nbsp;&nbsp;</small><a target="profile" title="AccIndicatorPlugin::AccIndicatorPlugin() TER 100 % (  1/  1)" href="indexD1.html#a3" class="blackDecoNo">AccIndicatorPlugin::AccIndicatorPlugin()</a></td></tr>
+<tr><td><small>&nbsp;&nbsp;&nbsp;</small><a target="profile" title="AccIndicatorPlugin::~AccIndicatorPlugin() TER   0 % (  0/  1)" href="indexD1.html#a4" class="red">AccIndicatorPlugin::~AccIndicatorPlugin()</a></td></tr>
+<tr><td><small>&nbsp;&nbsp;&nbsp;</small><a target="profile" title="AccIndicatorPlugin::indicatorTypes() TER 100 % (  2/  2)" href="indexD1.html#a5" class="blackDecoNo">AccIndicatorPlugin::indicatorTypes()</a></td></tr>
+<tr><td><small>&nbsp;&nbsp;&nbsp;</small><a target="profile" title="AccIndicatorPlugin::createIndicator() TER 100 % (  2/  2)" href="indexD1.html#a6" class="blackDecoNo">AccIndicatorPlugin::createIndicator()</a></td></tr>
+<tr><td><small>&nbsp;&nbsp;&nbsp;</small><a target="profile" title="AccIndicatorPlugin::error() TER   0 % (  0/  2)" href="indexD1.html#a7" class="red">AccIndicatorPlugin::error()</a></td></tr>
+<tr><td><small>&nbsp;&nbsp;&nbsp;</small><a target="profile" title="AccIndicatorPlugin::accessAllowed() TER 100 % (  2/  2)" href="indexD1.html#a8" class="blackDecoNo">AccIndicatorPlugin::accessAllowed()</a></td></tr>
+<tr><td><small>&nbsp;&nbsp;&nbsp;</small><a target="profile" title="AccIndicatorPlugin::handleInteraction() TER  83 % (  5/  6)" href="indexD1.html#a9" class="red">AccIndicatorPlugin::handleInteraction()</a></td></tr>
+<tr><td><small>&nbsp;&nbsp;&nbsp;</small><a target="profile" title="AccIndicatorPlugin::indicatorData() TER  55 % (  6/ 11)" href="indexD1.html#a10" class="red">AccIndicatorPlugin::indicatorData()</a></td></tr>
+<tr><td><small>&nbsp;&nbsp;&nbsp;</small><a target="profile" title="AccIndicatorPlugin::handleClientRequest() TER  67 % (  8/ 12)" href="indexD1.html#a11" class="red">AccIndicatorPlugin::handleClientRequest()</a></td></tr>
+<tr><td><small>&nbsp;&nbsp;&nbsp;</small><a target="profile" title="AccIndicatorPlugin::prepareDisplayName() TER  25 % (  5/ 20)" href="indexD1.html#a12" class="red">AccIndicatorPlugin::prepareDisplayName()</a></td></tr>
+<tr><td><small>&nbsp;&nbsp;&nbsp;</small><a target="profile" title="AccIndicatorPlugin::processError() TER   0 % (  0/ 10)" href="indexD1.html#a13" class="red">AccIndicatorPlugin::processError()</a></td></tr>
+<tr><td>&nbsp;</td></tr>
+<tr><td><a name="a2" target="profile" title="W:\sf\mw\appsupport\systemsettings\accindicatorplugin\tsrc\utaccindicatorplugin\src\utaccindicatorplugin.cpp TER 100 % (  0/  0)" href="indexD2.html" class="blackDecoNo"><strong>W:\sf\mw\appsupport\systemsettings\accindicatorplugin\tsrc\utaccindicatorplugin\src\utaccindicatorplugin.cpp</strong></a></td></tr>
+<tr><td>&nbsp;</td></tr>
+<tr><td><a name="a3" target="profile" title="W:\sf\mw\appsupport\systemsettings\accindicatorplugin\tsrc\utaccindicatorplugin\src\utaccindicatorplugincases.cpp TER 100 % (  0/  0)" href="indexD3.html" class="blackDecoNo"><strong>W:\sf\mw\appsupport\systemsettings\accindicatorplugin\tsrc\utaccindicatorplugin\src\utaccindicatorplugincases.cpp</strong></a></td></tr>
+<tr><td>&nbsp;</td></tr>
+<tr><td><a name="a4" target="profile" title="W:\sf\mw\appsupport\systemsettings\accindicatorplugin\tsrc\utaccindicatorplugin\src\utslot.cpp TER  75 % (  3/  4)" href="indexD4.html" class="red"><strong>W:\sf\mw\appsupport\systemsettings\accindicatorplugin\tsrc\utaccindicatorplugin\src\utslot.cpp</strong></a></td></tr>
+<tr><td><small>&nbsp;&nbsp;&nbsp;</small><a target="profile" title="UTSlot::UTSlot() TER 100 % (  1/  1)" href="indexD4.html#a14" class="blackDecoNo">UTSlot::UTSlot()</a></td></tr>
+<tr><td><small>&nbsp;&nbsp;&nbsp;</small><a target="profile" title="UTSlot::~UTSlot() TER   0 % (  0/  1)" href="indexD4.html#a15" class="red">UTSlot::~UTSlot()</a></td></tr>
+<tr><td><small>&nbsp;&nbsp;&nbsp;</small><a target="profile" title="UTSlot::dataChangedSlot() TER 100 % (  1/  1)" href="indexD4.html#a16" class="blackDecoNo">UTSlot::dataChangedSlot()</a></td></tr>
+<tr><td><small>&nbsp;&nbsp;&nbsp;</small><a target="profile" title="UTSlot::deactivateSlot() TER 100 % (  1/  1)" href="indexD4.html#a17" class="blackDecoNo">UTSlot::deactivateSlot()</a></td></tr>
+</table></body></html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/CTCHTML/indexD1.html	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,295 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head>
+<title>CTC++ Coverage Report - Execution Profile - accindicator.cpp</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<meta name="keyword" content="CTC++, Testwell, Test Coverage Analyzer">
+<meta name="date" content="Tue Aug 24 13:33:36 2010">
+<meta name="generator" content="Testwell CTC++ add-on utility ctc2html v2.6">
+<link rel="stylesheet" type="text/css" href="ctc.css">
+<link rel="contents" href="index.html">
+</head>
+<body text="#150040" bgcolor="#ffffff" link="#000088" vlink="#007788">
+<span class="head1">CTC++ Coverage Report - </span>
+<span class="head2">Execution Profile</span>
+<span class="head3">&nbsp;&nbsp;&nbsp;#1/4</span><br><br>
+<span class="black"><a href="indexF.html" target="_top">Directory Summary</a> | <a href="index.html" target="_top">Files Summary</a> | <a href="indexB1.html" target="_top">Functions Summary</a> | <a href="indexD1.html">Execution Profile</a><br>
+To files: <a href="indexD1.html">First</a> | Previous | <a href="indexD2.html">Next</a> | <a href="indexD4.html">Last</a> | <a href="indexA.html#a1">Index</a> | <a href="indexD1.html" target="_top">No Index</a></span><br><br>
+<span class="black"><strong>File: W:\sf\mw\appsupport\systemsettings\accindicatorplugin\src\accindicator.cpp</strong></span><br>
+<span class="black"><strong>Instrumentation&nbsp;mode:&nbsp;</strong>function-decision</span><br>
+<span class="black"><strong>TER: </strong></span><span class="red">41 % ( 31/ 75)</span><br><br>
+<table cellspacing="0">
+<tr><td align="right" class="black"><strong>Start/</strong>&nbsp;</td><td align="right" class="black"><strong>End/</strong>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
+<tr><td align="right" class="black"><strong>True</strong>&nbsp;</td><td align="right" class="black"><strong>False</strong>&nbsp;</td><td align="right" class="black"><strong>-</strong></td><td align="right" class="black">&nbsp;<a href="indexD1.html#ut1" title="First untested"><strong>Line</strong></a>&nbsp;</td><td class="black"><strong>Source</strong></td></tr>
+<tr><td colspan="5"><hr></td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;1&nbsp;</td><td class="black_source">/*</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;2&nbsp;</td><td class="black_source">&nbsp;*&nbsp;Copyright&nbsp;(c)&nbsp;2010&nbsp;Nokia&nbsp;Corporation&nbsp;and/or&nbsp;its&nbsp;subsidiary(-ies).</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;3&nbsp;</td><td class="black_source">&nbsp;*&nbsp;All&nbsp;rights&nbsp;reserved.</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;4&nbsp;</td><td class="black_source">&nbsp;*&nbsp;This&nbsp;component&nbsp;and&nbsp;the&nbsp;accompanying&nbsp;materials&nbsp;are&nbsp;made&nbsp;available</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;5&nbsp;</td><td class="black_source">&nbsp;*&nbsp;under&nbsp;the&nbsp;terms&nbsp;of&nbsp;"Eclipse&nbsp;Public&nbsp;License&nbsp;v1.0"</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;6&nbsp;</td><td class="black_source">&nbsp;*&nbsp;which&nbsp;accompanies&nbsp;this&nbsp;distribution,&nbsp;and&nbsp;is&nbsp;available</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;7&nbsp;</td><td class="black_source">&nbsp;*&nbsp;at&nbsp;the&nbsp;URL&nbsp;"http://www.eclipse.org/legal/epl-v10.html".</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;8&nbsp;</td><td class="black_source">&nbsp;*</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;9&nbsp;</td><td class="black_source">&nbsp;*&nbsp;Initial&nbsp;Contributors:</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;10&nbsp;</td><td class="black_source">&nbsp;*&nbsp;Nokia&nbsp;Corporation&nbsp;-&nbsp;initial&nbsp;contribution.</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;11&nbsp;</td><td class="black_source">&nbsp;*</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;12&nbsp;</td><td class="black_source">&nbsp;*&nbsp;Contributors:</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;13&nbsp;</td><td class="black_source">&nbsp;*</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;14&nbsp;</td><td class="black_source">&nbsp;*&nbsp;Description:</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;15&nbsp;</td><td class="black_source">&nbsp;*</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;16&nbsp;</td><td class="black_source">&nbsp;*/</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;17&nbsp;</td><td class="black_source">#include&nbsp;"accindicator.h"</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;18&nbsp;</td><td class="black_source"></td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;19&nbsp;</td><td class="black_source">#include&nbsp;&lt;QtPlugin&gt;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;20&nbsp;</td><td class="black_source">#include&nbsp;&lt;QProcess&gt;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;21&nbsp;</td><td class="black_source">#include&nbsp;&lt;accpolgenericiddefinitions.h&gt;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;22&nbsp;</td><td class="black_source"></td></tr>
+<tr><td colspan="5" class="black"><a href="indexD1.html" title="W:\sf\mw\appsupport\systemsettings\accindicatorplugin\src\accindicator.cpp">Top</a></td></tr>
+<tr><td align="right" class="red_profile"><a name="a1"></a>0&nbsp;</td><td align="right" class="black_profile">0&nbsp;</td><td align="right" class="red_profile">-</td><td align="right" class="red_profile">&nbsp;<a name="ut1" href="indexD1.html#ut2">23</a>&nbsp;</td><td class="red_source">Q_EXPORT_PLUGIN(AccIndicatorPlugin)</td></tr>
+<tr><td align="right" class="red_profile">0&nbsp;</td><td align="right" class="red_profile">&nbsp;</td><td align="right" class="red_profile">-</td><td align="right" class="red_profile">&nbsp;<a name="ut2" href="indexD1.html#ut3">23</a>&nbsp;</td><td class="red_profile">return&nbsp;qt_plugin_verification_data</td></tr>
+<tr><td colspan="5" class="black"><a href="indexD1.html" title="W:\sf\mw\appsupport\systemsettings\accindicatorplugin\src\accindicator.cpp">Top</a></td></tr>
+<tr><td align="right" class="red_profile"><a name="a2"></a>0&nbsp;</td><td align="right" class="black_profile">0&nbsp;</td><td align="right" class="red_profile">-</td><td align="right" class="red_profile">&nbsp;<a name="ut3" href="indexD1.html#ut4">23</a>&nbsp;</td><td class="red_profile">FUNCTION qt_plugin_instance()</td></tr>
+<tr><td align="right" class="red_profile">0&nbsp;</td><td align="right" class="red_profile">0&nbsp;</td><td align="right" class="red_profile">-</td><td align="right" class="red_profile">&nbsp;<a name="ut4" href="indexD1.html#ut5">23</a>&nbsp;</td><td class="red_profile">if&nbsp;(!&nbsp;_instance)</td></tr>
+<tr><td align="right" class="red_profile">0&nbsp;</td><td align="right" class="red_profile">&nbsp;</td><td align="right" class="red_profile">-</td><td align="right" class="red_profile">&nbsp;<a name="ut5" href="indexD1.html#ut6">23</a>&nbsp;</td><td class="red_profile">return&nbsp;_instance</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;24&nbsp;</td><td class="black_source">const&nbsp;static&nbsp;char&nbsp;IndicatorType[]&nbsp;=&nbsp;"com.nokia.accessory.indicatorplugin/1.0";</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;25&nbsp;</td><td class="black_source">QString&nbsp;KAccMode&nbsp;=&nbsp;"AccMode";</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;26&nbsp;</td><td class="black_source">QString&nbsp;KAccType&nbsp;=&nbsp;"AccType";</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;27&nbsp;</td><td class="black_source"></td></tr>
+<tr><td colspan="5" class="black"><a href="indexD1.html" title="W:\sf\mw\appsupport\systemsettings\accindicatorplugin\src\accindicator.cpp">Top</a></td></tr>
+<tr><td align="right" class="black_profile"><a name="a3"></a>6&nbsp;</td><td align="right" class="black_profile">6&nbsp;</td><td align="right" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;28&nbsp;</td><td class="black_source">AccIndicatorPlugin::AccIndicatorPlugin()&nbsp;:</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;29&nbsp;</td><td class="black_source">HbIndicatorInterface(IndicatorType,</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;30&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HbIndicatorInterface::SettingCategory,</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;31&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InteractionActivated)</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;32&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;{</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;33&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;mIndicatorTypes&nbsp;&lt;&lt;&nbsp;"com.nokia.accessory.indicatorplugin/1.0";</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;34&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;}</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;35&nbsp;</td><td class="black_source"></td></tr>
+<tr><td colspan="5" class="black"><a href="indexD1.html" title="W:\sf\mw\appsupport\systemsettings\accindicatorplugin\src\accindicator.cpp">Top</a></td></tr>
+<tr><td align="right" class="red_profile"><a name="a4"></a>0&nbsp;</td><td align="right" class="black_profile">0&nbsp;</td><td align="right" class="red_profile">-</td><td align="right" class="red_profile">&nbsp;<a name="ut6" href="indexD1.html#ut7">36</a>&nbsp;</td><td class="red_source">AccIndicatorPlugin::~AccIndicatorPlugin()</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;37&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;{</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;38&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;}</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;39&nbsp;</td><td class="black_source"></td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;40&nbsp;</td><td class="black_source">//&nbsp;----------------------------------------------------------------------------</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;41&nbsp;</td><td class="black_source">//&nbsp;AccIndicatorPlugin::indicatorTypes</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;42&nbsp;</td><td class="black_source">//&nbsp;returns&nbsp;the&nbsp;indicator&nbsp;types&nbsp;handled&nbsp;by&nbsp;this&nbsp;plugin</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;43&nbsp;</td><td class="black_source">//&nbsp;----------------------------------------------------------------------------</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;44&nbsp;</td><td class="black_source"></td></tr>
+<tr><td colspan="5" class="black"><a href="indexD1.html" title="W:\sf\mw\appsupport\systemsettings\accindicatorplugin\src\accindicator.cpp">Top</a></td></tr>
+<tr><td align="right" class="black_profile"><a name="a5"></a>1&nbsp;</td><td align="right" class="black_profile">0&nbsp;</td><td align="right" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;45&nbsp;</td><td class="black_source">QStringList&nbsp;AccIndicatorPlugin::indicatorTypes()&nbsp;const</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;46&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;{</td></tr>
+<tr><td align="right" class="black_profile">1&nbsp;</td><td align="right" class="red_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;47&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;mIndicatorTypes;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;48&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;}</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;49&nbsp;</td><td class="black_source"></td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;50&nbsp;</td><td class="black_source">//&nbsp;----------------------------------------------------------------------------</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;51&nbsp;</td><td class="black_source">//&nbsp;AccIndicatorPlugin::createIndicator</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;52&nbsp;</td><td class="black_source">//&nbsp;creates&nbsp;an&nbsp;indicator.</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;53&nbsp;</td><td class="black_source">//&nbsp;----------------------------------------------------------------------------</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;54&nbsp;</td><td class="black_source"></td></tr>
+<tr><td colspan="5" class="black"><a href="indexD1.html" title="W:\sf\mw\appsupport\systemsettings\accindicatorplugin\src\accindicator.cpp">Top</a></td></tr>
+<tr><td align="right" class="black_profile"><a name="a6"></a>1&nbsp;</td><td align="right" class="black_profile">0&nbsp;</td><td align="right" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;55&nbsp;</td><td class="black_source">HbIndicatorInterface*&nbsp;AccIndicatorPlugin::createIndicator(</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;56&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;QString&nbsp;&amp;indicatorType)</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;57&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;{</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;58&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;Q_UNUSED(indicatorType)</td></tr>
+<tr><td align="right" class="black_profile">1&nbsp;</td><td align="right" class="red_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;59&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;this;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;60&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;}</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;61&nbsp;</td><td class="black_source"></td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;62&nbsp;</td><td class="black_source">//&nbsp;----------------------------------------------------------------------------</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;63&nbsp;</td><td class="black_source">//&nbsp;AccIndicatorPlugin::error</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;64&nbsp;</td><td class="black_source">//&nbsp;returns&nbsp;the&nbsp;error&nbsp;code.</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;65&nbsp;</td><td class="black_source">//&nbsp;----------------------------------------------------------------------------</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;66&nbsp;</td><td class="black_source"></td></tr>
+<tr><td colspan="5" class="black"><a href="indexD1.html" title="W:\sf\mw\appsupport\systemsettings\accindicatorplugin\src\accindicator.cpp">Top</a></td></tr>
+<tr><td align="right" class="red_profile"><a name="a7"></a>0&nbsp;</td><td align="right" class="black_profile">0&nbsp;</td><td align="right" class="red_profile">-</td><td align="right" class="red_profile">&nbsp;<a name="ut7" href="indexD1.html#ut8">67</a>&nbsp;</td><td class="red_source">int&nbsp;AccIndicatorPlugin::error()&nbsp;const</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;68&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;{</td></tr>
+<tr><td align="right" class="red_profile">0&nbsp;</td><td align="right" class="red_profile">&nbsp;</td><td align="right" class="red_profile">-</td><td align="right" class="red_profile">&nbsp;<a name="ut8" href="indexD1.html#ut9">69</a>&nbsp;</td><td class="red_source">&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;mError;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;70&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;}</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;71&nbsp;</td><td class="black_source"></td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;72&nbsp;</td><td class="black_source">//&nbsp;----------------------------------------------------------------------------</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;73&nbsp;</td><td class="black_source">//&nbsp;AccIndicatorPlugin::accessAllowed</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;74&nbsp;</td><td class="black_source">//&nbsp;check&nbsp;for&nbsp;the&nbsp;access&nbsp;rights&nbsp;of&nbsp;the&nbsp;client.&nbsp;As&nbsp;there&nbsp;are&nbsp;no&nbsp;restrictions&nbsp;for&nbsp;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;75&nbsp;</td><td class="black_source">//&nbsp;this&nbsp;plugin&nbsp;it&nbsp;always&nbsp;returns&nbsp;true.</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;76&nbsp;</td><td class="black_source">//&nbsp;----------------------------------------------------------------------------</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;77&nbsp;</td><td class="black_source"></td></tr>
+<tr><td colspan="5" class="black"><a href="indexD1.html" title="W:\sf\mw\appsupport\systemsettings\accindicatorplugin\src\accindicator.cpp">Top</a></td></tr>
+<tr><td align="right" class="black_profile"><a name="a8"></a>1&nbsp;</td><td align="right" class="black_profile">0&nbsp;</td><td align="right" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;78&nbsp;</td><td class="black_source">bool&nbsp;AccIndicatorPlugin::accessAllowed(const&nbsp;QString&nbsp;&amp;indicatorType,const&nbsp;QVariantMap&nbsp;&amp;securityInfo)&nbsp;const</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;79&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;{</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;80&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;Q_UNUSED(indicatorType)</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;81&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;Q_UNUSED(securityInfo)</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;82&nbsp;</td><td class="black_source"></td></tr>
+<tr><td align="right" class="black_profile">1&nbsp;</td><td align="right" class="red_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;83&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;true;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;84&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;}</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;85&nbsp;</td><td class="black_source"></td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;86&nbsp;</td><td class="black_source">//&nbsp;----------------------------------------------------------------------------</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;87&nbsp;</td><td class="black_source">//&nbsp;AccIndicator::handleInteraction</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;88&nbsp;</td><td class="black_source">//&nbsp;called&nbsp;when&nbsp;the&nbsp;user&nbsp;interacts&nbsp;with&nbsp;the&nbsp;indicator.Enable&nbsp;the&nbsp;interaction&nbsp;only</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;89&nbsp;</td><td class="black_source">//&nbsp;for&nbsp;headset,tty&nbsp;and&nbsp;tv-out&nbsp;for&nbsp;user&nbsp;to&nbsp;change&nbsp;the&nbsp;settings.</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;90&nbsp;</td><td class="black_source">//&nbsp;----------------------------------------------------------------------------</td></tr>
+<tr><td colspan="5" class="black"><a href="indexD1.html" title="W:\sf\mw\appsupport\systemsettings\accindicatorplugin\src\accindicator.cpp">Top</a></td></tr>
+<tr><td align="right" class="black_profile"><a name="a9"></a>4&nbsp;</td><td align="right" class="black_profile">0&nbsp;</td><td align="right" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;91&nbsp;</td><td class="black_source">bool&nbsp;AccIndicatorPlugin::handleInteraction(InteractionType&nbsp;type)</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;92&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;{</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;93&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;bool&nbsp;handled&nbsp;=&nbsp;false;</td></tr>
+<tr><td align="right" class="black_profile">2&nbsp;</td><td align="right" class="black_profile">2&nbsp;</td><td align="right" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;94&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(type&nbsp;==&nbsp;InteractionActivated)&nbsp;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;95&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;96&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;If&nbsp;it&nbsp;is&nbsp;3-pole&nbsp;(&nbsp;i.e.,&nbsp;HeadSet&nbsp;or&nbsp;TTY&nbsp;)&nbsp;and&nbsp;TV-Out&nbsp;enable&nbsp;the&nbsp;handleInteraction()&nbsp;to&nbsp;change&nbsp;the&nbsp;settings.</td></tr>
+<tr><td align="right" class="black_profile">2&nbsp;</td><td align="right" class="red_profile">0&nbsp;</td><td align="right" class="red_profile">-</td><td align="right" class="red_profile">&nbsp;<a name="ut9" href="indexD1.html#ut10">97</a>&nbsp;</td><td class="red_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(mAccMode&nbsp;==&nbsp;EAccModeWiredHeadset&nbsp;||&nbsp;mAccMode&nbsp;==&nbsp;EAccModeWirelessHeadset&nbsp;||&nbsp;mAccMode&nbsp;==&nbsp;EAccModeTextDevice&nbsp;||&nbsp;mAccMode&nbsp;==&nbsp;EAccModeTVOut&nbsp;)</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;98&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;99&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;QObject::connect(&nbsp;&amp;mProcess,&nbsp;SIGNAL(error(QProcess::ProcessError)),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;100&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this,&nbsp;SLOT(processError(QProcess::ProcessError)));</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;101&nbsp;</td><td class="black_source"></td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;102&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;QVariant&nbsp;mode,type;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;103&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mode.setValue((int)mAccMode);&nbsp;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;104&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type.setValue((int)mAccType);</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;105&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mArgs.append(mode.toString());</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;106&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mArgs.append(type.toString());</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;107&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;108&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Launch&nbsp;the&nbsp;process&nbsp;to&nbsp;show&nbsp;the&nbsp;view.</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;109&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mProcess.start("accindicatorsettings"&nbsp;,&nbsp;mArgs);</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;110&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;handled&nbsp;=&nbsp;true;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;111&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;112&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</td></tr>
+<tr><td align="right" class="black_profile">4&nbsp;</td><td align="right" class="red_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;113&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;handled;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;114&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;}</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;115&nbsp;</td><td class="black_source"></td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;116&nbsp;</td><td class="black_source">//&nbsp;----------------------------------------------------------------------------</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;117&nbsp;</td><td class="black_source">//&nbsp;AccIndicator::indicatorData</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;118&nbsp;</td><td class="black_source">//&nbsp;returns&nbsp;the&nbsp;name&nbsp;and&nbsp;icon&nbsp;to&nbsp;be&nbsp;displayed&nbsp;in&nbsp;the&nbsp;universal&nbsp;indicator&nbsp;menu.</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;119&nbsp;</td><td class="black_source">//&nbsp;----------------------------------------------------------------------------</td></tr>
+<tr><td colspan="5" class="black"><a href="indexD1.html" title="W:\sf\mw\appsupport\systemsettings\accindicatorplugin\src\accindicator.cpp">Top</a></td></tr>
+<tr><td align="right" class="black_profile"><a name="a10"></a>3&nbsp;</td><td align="right" class="black_profile">0&nbsp;</td><td align="right" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;120&nbsp;</td><td class="black_source">QVariant&nbsp;AccIndicatorPlugin::indicatorData(int&nbsp;role)&nbsp;const</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;121&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;{</td></tr>
+<tr><td align="right" class="red_profile">&nbsp;</td><td align="right" class="red_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;122&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;switch(role)</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;123&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;124&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//for&nbsp;displaying&nbsp;the&nbsp;string&nbsp;in&nbsp;indicator.</td></tr>
+<tr><td align="right" class="black_profile">2&nbsp;</td><td align="right" class="red_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;125&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;PrimaryTextRole:&nbsp;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;126&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;127&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;QString&nbsp;type(mDisplayName);</td></tr>
+<tr><td align="right" class="black_profile">2&nbsp;</td><td align="right" class="red_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;128&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;type;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;129&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;130&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//for&nbsp;displaying&nbsp;the&nbsp;icon&nbsp;in&nbsp;indicator.</td></tr>
+<tr><td align="right" class="black_profile">1&nbsp;</td><td align="right" class="red_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;131&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;MonoDecorationNameRole:</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;132&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;133&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;QString&nbsp;iconName;</td></tr>
+<tr><td align="right" class="black_profile">1&nbsp;</td><td align="right" class="red_profile">0&nbsp;</td><td align="right" class="red_profile">-</td><td align="right" class="red_profile">&nbsp;<a name="ut10" href="indexD1.html#ut11">134</a>&nbsp;</td><td class="red_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(mAccType&nbsp;==&nbsp;KPCWired&nbsp;||&nbsp;mAccType&nbsp;==&nbsp;KPCUSB)</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;135&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;136&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;iconName&nbsp;=&nbsp;QString("z:/resource/accindicator/wired_accessory.svg");</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;137&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</td></tr>
+<tr><td align="right" class="red_profile">0&nbsp;</td><td align="right" class="red_profile">0&nbsp;</td><td align="right" class="red_profile">-</td><td align="right" class="red_profile">&nbsp;<a name="ut11" href="indexD1.html#ut12">138</a>&nbsp;</td><td class="red_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;if&nbsp;(mAccType&nbsp;==&nbsp;KPCBluetooth&nbsp;||&nbsp;mAccType&nbsp;==&nbsp;KPCInfraRed)</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;139&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;140&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;iconName&nbsp;=&nbsp;QString("z:/resource/accindicator/wireless_accessory.svg");</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;141&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</td></tr>
+<tr><td align="right" class="black_profile">1&nbsp;</td><td align="right" class="red_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;142&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;iconName;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;143&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</td></tr>
+<tr><td align="right" class="red_profile">0&nbsp;</td><td align="right" class="red_profile">&nbsp;</td><td align="right" class="red_profile">-</td><td align="right" class="red_profile">&nbsp;<a name="ut12" href="indexD1.html#ut13">144</a>&nbsp;</td><td class="red_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;default:&nbsp;</td></tr>
+<tr><td align="right" class="red_profile">0&nbsp;</td><td align="right" class="red_profile">&nbsp;</td><td align="right" class="red_profile">-</td><td align="right" class="red_profile">&nbsp;<a name="ut13" href="indexD1.html#ut14">145</a>&nbsp;</td><td class="red_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;QVariant();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;146&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;147&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;}</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;148&nbsp;</td><td class="black_source"></td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;149&nbsp;</td><td class="black_source">//&nbsp;----------------------------------------------------------------------------</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;150&nbsp;</td><td class="black_source">//&nbsp;AccIndicatorPlugin::handleClientRequest</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;151&nbsp;</td><td class="black_source">//&nbsp;this&nbsp;function&nbsp;gets&nbsp;called&nbsp;when&nbsp;client&nbsp;activates&nbsp;plugin</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;152&nbsp;</td><td class="black_source">//&nbsp;----------------------------------------------------------------------------</td></tr>
+<tr><td colspan="5" class="black"><a href="indexD1.html" title="W:\sf\mw\appsupport\systemsettings\accindicatorplugin\src\accindicator.cpp">Top</a></td></tr>
+<tr><td align="right" class="black_profile"><a name="a11"></a>4&nbsp;</td><td align="right" class="black_profile">0&nbsp;</td><td align="right" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;153&nbsp;</td><td class="black_source">bool&nbsp;AccIndicatorPlugin::handleClientRequest(&nbsp;RequestType&nbsp;type,&nbsp;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;154&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;QVariant&nbsp;&amp;parameter)</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;155&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;156&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;bool&nbsp;handled(false);</td></tr>
+<tr><td align="right" class="red_profile">&nbsp;</td><td align="right" class="red_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;157&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;switch&nbsp;(type)&nbsp;{</td></tr>
+<tr><td align="right" class="black_profile">3&nbsp;</td><td align="right" class="red_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;158&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;RequestActivate:</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;159&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;160&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Get&nbsp;the&nbsp;params(acctype&nbsp;and&nbsp;mode)&nbsp;from&nbsp;the&nbsp;hbindicator.activate()&nbsp;which&nbsp;is&nbsp;called&nbsp;from&nbsp;sysap.</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;161&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;162&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;QVariantMap&nbsp;mapValues&nbsp;=&nbsp;parameter.toMap();</td></tr>
+<tr><td align="right" class="black_profile">3&nbsp;</td><td align="right" class="red_profile">0&nbsp;</td><td align="right" class="red_profile">-</td><td align="right" class="red_profile">&nbsp;<a name="ut14" href="indexD1.html#ut15">163</a>&nbsp;</td><td class="red_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(mapValues.contains(KAccMode))</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;164&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;165&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mAccMode&nbsp;=&nbsp;static_cast&lt;TAccMode&gt;(mapValues.value(KAccMode).toInt());</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;166&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</td></tr>
+<tr><td align="right" class="black_profile">3&nbsp;</td><td align="right" class="red_profile">0&nbsp;</td><td align="right" class="red_profile">-</td><td align="right" class="red_profile">&nbsp;<a name="ut15" href="indexD1.html#ut16">167</a>&nbsp;</td><td class="red_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(mapValues.contains(KAccType))</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;168&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;169&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mAccType&nbsp;=&nbsp;mapValues.value(KAccType).toInt();</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;170&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;171&nbsp;</td><td class="black_source"></td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;172&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;prepare&nbsp;the&nbsp;name&nbsp;to&nbsp;be&nbsp;displayed&nbsp;in&nbsp;the&nbsp;universal&nbsp;indicator&nbsp;menu.</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;173&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;prepareDisplayName();</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;174&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;emit&nbsp;dataChanged();</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;175&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;handled&nbsp;=&nbsp;&nbsp;true;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;176&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</td></tr>
+<tr><td align="right" class="black_profile">3&nbsp;</td><td align="right" class="red_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;177&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;</td></tr>
+<tr><td align="right" class="black_profile">1&nbsp;</td><td align="right" class="red_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;178&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;RequestDeactivate:</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;179&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;180&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;reset&nbsp;data&nbsp;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;181&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mDisplayName&nbsp;=&nbsp;QString();</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;182&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;emit&nbsp;deactivate();</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;183&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</td></tr>
+<tr><td align="right" class="black_profile">1&nbsp;</td><td align="right" class="red_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;184&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;</td></tr>
+<tr><td align="right" class="red_profile">0&nbsp;</td><td align="right" class="red_profile">&nbsp;</td><td align="right" class="red_profile">-</td><td align="right" class="red_profile">&nbsp;<a name="ut16" href="indexD1.html#ut17">185</a>&nbsp;</td><td class="red_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;default:</td></tr>
+<tr><td align="right" class="red_profile">0&nbsp;</td><td align="right" class="red_profile">&nbsp;</td><td align="right" class="red_profile">-</td><td align="right" class="red_profile">&nbsp;<a name="ut17" href="indexD1.html#ut18">186</a>&nbsp;</td><td class="red_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;187&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;}</td></tr>
+<tr><td align="right" class="black_profile">4&nbsp;</td><td align="right" class="red_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;188&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;handled;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;189&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;}</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;190&nbsp;</td><td class="black_source"></td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;191&nbsp;</td><td class="black_source">//&nbsp;----------------------------------------------------------------------------</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;192&nbsp;</td><td class="black_source">//&nbsp;AccIndicator::prepareDisplayName</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;193&nbsp;</td><td class="black_source">//&nbsp;prepare&nbsp;the&nbsp;name&nbsp;to&nbsp;be&nbsp;displayed&nbsp;in&nbsp;the&nbsp;indicator&nbsp;menu.</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;194&nbsp;</td><td class="black_source">//&nbsp;----------------------------------------------------------------------------</td></tr>
+<tr><td colspan="5" class="black"><a href="indexD1.html" title="W:\sf\mw\appsupport\systemsettings\accindicatorplugin\src\accindicator.cpp">Top</a></td></tr>
+<tr><td align="right" class="black_profile"><a name="a12"></a>3&nbsp;</td><td align="right" class="black_profile">3&nbsp;</td><td align="right" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;195&nbsp;</td><td class="black_source">void&nbsp;AccIndicatorPlugin::prepareDisplayName()</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;196&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;{</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;197&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;mDisplayName.clear();</td></tr>
+<tr><td align="right" class="red_profile">&nbsp;</td><td align="right" class="red_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;198&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;switch(mAccMode)</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;199&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</td></tr>
+<tr><td align="right" class="black_profile">2&nbsp;</td><td align="right" class="red_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;200&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;EAccModeWiredHeadset:</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;201&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mDisplayName.append(QString("Wired&nbsp;Headset"));</td></tr>
+<tr><td align="right" class="black_profile">2&nbsp;</td><td align="right" class="red_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;202&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;</td></tr>
+<tr><td align="right" class="red_profile">0&nbsp;</td><td align="right" class="red_profile">&nbsp;</td><td align="right" class="red_profile">-</td><td align="right" class="red_profile">&nbsp;<a name="ut18" href="indexD1.html#ut19">203</a>&nbsp;</td><td class="red_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;EAccModeWirelessHeadset:</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;204&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mDisplayName.append(QString("Wireless&nbsp;Headset"));</td></tr>
+<tr><td align="right" class="red_profile">0&nbsp;</td><td align="right" class="red_profile">&nbsp;</td><td align="right" class="red_profile">-</td><td align="right" class="red_profile">&nbsp;<a name="ut19" href="indexD1.html#ut20">205</a>&nbsp;</td><td class="red_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;</td></tr>
+<tr><td align="right" class="red_profile">0&nbsp;</td><td align="right" class="red_profile">&nbsp;</td><td align="right" class="red_profile">-</td><td align="right" class="red_profile">&nbsp;<a name="ut20" href="indexD1.html#ut21">206</a>&nbsp;</td><td class="red_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;EAccModeWiredCarKit:</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;207&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mDisplayName.append(QString("Wired&nbsp;CarKit"));</td></tr>
+<tr><td align="right" class="red_profile">0&nbsp;</td><td align="right" class="red_profile">&nbsp;</td><td align="right" class="red_profile">-</td><td align="right" class="red_profile">&nbsp;<a name="ut21" href="indexD1.html#ut22">208</a>&nbsp;</td><td class="red_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;</td></tr>
+<tr><td align="right" class="red_profile">0&nbsp;</td><td align="right" class="red_profile">&nbsp;</td><td align="right" class="red_profile">-</td><td align="right" class="red_profile">&nbsp;<a name="ut22" href="indexD1.html#ut23">209</a>&nbsp;</td><td class="red_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;EAccModeWirelessCarKit:</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;210&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mDisplayName.append(QString("Wireless&nbsp;Carkit"));</td></tr>
+<tr><td align="right" class="red_profile">0&nbsp;</td><td align="right" class="red_profile">&nbsp;</td><td align="right" class="red_profile">-</td><td align="right" class="red_profile">&nbsp;<a name="ut23" href="indexD1.html#ut24">211</a>&nbsp;</td><td class="red_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;</td></tr>
+<tr><td align="right" class="red_profile">0&nbsp;</td><td align="right" class="red_profile">&nbsp;</td><td align="right" class="red_profile">-</td><td align="right" class="red_profile">&nbsp;<a name="ut24" href="indexD1.html#ut25">212</a>&nbsp;</td><td class="red_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;EAccModeTextDevice:</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;213&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mDisplayName.append(QString("TTY"));</td></tr>
+<tr><td align="right" class="red_profile">0&nbsp;</td><td align="right" class="red_profile">&nbsp;</td><td align="right" class="red_profile">-</td><td align="right" class="red_profile">&nbsp;<a name="ut25" href="indexD1.html#ut26">214</a>&nbsp;</td><td class="red_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;</td></tr>
+<tr><td align="right" class="red_profile">0&nbsp;</td><td align="right" class="red_profile">&nbsp;</td><td align="right" class="red_profile">-</td><td align="right" class="red_profile">&nbsp;<a name="ut26" href="indexD1.html#ut27">215</a>&nbsp;</td><td class="red_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;EAccModeLoopset:</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;216&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mDisplayName.append(QString("LoopSet"));</td></tr>
+<tr><td align="right" class="red_profile">0&nbsp;</td><td align="right" class="red_profile">&nbsp;</td><td align="right" class="red_profile">-</td><td align="right" class="red_profile">&nbsp;<a name="ut27" href="indexD1.html#ut28">217</a>&nbsp;</td><td class="red_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;</td></tr>
+<tr><td align="right" class="red_profile">0&nbsp;</td><td align="right" class="red_profile">&nbsp;</td><td align="right" class="red_profile">-</td><td align="right" class="red_profile">&nbsp;<a name="ut28" href="indexD1.html#ut29">218</a>&nbsp;</td><td class="red_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;EAccModeMusicStand:</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;219&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mDisplayName.append(QString("Music&nbsp;Stand"));</td></tr>
+<tr><td align="right" class="red_profile">0&nbsp;</td><td align="right" class="red_profile">&nbsp;</td><td align="right" class="red_profile">-</td><td align="right" class="red_profile">&nbsp;<a name="ut29" href="indexD1.html#ut30">220</a>&nbsp;</td><td class="red_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;</td></tr>
+<tr><td align="right" class="black_profile">1&nbsp;</td><td align="right" class="red_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;221&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;EAccModeTVOut:</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;222&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mDisplayName.append(QString("TV&nbsp;Out"));</td></tr>
+<tr><td align="right" class="black_profile">1&nbsp;</td><td align="right" class="red_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;223&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;</td></tr>
+<tr><td align="right" class="red_profile">0&nbsp;</td><td align="right" class="red_profile">&nbsp;</td><td align="right" class="red_profile">-</td><td align="right" class="red_profile">&nbsp;<a name="ut30" href="indexD1.html#ut31">224</a>&nbsp;</td><td class="red_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;EAccModeHeadphones:</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;225&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mDisplayName.append(QString("Head&nbsp;Phones"));</td></tr>
+<tr><td align="right" class="red_profile">0&nbsp;</td><td align="right" class="red_profile">&nbsp;</td><td align="right" class="red_profile">-</td><td align="right" class="red_profile">&nbsp;<a name="ut31" href="indexD1.html#ut32">226</a>&nbsp;</td><td class="red_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;</td></tr>
+<tr><td align="right" class="red_profile">0&nbsp;</td><td align="right" class="red_profile">&nbsp;</td><td align="right" class="red_profile">-</td><td align="right" class="red_profile">&nbsp;<a name="ut32" href="indexD1.html#ut33">227</a>&nbsp;</td><td class="red_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;default&nbsp;:</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;228&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mDisplayName.append(QString("Unknown"));</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;229&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;230&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;}</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;231&nbsp;</td><td class="black_source"></td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;232&nbsp;</td><td class="black_source">//&nbsp;----------------------------------------------------------------------------</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;233&nbsp;</td><td class="black_source">//&nbsp;AccIndicator::processError</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;234&nbsp;</td><td class="black_source">//&nbsp;handle&nbsp;the&nbsp;error&nbsp;conditions&nbsp;reurned&nbsp;by&nbsp;the&nbsp;QProcess.</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;235&nbsp;</td><td class="black_source">//&nbsp;----------------------------------------------------------------------------</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;236&nbsp;</td><td class="black_source"></td></tr>
+<tr><td colspan="5" class="black"><a href="indexD1.html" title="W:\sf\mw\appsupport\systemsettings\accindicatorplugin\src\accindicator.cpp">Top</a></td></tr>
+<tr><td align="right" class="red_profile"><a name="a13"></a>0&nbsp;</td><td align="right" class="black_profile">0&nbsp;</td><td align="right" class="red_profile">-</td><td align="right" class="red_profile">&nbsp;<a name="ut33" href="indexD1.html#ut34">237</a>&nbsp;</td><td class="red_source">void&nbsp;AccIndicatorPlugin::processError(QProcess::ProcessError&nbsp;err)</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;238&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;{</td></tr>
+<tr><td align="right" class="red_profile">&nbsp;</td><td align="right" class="red_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;239&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;switch&nbsp;(err)&nbsp;{&nbsp;&nbsp;&nbsp;</td></tr>
+<tr><td align="right" class="red_profile">0&nbsp;</td><td align="right" class="red_profile">&nbsp;</td><td align="right" class="red_profile">-</td><td align="right" class="red_profile">&nbsp;<a name="ut34" href="indexD1.html#ut35">240</a>&nbsp;</td><td class="red_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;QProcess::FailedToStart:&nbsp;</td></tr>
+<tr><td align="right" class="red_profile">0&nbsp;</td><td align="right" class="red_profile">&nbsp;</td><td align="right" class="red_profile">-</td><td align="right" class="red_profile">&nbsp;<a name="ut35" href="indexD1.html#ut36">241</a>&nbsp;</td><td class="red_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;QProcess::Crashed:&nbsp;</td></tr>
+<tr><td align="right" class="red_profile">0&nbsp;</td><td align="right" class="red_profile">&nbsp;</td><td align="right" class="red_profile">-</td><td align="right" class="red_profile">&nbsp;<a name="ut36" href="indexD1.html#ut37">242</a>&nbsp;</td><td class="red_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;QProcess::Timedout:&nbsp;</td></tr>
+<tr><td align="right" class="red_profile">0&nbsp;</td><td align="right" class="red_profile">&nbsp;</td><td align="right" class="red_profile">-</td><td align="right" class="red_profile">&nbsp;<a name="ut37" href="indexD1.html#ut38">243</a>&nbsp;</td><td class="red_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;QProcess::ReadError:&nbsp;</td></tr>
+<tr><td align="right" class="red_profile">0&nbsp;</td><td align="right" class="red_profile">&nbsp;</td><td align="right" class="red_profile">-</td><td align="right" class="red_profile">&nbsp;<a name="ut38" href="indexD1.html#ut39">244</a>&nbsp;</td><td class="red_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;QProcess::WriteError:&nbsp;</td></tr>
+<tr><td align="right" class="red_profile">0&nbsp;</td><td align="right" class="red_profile">&nbsp;</td><td align="right" class="red_profile">-</td><td align="right" class="red_profile">&nbsp;<a name="ut39" href="indexD1.html#ut40">245</a>&nbsp;</td><td class="red_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;QProcess::UnknownError:</td></tr>
+<tr><td align="right" class="red_profile">0&nbsp;</td><td align="right" class="red_profile">&nbsp;</td><td align="right" class="red_profile">-</td><td align="right" class="red_profile">&nbsp;<a name="ut40" href="indexD1.html#ut41">246</a>&nbsp;</td><td class="red_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;&nbsp;&nbsp;</td></tr>
+<tr><td align="right" class="red_profile">0&nbsp;</td><td align="right" class="red_profile">&nbsp;</td><td align="right" class="red_profile">-</td><td align="right" class="red_profile">&nbsp;<a name="ut41" href="indexD1.html#ut42">247</a>&nbsp;</td><td class="red_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;default:</td></tr>
+<tr><td align="right" class="red_profile">0&nbsp;</td><td align="right" class="red_profile">&nbsp;</td><td align="right" class="red_profile">-</td><td align="right" class="red_profile">&nbsp;<a name="ut42" href="indexD1.html#ut43">248</a>&nbsp;</td><td class="red_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;249&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;250&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;}</td></tr>
+<tr><td colspan="5" class="red"><strong>***TER 41% (31/75) of SOURCE FILE <a name="ut43"></a>accindicator.cpp</strong></td></tr>
+</table><br>
+<span class="black"><a href="indexF.html" target="_top">Directory Summary</a> | <a href="index.html" target="_top">Files Summary</a> | <a href="indexB1.html" target="_top">Functions Summary</a> | <a href="indexD1.html">Execution Profile</a><br>
+To files: <a href="indexD1.html">First</a> | Previous | <a href="indexD2.html">Next</a> | <a href="indexD4.html">Last</a> | <a href="indexD1.html">Top</a> | <a href="indexA.html#a1">Index</a> | <a href="indexD1.html" target="_top">No Index</a></span><br><br>
+</body></html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/CTCHTML/indexD2.html	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,152 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head>
+<title>CTC++ Coverage Report - Execution Profile - utaccindicatorplugin.cpp</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<meta name="keyword" content="CTC++, Testwell, Test Coverage Analyzer">
+<meta name="date" content="Tue Aug 24 13:33:36 2010">
+<meta name="generator" content="Testwell CTC++ add-on utility ctc2html v2.6">
+<link rel="stylesheet" type="text/css" href="ctc.css">
+<link rel="contents" href="index.html">
+</head>
+<body text="#150040" bgcolor="#ffffff" link="#000088" vlink="#007788">
+<span class="head1">CTC++ Coverage Report - </span>
+<span class="head2">Execution Profile</span>
+<span class="head3">&nbsp;&nbsp;&nbsp;#2/4</span><br><br>
+<span class="black"><a href="indexF.html" target="_top">Directory Summary</a> | <a href="index.html" target="_top">Files Summary</a> | <a href="indexB1.html" target="_top">Functions Summary</a> | <a href="indexD1.html">Execution Profile</a><br>
+To files: <a href="indexD1.html">First</a> | <a href="indexD1.html">Previous</a> | <a href="indexD3.html">Next</a> | <a href="indexD4.html">Last</a> | <a href="indexA.html#a2">Index</a> | <a href="indexD2.html" target="_top">No Index</a></span><br><br>
+<span class="black"><strong>File: W:\sf\mw\appsupport\systemsettings\accindicatorplugin\tsrc\utaccindicatorplugin\src\utaccindicatorplugin.cpp</strong></span><br>
+<span class="black"><strong>Instrumentation&nbsp;mode:&nbsp;</strong>function-decision</span><br>
+<span class="black"><strong>TER: </strong></span><span class="black">100 % (  0/  0)</span><br><br>
+<table cellspacing="0">
+<tr><td align="right" class="black"><strong>Start/</strong>&nbsp;</td><td align="right" class="black"><strong>End/</strong>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
+<tr><td align="right" class="black"><strong>True</strong>&nbsp;</td><td align="right" class="black"><strong>False</strong>&nbsp;</td><td align="right" class="black"><strong>-</strong></td><td align="right" class="black">&nbsp;<a href="indexD2.html#ut1" title="First untested"><strong>Line</strong></a>&nbsp;</td><td class="black"><strong>Source</strong></td></tr>
+<tr><td colspan="5"><hr></td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;1&nbsp;</td><td class="black_source">/*</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;2&nbsp;</td><td class="black_source">*&nbsp;Copyright&nbsp;(c)&nbsp;2009&nbsp;Nokia&nbsp;Corporation&nbsp;and/or&nbsp;its&nbsp;subsidiary(-ies).&nbsp;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;3&nbsp;</td><td class="black_source">*&nbsp;All&nbsp;rights&nbsp;reserved.</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;4&nbsp;</td><td class="black_source">*&nbsp;This&nbsp;component&nbsp;and&nbsp;the&nbsp;accompanying&nbsp;materials&nbsp;are&nbsp;made&nbsp;available</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;5&nbsp;</td><td class="black_source">*&nbsp;under&nbsp;the&nbsp;terms&nbsp;of&nbsp;"Eclipse&nbsp;Public&nbsp;License&nbsp;v1.0"</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;6&nbsp;</td><td class="black_source">*&nbsp;which&nbsp;accompanies&nbsp;this&nbsp;distribution,&nbsp;and&nbsp;is&nbsp;available</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;7&nbsp;</td><td class="black_source">*&nbsp;at&nbsp;the&nbsp;URL&nbsp;"http://www.eclipse.org/legal/epl-v10.html".</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;8&nbsp;</td><td class="black_source">*</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;9&nbsp;</td><td class="black_source">*&nbsp;Initial&nbsp;Contributors:</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;10&nbsp;</td><td class="black_source">*&nbsp;Nokia&nbsp;Corporation&nbsp;-&nbsp;initial&nbsp;contribution.</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;11&nbsp;</td><td class="black_source">*</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;12&nbsp;</td><td class="black_source">*&nbsp;Contributors:</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;13&nbsp;</td><td class="black_source">*&nbsp;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;14&nbsp;</td><td class="black_source">*&nbsp;Description:&nbsp;This&nbsp;file&nbsp;contains&nbsp;STIFUnit&nbsp;module&nbsp;implementation.</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;15&nbsp;</td><td class="black_source">*</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;16&nbsp;</td><td class="black_source">*/</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;17&nbsp;</td><td class="black_source"></td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;18&nbsp;</td><td class="black_source">/******************************************************************************/</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;19&nbsp;</td><td class="black_source">/*</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;20&nbsp;</td><td class="black_source">&nbsp;*</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;21&nbsp;</td><td class="black_source">&nbsp;*&nbsp;Test&nbsp;module&nbsp;configuration&nbsp;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;22&nbsp;</td><td class="black_source">*/</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;23&nbsp;</td><td class="black_source"></td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;24&nbsp;</td><td class="black_source">//&nbsp;Version</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;25&nbsp;</td><td class="black_source">#define&nbsp;TEST_MODULE_VERSION_MAJOR&nbsp;0</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;26&nbsp;</td><td class="black_source">#define&nbsp;TEST_MODULE_VERSION_MINOR&nbsp;0</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;27&nbsp;</td><td class="black_source">#define&nbsp;TEST_MODULE_VERSION_BUILD&nbsp;0</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;28&nbsp;</td><td class="black_source"></td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;29&nbsp;</td><td class="black_source">//&nbsp;Uncomment&nbsp;following&nbsp;defines,&nbsp;if&nbsp;you&nbsp;want&nbsp;to&nbsp;provide&nbsp;implementation</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;30&nbsp;</td><td class="black_source">//&nbsp;of&nbsp;enlisted&nbsp;virtual&nbsp;methods&nbsp;of&nbsp;test&nbsp;module.</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;31&nbsp;</td><td class="black_source">//&nbsp;Implementation&nbsp;part&nbsp;is&nbsp;located&nbsp;at&nbsp;the&nbsp;end&nbsp;of&nbsp;this&nbsp;file.</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;32&nbsp;</td><td class="black_source">//#define&nbsp;STIFUNIT_OOMTESTQUERYL</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;33&nbsp;</td><td class="black_source">//#define&nbsp;STIFUNIT_OOMTESTINITIALIZEL</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;34&nbsp;</td><td class="black_source">//#define&nbsp;STIFUNIT_OOMHANDLEWARNINGL</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;35&nbsp;</td><td class="black_source">//#define&nbsp;STIFUNIT_OOMTESTFINALIZEL</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;36&nbsp;</td><td class="black_source">//&nbsp;Uncomment&nbsp;following&nbsp;define,&nbsp;if&nbsp;you&nbsp;want&nbsp;to&nbsp;increase&nbsp;heap&nbsp;or&nbsp;stack&nbsp;size.</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;37&nbsp;</td><td class="black_source">//&nbsp;#define&nbsp;STIFUNIT_SETHEAPANDSTACKSIZE</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;38&nbsp;</td><td class="black_source">/******************************************************************************/</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;39&nbsp;</td><td class="black_source"></td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;40&nbsp;</td><td class="black_source"></td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;41&nbsp;</td><td class="black_source">/*</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;42&nbsp;</td><td class="black_source">&nbsp;*&nbsp;Test&nbsp;module&nbsp;internals.&nbsp;Please&nbsp;do&nbsp;not&nbsp;edit&nbsp;them.&nbsp;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;43&nbsp;</td><td class="black_source">*/</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;44&nbsp;</td><td class="black_source"></td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;45&nbsp;</td><td class="black_source">//&nbsp;Includes</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;46&nbsp;</td><td class="black_source">#include&nbsp;&lt;e32base.h&gt;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;47&nbsp;</td><td class="black_source"></td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;48&nbsp;</td><td class="black_source">//&nbsp;Literals</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;49&nbsp;</td><td class="black_source">_LIT(&nbsp;KUnitLogPath,&nbsp;"\\logs\\testframework\\"&nbsp;);&nbsp;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;50&nbsp;</td><td class="black_source">_LIT(&nbsp;KUnitLogFile,&nbsp;"utaccindicatorplugin.txt"&nbsp;);&nbsp;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;51&nbsp;</td><td class="black_source">_LIT(&nbsp;KLogStart,&nbsp;"utaccindicatorplugin&nbsp;logging&nbsp;starts!"&nbsp;);</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;52&nbsp;</td><td class="black_source"></td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;53&nbsp;</td><td class="black_source">//&nbsp;Defines</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;54&nbsp;</td><td class="black_source">#define&nbsp;STIF_UNIT_TEST_CASES&nbsp;"../src/utaccindicatorpluginCases.cpp"</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;55&nbsp;</td><td class="black_source">#define&nbsp;STIF_UNIT_MODULE_CLASS_NAME&nbsp;Cutaccindicatorplugin</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;56&nbsp;</td><td class="black_source">#define&nbsp;STIF_UNIT_MODULE_NAME&nbsp;_L("utaccindicatorplugin.dll")</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;57&nbsp;</td><td class="black_source"></td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;58&nbsp;</td><td class="black_source">//&nbsp;Include&nbsp;STIF&nbsp;unit&nbsp;generic&nbsp;file</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;59&nbsp;</td><td class="black_source">#include&nbsp;&lt;StifUnitGeneric.h&gt;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;60&nbsp;</td><td class="black_source"></td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;61&nbsp;</td><td class="black_source">/*</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;62&nbsp;</td><td class="black_source">&nbsp;*&nbsp;Implementation&nbsp;of&nbsp;setHeapAndStack&nbsp;virtual&nbsp;methods.</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;63&nbsp;</td><td class="black_source">&nbsp;*&nbsp;To&nbsp;changes&nbsp;heap&nbsp;and&nbsp;stack&nbsp;size&nbsp;provide&nbsp;new&nbsp;values&nbsp;to&nbsp;iTestThreadStackSize,&nbsp;iTestThreadMinHeap&nbsp;and&nbsp;iTestThreadMaxHeap.&nbsp;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;64&nbsp;</td><td class="black_source">*/</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;65&nbsp;</td><td class="black_source"></td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;66&nbsp;</td><td class="black_source">#ifdef&nbsp;STIFUNIT_SETHEAPANDSTACKSIZE</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;67&nbsp;</td><td class="black_source">EXPORT_C&nbsp;TInt&nbsp;SetRequirements(&nbsp;CTestModuleParam*&amp;&nbsp;aTestModuleParam,&nbsp;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;68&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TUint32&amp;&nbsp;aParameterValid&nbsp;)</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;69&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;{</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;70&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;aParameterValid&nbsp;=&nbsp;KStifTestModuleParameterChanged;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;71&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;CTestModuleParamVer01*&nbsp;param&nbsp;=&nbsp;CTestModuleParamVer01::NewL();&nbsp;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;72&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Stack&nbsp;size&nbsp;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;73&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;param-&gt;iTestThreadStackSize=&nbsp;16384;&nbsp;//&nbsp;16K&nbsp;stack&nbsp;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;74&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Heap&nbsp;sizes&nbsp;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;75&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;param-&gt;iTestThreadMinHeap&nbsp;=&nbsp;4096;&nbsp;//&nbsp;4K&nbsp;heap&nbsp;min&nbsp;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;76&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;param-&gt;iTestThreadMaxHeap&nbsp;=&nbsp;1048576;//&nbsp;1M&nbsp;heap&nbsp;max&nbsp;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;77&nbsp;</td><td class="black_source"></td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;78&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;KErrNone;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;79&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;}</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;80&nbsp;</td><td class="black_source">#undef&nbsp;STIFUNIT_SETHEAPANDSTACKSIZE</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;81&nbsp;</td><td class="black_source">#endif</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;82&nbsp;</td><td class="black_source"></td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;83&nbsp;</td><td class="black_source">/*</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;84&nbsp;</td><td class="black_source">&nbsp;*&nbsp;User&nbsp;implementation&nbsp;of&nbsp;OOM&nbsp;virtual&nbsp;methods.</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;85&nbsp;</td><td class="black_source">&nbsp;*&nbsp;Providing&nbsp;own&nbsp;implementation&nbsp;requires&nbsp;uncommenting&nbsp;defines&nbsp;at&nbsp;the</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;86&nbsp;</td><td class="black_source">&nbsp;*&nbsp;beginnig&nbsp;of&nbsp;this&nbsp;file.&nbsp;&nbsp;&nbsp;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;87&nbsp;</td><td class="black_source">*/</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;88&nbsp;</td><td class="black_source">#ifdef&nbsp;STIFUNIT_OOMTESTQUERYL</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;89&nbsp;</td><td class="black_source">TBool&nbsp;Cutaccindicatorplugin::OOMTestQueryL(&nbsp;const&nbsp;TFileName&amp;&nbsp;/*aTestCaseFile*/,&nbsp;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;90&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;TInt&nbsp;aCaseNumber,&nbsp;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;91&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TOOMFailureType&amp;&nbsp;aFailureType,&nbsp;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;92&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TInt&amp;&nbsp;aFirstMemFailure,&nbsp;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;93&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TInt&amp;&nbsp;aLastMemFailure)</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;94&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;{</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;95&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;}</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;96&nbsp;</td><td class="black_source">#undef&nbsp;STIFUNIT_OOMTESTQUERYL</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;97&nbsp;</td><td class="black_source">#endif</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;98&nbsp;</td><td class="black_source"></td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;99&nbsp;</td><td class="black_source">#ifdef&nbsp;STIFUNIT_OOMTESTINITIALIZEL</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;100&nbsp;</td><td class="black_source">void&nbsp;Cutaccindicatorplugin::OOMTestInitializeL(&nbsp;const&nbsp;TFileName&amp;&nbsp;/*aTestCaseFile*/,&nbsp;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;101&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;TInt&nbsp;/*aCaseNumber*/&nbsp;)</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;102&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;{</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;103&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;}</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;104&nbsp;</td><td class="black_source">#undef&nbsp;STIFUNIT_OOMTESTINITIALIZEL</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;105&nbsp;</td><td class="black_source">#endif</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;106&nbsp;</td><td class="black_source"></td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;107&nbsp;</td><td class="black_source">#ifdef&nbsp;STIFUNIT_OOMHANDLEWARNINGL</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;108&nbsp;</td><td class="black_source">void&nbsp;Cutaccindicatorplugin::OOMHandleWarningL(&nbsp;const&nbsp;TFileName&amp;&nbsp;/*aTestCaseFile*/,</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;109&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;TInt&nbsp;/*aCaseNumber*/,&nbsp;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;110&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TInt&amp;&nbsp;/*aFailNextValue*/)</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;111&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;{</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;112&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;}</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;113&nbsp;</td><td class="black_source">#undef&nbsp;STIFUNIT_OOMHANDLEWARNINGL</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;114&nbsp;</td><td class="black_source">#endif</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;115&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;116&nbsp;</td><td class="black_source">#ifdef&nbsp;STIFUNIT_OOMTESTFINALIZEL</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;117&nbsp;</td><td class="black_source">void&nbsp;Cutaccindicatorplugin::OOMTestFinalizeL(&nbsp;const&nbsp;TFileName&amp;&nbsp;/*aTestCaseFile*/,&nbsp;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;118&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;TInt&nbsp;/*aCaseNumber*/&nbsp;)</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;119&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;{</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;120&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;}</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;121&nbsp;</td><td class="black_source">#undef&nbsp;STIFUNIT_OOMTESTFINALIZEL</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;122&nbsp;</td><td class="black_source">#endif</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;123&nbsp;</td><td class="black_source"></td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;124&nbsp;</td><td class="black_source">//&nbsp;End&nbsp;of&nbsp;File</td></tr>
+<tr><td colspan="5" class="black"><strong>***TER 100% (0/0) of SOURCE FILE <a name="ut1"></a>utaccindicatorplugin.cpp</strong></td></tr>
+</table><br>
+<span class="black"><a href="indexF.html" target="_top">Directory Summary</a> | <a href="index.html" target="_top">Files Summary</a> | <a href="indexB1.html" target="_top">Functions Summary</a> | <a href="indexD1.html">Execution Profile</a><br>
+To files: <a href="indexD1.html">First</a> | <a href="indexD1.html">Previous</a> | <a href="indexD3.html">Next</a> | <a href="indexD4.html">Last</a> | <a href="indexD2.html">Top</a> | <a href="indexA.html#a2">Index</a> | <a href="indexD2.html" target="_top">No Index</a></span><br><br>
+</body></html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/CTCHTML/indexD3.html	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,247 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head>
+<title>CTC++ Coverage Report - Execution Profile - utaccindicatorplugincases.cpp</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<meta name="keyword" content="CTC++, Testwell, Test Coverage Analyzer">
+<meta name="date" content="Tue Aug 24 13:33:36 2010">
+<meta name="generator" content="Testwell CTC++ add-on utility ctc2html v2.6">
+<link rel="stylesheet" type="text/css" href="ctc.css">
+<link rel="contents" href="index.html">
+</head>
+<body text="#150040" bgcolor="#ffffff" link="#000088" vlink="#007788">
+<span class="head1">CTC++ Coverage Report - </span>
+<span class="head2">Execution Profile</span>
+<span class="head3">&nbsp;&nbsp;&nbsp;#3/4</span><br><br>
+<span class="black"><a href="indexF.html" target="_top">Directory Summary</a> | <a href="index.html" target="_top">Files Summary</a> | <a href="indexB1.html" target="_top">Functions Summary</a> | <a href="indexD1.html">Execution Profile</a><br>
+To files: <a href="indexD1.html">First</a> | <a href="indexD2.html">Previous</a> | <a href="indexD4.html">Next</a> | <a href="indexD4.html">Last</a> | <a href="indexA.html#a3">Index</a> | <a href="indexD3.html" target="_top">No Index</a></span><br><br>
+<span class="black"><strong>File: W:\sf\mw\appsupport\systemsettings\accindicatorplugin\tsrc\utaccindicatorplugin\src\utaccindicatorplugincases.cpp</strong></span><br>
+<span class="black"><strong>Instrumentation&nbsp;mode:&nbsp;</strong>function-decision</span><br>
+<span class="black"><strong>TER: </strong></span><span class="black">100 % (  0/  0)</span><br><br>
+<table cellspacing="0">
+<tr><td align="right" class="black"><strong>Start/</strong>&nbsp;</td><td align="right" class="black"><strong>End/</strong>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
+<tr><td align="right" class="black"><strong>True</strong>&nbsp;</td><td align="right" class="black"><strong>False</strong>&nbsp;</td><td align="right" class="black"><strong>-</strong></td><td align="right" class="black">&nbsp;<a href="indexD3.html#ut1" title="First untested"><strong>Line</strong></a>&nbsp;</td><td class="black"><strong>Source</strong></td></tr>
+<tr><td colspan="5"><hr></td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;1&nbsp;</td><td class="black_source">/*</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;2&nbsp;</td><td class="black_source">*&nbsp;Copyright&nbsp;(c)&nbsp;2009&nbsp;Nokia&nbsp;Corporation&nbsp;and/or&nbsp;its&nbsp;subsidiary(-ies).&nbsp;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;3&nbsp;</td><td class="black_source">*&nbsp;All&nbsp;rights&nbsp;reserved.</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;4&nbsp;</td><td class="black_source">*&nbsp;This&nbsp;component&nbsp;and&nbsp;the&nbsp;accompanying&nbsp;materials&nbsp;are&nbsp;made&nbsp;available</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;5&nbsp;</td><td class="black_source">*&nbsp;under&nbsp;the&nbsp;terms&nbsp;of&nbsp;"Eclipse&nbsp;Public&nbsp;License&nbsp;v1.0"</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;6&nbsp;</td><td class="black_source">*&nbsp;which&nbsp;accompanies&nbsp;this&nbsp;distribution,&nbsp;and&nbsp;is&nbsp;available</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;7&nbsp;</td><td class="black_source">*&nbsp;at&nbsp;the&nbsp;URL&nbsp;"http://www.eclipse.org/legal/epl-v10.html".</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;8&nbsp;</td><td class="black_source">*</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;9&nbsp;</td><td class="black_source">*&nbsp;Initial&nbsp;Contributors:</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;10&nbsp;</td><td class="black_source">*&nbsp;Nokia&nbsp;Corporation&nbsp;-&nbsp;initial&nbsp;contribution.</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;11&nbsp;</td><td class="black_source">*</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;12&nbsp;</td><td class="black_source">*&nbsp;Contributors:</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;13&nbsp;</td><td class="black_source">*&nbsp;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;14&nbsp;</td><td class="black_source">*&nbsp;Description:&nbsp;This&nbsp;file&nbsp;contains&nbsp;STIFUnit&nbsp;implementation.</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;15&nbsp;</td><td class="black_source">*</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;16&nbsp;</td><td class="black_source">*/</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;17&nbsp;</td><td class="black_source"></td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;18&nbsp;</td><td class="black_source">/**</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;19&nbsp;</td><td class="black_source">&nbsp;*&nbsp;STIF_UNIT_INCLUDE&nbsp;SECTION&nbsp;-&nbsp;put&nbsp;all&nbsp;#includes&nbsp;between&nbsp;STIF_UNIT_INCLUDE_SECTION</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;20&nbsp;</td><td class="black_source">&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;and&nbsp;STIF_UNIT_INCLUDE_SECTION_END</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;21&nbsp;</td><td class="black_source">&nbsp;*/</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;22&nbsp;</td><td class="black_source">#ifdef&nbsp;STIF_UNIT_INCLUDE_SECTION</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;23&nbsp;</td><td class="black_source">#include&nbsp;&lt;QObject&gt;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;24&nbsp;</td><td class="black_source">#include&nbsp;&lt;QVariant&gt;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;25&nbsp;</td><td class="black_source">#include&nbsp;&lt;e32des16.h&gt;&nbsp;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;26&nbsp;</td><td class="black_source"></td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;27&nbsp;</td><td class="black_source">#include&nbsp;&lt;hbindicatorinterface.h&gt;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;28&nbsp;</td><td class="black_source">#include&nbsp;"accindicator.h"&nbsp;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;29&nbsp;</td><td class="black_source">#include&nbsp;&lt;accpolgenericiddefinitions.h&gt;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;30&nbsp;</td><td class="black_source"></td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;31&nbsp;</td><td class="black_source">#include&nbsp;"utslot.h"</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;32&nbsp;</td><td class="black_source">#endif&nbsp;//STIF_UNIT_INCLUDE_SECTION_END</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;33&nbsp;</td><td class="black_source"></td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;34&nbsp;</td><td class="black_source">/**</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;35&nbsp;</td><td class="black_source">&nbsp;*&nbsp;GLOBAL&nbsp;VARIABLES&nbsp;SECTION</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;36&nbsp;</td><td class="black_source">&nbsp;*/</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;37&nbsp;</td><td class="black_source">#ifdef&nbsp;TEST_VAR_DECLARATIONS</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;38&nbsp;</td><td class="black_source">AccIndicatorPlugin*&nbsp;accIndicatorPlugin;&nbsp;&nbsp;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;39&nbsp;</td><td class="black_source">#endif</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;40&nbsp;</td><td class="black_source">/**</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;41&nbsp;</td><td class="black_source">&nbsp;*&nbsp;END&nbsp;OF&nbsp;GLOBAL&nbsp;VARIABLES&nbsp;SECTION</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;42&nbsp;</td><td class="black_source">&nbsp;*/</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;43&nbsp;</td><td class="black_source"></td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;44&nbsp;</td><td class="black_source"></td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;45&nbsp;</td><td class="black_source">/**</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;46&nbsp;</td><td class="black_source">&nbsp;*&nbsp;TEST&nbsp;CASES&nbsp;SECTION</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;47&nbsp;</td><td class="black_source">&nbsp;*/</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;48&nbsp;</td><td class="black_source">#ifdef&nbsp;TEST_CASES</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;49&nbsp;</td><td class="black_source">/**</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;50&nbsp;</td><td class="black_source">&nbsp;*&nbsp;STIF_SETUP&nbsp;defines&nbsp;activities&nbsp;needed&nbsp;before&nbsp;every&nbsp;test&nbsp;case.</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;51&nbsp;</td><td class="black_source">&nbsp;*/</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;52&nbsp;</td><td class="black_source">STIF_SETUP</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;53&nbsp;</td><td class="black_source">{</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;54&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;accIndicatorPlugin&nbsp;=&nbsp;new&nbsp;(ELeave)&nbsp;AccIndicatorPlugin();</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;55&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;CleanupStack::PushL(accIndicatorPlugin);</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;56&nbsp;</td><td class="black_source">}</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;57&nbsp;</td><td class="black_source"></td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;58&nbsp;</td><td class="black_source">/**</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;59&nbsp;</td><td class="black_source">&nbsp;*&nbsp;STIF_TEARDOWN&nbsp;defines&nbsp;activities&nbsp;needed&nbsp;after&nbsp;every&nbsp;test&nbsp;case</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;60&nbsp;</td><td class="black_source">&nbsp;*/</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;61&nbsp;</td><td class="black_source">STIF_TEARDOWN</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;62&nbsp;</td><td class="black_source">{</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;63&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;CleanupStack::PopAndDestroy(accIndicatorPlugin);</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;64&nbsp;</td><td class="black_source">}</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;65&nbsp;</td><td class="black_source"></td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;66&nbsp;</td><td class="black_source">/**</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;67&nbsp;</td><td class="black_source">&nbsp;*&nbsp;STIF_TESTDEFINE&nbsp;defines&nbsp;a&nbsp;test&nbsp;case</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;68&nbsp;</td><td class="black_source">&nbsp;*</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;69&nbsp;</td><td class="black_source">&nbsp;*&nbsp;&nbsp;Example&nbsp;test&nbsp;case&nbsp;-&nbsp;length&nbsp;of&nbsp;string&nbsp;is&nbsp;checked.</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;70&nbsp;</td><td class="black_source">&nbsp;*&nbsp;&nbsp;The&nbsp;only&nbsp;argument&nbsp;of&nbsp;macro&nbsp;is&nbsp;a&nbsp;name&nbsp;of&nbsp;test&nbsp;case.</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;71&nbsp;</td><td class="black_source">&nbsp;*/</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;72&nbsp;</td><td class="black_source"></td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;73&nbsp;</td><td class="black_source"></td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;74&nbsp;</td><td class="black_source">STIF_TESTDEFINE(createIndicator)</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;75&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;76&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;//</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;77&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;QString&nbsp;par1;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;78&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;STIF_ASSERT_EQUALS((HbIndicatorInterface*)accIndicatorPlugin,&nbsp;accIndicatorPlugin-&gt;createIndicator(par1));</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;79&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;}</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;80&nbsp;</td><td class="black_source"></td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;81&nbsp;</td><td class="black_source">STIF_TESTDEFINE(indicatorTypes)</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;82&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;{</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;83&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;QString&nbsp;KIndicatorType&nbsp;=&nbsp;"com.nokia.accessory.indicatorplugin/1.0";</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;84&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;QStringList&nbsp;qStringList&nbsp;=&nbsp;accIndicatorPlugin-&gt;indicatorTypes();</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;85&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;STIF_ASSERT_EQUALS(KIndicatorType,&nbsp;qStringList[0]);</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;86&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;}</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;87&nbsp;</td><td class="black_source"></td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;88&nbsp;</td><td class="black_source">STIF_TESTDEFINE(accessAllowed)</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;89&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;{</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;90&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;QVariantMap&nbsp;mapValues;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;91&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;QString&nbsp;KAccMode&nbsp;=&nbsp;"AccMode";</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;92&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;QString&nbsp;KAccType&nbsp;=&nbsp;"AccType";</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;93&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;mapValues[KAccMode]&nbsp;=&nbsp;(TInt)EAccModeWiredHeadset;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;94&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;mapValues[KAccType]&nbsp;=&nbsp;(TInt)KPCWired;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;95&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;QString&nbsp;par1;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;96&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;97&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;bool&nbsp;expectedResult&nbsp;=&nbsp;true;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;98&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;STIF_ASSERT_EQUALS(expectedResult,&nbsp;accIndicatorPlugin-&gt;accessAllowed(par1,&nbsp;mapValues));</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;99&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;}</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;100&nbsp;</td><td class="black_source"></td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;101&nbsp;</td><td class="black_source">STIF_TESTDEFINE(handleClientRequest_indicatorData)</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;102&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;{</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;103&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;connect&nbsp;test&nbsp;slot&nbsp;to&nbsp;signal</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;104&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;UTSlot&nbsp;*utSlot&nbsp;=&nbsp;new&nbsp;(ELeave)&nbsp;UTSlot();</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;105&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;CleanupStack::PushL(utSlot);</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;106&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;QObject::connect(&nbsp;accIndicatorPlugin,&nbsp;SIGNAL(dataChanged()),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;107&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;utSlot,&nbsp;SLOT(dataChangedSlot()));</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;108&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;QObject::connect(&nbsp;accIndicatorPlugin,&nbsp;SIGNAL(deactivate()),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;109&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;utSlot,&nbsp;SLOT(deactivateSlot()));</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;110&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;utSlot-&gt;iDataChangedSlotCalled&nbsp;=&nbsp;EFalse;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;111&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;112&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;make&nbsp;a&nbsp;qmap&nbsp;to&nbsp;pass&nbsp;parameters</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;113&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;QVariantMap&nbsp;mapValues;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;114&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;QString&nbsp;KAccMode&nbsp;=&nbsp;"AccMode";</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;115&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;QString&nbsp;KAccType&nbsp;=&nbsp;"AccType";</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;116&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;mapValues[KAccMode]&nbsp;=&nbsp;(TInt)EAccModeWiredHeadset;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;117&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;mapValues[KAccType]&nbsp;=&nbsp;(TInt)KPCWired;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;118&nbsp;</td><td class="black_source"></td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;119&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;handleclientrequest&nbsp;activate</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;120&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;HbIndicatorInterface::RequestType&nbsp;requestType&nbsp;=&nbsp;HbIndicatorInterface::RequestActivate;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;121&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;accIndicatorPlugin-&gt;handleClientRequest(requestType,&nbsp;mapValues);</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;122&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;123&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;verify&nbsp;that&nbsp;slot&nbsp;had&nbsp;been&nbsp;called&nbsp;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;124&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;TBool&nbsp;expectedResult&nbsp;=&nbsp;ETrue;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;125&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;STIF_ASSERT_EQUALS(expectedResult,&nbsp;utSlot-&gt;iDataChangedSlotCalled);</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;126&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;127&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;verify&nbsp;data&nbsp;values</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;128&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;QString&nbsp;displayName&nbsp;=&nbsp;accIndicatorPlugin-&gt;indicatorData(HbIndicatorInterface::PrimaryTextRole).toString();</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;129&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;QString&nbsp;iconName&nbsp;=&nbsp;accIndicatorPlugin-&gt;indicatorData(HbIndicatorInterface::MonoDecorationNameRole).toString();</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;130&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;QString&nbsp;KDisplayName&nbsp;=&nbsp;"Wired&nbsp;Headset";</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;131&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;QString&nbsp;KIconName&nbsp;=&nbsp;"z:/resource/accindicator/wired_accessory.svg";&nbsp;&nbsp;&nbsp;&nbsp;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;132&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;STIF_ASSERT_EQUALS(KDisplayName,&nbsp;displayName);</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;133&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;STIF_ASSERT_EQUALS(KIconName,&nbsp;iconName);</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;134&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;135&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;handleClientReqeust&nbsp;deactive</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;136&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;utSlot-&gt;iDeactiveSlotCalled&nbsp;=&nbsp;EFalse;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;137&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;requestType&nbsp;=&nbsp;HbIndicatorInterface::RequestDeactivate;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;138&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;accIndicatorPlugin-&gt;handleClientRequest(requestType,&nbsp;mapValues);</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;139&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;140&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;verify&nbsp;that&nbsp;slot&nbsp;had&nbsp;been&nbsp;called&nbsp;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;141&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;expectedResult&nbsp;=&nbsp;ETrue;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;142&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;STIF_ASSERT_EQUALS(expectedResult,&nbsp;utSlot-&gt;iDeactiveSlotCalled);</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;143&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;verify&nbsp;data&nbsp;values</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;144&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;QString&nbsp;emptyString;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;145&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;displayName&nbsp;=&nbsp;accIndicatorPlugin-&gt;indicatorData(HbIndicatorInterface::PrimaryTextRole).toString();</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;146&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;STIF_ASSERT_EQUALS(emptyString,&nbsp;displayName);</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;147&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;148&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;CleanupStack::PopAndDestroy(utSlot);</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;149&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;}</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;150&nbsp;</td><td class="black_source"></td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;151&nbsp;</td><td class="black_source">STIF_TESTDEFINE(handleInteraction_EAccModeWiredHeadset)</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;152&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;{</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;153&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;make&nbsp;a&nbsp;qmap&nbsp;to&nbsp;pass&nbsp;parameters</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;154&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;QVariantMap&nbsp;mapValues;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;155&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;QString&nbsp;KAccMode&nbsp;=&nbsp;"AccMode";</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;156&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;QString&nbsp;KAccType&nbsp;=&nbsp;"AccType";</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;157&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;mapValues[KAccMode]&nbsp;=&nbsp;(TInt)EAccModeWiredHeadset;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;158&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;mapValues[KAccType]&nbsp;=&nbsp;(TInt)KPCWired;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;159&nbsp;</td><td class="black_source"></td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;160&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;handleclientrequest&nbsp;activate</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;161&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;HbIndicatorInterface::RequestType&nbsp;requestType&nbsp;=&nbsp;HbIndicatorInterface::RequestActivate;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;162&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;accIndicatorPlugin-&gt;handleClientRequest(requestType,&nbsp;mapValues);</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;163&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;164&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;HbIndicatorInterface::InteractionType&nbsp;interactionType;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;165&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;interactionType&nbsp;=&nbsp;HbIndicatorInterface::NoInteraction;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;166&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;167&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;NoInteraction,&nbsp;handled&nbsp;=&nbsp;false</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;168&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;bool&nbsp;expectedResult&nbsp;=&nbsp;false;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;169&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;STIF_ASSERT_EQUALS(expectedResult,&nbsp;accIndicatorPlugin-&gt;handleInteraction(interactionType));</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;170&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;171&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;InteractionActivated,&nbsp;handled&nbsp;=&nbsp;true</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;172&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;interactionType&nbsp;=&nbsp;HbIndicatorInterface::InteractionActivated;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;173&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;expectedResult&nbsp;=&nbsp;true;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;174&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;STIF_ASSERT_EQUALS(expectedResult,&nbsp;accIndicatorPlugin-&gt;handleInteraction(interactionType));&nbsp;&nbsp;&nbsp;&nbsp;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;175&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;QProcess::ProcessState&nbsp;currState&nbsp;=&nbsp;QProcess::Running;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;176&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;STIF_ASSERT_EQUALS(currState,&nbsp;accIndicatorPlugin-&gt;mProcess.state());</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;177&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;iLog-&gt;Log(_L("interface&nbsp;application&nbsp;started."));</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;178&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;accIndicatorPlugin-&gt;mProcess.kill();</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;179&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;accIndicatorPlugin-&gt;mProcess.waitForFinished();&nbsp;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;180&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;iLog-&gt;Log(_L("interface&nbsp;application&nbsp;killed."));</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;181&nbsp;</td><td class="black_source"></td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;182&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;}</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;183&nbsp;</td><td class="black_source">STIF_TESTDEFINE(handleInteraction_EAccModeTVOut)</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;184&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;{</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;185&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;make&nbsp;a&nbsp;qmap&nbsp;to&nbsp;pass&nbsp;parameters</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;186&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;QVariantMap&nbsp;mapValues;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;187&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;QString&nbsp;KAccMode&nbsp;=&nbsp;"AccMode";</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;188&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;QString&nbsp;KAccType&nbsp;=&nbsp;"AccType";</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;189&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;mapValues[KAccMode]&nbsp;=&nbsp;(TInt)EAccModeTVOut;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;190&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;mapValues[KAccType]&nbsp;=&nbsp;(TInt)KPCHDMI;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;191&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;handleclientrequest&nbsp;activate</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;192&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;HbIndicatorInterface::RequestType&nbsp;requestType&nbsp;=&nbsp;HbIndicatorInterface::RequestActivate;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;193&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;accIndicatorPlugin-&gt;handleClientRequest(requestType,&nbsp;mapValues);</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;194&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;195&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;HbIndicatorInterface::InteractionType&nbsp;interactionType;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;196&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;interactionType&nbsp;=&nbsp;HbIndicatorInterface::NoInteraction;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;197&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;198&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;NoInteraction,&nbsp;handled&nbsp;=&nbsp;false</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;199&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;bool&nbsp;expectedResult&nbsp;=&nbsp;false;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;200&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;STIF_ASSERT_EQUALS(expectedResult,&nbsp;accIndicatorPlugin-&gt;handleInteraction(interactionType));</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;201&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;202&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;InteractionActivated,&nbsp;handled&nbsp;=&nbsp;true</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;203&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;interactionType&nbsp;=&nbsp;HbIndicatorInterface::InteractionActivated;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;204&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;expectedResult&nbsp;=&nbsp;true;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;205&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;STIF_ASSERT_EQUALS(expectedResult,&nbsp;accIndicatorPlugin-&gt;handleInteraction(interactionType));&nbsp;&nbsp;&nbsp;&nbsp;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;206&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;QProcess::ProcessState&nbsp;currState&nbsp;=&nbsp;QProcess::Running;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;207&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;STIF_ASSERT_EQUALS(currState,&nbsp;accIndicatorPlugin-&gt;mProcess.state());</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;208&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;iLog-&gt;Log(_L("interface&nbsp;application&nbsp;started."));</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;209&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;accIndicatorPlugin-&gt;mProcess.kill();</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;210&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;accIndicatorPlugin-&gt;mProcess.waitForFinished();&nbsp;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;211&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;iLog-&gt;Log(_L("interface&nbsp;application&nbsp;killed."));</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;212&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;}</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;213&nbsp;</td><td class="black_source"></td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;214&nbsp;</td><td class="black_source">#endif</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;215&nbsp;</td><td class="black_source">/**</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;216&nbsp;</td><td class="black_source">&nbsp;*&nbsp;END&nbsp;OF&nbsp;TEST&nbsp;CASES&nbsp;SECTION</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;217&nbsp;</td><td class="black_source">&nbsp;*/</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;218&nbsp;</td><td class="black_source"></td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;219&nbsp;</td><td class="black_source">//&nbsp;End&nbsp;of&nbsp;File</td></tr>
+<tr><td colspan="5" class="black"><strong>***TER 100% (0/0) of SOURCE FILE <a name="ut1"></a>utaccindicatorplugincases.cpp</strong></td></tr>
+</table><br>
+<span class="black"><a href="indexF.html" target="_top">Directory Summary</a> | <a href="index.html" target="_top">Files Summary</a> | <a href="indexB1.html" target="_top">Functions Summary</a> | <a href="indexD1.html">Execution Profile</a><br>
+To files: <a href="indexD1.html">First</a> | <a href="indexD2.html">Previous</a> | <a href="indexD4.html">Next</a> | <a href="indexD4.html">Last</a> | <a href="indexD3.html">Top</a> | <a href="indexA.html#a3">Index</a> | <a href="indexD3.html" target="_top">No Index</a></span><br><br>
+</body></html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/CTCHTML/indexD4.html	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,62 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head>
+<title>CTC++ Coverage Report - Execution Profile - utslot.cpp</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<meta name="keyword" content="CTC++, Testwell, Test Coverage Analyzer">
+<meta name="date" content="Tue Aug 24 13:33:36 2010">
+<meta name="generator" content="Testwell CTC++ add-on utility ctc2html v2.6">
+<link rel="stylesheet" type="text/css" href="ctc.css">
+<link rel="contents" href="index.html">
+</head>
+<body text="#150040" bgcolor="#ffffff" link="#000088" vlink="#007788">
+<span class="head1">CTC++ Coverage Report - </span>
+<span class="head2">Execution Profile</span>
+<span class="head3">&nbsp;&nbsp;&nbsp;#4/4</span><br><br>
+<span class="black"><a href="indexF.html" target="_top">Directory Summary</a> | <a href="index.html" target="_top">Files Summary</a> | <a href="indexB1.html" target="_top">Functions Summary</a> | <a href="indexD1.html">Execution Profile</a><br>
+To files: <a href="indexD1.html">First</a> | <a href="indexD3.html">Previous</a> | Next | <a href="indexD4.html">Last</a> | <a href="indexA.html#a4">Index</a> | <a href="indexD4.html" target="_top">No Index</a></span><br><br>
+<span class="black"><strong>File: W:\sf\mw\appsupport\systemsettings\accindicatorplugin\tsrc\utaccindicatorplugin\src\utslot.cpp</strong></span><br>
+<span class="black"><strong>Instrumentation&nbsp;mode:&nbsp;</strong>function-decision</span><br>
+<span class="black"><strong>TER: </strong></span><span class="red">75 % (  3/  4)</span><br><br>
+<table cellspacing="0">
+<tr><td align="right" class="black"><strong>Start/</strong>&nbsp;</td><td align="right" class="black"><strong>End/</strong>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
+<tr><td align="right" class="black"><strong>True</strong>&nbsp;</td><td align="right" class="black"><strong>False</strong>&nbsp;</td><td align="right" class="black"><strong>-</strong></td><td align="right" class="black">&nbsp;<a href="indexD4.html#ut1" title="First untested"><strong>Line</strong></a>&nbsp;</td><td class="black"><strong>Source</strong></td></tr>
+<tr><td colspan="5"><hr></td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;1&nbsp;</td><td class="black_source">/*</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;2&nbsp;</td><td class="black_source">&nbsp;*&nbsp;UTSlot.cpp</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;3&nbsp;</td><td class="black_source">&nbsp;*</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;4&nbsp;</td><td class="black_source">&nbsp;*&nbsp;&nbsp;Created&nbsp;on:&nbsp;Aug&nbsp;23,&nbsp;2010</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;5&nbsp;</td><td class="black_source">&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Author:&nbsp;t4sun</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;6&nbsp;</td><td class="black_source">&nbsp;*/</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;7&nbsp;</td><td class="black_source"></td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;8&nbsp;</td><td class="black_source">#include&nbsp;"UTSlot.h"</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;9&nbsp;</td><td class="black_source"></td></tr>
+<tr><td colspan="5" class="black"><a href="indexD4.html" title="W:\sf\mw\appsupport\systemsettings\accindicatorplugin\tsrc\utaccindicatorplugin\src\utslot.cpp">Top</a></td></tr>
+<tr><td align="right" class="black_profile"><a name="a14"></a>1&nbsp;</td><td align="right" class="black_profile">1&nbsp;</td><td align="right" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;10&nbsp;</td><td class="black_source">UTSlot::UTSlot()</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;11&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;{</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;12&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;TODO&nbsp;Auto-generated&nbsp;constructor&nbsp;stub</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;13&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;iDataChangedSlotCalled&nbsp;=&nbsp;EFalse;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;14&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;iDeactiveSlotCalled&nbsp;=&nbsp;EFalse;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;15&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;}</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;16&nbsp;</td><td class="black_source"></td></tr>
+<tr><td colspan="5" class="black"><a href="indexD4.html" title="W:\sf\mw\appsupport\systemsettings\accindicatorplugin\tsrc\utaccindicatorplugin\src\utslot.cpp">Top</a></td></tr>
+<tr><td align="right" class="red_profile"><a name="a15"></a>0&nbsp;</td><td align="right" class="black_profile">0&nbsp;</td><td align="right" class="red_profile">-</td><td align="right" class="red_profile">&nbsp;<a name="ut1" href="indexD4.html#ut2">17</a>&nbsp;</td><td class="red_source">UTSlot::~UTSlot()</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;18&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;{</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;19&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;TODO&nbsp;Auto-generated&nbsp;destructor&nbsp;stub</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;20&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;}</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;21&nbsp;</td><td class="black_source"></td></tr>
+<tr><td colspan="5" class="black"><a href="indexD4.html" title="W:\sf\mw\appsupport\systemsettings\accindicatorplugin\tsrc\utaccindicatorplugin\src\utslot.cpp">Top</a></td></tr>
+<tr><td align="right" class="black_profile"><a name="a16"></a>1&nbsp;</td><td align="right" class="black_profile">1&nbsp;</td><td align="right" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;22&nbsp;</td><td class="black_source">void&nbsp;UTSlot::dataChangedSlot()</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;23&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;{</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;24&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;iDataChangedSlotCalled&nbsp;=&nbsp;ETrue;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;25&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;}</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;26&nbsp;</td><td class="black_source"></td></tr>
+<tr><td colspan="5" class="black"><a href="indexD4.html" title="W:\sf\mw\appsupport\systemsettings\accindicatorplugin\tsrc\utaccindicatorplugin\src\utslot.cpp">Top</a></td></tr>
+<tr><td align="right" class="black_profile"><a name="a17"></a>1&nbsp;</td><td align="right" class="black_profile">1&nbsp;</td><td align="right" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;27&nbsp;</td><td class="black_source">void&nbsp;UTSlot::deactivateSlot()</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;28&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;{</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;29&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;iDeactiveSlotCalled&nbsp;=&nbsp;ETrue;</td></tr>
+<tr><td colspan="3" class="black_profile">&nbsp;</td><td align="right" class="black_profile">&nbsp;30&nbsp;</td><td class="black_source">&nbsp;&nbsp;&nbsp;&nbsp;}</td></tr>
+<tr><td colspan="5" class="red"><strong>***TER 75% (3/4) of SOURCE FILE <a name="ut2"></a>utslot.cpp</strong></td></tr>
+</table><br>
+<span class="black"><a href="indexF.html" target="_top">Directory Summary</a> | <a href="index.html" target="_top">Files Summary</a> | <a href="indexB1.html" target="_top">Functions Summary</a> | <a href="indexD1.html">Execution Profile</a><br>
+To files: <a href="indexD1.html">First</a> | <a href="indexD3.html">Previous</a> | Next | <a href="indexD4.html">Last</a> | <a href="indexD4.html">Top</a> | <a href="indexA.html#a4">Index</a> | <a href="indexD4.html" target="_top">No Index</a></span><br><br>
+</body></html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/CTCHTML/indexE.html	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,14 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head>
+<title>CTC++ Coverage Report - Source Files Not Found</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<meta name="keyword" content="CTC++, Testwell, Test Coverage Analyzer">
+<meta name="date" content="Tue Aug 24 13:33:36 2010">
+<meta name="generator" content="Testwell CTC++ add-on utility ctc2html v2.6">
+<link rel="stylesheet" type="text/css" href="ctc.css">
+<link rel="contents" href="index.html">
+</head>
+<body text="#150040" bgcolor="#ffffff" link="#000088" vlink="#007788">
+<span class="head2">The following source files were not found by ctc2html:</span>
+<p><p><span class="black">
+</span></body></html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/CTCHTML/indexF.html	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,54 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head>
+<title>CTC++ Coverage Report - Directory Summary</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<meta name="keyword" content="CTC++, Testwell, Test Coverage Analyzer">
+<meta name="date" content="Tue Aug 24 13:33:36 2010">
+<meta name="generator" content="Testwell CTC++ add-on utility ctc2html v2.6">
+<link rel="stylesheet" type="text/css" href="ctc.css">
+<link rel="contents" href="index.html">
+<script src="sorttable.js" type="text/javascript"></script></head>
+<body text="#150040" bgcolor="#ffffff" link="#000088" vlink="#007788">
+<span class="head1">CTC++ Coverage Report - </span>
+<span class="head2">Directory Summary</span><br><br>
+<span class="black"><a href="indexF.html">Directory Summary</a> | <a href="index.html">Files Summary</a> | <a href="indexB1.html">Functions Summary</a> | <a href="indexD1.html">Execution Profile</a></span><br><br>
+<table cellspacing="0">
+<tr><td class="black">Symbol&nbsp;file(s)</td><td class="black">:</td><td class="black">&nbsp;MON.sym&nbsp;(Tue&nbsp;Aug&nbsp;24&nbsp;13:18:59&nbsp;2010)</td></tr>
+<tr><td class="black">Data&nbsp;file(s)</td><td class="black">:</td><td class="black">&nbsp;MON.dat&nbsp;(Tue&nbsp;Aug&nbsp;24&nbsp;13:33:11&nbsp;2010)</td></tr>
+<tr><td class="black">Listing&nbsp;produced&nbsp;at</td><td class="black">:</td><td class="black">&nbsp;Tue&nbsp;Aug&nbsp;24&nbsp;13:33:29&nbsp;2010</td></tr>
+<tr><td class="black">Coverage&nbsp;view</td><td class="black">:</td><td class="black">&nbsp;As&nbsp;instrumented</td></tr>
+<tr><td colspan="3">&nbsp;</td></tr>
+<tr><td class="black">Input&nbsp;listing</td><td class="black">:</td><td class="black">&nbsp;profile.txt</td></tr>
+<tr><td class="black">Html&nbsp;generated&nbsp;at</td><td class="black">:</td><td class="black">&nbsp;Tue&nbsp;Aug&nbsp;24&nbsp;13:33:36&nbsp;2010</td></tr>
+<tr><td class="black">ctc2html v2.6 options</td><td class="black">:</td><td class="black">&nbsp;-i&nbsp;profile.txt&nbsp;</td></tr>
+<tr><td class="black">Threshold&nbsp;percent</td><td class="black">:</td><td class="black">&nbsp;<strong>100</strong>&nbsp;%</td></tr>
+</table><br>
+<span class="black">(Click on header to sort)</span>
+<table cellspacing="0" class="sortable">
+<thead><tr>
+<th align="right" class="sorttable_numeric"><a title="Click to sort">TER</a></th>
+<th align="right" class="sorttable_nosort">%</th>
+<th align="right" class="sorttable_alpha"><a title="Click to sort">-</a></th>
+<th align="right" class="sorttable_numeric">&nbsp;<a title="Click to sort">Covered</a></th>
+<th align="right" class="sorttable_numeric">&nbsp;<a title="Click to sort">Not-covered</a></th>
+<th align="right" class="sorttable_numeric">&nbsp;<a title="Click to sort">All</a></th>
+<th align="left" class="sorttable_nosort">&nbsp;</th>
+<th align="left" class="sorttable_alpha"><a title="Click to sort">Directory</a></th>
+</tr></thead>
+<tbody>
+<tr><td align="right" class="red">41</td><td align="right" class="red">%</td><td align="right" class="red">-</td><td align="right" class="red">31</td><td align="right" class="red">44</td><td align="right" class="red">75</td><td width="115"><img border="1" src="red.gif" width="41" height="5" alt=""><img border="1" src="white.gif" width="59" height="5" alt=""></td><td><a href="index.html#a1" class="red">W:\sf\mw\appsupport\systemsettings\accindicatorplugin\src</a></td></tr>
+<tr><td align="right" class="red">75</td><td align="right" class="red">%</td><td align="right" class="red">-</td><td align="right" class="red">3</td><td align="right" class="red">1</td><td align="right" class="red">4</td><td width="115"><img border="1" src="red.gif" width="75" height="5" alt=""><img border="1" src="white.gif" width="25" height="5" alt=""></td><td><a href="index.html#a2" class="red">W:\sf\mw\appsupport\systemsettings\accindicatorplugin\tsrc\utaccindicatorplugin\src</a></td></tr>
+<tr class="sortbottom"><td colspan="8"><hr width="100%"></td></tr>
+<tr class="sortbottom"><td align="right" class="red"><strong>43</strong></td><td align="right" class="red"><strong>%</strong></td><td align="right" class="red"><strong>-</strong></td><td align="right" class="red">34</td><td align="right" class="red">45</td><td align="right" class="red">79</td><td width="115"><img border="1" src="red.gif" width="43" height="5" alt=""><img border="1" src="white.gif" width="57" height="5" alt=""></td><td class="red"><strong>OVERALL</strong></td></tr>
+</tbody>
+</table><br>
+<table cellspacing="0">
+<tr><td class="black">Number of directories</td><td class="black">:</td><td class="black">&nbsp;2</td></tr>
+<tr><td class="black">Number&nbsp;of&nbsp;monitored&nbsp;source&nbsp;files</td><td class="black">:</td><td class="black">&nbsp;4</td></tr>
+<tr><td class="black">Number of functions</td><td class="black">:</td><td class="black">&nbsp;17</td></tr>
+<tr><td class="black">Number&nbsp;of&nbsp;source&nbsp;lines</td><td class="black">:</td><td class="black">&nbsp;623</td></tr>
+<tr><td class="black">Number&nbsp;of&nbsp;measurement&nbsp;points</td><td class="black">:</td><td class="black">&nbsp;96</td></tr>
+<tr><td class="red">TER</td><td class="red">:</td><td class="red">&nbsp;<strong>43%</strong>&nbsp;(decision)</td></tr>
+</table><br>
+<span class="black"><a href="indexF.html">Directory Summary</a> | <a href="index.html">Files Summary</a> | <a href="indexB1.html">Functions Summary</a> | <a href="indexD1.html">Execution Profile</a></span><br><br>
+</body></html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/CTCHTML/indexG.html	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,16 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
+<html><head>
+<title>CTC++ Coverage Report - Functions Summary - Index</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<meta name="keyword" content="CTC++, Testwell, Test Coverage Analyzer">
+<meta name="date" content="Tue Aug 24 13:33:36 2010">
+<meta name="generator" content="Testwell CTC++ add-on utility ctc2html v2.6">
+<link rel="stylesheet" type="text/css" href="ctc.css">
+<link rel="contents" href="index.html">
+<script src="ctc.js" type="text/javascript"></script>
+</head>
+<frameset cols="25%,75%" onLoad="load2(); return false;">
+<frame src="indexH.html" name="index2">
+<frame src="indexB1.html" name="functions">
+</frameset>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/CTCHTML/indexH.html	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,22 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head>
+<title>CTC++ Coverage Report - Functions Summary - Index</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<meta name="keyword" content="CTC++, Testwell, Test Coverage Analyzer">
+<meta name="date" content="Tue Aug 24 13:33:36 2010">
+<meta name="generator" content="Testwell CTC++ add-on utility ctc2html v2.6">
+<link rel="stylesheet" type="text/css" href="ctc.css">
+<link rel="contents" href="index.html">
+</head>
+<body text="#150040" bgcolor="#ffffff" link="#000088" vlink="#007788">
+<span class="black"><strong>Index</strong></span><br>
+<table cellspacing="0">
+<tr><td>&nbsp;</td></tr>
+<tr><td><a name="ad1" target="functions" title="W:\sf\mw\appsupport\systemsettings\accindicatorplugin\src TER 41 % ( 31/ 75)" href="indexB1.html" class="red"><strong>W:\sf\mw\appsupport\systemsettings\accindicatorplugin\src</strong></a></td></tr>
+<tr><td><small>&nbsp;&nbsp;&nbsp;</small><a name="a1" target="functions" title="W:\sf\mw\appsupport\systemsettings\accindicatorplugin\src\accindicator.cpp TER  41 % ( 31/ 75)" href="indexB1.html#a1" class="red">W:\sf\mw\appsupport\systemsettings\accindicatorplugin\src\accindicator.cpp</a></td></tr>
+<tr><td>&nbsp;</td></tr>
+<tr><td><a name="ad2" target="functions" title="W:\sf\mw\appsupport\systemsettings\accindicatorplugin\tsrc\utaccindicatorplugin\src TER 75 % ( 3/ 4)" href="indexB2.html" class="red"><strong>W:\sf\mw\appsupport\systemsettings\accindicatorplugin\tsrc\utaccindicatorplugin\src</strong></a></td></tr>
+<tr><td><small>&nbsp;&nbsp;&nbsp;</small><a name="a2" target="functions" title="W:\sf\mw\appsupport\systemsettings\accindicatorplugin\tsrc\utaccindicatorplugin\src\utaccindicatorplugin.cpp TER 100 % (  0/  0)" href="indexB2.html#a2" class="blackDecoNo">W:\sf\mw\appsupport\systemsettings\accindicatorplugin\tsrc\utaccindicatorplugin\src\utaccindicatorplugin.cpp</a></td></tr>
+<tr><td><small>&nbsp;&nbsp;&nbsp;</small><a name="a3" target="functions" title="W:\sf\mw\appsupport\systemsettings\accindicatorplugin\tsrc\utaccindicatorplugin\src\utaccindicatorplugincases.cpp TER 100 % (  0/  0)" href="indexB2.html#a3" class="blackDecoNo">W:\sf\mw\appsupport\systemsettings\accindicatorplugin\tsrc\utaccindicatorplugin\src\utaccindicatorplugincases.cpp</a></td></tr>
+<tr><td><small>&nbsp;&nbsp;&nbsp;</small><a name="a4" target="functions" title="W:\sf\mw\appsupport\systemsettings\accindicatorplugin\tsrc\utaccindicatorplugin\src\utslot.cpp TER  75 % (  3/  4)" href="indexB2.html#a4" class="red">W:\sf\mw\appsupport\systemsettings\accindicatorplugin\tsrc\utaccindicatorplugin\src\utslot.cpp</a></td></tr>
+</table></body></html>
Binary file systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/CTCHTML/red.gif has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/CTCHTML/sorttable.js	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,493 @@
+/*
+  SortTable
+  version 2
+  7th April 2007
+  Stuart Langridge, http://www.kryogenix.org/code/browser/sorttable/
+  
+  Instructions:
+  Download this file
+  Add <script src="sorttable.js"></script> to your HTML
+  Add class="sortable" to any table you'd like to make sortable
+  Click on the headers to sort
+  
+  Thanks to many, many people for contributions and suggestions.
+  Licenced as X11: http://www.kryogenix.org/code/browser/licence.html
+  This basically means: do what you want with it.
+*/
+
+ 
+var stIsIE = /*@cc_on!@*/false;
+
+sorttable = {
+  init: function() {
+    // quit if this function has already been called
+    if (arguments.callee.done) return;
+    // flag this function so we don't do the same thing twice
+    arguments.callee.done = true;
+    // kill the timer
+    if (_timer) clearInterval(_timer);
+    
+    if (!document.createElement || !document.getElementsByTagName) return;
+    
+    sorttable.DATE_RE = /^(\d\d?)[\/\.-](\d\d?)[\/\.-]((\d\d)?\d\d)$/;
+    
+    forEach(document.getElementsByTagName('table'), function(table) {
+      if (table.className.search(/\bsortable\b/) != -1) {
+        sorttable.makeSortable(table);
+      }
+    });
+    
+  },
+  
+  makeSortable: function(table) {
+    if (table.getElementsByTagName('thead').length == 0) {
+      // table doesn't have a tHead. Since it should have, create one and
+      // put the first table row in it.
+      the = document.createElement('thead');
+      the.appendChild(table.rows[0]);
+      table.insertBefore(the,table.firstChild);
+    }
+    // Safari doesn't support table.tHead, sigh
+    if (table.tHead == null) table.tHead = table.getElementsByTagName('thead')[0];
+    
+    if (table.tHead.rows.length != 1) return; // can't cope with two header rows
+    
+    // Sorttable v1 put rows with a class of "sortbottom" at the bottom (as
+    // "total" rows, for example). This is B&R, since what you're supposed
+    // to do is put them in a tfoot. So, if there are sortbottom rows,
+    // for backwards compatibility, move them to tfoot (creating it if needed).
+    sortbottomrows = [];
+    for (var i=0; i<table.rows.length; i++) {
+      if (table.rows[i].className.search(/\bsortbottom\b/) != -1) {
+        sortbottomrows[sortbottomrows.length] = table.rows[i];
+      }
+    }
+    if (sortbottomrows) {
+      if (table.tFoot == null) {
+        // table doesn't have a tfoot. Create one.
+        tfo = document.createElement('tfoot');
+        table.appendChild(tfo);
+      }
+      for (var i=0; i<sortbottomrows.length; i++) {
+        tfo.appendChild(sortbottomrows[i]);
+      }
+      delete sortbottomrows;
+    }
+    
+    // work through each column and calculate its type
+    headrow = table.tHead.rows[0].cells;
+    for (var i=0; i<headrow.length; i++) {
+      // manually override the type with a sorttable_type attribute
+      if (!headrow[i].className.match(/\bsorttable_nosort\b/)) { // skip this col
+        mtch = headrow[i].className.match(/\bsorttable_([a-z0-9]+)\b/);
+        if (mtch) { override = mtch[1]; }
+	      if (mtch && typeof sorttable["sort_"+override] == 'function') {
+	        headrow[i].sorttable_sortfunction = sorttable["sort_"+override];
+	      } else {
+	        headrow[i].sorttable_sortfunction = sorttable.guessType(table,i);
+	      }
+	      // make it clickable to sort
+	      headrow[i].sorttable_columnindex = i;
+	      headrow[i].sorttable_tbody = table.tBodies[0];
+	      dean_addEvent(headrow[i],"click", function(e) {
+
+          if (this.className.search(/\bsorttable_sorted\b/) != -1) {
+            // if we're already sorted by this column, just 
+            // reverse the table, which is quicker
+            sorttable.reverse(this.sorttable_tbody);
+            this.className = this.className.replace('sorttable_sorted',
+                                                    'sorttable_sorted_reverse');
+            this.removeChild(document.getElementById('sorttable_sortfwdind'));
+            sortrevind = document.createElement('span');
+            sortrevind.id = "sorttable_sortrevind";
+            sortrevind.innerHTML = stIsIE ? '&nbsp<font face="webdings">5</font>' : '&nbsp;&#x25B4;';
+            this.appendChild(sortrevind);
+            return;
+          }
+          if (this.className.search(/\bsorttable_sorted_reverse\b/) != -1) {
+            // if we're already sorted by this column in reverse, just 
+            // re-reverse the table, which is quicker
+            sorttable.reverse(this.sorttable_tbody);
+            this.className = this.className.replace('sorttable_sorted_reverse',
+                                                    'sorttable_sorted');
+            this.removeChild(document.getElementById('sorttable_sortrevind'));
+            sortfwdind = document.createElement('span');
+            sortfwdind.id = "sorttable_sortfwdind";
+            sortfwdind.innerHTML = stIsIE ? '&nbsp<font face="webdings">6</font>' : '&nbsp;&#x25BE;';
+            this.appendChild(sortfwdind);
+            return;
+          }
+          
+          // remove sorttable_sorted classes
+          theadrow = this.parentNode;
+          forEach(theadrow.childNodes, function(cell) {
+            if (cell.nodeType == 1) { // an element
+              cell.className = cell.className.replace('sorttable_sorted_reverse','');
+              cell.className = cell.className.replace('sorttable_sorted','');
+            }
+          });
+          sortfwdind = document.getElementById('sorttable_sortfwdind');
+          if (sortfwdind) { sortfwdind.parentNode.removeChild(sortfwdind); }
+          sortrevind = document.getElementById('sorttable_sortrevind');
+          if (sortrevind) { sortrevind.parentNode.removeChild(sortrevind); }
+          
+          this.className += ' sorttable_sorted';
+          sortfwdind = document.createElement('span');
+          sortfwdind.id = "sorttable_sortfwdind";
+          sortfwdind.innerHTML = stIsIE ? '&nbsp<font face="webdings">6</font>' : '&nbsp;&#x25BE;';
+          this.appendChild(sortfwdind);
+
+	        // build an array to sort. This is a Schwartzian transform thing,
+	        // i.e., we "decorate" each row with the actual sort key,
+	        // sort based on the sort keys, and then put the rows back in order
+	        // which is a lot faster because you only do getInnerText once per row
+	        row_array = [];
+	        col = this.sorttable_columnindex;
+	        rows = this.sorttable_tbody.rows;
+	        for (var j=0; j<rows.length; j++) {
+	          row_array[row_array.length] = [sorttable.getInnerText(rows[j].cells[col]), rows[j]];
+	        }
+	        /* If you want a stable sort, uncomment the following line */
+	        //sorttable.shaker_sort(row_array, this.sorttable_sortfunction);
+	        /* and comment out this one */
+	        row_array.sort(this.sorttable_sortfunction);
+	        
+	        tb = this.sorttable_tbody;
+	        for (var j=0; j<row_array.length; j++) {
+	          tb.appendChild(row_array[j][1]);
+	        }
+	        
+	        delete row_array;
+	      });
+	    }
+    }
+  },
+  
+  guessType: function(table, column) {
+    // guess the type of a column based on its first non-blank row
+    sortfn = sorttable.sort_alpha;
+    for (var i=0; i<table.tBodies[0].rows.length; i++) {
+      text = sorttable.getInnerText(table.tBodies[0].rows[i].cells[column]);
+      if (text != '') {
+        if (text.match(/^-?[£$¤]?[\d,.]+%?$/)) {
+          return sorttable.sort_numeric;
+        }
+        // check for a date: dd/mm/yyyy or dd/mm/yy 
+        // can have / or . or - as separator
+        // can be mm/dd as well
+        possdate = text.match(sorttable.DATE_RE)
+        if (possdate) {
+          // looks like a date
+          first = parseInt(possdate[1]);
+          second = parseInt(possdate[2]);
+          if (first > 12) {
+            // definitely dd/mm
+            return sorttable.sort_ddmm;
+          } else if (second > 12) {
+            return sorttable.sort_mmdd;
+          } else {
+            // looks like a date, but we can't tell which, so assume
+            // that it's dd/mm (English imperialism!) and keep looking
+            sortfn = sorttable.sort_ddmm;
+          }
+        }
+      }
+    }
+    return sortfn;
+  },
+  
+  getInnerText: function(node) {
+    // gets the text we want to use for sorting for a cell.
+    // strips leading and trailing whitespace.
+    // this is *not* a generic getInnerText function; it's special to sorttable.
+    // for example, you can override the cell text with a customkey attribute.
+    // it also gets .value for <input> fields.
+    
+    hasInputs = (typeof node.getElementsByTagName == 'function') &&
+                 node.getElementsByTagName('input').length;
+    
+    if (node.getAttribute("sorttable_customkey") != null) {
+      return node.getAttribute("sorttable_customkey");
+    }
+    else if (typeof node.textContent != 'undefined' && !hasInputs) {
+      return node.textContent.replace(/^\s+|\s+$/g, '');
+    }
+    else if (typeof node.innerText != 'undefined' && !hasInputs) {
+      return node.innerText.replace(/^\s+|\s+$/g, '');
+    }
+    else if (typeof node.text != 'undefined' && !hasInputs) {
+      return node.text.replace(/^\s+|\s+$/g, '');
+    }
+    else {
+      switch (node.nodeType) {
+        case 3:
+          if (node.nodeName.toLowerCase() == 'input') {
+            return node.value.replace(/^\s+|\s+$/g, '');
+          }
+        case 4:
+          return node.nodeValue.replace(/^\s+|\s+$/g, '');
+          break;
+        case 1:
+        case 11:
+          var innerText = '';
+          for (var i = 0; i < node.childNodes.length; i++) {
+            innerText += sorttable.getInnerText(node.childNodes[i]);
+          }
+          return innerText.replace(/^\s+|\s+$/g, '');
+          break;
+        default:
+          return '';
+      }
+    }
+  },
+  
+  reverse: function(tbody) {
+    // reverse the rows in a tbody
+    newrows = [];
+    for (var i=0; i<tbody.rows.length; i++) {
+      newrows[newrows.length] = tbody.rows[i];
+    }
+    for (var i=newrows.length-1; i>=0; i--) {
+       tbody.appendChild(newrows[i]);
+    }
+    delete newrows;
+  },
+  
+  /* sort functions
+     each sort function takes two parameters, a and b
+     you are comparing a[0] and b[0] */
+  sort_numeric: function(a,b) {
+    aa = parseFloat(a[0].replace(/[^0-9.-]/g,''));
+    if (isNaN(aa)) aa = 0;
+    bb = parseFloat(b[0].replace(/[^0-9.-]/g,'')); 
+    if (isNaN(bb)) bb = 0;
+    return aa-bb;
+  },
+  sort_alpha: function(a,b) {
+    if (a[0]==b[0]) return 0;
+    if (a[0]<b[0]) return -1;
+    return 1;
+  },
+  sort_ddmm: function(a,b) {
+    mtch = a[0].match(sorttable.DATE_RE);
+    y = mtch[3]; m = mtch[2]; d = mtch[1];
+    if (m.length == 1) m = '0'+m;
+    if (d.length == 1) d = '0'+d;
+    dt1 = y+m+d;
+    mtch = b[0].match(sorttable.DATE_RE);
+    y = mtch[3]; m = mtch[2]; d = mtch[1];
+    if (m.length == 1) m = '0'+m;
+    if (d.length == 1) d = '0'+d;
+    dt2 = y+m+d;
+    if (dt1==dt2) return 0;
+    if (dt1<dt2) return -1;
+    return 1;
+  },
+  sort_mmdd: function(a,b) {
+    mtch = a[0].match(sorttable.DATE_RE);
+    y = mtch[3]; d = mtch[2]; m = mtch[1];
+    if (m.length == 1) m = '0'+m;
+    if (d.length == 1) d = '0'+d;
+    dt1 = y+m+d;
+    mtch = b[0].match(sorttable.DATE_RE);
+    y = mtch[3]; d = mtch[2]; m = mtch[1];
+    if (m.length == 1) m = '0'+m;
+    if (d.length == 1) d = '0'+d;
+    dt2 = y+m+d;
+    if (dt1==dt2) return 0;
+    if (dt1<dt2) return -1;
+    return 1;
+  },
+  
+  shaker_sort: function(list, comp_func) {
+    // A stable sort function to allow multi-level sorting of data
+    // see: http://en.wikipedia.org/wiki/Cocktail_sort
+    // thanks to Joseph Nahmias
+    var b = 0;
+    var t = list.length - 1;
+    var swap = true;
+
+    while(swap) {
+        swap = false;
+        for(var i = b; i < t; ++i) {
+            if ( comp_func(list[i], list[i+1]) > 0 ) {
+                var q = list[i]; list[i] = list[i+1]; list[i+1] = q;
+                swap = true;
+            }
+        } // for
+        t--;
+
+        if (!swap) break;
+
+        for(var i = t; i > b; --i) {
+            if ( comp_func(list[i], list[i-1]) < 0 ) {
+                var q = list[i]; list[i] = list[i-1]; list[i-1] = q;
+                swap = true;
+            }
+        } // for
+        b++;
+
+    } // while(swap)
+  }  
+}
+
+/* ******************************************************************
+   Supporting functions: bundled here to avoid depending on a library
+   ****************************************************************** */
+
+// Dean Edwards/Matthias Miller/John Resig
+
+/* for Mozilla/Opera9 */
+if (document.addEventListener) {
+    document.addEventListener("DOMContentLoaded", sorttable.init, false);
+}
+
+/* for Internet Explorer */
+/*@cc_on @*/
+/*@if (@_win32)
+    document.write("<script id=__ie_onload defer src=javascript:void(0)><\/script>");
+    var script = document.getElementById("__ie_onload");
+    script.onreadystatechange = function() {
+        if (this.readyState == "complete") {
+            sorttable.init(); // call the onload handler
+        }
+    };
+/*@end @*/
+
+/* for Safari */
+if (/WebKit/i.test(navigator.userAgent)) { // sniff
+    var _timer = setInterval(function() {
+        if (/loaded|complete/.test(document.readyState)) {
+            sorttable.init(); // call the onload handler
+        }
+    }, 10);
+}
+
+/* for other browsers */
+window.onload = sorttable.init;
+
+// written by Dean Edwards, 2005
+// with input from Tino Zijdel, Matthias Miller, Diego Perini
+
+// http://dean.edwards.name/weblog/2005/10/add-event/
+
+function dean_addEvent(element, type, handler) {
+	if (element.addEventListener) {
+		element.addEventListener(type, handler, false);
+	} else {
+		// assign each event handler a unique ID
+		if (!handler.$$guid) handler.$$guid = dean_addEvent.guid++;
+		// create a hash table of event types for the element
+		if (!element.events) element.events = {};
+		// create a hash table of event handlers for each element/event pair
+		var handlers = element.events[type];
+		if (!handlers) {
+			handlers = element.events[type] = {};
+			// store the existing event handler (if there is one)
+			if (element["on" + type]) {
+				handlers[0] = element["on" + type];
+			}
+		}
+		// store the event handler in the hash table
+		handlers[handler.$$guid] = handler;
+		// assign a global event handler to do all the work
+		element["on" + type] = handleEvent;
+	}
+};
+// a counter used to create unique IDs
+dean_addEvent.guid = 1;
+
+function removeEvent(element, type, handler) {
+	if (element.removeEventListener) {
+		element.removeEventListener(type, handler, false);
+	} else {
+		// delete the event handler from the hash table
+		if (element.events && element.events[type]) {
+			delete element.events[type][handler.$$guid];
+		}
+	}
+};
+
+function handleEvent(event) {
+	var returnValue = true;
+	// grab the event object (IE uses a global event object)
+	event = event || fixEvent(((this.ownerDocument || this.document || this).parentWindow || window).event);
+	// get a reference to the hash table of event handlers
+	var handlers = this.events[event.type];
+	// execute each event handler
+	for (var i in handlers) {
+		this.$$handleEvent = handlers[i];
+		if (this.$$handleEvent(event) === false) {
+			returnValue = false;
+		}
+	}
+	return returnValue;
+};
+
+function fixEvent(event) {
+	// add W3C standard event methods
+	event.preventDefault = fixEvent.preventDefault;
+	event.stopPropagation = fixEvent.stopPropagation;
+	return event;
+};
+fixEvent.preventDefault = function() {
+	this.returnValue = false;
+};
+fixEvent.stopPropagation = function() {
+  this.cancelBubble = true;
+}
+
+// Dean's forEach: http://dean.edwards.name/base/forEach.js
+/*
+	forEach, version 1.0
+	Copyright 2006, Dean Edwards
+	License: http://www.opensource.org/licenses/mit-license.php
+*/
+
+// array-like enumeration
+if (!Array.forEach) { // mozilla already supports this
+	Array.forEach = function(array, block, context) {
+		for (var i = 0; i < array.length; i++) {
+			block.call(context, array[i], i, array);
+		}
+	};
+}
+
+// generic enumeration
+Function.prototype.forEach = function(object, block, context) {
+	for (var key in object) {
+		if (typeof this.prototype[key] == "undefined") {
+			block.call(context, object[key], key, object);
+		}
+	}
+};
+
+// character enumeration
+String.forEach = function(string, block, context) {
+	Array.forEach(string.split(""), function(chr, index) {
+		block.call(context, chr, index, string);
+	});
+};
+
+// globally resolve forEach enumeration
+var forEach = function(object, block, context) {
+	if (object) {
+		var resolve = Object; // default
+		if (object instanceof Function) {
+			// functions have a "length" property
+			resolve = Function;
+		} else if (object.forEach instanceof Function) {
+			// the object implements a custom forEach method so use that
+			object.forEach(block, context);
+			return;
+		} else if (typeof object == "string") {
+			// the object is a string
+			resolve = String;
+		} else if (typeof object.length == "number") {
+			// the object is array-like
+			resolve = Array;
+		}
+		resolve.forEach(object, block, context);
+	}
+};
+
Binary file systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/CTCHTML/white.gif has changed
Binary file systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/CTCHTML/yellow.gif has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/bld.inf	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,41 @@
+// ============================================================================
+// * Makefile for building: utaccindicatorplugin
+// * Generated by qmake (2.01a) (Qt 4.7.0) on: 2010-09-20T13:00:35
+// * This file is generated by qmake and should not be modified by the
+// * user.
+// * Project:  utaccindicatorplugin.pro
+// * Template: lib
+// ============================================================================
+
+#define BLD_INF_UTACCINDICATORPLUGIN_0C0AEEDF
+
+
+prj_platforms
+
+WINSCW ARMV5
+
+
+prj_mmpfiles
+
+utaccindicatorplugin_0x20031E3B.mmp
+
+prj_extensions
+
+START EXTENSION qt/qmake_extra_pre_targetdep.export
+OPTION PREDEP_TARGET X:/sf/mw/appsupport/systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/moc_accindicator.cpp
+OPTION DEPS X:/sf/mw/appsupport/systemsettings/accindicatorplugin/inc/accindicator.h 
+OPTION COMMAND /epoc32/tools/moc.exe  -DSYMBIAN  -DUNICODE -DQT_KEYPAD_NAVIGATION -DQT_SOFTKEYS_ENABLED -DQT_USE_MATH_H_FLOATS -DFCC_UNIT_TEST -DQT_GUI_LIB -DQT_CORE_LIB -DHB_HAVE_QT_MOBILITY -DHB_EFFECTS_OPENVG -DHB_FILTER_EFFECTS -DHB_HAVE_PROTECTED_CHUNK -DHB_TOUCHFEEDBACK_TYPE_IS_LONGPRESS -DHB_WSERV_HAS_RENDER_ORIENTATION -DHB_GESTURE_FW -DHB_EFFECTS -DHB_TEXT_MEASUREMENT_UTILITY -DHB_HAVE_QT_MOBILITY -DHB_EFFECTS_OPENVG -DHB_FILTER_EFFECTS -DHB_HAVE_PROTECTED_CHUNK -DHB_TOUCHFEEDBACK_TYPE_IS_LONGPRESS -DHB_WSERV_HAS_RENDER_ORIENTATION -DHB_GESTURE_FW -DHB_EFFECTS -DHB_TEXT_MEASUREMENT_UTILITY  -I"X:/epoc32/include/mw/QtCore"  -I"X:/epoc32/include/mw/QtGui"  -I"X:/epoc32/include/mw"  -I"X:/sf/mw/qt/mkspecs/common/symbian"  -I"X:/epoc32/include"  -I"X:/epoc32/include/stdapis"  -I"X:/epoc32/include/stdapis/sys"  -I"X:/epoc32/include/platform/mw"  -I"X:/epoc32/include/platform"  -I"X:/epoc32/include/platform/loc"  -I"X:/epoc32/include/platform/mw/loc"  -I"X:/epoc32/include/platform/loc/sc"  -I"X:/epoc32/include/platform/mw/loc/sc"  -I"X:/sf/mw/appsupport/systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin"  -I"X:/sf/mw/appsupport/systemsettings/accindicatorplugin/inc"  -I"X:/epoc32/include/mw/hb/hbcore"  -I"X:/epoc32/include/mw/hb/hbwidgets"  -I"X:/epoc32/include/mw/hb/hbutils"  -I"X:/epoc32/include/stdapis/stlportv5"  -I"X:/sf/mw/appsupport/systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/inc"  -I"X:/sf/mw/appsupport/systemsettings/accindicatorplugin/src"  -I"X:/sf/mw/appsupport/systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/src" -DSYMBIAN x:/sf/mw/appsupport/systemsettings/accindicatorplugin/inc/accindicator.h -o x:/sf/mw/appsupport/systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/moc_accindicator.cpp
+END
+START EXTENSION qt/qmake_extra_pre_targetdep.export
+OPTION PREDEP_TARGET X:/sf/mw/appsupport/systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/moc_utslot.cpp
+OPTION DEPS X:/sf/mw/appsupport/systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/inc/utslot.h 
+OPTION COMMAND /epoc32/tools/moc.exe  -DSYMBIAN  -DUNICODE -DQT_KEYPAD_NAVIGATION -DQT_SOFTKEYS_ENABLED -DQT_USE_MATH_H_FLOATS -DFCC_UNIT_TEST -DQT_GUI_LIB -DQT_CORE_LIB -DHB_HAVE_QT_MOBILITY -DHB_EFFECTS_OPENVG -DHB_FILTER_EFFECTS -DHB_HAVE_PROTECTED_CHUNK -DHB_TOUCHFEEDBACK_TYPE_IS_LONGPRESS -DHB_WSERV_HAS_RENDER_ORIENTATION -DHB_GESTURE_FW -DHB_EFFECTS -DHB_TEXT_MEASUREMENT_UTILITY -DHB_HAVE_QT_MOBILITY -DHB_EFFECTS_OPENVG -DHB_FILTER_EFFECTS -DHB_HAVE_PROTECTED_CHUNK -DHB_TOUCHFEEDBACK_TYPE_IS_LONGPRESS -DHB_WSERV_HAS_RENDER_ORIENTATION -DHB_GESTURE_FW -DHB_EFFECTS -DHB_TEXT_MEASUREMENT_UTILITY  -I"X:/epoc32/include/mw/QtCore"  -I"X:/epoc32/include/mw/QtGui"  -I"X:/epoc32/include/mw"  -I"X:/sf/mw/qt/mkspecs/common/symbian"  -I"X:/epoc32/include"  -I"X:/epoc32/include/stdapis"  -I"X:/epoc32/include/stdapis/sys"  -I"X:/epoc32/include/platform/mw"  -I"X:/epoc32/include/platform"  -I"X:/epoc32/include/platform/loc"  -I"X:/epoc32/include/platform/mw/loc"  -I"X:/epoc32/include/platform/loc/sc"  -I"X:/epoc32/include/platform/mw/loc/sc"  -I"X:/sf/mw/appsupport/systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin"  -I"X:/sf/mw/appsupport/systemsettings/accindicatorplugin/inc"  -I"X:/epoc32/include/mw/hb/hbcore"  -I"X:/epoc32/include/mw/hb/hbwidgets"  -I"X:/epoc32/include/mw/hb/hbutils"  -I"X:/epoc32/include/stdapis/stlportv5"  -I"X:/sf/mw/appsupport/systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/inc"  -I"X:/sf/mw/appsupport/systemsettings/accindicatorplugin/src"  -I"X:/sf/mw/appsupport/systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/src" -DSYMBIAN x:/sf/mw/appsupport/systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/inc/utslot.h -o x:/sf/mw/appsupport/systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/moc_utslot.cpp
+END
+
+#if defined(WINSCW)
+#endif
+
+START EXTENSION qt/qmake_store_build
+END
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/eabi/utaccindicatorpluginu.def	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,4 @@
+EXPORTS
+	_Z9LibEntryLv @ 1 NONAME
+	_Z15SetRequirementsRP16CTestModuleParamRm @ 2 NONAME
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/group/bld.inf	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,60 @@
+/*
+* 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:
+*
+*/
+
+PRJ_PLATFORMS
+// specify the platforms your component needs to be built for here
+// defaults to WINS MARM so you can ignore this if you just build these
+
+	DEFAULT
+
+PRJ_TESTEXPORTS
+// NOTE: If using ARS requirements all export operations should be done under this.
+// 'abld test export'
+
+PRJ_EXPORTS
+// Specify the source file followed by its destination here
+// copy will be used to copy the source file to its destination
+// If there's no destination then the source file will be copied
+// to the same name in \epoc32\include
+// Example: 
+/*
+\agnmodel\inc\AGMCOMON.H
+*/
+
+PRJ_TESTMMPFILES
+
+	utaccindicatorplugin.mmp
+
+PRJ_MMPFILES
+
+	utaccindicatorplugin_nrm.mmp
+
+// Specify the .mmp files required for building the important component
+// releasables.
+//
+// Specify "tidy" if the component you need to build doesn't need to be
+// released. Specify "ignore" if the MMP file exists but should be
+// ignored.
+// Example:
+/*
+\agnmodel\group\agnmodel.mmp
+#if defined(MARM)
+\agnmodel\group\agsvexe.mmp
+#endif
+*/
+
+//  End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/group/utaccindicatorplugin.mmp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,73 @@
+/*TYPE STIFUNIT*/
+/*
+* 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: MMP file for STIF Test Framework's STIFUnit test module.
+*
+*/
+
+#include <platform_paths.hrh>
+
+SMPSAFE
+
+TARGET          utaccindicatorplugin.dll
+TARGETTYPE      dll
+UID             0x1000008D 0x101FB3E7
+
+CAPABILITY      ALL -TCB
+/* Remove comments and replace 0x00000000 with correct vendor id */
+// VENDORID     0x00000000
+/* Remove comments and replace 0x00000000 with correct secure id */
+// SECUREID     0x00000000
+
+//TARGETPATH      ?target_path
+DEFFILE         utaccindicatorplugin.def
+
+USERINCLUDE     ../inc 
+
+OS_LAYER_SYSTEMINCLUDE
+
+SOURCEPATH      ../src
+
+SOURCE          utaccindicatorplugin.cpp
+SOURCE          utaccindicatorpluginCases.cpp
+
+//RESOURCE        resource_file
+//RESOURCE        resource_file2
+
+LIBRARY         euser.lib
+LIBRARY         stiftestinterface.lib
+
+LANG            SC
+
+/*
+START WINS      
+?wins_specific_information
+END
+
+START MARM
+?marm_specific_information
+END
+*/
+// Other possible keywords:
+ 
+// DOCUMENT     ?file, that is not compiled, but added to MSVC project workspace (i.e. release notes)
+/*
+START BITMAP ?target
+TARGETPATH   ?emulated_path_on_target_machine
+HEADER
+SOURCE       ?color_depth ?source_bitmap
+END
+*/
+// DEFFILE ?filename
+// AIF ?filename// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/group/utaccindicatorplugin.pkg	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,60 @@
+;
+; 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:
+;
+; 	Installation file for STIF
+;
+
+; Languages
+&EN
+
+; Provide value for uid
+#{"STIF"},(0x00000000),1,1,0,TYPE=SA
+
+; Series60 product id for S60 3.0
+[0x101F7961], 0, 0, 0, {"Series60ProductID"}
+
+; Localised Vendor name
+%{"Nokia"}
+
+; Unique Vendor name
+:"Nokia"
+
+; Logo
+; None
+
+; Package signature - Optional
+; None
+
+; Start of Package body
+
+; Condition blocks
+; None
+
+; Options list
+; None
+
+; Install files
+"\epoc32\release\armv5\udeb\utaccindicatorplugin.dll"   -   "!:\Sys\Bin\utaccindicatorplugin.dll"
+  
+; Embedded SIS 
+; None
+
+; End of Package body
+
+; PKG dependencies
+; None
+
+; PKG capabilities
+; None
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/group/utaccindicatorplugin_nrm.mmp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,75 @@
+/*TYPE STIFUNIT*/
+/*
+* 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: MMP file for STIF Test Framework's STIFUnit test 
+* module.
+*
+*/
+
+#include <platform_paths.hrh>
+
+SMPSAFE
+
+TARGET          utaccindicatorplugin.dll
+TARGETTYPE      dll
+UID             0x1000008D 0x101FB3E7
+
+CAPABILITY      ALL -TCB
+/* Remove comments and replace 0x00000000 with correct vendor id */
+// VENDORID     0x00000000
+/* Remove comments and replace 0x00000000 with correct secure id */
+// SECUREID     0x00000000
+
+//TARGETPATH      ?target_path
+DEFFILE         utaccindicatorplugin.def
+
+USERINCLUDE     ../inc 
+
+OS_LAYER_SYSTEMINCLUDE
+
+SOURCEPATH      ../src
+
+
+SOURCE          utaccindicatorplugin.cpp
+SOURCE          utaccindicatorpluginCases.cpp
+
+//RESOURCE        resource_file
+//RESOURCE        resource_file2
+
+LIBRARY         euser.lib
+LIBRARY         stiftestinterface.lib
+
+LANG            SC
+
+/*
+START WINS      
+?wins_specific_information
+END
+
+START MARM
+?marm_specific_information
+END
+*/
+// Other possible keywords:
+ 
+// DOCUMENT     ?file, that is not compiled, but added to MSVC project workspace (i.e. release notes)
+/*
+START BITMAP ?target
+TARGETPATH   ?emulated_path_on_target_machine
+HEADER
+SOURCE       ?color_depth ?source_bitmap
+END
+*/
+// DEFFILE ?filename
+// AIF ?filename// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/inc/UTSlot.h	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,38 @@
+/*
+* 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: UTSlot class definition. 
+*
+*/
+
+
+#ifndef UTSLOT_H_
+#define UTSLOT_H_
+#include <QObject>
+
+class UTSlot : public QObject
+    {
+    Q_OBJECT    
+    
+public:
+    UTSlot();
+    virtual ~UTSlot();
+public slots:
+    void dataChangedSlot();
+    void deactivateSlot();
+public:
+    TBool iDataChangedSlotCalled;
+    TBool iDeactiveSlotCalled;
+    };
+
+#endif /* UTSLOT_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/src/UTSlot.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,41 @@
+/*
+* 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: UTSlot class implementation. 
+*
+*/
+
+
+#include "UTSlot.h"
+
+UTSlot::UTSlot()
+:    iDataChangedSlotCalled(EFalse),
+     iDeactiveSlotCalled(EFalse)
+    {
+    // TODO Auto-generated constructor stub
+    }
+
+UTSlot::~UTSlot()
+    {
+    // TODO Auto-generated destructor stub
+    }
+
+void UTSlot::dataChangedSlot()
+    {
+    iDataChangedSlotCalled = ETrue;
+    }
+
+void UTSlot::deactivateSlot()
+    {
+    iDeactiveSlotCalled = ETrue;
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/src/utaccindicatorplugin.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,124 @@
+/*
+* 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: This file contains STIFUnit module implementation.
+*
+*/
+
+/******************************************************************************/
+/*
+ *
+ * Test module configuration 
+*/
+
+// Version
+#define TEST_MODULE_VERSION_MAJOR 0
+#define TEST_MODULE_VERSION_MINOR 0
+#define TEST_MODULE_VERSION_BUILD 0
+
+// Uncomment following defines, if you want to provide implementation
+// of enlisted virtual methods of test module.
+// Implementation part is located at the end of this file.
+//#define STIFUNIT_OOMTESTQUERYL
+//#define STIFUNIT_OOMTESTINITIALIZEL
+//#define STIFUNIT_OOMHANDLEWARNINGL
+//#define STIFUNIT_OOMTESTFINALIZEL
+// Uncomment following define, if you want to increase heap or stack size.
+// #define STIFUNIT_SETHEAPANDSTACKSIZE
+/******************************************************************************/
+
+
+/*
+ * Test module internals. Please do not edit them. 
+*/
+
+// Includes
+#include <e32base.h>
+
+// Literals
+_LIT( KUnitLogPath, "\\logs\\testframework\\" ); 
+_LIT( KUnitLogFile, "utaccindicatorplugin.txt" ); 
+_LIT( KLogStart, "utaccindicatorplugin logging starts!" );
+
+// Defines
+#define STIF_UNIT_TEST_CASES "../src/utaccindicatorpluginCases.cpp"
+#define STIF_UNIT_MODULE_CLASS_NAME Cutaccindicatorplugin
+#define STIF_UNIT_MODULE_NAME _L("utaccindicatorplugin.dll")
+
+// Include STIF unit generic file
+#include <StifUnitGeneric.h>
+
+/*
+ * Implementation of setHeapAndStack virtual methods.
+ * To changes heap and stack size provide new values to iTestThreadStackSize, iTestThreadMinHeap and iTestThreadMaxHeap. 
+*/
+
+#ifdef STIFUNIT_SETHEAPANDSTACKSIZE
+EXPORT_C TInt SetRequirements( CTestModuleParam*& aTestModuleParam, 
+                               TUint32& aParameterValid )
+    {
+    aParameterValid = KStifTestModuleParameterChanged;
+    CTestModuleParamVer01* param = CTestModuleParamVer01::NewL(); 
+    // Stack size 
+    param->iTestThreadStackSize= 16384; // 16K stack 
+    // Heap sizes 
+    param->iTestThreadMinHeap = 4096; // 4K heap min 
+    param->iTestThreadMaxHeap = 1048576;// 1M heap max 
+
+    return KErrNone;
+    }
+#undef STIFUNIT_SETHEAPANDSTACKSIZE
+#endif
+
+/*
+ * User implementation of OOM virtual methods.
+ * Providing own implementation requires uncommenting defines at the
+ * beginnig of this file.   
+*/
+#ifdef STIFUNIT_OOMTESTQUERYL
+TBool Cutaccindicatorplugin::OOMTestQueryL( const TFileName& /*aTestCaseFile*/, 
+                                   const TInt aCaseNumber, 
+                                   TOOMFailureType& aFailureType, 
+                                   TInt& aFirstMemFailure, 
+                                   TInt& aLastMemFailure)
+    {
+    }
+#undef STIFUNIT_OOMTESTQUERYL
+#endif
+
+#ifdef STIFUNIT_OOMTESTINITIALIZEL
+void Cutaccindicatorplugin::OOMTestInitializeL( const TFileName& /*aTestCaseFile*/, 
+                                       const TInt /*aCaseNumber*/ )
+    {
+    }
+#undef STIFUNIT_OOMTESTINITIALIZEL
+#endif
+
+#ifdef STIFUNIT_OOMHANDLEWARNINGL
+void Cutaccindicatorplugin::OOMHandleWarningL( const TFileName& /*aTestCaseFile*/,
+                                      const TInt /*aCaseNumber*/, 
+                                      TInt& /*aFailNextValue*/)
+    {
+    }
+#undef STIFUNIT_OOMHANDLEWARNINGL
+#endif
+    
+#ifdef STIFUNIT_OOMTESTFINALIZEL
+void Cutaccindicatorplugin::OOMTestFinalizeL( const TFileName& /*aTestCaseFile*/, 
+                                     const TInt /*aCaseNumber*/ )
+    {
+    }
+#undef STIFUNIT_OOMTESTFINALIZEL
+#endif
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/src/utaccindicatorpluginCases.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,207 @@
+/*
+* 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: This file contains STIFUnit implementation.
+*
+*/
+
+/**
+ * STIF_UNIT_INCLUDE SECTION - put all #includes between STIF_UNIT_INCLUDE_SECTION
+ *                             and STIF_UNIT_INCLUDE_SECTION_END
+ */
+#ifdef STIF_UNIT_INCLUDE_SECTION
+#include <QObject>
+#include <QVariant>
+#include <e32des16.h> 
+
+#include <hbindicatorinterface.h>
+#include "accindicator.h" 
+#include <accpolgenericiddefinitions.h>
+
+#include "utslot.h"
+#endif //STIF_UNIT_INCLUDE_SECTION_END
+
+/**
+ * GLOBAL VARIABLES SECTION
+ */
+#ifdef TEST_VAR_DECLARATIONS
+AccIndicatorPlugin* accIndicatorPlugin;  
+#endif
+/**
+ * END OF GLOBAL VARIABLES SECTION
+ */
+
+
+/**
+ * TEST CASES SECTION
+ */
+#ifdef TEST_CASES
+/**
+ * STIF_SETUP defines activities needed before every test case.
+ */
+STIF_SETUP
+{
+    accIndicatorPlugin = new (ELeave) AccIndicatorPlugin();
+    CleanupStack::PushL(accIndicatorPlugin);
+}
+
+/**
+ * STIF_TEARDOWN defines activities needed after every test case
+ */
+STIF_TEARDOWN
+{
+    CleanupStack::PopAndDestroy(accIndicatorPlugin);
+}
+
+/**
+ * STIF_TESTDEFINE defines a test case
+ *
+ *  Example test case - length of string is checked.
+ *  The only argument of macro is a name of test case.
+ */
+
+
+STIF_TESTDEFINE(createIndicator)
+    {    
+    //
+    QString par1;
+    STIF_ASSERT_EQUALS((HbIndicatorInterface*)accIndicatorPlugin, accIndicatorPlugin->createIndicator(par1));
+    }
+
+STIF_TESTDEFINE(indicatorTypes)
+    {
+    QString KIndicatorType = "com.nokia.accessory.indicatorplugin/1.0";
+    QStringList qStringList = accIndicatorPlugin->indicatorTypes();
+    STIF_ASSERT_EQUALS(KIndicatorType, qStringList[0]);
+    }
+
+STIF_TESTDEFINE(accessAllowed)
+    {
+    QVariantMap mapValues;
+    QString KAccMode = "AccMode";
+    QString KAccType = "AccType";
+    mapValues[KAccMode] = (TInt)EAccModeWiredHeadset;
+    mapValues[KAccType] = (TInt)KPCWired;
+    QString par1;
+    
+    bool expectedResult = true;
+    STIF_ASSERT_EQUALS(expectedResult, accIndicatorPlugin->accessAllowed(par1, mapValues));
+    }
+
+STIF_TESTDEFINE(handleClientRequest_indicatorData)
+    {
+    // connect test slot to signal
+    UTSlot *utSlot = new (ELeave) UTSlot();
+    CleanupStack::PushL(utSlot);
+    QObject::connect( accIndicatorPlugin, SIGNAL(dataChanged()),                       
+                      utSlot, SLOT(dataChangedSlot()));
+    QObject::connect( accIndicatorPlugin, SIGNAL(deactivate()),                       
+                      utSlot, SLOT(deactivateSlot()));
+    utSlot->iDataChangedSlotCalled = EFalse;
+    
+    // make a qmap to pass parameters
+    QVariantMap mapValues;
+    QString KAccMode = "AccMode";
+    QString KAccType = "AccType";
+    mapValues[KAccMode] = (TInt)EAccModeWiredHeadset;
+    mapValues[KAccType] = (TInt)KPCWired;
+
+    // handleclientrequest activate
+    HbIndicatorInterface::RequestType requestType = HbIndicatorInterface::RequestActivate;
+    accIndicatorPlugin->handleClientRequest(requestType, mapValues);
+    
+    // verify that slot had been called 
+    TBool expectedResult = ETrue;
+    STIF_ASSERT_EQUALS(expectedResult, utSlot->iDataChangedSlotCalled);
+    
+    // verify data values
+    QString displayName = accIndicatorPlugin->indicatorData(HbIndicatorInterface::PrimaryTextRole).toString();
+    QString iconName = accIndicatorPlugin->indicatorData(HbIndicatorInterface::DecorationNameRole).toString();
+    QString KDisplayName = "Wired Headset";
+    QString KIconName = "z:/resource/accindicator/wired_accessory.svg";    
+    STIF_ASSERT_EQUALS(KDisplayName, displayName);
+    STIF_ASSERT_EQUALS(KIconName, iconName);
+            
+    // handleClientReqeust deactive
+    utSlot->iDeactiveSlotCalled = EFalse;
+    requestType = HbIndicatorInterface::RequestDeactivate;
+    accIndicatorPlugin->handleClientRequest(requestType, mapValues);
+    
+    // verify that slot had been called 
+    expectedResult = ETrue;
+    STIF_ASSERT_EQUALS(expectedResult, utSlot->iDeactiveSlotCalled);
+    // verify data values
+    QString emptyString;
+    displayName = accIndicatorPlugin->indicatorData(HbIndicatorInterface::PrimaryTextRole).toString();
+    STIF_ASSERT_EQUALS(emptyString, displayName);
+        
+    CleanupStack::PopAndDestroy(utSlot);
+    }
+
+STIF_TESTDEFINE(handleInteraction_EAccModeWiredHeadset)
+    {
+    // make a qmap to pass parameters
+    QVariantMap mapValues;
+    QString KAccMode = "AccMode";
+    QString KAccType = "AccType";
+    mapValues[KAccMode] = (TInt)EAccModeWiredHeadset;
+    mapValues[KAccType] = (TInt)KPCWired;
+
+    // handleclientrequest activate
+    HbIndicatorInterface::RequestType requestType = HbIndicatorInterface::RequestActivate;
+    accIndicatorPlugin->handleClientRequest(requestType, mapValues);
+    
+    HbIndicatorInterface::InteractionType interactionType;
+    interactionType = HbIndicatorInterface::NoInteraction;
+    
+    // NoInteraction, handled = false
+    bool expectedResult = false;
+    STIF_ASSERT_EQUALS(expectedResult, accIndicatorPlugin->handleInteraction(interactionType));
+    
+    // InteractionActivated, handled = true
+    interactionType = HbIndicatorInterface::InteractionActivated;
+    expectedResult = true;
+    STIF_ASSERT_EQUALS(expectedResult, accIndicatorPlugin->handleInteraction(interactionType));    
+
+    }
+STIF_TESTDEFINE(handleInteraction_EAccModeTVOut)
+    {
+    // make a qmap to pass parameters
+    QVariantMap mapValues;
+    QString KAccMode = "AccMode";
+    QString KAccType = "AccType";
+    mapValues[KAccMode] = (TInt)EAccModeTVOut;
+    mapValues[KAccType] = (TInt)KPCHDMI;
+    // handleclientrequest activate
+    HbIndicatorInterface::RequestType requestType = HbIndicatorInterface::RequestActivate;
+    accIndicatorPlugin->handleClientRequest(requestType, mapValues);
+    
+    HbIndicatorInterface::InteractionType interactionType;
+    interactionType = HbIndicatorInterface::NoInteraction;
+    
+    // NoInteraction, handled = false
+    bool expectedResult = false;
+    STIF_ASSERT_EQUALS(expectedResult, accIndicatorPlugin->handleInteraction(interactionType));
+    
+    // InteractionActivated, handled = true
+    interactionType = HbIndicatorInterface::InteractionActivated;
+    expectedResult = true;
+    STIF_ASSERT_EQUALS(expectedResult, accIndicatorPlugin->handleInteraction(interactionType));    
+    }
+
+#endif
+/**
+ * END OF TEST CASES SECTION
+ */
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemsettings/accindicatorplugin/tsrc/utaccindicatorplugin/utaccindicatorplugin.pro	Thu Oct 07 06:25:45 2010 +0300
@@ -0,0 +1,31 @@
+# #####################################################################
+# Automatically generated by qmake (2.01a) Thu Mar 25 11:36:36 2010
+# #####################################################################
+TEMPLATE = lib
+TARGET = utaccindicatorplugin
+CONFIG += hb
+CONFIG += qt
+INCLUDEPATH += .
+INCLUDEPATH += ../../inc
+DEPENDPATH += .
+INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE
+DEFINES += FCC_UNIT_TEST
+
+# Input
+HEADERS += ../../inc/accindicator.h
+SOURCES += ../../src/accindicator.cpp
+SOURCES += src/utaccindicatorplugin.cpp
+SOURCES += src/utaccindicatorpluginCases.cpp
+HEADERS += inc/utslot.h
+SOURCES += src/utslot.cpp
+
+# Libraries
+LIBS += -lstiftestinterface
+RESOURCES = 
+symbian { 
+    TARGET.EPOCALLOWDLLDATA = 1
+    TARGET.CAPABILITY = CAP_GENERAL_DLL
+    SYMBIAN_PLATFORMS = WINSCW \
+        ARMV5
+    TARGET.UID3 = 0x20031E3B
+}
--- a/tzservices/tzlocrscfactory/res/timezonegroups.rss	Wed Sep 29 15:24:56 2010 +0300
+++ b/tzservices/tzlocrscfactory/res/timezonegroups.rss	Thu Oct 07 06:25:45 2010 +0300
@@ -83,3 +83,4 @@
 	city_group_id = 12;
 	city_group_name = STRING_city_group_name_12;
 	}
+
--- a/tzservices/tzserver/Server/Source/timezoneconfig.cpp	Wed Sep 29 15:24:56 2010 +0300
+++ b/tzservices/tzserver/Server/Source/timezoneconfig.cpp	Thu Oct 07 06:25:45 2010 +0300
@@ -22,7 +22,7 @@
 #include "tzpersisted.h"
 #include "tzlocalizationdb.h"
 #include <bautils.h>
-#include "cbackuprestorenotification.h"
+#include "CBackupRestoreNotification.h"
 #ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
 #include <tzuserdefineddata.h>
 #endif