Revision: 201007
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Fri, 19 Mar 2010 09:58:42 +0200
changeset 12 e978f818f9bd
parent 0 4e1aa6a622a0
child 13 cef4ff1e6c4f
Revision: 201007 Kit: 201011
accessoryservices/accessoryserver/src/ASYProxy/ASYProxyCommandObserver.cpp
accessoryservices/accessoryserver/src/ASYProxy/ASYProxyCommsService.cpp
accessoryservices/accessoryserver/src/ChargerContext/ChargingContextFSMBody.cpp
accessoryservices/accessoryserver/src/Server/AccSrvConnectionController.cpp
accessoryservices/accessoryserver/src/Server/AccSrvSubBTControl.cpp
accessoryservices/pluggeddisplay/edidparser/bwins/edidparseru.def
accessoryservices/pluggeddisplay/edidparser/eabi/edidparseru.def
accessoryservices/pluggeddisplay/edidparser/inc/cea861edidparser.h
accessoryservices/pluggeddisplay/edidparser/src/cea861ediddatatypes.cpp
accessoryservices/pluggeddisplay/edidparser/src/cea861edidparser.cpp
accessoryservices/pluggeddisplay/pluggeddisplayengine/src/edidhandler.cpp
accessoryservices/remotecontrolfw/client/intermediate/src/interfaceselector.cpp
accessoryservices/tspclientmapper/tsrc/public/basic/tspclienttestmodule/init/tspclienttestmodule.ini
commonservices/PlatformEnv/data/estart_mds.txt
commonservices/PlatformEnv/data/estart_mds_ms.txt
commonservices/PlatformEnv/disknotifyhandler/tsrc/disknotifyhandlertest/init/disknotifyhandlertest.ini
commonservices/PlatformEnv/platformver/tsrc/platformvertest/init/platformvertest.ini
commonservices/PlatformEnv/sysversioninfo/tsrc/sysutiltests/init/sysutiltests.ini
commonservices/PlatformEnv/tsrc/platformenvtest/init/platformenvtest.ini
devicesrv_pub/common_platform_security_definitions_api/inc/data_caged_locations.mk
devicesrv_pub/common_platform_security_definitions_api/inc/data_caging_path_literals.hrh
devicesrv_pub/common_platform_security_definitions_api/inc/data_caging_paths.hrh
devicesrv_pub/common_platform_security_definitions_api/inc/data_caging_paths_for_iby.hrh
devicesrv_pub/common_platform_security_definitions_api/inc/data_caging_paths_strings.hrh
mediator/tsrc/public/basic/group/MediatorTest.pkg
psmservices/psmserver/src/engine/psmbackupstorage.cpp
psmservices/psmserver/src/engine/psmstorage.cpp
psmservices/psmserver/tsrc/PsmTestModule/group/PsmTestModule.pkg
sensorservices/sensorserver/tsrc/sensorsrvtest/SensorTestModule/cenrepsample/1020507E.txt
sensorservices/sensorserver/tsrc/sensorsrvtest/SensorTestModule/cenrepsample/10282DEE.txt
sensorservices/sensorserver/tsrc/sensorsrvtest/SensorTestModule/cenrepsample/sensorframework.confml
sensorservices/sensorserver/tsrc/sensorsrvtest/SensorTestModule/cenrepsample/sensorframework_10282DEE.crml
sensorservices/sensorserver/tsrc/sensorsrvtest/SensorTestModule/group/bld.inf
sensorservices/sensorserver/tsrc/sensorsrvtest/conf/SensorTestModule_OOM.cfg
sensorservices/sensorserver/tsrc/sensorsrvtest/rom/sensorserver_ats3.iby
sysstatemgmt/ssmcmdlists/data/alarm_charging.rss
sysstatemgmt/ssmcmdlists/data/criticalappscmdlist.rss
sysstatemgmt/ssmcmdlists/data/noncriticalcmdlist.rss
sysstatemgmt/ssmcmdlists/data/noncriticalcmdlist_hw.rss
sysstatemgmt/ssmcmdlists/data/securitycheckcmdlist.rss
sysstatemgmt/ssmcmdlists/data/uiservicescmdlist.rss
sysstatemgmt/systemstatemgr/cmd/inc/ssmcommandlistresourcereaderimpl.h
sysstatemgmt/systemstatemgr/cmd/src/ssmcommandfactory.cpp
sysstatemgmt/systemstatemgr/cmd/src/ssmcommandlistimpl.cpp
sysstatemgmt/systemstatemgr/cmd/src/ssmcommandlistresourcereader.cpp
sysstatemgmt/systemstatemgr/cmd/src/ssmcommandlistresourcereaderimpl.cpp
sysstatemgmt/systemstatemgr/inc/ssmadaptationcli.h
sysstatemgmt/systemstatemgr/sus/inc/ssmadaptationcmn.h
sysstatemgmt/systemstatemgr/sus/inc/susadaptionserver.h
sysstatemgmt/systemstatemgr/sus/inc/susemergencycallrfadaptation.h
sysstatemgmt/systemstatemgr/sus/inc/suspanic.h
sysstatemgmt/systemstatemgr/sus/src/ssmadaptationcli.cpp
sysstatemgmt/systemstatemgr/sus/src/susadaptionserver.cpp
sysstatemgmt/systemstatemgr/sus/src/susemergencycallrfadaptation.cpp
sysstatemgmt/systemstatemgr/test/tsus/group/tsus_ssmutilsrv.mmp
sysstatemgmt/systemstatemgr/test/tsus/inc/tsus_startadaptationserver.h
sysstatemgmt/systemstatemgr/test/tsus/inc/tsus_step_adaptionserver.h
sysstatemgmt/systemstatemgr/test/tsus/scripts/ssmatest_sus_adaptionserver.script
sysstatemgmt/systemstatemgr/test/tsus/src/tsus_startadaptationserver.cpp
sysstatemgmt/systemstatemgr/test/tsus/src/tsus_step_adaptionserver.cpp
sysstatemgmt/systemstateplugins/conditionevaluator/inc/cndcentralrepository.h
sysstatemgmt/systemstateplugins/conditionevaluator/inc/cndfeature.h
sysstatemgmt/systemstateplugins/conditionevaluator/inc/cndlogical.h
sysstatemgmt/systemstateplugins/conditionevaluator/inc/cndpublishsubscribe.h
sysstatemgmt/systemstateplugins/conditionevaluator/inc/conditionevaluate.h
sysstatemgmt/systemstateplugins/conditionevaluator/inc/conditionevaluatebase.h
sysstatemgmt/systemstateplugins/conditionevaluator/inc/conditionresourcetypes.rh
sysstatemgmt/systemstateplugins/conditionevaluator/inc/conditiontypes.hrh
sysstatemgmt/systemstateplugins/conditionevaluator/src/cndcentralrepository.cpp
sysstatemgmt/systemstateplugins/conditionevaluator/src/cndfeature.cpp
sysstatemgmt/systemstateplugins/conditionevaluator/src/cndlogical.cpp
sysstatemgmt/systemstateplugins/conditionevaluator/src/cndpublishsubscribe.cpp
sysstatemgmt/systemstateplugins/conditionevaluator/src/conditionevaluate.cpp
sysstatemgmt/systemstatereferenceplugins/clayer/group/bld.inf
sysstatemgmt/systemstatereferenceplugins/clayer/group/ssmclayersup.mmp
sysstatemgmt/systemstatereferenceplugins/clayer/inc/securitynotification.h
sysstatemgmt/systemstatereferenceplugins/clayer/inc/simutils.h
sysstatemgmt/systemstatereferenceplugins/clayer/inc/ssmsecurityeventobserver.h
sysstatemgmt/systemstatereferenceplugins/clayer/inc/ssmsecuritynotecontroller.h
sysstatemgmt/systemstatereferenceplugins/clayer/inc/starter.hrh
sysstatemgmt/systemstatereferenceplugins/clayer/inc/starterclient.h
sysstatemgmt/systemstatereferenceplugins/clayer/inc/starterdomaincrkeys.h
sysstatemgmt/systemstatereferenceplugins/clayer/inc/starterprivatecrkeys.h
sysstatemgmt/systemstatereferenceplugins/clayer/inc/startupadaptation.h
sysstatemgmt/systemstatereferenceplugins/clayer/inc/startupadaptation.inl
sysstatemgmt/systemstatereferenceplugins/clayer/inc/startupadaptationcommands.h
sysstatemgmt/systemstatereferenceplugins/clayer/inc/startupadaptationcommands.inl
sysstatemgmt/systemstatereferenceplugins/clayer/inc/startupadaptationevents.h
sysstatemgmt/systemstatereferenceplugins/clayer/inc/startupadaptationobserver.h
sysstatemgmt/systemstatereferenceplugins/clayer/inc/startupdomainpskeys.h
sysstatemgmt/systemstatereferenceplugins/clayer/inc/startupreason.h
sysstatemgmt/systemstatereferenceplugins/clayer/inc/strtsecnoterequestqueue.h
sysstatemgmt/systemstatereferenceplugins/clayer/inc/strtsecphaseobserver.h
sysstatemgmt/systemstatereferenceplugins/clayer/inc/strtsecuritynotetype.h
sysstatemgmt/systemstatereferenceplugins/clayer/inc/strtsecuritystatus.h
sysstatemgmt/systemstatereferenceplugins/clayer/src/ssmsecurityeventobserver.cpp
sysstatemgmt/systemstatereferenceplugins/clayer/src/ssmsecuritynotecontroller.cpp
sysstatemgmt/systemstatereferenceplugins/clayer/src/ssmsimstatusobserver.cpp
sysstatemgmt/systemstatereferenceplugins/clayer/src/strtsecnoterequestqueue.cpp
sysstatemgmt/systemstatereferenceplugins/clayer/src/strtsecphaseobserver.cpp
sysstatemgmt/systemstatereferenceplugins/custcmd/inc/cmddevicesecuritycheck.h
sysstatemgmt/systemstatereferenceplugins/custcmd/inc/cmdsimsecuritycheck.h
sysstatemgmt/systemstatereferenceplugins/custcmd/inc/securitynoteobserver.h
sysstatemgmt/systemstatereferenceplugins/custcmd/inc/ssmrefcustomcmdcommon.h
sysstatemgmt/systemstatereferenceplugins/custcmd/inc/ssmsecuritychecknotifier.h
sysstatemgmt/systemstatereferenceplugins/custcmd/inc/swppolicy_simstatus.h
sysstatemgmt/systemstatereferenceplugins/custcmd/src/cmddevicesecuritycheck.cpp
sysstatemgmt/systemstatereferenceplugins/custcmd/src/cmdsimsecuritycheck.cpp
sysstatemgmt/systemstatereferenceplugins/custcmd/src/securitynoteobserver.cpp
sysstatemgmt/systemstatereferenceplugins/custcmd/src/ssmsecuritychecknotifier.cpp
sysstatemgmt/systemstatereferenceplugins/custcmd/src/swppolicy_simstatus.cpp
sysstatemgmt/systemstatereferenceplugins/localinc/ssmpanic.h
sysstatemgmt/systemstatereferenceplugins/test/tclayer/group/tclayer_server.mmp
sysstatemgmt/systemstatereferenceplugins/test/tintcustcmd/group/101F8762.txt
sysstatemgmt/systemstatereferenceplugins/test/tunitcustcmd/group/101F8762.txt
sysstatemgmt/systemstatereferenceplugins/test/tunitcustcmd/inc/tcmd_step_publishstartupmode.h
sysstatemgmt/systemstatereferenceplugins/test/tunitcustcmd/scripts/ssrefpluginstest_custcmd_publishstartupmode.script
sysstatemgmt/systemstatereferenceplugins/test/tunitcustcmd/src/tcmd_server.cpp
sysstatemgmt/systemstatereferenceplugins/test/tunitcustcmd/src/tcmd_step_publishstartupmode.cpp
sysstatemgmt/tsrc/public/basic/group/mt_rstartersession.mmp
sysstatemgmt/tsrc/public/basic/mt_rstartersession/MT_RStarterSession.cpp
sysstatemgmt/tsrc/public/basic/mt_rstartersession/MT_RStarterSession.h
--- a/accessoryservices/accessoryserver/src/ASYProxy/ASYProxyCommandObserver.cpp	Tue Feb 02 00:53:00 2010 +0200
+++ b/accessoryservices/accessoryserver/src/ASYProxy/ASYProxyCommandObserver.cpp	Fri Mar 19 09:58:42 2010 +0200
@@ -438,34 +438,34 @@
     TInt trId = iAsyProxyTRRecord->TrId();
     DoDestroy( trId );
 
-    //Reset buffer
-    iObjectBuf->Reset();    
-    if ( ECmdGetObjectValue == iAsyProxyTRRecord->CmdId() )	
-        {
-        iObjectBuf->ResizeL( KAccSrvObjectBaseStreamBufMaxSize );
-        //Externalize aValue to aBuf
-        RBufWriteStream wStrm;    
-        (void) wStrm.Open( *iObjectBuf );
-        CleanupClosePushL( wStrm );    
-        aObjectCon.ExternalizeL( wStrm );
-        wStrm.CommitL();         
-        CleanupStack::PopAndDestroy( &wStrm );
-       }
-       else
-       {
-        COM_TRACE_( "[AccFW:AsyProxy] CASYProxyCommandObserver::DoProcessResponseL() - Nothing do to!");
-       }
-    
-    // Release allocated buffer
     if ( iObjectBuf )
         {
+		    //Reset buffer
+		    iObjectBuf->Reset();    
+		    if ( ECmdGetObjectValue == iAsyProxyTRRecord->CmdId() )	
+		        {
+		        iObjectBuf->ResizeL( KAccSrvObjectBaseStreamBufMaxSize );
+		        //Externalize aValue to aBuf
+		        RBufWriteStream wStrm;    
+		        (void) wStrm.Open( *iObjectBuf );
+		        CleanupClosePushL( wStrm );    
+		        aObjectCon.ExternalizeL( wStrm );
+		        wStrm.CommitL();         
+		        CleanupStack::PopAndDestroy( &wStrm );
+		       }
+		       else
+		       {
+		        COM_TRACE_( "[AccFW:AsyProxy] CASYProxyCommandObserver::DoProcessResponseL() - Nothing do to!");
+		       }
+		    
+		    // Release allocated buffer
         TPtr8 ptr( iObjectBuf->Ptr(0) );   
         iAsyProxyCommsSrvc->iAsyComms.ProcessResponse( trId, 
                                                        &ptr,
                                                        aErrCode ); 
         delete iObjectBuf;
-    	iObjectBuf = NULL;
-        }
+    	  iObjectBuf = NULL;
+		    }
     else
         {
         iAsyProxyCommsSrvc->iAsyComms.ProcessResponse( trId, 
--- a/accessoryservices/accessoryserver/src/ASYProxy/ASYProxyCommsService.cpp	Tue Feb 02 00:53:00 2010 +0200
+++ b/accessoryservices/accessoryserver/src/ASYProxy/ASYProxyCommsService.cpp	Fri Mar 19 09:58:42 2010 +0200
@@ -141,10 +141,10 @@
     {
     COM_TRACE_( "[AccFW:AsyProxy] CASYProxyCommsService::~CASYProxyCommsService()" );
 
-    Destroy( KDeleteAllRecords );
-
     if ( iAsyProxyCommsStack )
         {
+        Destroy( KDeleteAllRecords );
+
         delete iAsyProxyCommsStack;
         iAsyProxyCommsStack = 0;
         }
--- a/accessoryservices/accessoryserver/src/ChargerContext/ChargingContextFSMBody.cpp	Tue Feb 02 00:53:00 2010 +0200
+++ b/accessoryservices/accessoryserver/src/ChargerContext/ChargingContextFSMBody.cpp	Fri Mar 19 09:58:42 2010 +0200
@@ -78,7 +78,7 @@
             }
         }
     // Delete state objects
-    for (TInt i = 1; i <= EChargerContextStateMaxValue; i++ )
+    for (TInt i = 1; i < EChargerContextStateMaxValue; i++ )
         {
         delete iStateArray[i];
         iStateArray[i] = NULL;
@@ -111,7 +111,7 @@
     COM_TRACE_( "[AccFW:AccServer] CChargingContextFSMBody::Transit()" );
     TBool retVal(EFalse);
     if ( ( EChargerContextStateUndefined < aNextState ) && 
-         (  EChargerContextStateMaxValue >= aNextState ) )
+         (  EChargerContextStateMaxValue > aNextState ) )
         {
         iCurrentStateId = aNextState;
         if ( NULL != iStateArray[iCurrentStateId])
@@ -173,7 +173,7 @@
     COM_TRACE_( "[AccFW:AccServer] CChargingContextFSMBody::CurrentState()" );
     MFSMState* currentState( NULL );
     if ( ( EChargerContextStateUndefined < iCurrentStateId ) && 
-            ( EChargerContextStateMaxValue >= iCurrentStateId ))
+            ( EChargerContextStateMaxValue > iCurrentStateId ))
         {
         currentState = iStateArray[iCurrentStateId];
         }
@@ -191,7 +191,7 @@
     TPtrC currentStateName;
     currentStateName.Set( KNullDesC );
     if ( ( EChargerContextStateUndefined < iCurrentStateId ) && 
-         ( EChargerContextStateMaxValue >= iCurrentStateId ))
+         ( EChargerContextStateMaxValue > iCurrentStateId ))
         {
         currentStateName.Set( iStateArray[iCurrentStateId]->Name() );
         }
--- a/accessoryservices/accessoryserver/src/Server/AccSrvConnectionController.cpp	Tue Feb 02 00:53:00 2010 +0200
+++ b/accessoryservices/accessoryserver/src/Server/AccSrvConnectionController.cpp	Fri Mar 19 09:58:42 2010 +0200
@@ -796,7 +796,6 @@
 			    case EAccModeLoopset:
 			    case EAccModeMusicStand:
 			    case EAccModeTVOut:
-			    case EAccModeHDMI:
 			    case EAccModeHeadphones:
 			    {
 				  TAccPolGenericID genericID;
--- a/accessoryservices/accessoryserver/src/Server/AccSrvSubBTControl.cpp	Tue Feb 02 00:53:00 2010 +0200
+++ b/accessoryservices/accessoryserver/src/Server/AccSrvSubBTControl.cpp	Fri Mar 19 09:58:42 2010 +0200
@@ -408,6 +408,8 @@
             TPckg<TBTDevAddr> BTDevAddrPckg( BTDevAddr );
             
             aMessage.ReadL( KAccServParamPosFirst, BTDevAddrPckg );
+			// coverity[check_return]
+			// coverity[unchecked_value]
             iServerModel->FindWithDeviceAddressL( MakeTUint64( BTDevAddr ), uniqueID );
             iConnectionController->NotificationQueue().CompleteControlMessageL(
                 EBluetoothAudioLinkOpenReq, KErrNone, uniqueID );
--- a/accessoryservices/pluggeddisplay/edidparser/bwins/edidparseru.def	Tue Feb 02 00:53:00 2010 +0200
+++ b/accessoryservices/pluggeddisplay/edidparser/bwins/edidparseru.def	Fri Mar 19 09:58:42 2010 +0200
@@ -54,4 +54,5 @@
 	?GetInterlacedAudioLatency@CCea861EdidParser@@QAEEXZ @ 53 NONAME ; unsigned char CCea861EdidParser::GetInterlacedAudioLatency(void)
 	?GetInterlacedVideoLatency@CCea861EdidParser@@QAEEXZ @ 54 NONAME ; unsigned char CCea861EdidParser::GetInterlacedVideoLatency(void)
 	?GetStandardTimings@CEdidParserBase@@QAEEH@Z @ 55 NONAME ; unsigned char CEdidParserBase::GetStandardTimings(int)
+	?HasIEEERegistration@CCea861EdidParser@@QAEHXZ @ 56 NONAME ; int CCea861EdidParser::HasIEEERegistration(void)
 
--- a/accessoryservices/pluggeddisplay/edidparser/eabi/edidparseru.def	Tue Feb 02 00:53:00 2010 +0200
+++ b/accessoryservices/pluggeddisplay/edidparser/eabi/edidparseru.def	Fri Mar 19 09:58:42 2010 +0200
@@ -56,4 +56,5 @@
 	_ZTI17CCea861EdidParser @ 55 NONAME ; #<TI>#
 	_ZTV17CCea861EdidParser @ 56 NONAME ; #<VT>#
 	_ZN15CEdidParserBase18GetStandardTimingsEi @ 57 NONAME
+	_ZN17CCea861EdidParser19HasIEEERegistrationEv @ 58 NONAME
 
--- a/accessoryservices/pluggeddisplay/edidparser/inc/cea861edidparser.h	Tue Feb 02 00:53:00 2010 +0200
+++ b/accessoryservices/pluggeddisplay/edidparser/inc/cea861edidparser.h	Fri Mar 19 09:58:42 2010 +0200
@@ -156,6 +156,14 @@
     IMPORT_C TBool IsVendorSpecificDataBlockSupported();        
     
     /**
+     * Indicates whether the sink has IEEE registration or not in the vendor specific data block
+     *
+     * @param   none
+     * @return  true/false
+     */
+    IMPORT_C TBool HasIEEERegistration();        
+    
+    /**
      * Indicates whether or not Speaker Allocation Data Block is supported
      *
      *
--- a/accessoryservices/pluggeddisplay/edidparser/src/cea861ediddatatypes.cpp	Tue Feb 02 00:53:00 2010 +0200
+++ b/accessoryservices/pluggeddisplay/edidparser/src/cea861ediddatatypes.cpp	Fri Mar 19 09:58:42 2010 +0200
@@ -205,26 +205,15 @@
     // delete all descriptor blocks
     while( iDescriptorBlocks )
         {
-        TCEA861TEdidDescriptorBlockList* prev = iDescriptorBlocks;
-        TCEA861TEdidDescriptorBlockList* last = prev;
-        /* coverity[var_deref_op]*/
-        if( prev->iNext )
-            {
-            last = prev->iNext;
-            }
-        while( last->iNext ) // go to last block
-            {
-            prev = prev->iNext;
-            last = last->iNext;
-            }
-        prev->iNext = NULL;
-        if( last == iDescriptorBlocks )
-            {
-            iDescriptorBlocks = NULL;
-            prev = NULL;
-            }
-        delete last;
+        TCEA861TEdidDescriptorBlockList* node;
+        
+        node = iDescriptorBlocks;
+        iDescriptorBlocks = iDescriptorBlocks->iNext;
+        
+        delete node;
         }
+    iDescriptorBlocks = NULL;
+    
     }
 
 // End of file
--- a/accessoryservices/pluggeddisplay/edidparser/src/cea861edidparser.cpp	Tue Feb 02 00:53:00 2010 +0200
+++ b/accessoryservices/pluggeddisplay/edidparser/src/cea861edidparser.cpp	Fri Mar 19 09:58:42 2010 +0200
@@ -19,6 +19,8 @@
 #include "cea861edidparser.h"
 #include "trace.h"
 
+const TInt KIEEERegistrationID = 0x00000C03;
+
 // ======== LOCAL FUNCTIONS ========
 
 
@@ -300,6 +302,24 @@
     }
 
 // ----------------------------------------------------------------------------
+// CCea861EdidParser::HasIEEERegistration
+//
+// ----------------------------------------------------------------------------
+//
+EXPORT_C TBool CCea861EdidParser::HasIEEERegistration()
+    {
+    FUNC_LOG;
+
+	if ( iVendorSpecificDataBlockSupported && iParsedInfo->iVendorSpecificData &&
+		iParsedInfo->iVendorSpecificData->iIEEE24bitRegistrationIdentifier == KIEEERegistrationID )
+		{
+		return ETrue;
+		}
+
+    return EFalse;
+    }
+
+// ----------------------------------------------------------------------------
 // CCea861EdidParser::GetParsedInformation
 //
 // ----------------------------------------------------------------------------
@@ -577,6 +597,8 @@
         {
         return KErrOverflow;
         }
+        
+    TCEA861TEdidDescriptorBlockList* lastnode = iParsedInfo->iDescriptorBlocks;
 
     for( TInt index = aIndex; index < KEdidParserSizeOfEdidBlock; index++ )
         {
@@ -594,32 +616,21 @@
 
         if( aData[index] != KEdidPaddingByte ) // padding = 0x00
             {
-            // start of 18-byte descriptors: See section 3.10.2 of VESA E-EDID Standard [10]
-
-            TBool first = ETrue;
-            if( iParsedInfo->iDescriptorBlocks == 0 )
-                {
-                iParsedInfo->iDescriptorBlocks
-                    = new ( ELeave ) TCEA861TEdidDescriptorBlockList();
-                }
-
+            // start of 18-byte descriptors: See section 3.10.2 of E-EDID Standard [10]
             // read the descriptors here
             TEdidDescriptorBlock tmp = GetDescriptorBlock( aData, index );
-            if( first )
+			
+            if( iParsedInfo->iDescriptorBlocks == 0 )
                 {
-                first = EFalse;
-                iParsedInfo->iDescriptorBlocks->iData = tmp;
-                continue;
+                iParsedInfo->iDescriptorBlocks = new ( ELeave ) TCEA861TEdidDescriptorBlockList();
+                lastnode = iParsedInfo->iDescriptorBlocks;
                 }
-            TCEA861TEdidDescriptorBlockList* last =
-                iParsedInfo->iDescriptorBlocks;
-            while( last->iNext != 0 ) // go to last block
+            else
                 {
-                last = last->iNext;
+                lastnode->iNext = new ( ELeave ) TCEA861TEdidDescriptorBlockList();
+                lastnode = lastnode->iNext;
                 }
-            last->iNext = new ( ELeave ) TCEA861TEdidDescriptorBlockList();
-            last = last->iNext;
-            last->iData = tmp;
+            lastnode->iData = tmp;
             }
         else
             {
@@ -1482,7 +1493,7 @@
             ReadCea861SpeakerAllocationDataBlock( aData, aIndex, L1 );
             break;
         case 5:
-            //VESA DTC Data Block
+            //DTC Data Block
             ReadUnknownTagCode( aData, aIndex, L1 );
             break;
         case 6:
@@ -1509,10 +1520,6 @@
             // TODO: these should be read as well, not just as unknown
             ReadUnknownTagCode( aData, aIndex, L1 );
             break;
-        default:
-            // if tag-code is unknown, we still must read through it
-            ReadUnknownTagCode( aData, aIndex, L1 );
-            break;
         }
 
     return KErrNone;
--- a/accessoryservices/pluggeddisplay/pluggeddisplayengine/src/edidhandler.cpp	Tue Feb 02 00:53:00 2010 +0200
+++ b/accessoryservices/pluggeddisplay/pluggeddisplayengine/src/edidhandler.cpp	Fri Mar 19 09:58:42 2010 +0200
@@ -291,7 +291,86 @@
 
                     // Set audio format
                     TUid audioFormat;
-                    audioFormat.iUid = audioDataBlock->iAudioFormatCode;
+                    // Map the audio format code defined in 
+                    // cea861ediddatatypes.h to accpolhdmiaudioformat.h
+                    switch ( audioDataBlock->iAudioFormatCode )
+                        {
+                        case KAudioFormatCodePCM:
+                            {
+                            audioFormat = HdmiAudioFormat::KUidFormatPCM16;
+                            break;
+                            }
+                        case KAudioFormatCodeAC3:
+                            {
+                            audioFormat = HdmiAudioFormat::KUidFormatAC3;
+                            break;
+                            }
+                        case KAudioFormatCodeMPEG1:
+                            {
+                            audioFormat = HdmiAudioFormat::KUidFormatMPEG1;
+                            break;
+                            }
+                        case KAudioFormatCodeMP3:
+                            {
+                            audioFormat = HdmiAudioFormat::KUidFormatMP3;
+                            break;
+                            }
+                        case KAudioFormatCodeMPEG2:
+                            {
+                            audioFormat = HdmiAudioFormat::KUidFormatMPEG2;
+                            break;
+                            }
+                        case KAudioFormatCodeAACLC:
+                            {
+                            audioFormat = HdmiAudioFormat::KUidFormatAACLC;
+                            break;
+                            }
+                        case KAudioFormatCodeDTS:
+                            {
+                            audioFormat = HdmiAudioFormat::KUidFormatDTS;
+                            break;
+                            }
+                        case KAudioFormatCodeATRAC:
+                            {
+                            audioFormat = HdmiAudioFormat::KUidFormatATRAC;
+                            break;
+                            }
+                        case KAudioFormatCodeDSD:
+                            {
+                            audioFormat = HdmiAudioFormat::KUidFormatDSD;
+                            break;
+                            }
+                        case KAudioFormatCodeEAC3:
+                            {
+                            audioFormat = HdmiAudioFormat::KUidFormatEAC3;
+                            break;
+                            }
+                        case KAudioFormatCodeDTSHD:
+                            {
+                            audioFormat = HdmiAudioFormat::KUidFormatDTSHD;
+                            break;
+                            }
+                        case KAudioFormatCodeMLP:
+                            {
+                            audioFormat = HdmiAudioFormat::KUidFormatMLP;
+                            break;
+                            }
+                        case KAudioFormatCodeDST:
+                            {
+                            audioFormat = HdmiAudioFormat::KUidFormatDST;
+                            break;
+                            }
+                        case KAudioFormatCodeWMAPRO:
+                            {
+                            audioFormat = HdmiAudioFormat::KUidFormatWMAPRO;
+                            break;
+                            }
+                        default:
+                            {
+                            audioFormat.iUid = KAudioFormatCodeNA;
+                            break;
+                            }
+                        }
                     hdmiAudioFormat->SetAudioFormat( audioFormat ); // const TUid aAudioFormat,
 
                     // Set bit resolution
@@ -1334,24 +1413,45 @@
 
 			availableIndex++;
 			}
-		
-		    if( ( (KDefaultCEAModePhysImgAspRatioNr == iEdidParserPtr->GetAspectRatioLandscape()) 
-		            && (KDefaultCEAModePhysImgAspRatioDr == iEdidParserPtr->GetAspectRatioPortrait()) ) 
-		            && !defaultCEAmode )		    
 
+			// If the Vendor Specific Data Block supported and it has IEEE registration number then it is HDMI
+			if ( iExtensionParserPtr && iExtensionParserPtr->IsVendorSpecificDataBlockSupported() && iExtensionParserPtr->HasIEEERegistration() )
 			{
-            THdmiDviTimings timings;
-            
-            // Get a timing item for default CEA Mode (1)
-            const TTimingItem* item = TimingByIndex( KDefaultCEAModeIndex, ETimingModeCEA );
-            if( item )
-                {
-                Mem::FillZ( ( TAny* )&timings, sizeof( timings ) );
-                FillHdmiDviTimings( *item, timings );
-                retVal = aHdmiConfigs.Append( timings );
-                ERROR( retVal, "Failed to append CEA timing in available config array" );
-                }
-			}
+			    INFO( "<<<<<<<<<<<<<<It is HDMI connector>>>>>>>>>>>>>>" );
+				// Add default CEA mode 1 to the list if it is not there already
+			    if( ( (KDefaultCEAModePhysImgAspRatioNr == iEdidParserPtr->GetAspectRatioLandscape()) 
+			            && (KDefaultCEAModePhysImgAspRatioDr == iEdidParserPtr->GetAspectRatioPortrait()) ) 
+			            && !defaultCEAmode )		    
+	
+				{
+	            THdmiDviTimings timings;
+	            
+	            // Get a timing item for default CEA Mode (1)
+	            const TTimingItem* item = TimingByIndex( KDefaultCEAModeIndex, ETimingModeCEA );
+	            if( item )
+	                {
+	                Mem::FillZ( ( TAny* )&timings, sizeof( timings ) );
+	                FillHdmiDviTimings( *item, timings );
+	                retVal = aHdmiConfigs.Append( timings );
+	                ERROR( retVal, "Failed to append CEA timing in available config array" );
+	                }
+				}
+		    }
+		    else // It is DVI connector
+		    {
+				TInt modecount = aHdmiConfigs.Count();
+				
+				INFO( "<<<<<<<<<<<<<<It is DVI connector>>>>>>>>>>>>>>" );
+				while( modecount-- )
+				  {
+					// Change it to DVI mode as it is existing in both Supported and available configurations
+					aHdmiConfigs[ modecount ].iConnector = TTvSettings::EDVI;
+					
+					// Version should be zeroed for non-HDMI
+					aHdmiConfigs[ modecount ].iTvHdmiVersion = 0;
+					aHdmiConfigs[ modecount ].iTvHdmiRevision = 0;			  
+				  }
+		    }
 
 		INFO( "Filtered list -- END" );
 		supportedModes.Close();
--- a/accessoryservices/remotecontrolfw/client/intermediate/src/interfaceselector.cpp	Tue Feb 02 00:53:00 2010 +0200
+++ b/accessoryservices/remotecontrolfw/client/intermediate/src/interfaceselector.cpp	Fri Mar 19 09:58:42 2010 +0200
@@ -1,4 +1,4 @@
-// Copyright (c) 2004-2009 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"
@@ -431,6 +431,7 @@
 		{
 		delete iTargetSession;
 		iTargetSession = NULL;
+		LEAVEL(err);
 		}
 	}
 
@@ -485,6 +486,7 @@
 		{
 		delete iTargetSession;
 		iTargetSession = NULL;
+		LEAVEL(err);
 		}
 	}
 
--- a/accessoryservices/tspclientmapper/tsrc/public/basic/tspclienttestmodule/init/tspclienttestmodule.ini	Tue Feb 02 00:53:00 2010 +0200
+++ b/accessoryservices/tspclientmapper/tsrc/public/basic/tspclienttestmodule/init/tspclienttestmodule.ini	Fri Mar 19 09:58:42 2010 +0200
@@ -1,8 +1,8 @@
 #
-# 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 the License "Eclipse Public License v1.0"
+# under the terms of "Eclipse Public License v1.0"
 # which accompanies this distribution, and is available
 # at the URL "http://www.eclipse.org/legal/epl-v10.html".
 #
--- a/commonservices/PlatformEnv/data/estart_mds.txt	Tue Feb 02 00:53:00 2010 +0200
+++ b/commonservices/PlatformEnv/data/estart_mds.txt	Fri Mar 19 09:58:42 2010 +0200
@@ -1,18 +1,21 @@
+# ============================================================================
+#  Name      estart_mds.txt
+#  Part of   
 #
-# Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
-# All rights reserved.
-# This component and the accompanying materials are made available
-# under the terms of "Eclipse Public License v1.0"
-# which accompanies this distribution, and is available
-# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#  Description
+#     MDS Drive mappings that override default Symbian mappings
+#  Version
 #
-# Initial Contributors:
-# Nokia Corporation - initial contribution.
-#
-# Contributors:
-#
-# Description: 
-#
+#  Copyright (C) 2007 Nokia Corporation.
+#  This material, including documentation and any related 
+#  computer programs, is protected by copyright controlled by 
+#  Nokia Corporation. All rights are reserved. Copying, 
+#  including reproducing, storing,  adapting or translating, any 
+#  or all of this material requires the prior written consent of 
+#  Nokia Corporation. This material also contains confidential 
+#  information which may not be disclosed to others without the 
+#  prior written consent of Nokia Corporation.
+# ============================================================================
 
 
 E:  1  EFAT32  FAT   0       FS_FORMAT_CORRUPT                      # MEMORYCARD 1 Partition 0
--- a/commonservices/PlatformEnv/data/estart_mds_ms.txt	Tue Feb 02 00:53:00 2010 +0200
+++ b/commonservices/PlatformEnv/data/estart_mds_ms.txt	Fri Mar 19 09:58:42 2010 +0200
@@ -1,18 +1,21 @@
+# ============================================================================
+#  Name      estart_mds_ms.txt
+#  Part of   
 #
-# Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
-# All rights reserved.
-# This component and the accompanying materials are made available
-# under the terms of "Eclipse Public License v1.0"
-# which accompanies this distribution, and is available
-# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#  Description
+#     MDS Drive mappings that override default Symbian mappings
+#  Version
 #
-# Initial Contributors:
-# Nokia Corporation - initial contribution.
-#
-# Contributors:
-#
-# Description: 
-#
+#  Copyright (C) 2008 Nokia Corporation.
+#  This material, including documentation and any related 
+#  computer programs, is protected by copyright controlled by 
+#  Nokia Corporation. All rights are reserved. Copying, 
+#  including reproducing, storing,  adapting or translating, any 
+#  or all of this material requires the prior written consent of 
+#  Nokia Corporation. This material also contains confidential 
+#  information which may not be disclosed to others without the 
+#  prior written consent of Nokia Corporation.
+# ============================================================================
 
 
 E:  1  EFAT32  FAT   0       FS_FORMAT_CORRUPT                      # MEMORYCARD 1 Partition 0
--- a/commonservices/PlatformEnv/disknotifyhandler/tsrc/disknotifyhandlertest/init/disknotifyhandlertest.ini	Tue Feb 02 00:53:00 2010 +0200
+++ b/commonservices/PlatformEnv/disknotifyhandler/tsrc/disknotifyhandlertest/init/disknotifyhandlertest.ini	Fri Mar 19 09:58:42 2010 +0200
@@ -1,3 +1,15 @@
+# Copyright (c) 2009-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:
+#
 #
 # This is STIFTestFramework initialization file
 # Comment lines start with '#'-character.
--- a/commonservices/PlatformEnv/platformver/tsrc/platformvertest/init/platformvertest.ini	Tue Feb 02 00:53:00 2010 +0200
+++ b/commonservices/PlatformEnv/platformver/tsrc/platformvertest/init/platformvertest.ini	Fri Mar 19 09:58:42 2010 +0200
@@ -1,8 +1,8 @@
 #
-# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
+# Copyright (c) 2009-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"
+# under the terms of "Eclipse Public License v1.0"
 # which accompanies this distribution, and is available
 # at the URL "http://www.eclipse.org/legal/epl-v10.html".
 #
--- a/commonservices/PlatformEnv/sysversioninfo/tsrc/sysutiltests/init/sysutiltests.ini	Tue Feb 02 00:53:00 2010 +0200
+++ b/commonservices/PlatformEnv/sysversioninfo/tsrc/sysutiltests/init/sysutiltests.ini	Fri Mar 19 09:58:42 2010 +0200
@@ -1,8 +1,8 @@
 #
-# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
+# Copyright (c) 2009-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"
+# under the terms of "Eclipse Public License v1.0"
 # which accompanies this distribution, and is available
 # at the URL "http://www.eclipse.org/legal/epl-v10.html".
 #
--- a/commonservices/PlatformEnv/tsrc/platformenvtest/init/platformenvtest.ini	Tue Feb 02 00:53:00 2010 +0200
+++ b/commonservices/PlatformEnv/tsrc/platformenvtest/init/platformenvtest.ini	Fri Mar 19 09:58:42 2010 +0200
@@ -1,8 +1,8 @@
 #
-# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
+# Copyright (c) 2009-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"
+# under the terms of "Eclipse Public License v1.0"
 # which accompanies this distribution, and is available
 # at the URL "http://www.eclipse.org/legal/epl-v10.html".
 #
--- a/devicesrv_pub/common_platform_security_definitions_api/inc/data_caged_locations.mk	Tue Feb 02 00:53:00 2010 +0200
+++ b/devicesrv_pub/common_platform_security_definitions_api/inc/data_caged_locations.mk	Fri Mar 19 09:58:42 2010 +0200
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2002-2005 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"
@@ -44,4 +44,5 @@
 
 DC_BOOTDATA_DIR=\resource\bootdata
 DC_SKINS_DIR=\private\10207114
+DC_QT_TRANSLATIONS_DIR=\resource\qt\translations
 
--- a/devicesrv_pub/common_platform_security_definitions_api/inc/data_caging_path_literals.hrh	Tue Feb 02 00:53:00 2010 +0200
+++ b/devicesrv_pub/common_platform_security_definitions_api/inc/data_caging_path_literals.hrh	Fri Mar 19 09:58:42 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002-2004 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"
@@ -58,6 +58,7 @@
 _LIT(KDC_WINDOW_SERVER_INI_DIR,"\\private\\10003b20\\");          //  Window server INI
 _LIT(KDC_SKINS_DIR,"\\private\\10207114\\");         		  //  Skins
 _LIT(KDC_BOOTDATA_DIR,"\\resource\\bootdata\\");         	  //  Bootdata
+_LIT(KDC_QT_TRANSLATIONS_DIR,"\\resource\\qt\\translations\\");   //Qt Localization
 
 #endif
 
--- a/devicesrv_pub/common_platform_security_definitions_api/inc/data_caging_paths.hrh	Tue Feb 02 00:53:00 2010 +0200
+++ b/devicesrv_pub/common_platform_security_definitions_api/inc/data_caging_paths.hrh	Fri Mar 19 09:58:42 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002-2009 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"
@@ -57,6 +57,7 @@
 #define  WINDOW_SERVER_INI_DIR   private/10003b20
 #define  SKINS_DIR               private/10207114
 #define  BOOTDATA_DIR            resource/bootdata
+#define  QT_TRANSLATIONS_DIR     resource/qt/translations
 
 #endif
 
--- a/devicesrv_pub/common_platform_security_definitions_api/inc/data_caging_paths_for_iby.hrh	Tue Feb 02 00:53:00 2010 +0200
+++ b/devicesrv_pub/common_platform_security_definitions_api/inc/data_caging_paths_for_iby.hrh	Fri Mar 19 09:58:42 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002-2009 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"
@@ -57,7 +57,7 @@
 define  WINDOW_SERVER_INI_DIR   private/10003b20
 define  SKINS_DIR               private/10207114
 define  BOOTDATA_DIR            resource/bootdata
-
+define  QT_TRANSLATIONS_DIR     resource/qt/translations
 
 #endif
 
--- a/devicesrv_pub/common_platform_security_definitions_api/inc/data_caging_paths_strings.hrh	Tue Feb 02 00:53:00 2010 +0200
+++ b/devicesrv_pub/common_platform_security_definitions_api/inc/data_caging_paths_strings.hrh	Fri Mar 19 09:58:42 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002-2004 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"
@@ -57,5 +57,6 @@
 #define  WINDOW_SERVER_INI_DIR   "\\private\\10003b20"
 #define  SKINS_DIR               "\\private\\10207114"
 #define  BOOTDATA_DIR            "\\resource\\bootdata"
+#define  QT_TRANSLATIONS_DIR     "\\resource\\qt\\translations"
 
 #endif
--- a/mediator/tsrc/public/basic/group/MediatorTest.pkg	Tue Feb 02 00:53:00 2010 +0200
+++ b/mediator/tsrc/public/basic/group/MediatorTest.pkg	Fri Mar 19 09:58:42 2010 +0200
@@ -28,3 +28,6 @@
 
 "\epoc32\release\armv5\urel\mediatortest.dll"-"c:\sys\bin\mediatortest.dll"
 "..\init\mediatortest.ini"-"c:\testframework\mediatortest.ini"
+"\epoc32\release\armv5\urel\MediatorTestPlugin.dll"-"c:\sys\bin\MediatorTestPlugin.dll"
+"\epoc32\data\z\resource\plugins\MediatorTestPlugin.rsc"-"c:\data\z\resource\plugins\MediatorTestPlugin.rsc"
+"\epoc32\data\z\private\10207449\events\StaticEvents.rsc"-"c:\data\z\private\10207449\events\StaticEvents.rsc"
--- a/psmservices/psmserver/src/engine/psmbackupstorage.cpp	Tue Feb 02 00:53:00 2010 +0200
+++ b/psmservices/psmserver/src/engine/psmbackupstorage.cpp	Fri Mar 19 09:58:42 2010 +0200
@@ -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"
@@ -194,6 +194,7 @@
     // Search correct set item for aKey
     TBool setFound( EFalse );
     RXmlEngNodeList<TXmlEngElement> nodeList;
+    CleanupClosePushL(nodeList);
     aConfigSet.GetElementsByTagNameL(nodeList, KPsmSetItem);
     TXmlEngElement setItem = nodeList.Next().AsElement();       
 
@@ -205,7 +206,7 @@
 
         if ( aKey == setItemKey )
             {
-            // Set found, no need to loop anumore
+            // Set found, no need to loop any more
             setFound = ETrue;
             }
         else
@@ -214,7 +215,8 @@
             setItem = nodeList.Next().AsElement();            
             }
         }
-
+        
+    CleanupStack::PopAndDestroy(&nodeList);
     if ( !setFound )
         {
         COMPONENT_TRACE( ( _L( "PSM Server - CPsmBackupStorage::FindSetItemL() - Not found id:%i, LEAVE" ), aKey ) );
--- a/psmservices/psmserver/src/engine/psmstorage.cpp	Tue Feb 02 00:53:00 2010 +0200
+++ b/psmservices/psmserver/src/engine/psmstorage.cpp	Fri Mar 19 09:58:42 2010 +0200
@@ -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"
@@ -112,6 +112,7 @@
     TBool setFound( EFalse );
     TXmlEngElement settings;
     RXmlEngNodeList<TXmlEngElement> nodeList;   
+    CleanupClosePushL(nodeList);
 
     if ( iStorageRoot.NotNull() )
         {
@@ -141,7 +142,7 @@
             settings = nodeList.Next().AsElement();            
             }
         }
-
+    CleanupStack::PopAndDestroy(&nodeList);
     if ( !setFound )
         {
         COMPONENT_TRACE( ( _L( "PSM Server - CPsmStorage::FindConfigurationSet() - Mode not found: %i, LEAVE" ), aMode ) );
@@ -166,6 +167,7 @@
 
     // Get first setElemens
     RXmlEngNodeList<TXmlEngElement> nodeList;
+    CleanupClosePushL(nodeList);
     settings.GetElementsByTagNameL(nodeList, KPsmSetItem);
     TXmlEngElement setElement = nodeList.Next().AsElement();
 
@@ -207,7 +209,7 @@
         // handle next element set
         setElement = nodeList.Next().AsElement();
         }
-
+    CleanupStack::PopAndDestroy(&nodeList);
     COMPONENT_TRACE( ( _L( "PSM Server - CPsmStorage::CreateConfigArrayL() - return" ) ) );
     }
 
@@ -227,6 +229,7 @@
 
     // Get first setElemens
     RXmlEngNodeList<TXmlEngElement> nodeList;
+    CleanupClosePushL(nodeList);
     settings.GetElementsByTagNameL(nodeList, KPsmSetItem);
     TXmlEngElement setElement = nodeList.Next().AsElement();
 
@@ -287,6 +290,7 @@
         setElement = nodeList.Next().AsElement();
         }
 
+    CleanupStack::PopAndDestroy(&nodeList);
     COMPONENT_TRACE( ( _L( "PSM Server - CPsmStorage::GetConfigurationL() - return" ) ) );
     }
 
--- a/psmservices/psmserver/tsrc/PsmTestModule/group/PsmTestModule.pkg	Tue Feb 02 00:53:00 2010 +0200
+++ b/psmservices/psmserver/tsrc/PsmTestModule/group/PsmTestModule.pkg	Fri Mar 19 09:58:42 2010 +0200
@@ -29,3 +29,11 @@
 "..\conf\PsmTestModule.cfg"-"c:\testframework\PsmTestModule.cfg"
 "..\init\PsmTestModule_armi.ini"-"c:\testframework\PsmTestModule_armi.ini"
 
+;data files
+
+"\epoc32\data\z\private\2000B187\10200EE1.xml"-"c:\private\2000B187\10200EE1.xml"
+"\epoc32\data\z\private\2000B187\10200EE2.xml"-"c:\private\2000B187\10200EE2.xml"
+"\epoc32\data\z\private\2000B187\10200EE4.xml"-"c:\private\2000B187\10200EE4.xml"
+"\epoc32\data\z\private\2000B187\10200EE5.xml"-"c:\private\2000B187\10200EE5.xml"
+"\epoc32\data\z\private\2000B187\cenrep\10200EE3.xml"-"c:\private\2000B187\cenrep\10200EE3.xml"
+"\epoc32\data\z\private\10202BE9\10200EE3.txt"-"c:\private\10202BE9\10200EE3.txt"
\ No newline at end of file
Binary file sensorservices/sensorserver/tsrc/sensorsrvtest/SensorTestModule/cenrepsample/1020507E.txt has changed
Binary file sensorservices/sensorserver/tsrc/sensorsrvtest/SensorTestModule/cenrepsample/10282DEE.txt has changed
Binary file sensorservices/sensorserver/tsrc/sensorsrvtest/SensorTestModule/cenrepsample/sensorframework.confml has changed
Binary file sensorservices/sensorserver/tsrc/sensorsrvtest/SensorTestModule/cenrepsample/sensorframework_10282DEE.crml has changed
--- a/sensorservices/sensorserver/tsrc/sensorsrvtest/SensorTestModule/group/bld.inf	Tue Feb 02 00:53:00 2010 +0200
+++ b/sensorservices/sensorserver/tsrc/sensorsrvtest/SensorTestModule/group/bld.inf	Fri Mar 19 09:58:42 2010 +0200
@@ -27,15 +27,13 @@
 // NOTE: If using ARS requirements all export operations should be done under this.
 // 'abld test export'
 
+
+../cenrepsample/sensorframework.confml               OS_LAYER_CONFML(sensorframework.confml)
+../cenrepsample/sensorframework_10282DEE.crml 	     OS_LAYER_CRML(sensorframework_10282DEE.crml)
+
 ../../conf/SensorTestModule.cfg   /epoc32/winscw/c/testframework/SensorTestModule.cfg
 ../../init/SensorTestModule.ini   /epoc32/winscw/c/testframework/SensorTestModule.ini
-../cenrepsample/10282DEE.txt /epoc32/RELEASE/winscw/UDEB/Z/private/10202BE9/10282DEE.txt
-../cenrepsample/10282DEE.txt /epoc32/RELEASE/winscw/UREL/Z/private/10202BE9/10282DEE.txt
-../cenrepsample/10282DEE.txt /epoc32/data/Z/private/10202BE9/10282DEE_stub.txt
 
-../cenrepsample/1020507E.txt /epoc32/RELEASE/winscw/UDEB/Z/private/10202BE9/1020507E.txt
-../cenrepsample/1020507E.txt /epoc32/RELEASE/winscw/UREL/Z/private/10202BE9/1020507E.txt
-../cenrepsample/1020507E.txt /epoc32/data/Z/private/10202BE9/1020507E_stub.txt
 
 ../../rom/SensorServer_ats3.iby CORE_OS_LAYER_IBY_EXPORT_PATH(SensorServer_ats3.iby)
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sensorservices/sensorserver/tsrc/sensorsrvtest/conf/SensorTestModule_OOM.cfg	Fri Mar 19 09:58:42 2010 +0200
@@ -0,0 +1,2953 @@
+/*
+* 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:  ?Description
+*
+*/
+
+
+// Publish&Subscribe definitions
+// From SensrvInternalPSKeys.h
+[Define]
+KSensrvLeaveFirstStubConstruction 1
+KSensrvLeaveSecondStubConstruction 2
+KSensrvStubConstructionDelay 3
+KSensrvFirstStubChannelCount 4
+KSensrvSecondStubChannelCount 5
+KSensrvLatestOpenedChannel 6
+KSensrvLatestClosedChannel 7
+KSensrvLatestStartListeningChannel 8
+KSensrvLatestStopListeningChannel 9
+KSensrvSamplingInterval 10
+KSensrvStubConstructionJam 11
+KSensrvStartListeningJam 12
+KSensrvStopListeningJam 13
+KSensrvOpenChannelAsyncJam 14
+KSensrvCloseChannelAsyncJam 15
+KSensrvChannelOpenedError 16
+KSensrvChannelClosedError 17
+KSensrvStartListeningLeave 18
+KSensrvStopListeningLeave 19
+KSensrvDataListeningJam 20
+KSensrvDataListeningBufferFilledError 21
+KSensrvForceBufferFilledJam 22
+KSensrvForceBufferFilledLeave 23
+KSensrvOpenChannelMethodJam 24
+KSensrvCloseChannelMethodJam 25
+KSensrvOpenChannelError 26
+KSensrvCloseChannelError 27
+KSensrvChannelOpenedWithError 28
+KSensrvPropertyChanged 29
+KSensrvOpenChannelMethodPanic 30
+KSensrvOpenChannelAsyncPanic 31
+KSensrvCloseChannelMethodPanic 32
+KSensrvCloseChannelAsyncPanic 33
+KSensrvStartListeningMethodPanic 34
+KSensrvDataListeningPanic 35
+KSensrvStopListeningMethodPanic 36
+KSensrvStopListeningAsyncPanic 37
+KSensrvForceBufferFilledPanic 38
+KSensrvSSYUnloadingCount 39
+KSensrvBufferFilledNegativeCount 40
+KSensrvGetAllPropertyCount 41
+KSensrvGetPropertyLeave 42
+KSensrvGetPropertyJam 43
+KSensrvSetPropertyLeave 44
+KSensrvSetPropertyJam 45
+KSensrvGetAllPropertiesLeave 46
+KSensrvGetAllPropertiesJam 47
+KSensrvGetPropertyPanic 48;
+KSensrvSetPropertyPanic 49;
+KSensrvGetAllPropertiesPanic 50;
+KSensrvCheckPropertyDependenciesLeave 51
+KSensrvCheckPropertyDependenciesJam 52
+KSensrvCheckPropertyDependenciesPanic 53
+KSensrvGetDataOverflowTest 54
+KSensrvGetDataNotFoundTest 55
+KSensorTestModuleProcessCommand 56
+KSensrvSingleBufferFilledNegativeCount 57
+KSensrvCreateNewChannelsFirst 58
+KSensrvCreateNewChannelsSecond 59
+KSensrvRemoveNewChannelsFirst 60
+KSensrvRemoveNewChannelsSecond 61
+KSensrvRegisterZeroChannels 62
+KSensrvRegisterInvalidChannels 63
+KSensrvFirstStubDoubleTappingChannelCount 64
+KSensrvSetPropertyArray 65
+KSensrvCheckPluginLoaded 66
+
+KSensrvSignalAftedDataReseived 100
+KSensrvWaitTestCompletion 101
+
+KSensorTestModuleComplete1 200
+KSensorTestModuleComplete2 201
+KSensorTestModuleComplete3 202
+KSensorTestModuleComplete4 203
+KSensorTestModuleComplete5 204
+KSensorTestModuleComplete6 205
+KSensorTestModuleComplete7 206
+KSensorTestModuleComplete8 207
+KSensorTestModuleComplete9 208
+KSensorTestModuleComplete10 209 
+KSensorTestModuleComplete11 210 
+KSensorTestModuleComplete12 211 
+KSensorTestModuleComplete13 212 
+KSensorTestModuleComplete14 213 
+KSensorTestModuleComplete15 214
+
+// Errors
+KErrNotFound -1
+KErrGeneral -2
+KErrCancel -3
+KErrNoMemory -4
+KErrNotSupported -5
+KErrArgument -6
+KErrOverflow -9
+KErrAlreadyExists -11
+KErrPermissionDenied -46
+KErrAccessDenied -21
+
+ESensrvMinor 1
+ESensrvFatal 2
+
+// Property from sensrvgeneralproperties.h
+KSensrvPropIdDataRate 2
+KSensrvPropIdAvailability 4
+KSensrvPropIdMeasureRange 5
+KSensrvPropIdChannelScale 9
+KSensrvSensorDescription 19
+
+// Commands for test process (SensorTestModuleTypes.h)
+KProcessCommandSetProperty  1
+KProcessCommandOpenChannel  2
+KProcessCommandCloseChannel 3
+KProcessCommandFindChannel  4
+
+// Condition enumerations
+ESensrvOrConditionSet 0
+ESensrvAndConditionSet 1
+
+ESensrvSingleLimitCondition 0
+ESensrvRangeConditionLowerLimit 1
+ESensrvRangeConditionUpperLimit 2
+ESensrvBinaryCondition 3
+
+ESensrvOperatorEquals 0
+ESensrvOperatorGreaterThan 1
+ESensrvOperatorGreaterThanOrEquals 2
+ESensrvOperatorLessThan 3
+ESensrvOperatorLessThanOrEquals 4
+ESensrvOperatorBinaryAnd 5
+ESensrvOperatorBinaryAll 6
+
+KSensorTestModuleEventChannelType 519761901
+KSensrvChannelIdAccelerometerXYZAxisData 270553214
+KSensrvChannelTypeIdAccelerometerDoubleTappingData 270553217
+
+KSensrvAccelerometerDataItemSize 20
+KSensrvEventChannelDataItemSize 16
+KSensrvDoubleTappingDataItemSize 12
+
+iAxisX 1
+iAxisY 2
+iAxisZ 3
+
+iTimeStampFromEventPlugin 0
+iTimeStampFromAccelerometerPlugin 1
+
+iDirection 1
+
+KSensrvUncertainExpectedValue 99999999
+
+// Change types
+ESensrvChannelRemoved 1
+ESensrvChannelAdded 2
+
+// SetPropertyIndication types
+ESetPropertyIndicationUnknown 0
+ESetPropertyIndicationAvailable 1
+ESetPropertyIndicationPossible 2
+ESetPropertyIndicationUnavailable 3
+
+//OOM Testing
+KNumberToRepeatOOMTest 5
+[Enddefine]
+
+
+[StifSettings]
+// Add stif settings here
+CheckHeapBalance= on
+[EndStifSettings]
+
+[Test]
+title Check plugin loaded just once channel opened
+create SensorTestModule testClass
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+
+testClass ShutdownServer
+pause 2000
+testClass StartServer
+pause 2000
+testClass GetPSValue KSensrvCheckPluginLoaded 0
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass GetPSValue KSensrvCheckPluginLoaded 1
+testClass ShutdownServer
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+[Endtest] 
+
+[Test]
+title Open and Close two channels
+create SensorTestModule testClass
+create SensorTestModule testClass1
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass1 SetCompletedKey KSensorTestModuleComplete2
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass1 OpenChannel 0 0 0 0 0 First2 VendorFirst
+testClass1 CloseChannel
+testClass CloseChannel
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+delete testClass1
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest]
+
+
+
+[Test]
+title Start server without Ssystubs
+create SensorTestModule testClass
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass ShutdownServer
+testClass SetPSValue KSensrvLeaveFirstStubConstruction KErrNoMemory
+testClass SetPSValue KSensrvLeaveSecondStubConstruction KErrNoMemory
+testClass StartServer
+pause 3000
+testClass ShutdownServer
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+[Endtest] 
+
+[Test]
+title Start server with one Ssystub
+create SensorTestModule testClass
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass ShutdownServer
+testClass SetPSValue KSensrvLeaveFirstStubConstruction KErrNoMemory
+testClass StartServer
+pause 3000
+testClass ShutdownServer
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+[Endtest] 
+
+[Test]
+title Start server with two Ssystub
+create SensorTestModule testClass
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass ShutdownServer
+testClass StartServer
+pause 3000
+testClass ShutdownServer
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+[Endtest] 
+
+
+// Invalid because of new static channel registration
+/*
+[Test]
+title Start server with zero and one channel
+create SensorTestModule testClass
+testClass ShutdownServer
+testClass SetPSValue KSensrvFirstStubChannelCount 0
+testClass SetPSValue KSensrvSecondStubChannelCount 1
+testClass StartServer
+pause 3000
+testClass ShutdownServer
+delete testClass
+[Endtest] 
+*/
+
+
+[Test]
+title Create and destroy channel finder
+create SensorTestModule testClass
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass CreateAndDestroyChannelFinder
+testClass ShutdownServer
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+[Endtest] 
+
+[Test]
+title Create two channel finders
+create SensorTestModule testClass
+create SensorTestModule testClass1
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass1 SetCompletedKey KSensorTestModuleComplete2
+testClass CreateAndDestroyChannelFinder
+testClass1 CreateAndDestroyChannelFinder
+testClass ShutdownServer
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+delete testClass1
+[Endtest] 
+
+[Test]
+title Find channel: Find all channels
+create SensorTestModule testClass
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass FindChannels 0 0 0 0 0
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest] 
+
+[Test]
+title Find channel: Find one channel "First1 VendorFirst"
+create SensorTestModule testClass
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass FindChannels 0 0 0 0 0 First1 VendorFirst
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest] 
+
+[Test]
+title Find channels: Channel not found "Second1 VendorFirst"
+create SensorTestModule testClass
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass FindChannels 0 0 0 0 0 Second1 VendorFirst
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest] 
+
+[Test]
+title Find channels: Requery
+create SensorTestModule testClass
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass SetPSValue KSensrvFirstStubChannelCount 10
+testClass SetPSValue KSensrvSecondStubChannelCount 3
+testClass FindChannels 0 0 0 0 0
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest] 
+
+[Test]
+title Find channels: Ssystubs construction jam
+create SensorTestModule testClass
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass SetPSValue KSensrvStubConstructionJam 1
+testClass FindChannels 0 0 0 0 0
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest] 
+
+[Test]
+title Find channels: Ssystubs construction delay
+create SensorTestModule testClass
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass SetPSValue KSensrvStubConstructionDelay 5
+testClass FindChannels 0 0 0 0 0
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest] 
+
+[Test]
+title Find channels: Ssystubs construction delay(two client)
+create SensorTestModule testClass
+testClass SetCompletedKey KSensorTestModuleComplete1
+create SensorTestModule testClass1
+testClass1 SetCompletedKey KSensorTestModuleComplete2
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetPSValue KSensrvStubConstructionDelay 5
+testClass SetPSValue KSensrvWaitTestCompletion 0
+testClass FindChannels 0 0 0 0 0
+testClass1 SetPSValue KSensrvWaitTestCompletion 1
+testClass1 FindChannels 0 0 0 0 0
+testClass WaitCompletedKey
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+delete testClass1
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest] 
+
+[Test]
+title Find channels: Ssystubs construction delay(three client)
+create SensorTestModule testClass
+create SensorTestModule testClass1
+create SensorTestModule testClass2
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass1 SetCompletedKey KSensorTestModuleComplete2
+testClass2 SetCompletedKey KSensorTestModuleComplete3
+testClass SetPSValue KSensrvStubConstructionDelay 5
+testClass SetPSValue KSensrvWaitTestCompletion 0
+testClass FindChannels 0 0 0 0 0
+testClass1 FindChannels 0 0 0 0 0
+testClass2 SetPSValue KSensrvWaitTestCompletion 1
+testClass2 FindChannels 0 0 0 0 0
+testClass WaitCompletedKey
+testClass1 WaitCompletedKey
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+delete testClass1
+delete testClass2
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest]
+
+[Test]
+title Find channel: Find all channels(CAP_SERVER capabilities)
+create SensorTestModule testClass
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass CreateNewProcess 1
+testClass SetProcessPSValue 1 KProcessCommandFindChannel 0 0 0 0
+testClass WaitCompletedKey
+testClass KillProcess
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest]
+
+[Test]
+title Find channel: Find all channels(WriteDeviceData capabilities)
+create SensorTestModule testClass
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass CreateNewProcess 3
+testClass SetProcessPSValue 3 KProcessCommandFindChannel 0 0 0 0
+testClass WaitCompletedKey
+testClass KillProcess
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest]
+
+[Test]
+title Find channel: Find all channels(ReadDeviceData capabilities)
+create SensorTestModule testClass
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass CreateNewProcess 4
+testClass SetProcessPSValue 4 KProcessCommandFindChannel 0 0 0 0
+testClass WaitCompletedKey
+testClass KillProcess
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest]
+
+[Test]
+title Open and Close channel
+create SensorTestModule testClass
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass CloseChannel
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest]
+
+[Test]
+title Open channel twice
+create SensorTestModule testClass
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+allownextresult KErrAlreadyExists
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass CloseChannel
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest]
+
+[Test]
+title Open and Close two channels
+create SensorTestModule testClass
+create SensorTestModule testClass1
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass1 SetCompletedKey KSensorTestModuleComplete2
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass1 OpenChannel 0 0 0 0 0 First2 VendorFirst
+testClass1 CloseChannel
+testClass CloseChannel
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+delete testClass1
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest]
+
+[Test]
+title Open channel asynchronous error
+create SensorTestModule testClass
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass SetPSValue KSensrvChannelOpenedWithError KErrGeneral
+allownextresult KErrGeneral
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass SetPSValue KSensrvChannelOpenedWithError 0
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass CloseChannel
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest]
+
+[Test]
+title Open channel return error
+create SensorTestModule testClass
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass SetPSValue KSensrvOpenChannelError KErrGeneral
+allownextresult KErrGeneral
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass SetPSValue KSensrvOpenChannelError 0
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass CloseChannel
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest]
+
+[Test]
+title Close channel return error
+create SensorTestModule testClass
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass SetPSValue KSensrvCloseChannelError KErrGeneral
+testClass CloseChannel
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass SetPSValue KSensrvCloseChannelError 0
+testClass CloseChannel
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest]
+
+[Test]
+title SSY do not call ChannelOpened
+create SensorTestModule testClass
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass SetPSValue KSensrvChannelOpenedError 1
+allownextresult KErrCancel
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass SetPSValue KSensrvChannelOpenedError 0
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass CloseChannel
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest]
+
+[Test]
+title SSY do not call ChannelClosed
+create SensorTestModule testClass
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass SetPSValue KSensrvChannelClosedError 1
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass CloseChannel
+testClass SetPSValue KSensrvChannelClosedError 0
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass CloseChannel
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest]
+
+[Test]
+title Listening: Start listening twice
+create SensorTestModule testClass
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass SetPSValue KSensrvSamplingInterval 100
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass StartDataListening 15 10000 3
+allownextresult KErrAlreadyExists
+testClass StartDataListening 15 10000 3
+testClass WaitCompletedKey
+testClass CloseChannel
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest]
+
+[Test]
+title Listening: two channels
+create SensorTestModule testClass
+create SensorTestModule testClass1
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass1 SetCompletedKey KSensorTestModuleComplete2
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass StartDataListening 22 1000 5
+testClass1 OpenChannel 0 0 0 0 0 Second0 VendorSecond
+testClass1 StartDataListening 22 1000 10
+testClass WaitCompletedKey
+testClass CloseChannel
+delete testClass
+testClass1 WaitCompletedKey
+testClass1 CloseChannel
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass1
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest] 
+
+[Test]
+title Listening: two same channels:
+create SensorTestModule testClass
+create SensorTestModule testClass1
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass1 SetCompletedKey KSensorTestModuleComplete2
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass StartDataListening 22 1000 5
+testClass1 OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass1 StartDataListening 22 1000 10
+testClass WaitCompletedKey
+testClass CloseChannel
+testClass1 WaitCompletedKey
+testClass1 CloseChannel
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+delete testClass1
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest] 
+
+[Test]
+title Listening: Start listening Leave
+create SensorTestModule testClass
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass SetPSValue KSensrvStartListeningLeave KErrGeneral
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+allownextresult KErrGeneral
+testClass StartDataListening 15 10000 3
+testClass SetPSValue KSensrvStartListeningLeave 0
+testClass StartDataListening 15 10000 3
+testClass WaitCompletedKey
+testClass CloseChannel
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest]
+
+[Test]
+title Listening: Stop listening Leave
+create SensorTestModule testClass
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass SetPSValue KSensrvStopListeningLeave KErrGeneral
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass StartDataListening 15 10000 3
+testClass WaitCompletedKey
+testClass SetPSValue KSensrvStopListeningLeave 0
+testClass StartDataListening 15 10000 3
+testClass WaitCompletedKey
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest]
+
+[Test]
+title Listening: Start listening when channel is not open
+create SensorTestModule testClass
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass FindChannels 0 0 0 0 0 First1 VendorFirst
+allownextresult KErrNotFound
+testClass StartListeningWhenChannelIsNotOpen 15 10000 3
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest]
+
+[Test]
+title Listening: ForceBufferFilled Leave
+create SensorTestModule testClass
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass SetPSValue KSensrvForceBufferFilledLeave KErrGeneral
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass SetPSValue KSensrvSamplingInterval 200
+testClass StartDataListening 22 1000 10
+testClass WaitCompletedKey
+testClass SetPSValue KSensrvForceBufferFilledLeave 0
+testClass StartDataListening 22 1000 10
+testClass WaitCompletedKey
+testClass CloseChannel
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest]
+
+[Test]
+title Listening: GetData overflow test
+create SensorTestModule testClass
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass SetPSValue KSensrvGetDataOverflowTest 1
+testClass StartDataListening 10 1000 5
+allownextresult KErrOverflow
+testClass WaitCompletedKey
+testClass SetPSValue KSensrvGetDataOverflowTest 0
+testClass StartDataListening 10 1000 5
+testClass WaitCompletedKey
+testClass CloseChannel
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest]
+
+[Test]
+title Listening: GetData 'data not found' test
+create SensorTestModule testClass
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass SetPSValue KSensrvGetDataNotFoundTest 1
+testClass StartDataListening 10 1000 5
+allownextresult KErrNotFound
+testClass WaitCompletedKey
+testClass SetPSValue KSensrvGetDataNotFoundTest 0
+testClass StartDataListening 10 1000 5
+testClass WaitCompletedKey
+testClass CloseChannel
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest]
+
+[Test]
+title Listening: Sample size 1
+create SensorTestModule testClass
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass SetPSValue KSensrvSamplingInterval 200
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass StartDataListening 1 10000 10
+testClass WaitCompletedKey
+testClass CloseChannel
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest]
+
+[Test]
+title Listening: One per channel, six channels
+create SensorTestModule testClass
+create SensorTestModule testClass1
+create SensorTestModule testClass2
+create SensorTestModule testClass3
+create SensorTestModule testClass4
+create SensorTestModule testClass5
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass1 SetCompletedKey KSensorTestModuleComplete2
+testClass2 SetCompletedKey KSensorTestModuleComplete3
+testClass3 SetCompletedKey KSensorTestModuleComplete4
+testClass4 SetCompletedKey KSensorTestModuleComplete5
+testClass5 SetCompletedKey KSensorTestModuleComplete6
+testClass SetPSValue KSensrvSamplingInterval 10
+testClass SetPSValue KSensrvFirstStubChannelCount 10
+testClass OpenChannel 0 0 0 0 0 First0 VendorFirst
+testClass StartDataListening 10 0 200
+testClass1 OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass1 StartDataListening 3 0 600
+testClass2 OpenChannel 0 0 0 0 0 First2 VendorFirst
+testClass2 StartDataListening 1 0 2000
+testClass3 OpenChannel 0 0 0 0 0 First3 VendorFirst
+testClass3 StartDataListening 1 10 2000
+testClass4 OpenChannel 0 0 0 0 0 First4 VendorFirst
+testClass4 StartDataListening 3 30 600
+testClass5 OpenChannel 0 0 0 0 0 First5 VendorFirst
+testClass5 StartDataListening 10 100 200
+testClass WaitCompletedKey
+testClass CloseChannel
+testClass1 WaitCompletedKey
+testClass1 CloseChannel
+testClass2 WaitCompletedKey
+testClass2 CloseChannel
+testClass3 WaitCompletedKey
+testClass3 CloseChannel
+testClass4 WaitCompletedKey
+testClass4 CloseChannel
+testClass5 WaitCompletedKey
+testClass5 CloseChannel
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+delete testClass1
+delete testClass2
+delete testClass3
+delete testClass4
+delete testClass5
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest] 
+
+[Test]
+title Listening: Restarting listening
+create SensorTestModule testClass
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetPSValue KSensrvSamplingInterval 10
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass StartDataListening 3 10000 40
+testClass WaitCompletedKey
+testClass CloseChannel
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass StartDataListening 5 10000 30
+testClass WaitCompletedKey
+testClass StartDataListening 4 10000 20
+testClass WaitCompletedKey
+testClass StartDataListening 3 10000 10
+testClass WaitCompletedKey
+testClass StartDataListening 2 10000 5
+testClass WaitCompletedKey
+testClass StartDataListening 1 10000 1
+testClass WaitCompletedKey
+testClass CloseChannel
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest]
+
+[Test]
+title Listening: Extreme values
+create SensorTestModule testClass
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetPSValue KSensrvSamplingInterval 10
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass StartDataListening 2000000000 2000000000 10
+testClass WaitCompletedKey
+//testClass StartDataListening 0 0 10
+//testClass WaitCompletedKey
+testClass CloseChannel
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest]
+
+[Test]
+title Listening: Buffer write error (negative count on buffer filled)
+create SensorTestModule testClass
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass SetPSValue KSensrvBufferFilledNegativeCount 1
+testClass StartDataListening 15 10000 2
+allownextresult ESensrvMinor
+testClass WaitCompletedKey
+allownextresult ESensrvFatal
+testClass WaitCompletedKey
+testClass SetPSValue KSensrvBufferFilledNegativeCount 0
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass StartDataListening 15 10000 2
+testClass WaitCompletedKey
+testClass CloseChannel
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest]
+
+[Test]
+title SSY Unloading: Unloading after normal close
+create SensorTestModule testClass
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass StartDataListening 15 10000 1
+testClass WaitCompletedKey
+testClass CloseChannel
+testClass WaitSSYUnloading 1
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest]
+
+[Test]
+title SSY Unloading: Unloading after open error
+create SensorTestModule testClass
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass SetPSValue KSensrvOpenChannelError KErrGeneral
+allownextresult KErrGeneral
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass WaitSSYUnloading 1
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest]
+
+[Test]
+title SSY Unloading: Unloading after close error
+create SensorTestModule testClass
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass StartDataListening 15 10000 1
+testClass WaitCompletedKey
+testClass SetPSValue KSensrvCloseChannelError KErrGeneral
+testClass CloseChannel
+testClass WaitSSYUnloading 1
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest]
+
+[Test]
+title SSY Unloading: Unloading after server start
+create SensorTestModule testClass
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass FindChannels 0 0 0 0 0 First1 VendorFirst
+testClass WaitSSYUnloading 2 // 2 dynamic channel SSYs are loaded when FindChannels queries all channels to verify result
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest]
+
+[Test]
+title Property: Set and Get a property. Property type TInt
+create SensorTestModule testClass
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass SetProperty KSensrvPropIdDataRate 1 200
+testClass GetProperty KSensrvPropIdDataRate 1 200
+testClass CloseChannel
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest]
+
+[Test]
+title Property: Set and Get a property. Property type TReal
+create SensorTestModule testClass
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass SetProperty KSensrvPropIdMeasureRange 1 200
+testClass GetProperty KSensrvPropIdMeasureRange 1 200
+testClass CloseChannel
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest]
+
+[Test]
+title Property: Set and Get a property. Property type TDes
+create SensorTestModule testClass
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass SetProperty KSensrvSensorDescription 1 test
+testClass GetProperty KSensrvSensorDescription 1 test
+testClass CloseChannel
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest]
+
+[Test]
+title Property: Get all properties
+create SensorTestModule testClass
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass SetPSValue KSensrvGetAllPropertyCount 10
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass GetAllProperties
+testClass CloseChannel
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest]
+
+[Test]
+title Property: Get all properties ( Requery )
+create SensorTestModule testClass
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass SetPSValue KSensrvGetAllPropertyCount 50
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass GetAllProperties
+testClass CloseChannel
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest]
+
+[Test]
+title Property: Get array property
+create SensorTestModule testClass
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass SetPSValue KSensrvSetPropertyArray 3
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass GetAllPropertiesWithPropertyId
+testClass GetAllPropertiesWithArrayIndex
+testClass CloseChannel
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest]
+
+[Test]
+title Property Listening: Start and stop property listening
+create SensorTestModule testClass
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass SetPSValue KSensrvPropertyChanged 500 ms
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass StartPropertyListening
+pause 2000 // pause for 2 seconds
+testClass StopPropertyListening
+testClass CheckPropertyChangedCount
+testClass CloseChannel
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest]
+
+[Test]
+title Property Listening: Start property listening twice
+create SensorTestModule testClass
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass SetPSValue KSensrvPropertyChanged 500 ms
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass StartPropertyListening
+allownextresult KErrAlreadyExists
+testClass StartPropertyListening
+pause 2000 // pause for 2 seconds
+testClass StopPropertyListening
+testClass CheckPropertyChangedCount
+testClass CloseChannel
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest]
+
+[Test]
+title Property Listening: Start and stop property and data listening 
+create SensorTestModule testClass
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass SetPSValue KSensrvPropertyChanged 500 ms
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass StartDataListening 20 10000 30
+testClass StartPropertyListening
+pause 2000 // pause for 2 seconds
+testClass StopPropertyListening
+testClass WaitCompletedKey
+testClass CheckPropertyChangedCount
+testClass CloseChannel
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest]
+
+[Test]
+title Property Listening: Restart property listening 
+create SensorTestModule testClass
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass SetPSValue KSensrvPropertyChanged 200 ms
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass StartDataListening 20 10000 30
+testClass StartPropertyListening
+pause 1000 // pause for 1 seconds
+testClass StopPropertyListening
+testClass CheckPropertyChangedCount
+pause 1000 // pause for 1 seconds
+testClass CheckPropertyChangedCount 0
+testClass StartPropertyListening
+pause 1000 // pause for 1 seconds
+testClass StopPropertyListening
+testClass CheckPropertyChangedCount
+testClass WaitCompletedKey
+testClass CloseChannel
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest]
+
+[Test]
+title Property Listening: Three clients listening
+create SensorTestModule testClass1
+testClass1 SetCompletedKey KSensorTestModuleComplete1
+create SensorTestModule testClass2
+testClass2 SetCompletedKey KSensorTestModuleComplete2
+create SensorTestModule testClass3
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass3 SetCompletedKey KSensorTestModuleComplete3
+testClass1 OpenChannel 0 0 0 0 0 First0 VendorFirst
+testClass2 OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass3 OpenChannel 0 0 0 0 0 First2 VendorFirst
+testClass1 StartDataListening 10 10000 30
+testClass2 StartDataListening 10 10000 30
+testClass3 StartDataListening 10 10000 30
+testClass1 StartPropertyListening
+testClass2 StartPropertyListening
+testClass3 StartPropertyListening
+testClass1 SetProperty KSensrvPropIdDataRate 1 200
+testClass1 SetProperty KSensrvPropIdMeasureRange 1 200
+testClass1 SetProperty KSensrvSensorDescription 1 test
+testClass2 SetProperty KSensrvPropIdDataRate 1 200
+testClass2 SetProperty KSensrvPropIdMeasureRange 1 200
+testClass2 SetProperty KSensrvSensorDescription 1 test
+testClass3 SetProperty KSensrvPropIdDataRate 1 200
+testClass3 SetProperty KSensrvPropIdMeasureRange 1 200
+testClass3 SetProperty KSensrvSensorDescription 1 test
+pause 1000 // pause for 1 seconds
+testClass1 CheckPropertyChangedCount 6
+testClass2 CheckPropertyChangedCount 6
+testClass3 CheckPropertyChangedCount 6
+testClass1 StopPropertyListening
+testClass2 StopPropertyListening
+testClass3 StopPropertyListening
+testClass1 WaitCompletedKey
+testClass2 WaitCompletedKey
+testClass3 WaitCompletedKey
+testClass1 CloseChannel
+testClass2 CloseChannel
+testClass3 CloseChannel
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass1
+delete testClass2
+delete testClass3
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest]
+
+[Test]
+title Property: SetProperty Leave
+create SensorTestModule testClass
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass SetPSValue KSensrvSetPropertyLeave KErrPermissionDenied
+allownextresult KErrPermissionDenied
+testClass SetProperty KSensrvPropIdDataRate 1 200
+testClass SetPSValue KSensrvSetPropertyLeave 0
+testClass SetProperty KSensrvPropIdDataRate 1 200
+testClass GetProperty KSensrvPropIdDataRate 1 200
+testClass StartDataListening 10 10000 5
+testClass WaitCompletedKey
+testClass CloseChannel
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest]
+
+[Test]
+title Property: SetProperty Leave when data listening and property listening
+create SensorTestModule testClass
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass StartDataListening 20 10000 30
+testClass StartPropertyListening
+testClass SetPSValue KSensrvSetPropertyLeave KErrPermissionDenied
+allownextresult KErrPermissionDenied
+testClass SetProperty KSensrvPropIdDataRate 1 200
+testClass SetPSValue KSensrvSetPropertyLeave 0
+create SensorTestModule testClass1
+testClass1 SetCompletedKey KSensorTestModuleComplete2
+testClass1 OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass1 StartPropertyListening
+testClass SetProperty KSensrvPropIdDataRate 1 200
+testClass GetProperty KSensrvPropIdDataRate 1 200
+testClass CheckPropertyChangedCount 0
+testClass1 CheckPropertyChangedCount 1
+testClass StopPropertyListening
+testClass1 StopPropertyListening
+testClass WaitCompletedKey
+testClass CloseChannel
+testClass1 CloseChannel
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+delete testClass1
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest]
+
+[Test]
+title Property: GetProperty Leave
+create SensorTestModule testClass
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass SetPSValue KSensrvGetPropertyLeave KErrPermissionDenied
+allownextresult KErrPermissionDenied
+testClass GetProperty KSensrvPropIdDataRate 1 200
+testClass SetPSValue KSensrvGetPropertyLeave 0
+testClass SetProperty KSensrvPropIdDataRate 1 200
+testClass GetProperty KSensrvPropIdDataRate 1 200
+testClass StartDataListening 10 10000 5
+testClass WaitCompletedKey
+testClass CloseChannel
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest]
+
+[Test]
+title Property: GetProperty Leave when data listening and property listening
+create SensorTestModule testClass
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass StartDataListening 30 10000 30
+testClass StartPropertyListening
+testClass SetPSValue KSensrvGetPropertyLeave KErrPermissionDenied
+allownextresult KErrPermissionDenied
+testClass GetProperty KSensrvPropIdDataRate 1 200
+testClass SetPSValue KSensrvGetPropertyLeave 0
+create SensorTestModule testClass1
+testClass1 SetCompletedKey KSensorTestModuleComplete2
+testClass1 OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass1 StartPropertyListening
+testClass SetProperty KSensrvPropIdDataRate 1 200
+testClass GetProperty KSensrvPropIdDataRate 1 200
+testClass CheckPropertyChangedCount 0
+testClass1 CheckPropertyChangedCount 1
+testClass StopPropertyListening
+testClass1 StopPropertyListening
+testClass WaitCompletedKey
+testClass CloseChannel
+testClass1 CloseChannel
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+delete testClass1
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest]
+
+[Test]
+title Property: GetAllProperties Leave
+create SensorTestModule testClass
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass SetPSValue KSensrvGetAllPropertyCount 10
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass SetPSValue KSensrvGetAllPropertiesLeave KErrPermissionDenied
+allownextresult KErrPermissionDenied
+testClass GetAllProperties
+testClass SetPSValue KSensrvGetAllPropertiesLeave 0
+testClass StartDataListening 10 10000 10
+testClass GetAllProperties
+testClass WaitCompletedKey
+testClass CloseChannel
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest]
+
+[Test]
+title Property: GetAllProperties Leave when data listening and property listening
+create SensorTestModule testClass
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass SetPSValue KSensrvGetAllPropertyCount 10
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass StartDataListening 20 10000 30
+testClass StartPropertyListening
+testClass SetPSValue KSensrvGetAllPropertiesLeave KErrPermissionDenied
+allownextresult KErrPermissionDenied
+testClass GetAllProperties
+testClass SetPSValue KSensrvGetAllPropertiesLeave 0
+create SensorTestModule testClass1
+testClass1 SetCompletedKey KSensorTestModuleComplete2
+testClass1 OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass1 StartPropertyListening
+testClass GetAllProperties
+testClass SetProperty KSensrvPropIdDataRate 1 200
+pause 2000
+testClass CheckPropertyChangedCount 0
+testClass1 CheckPropertyChangedCount 1
+testClass StopPropertyListening
+testClass1 StopPropertyListening
+testClass WaitCompletedKey
+testClass CloseChannel
+testClass1 CloseChannel
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+delete testClass1
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest]
+
+[Test]
+title Property: CheckPropertyDependenciesL Leave
+create SensorTestModule testClass
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass SetPSValue KSensrvCheckPropertyDependenciesLeave KErrArgument
+allownextresult KErrArgument
+testClass SetProperty KSensrvPropIdDataRate 1 200
+testClass SetPSValue KSensrvCheckPropertyDependenciesLeave 0
+testClass SetProperty KSensrvPropIdDataRate 1 200
+testClass GetProperty KSensrvPropIdDataRate 1 200
+testClass StartDataListening 10 10000 5
+testClass WaitCompletedKey
+testClass CloseChannel
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest]
+
+[Test]
+title Property: CheckPropertyDependenciesL Leave when data listening and property listening
+create SensorTestModule testClass
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass StartDataListening 20 10000 30
+testClass StartPropertyListening
+testClass SetPSValue KSensrvCheckPropertyDependenciesLeave KErrArgument
+allownextresult KErrArgument
+testClass SetProperty KSensrvPropIdDataRate 1 200
+testClass SetPSValue KSensrvCheckPropertyDependenciesLeave 0
+create SensorTestModule testClass1
+testClass1 SetCompletedKey KSensorTestModuleComplete2
+testClass1 OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass1 StartPropertyListening
+testClass SetProperty KSensrvPropIdDataRate 1 200
+testClass GetProperty KSensrvPropIdDataRate 1 200
+testClass CheckPropertyChangedCount 0
+testClass1 CheckPropertyChangedCount 1
+testClass StopPropertyListening
+testClass1 StopPropertyListening
+testClass WaitCompletedKey
+testClass CloseChannel
+testClass1 CloseChannel
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+delete testClass1
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest]
+
+[Test]
+title Property: SetProperty - Capability test
+create SensorTestModule testClass
+create SensorTestModule testClass1
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass StartPropertyListening
+testClass1 SetCompletedKey KSensorTestModuleComplete2
+testClass1 OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass1 StartPropertyListening
+allownextresult KErrPermissionDenied
+testClass SetProperty KSensrvPropIdChannelScale 1 200
+testClass SetProperty KSensrvPropIdDataRate 1 200
+testClass GetProperty KSensrvPropIdDataRate 1 200
+testClass StartDataListening 10 10000 5
+testClass WaitCompletedKey
+testClass CheckPropertyChangedCount 0
+testClass1 CheckPropertyChangedCount 1
+testClass CloseChannel
+testClass1 CloseChannel
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+delete testClass1
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest]
+
+[Test]
+title Property: Set a property from multiple processes, set is denyed for process 2.
+create SensorTestModule testClass
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass CreateNewProcess 2
+testClass SetProcessPSValue 1 KProcessCommandOpenChannel 0 0 0 0
+testClass WaitCompletedKey
+testClass SetProcessPSValue 2 KProcessCommandOpenChannel 0 0 0 0
+testClass WaitCompletedKey
+testClass SetProcessPSValue 1 KProcessCommandSetProperty 0 KSensrvPropIdDataRate 1 200
+testClass WaitCompletedKey
+testClass SetProcessPSValue 2 KProcessCommandSetProperty -21 KSensrvPropIdDataRate 1 200
+testClass WaitCompletedKey
+testClass SetProcessPSValue 1 KProcessCommandCloseChannel 0 0 0 0
+testClass WaitCompletedKey
+testClass SetProcessPSValue 2 KProcessCommandCloseChannel 0 0 0 0
+testClass WaitCompletedKey
+testClass KillProcess
+testClass CloseChannel
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest]
+
+[Test]  
+title Reg: SSY registers and removes new channels
+create SensorTestModule testClass
+create SensorTestModule testClass1
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass1 SetCompletedKey KSensorTestModuleComplete2
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass1 OpenChannel 0 0 0 0 0 First2 VendorFirst
+testClass CloseChannel
+testClass FindChannels 0 0 0 0 0 NULL VendorNew
+testClass CheckFoundChannelCount 0
+testClass StartChannelChangeListening 0 0 0 0 0 NULL VendorNew
+testClass AdjustChannels 4 VendorNew KSensrvCreateNewChannelsFirst  
+testClass WaitCompletedKey
+testClass FindChannels 0 0 0 0 0 NULL VendorNew
+testClass CheckFoundChannelCount 4
+testClass OpenChannel 0 0 0 0 0 NULL VendorNew
+testClass StartDataListening 15 10000 3
+testClass WaitCompletedKey
+testClass CloseChannel
+testClass AdjustChannels 2 VendorNew KSensrvRemoveNewChannelsFirst
+testClass SetPSValue KSensrvWaitTestCompletion 1
+testClass FindChannels 0 0 0 0 0 NULL VendorNew
+testClass CheckFoundChannelCount 2
+testClass StopChannelChangeListening 0 0 0 0 0 NULL VendorNew
+testClass1 CloseChannel
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+delete testClass1
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest]
+
+[Test]  
+title Reg: Restart listening after stopping it.
+create SensorTestModule testClass
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass CloseChannel
+testClass FindChannels 0 0 0 0 0 NULL VendorNew
+testClass CheckFoundChannelCount 0
+testClass StartChannelChangeListening 0 0 0 0 0 NULL VendorNew
+testClass AdjustChannels 4 VendorNew KSensrvCreateNewChannelsFirst  
+testClass WaitCompletedKey
+testClass FindChannels 0 0 0 0 0 NULL VendorNew
+testClass CheckFoundChannelCount 4
+testClass AdjustChannels 2 VendorNew KSensrvRemoveNewChannelsFirst  
+testClass WaitCompletedKey
+testClass FindChannels 0 0 0 0 0 NULL VendorNew
+testClass CheckFoundChannelCount 2
+testClass StopChannelChangeListening 0 0 0 0 0 NULL VendorNew
+testClass AdjustChannels 5 VendorNew KSensrvCreateNewChannelsFirst 
+pause 100 //0.1s
+testClass FindChannels 0 0 0 0 0 NULL VendorNew
+testClass CheckFoundChannelCount 7
+testClass StartChannelChangeListening 0 0 0 0 0 NULL VendorNew
+testClass AdjustChannels 4 VendorNew KSensrvRemoveNewChannelsFirst  
+testClass WaitCompletedKey
+testClass FindChannels 0 0 0 0 0 NULL VendorNew
+testClass CheckFoundChannelCount 3
+testClass StopChannelChangeListening 0 0 0 0 0 NULL VendorNew
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest] 
+
+[Test]  
+title Reg: Two SSYs register and remove new channels, with two listeners
+create SensorTestModule testClass
+create SensorTestModule testClass1
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass CloseChannel
+testClass1 SetCompletedKey KSensorTestModuleComplete2
+testClass1 OpenChannel 0 0 0 0 0 Second1 VendorSecond
+testClass1 CloseChannel
+testClass StartChannelChangeListening 0 0 0 0 0 NULL VendorNew
+testClass1 StartChannelChangeListening 0 0 0 0 0 NULL VendorNew
+pause 500
+testClass AdjustChannels 7 VendorNew KSensrvCreateNewChannelsFirst 4
+testClass1 AdjustChannels 7 VendorNew KSensrvCreateNewChannelsSecond 3
+testClass WaitCompletedKey
+testClass1 WaitCompletedKey
+testClass FindChannels 0 0 0 0 0 NULL VendorNew
+testClass CheckFoundChannelCount 7
+testClass AdjustChannels 4 VendorNew KSensrvRemoveNewChannelsFirst 2
+testClass1 AdjustChannels 4 VendorNew KSensrvRemoveNewChannelsSecond 2
+testClass WaitCompletedKey
+testClass FindChannels 0 0 0 0 0 NULL VendorNew
+testClass CheckFoundChannelCount 3
+testClass StopChannelChangeListening 0 0 0 0 0 NULL VendorNew
+testClass1 StopChannelChangeListening 0 0 0 0 0 NULL VendorNew
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+delete testClass1
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest] 
+
+[Test]  
+title Reg: SSY unregisters an active channel
+create SensorTestModule testClass
+create SensorTestModule testClass1
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetPSValue KSensrvSamplingInterval 100
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass CloseChannel
+testClass1 SetCompletedKey KSensorTestModuleComplete2
+testClass1 OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass1 CloseChannel
+testClass1 FindChannels 0 0 0 0 0 NULL VendorNew
+testClass1 CheckFoundChannelCount 0
+testClass1 AdjustChannels 1 VendorNew KSensrvCreateNewChannelsFirst  
+pause 500
+testClass1 StartChannelChangeListening 0 0 0 0 0 NULL VendorNew
+testClass OpenChannel 0 0 0 0 0 NULL VendorNew
+testClass StartDataListening 3 10000 30
+pause 500
+testClass1 AdjustChannels 1 VendorNew KSensrvRemoveNewChannelsFirst  
+// Since the failure to open proxy completes quite fast, 
+// it might be that minor error completion is not yet handled,
+// when fatal comes, so allow both results for the wait
+allownextresult ESensrvMinor
+allownextresult ESensrvFatal
+testClass WaitCompletedKey
+testClass1 WaitCompletedKey
+testClass1 FindChannels 0 0 0 0 0 NULL VendorNew
+testClass1 CheckFoundChannelCount 0
+testClass1 StopChannelChangeListening 0 0 0 0 0 NULL VendorNew
+allownextresult KErrNotFound
+testClass OpenChannel 0 0 0 0 0 NULL VendorNew
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+delete testClass1
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest] 
+
+[Test]  
+title Reg: Previously registered and removed channels get correct id upon re-registration
+create SensorTestModule testClass
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass CloseChannel
+testClass StartChannelChangeListening 0 0 0 0 0 NULL VendorNew
+pause 500
+testClass AdjustChannels 20 VendorNew KSensrvCreateNewChannelsFirst  
+testClass WaitCompletedKey
+testClass FindChannels 0 0 0 0 0 NULL VendorNew
+testClass CheckFoundChannelCount 20
+testClass StoreFoundChannels 1
+testClass AdjustChannels 6 VendorNew KSensrvRemoveNewChannelsFirst  
+testClass WaitCompletedKey
+testClass AdjustChannels 10 VendorNew KSensrvCreateNewChannelsFirst  
+testClass WaitCompletedKey
+testClass AdjustChannels 21 VendorNew KSensrvRemoveNewChannelsFirst  
+testClass WaitCompletedKey
+testClass AdjustChannels 3 VendorNew KSensrvRemoveNewChannelsFirst  
+testClass WaitCompletedKey
+testClass FindChannels 0 0 0 0 0 NULL VendorNew
+testClass CheckFoundChannelCount 0
+testClass AdjustChannels 11 VendorNew KSensrvCreateNewChannelsFirst 
+testClass WaitCompletedKey
+testClass AdjustChannels 2 VendorNew KSensrvRemoveNewChannelsFirst  
+testClass WaitCompletedKey
+testClass AdjustChannels 11 VendorNew KSensrvCreateNewChannelsFirst 
+testClass WaitCompletedKey
+testClass FindChannels 0 0 0 0 0 NULL VendorNew
+testClass CheckFoundChannelCount 20
+testClass StoreFoundChannels 0
+testClass AdjustChannels 20 VendorNew KSensrvRemoveNewChannelsFirst  
+testClass WaitCompletedKey
+testClass FindChannels 0 0 0 0 0 NULL VendorNew
+testClass CheckFoundChannelCount 0
+testClass StopChannelChangeListening 0 0 0 0 0 NULL VendorNew
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest]
+
+[Test]
+title Property: Start listening set success indicator, listener with same priority appears
+create SensorTestModule testClass
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass StartPropertyListening
+testClass CreateNewProcess 1
+testClass SetProcessPSValue 1 KProcessCommandOpenChannel 0 0 0 0
+testClass WaitCompletedKey
+testClass CheckListenedSetPropertySuccessIndicator ESetPropertyIndicationPossible 1
+testClass SetProcessPSValue 1 KProcessCommandSetProperty 0 KSensrvPropIdDataRate 1 200
+testClass WaitCompletedKey
+testClass CheckListenedSetPropertySuccessIndicator ESetPropertyIndicationUnavailable 1
+//testClass WaitCompletedKey
+testClass StopPropertyListening
+testClass SetProcessPSValue 1 KProcessCommandCloseChannel 0 0 0 0
+testClass WaitCompletedKey
+testClass KillProcess
+testClass CloseChannel
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest]
+
+[Test]
+title Property: Start listening set success indicator, listener with same priority disappears
+create SensorTestModule testClass
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass StartPropertyListening
+testClass CreateNewProcess 1
+testClass SetProcessPSValue 1 KProcessCommandOpenChannel 0 0 0 0
+pause 2000
+testClass SetProcessPSValue 1 KProcessCommandCloseChannel 0 0 0 0
+pause 2000
+testClass CheckListenedSetPropertySuccessIndicator ESetPropertyIndicationAvailable 2
+testClass StopPropertyListening
+testClass KillProcess
+testClass CloseChannel
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest]
+
+[Test]
+title Property: Start listening set success indicator, listener with lower priority appears
+create SensorTestModule testClass
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass StartPropertyListening
+testClass CreateNewProcess 2
+testClass SetProcessPSValue 2 KProcessCommandOpenChannel 0 0 0 0
+testClass WaitCompletedKey
+testClass SetProcessPSValue 2 KProcessCommandSetProperty -21 KSensrvPropIdDataRate 1 200
+testClass WaitCompletedKey
+testClass CheckListenedSetPropertySuccessIndicator -1 0
+testClass StopPropertyListening
+testClass SetProcessPSValue 2 KProcessCommandCloseChannel 0 0 0 0
+testClass WaitCompletedKey
+testClass KillProcess
+testClass CloseChannel
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest]
+
+[Test]
+title Property: Start listening set success indicator, listener with lower priority disappears
+create SensorTestModule testClass
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass StartPropertyListening
+testClass CreateNewProcess 2
+testClass SetProcessPSValue 2 KProcessCommandOpenChannel 0 0 0 0
+pause 2000
+testClass SetProcessPSValue 2 KProcessCommandCloseChannel 0 0 0 0
+pause 2000
+testClass CheckListenedSetPropertySuccessIndicator -1 0
+testClass StopPropertyListening
+testClass KillProcess
+testClass CloseChannel
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest]
+
+[Test]
+title Property: Start listening set success indicator, listener with higher priority appears
+create SensorTestModule testClass
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass StartPropertyListening
+testClass CreateNewProcess 3
+testClass SetProcessPSValue 3 KProcessCommandOpenChannel 0 0 0 0
+testClass SetProcessPSValue 3 KProcessCommandSetProperty 0 KSensrvPropIdDataRate 1 200
+testClass WaitCompletedKey
+testClass CheckListenedSetPropertySuccessIndicator ESetPropertyIndicationUnavailable 1
+testClass StopPropertyListening
+testClass SetProcessPSValue 3 KProcessCommandCloseChannel 0 0 0 0
+testClass WaitCompletedKey
+testClass KillProcess
+testClass CloseChannel
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest]
+
+[Test]
+title Property: Start listening set success indicator, listener with higher priority disappears
+create SensorTestModule testClass
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass StartPropertyListening
+testClass CreateNewProcess 3
+testClass SetProcessPSValue 3 KProcessCommandOpenChannel 0 0 0 0
+pause 2000
+testClass SetProcessPSValue 3 KProcessCommandCloseChannel 0 0 0 0
+pause 2000
+testClass CheckListenedSetPropertySuccessIndicator ESetPropertyIndicationAvailable 2
+testClass StopPropertyListening
+testClass KillProcess
+testClass CloseChannel
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest]
+
+[Test]
+title Property: Start listening set success indicator, listener with higher priority disappears but same remains
+create SensorTestModule testClass
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass StartPropertyListening
+testClass CreateNewProcess 3
+testClass SetProcessPSValue 3 KProcessCommandOpenChannel 0 0 0 0
+pause 2000
+testClass CreateNewProcess 1
+testClass SetProcessPSValue 1 KProcessCommandOpenChannel 0 0 0 0
+pause 2000
+testClass SetProcessPSValue 3 KProcessCommandCloseChannel 0 0 0 0
+pause 2000
+testClass CheckListenedSetPropertySuccessIndicator ESetPropertyIndicationPossible 2
+testClass SetProcessPSValue 1 KProcessCommandCloseChannel 0 0 0 0
+testClass StopPropertyListening
+testClass KillProcess
+testClass CloseChannel
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest]
+
+[Test]
+title Auto-shutdown: start first client
+create SensorTestModule testClass
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+pause 2000
+testClass CheckServerAlive 1
+testClass CloseChannel
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest]
+
+[Test]
+title Auto-shutdown: start second client
+create SensorTestModule testClass
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+allownextresult KErrAlreadyExists
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass CheckServerAlive 1
+testClass CloseChannel
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest]
+
+[Test]
+title Auto-shutdown: shutdown first client
+create SensorTestModule testClass
+create SensorTestModule testClass1
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass1 SetCompletedKey KSensorTestModuleComplete2
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass1 OpenChannel 0 0 0 0 0 First2 VendorFirst
+testClass1 CloseChannel
+delete testClass1
+pause 5000
+testClass CheckServerAlive 1
+testClass CloseChannel
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest]
+
+[Test]
+title Auto-shutdown: shutdown second client
+create SensorTestModule testClass
+create SensorTestModule testClass1
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass1 SetCompletedKey KSensorTestModuleComplete2
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass1 OpenChannel 0 0 0 0 0 First2 VendorFirst
+testClass1 CloseChannel
+testClass CloseChannel
+pause 10000
+testClass CheckServerAlive 0
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass1
+delete testClass
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest]
+
+[Test]
+title DynChannels: SSY loaded for query channels, channel is available
+create SensorTestModule testClass
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass SetPSValue KSensrvFirstStubChannelCount 11
+pause 100
+testClass SetPSValue KSensrvWaitTestCompletion 0
+testClass FindChannels 0 0 0 0 0 First10 VendorFirst
+testClass WaitCompletedKey
+testClass CheckFoundChannelCount 1
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest]
+
+[Test]
+title DynChannels: SSY loaded for query channels, channel is unavailable
+create SensorTestModule testClass
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass SetPSValue KSensrvFirstStubChannelCount 10
+pause 100
+testClass SetPSValue KSensrvWaitTestCompletion 0
+testClass FindChannels 0 0 0 0 0 First10 VendorFirst
+testClass WaitCompletedKey
+testClass CheckFoundChannelCount 0
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest]
+
+[Test]
+title DynChannels: SSY loaded for change listening
+create SensorTestModule testClass
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass GetPSValue KSensrvCheckPluginLoaded 0
+testClass StartChannelChangeListening 0 0 0 0 0 First10 VendorFirst
+pause 100
+testClass StopChannelChangeListening 0 0 0 0 0 NULL VendorFirst
+testClass GetPSValue KSensrvCheckPluginLoaded 1
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest]
+
+[Test]
+title DynChannels: Change listening, SSY unload is denied
+create SensorTestModule testClass
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass GetPSValue KSensrvCheckPluginLoaded 0
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass GetPSValue KSensrvCheckPluginLoaded 1
+testClass CloseChannel
+testClass StartChannelChangeListening 0 0 0 0 0 First10 VendorFirst
+testClass WaitSSYUnloading 0
+testClass StopChannelChangeListening 0 0 0 0 0 NULL VendorFirst
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest]
+
+[Test]
+title DynChannels: Change listening, SSY unload is allowed
+create SensorTestModule testClass
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass GetPSValue KSensrvCheckPluginLoaded 0
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass GetPSValue KSensrvCheckPluginLoaded 1
+testClass CloseChannel
+testClass StartChannelChangeListening 0 0 0 0 0 First10 VendorFirst
+testClass StopChannelChangeListening 0 0 0 0 0 NULL VendorFirst
+testClass WaitSSYUnloading 1
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest]
+
+[Test]
+title DynChannels: Two clients change listening, SSY unload is denied
+create SensorTestModule testClass
+create SensorTestModule testClass1
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass GetPSValue KSensrvCheckPluginLoaded 0
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass1 SetCompletedKey KSensorTestModuleComplete1
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass GetPSValue KSensrvCheckPluginLoaded 1
+testClass CloseChannel
+testClass1 OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass1 CloseChannel
+testClass StartChannelChangeListening 0 0 0 0 0 First10 VendorFirst
+testClass1 StartChannelChangeListening 0 0 0 0 0 First10 VendorFirst
+testClass WaitSSYUnloading 0
+testClass StopChannelChangeListening 0 0 0 0 0 NULL VendorFirst
+testClass1 StopChannelChangeListening 0 0 0 0 0 NULL VendorFirst
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+delete testClass1
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest]
+
+[Test]
+title DynChannels: Two clients change listening, SSY unload is allowed
+create SensorTestModule testClass
+create SensorTestModule testClass1
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass GetPSValue KSensrvCheckPluginLoaded 0
+testClass SetCompletedKey KSensorTestModuleComplete1
+
+testClass1 SetCompletedKey KSensorTestModuleComplete1
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass GetPSValue KSensrvCheckPluginLoaded 1
+testClass CloseChannel
+testClass1 OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass1 CloseChannel
+testClass StartChannelChangeListening 0 0 0 0 0 First10 VendorFirst
+testClass1 StartChannelChangeListening 0 0 0 0 0 First10 VendorFirst
+testClass StopChannelChangeListening 0 0 0 0 0 NULL VendorFirst
+testClass1 StopChannelChangeListening 0 0 0 0 0 NULL VendorFirst
+testClass WaitSSYUnloading 1
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+delete testClass1
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest]
+
+[Test]
+title Dependent Channels: Open and Close two channels
+create SensorTestModule testClass
+create SensorTestModule testClass1
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass1 SetCompletedKey KSensorTestModuleComplete2
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass1 SetPSValue KSensrvChannelOpenedError KErrNotSupported
+testClass1 OpenChannel 0 0 0 0 0 First2 VendorFirst
+testClass GetProperty KSensrvPropIdAvailability 1 1
+testClass1 GetProperty KSensrvPropIdAvailability 1 0
+testClass CloseChannel
+testClass1 GetProperty KSensrvPropIdAvailability 1 1
+testClass1 CloseChannel
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+delete testClass1
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest]
+
+[Test]
+title Dependent Channels: Three dependent channels, listener with higher priority appears for the unavailable channel
+create SensorTestModule testClass
+create SensorTestModule testClass1
+create SensorTestModule testClass2
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass2 SetCompletedKey KSensorTestModuleComplete3
+testClass2 OpenChannel 0 0 0 0 0 First2 VendorFirst 1
+testClass1 SetCompletedKey KSensorTestModuleComplete2
+testClass1 OpenChannel 0 0 0 0 0 First0 VendorFirst 1
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass SetPSValue KSensrvChannelOpenedError KErrNotSupported
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst 0
+testClass GetProperty KSensrvPropIdAvailability 1 0
+testClass1 GetProperty KSensrvPropIdAvailability 1 1
+testClass2 GetProperty KSensrvPropIdAvailability 1 1
+testClass CreateNewProcess 3
+testClass SetProcessPSValue 3 KProcessCommandOpenChannel 0 0 0 0
+testClass GetProperty KSensrvPropIdAvailability 1 0
+testClass1 GetProperty KSensrvPropIdAvailability 1 1
+testClass SetProcessPSValue 3 KProcessCommandCloseChannel 0 0 0 0
+testClass WaitCompletedKey
+testClass GetProperty KSensrvPropIdAvailability 1 1
+testClass1 GetProperty KSensrvPropIdAvailability 1 1
+testClass CloseChannel
+testClass1 GetProperty KSensrvPropIdAvailability 1 1
+testClass1 CloseChannel
+testClass KillProcess
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass
+delete testClass1
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest]
+
+// This case panics intensionally in debug builds
+[Test]
+title Reg: SSY registers zero channels (UDEB panics!)
+create SensorTestModule testClass
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass CloseChannel
+testClass SetPSValue KSensrvRegisterZeroChannels 0
+pause 500
+testClass FindChannels 0 0 0 0 0 NULL VendorNew
+testClass CheckFoundChannelCount 0
+allownextresult KErrArgument
+testClass GetPsResult KSensrvRegisterZeroChannels
+testClass FindChannels 0 0 0 0 0 NULL VendorNew
+testClass CheckFoundChannelCount 0
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass 
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest] 
+
+// This case panics intensionally in debug builds
+[Test]
+title Reg: SSY registers invalid channels (UDEB panics!)
+create SensorTestModule testClass
+
+oomignorefailure ON
+loop KNumberToRepeatOOMTest
+oomheapfailnext 5
+
+testClass SetCompletedKey KSensorTestModuleComplete1
+testClass OpenChannel 0 0 0 0 0 First1 VendorFirst
+testClass CloseChannel
+testClass SetPSValue KSensrvRegisterInvalidChannels 0
+pause 500
+testClass FindChannels 0 0 0 0 0 NULL VendorNew
+testClass CheckFoundChannelCount 0
+allownextresult KErrArgument
+testClass GetPsResult KSensrvRegisterInvalidChannels
+testClass FindChannels 0 0 0 0 0 NULL VendorNew
+testClass CheckFoundChannelCount 0
+
+endloop
+oomignorefailure OFF
+oomheaptonormal
+
+delete testClass 
+create SensorTestModule sd
+sd ShutdownServer
+delete sd
+[Endtest]
--- a/sensorservices/sensorserver/tsrc/sensorsrvtest/rom/sensorserver_ats3.iby	Tue Feb 02 00:53:00 2010 +0200
+++ b/sensorservices/sensorserver/tsrc/sensorsrvtest/rom/sensorserver_ats3.iby	Fri Mar 19 09:58:42 2010 +0200
@@ -29,9 +29,6 @@
 
 ECOM_PLUGIN(sensrvcondeval.dll, sensrvcondeval.rsc)
 
-data=ZPRIVATE\10202BE9\10282DEE_stub.txt                  PRIVATE\10202BE9\10282DEE.txt
-data=ZPRIVATE\10202BE9\1020507E_stub.txt                  PRIVATE\10202BE9\1020507E.txt
-
 
 #endif // SENSORSERVERTEST_IBY
 
--- a/sysstatemgmt/ssmcmdlists/data/alarm_charging.rss	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/ssmcmdlists/data/alarm_charging.rss	Fri Mar 19 09:58:42 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009-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"
@@ -226,7 +226,7 @@
     name = "z:\\sys\\bin\\locod.exe";
     execution_behaviour = ESsmFireAndForget;
     monitor_info = r_mon_3_restarts_ignore;
-    conditional_information = r_cond_feat_testatcommand;
+    conditional_information = r_cond_testatcommand_or_enableisicommunicationinusbchargingmode;
     }
 
 // ---------------------------------------------------------------------------
@@ -535,6 +535,26 @@
     feature_id = KFeatureIdTestATCommand;
     }
 
+// ---------------------------------------------------------------------------
+// r_cond_feat_enableisicommunicationinusbchargingmode
+// ---------------------------------------------------------------------------
+//
+RESOURCE SSM_CND_FEATURE_VALUE r_cond_feat_enableisicommunicationinusbchargingmode
+    {
+    feature_id = KFeatureIdEnableIsiCommunicationInUsbChargingMode;
+    }	
+	
+// ---------------------------------------------------------------------------
+// r_cond_testatcommand_or_certtesting
+// ---------------------------------------------------------------------------
+//
+RESOURCE SSM_CND_LOGICAL_OR r_cond_testatcommand_or_enableisicommunicationinusbchargingmode
+    {
+    lhs = r_cond_feat_testatcommand;
+    rhs = r_cond_feat_enableisicommunicationinusbchargingmode;
+    }
+	
+	
 // monitoring.rss contains resource definitions, so it may not be included
 // before entry point.
 #include "monitoring.rss"
--- a/sysstatemgmt/ssmcmdlists/data/criticalappscmdlist.rss	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/ssmcmdlists/data/criticalappscmdlist.rss	Fri Mar 19 09:58:42 2010 +0200
@@ -72,7 +72,6 @@
         r_cmd_selftest,
         r_cmd_cfserver,
         r_cmd_sysap,
-        r_cmd_calsrv,
         r_cmd_profmon,
         // prio 0xFFE6
         r_cmd_multiwaitforever
@@ -84,17 +83,6 @@
 // ===========================================================================
 //
 
-// ---------------------------------------------------------------------------
-// r_cmd_calsrv
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_PROCESS_INFO r_cmd_calsrv
-    {
-    priority = 0xFFE7;
-    name = "calensvr.exe";
-    execution_behaviour = ESsmFireAndForget;
-    monitor_info = r_mon_100_restarts_reset;
-    }
 
 // ---------------------------------------------------------------------------
 // r_cmd_cfserver
--- a/sysstatemgmt/ssmcmdlists/data/noncriticalcmdlist.rss	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/ssmcmdlists/data/noncriticalcmdlist.rss	Fri Mar 19 09:58:42 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009-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"
@@ -79,26 +79,19 @@
         r_cmd_waitforofflinequery,
         // prio 0xFFD7
         r_cmd_setswp_uistart,   // After offline query has been made
-        r_cmd_adtupdater,       // Location, date & time queries
         r_cmd_bsengine,
-        r_cmd_waitforphone,
         // prio 0xFFC7
         r_cmd_setswp_rfon,
         r_cmd_setswp_rfoff,
-        r_cmd_waitidle,
         // prio 0xFFB7
 #ifdef __JAVA        
         r_cmd_javacaptain,
 #endif // __JAVA
         r_cmd_watcher,
         r_cmd_dmutilsrv,
-	r_cmd_mediasyncserver,  // Should be executed before contentharvester
         // prio 0xFFA7
         r_cmd_contentharvester,
-        r_cmd_harvestersrv,
-        r_cmd_predefinedcontacts,
-        r_cmd_xnthemesrv,
-        r_cmd_ncnlist,
+        r_cmd_mdswatchdog,
         r_cmd_satsrv,
         r_cmd_cbssrv,
         r_cmd_schedsrv,
@@ -107,16 +100,11 @@
         r_cmd_remotefe,
         r_cmd_supllistener,
         r_cmd_autolock,
-        r_cmd_pocstarter,
-        r_cmd_gsserver,
-        r_cmd_vcommandmgr,
         r_cmd_dmallreasons,
         r_cmd_locod,
 #ifdef FF_LBT_ENGINE
         r_cmd_lbtsrv,
 #endif // FF_LBT_ENGINE
-        r_cmd_fsemail,
-        // prio 0xFFA6
         r_cmd_dmfirstbootreason,
         r_cmd_fota,
         // prio 0x7F87
@@ -127,20 +115,12 @@
         // prio 0x7EFF
         r_cmd_activitymonitor1,
         // prio 0x7EFE
-        r_cmd_logs,
-        // prio 0x7EFD
         r_cmd_activitymonitor2,
         // prio 0x7EFC
-        r_cmd_pbk2,
-        // prio 0x7EFB
         r_cmd_activitymonitor3,
         // prio 0x7EFA
-        r_cmd_mce,
-        // prio 0x7EF9
         r_cmd_activitymonitor4,
         // prio 0x7EF8
-        r_cmd_clockapp,
-        // prio 0x7EF7
         r_cmd_activitymonitor5,
         // prio 0x7EF6
         r_cmd_videocenter,
@@ -151,8 +131,6 @@
         // prio 0x7EF3
         r_cmd_activitymonitor7,
         // prio 0x7EF2
-	r_cmd_screensaver,
-	// prio 0x7EEF
 	r_cmd_activitymonitor8,
 	// prio 0x7EEE
 	r_cmd_autosync,
@@ -160,7 +138,13 @@
 	r_cmd_activitymonitor9,
 	// prio 0x7EEC
 	r_cmd_mylocationsengine,
-	    r_cmd_startupready      // Last command, prio 0x0000
+#ifdef FF_ATT_ADDRESS_BK
+	//prio 0x7EEA
+	r_cmd_activitymonitor10,
+	//prio 0x7EE9
+	r_cmd_aab,
+#endif
+	r_cmd_startupready      // Last command, prio 0x0000
         };
     }
 
@@ -169,6 +153,21 @@
 // ===========================================================================
 //
 
+// -----------------------------------------------------------------------------
+// r_cmd_aab
+// -----------------------------------------------------------------------------
+//
+#ifdef FF_ATT_ADDRESS_BK 
+RESOURCE SSM_START_APP_INFO r_cmd_aab
+    {
+    priority = 0x7EE9;
+    name = "z:\\sys\\bin\\AABPhonebookapp.exe";
+    retries = 2;
+    background = 1; // To background
+    monitor_info = r_mon_3_restarts_ignore;
+    }
+#endif
+
 // ---------------------------------------------------------------------------
 // r_cmd_activitymonitor1
 // ---------------------------------------------------------------------------
@@ -305,16 +304,22 @@
     }
 	
 // ---------------------------------------------------------------------------
-// r_cmd_adtupdater
+// r_cmd_activitymonitor10
 // ---------------------------------------------------------------------------
 //
-RESOURCE SSM_START_PROCESS_INFO r_cmd_adtupdater
+#ifdef FF_ATT_ADDRESS_BK
+RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_activitymonitor10
     {
-    priority = 0xFFD7;
-    name = "adtupdater.exe";
-    execution_behaviour = ESsmFireAndForget;
+    priority = 0x7EEA;
+    severity = ECmdCriticalSeverity;
+    execution_behaviour = ESsmWaitForSignal;
+    dllname = "ssmactivitycmd.dll";
+    ordinal = 1; // SsmActivityCmdNewL
+    retries = 2;
+    dll_data = r_dlldata_activitymonitor_timeout;
     }
-
+#endif
+	
 // ---------------------------------------------------------------------------
 // r_cmd_amastart
 // ---------------------------------------------------------------------------
@@ -389,18 +394,6 @@
     monitor_info = r_mon_3_restarts_ignore;
     }
 
-// ---------------------------------------------------------------------------
-// r_cmd_clockapp
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_APP_INFO r_cmd_clockapp
-    {
-    priority = 0x7EF8;
-    name = "z:\\sys\\bin\\clockapp.exe";
-    execution_behaviour = ESsmWaitForSignal;
-    timeout = 10000;
-    background = 1; // To background
-    }
 
 // ---------------------------------------------------------------------------
 // r_cmd_createswp_rfstatus
@@ -508,45 +501,14 @@
     }
 
 // ---------------------------------------------------------------------------
-// r_cmd_fsemail
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_APP_INFO r_cmd_fsemail
-    {
-    priority = 0xFFA7;
-    name = "fsmailserver.exe";
-    execution_behaviour = ESsmWaitForSignal;
-    timeout = 10000;
-    background = 1; // To background
-    monitor_info = r_mon_3_restarts_ignore;
-    conditional_information = r_cond_feat_emailfw;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_gsserver
+// r_cmd_mdswatchdog
 // ---------------------------------------------------------------------------
 //
-RESOURCE SSM_START_PROCESS_INFO r_cmd_gsserver
+RESOURCE SSM_START_PROCESS_INFO r_cmd_mdswatchdog
     {
     priority = 0xFFA7;
-    name = "z:\\sys\\bin\\gsserver.exe";
-    execution_behaviour = ESsmWaitForSignal;
-    timeout = 10000;
-    monitor_info = r_mon_3_restarts_ignore;
-    conditional_information = r_cond_feat_tvout;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_harvestersrv
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_PROCESS_INFO r_cmd_harvestersrv
-    {
-    priority = 0xFFA7;
-    name = "harvesterserver.exe";
-    execution_behaviour = ESsmWaitForSignal;
-    timeout = 10000;
-    monitor_info = r_mon_3_restarts_ignore;
+    name = "mdswatchdog.exe";
+    execution_behaviour = ESsmFireAndForget;
     }
 
 // ---------------------------------------------------------------------------
@@ -600,96 +562,7 @@
     monitor_info = r_mon_3_restarts_ignore;
     }
 
-// ---------------------------------------------------------------------------
-// r_cmd_logs
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_APP_INFO r_cmd_logs
-    {
-    priority = 0x7EFE;
-    name = "z:\\sys\\bin\\logs.exe";
-    execution_behaviour = ESsmWaitForSignal;
-    timeout = 10000;
-    background = 1; // To background
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_mce
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_APP_INFO r_cmd_mce
-    {
-    priority = 0x7EFA;
-    name = "mce.exe";
-    execution_behaviour = ESsmWaitForSignal;
-    timeout = 10000;
-    background = 1; // To background
-    }
 	
-// ---------------------------------------------------------------------------
-// r_cmd_mediasyncserver
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_PROCESS_INFO r_cmd_mediasyncserver
-    {
-    priority = 0xFFA6;
-    name = "z:\\sys\\bin\\mediasyncserver.exe";
-    execution_behaviour = ESsmWaitForSignal;
-    timeout = 10000;
-    monitor_info = r_mon_3_restarts_ignore;
-    }
-		
-// ---------------------------------------------------------------------------
-// r_cmd_ncnlist
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_PROCESS_INFO r_cmd_ncnlist
-    {
-    priority = 0xFFA7;
-    name = "z:\\sys\\bin\\ncnlist.exe";
-    execution_behaviour = ESsmWaitForSignal;
-    timeout = 10000;
-    monitor_info = r_mon_3_restarts_ignore;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_pbk2
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_APP_INFO r_cmd_pbk2
-    {
-    priority = 0x7EFC;
-    name = "z:\\sys\\bin\\phonebook2.exe";
-    execution_behaviour = ESsmWaitForSignal;
-    timeout = 10000;
-    background = 1; // To background
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_pocstarter
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_PROCESS_INFO r_cmd_pocstarter
-    {
-    priority = 0xFFA7;
-    name = "z:\\sys\\bin\\pocstarter.exe";
-    execution_behaviour = ESsmWaitForSignal;
-    timeout = 10000;
-    conditional_information = r_cond_feat_omapoc;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_predefinedcontacts
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_PROCESS_INFO r_cmd_predefinedcontacts
-    {
-    priority = 0xFFA7;
-    name = "z:\\sys\\bin\\predefinedcontacts.exe";
-    execution_behaviour = ESsmWaitForSignal;
-    retries = 2;
-    conditional_information = r_cond_firstboot_or_fotareset_or_deeprfsreset;
-    }
 
 // ---------------------------------------------------------------------------
 // r_cmd_psstate
@@ -770,20 +643,6 @@
     }
 
 // ---------------------------------------------------------------------------
-// r_cmd_screensaver
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_APP_INFO r_cmd_screensaver
-    {
-    priority = 0x7EF2;
-    name = "z:\\sys\\bin\\screensaver.exe";
-    background = 1; // To background
-    execution_behaviour = ESsmWaitForSignal;
-    timeout = 10000;
-    monitor_info = r_mon_3_restarts_ignore;
-    }
-
-// ---------------------------------------------------------------------------
 // r_cmd_setswp_rfoff
 // ---------------------------------------------------------------------------
 //
@@ -862,31 +721,6 @@
     conditional_information = r_cond_feat_omasuplplugins;
     }
 
-// ---------------------------------------------------------------------------
-// r_cmd_systemams
-// ---------------------------------------------------------------------------
-//
-#ifdef __JAVA
-RESOURCE SSM_START_PROCESS_INFO r_cmd_javacaptain
-    {
-    priority = 0xFFB7;
-    name = "javacaptain.exe";
-    execution_behaviour = ESsmWaitForSignal;
-    timeout = 10000;
-    }
-#endif // __JAVA
-// ---------------------------------------------------------------------------
-// r_cmd_vcommandmgr
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_APP_INFO r_cmd_vcommandmgr
-    {
-    priority = 0xFFA7;
-    name = "z:\\sys\\bin\\vcommandmanager.exe";
-    background = 1; // To background
-    execution_behaviour = ESsmFireAndForget; // -- does not call Rendezvous() --
-    conditional_information = r_cond_sind_and_no_sdnd;
-    }
 
 // ---------------------------------------------------------------------------
 // r_cmd_videocenter
@@ -915,21 +749,6 @@
     execution_behaviour = ESsmWaitForSignal;
     }
 
-// ---------------------------------------------------------------------------
-// r_cmd_waitforidle
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_waitidle
-    {
-    priority = 0xFFC7;
-    severity = ECmdCriticalSeverity;
-    dllname = "ssmsystemcmds.dll";
-    ordinal = 5; // WaitPsKeyExact
-    dll_data = r_dlldata_waitidle;
-    unload_on_finish = ENeverUnload;
-    retries = 2;
-    execution_behaviour = ESsmWaitForSignal;
-    }
 
 // ---------------------------------------------------------------------------
 // r_cmd_waitforofflinequery
@@ -948,22 +767,6 @@
     }
 
 // ---------------------------------------------------------------------------
-// r_cmd_waitforphone
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_waitforphone
-    {
-    priority = 0xFFD7;
-    severity = ECmdCriticalSeverity;
-    dllname = "ssmsystemcmds.dll";
-    ordinal = 5; // WaitPsKeyExact
-    dll_data = r_dlldata_waitphone;
-    unload_on_finish = ENeverUnload;
-    retries = 2;
-    execution_behaviour = ESsmWaitForSignal;
-    }
-
-// ---------------------------------------------------------------------------
 // r_cmd_watcher
 // ---------------------------------------------------------------------------
 //
@@ -973,19 +776,6 @@
     name = "z:\\sys\\bin\\watcher.exe";
     monitor_info = r_mon_3_restarts_ignore;
     }
-
-// ---------------------------------------------------------------------------
-// r_cmd_xnthemesrv
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_PROCESS_INFO r_cmd_xnthemesrv
-    {
-    priority = 0xFFA7;
-    name = "z:\\sys\\bin\\xnthemeserver.exe";
-    execution_behaviour = ESsmWaitForSignal;
-    timeout = 10000;
-    monitor_info = r_mon_3_restarts_ignore;
-    }
 	
 // ---------------------------------------------------------------------------
 // r_cmd_clearstartupreason
@@ -1001,6 +791,19 @@
     execution_behaviour = ESsmWaitForSignal;
     }
 
+// ---------------------------------------------------------------------------
+// r_cmd_javacaptain
+// ---------------------------------------------------------------------------
+//
+#ifdef __JAVA
+RESOURCE SSM_START_PROCESS_INFO r_cmd_javacaptain
+    {
+    priority = 0xFFB7;
+    name = "javacaptain.exe";
+    execution_behaviour = ESsmWaitForSignal;
+    timeout = 10000;
+    }
+#endif // __JAVA
 
 // ===========================================================================
 // DLL data items in alphabetical order
--- a/sysstatemgmt/ssmcmdlists/data/noncriticalcmdlist_hw.rss	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/ssmcmdlists/data/noncriticalcmdlist_hw.rss	Fri Mar 19 09:58:42 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009-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"
@@ -72,7 +72,6 @@
         r_cmd_sipprofilesrv,
 #endif // defined !SYMBIAN_EXCLUDE_SIP
         r_cmd_remotelock,
-        r_cmd_hotspotsrv,
 	// prio 0x7EF1
 	r_cmd_activitymonitor1,
 	// prio 0x7EF0
@@ -133,19 +132,6 @@
 	
 	
 // ---------------------------------------------------------------------------
-// r_cmd_hotspotsrv
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_PROCESS_INFO r_cmd_hotspotsrv
-    {
-    priority = 0xFFA7;
-    name = "hotspotserver.exe";
-    execution_behaviour = ESsmWaitForSignal;
-    timeout = 10000;
-    conditional_information = r_cond_protwlan_and_firstboot_or_deeprfs_or_normalrfs;
-    }
-
-// ---------------------------------------------------------------------------
 // r_cmd_provisioning
 // ---------------------------------------------------------------------------
 //
@@ -206,26 +192,6 @@
 //
 
 // ---------------------------------------------------------------------------
-// r_cond_ps_firstboot
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_CND_PUB_SUB_VALUE r_cond_ps_firstboot
-    {
-    category		  = 0x101F8766; // KPSUidStartup
-    key           = 0x00000013; // KPSStartupFirstBoot
-    value         = 101;        // EPSStartupFirstBoot
-    }
-
-// ---------------------------------------------------------------------------
-// r_cond_feat_protocolwlan
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_CND_FEATURE_VALUE r_cond_feat_protocolwlan
-    {
-    feature_id = KFeatureIdProtocolWlan;
-    }
-
-// ---------------------------------------------------------------------------
 // r_cond_feat_remotelock
 // ---------------------------------------------------------------------------
 //
@@ -244,60 +210,6 @@
     }
 
 // ---------------------------------------------------------------------------
-// r_cond_firstboot_or_deeprfs
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_CND_LOGICAL_OR r_cond_firstboot_or_deeprfs
-    {
-    lhs = r_cond_ps_deep_rfs;
-    rhs = r_cond_ps_firstboot;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cond_firstboot_or_deeprfs_or_normalrfs
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_CND_LOGICAL_OR r_cond_firstboot_or_deeprfs_or_normalrfs
-    {
-    lhs = r_cond_ps_normal_rfs;
-    rhs = r_cond_firstboot_or_deeprfs;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cond_ps_normal_rfs
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_CND_PUB_SUB_VALUE r_cond_ps_normal_rfs
-    {
-    category = 0x101F8766; // KPSUidStartup
-    key = 0x00000045;      // KPSStartupReason
-    value = ENormalRFSReset;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cond_ps_deep_rfs
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_CND_PUB_SUB_VALUE r_cond_ps_deep_rfs
-    {
-    category = 0x101F8766; // KPSUidStartup
-    key = 0x00000045;      // KPSStartupReason
-    value = EDeepRFSReset;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cond_protwlan_and_firstboot_or_deeprfs_or_normalrfs
-// ( protocol WLAN ) AND ( first boot OR deep RFS OR normal RFS )
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_CND_LOGICAL_AND r_cond_protwlan_and_firstboot_or_deeprfs_or_normalrfs
-    {
-    lhs = r_cond_feat_protocolwlan;
-    rhs = r_cond_firstboot_or_deeprfs_or_normalrfs;
-    }
-	
-
-// ---------------------------------------------------------------------------
 // r_dlldata_activitymonitor_timeout
 // ---------------------------------------------------------------------------
 //
--- a/sysstatemgmt/ssmcmdlists/data/securitycheckcmdlist.rss	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/ssmcmdlists/data/securitycheckcmdlist.rss	Fri Mar 19 09:58:42 2010 +0200
@@ -69,19 +69,15 @@
         r_cmd_publishstate, // prio 0xFFF1
         r_cmd_psstate,      // prio 0xFFF0
         // prio 0xFFE7
-		r_cmd_menu,
-        r_cmd_idle,
-        // prio 0xFFE6
+        r_cmd_hbthemeserver,
+	    // prio 0xFFE6
         r_cmd_multiwaitforever1,
         // prio 0xFFE3
         r_cmd_startup,
         r_cmd_phone,
-        r_cmd_nitz,
-        // prio 0xFFE2
         r_cmd_multiwaitforever2,
         // prio 0xFFDF
-        r_cmd_touchscreen,
-        r_cmd_touchplg,
+        r_cmd_idle,
         // prio 0xFFDE
         r_cmd_multiwaitforever3,
         // prio 0xFFD8
@@ -109,29 +105,29 @@
     key = 0x00000031; // KPSSimStatus
     filename = "ssm.swp.policy.simstatus.dll";
     }
-
+	
+// ---------------------------------------------------------------------------
+// r_cmd_hbthemeserver
+// ---------------------------------------------------------------------------
+//
+RESOURCE SSM_START_PROCESS_INFO r_cmd_hbthemeserver
+    {
+    priority = 0xFFE7;
+    name = "z:\\sys\\bin\\hbthemeserver.exe";
+    execution_behaviour = ESsmDeferredWaitForSignal;
+    monitor_info = r_mon_100_restarts_reset;
+    }
+    
 // ---------------------------------------------------------------------------
 // r_cmd_idle
 // ---------------------------------------------------------------------------
 //
-RESOURCE SSM_START_PROCESS_INFO r_cmd_idle
+RESOURCE SSM_START_APP_INFO r_cmd_idle
     {
-    priority = 0xFFE7;
-    name = "z:\\sys\\bin\\ailaunch.exe";
+    priority = 0xFFDF;
+    name = "z:\\sys\\bin\\hsapplication.exe";
     execution_behaviour = ESsmDeferredWaitForSignal;
-    monitor_info = r_mon_max_restarts_ignore;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_menu
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_APP_INFO r_cmd_menu
-    {
-    priority = 0xFFE7;
-    name = "z:\\sys\\bin\\matrixmenu.exe";
-    execution_behaviour = ESsmDeferredWaitForSignal;
-    background = 1; // To background
+    
     }
 
 // ---------------------------------------------------------------------------
@@ -162,18 +158,6 @@
     }
 
 // ---------------------------------------------------------------------------
-// r_cmd_nitz
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_PROCESS_INFO r_cmd_nitz
-    {
-    priority = 0xFFE3;
-    name = "z:\\sys\\bin\\clockserver.exe";
-    execution_behaviour = ESsmFireAndForget; // -- does not call Rendezvous() --
-    monitor_info = r_mon_3_restarts_ignore;
-    }
-
-// ---------------------------------------------------------------------------
 // r_cmd_phone
 // ---------------------------------------------------------------------------
 //
@@ -265,32 +249,6 @@
     retries = 2;
     }
 
-// ---------------------------------------------------------------------------
-// r_cmd_touchplg
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_touchplg
-    {
-    priority = 0xFFDF;
-    severity = ECmdCriticalSeverity;
-    dllname = "tsccustcmds.dll";
-    ordinal = 1;
-    retries = 2;
-    execution_behaviour = ESsmDeferredWaitForSignal;
-    conditional_information = r_cond_firstboot_and_tscinstartup;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_touchscreen
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_PROCESS_INFO r_cmd_touchscreen
-    {
-    priority = 0xFFDF;
-    name = "z:\\sys\\bin\\touchscreencalib.exe";
-    execution_behaviour = ESsmDeferredWaitForSignal;
-    conditional_information = r_cond_firstboot_and_tscinstartup;
-    }
 
 // ===========================================================================
 // DLL data items in alphabetical order
--- a/sysstatemgmt/ssmcmdlists/data/uiservicescmdlist.rss	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/ssmcmdlists/data/uiservicescmdlist.rss	Fri Mar 19 09:58:42 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009-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"
@@ -82,12 +82,10 @@
         r_cmd_splash,
         // prio 0xFF97
         r_cmd_tzsrv,
-        r_cmd_cntsrv,
-        r_cmd_randsrv,
         r_cmd_mediator,
         r_cmd_hwrmsrv,
         r_cmd_rtc,
-        // prio 0xFF96 - tzsrv, randsrv, cntsrv, mediator, hwrmsrv
+        // prio 0xFF96 - tzsrv, mediator, hwrmsrv
         r_cmd_multiwaitforever1,
         // prio 0xFF87
         r_cmd_dbrecovery,
@@ -148,19 +146,6 @@
     }
 
 // ---------------------------------------------------------------------------
-// r_cmd_cntsrv
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_PROCESS_INFO r_cmd_cntsrv
-    {
-    priority = 0xFF97;
-    name = "Z:\\sys\\bin\\cntsrv.exe";
-    args = "-nontransient";
-    severity = ECmdCriticalSeverity;
-    execution_behaviour = ESsmDeferredWaitForSignal;
-    }
-
-// ---------------------------------------------------------------------------
 // r_cmd_dbrecovery
 // ---------------------------------------------------------------------------
 //
@@ -294,19 +279,6 @@
     }
 
 // ---------------------------------------------------------------------------
-// r_cmd_randsrv
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_PROCESS_INFO r_cmd_randsrv
-    {
-    priority = 0xFF97;
-    name = "Z:\\sys\\bin\\randsvr.exe";
-    severity = ECmdCriticalSeverity;
-    execution_behaviour = ESsmWaitForSignal;
-    retries = 2;
-    }
-
-// ---------------------------------------------------------------------------
 // r_cmd_rfsdeep
 // ---------------------------------------------------------------------------
 //
--- a/sysstatemgmt/systemstatemgr/cmd/inc/ssmcommandlistresourcereaderimpl.h	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstatemgr/cmd/inc/ssmcommandlistresourcereaderimpl.h	Fri Mar 19 09:58:42 2010 +0200
@@ -55,7 +55,8 @@
 		EInitialiseNextStep,
 		EInitialiseSysDriveStep,
 		EPrepareFirstStep,
-		EPrepareNextStep
+		EPrepareNextStep,
+		EInitialiseExtFolderStep
 		};
 
 	NONSHARABLE_CLASS(TMapping)
@@ -118,6 +119,9 @@
 		void DoInitialiseNextStepL();
 #ifdef SYMBIAN_SSM_FLEXIBLE_MERGE
 		void DoInitialiseSysDriveStepL();
+#ifdef __WINS__ 
+		void DoInitialiseExtFolderStepL();
+#endif
 #endif
 		CResourceFile* OpenResourceFileL(const TDesC& aFileName);
 		void ParseFileL(CResourceFile* aResourceFile);
@@ -135,6 +139,12 @@
 		RBuf iSystemDrivePath;
 		CDir* iRssFileEntriesInSysDrive;
 		TInt iSysDriveEntryIndex;
+#ifdef __WINS__ 
+	    CDir* iExtendedResourceFileEntries;
+	    RBuf iExtendedPath;
+	    TInt iExtendedEntryIndex;
+#endif //__WINS__
+	      
 #endif	//SYMBIAN_SSM_FLEXIBLE_MERGE
 		};
 
--- a/sysstatemgmt/systemstatemgr/cmd/src/ssmcommandfactory.cpp	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstatemgr/cmd/src/ssmcommandfactory.cpp	Fri Mar 19 09:58:42 2010 +0200
@@ -333,7 +333,6 @@
     {
     CSsmCommandBase* cmd = NULL;
     TSsmCommandType const cmdType = aSsmCommand.Type();
-    DEBUGPRINT2A("Adding command type in CLE commandlist: %d", cmdType);
     
     switch(cmdType)
         {
--- a/sysstatemgmt/systemstatemgr/cmd/src/ssmcommandlistimpl.cpp	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstatemgr/cmd/src/ssmcommandlistimpl.cpp	Fri Mar 19 09:58:42 2010 +0200
@@ -237,8 +237,6 @@
 //@panic ECmdNullPtr if the information used to create command is null
 void CSsmCommandListImpl::Execute( const TInt aIndex, TRequestStatus& aStatus )
 	{
-	DEBUGPRINT2A("CSsmCommandListImpl::Execute - List Count() = %d", Count());
-	
 	__ASSERT_DEBUG( __IN_RANGE(aIndex, iCmdList.Count()), PanicNow(KPanicCmdList, ECmdListBadIdx));
 	__ASSERT_DEBUG( iCmdList[ aIndex ], PanicNow(KPanicCmdList, ECmdNullPtr));
 	
@@ -333,9 +331,9 @@
 		SSMLOGLEAVE(KErrArgument);
 		}
 	
-	const TSsmCommandType cmdType = aCmd->Type();	
+	const TSsmCommandType cmdType = aCmd->Type();
 	DEBUGPRINT2A("Adding command type: %d", cmdType);
-	
+
     if (ESsmCmdPublishSystemState == cmdType) 
         {
         ++iPublishSysStateCmdCount;
--- a/sysstatemgmt/systemstatemgr/cmd/src/ssmcommandlistresourcereader.cpp	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstatemgr/cmd/src/ssmcommandlistresourcereader.cpp	Fri Mar 19 09:58:42 2010 +0200
@@ -19,6 +19,7 @@
 #include "ssmpanic.h"
 #include "ssmcommandlistresourcereaderimpl.h"
 #include "ssmcommandlistimpl.h"
+#include "ssmdebug.h"
 
 /**
 Constructs a new command list resource reader object.
@@ -207,6 +208,7 @@
 EXPORT_C CSsmCommandList* CSsmCommandListResourceReader::GetCommandList()
 	{
 	__ASSERT_DEBUG(iImpl->IsCommandListReady(), PanicNow(KPanicCmdResourceReader, ENoPreparedCommandList));
+	DEBUGPRINT2A("CSsmCommandListResourceReader::GetCommandList - List Count() = %d", iCommandList->Count());
 	CSsmCommandList* const commandList = iCommandList;
 	iCommandList = NULL; // return ownership of command list to the caller
 	return commandList;
--- a/sysstatemgmt/systemstatemgr/cmd/src/ssmcommandlistresourcereaderimpl.cpp	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstatemgr/cmd/src/ssmcommandlistresourcereaderimpl.cpp	Fri Mar 19 09:58:42 2010 +0200
@@ -1,4 +1,4 @@
-// Copyright (c) 2007-2009 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"
@@ -29,7 +29,25 @@
 #include "ssmpanic.h"
 #ifdef SYMBIAN_SSM_FLEXIBLE_MERGE
 #include "ssmcommandlistimpl.h"
-#endif
+#ifdef __WINS__
+#include <u32hal.h>
+
+//Literal to be appended with the main folder path to get the extended folder path
+_LIT(KExtendedCommandListPath, "_ext\\");
+
+//Used for checking the presence of keyword for using extended folder in epoc.ini
+static TBool IsExtendedFolderDisabled()
+    {
+    TBool isMinimalBootDisable = EFalse;
+    
+    //If the keyword "MINIMALSTART" is found in epoc.ini then only commands from main folder are 
+    //executed else commands from both main and extended folder are executed.
+    UserSvr::HalFunction(EHalGroupEmulator, EEmulatorHalBoolProperty, (TAny*)"MINIMALSTART", &isMinimalBootDisable);
+    return isMinimalBootDisable;
+    }
+#endif // __WINS__
+#endif //SYMBIAN_SSM_FLEXIBLE_MERGE
+
 
 CSsmCommandListResourceReaderImpl* CSsmCommandListResourceReaderImpl::NewL(RFs& aFs, const TDesC& aCommandListPath, MSsmConditionalCallback& aConditionalCallback)
 	{
@@ -180,7 +198,7 @@
 			break;
 			}
 		}
-	DEBUGPRINT3(_L("Mapping Array for substate %d Contains %d entries"), iMappings[mappingIndex].iCommandListId, aMappingArray.Count());
+	DEBUGPRINT3(_L("Mapping Array for substate %04x Contains %d entries"), iMappings[mappingIndex].iCommandListId, aMappingArray.Count());
 	}
 
 #else
@@ -276,6 +294,9 @@
 
 CSsmCommandListResourceReaderImpl::CInitialiser::CInitialiser(RFs& aFs, CResourcePool& aResourcePool)
 	:CActiveBase(EPriorityStandard),  iFs(aFs), iResourcePool(aResourcePool)
+#if defined(SYMBIAN_SSM_FLEXIBLE_MERGE) && defined(__WINS__)
+	, iExtendedEntryIndex(0)
+#endif //SYMBIAN_SSM_FLEXIBLE_MERGE && __WINS__
 	{
 	CActiveScheduler::Add(this);
 	}
@@ -287,6 +308,10 @@
 	iPath.Close();
 #ifdef SYMBIAN_SSM_FLEXIBLE_MERGE
 	iSystemDrivePath.Close();
+#ifdef __WINS__ 
+	iExtendedPath.Close();
+#endif //__WINS__
+
 #endif
 	}
 
@@ -300,6 +325,10 @@
 #ifdef SYMBIAN_SSM_FLEXIBLE_MERGE
 	delete iRssFileEntriesInSysDrive;
 	iRssFileEntriesInSysDrive = NULL;
+#ifdef __WINS__ 
+	delete iExtendedResourceFileEntries;
+	iExtendedResourceFileEntries = NULL;
+#endif //__WINS__
 #endif
 	}
 
@@ -351,7 +380,12 @@
 #ifdef SYMBIAN_SSM_FLEXIBLE_MERGE
 	case EInitialiseSysDriveStep:
 		DoInitialiseSysDriveStepL();
-		break;		
+		break;
+#ifdef __WINS__ 
+	case EInitialiseExtFolderStep:
+	    DoInitialiseExtFolderStepL();
+	    break;
+#endif //__WINS__
 #endif
 	default:
 		PanicNow(KPanicCmdResourceReader, EInvalidRunLAction);
@@ -404,6 +438,24 @@
 	iEntryIndex = iResourceFileEntries->Count();
 
 #ifdef SYMBIAN_SSM_FLEXIBLE_MERGE
+#ifdef __WINS__
+	if(!IsExtendedFolderDisabled())
+	    {
+	    TFileName extPath(iPath);
+	    extPath.Replace(iPath.Length() - 1, 1, KExtendedCommandListPath);
+	    iExtendedPath.CreateL(extPath);
+	    DEBUGPRINT2(_L("Extended list path is %S"), &extPath);
+
+	    extPath.Append(KStar);
+	    const TInt extErr = (iFs.GetDir(extPath, TUidType(KUidResourceFile, TUid::Uid(KUidSsmCommandListResourceFile)), ESortNone, iExtendedResourceFileEntries));
+	    if (KErrNone == extErr)
+	        {
+	        iExtendedEntryIndex = iExtendedResourceFileEntries->Count();
+	        DEBUGPRINT2(_L("Number of resource files in extended folder : %d"), iExtendedEntryIndex);
+	        }	    
+	    }
+#endif //__WINS__
+
 	DEBUGPRINT2(_L("Number of resource files in ROM Drive : %d"),iEntryIndex );
 	// Now, get list of command list resource filenames from system drive too
 	TFileName sysPath(iSystemDrivePath);
@@ -471,16 +523,44 @@
 		}
 	else
 		{
-		// initialisation complete
-		iAction = EIdle;
-		delete iRssFileEntriesInSysDrive;
-		iRssFileEntriesInSysDrive = NULL;
+        iAction = EIdle;
+        delete iRssFileEntriesInSysDrive;
+        iRssFileEntriesInSysDrive = NULL;
+
+#ifdef __WINS__
+        if(!IsExtendedFolderDisabled())
+            {
+            //Initialise the command list from extended list only if it is enabled
+            iAction = EInitialiseExtFolderStep;    
+            }
+#endif //__WINS__
 		}
 	}
-#endif
+
+#ifdef __WINS__
+void CSsmCommandListResourceReaderImpl::CInitialiser::DoInitialiseExtFolderStepL()
+    {
+    //Append the file names from the extended folder only if it is enabled 
+    if (iExtendedEntryIndex--)
+        {
+        TFileName filename(iExtendedPath);
+        filename.Append((*iExtendedResourceFileEntries)[iExtendedEntryIndex].iName);
+        CResourceFile* const resourceFile = OpenResourceFileL(filename);
+        ParseFileL(resourceFile);
+        }
+    else
+        {
+        // initialisation complete
+        iAction = EIdle;
+        delete iExtendedResourceFileEntries;
+        iExtendedResourceFileEntries = NULL;
+        }
+    }
+#endif //__WINS__
+#endif //SYMBIAN_SSM_FLEXIBLE_MERGE
+
 CResourceFile* CSsmCommandListResourceReaderImpl::CInitialiser::OpenResourceFileL(const TDesC& aFileName)
 	{
-
 	// open the resource file
 	RFile file;
 	CleanupClosePushL(file);
@@ -721,6 +801,12 @@
 				inProgress = EFalse;
 				break;
 				}
+			else if((iCommandIndexInRssFile[iCurrentCommandListInMapping] == 0))
+					{
+					//The current commandlist is empty 
+					//go to the next commandlist in the mapping.
+					continue;
+					}
 			else
 				{
 				//open the next resource id and read the commands
@@ -733,7 +819,6 @@
 				iListReader.AdvanceL(sizeof(TUint16));
 				}
 			}
-		DEBUGPRINT2A("The value of RssFile's current command is %d ", iCommandIndexInRssFile[iCurrentCommandListInMapping]);
 #else
 	while(iCommandIndex && iBatchIndex--)
 		{
@@ -741,7 +826,6 @@
 #endif
 		// open command resource
 		const TInt commandResourceId = iListReader.ReadInt32L();
-		DEBUGPRINT2A("Reading command resource id %x", commandResourceId);
 		RResourceReader commandReader;
 #ifdef SYMBIAN_SSM_FLEXIBLE_MERGE
 		commandReader.OpenLC(iMappingArray[iCurrentCommandListInMapping].iResourceFile, commandResourceId);
--- a/sysstatemgmt/systemstatemgr/inc/ssmadaptationcli.h	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstatemgr/inc/ssmadaptationcli.h	Fri Mar 19 09:58:42 2010 +0200
@@ -1,4 +1,4 @@
-// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2009-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"
@@ -36,8 +36,12 @@
 public:
 	IMPORT_C TInt Connect();
 	IMPORT_C TInt Connect(TInt aAsyncMessageSlotCount);
+	//Used by testcode only
+#ifdef TEST_SSM_SERVER
+    TInt Connect(const TDesC& aServerName);
+#endif //TEST_SSM_SERVER
 private:
-	TInt DoConnect(TInt aAsyncMessageSlotCount);
+    TInt DoConnect(const TDesC& aServerName, TInt aAsyncMessageSlotCount);
 	TVersion Version() const;
 	};
 
--- a/sysstatemgmt/systemstatemgr/sus/inc/ssmadaptationcmn.h	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstatemgr/sus/inc/ssmadaptationcmn.h	Fri Mar 19 09:58:42 2010 +0200
@@ -1,4 +1,4 @@
-// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2009-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"
@@ -30,13 +30,11 @@
 	TInt Int0() const;
 	void ReadL(TInt aParamNumber,TPtr8 aParam);
 	TInt GetDesLength(TInt aParam);
+	void SetMessage(const RMessage2& aMessage);
 private:
 	RMessage2 iMessage;
-	TBool iMessageAvailable;
 public :
-	TSusAdaptionServerRequests iRequestType;
-	//To know whether the object is created using reserved heap or not.
-	TBool iUsingReservedHeap;
+	TSusAdaptionServerRequests iRequestType;	
 	};
 
 class RSsmAdaptationRequestQueue
@@ -48,14 +46,11 @@
 	void RemoveFromQueueAndComplete(const RMessage2 &aMessage);
 	TInt Queue(CAdaptationMessage *aPendingRequest);
 	void NotifyAndRemoveAll();
-	void RemoveFromQueueAndComplete(const RMessage2 &aMessage, RHeap *aReservedHeap);	
-	void NotifyAndRemoveAll(RHeap *aReservedHeap);
-	TInt Reserve(TInt aReserverCount);
-	TInt Count();
-	
+	TInt Count();	
 private:
 	RPointerArray<CAdaptationMessage > iQueue;
 		
 	};
 
+
 #endif	__SSMADAPTATIONCMN_H__
--- a/sysstatemgmt/systemstatemgr/sus/inc/susadaptionserver.h	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstatemgr/sus/inc/susadaptionserver.h	Fri Mar 19 09:58:42 2010 +0200
@@ -1,4 +1,4 @@
-// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2009-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"
@@ -37,6 +37,8 @@
 	{	
 public:
 	static CSsmAdaptationServer* NewLC();
+	static CSsmAdaptationServer* NewLC(const TDesC& aServerName);
+
 	~CSsmAdaptationServer();
 
 	//State Adaptation services 
@@ -73,7 +75,7 @@
 	void DoDeactivateRfForEmergencyCallL(const RMessage2& aMessage);
 	void DoEmergencyCallRfCancelL(const RMessage2& aMessage);
 	TInt SetAsPriorityClientL(CSsmAdaptationSession* aSession);
-	void RemovePriorityClient(CSsmAdaptationSession* aSession);
+	void RemovePriorityClient(CSsmAdaptationSession* aSession);	
 #ifdef _DEBUG
 	void UnloadAdaptationsAndObservers();
 #endif
@@ -86,7 +88,7 @@
 //From Policy Server
 	CPolicyServer::TCustomResult CustomSecurityCheckL(const RMessage2& aMsg, TInt& aAction, TSecurityInfo& aMissing);
 	CSsmAdaptationServer();
-	void ConstructL();
+	void ConstructL(const TDesC& aServerName);
 	//from CServer2
 	CSession2* NewSessionL(const TVersion& aVersion, const RMessage2& aMessage) const;
 	void LoadStateAdaptationL();
--- a/sysstatemgmt/systemstatemgr/sus/inc/susemergencycallrfadaptation.h	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstatemgr/sus/inc/susemergencycallrfadaptation.h	Fri Mar 19 09:58:42 2010 +0200
@@ -1,4 +1,4 @@
-// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2009-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"
@@ -37,12 +37,11 @@
 
 @internalComponent
 */
-
-
+class CEmergencyAdaptationMessage;
 class CEmergencyCallRfAdaptation : public CActive
 {
 public:
-	static CEmergencyCallRfAdaptation* NewL(MEmergencyCallRfAdaptation& aAdaptation);
+	static CEmergencyCallRfAdaptation* NewL(MEmergencyCallRfAdaptation* aAdaptation);
 	~CEmergencyCallRfAdaptation();
 
 	void Release();
@@ -52,38 +51,71 @@
 	void SetPriorityClientSession(CSsmAdaptationSession* aPriorityClientSession);
 	void RemovePriorityClientSession();
 	void ReserveMemoryL();
+	void DeleteAdaptationMessage();
+	void NotifyAndRemoveAll();
+	void Dequeue(CEmergencyAdaptationMessage *&aCurrentMessage);
 protected:
 	void RunL();
 	TInt RunError( TInt aError );
 	void DoCancel();
+	void ConstructL(MEmergencyCallRfAdaptation* aAdaptation);
 
 private:
 
-	CEmergencyCallRfAdaptation(MEmergencyCallRfAdaptation& aAdaptation);
+	CEmergencyCallRfAdaptation();
 	void SubmitOrQueueL(const RMessage2 &aMessage);
-	void Submit(CAdaptationMessage*& aMessage);
+	void Submit(CEmergencyAdaptationMessage*& aMessage);
 	
 private:
-	CAdaptationMessage *iCurrentMessage;
-	RSsmAdaptationRequestQueue iPendingRequestsQueue;
+	CEmergencyAdaptationMessage *iCurrentMessage;	
+	RPointerArray<CEmergencyAdaptationMessage>iPendingEmergencyRequestsQueue;
 	
-	MEmergencyCallRfAdaptation& iEmergencyCallRfAdaptation;
-	//Reserving Heap to create CAdaptationMessage in OOM condition for priority clients
-	RHeap* iReservedHeap;
+	MEmergencyCallRfAdaptation* iEmergencyCallRfAdaptation;
 	//For storing PriorityClientsession
     CSsmAdaptationSession* iPriorityClientSession;
+    
+    //Count of unused reserved pointers.  
+    TInt iReserveMsgCount;
+    //Pointer Array to store reserved adaptation message pointers
+    RPointerArray<CEmergencyAdaptationMessage> iAdaptationReservedMessageArray; 
     };
 
+enum TMessageStatus
+    {
+    EMsgStatusNULL = 0, //Default status of Message is 0
+    EMsgReserved   = 1, //Flag to indicate the message is using Reserved memory.
+    EMsgInUse      = 2  //Flag to indicate the Reserved message is Used.
+    };
 /**
- * Used for pushing the CAdaptationMessage object in to cleanup stack. This is needed as
- * the message is created using the reserved heap should be freed back to reserved heap
- * instead of deleting.
- * @internalComponent
+ * Class to hold CAdaptationMessage pointer and the value to know whether the current message is from reserved pool
+ * or normal message.
  */
-struct TStoreAdaptationMessage 
+class CEmergencyAdaptationMessage : public CBase
     {
+public:    
+    static CEmergencyAdaptationMessage* NewL(const RMessage2& aMessage);
+    static CEmergencyAdaptationMessage* NewL(const RMessage2& aMessage, const TInt8 aMessageStatus);    
+    
+    ~CEmergencyAdaptationMessage();
+    
+    inline void UnsetMessageStatus(const TInt8 aMessageStatus);
+    inline void SetMessageStatus(const TInt8 aMessageStatus);
+    inline TBool IsMessageReserved() const;
+    inline TBool IsMessageInuse() const;    
+    void SetMessage(const RMessage2& aMessage);
+    TInt Function() const;
+    CSession2 *Session() const;
+    void Complete(TInt aReason);
+    
+protected:
+    void ConstructL(const RMessage2& aMessage);
+    
+private:
+    CEmergencyAdaptationMessage(const TInt8 aMessageStatus);
+    
+private:
     CAdaptationMessage* iAdaptationMessage;
-    RHeap* iReservedHeap;
+    // To know the Adaptation Message status.
+    TInt8 iMessageStatus;
     };
-
 #endif // __SUSEMERGENCYCALLRFADAPTATION_H__
--- a/sysstatemgmt/systemstatemgr/sus/inc/suspanic.h	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstatemgr/sus/inc/suspanic.h	Fri Mar 19 09:58:42 2010 +0200
@@ -1,4 +1,4 @@
-// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2009-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"
@@ -36,7 +36,12 @@
 	//CSusAdaptionServer errors
 	EAdaptionServerError1,
 	EAdaptionServerError2,
-	ELibraryAlreadyOpen
+	ELibraryAlreadyOpen,
+	
+	//Emergency Adaptation panic codes
+	EEmergencyCallRfAdaptationNullPtrError1,
+	EEmergencyCallRfAdaptationNullPtrError2,
+	EEmergencyAdaptationMessageNullPtrError
 	};
 
 #endif // __SUSPANICCODES_H__
--- a/sysstatemgmt/systemstatemgr/sus/src/ssmadaptationcli.cpp	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstatemgr/sus/src/ssmadaptationcli.cpp	Fri Mar 19 09:58:42 2010 +0200
@@ -1,4 +1,4 @@
-// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2009-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"
@@ -33,8 +33,7 @@
  */
 EXPORT_C TInt RSsmAdaptationBase::Connect()
 	{
-	const TInt err = DoConnect(KAsyncMessageSlots);
-	return err;
+	return Connect(KAsyncMessageSlots);	 
 	}
 
 /**
@@ -52,15 +51,30 @@
  */
 EXPORT_C TInt RSsmAdaptationBase::Connect(TInt aAsyncMessageSlotCount)
 	{
-	const TInt err = DoConnect(aAsyncMessageSlotCount);
+	const TInt err = DoConnect(KSusAdaptionServerName, aAsyncMessageSlotCount);
 	return err;
-	}
+	} 
+
+/**
+ * This exists for testing purposes only
+ * @internalComponent
+ */
+#ifdef TEST_SSM_SERVER
 
-TInt RSsmAdaptationBase::DoConnect(TInt aAsyncMessageSlotCount)
+TInt RSsmAdaptationBase::Connect(const TDesC& aServerName)
+    {
+    return DoConnect(aServerName, KAsyncMessageSlots);
+    }
+#endif //TEST_SSM_SERVER
+
+/**
+ @internalComponent
+ */
+TInt RSsmAdaptationBase::DoConnect(const TDesC& aServerName, const TInt aAsyncMessageSlotCount)
 	{
 	if(!Handle())
 		{
-		return CreateSession(KSusAdaptionServerName, Version(), aAsyncMessageSlotCount);
+		return CreateSession(aServerName, Version(), aAsyncMessageSlotCount);
 		}
 	
 	return KErrAlreadyExists;
--- a/sysstatemgmt/systemstatemgr/sus/src/susadaptionserver.cpp	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstatemgr/sus/src/susadaptionserver.cpp	Fri Mar 19 09:58:42 2010 +0200
@@ -1,4 +1,4 @@
-// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2009-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"
@@ -59,8 +59,8 @@
 	};
 
 //ESetAsPriorityClient request is allowed only for priotity clients(Telephony). Inorder to prevent the access
-//client request will be policed using C32 SID
-#define KC32SecureId 0x10003D33
+//client request will be policed using C32exe.exe SID
+#define KC32SecureId 0x101F7989
 
 /**
  Array containing the different security checks performed by this server 
@@ -168,8 +168,7 @@
 	}
  
  
-CSsmAdaptationServer::CSsmAdaptationServer( ): CPolicyServer(EPriorityStandard, KSusAdaptionServerPolicy)
-,iPriorityClientSession(NULL)
+CSsmAdaptationServer::CSsmAdaptationServer(): CPolicyServer(EPriorityStandard, KSusAdaptionServerPolicy)
 	{
 	}
 
@@ -207,15 +206,26 @@
  */
 CSsmAdaptationServer* CSsmAdaptationServer::NewLC( )
 	{
-	CSsmAdaptationServer* server = new(ELeave) CSsmAdaptationServer();
-	CleanupStack::PushL (server );
-	server->ConstructL ( );
-	return server;
+	return CSsmAdaptationServer::NewLC(KSusAdaptionServerName);
 	}
 
 /**
+ * Overloaded NewLC, which starts the server with the provided name.
+ @param aServerName - Name of the Server.
  */
-void CSsmAdaptationServer::ConstructL( )
+CSsmAdaptationServer* CSsmAdaptationServer::NewLC(const TDesC& aServerName)
+    {
+    CSsmAdaptationServer* server = new(ELeave) CSsmAdaptationServer();
+    CleanupStack::PushL(server);
+    server->ConstructL(aServerName);
+    return server;
+    }
+
+
+/**
+ * ConstructL()
+ */
+void CSsmAdaptationServer::ConstructL(const TDesC& aServerName)
 	{
 
 	__ASSERT_ALWAYS( KErrNone == User::SetCritical(User::ESystemCritical),
@@ -225,7 +235,7 @@
 			User::Panic(KPanicSsmSus, EAdaptionServerError2));
 
 	iSusAdaptationPluginLoader = CSusAdaptationPluginLoader::NewL();
-	TInt err = Start(KSusAdaptionServerName);
+	TInt err = Start(aServerName);
 #ifdef  TESTSUSADAPTATIONPLUGINLOAD_OOM
 	if (err != KErrNone && err != KErrAlreadyExists)
 		{
@@ -501,12 +511,8 @@
         {
         LoadEmergencyCallRfAdaptationL();    
         }
-
 	iEmergencyCallRfAdaptation->DoEmergencyCallRfAdaptationCancelL(aMessage);
 	}
-
-
-	
 	
 void CSsmAdaptationServer::LoadStateAdaptationL()
 	{
@@ -564,11 +570,9 @@
 	{
 	MEmergencyCallRfAdaptation *emergencyCallRfAdaptationPlugin = iSusAdaptationPluginLoader->CreateEmergencyCallRfAdaptationL();
     CleanupReleasePushL(*emergencyCallRfAdaptationPlugin);
-    //From here emergencyCallRfAdaptationPlugin object will be owned by iEmergencyCallRfAdaptation
-    iEmergencyCallRfAdaptation = CEmergencyCallRfAdaptation::NewL(*emergencyCallRfAdaptationPlugin);    
+	//From here emergencyCallRfAdaptationPlugin object will be owned by iEmergencyCallRfAdaptation
+    iEmergencyCallRfAdaptation = CEmergencyCallRfAdaptation::NewL(emergencyCallRfAdaptationPlugin);    
     CleanupStack::Pop(emergencyCallRfAdaptationPlugin);
-    //Reserve memory for performing Emergency call during OOM condition
-    iEmergencyCallRfAdaptation->ReserveMemoryL();    
 	}
 
 #ifdef _DEBUG
@@ -656,15 +660,21 @@
 	}
 
 CAdaptationMessage::CAdaptationMessage(const RMessage2 &aMessage): CBase(),iMessage(aMessage)
-,iMessageAvailable(ETrue),iUsingReservedHeap(EFalse)
 	{
 	}
  
 void CAdaptationMessage::Complete(TInt aReason)
 	{
-	iMessage.Complete(aReason);  	
+    if (!(iMessage.IsNull()))
+        {
+        iMessage.Complete(aReason);  	
+        }
 	}
 
+void CAdaptationMessage::SetMessage(const RMessage2& aMessage)
+    {
+    iMessage = const_cast<RMessage2&> (aMessage);
+    }
 
 void RSsmAdaptationRequestQueue::NotifyAndRemoveAll()
 	{
@@ -679,26 +689,6 @@
 	iQueue.Reset();		
 	}
 
-void RSsmAdaptationRequestQueue::NotifyAndRemoveAll(RHeap *aReservedHeap)
-    {
-    TInt index,count = iQueue.Count();
-    
-    for(index =0;index < count ;index++)
-        {
-        iQueue[index]->Complete(KErrServerTerminated);
-        if(iQueue[index]->iUsingReservedHeap)
-            {
-            aReservedHeap->Free(iQueue[index]);
-            }
-        else
-            {
-            delete iQueue[index];
-            }
-        iQueue[index] = NULL;
-        }
-    iQueue.Reset();     
-    }
-
 void RSsmAdaptationRequestQueue::Close()
 	{
 	iQueue.Close();
@@ -736,33 +726,6 @@
 	
 	}
 
-void RSsmAdaptationRequestQueue::RemoveFromQueueAndComplete(const RMessage2 &aMessage, RHeap *aReservedHeap )
-    {
-
-    CAdaptationMessage *messageToBeDeleted;
-    
-    // iQueue.Count() is recalculated each time as the object is removed from the 
-    // array(which reduces the number of object pointers in the array
-    for(TInt index = 0; index < iQueue.Count(); ++index )
-        {
-        if(aMessage.Session() == iQueue[index]->Session())
-            {
-            messageToBeDeleted = iQueue[index];
-            DEBUGPRINT2A("RSsmAdaptationRequestQueue(aMessage,ReservedHeap)called to cancel the request with function id: %d", messageToBeDeleted->Function());
-            iQueue.Remove(index);
-            messageToBeDeleted->Complete(KErrCancel);
-            if(messageToBeDeleted->iUsingReservedHeap)
-                {
-                aReservedHeap->Free(messageToBeDeleted);
-                }
-            else
-                {
-                delete messageToBeDeleted;
-                }
-            --index;
-            }
-        }
-    }
 void RSsmAdaptationRequestQueue::Dequeue(CAdaptationMessage *&aCurrentMessage)
 	{
 	aCurrentMessage = iQueue[0];
@@ -773,11 +736,6 @@
 	return iQueue.Append(aPendingRequest);
 	} 
 
-TInt RSsmAdaptationRequestQueue::Reserve(TInt aReserverCount)
-    {
-    return(iQueue.Reserve(aReserverCount));
-    }
-
 /**
  * Method to get number of object pointers in the Queue
  */
--- a/sysstatemgmt/systemstatemgr/sus/src/susemergencycallrfadaptation.cpp	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstatemgr/sus/src/susemergencycallrfadaptation.cpp	Fri Mar 19 09:58:42 2010 +0200
@@ -1,4 +1,4 @@
-// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2009-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"
@@ -18,23 +18,27 @@
 #include <e32debug.h>
 #include <ssm/ssmadaptation.h>
 #include "susemergencycallrfadaptation.h"
+#include "suspanic.h"
 
 
+//Count to reserve space for one Activate Rf call + one Deactive Rf message in Queue
+const TInt KReserveCount = 2;
 /**
- * Function used to cleanup the CAdaptationMessage object which is pushed to cleanup stack incase of Leave
- * CAdaptationMessage message will be freed back to reserved heap incase of it is created using reserved heap.
+ * Function used to cleanup the CAdaptationMessage object which is pushed on to the cleanup stack incase of Leave.
+ * CAdaptationMessage message will be reset to hold default values, if it is using the precreated message pointer.
  * or else message will be deleted.
  */
 static void DoCleanUp(TAny* aAdaptationMessage)
     {
-    TStoreAdaptationMessage* storeMessage = static_cast <TStoreAdaptationMessage*>(aAdaptationMessage);
-    if(storeMessage->iAdaptationMessage->iUsingReservedHeap)
+    CEmergencyAdaptationMessage* storeAdaptationMessage = static_cast <CEmergencyAdaptationMessage*>(aAdaptationMessage);
+    storeAdaptationMessage->Complete(KErrNone);
+    if(storeAdaptationMessage->IsMessageReserved())
         {
-        storeMessage->iReservedHeap->Free(storeMessage->iAdaptationMessage);
+        storeAdaptationMessage->UnsetMessageStatus(EMsgInUse);
         }
     else
         {
-        delete storeMessage->iAdaptationMessage;
+        delete storeAdaptationMessage;
         }
     }
 
@@ -43,71 +47,83 @@
 */
 void CEmergencyCallRfAdaptation::SubmitOrQueueL(const RMessage2 &aMessage)
 	{
-	CAdaptationMessage *messageCopy = NULL;	
-	TRAPD(err , messageCopy = new(ELeave) CAdaptationMessage(aMessage));
-	//Use preallocated heap for creating CAdaptationMessage under OOM condition, if it is a priority client
+    CEmergencyAdaptationMessage *storeAdaptationMessage = NULL;
+    TRAPD(err, storeAdaptationMessage = CEmergencyAdaptationMessage::NewL(aMessage));    
+    
+    //Allow only priority client to perform emergency call.
     if (KErrNoMemory == err && aMessage.Session() == iPriorityClientSession)
         {
-        DEBUGPRINT1A("CAdaptationMessage will be created using Reserved Heap");
-        TAny* messagePtr = iReservedHeap->AllocL(sizeof(CAdaptationMessage));
-        messageCopy = new (messagePtr)CAdaptationMessage(aMessage);
-        messageCopy->iUsingReservedHeap = ETrue;
+        DEBUGPRINT1A("CEmergencyAdaptationMessage will be created using reserved pointers");
+        if ( iReserveMsgCount == 0 )
+           {
+           DEBUGPRINT1A("There is no reserved message to perform emergency call");
+           User::Leave(err);
+           }
+        //Traverse through the reserved message array to look for free message.
+        for ( TInt index = 0 ; index < KReserveCount ; ++index )
+            {
+            //Use the reserve message, if it is not already used.
+            if (!(iAdaptationReservedMessageArray[index]->IsMessageInuse()))
+                {
+                iAdaptationReservedMessageArray[index]->SetMessage(aMessage);
+                iAdaptationReservedMessageArray[index]->SetMessageStatus(EMsgInUse);
+                storeAdaptationMessage = iAdaptationReservedMessageArray[index];
+                --iReserveMsgCount;
+                break;
+                }
+            }
         }
     else
         {
         User::LeaveIfError(err);
         }
-	  
 	if(!IsActive())
 		{
-		Submit(messageCopy);
+		Submit(storeAdaptationMessage);
 		}
 	else 
 		{
-		//Store the CAdaptationMessage pointer and iReservedHeap in a struct inorder to cleanup 
-		//depending on the reserved heap/normal heap used.
-		TStoreAdaptationMessage storeMessage;
-		storeMessage.iAdaptationMessage = messageCopy;
-		storeMessage.iReservedHeap = iReservedHeap;
-		CleanupStack::PushL(TCleanupItem(DoCleanUp, &storeMessage ));
+		//Push the CEmergencyAdaptationMessage pointer on to the cleanup stack and reset/delete the pointer
+		//depending on using precreated pointer/new pointer.
+		CleanupStack::PushL(TCleanupItem(DoCleanUp, storeAdaptationMessage ));
 		DEBUGPRINT2A("CEmergencyCallRfAdaptationRequests queueing request with function id: %d", aMessage.Function());
-		//Reserve heap only in non OOM condition
-		if(messageCopy->iUsingReservedHeap == EFalse)
+		//Reserve slot only in non OOM condition
+		if(!(storeAdaptationMessage->IsMessageReserved()))
 		    {
-		    //Always reserve 2 slots in queue for Emergency call requests. Slots will be reserved if count
-		    //to request memory(RPointerArray.Reserve(count)) is greater than the existing reserved memory in
-		    //RPonterArray. So there will be memory allocation only when
-		    //iPendingRequestsQueue.Count()+ reserveCount + 1(for the present message))
-		    // > already reserved memory.
-		    const TInt reserveCount = 2;
-		    err = iPendingRequestsQueue.Reserve(iPendingRequestsQueue.Count() + reserveCount + 1 );
+		    //Priority clients are allowed to queue only two(KReserveCount) emergengency call request in the OOM condition.
+		    //So always request to reserve only iPendingRequestsQueue.Count()+ iReserveMsgCount + 1
+		    //slots.
+		    //Memory will be only reserved if (iPendingRequestsQueue.Count()+ iReserveMsgCount + 1) > 
+		    //already reserved memory
+            TRAP(err, iPendingEmergencyRequestsQueue.ReserveL(iPendingEmergencyRequestsQueue.Count() + iReserveMsgCount + 1 )); 
 		    }
 		if(KErrNone == err || (KErrNoMemory == err && aMessage.Session() == iPriorityClientSession))
 		    {	 
-		    User::LeaveIfError(iPendingRequestsQueue.Queue(messageCopy));
+		    iPendingEmergencyRequestsQueue.AppendL(storeAdaptationMessage);
 		    }
 		else
 		    {
 		    User::Leave(err);
 		    }
-		CleanupStack::Pop(&storeMessage);
+		CleanupStack::Pop(storeAdaptationMessage);
 		}	
 	}
 
-void CEmergencyCallRfAdaptation::Submit(CAdaptationMessage*& aMessage)
+void CEmergencyCallRfAdaptation::Submit(CEmergencyAdaptationMessage*& aMessage)
 	{
+    __ASSERT_ALWAYS((iEmergencyCallRfAdaptation != NULL), User::Panic(KPanicSsmSus, EEmergencyCallRfAdaptationNullPtrError1));
 	DEBUGPRINT2A("CEmergencyCallRfAdaptationRequests immediate submission of request with function id: %d", aMessage->Function());
 	iCurrentMessage = aMessage;
 	switch(aMessage->Function())
 		{
 		case EActivateRfForEmergencyCall :
 			{
-			iEmergencyCallRfAdaptation.ActivateRfForEmergencyCall(iStatus);
+			iEmergencyCallRfAdaptation->ActivateRfForEmergencyCall(iStatus);
 			break;	
 			}
 		case EDeactivateRfForEmergencyCall :
 			{
-			iEmergencyCallRfAdaptation.DeactivateRfForEmergencyCall(iStatus);
+			iEmergencyCallRfAdaptation->DeactivateRfForEmergencyCall(iStatus);
 			break;	
 			}
 		default :
@@ -126,53 +142,80 @@
 @internalComponent
 */
 
-CEmergencyCallRfAdaptation* CEmergencyCallRfAdaptation::NewL(MEmergencyCallRfAdaptation& aAdaptation)
+CEmergencyCallRfAdaptation* CEmergencyCallRfAdaptation::NewL(MEmergencyCallRfAdaptation* aAdaptation)
 	{
-	CEmergencyCallRfAdaptation* self = new(ELeave) CEmergencyCallRfAdaptation(aAdaptation);
-	return self;	
+	CEmergencyCallRfAdaptation* self = new(ELeave) CEmergencyCallRfAdaptation();
+	CleanupStack::PushL(self);
+	self->ConstructL(aAdaptation);
+	CleanupStack::Pop(self);
+	return self;
 	}
+
+void CEmergencyCallRfAdaptation::ConstructL(MEmergencyCallRfAdaptation* aAdaptation)
+    {
+    ReserveMemoryL();
+    //Taking the ownership of emergencyCallRfAdaptationPlugin after all the leaving function have passed.
+    //If some function leaves before taking ownership of emergencyCallRfAdaptationPlugin, it will be released twice, which causes system to panic.
+    iEmergencyCallRfAdaptation = aAdaptation;
+    }
+
 /**
  * Function to reserve memory to make emergency call during OOM condition
  */
 void CEmergencyCallRfAdaptation :: ReserveMemoryL()
     {
     //Reserve space for one Activate Rf call + one Deactive Rf message in Queue.
-    const TInt reserveCount = 2;
-    // heap requested for one Active Rf call + one Deactive Rf
-    const TInt reservedHeap = reserveCount * sizeof(CAdaptationMessage);    
-    //heap is reserved for storing CAdaptationMessage during OOM condition.
-    iReservedHeap = UserHeap::ChunkHeap(NULL, reservedHeap, reservedHeap); 
-    //Leave with KErrNoMemory if iReservedHeap is NULL    
-    if(iReservedHeap == NULL)
+    iPendingEmergencyRequestsQueue.ReserveL(KReserveCount);
+    
+    //Pre-create an array to hold CEmergencyAdaptationMessage pointer, this is of size CEmergencyAdaptationMessage.
+    RMessage2 message;    
+    for( TInt index = 0 ; index < KReserveCount ; ++index )
         {
-        User::Leave(KErrNoMemory);
+        CEmergencyAdaptationMessage* adaptationMessage = NULL;
+        adaptationMessage = CEmergencyAdaptationMessage::NewL(message, EMsgReserved);
+        CleanupStack::PushL(adaptationMessage);
+        iAdaptationReservedMessageArray.AppendL(adaptationMessage);
+        CleanupStack::Pop(adaptationMessage);
         }
-    User::LeaveIfError(iPendingRequestsQueue.Reserve(reserveCount));   
     }
 
-
 CEmergencyCallRfAdaptation::~CEmergencyCallRfAdaptation()
 	{
-	iPendingRequestsQueue.NotifyAndRemoveAll(iReservedHeap);
+    NotifyAndRemoveAll();
 	Cancel();
-	iPendingRequestsQueue.Close();
-	if(iReservedHeap != NULL)
-	    {
-        iReservedHeap->Reset();
-        iReservedHeap->Close();
-	    }
+	iPendingEmergencyRequestsQueue.Close();	
+	iAdaptationReservedMessageArray.ResetAndDestroy();	 
 	Release();
 	}
 
-CEmergencyCallRfAdaptation::CEmergencyCallRfAdaptation(MEmergencyCallRfAdaptation& aAdaptation) : CActive(EPriorityStandard), iEmergencyCallRfAdaptation(aAdaptation)
-, iReservedHeap(NULL)
+void CEmergencyCallRfAdaptation::NotifyAndRemoveAll()
+    {
+    TInt count = iPendingEmergencyRequestsQueue.Count();
+    
+    for(TInt index =0; index < count; ++index)
+        {
+        iPendingEmergencyRequestsQueue[index]->Complete(KErrServerTerminated);
+        if (!(iPendingEmergencyRequestsQueue[index]->IsMessageReserved()))
+            {
+            delete iPendingEmergencyRequestsQueue[index];
+            }
+        iPendingEmergencyRequestsQueue[index] = NULL;
+        }
+    iPendingEmergencyRequestsQueue.Reset();
+    }
+
+CEmergencyCallRfAdaptation::CEmergencyCallRfAdaptation() : CActive(EPriorityStandard)
+,iReserveMsgCount(KReserveCount)
 	{
 	CActiveScheduler::Add(this);
 	}
 
 void CEmergencyCallRfAdaptation::Release()
 	{
-	iEmergencyCallRfAdaptation.Release();
+	if(iEmergencyCallRfAdaptation != NULL)
+	    {
+	    iEmergencyCallRfAdaptation->Release();
+	    }
 	}
 
 void CEmergencyCallRfAdaptation::DoActivateRfForEmergencyCallL(const RMessage2& aMessage)
@@ -187,15 +230,37 @@
 
 void CEmergencyCallRfAdaptation::DoEmergencyCallRfAdaptationCancelL(const RMessage2& aMessage)
 	{
-
+    __ASSERT_ALWAYS((iEmergencyCallRfAdaptation != NULL), User::Panic(KPanicSsmSus, EEmergencyCallRfAdaptationNullPtrError2));
+    
 	if(iCurrentMessage != NULL)	
 		{
 		if(aMessage.Session() == iCurrentMessage->Session())
 			{
 			DEBUGPRINT1A("CEmergencyCallRfAdaptationRequests cancelling current request as requested");
-			iEmergencyCallRfAdaptation.Cancel();
+			iEmergencyCallRfAdaptation->Cancel();
 			}
-		iPendingRequestsQueue.RemoveFromQueueAndComplete(aMessage, iReservedHeap);
+		CEmergencyAdaptationMessage *messageToBeDeleted;
+        for(TInt index = 0; index < iPendingEmergencyRequestsQueue.Count(); ++index )
+            {
+            if(aMessage.Session() == iPendingEmergencyRequestsQueue[index]->Session())
+                {
+                messageToBeDeleted = iPendingEmergencyRequestsQueue[index];
+                DEBUGPRINT2A("RSsmAdaptationRequestQueue(aMessage,ReservedHeap)called to cancel the request with function id: %d", messageToBeDeleted->Function());
+                iPendingEmergencyRequestsQueue.Remove(index);
+                messageToBeDeleted->Complete(KErrCancel);
+                //Reset the AdaptationMessage if it is created using reserved pointer or delete the pointer 
+                if(messageToBeDeleted->IsMessageReserved())
+                    {
+                    messageToBeDeleted->UnsetMessageStatus(EMsgInUse);
+                    ++iReserveMsgCount;
+                    }
+                else
+                    {
+                    delete messageToBeDeleted;
+                    }
+                --index;
+                }
+            }
 		
 		aMessage.Complete(KErrNone);
 		}
@@ -209,23 +274,16 @@
 
 void CEmergencyCallRfAdaptation::RunL()
 	{
-	
+    __ASSERT_DEBUG((iCurrentMessage != NULL), User::Panic(KPanicSsmSus, EEmergencyAdaptationMessageNullPtrError));
 	DEBUGPRINT2A("CEmergencyCallRfAdaptationRequests processed the request with funtion id: %d", iCurrentMessage->Function());
 	iCurrentMessage->Complete(iStatus.Int());
-	if(iCurrentMessage->iUsingReservedHeap)
-        {
-        iReservedHeap->Free(iCurrentMessage);
-        }
-    else
-        {
-        delete iCurrentMessage;
-        }
+	DeleteAdaptationMessage();
 	iCurrentMessage = NULL;  
 
-	if( (iPendingRequestsQueue.IsEmpty()) == EFalse )
+	if( (iPendingEmergencyRequestsQueue.Count()) > 0 )
 		{
-		CAdaptationMessage *messageCopy = NULL;
-		iPendingRequestsQueue.Dequeue(messageCopy);		
+        CEmergencyAdaptationMessage *messageCopy = NULL;
+        Dequeue(messageCopy);				
 		Submit(messageCopy);
 		} 
 	}
@@ -235,32 +293,18 @@
 	
 	if(iCurrentMessage != NULL)	
 		{
-		iCurrentMessage->Complete(aError);
-        if(iCurrentMessage->iUsingReservedHeap)
-            {
-            iReservedHeap->Free(iCurrentMessage);
-            }
-        else
-            {
-            delete iCurrentMessage;
-            }
+        iCurrentMessage->Complete(aError);
+		DeleteAdaptationMessage();
 		iCurrentMessage = NULL;
 		}
 	
-	while( (iPendingRequestsQueue.IsEmpty()) == EFalse )
-		{
-		iPendingRequestsQueue.Dequeue(iCurrentMessage);
-		iCurrentMessage->Complete(aError);
-		if(iCurrentMessage->iUsingReservedHeap)
-            {
-            iReservedHeap->Free(iCurrentMessage);
-            }
-        else
-            {
-            delete iCurrentMessage;
-            }
-		iCurrentMessage = NULL;
-		}
+	while( (iPendingEmergencyRequestsQueue.Count() > 0 ))
+        {
+        Dequeue(iCurrentMessage);
+        iCurrentMessage->Complete(aError);
+        DeleteAdaptationMessage();
+        iCurrentMessage = NULL;
+        }
 	
 	return KErrNone;
 		
@@ -271,30 +315,16 @@
 	if(iCurrentMessage != NULL)	
 		{
 		iCurrentMessage->Complete(KErrCancel);
-		if(iCurrentMessage->iUsingReservedHeap)
-            {
-            iReservedHeap->Free(iCurrentMessage);
-            }
-        else
-            {
-            delete iCurrentMessage;
-            }
+		DeleteAdaptationMessage();
 		iCurrentMessage = NULL;
 		}
 		
-	while( (iPendingRequestsQueue.IsEmpty()) == EFalse )
+	while( (iPendingEmergencyRequestsQueue.Count() > 0 ))
 		{
-		iPendingRequestsQueue.Dequeue(iCurrentMessage);
-		iCurrentMessage->Complete(KErrCancel);
-		if(iCurrentMessage->iUsingReservedHeap)
-            {
-            iReservedHeap->Free(iCurrentMessage);
-            }
-        else
-            {
-            delete iCurrentMessage;
-            }
-		iCurrentMessage = NULL;
+        Dequeue(iCurrentMessage);
+        iCurrentMessage->Complete(KErrCancel);
+        DeleteAdaptationMessage();
+        iCurrentMessage = NULL;
 		}
 	}
 
@@ -314,3 +344,128 @@
     iPriorityClientSession = NULL;
     }
 
+/**
+ * Reset the AdaptationMessage if it is created using reserved pointer or delete the pointer
+ */
+void CEmergencyCallRfAdaptation::DeleteAdaptationMessage()
+    {
+    if(iCurrentMessage->IsMessageReserved())
+        {
+        iCurrentMessage->UnsetMessageStatus(EMsgInUse);
+        ++iReserveMsgCount;
+        }
+    else
+        {
+        delete iCurrentMessage;
+        }    
+    }
+
+void CEmergencyCallRfAdaptation::Dequeue(CEmergencyAdaptationMessage *&aCurrentMessage)
+    {
+    aCurrentMessage = iPendingEmergencyRequestsQueue[0];
+    iPendingEmergencyRequestsQueue.Remove(0);
+    }
+
+/**
+ * Constructor.
+ */
+CEmergencyAdaptationMessage::CEmergencyAdaptationMessage(const TInt8 aMessageStatus): iAdaptationMessage(NULL), iMessageStatus(0)
+    {
+    iMessageStatus |= aMessageStatus ;
+    }
+
+/**
+ * Destructor.
+ */
+CEmergencyAdaptationMessage::~CEmergencyAdaptationMessage()
+    {
+    if (iAdaptationMessage != NULL)
+        {
+        delete iAdaptationMessage;
+        }
+    }
+
+CEmergencyAdaptationMessage* CEmergencyAdaptationMessage::NewL(const RMessage2& aMessage)
+    {
+    return CEmergencyAdaptationMessage::NewL(aMessage, EMsgStatusNULL);
+    }
+
+CEmergencyAdaptationMessage* CEmergencyAdaptationMessage::NewL(const RMessage2& aMessage, const TInt8 aMessageStatus)
+    {
+    CEmergencyAdaptationMessage* self = new(ELeave) CEmergencyAdaptationMessage(aMessageStatus);
+    //custom cleanup is not required here as it is a normal message till this point.
+    CleanupStack::PushL(self);
+    self->ConstructL(aMessage);
+    CleanupStack::Pop(self);
+    return self;
+    }
+
+void CEmergencyAdaptationMessage::ConstructL(const RMessage2& aMessage)
+    {
+    iAdaptationMessage = new (ELeave)CAdaptationMessage(aMessage);     
+    }
+
+void CEmergencyAdaptationMessage::Complete(TInt aReason)
+    {
+    if (iAdaptationMessage != NULL)
+        {
+        iAdaptationMessage->Complete(aReason);
+        }
+    }
+
+/**
+ * Function to check whether the messages is using reserved heap or not.
+ */
+inline TBool CEmergencyAdaptationMessage::IsMessageReserved()  const
+    {    
+    return (iMessageStatus & EMsgReserved)? ETrue:EFalse;    
+    }
+
+/**
+ * Function to check whether the reserved messages is in use or not.
+ */
+inline TBool CEmergencyAdaptationMessage::IsMessageInuse() const 
+    {    
+    return (iMessageStatus & EMsgInUse)? ETrue:EFalse;    
+    }
+
+/**
+ * Unset the message status .
+ */
+inline void CEmergencyAdaptationMessage::UnsetMessageStatus(const TInt8 aMessageStatus)
+    {    
+    iMessageStatus &= ~aMessageStatus ;
+    }
+
+/**
+ * Set the message status .
+ */
+inline void CEmergencyAdaptationMessage::SetMessageStatus(const TInt8 aMessageStatus)
+    {    
+    iMessageStatus |= aMessageStatus ;
+    }
+
+/**
+ * Sets the RMessage2 .
+ */
+void CEmergencyAdaptationMessage::SetMessage(const RMessage2& aMessage)
+    {    
+    iAdaptationMessage->SetMessage(aMessage);
+    }
+
+/**
+ * Returns the Function .
+ */
+TInt CEmergencyAdaptationMessage::Function() const
+    {    
+    return iAdaptationMessage->Function();
+    }
+
+/**
+ * Returns the Session .
+ */
+CSession2 *CEmergencyAdaptationMessage::Session() const
+    {
+    return iAdaptationMessage->Session();
+    }
+
--- a/sysstatemgmt/systemstatemgr/test/tsus/group/tsus_ssmutilsrv.mmp	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstatemgr/test/tsus/group/tsus_ssmutilsrv.mmp	Fri Mar 19 09:58:42 2010 +0200
@@ -1,4 +1,4 @@
-// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2009-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"
@@ -33,6 +33,9 @@
 
 OS_LAYER_SYSTEMINCLUDE_SYMBIAN
 
+// Used for making the production code changes in the server available only for test code.
+macro			TEST_SSM_SERVER
+
 
 // production code
 USERINCLUDE		../../../localinc
@@ -57,6 +60,7 @@
 SOURCE			susmiscadaptation.cpp
 SOURCE			susemergencycallrfadaptation.cpp
 SOURCE 			susadaptationpluginloader.cpp
+SOURCE 			ssmadaptationcli.cpp
 
 
 // testcode
@@ -69,6 +73,7 @@
 SOURCE			tsus_server.cpp
 SOURCE			tsus_ssmsuscli.cpp
 SOURCE			tsus_startserver.cpp
+SOURCE			tsus_startadaptationserver.cpp
 SOURCE			tsus_step_supinfo.cpp
 SOURCE			tsus_step_suploader.cpp
 SOURCE			tsus_step_platsec.cpp
@@ -79,12 +84,12 @@
 SOURCE          tsus_step_susadaptationpluginloader.cpp
 SOURCE 			tsus_step_loadadaptationserver.cpp
 
+
 LIBRARY			euser.lib
 LIBRARY			efsrv.lib
 LIBRARY			estor.lib
 LIBRARY			testexecuteutils.lib 
 LIBRARY			testexecutelogclient.lib 
 LIBRARY			ssmcmn.lib
-LIBRARY 		ssmadaptationcli.lib
 
 SMPSAFE
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysstatemgmt/systemstatemgr/test/tsus/inc/tsus_startadaptationserver.h	Fri Mar 19 09:58:42 2010 +0200
@@ -0,0 +1,35 @@
+// Copyright (c) 2009-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:Test Adaptation server
+//
+
+/**
+ @file
+ @test
+ @internalComponent - Internal Symbian test code 
+*/
+ 
+
+#ifndef __TSUS_STARTADAPTATIONSERVER_H__
+#define __TSUS_STARTADAPTATIONSERVER_H__
+
+#include <ssm/ssmsuscli.h>
+
+_LIT(KTestAdaptationServerName,	"AdaptationSrvTest");
+
+extern void RunAdaptationTestSrvL();
+extern TInt TestAdaptationSrvInitFunction(TAny* /*aNothing*/);
+extern TInt StartAdaptationServer(RThread& aServer);
+
+
+#endif //__TSUS_STARTADAPTATIONSERVER_H__
--- a/sysstatemgmt/systemstatemgr/test/tsus/inc/tsus_step_adaptionserver.h	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstatemgr/test/tsus/inc/tsus_step_adaptionserver.h	Fri Mar 19 09:58:42 2010 +0200
@@ -1,4 +1,4 @@
-// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2009-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"
@@ -16,7 +16,7 @@
 /**
  @file
  @test
- @internalComponent - Internal Symbian test code 
+ @internalComponent - Internal test code 
 */
  
 
@@ -33,8 +33,14 @@
 class RTestSusAdaptationCli : public RSsmEmergencyCallRfAdaptation
     {
 public:
+#ifdef TEST_SSM_SERVER
+    TInt Connect(const TDesC& aServerName);
+#endif 
     TInt SetHeapFailure(TInt aFailureRate);
     TInt UnSetHeapFailure();
+    TInt SetHeapMark();
+    TInt UnSetHeapMark();
+    
     };
 
 class CSusAdaptionServerTest : public CTestStep
@@ -51,11 +57,15 @@
 private:
 	void doTestForMemoryLeaksL();
 	void doTestProcessCriticalL();
-	void doTestOOML();
+	void doTestOOML();	
+	void StartAndDestroyServerL();
+#ifdef TEST_SSM_SERVER
 	void doTestForEmergencyCallOOM();
-	void StartAndDestroyServerL();
 	void doTestForSettingPriorityClient();
 	void doTestForNormalEmergencyCallinOOM();
+	void doTestForMultipleClientinOOMcondition();
+	void doTestForEmergencyCallOOMIterative();
+#endif
 	};
 
 #endif
--- a/sysstatemgmt/systemstatemgr/test/tsus/scripts/ssmatest_sus_adaptionserver.script	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstatemgr/test/tsus/scripts/ssmatest_sus_adaptionserver.script	Fri Mar 19 09:58:42 2010 +0200
@@ -1,4 +1,4 @@
-// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2009-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"
@@ -16,7 +16,7 @@
 PRINT Run SusAdaptionServerStep tests
 
 //Set the server with SID of telephony(c32 process) to test the emergency call under OOM condition
-RUN_PROGRAM -1 setcap tsus_ssmutilsrv.exe 0003FFFE -SID 10003D33 tsus_ssmutilsrv_WithC32_SID.exe
+RUN_PROGRAM -1 setcap tsus_ssmutilsrv.exe 00001134 -SID 101F7989  tsus_ssmutilsrv_WithC32_SID.exe
 
 
 LOAD_SUITE tsus_ssmutilsrv_WithC32_SID
@@ -36,6 +36,7 @@
 //!						4.Test to set SetPriorityClient() from two diff client 
 //!						5.Normal client calling Activate/DeactivateRfForEmergencyCall Rf in OOM condition
 //!						6.Multiple client performing Activate/DeactivateRfForEmergencyCall during OOM situation
+//!						7.Iterate the OOM through Activate/DeactivateRfForEmergencyCall
 //! @SYMTestExpectedResults 	The test ends with the following results:
 //! 					1.No error is reported a new object is created and the process is set to ESystemCritical.
 //! 					2.Intermediate iterations finish with KErrNoMemory with successful one completing with KErrNone. Memory is not leaked in any iteration.
@@ -43,5 +44,6 @@
 //!						4.Call to SetPriorityClient() with error KErrAlreadyExists fails from the second client
 //!						5.Call fails with KErrNoMemory.
 //!						6.Only Priority client will be able to perform  Activate/DeactivateRfForEmergencyCall, for other client KErrNoMemory will be returned
+//!						7.Activate/DeactivateRfForEmergencyCall works fine.
 RUN_TEST_STEP 100 tsus_ssmutilsrv_WithC32_SID  SusAdaptionServerStep
-END_TESTCASE 			DEVSRVS-SSMA-SUS-0011
\ No newline at end of file
+END_TESTCASE 			DEVSRVS-SSMA-SUS-0011
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysstatemgmt/systemstatemgr/test/tsus/src/tsus_startadaptationserver.cpp	Fri Mar 19 09:58:42 2010 +0200
@@ -0,0 +1,92 @@
+// Copyright (c) 2009-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:Test Adaptation server 
+//
+
+/**
+ @file
+ @test
+ @internalComponent - Internal test code 
+*/
+
+#include <e32base.h>
+#include "tsus_startadaptationserver.h"
+#include "susadaptionserver.h"
+#include "ssmdebug.h"
+
+
+
+////////////////////////////////////////////////////////////////////////////////
+// Test-Server startup code
+////////////////////////////////////////////////////////////////////////////////
+
+void RunAdaptationTestSrvL()
+	{
+	__UHEAP_MARK;
+	CActiveScheduler* sched = new(ELeave) CActiveScheduler();
+    CleanupStack::PushL( sched );
+    CActiveScheduler::Install( sched );
+
+    CSsmAdaptationServer* server = CSsmAdaptationServer::NewLC(KTestAdaptationServerName);
+    RThread::Rendezvous( KErrNone );
+    
+    CActiveScheduler::Start();
+
+    CleanupStack::PopAndDestroy( server );
+    CleanupStack::PopAndDestroy( sched );
+    __UHEAP_MARKEND;
+	} //lint !e1746 Suppress parameter 'aSid' could be made const reference
+
+/**
+ This function is called when the TestServer's thread is resumed.
+ */
+TInt TestAdaptationSrvInitFunction(TAny* /*aNothing*/)
+	{
+    CTrapCleanup* cleanup=CTrapCleanup::New();
+	TInt err = KErrNoMemory;
+	if (cleanup)
+		{
+	    TRAP( err, RunAdaptationTestSrvL());
+	    delete cleanup;
+		}
+    return err;
+	}
+
+/**
+ */
+TInt StartAdaptationServer(RThread& aServer)
+	{
+	DEBUGPRINT2( _L("Starting test-server %S"), &KTestAdaptationServerName );
+	
+	const TInt KMinHeapSize =  0x1000; // 4kB
+	const TInt KMaxHeapSize = 0x100000;// 1MB
+	
+	
+	TInt err = aServer.Create( KTestAdaptationServerName, &TestAdaptationSrvInitFunction, 
+	                                 KDefaultStackSize, KMinHeapSize, KMaxHeapSize, 
+	                                 NULL);
+	if( KErrNone == err )
+		{
+		TRequestStatus trs;
+		aServer.Rendezvous( trs );
+		aServer.Resume();
+		
+		User::WaitForRequest( trs );	
+		
+		//We can't use the 'exit reason' if the server panicked as this is the 
+		//panic 'reason' and may be '0' which cannot be distinguished from KErrNone
+		err = (aServer.ExitType()==EExitPanic) ? KErrGeneral : trs.Int();
+		}
+
+	return err;
+	}
--- a/sysstatemgmt/systemstatemgr/test/tsus/src/tsus_step_adaptionserver.cpp	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstatemgr/test/tsus/src/tsus_step_adaptionserver.cpp	Fri Mar 19 09:58:42 2010 +0200
@@ -1,4 +1,4 @@
-// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2009-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"
@@ -20,9 +20,19 @@
 */
 
 #include "susadaptionserver.h"
-
+#include <ssm/ssmadaptationcli.h>
 #include "tsus_step_adaptionserver.h"
+#include "tsus_startadaptationserver.h"
 
+#ifdef TEST_SSM_SERVER
+/**
+ * Overloaded function to Connect to the Test Adaptation server
+ */
+TInt RTestSusAdaptationCli::Connect(const TDesC& aServerName)
+    {
+    return RSsmEmergencyCallRfAdaptation::Connect(aServerName);
+    }
+#endif //TEST_SSM_SERVER
 /**
  * Client interface to simulate Heap failure at server side
  */
@@ -46,6 +56,27 @@
         }
     return KErrDisconnected;
     }
+
+TInt RTestSusAdaptationCli::SetHeapMark()
+    {
+    if(Handle())
+        {
+        return SendReceive(EDebugMarkHeap);
+        }
+    return KErrDisconnected;
+    }
+
+/**
+ * Client interface to restore Heap Mark
+ */
+TInt RTestSusAdaptationCli::UnSetHeapMark()
+    {
+    if(Handle())
+        {
+        return SendReceive(EDebugMarkHeapEnd);
+        }
+    return KErrDisconnected;
+    }
  
 CSusAdaptionServerTest::~CSusAdaptionServerTest()
 	{
@@ -79,11 +110,13 @@
 	TEST(KErrNone == err || KErrAlreadyExists == err);
 	TRAP(err, doTestOOML());
 	TEST(err == KErrNone);	
-	
+#ifdef TEST_SSM_SERVER	
 	doTestForNormalEmergencyCallinOOM();
 	doTestForEmergencyCallOOM();
 	doTestForSettingPriorityClient();
-	
+	doTestForMultipleClientinOOMcondition();
+	doTestForEmergencyCallOOMIterative();
+#endif //TEST_SSM_SERVER
 	__UHEAP_MARKEND;
 	
 	INFO_PRINTF1(_L("....CSusAdaptionServerTest tests completed!"));
@@ -191,7 +224,7 @@
 	INFO_PRINTF1(_L("Destroy SSM adaptation server."));
 	delete server;
 	}
-
+#ifdef TEST_SSM_SERVER
 /**
  * Tests for client calling Activate/Deactivate Rf without setting as priorityclient.
  */
@@ -199,16 +232,20 @@
     {
     INFO_PRINTF1(_L("doTestForNormalEmergencyCallinOOM started."));
     __UHEAP_MARK;
+    RThread thread;
+    CleanupClosePushL(thread);
+    TESTL(KErrNone == StartAdaptationServer(thread));
+      
     RTestSusAdaptationCli adaptationclitest;    
-    TInt err = adaptationclitest.Connect();
+    TInt err = adaptationclitest.Connect(KTestAdaptationServerName);
     INFO_PRINTF2(_L("Connect() returned Error %d : Expected Error is KErrNone."),err);
     TEST(err == KErrNone);
     TRequestStatus status;
     // Simulate OOM condition
-    User::__DbgSetAllocFail(EFalse, RAllocator::EDeterministic, 1);
     User::__DbgSetAllocFail(ETrue, RAllocator::EDeterministic, 1);
     //Simulate OOM at Serverside
     adaptationclitest.SetHeapFailure(1);
+    adaptationclitest.SetHeapMark();
     //Normal client calling ActivateRfForEmergencyCall Rf in OOM condition. This call must fail with KErrNoMemory 
     //as there is no memory reserved.
     adaptationclitest.ActivateRfForEmergencyCall(status);
@@ -216,10 +253,12 @@
     User::WaitForRequest(status);    
     //Restore OOM condition
     adaptationclitest.UnSetHeapFailure();
-    adaptationclitest.Close();
-    User::__DbgSetAllocFail(EFalse, RAllocator::ENone, 1);
+    adaptationclitest.UnSetHeapMark();
+    adaptationclitest.Close();    
     User::__DbgSetAllocFail(ETrue, RAllocator::ENone, 1);
     TEST(status.Int() == KErrNoMemory);
+    thread.Kill(KErrNone);
+    CleanupStack::PopAndDestroy(&thread);
     __UHEAP_MARKEND;
     INFO_PRINTF1(_L("doTestForNormalEmergencyCallinOOM completed.")); 
     }
@@ -233,18 +272,18 @@
     {
     INFO_PRINTF1(_L("doTestForEmergencyCallOOM started."));
     __UHEAP_MARK;
+    RThread thread;
+    CleanupClosePushL(thread); 
+    TESTL(KErrNone == StartAdaptationServer(thread));
     RTestSusAdaptationCli adaptationclitest;    
-    TInt err = adaptationclitest.Connect();
+    TInt err = adaptationclitest.Connect(KTestAdaptationServerName);
     INFO_PRINTF2(_L("Connect() returned Error %d : Expected Error is KErrNone."),err);
-    TEST(err == KErrNone);
+    TEST(err == KErrNone);    
     err = adaptationclitest.SetAsPriorityClient();
+    adaptationclitest.SetHeapMark();
     INFO_PRINTF2(_L("SetAsPriorityClient() returned Error %d : Expected Error is KErrNone."),err);
     TEST(err == KErrNone);
-    //Activate Rf + Deactivate Rf during non OOM situation.
-    //Calls will be queued and processed one after the other. After 3 consecutive requests for 
-    //ActivateRfForEmergencyCall(), first call will be submitted directly to process and other two calls 
-    // will get queued. By end of this process will be having (count + 2) reserved memory in queue.i.e 4 reserved slots
-    TRequestStatus status1,status2,status3,status4,status5,status6; 
+    TRequestStatus status1,status2,status3,status4,status5,status6,status7; 
     adaptationclitest.ActivateRfForEmergencyCall(status1); 
     adaptationclitest.ActivateRfForEmergencyCall(status2);
     adaptationclitest.ActivateRfForEmergencyCall(status3);
@@ -256,41 +295,47 @@
     TEST(status2.Int() == KErrNone);
     TEST(status3.Int() == KErrNone);
     // Simulate OOM condition
-    User::__DbgSetAllocFail(EFalse, RAllocator::EDeterministic, 1);
     User::__DbgSetAllocFail(ETrue, RAllocator::EDeterministic, 1);
     //Simulate OOM at Serverside
     adaptationclitest.SetHeapFailure(1);
  
-    //After the above 2 calls to Activate the Rfs, will be left with 4 reserved memory in queue, so in OOM
-    //condition client can queue 4 activate/deactivate requests.The 5th request will fail with KErrNoMemory
+    //Two simulataneous calls for Active/deactivate Rf are allowed. The 3rd simultaneous request fail with KErrNoMemory
     adaptationclitest.ActivateRfForEmergencyCall(status1); 
-    adaptationclitest.ActivateRfForEmergencyCall(status2);
-    adaptationclitest.DeactivateRfForEmergencyCall(status3);
-    adaptationclitest.DeactivateRfForEmergencyCall(status4);
-    adaptationclitest.DeactivateRfForEmergencyCall(status5);
-    adaptationclitest.DeactivateRfForEmergencyCall(status6);
+    adaptationclitest.DeactivateRfForEmergencyCall(status2);    
+    adaptationclitest.ActivateRfForEmergencyCall(status3);
     // Wait for completion of requests
     User::WaitForRequest(status1);
     User::WaitForRequest(status2);
     User::WaitForRequest(status3);
+  
+    //If the previous request for Activate/Deactivate is already finished. User can perform 2 more calls.
+    adaptationclitest.ActivateRfForEmergencyCall(status4); 
+    adaptationclitest.DeactivateRfForEmergencyCall(status5);
+    
     User::WaitForRequest(status4);
     User::WaitForRequest(status5);
-    User::WaitForRequest(status6);    
+    
+    adaptationclitest.ActivateRfForEmergencyCall(status6); 
+    adaptationclitest.DeactivateRfForEmergencyCall(status7);  
+    adaptationclitest.Cancel();
+    // Wait for completion of requests
+    User::WaitForRequest(status6);
+    User::WaitForRequest(status7);
     
     //Restore OOM condition
     adaptationclitest.UnSetHeapFailure();
-    User::__DbgSetAllocFail(EFalse, RAllocator::ENone, 1);
     User::__DbgSetAllocFail(ETrue, RAllocator::ENone, 1);
     TEST(status1.Int() == KErrNone);
     TEST(status2.Int() == KErrNone);
-    TEST(status3.Int() == KErrNone);
+    TEST(status3.Int() == KErrNoMemory);
     TEST(status4.Int() == KErrNone);
     TEST(status5.Int() == KErrNone);
-    //6th request will fail with KErrNoMemory if, above 5 requests are still queued and there is no reserved slot for
-    //6th one..otherwise, 6th request will be queued and processed
-    TEST(status6.Int() == KErrNoMemory || status6.Int() == KErrNone);
-    
+    TEST(status6.Int() == KErrNone);
+    TEST(status7.Int() == KErrCancel);    
+    adaptationclitest.UnSetHeapMark();
     adaptationclitest.Close();
+    thread.Kill(KErrNone);
+    CleanupStack::PopAndDestroy(&thread);
     __UHEAP_MARKEND;
     INFO_PRINTF1(_L("doTestForEmergencyCallOOM completed."));        
     }
@@ -302,13 +347,16 @@
     {
     INFO_PRINTF1(_L("doTestForSettingPriorityClient started."));
     __UHEAP_MARK;
+    RThread thread;
+    CleanupClosePushL(thread);
+    TESTL(KErrNone == StartAdaptationServer(thread));
     RTestSusAdaptationCli adaptationclitest1;
-    TInt err = adaptationclitest1.Connect();
+    TInt err = adaptationclitest1.Connect(KTestAdaptationServerName);
     INFO_PRINTF2(_L("adaptationclitest1.Connect() returned Error %d : Expected Error is KErrNone."),err);   
     TEST(err == KErrNone);
     
     RTestSusAdaptationCli adaptationclitest2;
-    err = adaptationclitest2.Connect();
+    err = adaptationclitest2.Connect(KTestAdaptationServerName);
     INFO_PRINTF2(_L("adaptationclitest2.Connect() returned Error %d : Expected Error is KErrNone."),err);   
     TEST(err == KErrNone);
        
@@ -323,7 +371,152 @@
     // Restore OOM condition
     adaptationclitest1.Close();
     adaptationclitest2.Close();
+    
+    thread.Kill(KErrNone);
+    CleanupStack::PopAndDestroy(&thread);
     __UHEAP_MARKEND;
     INFO_PRINTF1(_L("doTestForSettingPriorityClient completed."));
     }
 
+/**
+ * Multiple clients performing Emergency call during OOM situation
+ */
+void CSusAdaptionServerTest::doTestForMultipleClientinOOMcondition()
+    {
+    INFO_PRINTF1(_L("doTestForMultipleClientinOOMcondition started."));
+    __UHEAP_MARK;
+    RThread thread;
+    CleanupClosePushL(thread); 
+    
+    TESTL(KErrNone == StartAdaptationServer(thread));
+    RTestSusAdaptationCli adaptationclitest1;
+    TInt err = adaptationclitest1.Connect(KTestAdaptationServerName);
+    INFO_PRINTF2(_L("adaptationclitest1.Connect() returned Error %d : Expected Error is KErrNone."),err);   
+    TEST(err == KErrNone);
+    
+    RTestSusAdaptationCli adaptationclitest2;
+    err = adaptationclitest2.Connect(KTestAdaptationServerName);
+    INFO_PRINTF2(_L("adaptationclitest2.Connect() returned Error %d : Expected Error is KErrNone."),err);   
+    TEST(err == KErrNone);
+    
+    RTestSusAdaptationCli adaptationclitest3;
+    err = adaptationclitest3.Connect(KTestAdaptationServerName);
+    INFO_PRINTF2(_L("adaptationclitest3.Connect() returned Error %d : Expected Error is KErrNone."),err);   
+    TEST(err == KErrNone);
+       
+    err = adaptationclitest1.SetAsPriorityClient();
+    INFO_PRINTF2(_L("adaptationclitest1.SetAsPriorityClient() returned Error %d : Expected Error is KErrNone."),err);
+    TEST(err == KErrNone);
+    
+    err = adaptationclitest2.SetAsPriorityClient();
+    INFO_PRINTF2(_L("adaptationclitest2.SetAsPriorityClient() returned Error %d : Expected Error is KErrAlreadyExists."),err);
+    TEST(err == KErrAlreadyExists);
+    
+    err = adaptationclitest3.SetAsPriorityClient();
+    INFO_PRINTF2(_L("adaptationclitest3.SetAsPriorityClient() returned Error %d : Expected Error is KErrAlreadyExists."),err);
+    TEST(err == KErrAlreadyExists);
+    
+    TRequestStatus status1,status2,status3,status4,status5,status6;
+    // Simulate OOM condition
+    User::__DbgSetAllocFail(ETrue, RAllocator::EDeterministic, 1);
+    //Simulate OOM Condition on server side
+    adaptationclitest1.SetHeapFailure(1);
+    adaptationclitest1.SetHeapMark();
+    adaptationclitest1.ActivateRfForEmergencyCall(status1);
+    adaptationclitest2.ActivateRfForEmergencyCall(status2);
+    adaptationclitest3.ActivateRfForEmergencyCall(status3);
+    adaptationclitest1.DeactivateRfForEmergencyCall(status4);
+    adaptationclitest2.DeactivateRfForEmergencyCall(status5);
+    adaptationclitest3.DeactivateRfForEmergencyCall(status6);
+    
+    User::WaitForRequest(status1);
+    User::WaitForRequest(status2);
+    User::WaitForRequest(status3);
+    User::WaitForRequest(status4);
+    User::WaitForRequest(status5);
+    User::WaitForRequest(status6);    
+    // Restore OOM condition
+    adaptationclitest1.Close();
+    adaptationclitest2.Close();
+    adaptationclitest3.Close();
+    //Restore OOM condition
+    adaptationclitest1.UnSetHeapMark();
+    adaptationclitest1.UnSetHeapFailure();
+    User::__DbgSetAllocFail(ETrue, RAllocator::ENone, 1);
+    //Priority client Performing Activate Rf returns KErrNone
+    TEST(status1.Int() == KErrNone);
+    //Normal clients performing Activate Rf fail with KErrNoMemory in OOM codition
+    TEST(status2.Int() == KErrNoMemory);
+    TEST(status3.Int() == KErrNoMemory);
+    //Priority client Performing Deactivate Rf returns KErrNone
+    TEST(status4.Int() == KErrNone);
+    //Normal clients peforming Deactivate Rf fail with KErrNoMemory in OOM codition
+    TEST(status5.Int() == KErrNoMemory);
+    TEST(status6.Int() == KErrNoMemory);
+    thread.Kill(KErrNone);
+    CleanupStack::PopAndDestroy(&thread);
+    __UHEAP_MARKEND;
+    INFO_PRINTF1(_L("doTestForMultipleClientinOOMcondition completed."));
+    }
+
+/**
+ * Tests for iterating heapfailure in ActivateRfForEmergencyCall and DeactivateRfForEmergencyCall.
+ */
+void CSusAdaptionServerTest::doTestForEmergencyCallOOMIterative()
+    {
+    INFO_PRINTF1(_L("doTestForEmergencyCallOOMIterative started."));
+    __UHEAP_MARK;
+    RThread thread;
+    CleanupClosePushL(thread);
+    TESTL(KErrNone == StartAdaptationServer(thread));
+    RTestSusAdaptationCli adaptationclitest;    
+    TInt err = adaptationclitest.Connect(KTestAdaptationServerName);
+    INFO_PRINTF2(_L("Connect() returned Error %d : Expected Error is KErrNone."),err);
+    TEST(err == KErrNone);    
+    err = adaptationclitest.SetAsPriorityClient();
+    INFO_PRINTF2(_L("SetAsPriorityClient() returned Error %d : Expected Error is KErrNone."),err);
+    TEST(err == KErrNone);
+    TRequestStatus status1,status2;
+    //simulate OOM at kernel
+    User::__DbgSetAllocFail(ETrue, RAllocator::EDeterministic, 1);
+    TInt maximumAllocation = 3;
+    //Iterate through the ActivateRfForEmergencyCall.
+    adaptationclitest.SetHeapMark();
+    for(TInt allocFailRate=1; allocFailRate <= 2*maximumAllocation; ++allocFailRate)
+        {
+        INFO_PRINTF2(_L("allocFailRateL %d:."), allocFailRate);
+        adaptationclitest.SetHeapFailure(allocFailRate);
+        adaptationclitest.ActivateRfForEmergencyCall(status1);
+        adaptationclitest.ActivateRfForEmergencyCall(status2);
+        User::WaitForRequest(status1);
+        User::WaitForRequest(status2);
+        TEST(status1.Int() == KErrNone);
+        TEST(status2.Int() == KErrNone);
+        }
+    
+    //Iterate through the DeactivateRfForEmergencyCall.    
+    for(TInt allocFailRate=1; allocFailRate < 2*maximumAllocation; allocFailRate++)
+        {
+        INFO_PRINTF2(_L("allocFailRateL %d:."), allocFailRate);
+        adaptationclitest.SetHeapFailure(allocFailRate);
+        adaptationclitest.DeactivateRfForEmergencyCall(status1);
+        adaptationclitest.DeactivateRfForEmergencyCall(status2);
+        User::WaitForRequest(status1);
+        User::WaitForRequest(status2);
+        TEST(status1.Int() == KErrNone);
+        TEST(status2.Int() == KErrNone);
+        }
+    adaptationclitest.UnSetHeapMark();
+    //Restore OOM condition
+    adaptationclitest.UnSetHeapFailure(); 
+    User::__DbgSetAllocFail(ETrue, RAllocator::ENone, 1);    
+    adaptationclitest.Close();
+    thread.Kill(KErrNone);
+    CleanupStack::PopAndDestroy(&thread);
+    __UHEAP_MARKEND;
+    INFO_PRINTF1(_L("doTestForEmergencyCallOOMIterative completed."));        
+    }
+
+#endif //TEST_SSM_SERVER
+
+
--- a/sysstatemgmt/systemstateplugins/conditionevaluator/inc/cndcentralrepository.h	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstateplugins/conditionevaluator/inc/cndcentralrepository.h	Fri Mar 19 09:58:42 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2009 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"
@@ -12,23 +12,8 @@
 * Contributors:
 *
 * Description:
-* Name        : conditiononcentrep.h
-* Part of     : System Startup / Condition
-* Interface   : None
 * Declaration of CConditionOnCentRep and CConditionOnCentRepFlag
 * classes.
-* Version     : %version: 1 %
-* This material, including documentation and any related computer
-* programs, is protected by copyright controlled by Nokia.  All
-* rights are reserved.  Copying, including reproducing, storing,
-* adapting or translating, any or all of this material requires the
-* prior written consent of Nokia.  This material also contains
-* confidential information which may not be disclosed to others
-* without the prior written consent of Nokia.
-* Template version: 4.0
-* Nokia Core OS *
-* File renamed from conditiononcentrep.h to cndcentralrepository.h as part of Core OS transfer.
-*
 */
 
 
--- a/sysstatemgmt/systemstateplugins/conditionevaluator/inc/cndfeature.h	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstateplugins/conditionevaluator/inc/cndfeature.h	Fri Mar 19 09:58:42 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2009 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"
@@ -12,22 +12,7 @@
 * Contributors:
 *
 * Description:
-* Name        : conditiononfeature.h
-* Part of     : System Startup / Condition
-* Interface   : None
 * Declaration of CConditionOnFeature class
-* Version     : %version: 1 %
-* This material, including documentation and any related computer
-* programs, is protected by copyright controlled by Nokia.  All
-* rights are reserved.  Copying, including reproducing, storing,
-* adapting or translating, any or all of this material requires the
-* prior written consent of Nokia.  This material also contains
-* confidential information which may not be disclosed to others
-* without the prior written consent of Nokia.
-* Template version: 4.0
-* Nokia Core OS *
-* File renamed from conditiononfeature.h to cndfeature.h as part of Core OS transfer.
-*
 */
 
 
--- a/sysstatemgmt/systemstateplugins/conditionevaluator/inc/cndlogical.h	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstateplugins/conditionevaluator/inc/cndlogical.h	Fri Mar 19 09:58:42 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2009 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"
@@ -12,23 +12,8 @@
 * Contributors:
 *
 * Description:
-* Name        : boolexpr.h
-* Part of     : System Startup / Condition
-* Interface   : None
 * Declaration of CBoolExpr, CLogicalNot, CLogicalAnd and
 * CLogicalOr classes.
-* Version     : %version: 1 %
-* This material, including documentation and any related computer
-* programs, is protected by copyright controlled by Nokia.  All
-* rights are reserved.  Copying, including reproducing, storing,
-* adapting or translating, any or all of this material requires the
-* prior written consent of Nokia.  This material also contains
-* confidential information which may not be disclosed to others
-* without the prior written consent of Nokia.
-* Template version: 4.0
-* Nokia Core OS *
-* File renamed from boolexpr.h to cndlogical.h as part of Core OS transfer.
-*
 */
 
 
--- a/sysstatemgmt/systemstateplugins/conditionevaluator/inc/cndpublishsubscribe.h	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstateplugins/conditionevaluator/inc/cndpublishsubscribe.h	Fri Mar 19 09:58:42 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2009 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"
@@ -13,22 +13,8 @@
 *
 * Description:
 * Name        : conditiononpubsub.h
-* Part of     : System Startup / Condition
-* Interface   : None
 * Declaration of CConditionOnPubSub and CConditionOnPubSubFlag
 * classes
-* Version     : %version: 1 %
-* This material, including documentation and any related computer
-* programs, is protected by copyright controlled by Nokia.  All
-* rights are reserved.  Copying, including reproducing, storing,
-* adapting or translating, any or all of this material requires the
-* prior written consent of Nokia.  This material also contains
-* confidential information which may not be disclosed to others
-* without the prior written consent of Nokia.
-* Template version: 4.0
-* Nokia Core OS *
-* File renamed from conditiononpubsub.h to cndpublishsubscribe.h as part of Core OS transfer.
-*
 */
 
 
--- a/sysstatemgmt/systemstateplugins/conditionevaluator/inc/conditionevaluate.h	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstateplugins/conditionevaluator/inc/conditionevaluate.h	Fri Mar 19 09:58:42 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2009 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"
@@ -13,21 +13,7 @@
 *
 * Description:
 * Name        : resourcecondition.h
-* Part of     : System Startup / Condition
-* Interface   : None
 * Declaration of ResourceCondition class
-* Version     : %version: 1 %
-* This material, including documentation and any related computer
-* programs, is protected by copyright controlled by Nokia.  All
-* rights are reserved.  Copying, including reproducing, storing,
-* adapting or translating, any or all of this material requires the
-* prior written consent of Nokia.  This material also contains
-* confidential information which may not be disclosed to others
-* without the prior written consent of Nokia.
-* Template version: 4.1
-* Nokia Core OS *
-* File renamed from resourcecondition.h to CConditionEvaluate.h as part of Core OS transfer.
-*
 */
 
 
--- a/sysstatemgmt/systemstateplugins/conditionevaluator/inc/conditionevaluatebase.h	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstateplugins/conditionevaluator/inc/conditionevaluatebase.h	Fri Mar 19 09:58:42 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2009 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"
@@ -13,22 +13,8 @@
 *
 * Description:
 * Name        : conditiononpubsub.h
-* Part of     : System Startup / Condition
-* Interface   : None
 * Declaration of CConditionOnPubSub and CConditionOnPubSubFlag
 * classes
-* Version     : %version: 1 %
-* This material, including documentation and any related computer
-* programs, is protected by copyright controlled by Nokia.  All
-* rights are reserved.  Copying, including reproducing, storing,
-* adapting or translating, any or all of this material requires the
-* prior written consent of Nokia.  This material also contains
-* confidential information which may not be disclosed to others
-* without the prior written consent of Nokia.
-* Template version: 4.0
-* Nokia Core OS *
-* File renamed from conditiononpubsub.h to conditionevaluatebase.h as part of Core OS transfer.
-*
 */
 
 
--- a/sysstatemgmt/systemstateplugins/conditionevaluator/inc/conditionresourcetypes.rh	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstateplugins/conditionevaluator/inc/conditionresourcetypes.rh	Fri Mar 19 09:58:42 2010 +0200
@@ -1,4 +1,4 @@
-// Copyright (c) 2007-2009 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"
@@ -11,19 +11,7 @@
 // Contributors:
 //
 // Description:
-// Name        : conditionresourcetypes.rh
-// Part of     : System Startup / Condition
 // Resource structure declarations for conditional checks.
-// Version     : %version: 1 %
-// This material, including documentation and any related computer
-// programs, is protected by copyright controlled by Nokia.  All
-// rights are reserved.  Copying, including reproducing, storing,
-// adapting or translating, any or all of this material requires the
-// prior written consent of Nokia.  This material also contains
-// confidential information which may not be disclosed to others
-// without the prior written consent of Nokia.
-// Template version: 4.0
-// Nokia Core OS *
 //
 
 
--- a/sysstatemgmt/systemstateplugins/conditionevaluator/inc/conditiontypes.hrh	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstateplugins/conditionevaluator/inc/conditiontypes.hrh	Fri Mar 19 09:58:42 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2009 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"
@@ -12,22 +12,8 @@
 * Contributors:
 *
 * Description:
-* Name        : conditiontypes.hrh
-* Part of     : System Startup / Condition
-* Interface   : None
 * Identifiers for different condition types, for use in resource
 * structs.
-* Version     : %version: 1 %
-* This material, including documentation and any related computer
-* programs, is protected by copyright controlled by Nokia.  All
-* rights are reserved.  Copying, including reproducing, storing,
-* adapting or translating, any or all of this material requires the
-* prior written consent of Nokia.  This material also contains
-* confidential information which may not be disclosed to others
-* without the prior written consent of Nokia.
-* Template version: 4.0
-* Nokia Core OS *
-*
 */
 
 
--- a/sysstatemgmt/systemstateplugins/conditionevaluator/src/cndcentralrepository.cpp	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstateplugins/conditionevaluator/src/cndcentralrepository.cpp	Fri Mar 19 09:58:42 2010 +0200
@@ -1,4 +1,4 @@
-// Copyright (c) 2007-2009 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"
@@ -11,21 +11,8 @@
 // Contributors:
 //
 // Description:
-// Name        : conditiononcentrep.cpp
-// Part of     : System Startup / Condition
 // Implementation of CConditionOnCentRep and
 // CConditionOnCentRepFlag classes.
-// Version     : %version: 1 %
-// This material, including documentation and any related computer
-// programs, is protected by copyright controlled by Nokia.  All
-// rights are reserved.  Copying, including reproducing, storing,
-// adapting or translating, any or all of this material requires the
-// prior written consent of Nokia.  This material also contains
-// confidential information which may not be disclosed to others
-// without the prior written consent of Nokia.
-// Template version: 4.1
-// Nokia Core OS *
-// File renamed from conditiononcentrep.cpp to cndcentralrepository.cpp as part of Core OS transfer.
 //
 
 
--- a/sysstatemgmt/systemstateplugins/conditionevaluator/src/cndfeature.cpp	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstateplugins/conditionevaluator/src/cndfeature.cpp	Fri Mar 19 09:58:42 2010 +0200
@@ -1,4 +1,4 @@
-// Copyright (c) 2007-2009 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"
@@ -11,24 +11,12 @@
 // Contributors:
 //
 // Description:
-// Name        : conditiononfeature.cpp
-// Part of     : System Startup / Starter
 // Implementation of CConditionOnFeature class
-// Version     : %version: 1 %
-// This material, including documentation and any related computer
-// programs, is protected by copyright controlled by Nokia.  All
-// rights are reserved.  Copying, including reproducing, storing,
-// adapting or translating, any or all of this material requires the
-// prior written consent of Nokia.  This material also contains
-// confidential information which may not be disclosed to others
-// without the prior written consent of Nokia.
-// Template version: 4.1
-// Nokia Core OS *
-// File renamed from conditiononfeature.cpp to cndfeature.cpp as part of Core OS transfer.
 //
 
 
 
+
 #include "cndfeature.h"
 #include <featmgr/featurecontrol.h>
 #include <featmgr/featmgr.h> 
--- a/sysstatemgmt/systemstateplugins/conditionevaluator/src/cndlogical.cpp	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstateplugins/conditionevaluator/src/cndlogical.cpp	Fri Mar 19 09:58:42 2010 +0200
@@ -1,4 +1,4 @@
-// Copyright (c) 2007-2009 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"
@@ -11,20 +11,7 @@
 // Contributors:
 //
 // Description:
-// Name        : resourcecondition.cpp
-// Part of     : System Startup / Condition
 // Implementation of ResourceCondition class
-// Version     : %version: 1 %
-// This material, including documentation and any related computer
-// programs, is protected by copyright controlled by Nokia.  All
-// rights are reserved.  Copying, including reproducing, storing,
-// adapting or translating, any or all of this material requires the
-// prior written consent of Nokia.  This material also contains
-// confidential information which may not be disclosed to others
-// without the prior written consent of Nokia.
-// Template version: 4.1
-// Nokia Core OS *
-// File renamed from resourcecondition.cpp to cndlogical.cpp as part of Core OS transfer.
 //
 
 
--- a/sysstatemgmt/systemstateplugins/conditionevaluator/src/cndpublishsubscribe.cpp	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstateplugins/conditionevaluator/src/cndpublishsubscribe.cpp	Fri Mar 19 09:58:42 2010 +0200
@@ -1,4 +1,4 @@
-// Copyright (c) 2007-2009 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"
@@ -11,21 +11,8 @@
 // Contributors:
 //
 // Description:
-// Name        : conditiononpubsub.cpp
-// Part of     : System Startup / Condition
 // Implementation of CConditionOnPubSub and CConditionOnPubSubFlag
 // classes
-// Version     : %version: 1 %
-// This material, including documentation and any related computer
-// programs, is protected by copyright controlled by Nokia.  All
-// rights are reserved.  Copying, including reproducing, storing,
-// adapting or translating, any or all of this material requires the
-// prior written consent of Nokia.  This material also contains
-// confidential information which may not be disclosed to others
-// without the prior written consent of Nokia.
-// Template version: 4.1
-// Nokia Core OS *
-// File renamed from conditiononpubsub.cpp to cndpublishsubscribe.cpp as part of Core OS transfer.
 //
 
 
--- a/sysstatemgmt/systemstateplugins/conditionevaluator/src/conditionevaluate.cpp	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstateplugins/conditionevaluator/src/conditionevaluate.cpp	Fri Mar 19 09:58:42 2010 +0200
@@ -1,4 +1,4 @@
-// Copyright (c) 2007-2009 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"
@@ -11,20 +11,7 @@
 // Contributors:
 //
 // Description:
-// Name        : resourcecondition.cpp
-// Part of     : System Startup / Condition
 // Implementation of ResourceCondition class
-// Version     : %version: 1 %
-// This material, including documentation and any related computer
-// programs, is protected by copyright controlled by Nokia.  All
-// rights are reserved.  Copying, including reproducing, storing,
-// adapting or translating, any or all of this material requires the
-// prior written consent of Nokia.  This material also contains
-// confidential information which may not be disclosed to others
-// without the prior written consent of Nokia.
-// Template version: 4.1
-// Nokia Core OS *
-// File renamed from resourcecondition.cpp to conditionevaluate.cpp as part of Core OS transfer.
 //
 
 
--- a/sysstatemgmt/systemstatereferenceplugins/clayer/group/bld.inf	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstatereferenceplugins/clayer/group/bld.inf	Fri Mar 19 09:58:42 2010 +0200
@@ -1,4 +1,4 @@
-// Copyright (c) 2007-2009 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"
@@ -47,8 +47,8 @@
 ../inc/securitynotification.h			SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(ssm/securitynotification.h)
 ../inc/ssmpropertyobserver.h			SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(ssm/ssmpropertyobserver.h)
 ../inc/strtsecuritystatus.h				SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(ssm/strtsecuritystatus.h)
-#ifdef SYMBIAN_OLD_EXPORT_LOCATION
-../inc/startupadaptationadapter.h		/epoc32/include/ssm/startupadaptationadapter.h
-#endif
+
+../inc/startupadaptationadapter.h		SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(ssm/startupadaptationadapter.h)
+
 ../inc/clayerswp.hrh 					/epoc32/include/ssm/clayerswp.hrh
 ../inc/clayerdlldatadefs.rh				SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(ssm/clayerdlldatadefs.rh)
--- a/sysstatemgmt/systemstatereferenceplugins/clayer/group/ssmclayersup.mmp	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstatereferenceplugins/clayer/group/ssmclayersup.mmp	Fri Mar 19 09:58:42 2010 +0200
@@ -1,4 +1,4 @@
-// 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"
@@ -32,7 +32,6 @@
 USERINCLUDE		../inc
 USERINCLUDE 	../../localinc
 USERINCLUDE 	../../custcmd/inc
-USERINCLUDE	../../../../../../os/devicesrv/sysstatemgmt/systemstatereferenceplugins/custcmd/inc
 
 SOURCEPATH		../src
 SOURCE			ssmsecurityeventobserver.cpp
@@ -45,6 +44,9 @@
 SOURCEPATH		../../custcmd/src
 SOURCE			ssmsecuritychecknotifier.cpp
 
+SOURCEPATH		../../localsrc
+SOURCE			ssmpanic.cpp
+
 
 LIBRARY			euser.lib 
 LIBRARY			ssmuiproviderdll.lib
--- a/sysstatemgmt/systemstatereferenceplugins/clayer/inc/securitynotification.h	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstatereferenceplugins/clayer/inc/securitynotification.h	Fri Mar 19 09:58:42 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2006-2009 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"
@@ -12,21 +12,9 @@
 * Contributors:
 *
 * Description:
-* Name        : securitynotification.h
-* Part of     : System Startup / Starter
 * Interface   : Domain, Security Notification API
 * Parameter and constant definitions for launching
 * security-related notifications using the Notifier Framework.
-* Version     : %version: ou1s60rt#2.1.1 %
-* This material, including documentation and any related computer
-* programs, is protected by copyright controlled by Nokia.  All
-* rights are reserved.  Copying, including reproducing, storing,
-* adapting or translating, any or all of this material requires the
-* prior written consent of Nokia.  This material also contains
-* confidential information which may not be disclosed to others
-* without the prior written consent of Nokia.
-* Template version: 4.1
-* Nokia Core OS *
 *
 */
 
--- a/sysstatemgmt/systemstatereferenceplugins/clayer/inc/simutils.h	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstatereferenceplugins/clayer/inc/simutils.h	Fri Mar 19 09:58:42 2010 +0200
@@ -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"
@@ -12,20 +12,8 @@
 * Contributors:
 *
 * Description:
-* Name        : simutils.h
-* Part of     : System Startup / Starter
 * Interface   : Domain, SIM Utils API
 * This file contains SIM Utils definitions of Startup subsystem.
-* Version     : %version:  1 %
-* This material, including documentation and any related computer
-* programs, is protected by copyright controlled by Nokia.  All
-* rights are reserved.  Copying, including reproducing, storing,
-* adapting or translating, any or all of this material requires the
-* prior written consent of Nokia.  This material also contains
-* confidential information which may not be disclosed to others
-* without the prior written consent of Nokia.
-* Template version: 4.2
-* Nokia Core OS *
 *
 */
 
--- a/sysstatemgmt/systemstatereferenceplugins/clayer/inc/ssmsecurityeventobserver.h	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstatereferenceplugins/clayer/inc/ssmsecurityeventobserver.h	Fri Mar 19 09:58:42 2010 +0200
@@ -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"
@@ -12,20 +12,7 @@
 * Contributors:
 *
 * Description:
-* Name        : strtsecurityeventobserver.h
-* Part of     : System Startup / StrtSecObs
 * Declaration of CStrtSecurityEventObserver class
-* Version     : %version: 1 % << Don't touch! Updated by Synergy at check-out.
-* This material, including documentation and any related computer
-* programs, is protected by copyright controlled by Nokia.  All
-* rights are reserved.  Copying, including reproducing, storing,
-* adapting or translating, any or all of this material requires the
-* prior written consent of Nokia.  This material also contains
-* confidential information which may not be disclosed to others
-* without the prior written consent of Nokia.
-* Template version: 4.2
-* Nokia Core OS *
-* File renamed from strtsecurityeventobserver.h to ssmsecurityeventobserver.h as part of Core OS transfer.
 *
 */
 
--- a/sysstatemgmt/systemstatereferenceplugins/clayer/inc/ssmsecuritynotecontroller.h	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstatereferenceplugins/clayer/inc/ssmsecuritynotecontroller.h	Fri Mar 19 09:58:42 2010 +0200
@@ -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"
@@ -12,20 +12,7 @@
 * Contributors:
 *
 * Description:
-* Name        : strtsecuritynotecontroller.h
-* Part of     : System Startup / StrtSecObs
 * Declaration of CStrtSecurityNoteController class
-* Version     : %version: 1 % << Don't touch! Updated by Synergy at check-out.
-* This material, including documentation and any related computer
-* programs, is protected by copyright controlled by Nokia.  All
-* rights are reserved.  Copying, including reproducing, storing,
-* adapting or translating, any or all of this material requires the
-* prior written consent of Nokia.  This material also contains
-* confidential information which may not be disclosed to others
-* without the prior written consent of Nokia.
-* Template version: 4.2
-* Nokia Core OS *
-* File renamed from strtsecuritynotecontroller.h to ssmsecuritynotecontroller.h as part of Core OS transfer.
 *
 */
 
@@ -43,6 +30,7 @@
  *  @released
 */
 
+
 class CSsmSecurityCheckNotifier;
 class CStrtSecNoteRequestQueue;
 
@@ -98,10 +86,16 @@
     /**
      * From CActive.
      * Handles an active object's request completion event.
-     * Never leaves.
      */
     virtual void RunL();
 
+	/**
+     * From CActive.
+     * Handles any leaves originating from the active object's RunL().
+     */
+        
+    virtual TInt RunError(TInt aError);
+
 private:
 
     /**
--- a/sysstatemgmt/systemstatereferenceplugins/clayer/inc/starter.hrh	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstatereferenceplugins/clayer/inc/starter.hrh	Fri Mar 19 09:58:42 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002-2009 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"
@@ -12,20 +12,8 @@
 * Contributors:
 *
 * Description:
-* Name        : starter.hrh
-* Part of     : System Startup / Starter
 * Interface   : Domain, Extended Startup API
 * Resource headers for projects StarterServer and StarterClient.
-* Version     : %version: 6 %
-* This material, including documentation and any related computer
-* programs, is protected by copyright controlled by Nokia.  All
-* rights are reserved.  Copying, including reproducing, storing,
-* adapting or translating, any or all of this material requires the
-* prior written consent of Nokia.  This material also contains
-* confidential information which may not be disclosed to others
-* without the prior written consent of Nokia.
-* Template version: 4.0
-* Nokia Core OS *
 *
 */
 
--- a/sysstatemgmt/systemstatereferenceplugins/clayer/inc/starterclient.h	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstatereferenceplugins/clayer/inc/starterclient.h	Fri Mar 19 09:58:42 2010 +0200
@@ -12,20 +12,8 @@
 * Contributors:
 *
 * Description:
-* Name        : starterclient.h
-* Part of     : System Startup / Starter
 * Interface   : Domain, System State Control API and Extended Startup API
 * Declaration of RStarterSession interface
-* Version     : %version: ou1s60rt#8 %
-* This material, including documentation and any related computer
-* programs, is protected by copyright controlled by Nokia.  All
-* rights are reserved.  Copying, including reproducing, storing,
-* adapting or translating, any or all of this material requires the
-* prior written consent of Nokia.  This material also contains
-* confidential information which may not be disclosed to others
-* without the prior written consent of Nokia.
-* Template version: 4.0
-* Nokia Core OS *
 *
 */
 
--- a/sysstatemgmt/systemstatereferenceplugins/clayer/inc/starterdomaincrkeys.h	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstatereferenceplugins/clayer/inc/starterdomaincrkeys.h	Fri Mar 19 09:58:42 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2009 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"
@@ -12,20 +12,8 @@
 * Contributors:
 *
 * Description:
-* Name        : starterdomaincrkeys.h
-* Part of     : System Startup / Starter
 * Interface   : Domain, Startup Status API.
 * Domain Central Repository definitions of System Startup subsystem.
-* Version     : %version: 1 %
-* This material, including documentation and any related computer
-* programs, is protected by copyright controlled by Nokia.  All
-* rights are reserved.  Copying, including reproducing, storing,
-* adapting or translating, any or all of this material requires the
-* prior written consent of Nokia.  This material also contains
-* confidential information which may not be disclosed to others
-* without the prior written consent of Nokia.
-* Template version: 4.0
-* Nokia Core OS *
 *
 */
 
--- a/sysstatemgmt/systemstatereferenceplugins/clayer/inc/starterprivatecrkeys.h	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstatereferenceplugins/clayer/inc/starterprivatecrkeys.h	Fri Mar 19 09:58:42 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2009 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"
@@ -12,20 +12,8 @@
 * Contributors:
 *
 * Description:
-* Name        : starterprivatecrkeys.h
-* Part of     : System Startup / Starter
 * Interface   : Private, Starter Configuration API.
 * Private Central Repository definitions of Starter component.
-* Version     : %version: 2 %
-* This material, including documentation and any related computer
-* programs, is protected by copyright controlled by Nokia.  All
-* rights are reserved.  Copying, including reproducing, storing,
-* adapting or translating, any or all of this material requires the
-* prior written consent of Nokia.  This material also contains
-* confidential information which may not be disclosed to others
-* without the prior written consent of Nokia.
-* Template version: 4.0
-* Nokia Core OS *
 *
 */
 
--- a/sysstatemgmt/systemstatereferenceplugins/clayer/inc/startupadaptation.h	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstatereferenceplugins/clayer/inc/startupadaptation.h	Fri Mar 19 09:58:42 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2004-2009 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"
@@ -12,21 +12,9 @@
 * Contributors:
 *
 * Description:
-* Name        : startupadaptation.h
-* Part of     : System Startup / Starter
 * Interface   : Domain, Startup Adaptation API
 * This header file defines the Startup Adaptation API command
 * interface used to issue commands towards adaptation.
-* Version     : %version: ou1s60rt#6 %
-* This material, including documentation and any related computer
-* programs, is protected by copyright controlled by Nokia.  All
-* rights are reserved.  Copying, including reproducing, storing,
-* adapting or translating, any or all of this material requires the
-* prior written consent of Nokia.  This material also contains
-* confidential information which may not be disclosed to others
-* without the prior written consent of Nokia.
-* Template version: 4.0
-* Nokia Core OS *
 *
 */
 
--- a/sysstatemgmt/systemstatereferenceplugins/clayer/inc/startupadaptation.inl	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstatereferenceplugins/clayer/inc/startupadaptation.inl	Fri Mar 19 09:58:42 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2004-2009 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"
@@ -12,21 +12,9 @@
 * Contributors:
 *
 * Description:
-* Name        : startupadaptation.inl
-* Part of     : System Startup / Starter
 * Interface   : Domain, Startup Adaptation API
 * Implementation for inline functions of CStartupAdaptation
 * class.
-* Version     : %version: ou1s60rt#7 %
-* This material, including documentation and any related computer
-* programs, is protected by copyright controlled by Nokia.  All
-* rights are reserved.  Copying, including reproducing, storing,
-* adapting or translating, any or all of this material requires the
-* prior written consent of Nokia.  This material also contains
-* confidential information which may not be disclosed to others
-* without the prior written consent of Nokia.
-* Template version: 4.0
-* Nokia Core OS *
 *
 */
 
--- a/sysstatemgmt/systemstatereferenceplugins/clayer/inc/startupadaptationcommands.h	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstatereferenceplugins/clayer/inc/startupadaptationcommands.h	Fri Mar 19 09:58:42 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2004-2009 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"
@@ -12,8 +12,6 @@
 * Contributors:
 *
 * Description:
-* Name        : startupadaptationcommands.h
-* Part of     : System Startup / Starter
 * Interface   : Domain, Startup Adaptation API
 * This header file defines the startup adaptation API commands
 * and their parameters.
@@ -21,16 +19,6 @@
 * - Command definitions
 * - Command parameter definitions
 * - Response parameter definitions
-* Version     : %version: ou1s60rt#12.1.4 %
-* This material, including documentation and any related computer
-* programs, is protected by copyright controlled by Nokia.  All
-* rights are reserved.  Copying, including reproducing, storing,
-* adapting or translating, any or all of this material requires the
-* prior written consent of Nokia.  This material also contains
-* confidential information which may not be disclosed to others
-* without the prior written consent of Nokia.
-* Template version: 4.0
-* Nokia Core OS *
 *
 */
 
@@ -661,52 +649,58 @@
     */
 
     enum TPreferredLanguage
-        {                         // ISO 639 GSM 0338
-        EPrefLangEnglish = 1,     // EN      1
-        EPrefLangFrench = 2,      // FR      3
-        EPrefLangGerman = 3,      // DE      0
-        EPrefLangSpanish = 4,     // ES      4
-        EPrefLangItalian = 5,     // IT      2
-        EPrefLangSwedish = 6,     // SV      6
-        EPrefLangDanish = 7,      // DA      7
-        EPrefLangNorwegian = 8,   // NO      10
-        EPrefLangFinnish = 9,     // FI      9
-        EPrefLangPortuguese = 13, // PT      8
-        EPrefLangTurkish = 14,    // TR      12
-        EPrefLangIcelandic = 15,  // IS      36
-        EPrefLangRussian = 16,    // RU      35
-        EPrefLangHungarian = 17,  // HU      13
-        EPrefLangDutch = 18,      // NL      5
-        EPrefLangCzech = 25,      // CS      32
-        EPrefLangSlovak = 26,     // SK
-        EPrefLangPolish = 27,     // PL      14
-        EPrefLangSlovenian = 28,  // SL
-        EPrefLangPrcChinese = 31, // ZH
-        EPrefLangJapanese = 32,   // JA
-        EPrefLangThai = 33,       // TH
-        EPrefLangArabic = 37,     // AR      34
-        EPrefLangTagalog = 39,    // TL
-        EPrefLangBulgarian = 42,  // BG
-        EPrefLangCatalan = 44,    // CA
-        EPrefLangCroatian = 45,   // HR
-        EPrefLangEstonian = 49,   // ET
-        EPrefLangFarsi = 50,      // FA
-        EPrefLangGreek = 54,      // EL      11
-        EPrefLangHebrew = 57,     // IW      33
-        EPrefLangHindi = 58,      // HI
-        EPrefLangIndonesian = 59, // IN
-        EPrefLangKorean = 65,     // KO
-        EPrefLangLatvian = 67,    // LV
-        EPrefLangLithuanian = 68, // LT
-        EPrefLangMalay = 70,      // MS
-        EPrefLangMarathi = 72,    // MR
-        EPrefLangRomanian = 78,   // RO
-        EPrefLangSerbian = 79,    // SR
-        EPrefLangUkrainian = 93,  // UK
-        EPrefLangUrdu = 94,       // UR
-        EPrefLangVietnamese = 96, // VI
-        EPrefLangBasque = 102,    // EU
-        EPrefLangGalician = 103   // GL
+        {									// ISO 639 GSM 0338
+        EPrefLangEnglish = 1,				// EN      1
+        EPrefLangFrench = 2,				// FR      3
+        EPrefLangGerman = 3,				// DE      0
+        EPrefLangSpanish = 4,				// ES      4
+        EPrefLangItalian = 5,				// IT      2
+        EPrefLangSwedish = 6,				// SV      6
+        EPrefLangDanish = 7,				// DA      7
+        EPrefLangNorwegian = 8,				// NO      10
+        EPrefLangFinnish = 9,				// FI      9
+        EPrefLangAmerican = 10,				// EN
+        EPrefLangPortuguese = 13,			// PT      8
+        EPrefLangTurkish = 14,				// TR      12
+        EPrefLangIcelandic = 15,			// IS      36
+        EPrefLangRussian = 16,				// RU      35
+        EPrefLangHungarian = 17,			// HU      13
+        EPrefLangDutch = 18,				// NL      5
+        EPrefLangCzech = 25,				// CS      32
+        EPrefLangSlovak = 26,				// SK
+        EPrefLangPolish = 27,				// PL      14
+        EPrefLangSlovenian = 28,			// SL
+        EPrefLangTaiwanChinese = 29,		// TC
+        EPrefLangHongKongChinese = 30,		// HK
+        EPrefLangPrcChinese = 31,			// ZH
+        EPrefLangJapanese = 32,				// JA
+        EPrefLangThai = 33,					// TH
+        EPrefLangArabic = 37,				// AR      34
+        EPrefLangTagalog = 39,				// TL
+        EPrefLangBulgarian = 42,			// BG
+        EPrefLangCatalan = 44,				// CA
+        EPrefLangCroatian = 45,				// HR
+        EPrefLangEstonian = 49,				// ET
+        EPrefLangFarsi = 50,				// FA
+        EPrefLangCanadianFrench = 51,		// CF
+        EPrefLangGreek = 54,				// EL      11
+        EPrefLangHebrew = 57,				// IW      33
+        EPrefLangHindi = 58,				// HI
+        EPrefLangIndonesian = 59,			// IN
+        EPrefLangKorean = 65,				// KO
+        EPrefLangLatvian = 67,				// LV
+        EPrefLangLithuanian = 68,			// LT
+        EPrefLangMalay = 70,				// MS
+        EPrefLangMarathi = 72,				// MR
+        EPrefLangBrazilianPortuguese = 76,	// BP
+        EPrefLangRomanian = 78,				// RO
+        EPrefLangSerbian = 79,				// SR
+        EPrefLangLatinAmericanSpanish = 83,	// LS 
+        EPrefLangUkrainian = 93,			// UK
+        EPrefLangUrdu = 94,					// UR
+        EPrefLangVietnamese = 96,			// VI
+        EPrefLangBasque = 102,				// EU
+        EPrefLangGalician = 103				// GL
         };
 
 
--- a/sysstatemgmt/systemstatereferenceplugins/clayer/inc/startupadaptationcommands.inl	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstatereferenceplugins/clayer/inc/startupadaptationcommands.inl	Fri Mar 19 09:58:42 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2006-2009 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"
@@ -12,21 +12,9 @@
 * Contributors:
 *
 * Description:
-* Name        : startupadaptationcommands.inl
-* Part of     : System Startup / Starter
 * Interface   : Domain, Startup Adaptation API
 * Implementation for inline functions of classes defined in
 * startupadaptationcommands.h.
-* Version     : %version: 2 %
-* This material, including documentation and any related computer
-* programs, is protected by copyright controlled by Nokia.  All
-* rights are reserved.  Copying, including reproducing, storing,
-* adapting or translating, any or all of this material requires the
-* prior written consent of Nokia.  This material also contains
-* confidential information which may not be disclosed to others
-* without the prior written consent of Nokia.
-* Template version: 4.0
-* Nokia Core OS *
 *
 */
 
--- a/sysstatemgmt/systemstatereferenceplugins/clayer/inc/startupadaptationevents.h	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstatereferenceplugins/clayer/inc/startupadaptationevents.h	Fri Mar 19 09:58:42 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2004-2009 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"
@@ -12,24 +12,12 @@
 * Contributors:
 *
 * Description:
-* Name        : startupadaptationevents.h
-* Part of     : System Startup / Starter
 * Interface   : Domain, Startup Adaptation API
 * This header file defines the startup adaptation API events
 * and their parameters.
 * This file contains the following sections:
 * - Event definitions
 * - Event parameter definitions
-* Version     : %version: 5 %
-* This material, including documentation and any related computer
-* programs, is protected by copyright controlled by Nokia.  All
-* rights are reserved.  Copying, including reproducing, storing,
-* adapting or translating, any or all of this material requires the
-* prior written consent of Nokia.  This material also contains
-* confidential information which may not be disclosed to others
-* without the prior written consent of Nokia.
-* Template version: 4.0
-* Nokia Core OS *
 *
 */
 
--- a/sysstatemgmt/systemstatereferenceplugins/clayer/inc/startupadaptationobserver.h	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstatereferenceplugins/clayer/inc/startupadaptationobserver.h	Fri Mar 19 09:58:42 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2004-2009 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"
@@ -12,21 +12,9 @@
 * Contributors:
 *
 * Description:
-* Name        : startupadaptationobserver.h
-* Part of     : System Startup / Starter
 * Interface   : Domain, Startup Adaptation API
 * This header file defines the startup adaptation API observer
 * interface used to return responses and deliver events.
-* Version     : %version: ou1s60rt#5 %
-* This material, including documentation and any related computer
-* programs, is protected by copyright controlled by Nokia.  All
-* rights are reserved.  Copying, including reproducing, storing,
-* adapting or translating, any or all of this material requires the
-* prior written consent of Nokia.  This material also contains
-* confidential information which may not be disclosed to others
-* without the prior written consent of Nokia.
-* Template version: 4.1
-* Nokia Core OS *
 *
 */
 
--- a/sysstatemgmt/systemstatereferenceplugins/clayer/inc/startupdomainpskeys.h	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstatereferenceplugins/clayer/inc/startupdomainpskeys.h	Fri Mar 19 09:58:42 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2005-2009 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"
@@ -12,20 +12,8 @@
 * Contributors:
 *
 * Description:
-* Name        : startupdomainpskeys.h
-* Part of     : System Startup / Starter
 * Interface   : Domain, System State API
 * This file contains Domain Publish & Subscribe definitions of Startup subsystem.
-* Version     : %version: ou1s60rt#12 %
-* This material, including documentation and any related computer
-* programs, is protected by copyright controlled by Nokia.  All
-* rights are reserved.  Copying, including reproducing, storing,
-* adapting or translating, any or all of this material requires the
-* prior written consent of Nokia.  This material also contains
-* confidential information which may not be disclosed to others
-* without the prior written consent of Nokia.
-* Template version: 4.0
-* Nokia Core OS *
 *
 */
 
--- a/sysstatemgmt/systemstatereferenceplugins/clayer/inc/startupreason.h	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstatereferenceplugins/clayer/inc/startupreason.h	Fri Mar 19 09:58:42 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2009 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"
@@ -12,20 +12,8 @@
 * Contributors:
 *
 * Description:
-* Name        : startupreason.h
-* Part of     : System Startup / Starter
 * Interface   : Domain, Startup Reason API
 * Contains enumeration of valid system startup reasons.
-* Version     : %version: 2 %
-* This material, including documentation and any related computer
-* programs, is protected by copyright controlled by Nokia.  All
-* rights are reserved.  Copying, including reproducing, storing,
-* adapting or translating, any or all of this material requires the
-* prior written consent of Nokia.  This material also contains
-* confidential information which may not be disclosed to others
-* without the prior written consent of Nokia.
-* Template version: 4.1
-* Nokia Core OS *
 *
 */
 
--- a/sysstatemgmt/systemstatereferenceplugins/clayer/inc/strtsecnoterequestqueue.h	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstatereferenceplugins/clayer/inc/strtsecnoterequestqueue.h	Fri Mar 19 09:58:42 2010 +0200
@@ -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"
@@ -12,20 +12,7 @@
 * Contributors:
 *
 * Description:
-* Name        : strtsecnoterequestqueue.h
-* Part of     : System Startup / StrtSecObs
 * Declaration of CStrtSecNoteRequestQueue class
-* Version     : %version: 1 % << Don't touch! Updated by Synergy at check-out.
-* This material, including documentation and any related computer
-* programs, is protected by copyright controlled by Nokia.  All
-* rights are reserved.  Copying, including reproducing, storing,
-* adapting or translating, any or all of this material requires the
-* prior written consent of Nokia.  This material also contains
-* confidential information which may not be disclosed to others
-* without the prior written consent of Nokia.
-* Template version: 4.2
-* Nokia Core OS *
-*
 */
 
 
--- a/sysstatemgmt/systemstatereferenceplugins/clayer/inc/strtsecphaseobserver.h	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstatereferenceplugins/clayer/inc/strtsecphaseobserver.h	Fri Mar 19 09:58:42 2010 +0200
@@ -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"
@@ -12,19 +12,7 @@
 * Contributors:
 *
 * Description:
-* Name        : strtsecphaseobserver.h
-* Part of     : System Startup / StrtSecObs
 * Declaration of CStrtSecPhaseObserver class
-* Version     : %version: 1 % << Don't touch! Updated by Synergy at check-out.
-* This material, including documentation and any related computer
-* programs, is protected by copyright controlled by Nokia.  All
-* rights are reserved.  Copying, including reproducing, storing,
-* adapting or translating, any or all of this material requires the
-* prior written consent of Nokia.  This material also contains
-* confidential information which may not be disclosed to others
-* without the prior written consent of Nokia.
-* Template version: 4.2
-* Nokia Core OS *
 *
 */
 
--- a/sysstatemgmt/systemstatereferenceplugins/clayer/inc/strtsecuritynotetype.h	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstatereferenceplugins/clayer/inc/strtsecuritynotetype.h	Fri Mar 19 09:58:42 2010 +0200
@@ -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"
@@ -12,19 +12,7 @@
 * Contributors:
 *
 * Description:
-* Name        : strtsecuritynotetype.h
-* Part of     : System Startup / StrtSecNote
 * Definition of TStrtSecurityNoteType enumeration.
-* Version     : %version: 1 % << Don't touch! Updated by Synergy at check-out.
-* This material, including documentation and any related computer
-* programs, is protected by copyright controlled by Nokia.  All
-* rights are reserved.  Copying, including reproducing, storing,
-* adapting or translating, any or all of this material requires the
-* prior written consent of Nokia.  This material also contains
-* confidential information which may not be disclosed to others
-* without the prior written consent of Nokia.
-* Template version: 4.2
-* Nokia Core OS *
 *
 */
 
--- a/sysstatemgmt/systemstatereferenceplugins/clayer/inc/strtsecuritystatus.h	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstatereferenceplugins/clayer/inc/strtsecuritystatus.h	Fri Mar 19 09:58:42 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2004-2009 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"
@@ -12,20 +12,7 @@
 * Contributors:
 *
 * Description:
-* Name        : strtsecuritystatus.h
-* Part of     : System Startup / Starter
-* Interface   : None
 * TStrtSecurityStatus enumeration.
-* Version     : %version: ou1s60rt#4 %
-* This material, including documentation and any related computer
-* programs, is protected by copyright controlled by Nokia.  All
-* rights are reserved.  Copying, including reproducing, storing,
-* adapting or translating, any or all of this material requires the
-* prior written consent of Nokia.  This material also contains
-* confidential information which may not be disclosed to others
-* without the prior written consent of Nokia.
-* Template version: 4.1
-* Nokia Core OS *
 *
 */
 
--- a/sysstatemgmt/systemstatereferenceplugins/clayer/src/ssmsecurityeventobserver.cpp	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstatereferenceplugins/clayer/src/ssmsecurityeventobserver.cpp	Fri Mar 19 09:58:42 2010 +0200
@@ -1,4 +1,4 @@
-// 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"
@@ -11,20 +11,7 @@
 // Contributors:
 //
 // Description:
-// Name        : strtsecurityeventobserver.cpp
-// Part of     : System Startup / StrtSecObs
 // Implementation of CStrtSecurityEventObserver class
-// Version     : %version: 1 % << Don't touch! Updated by Synergy at check-out.
-// This material, including documentation and any related computer
-// programs, is protected by copyright controlled by Nokia.  All
-// rights are reserved.  Copying, including reproducing, storing,
-// adapting or translating, any or all of this material requires the
-// prior written consent of Nokia.  This material also contains
-// confidential information which may not be disclosed to others
-// without the prior written consent of Nokia.
-// Template version: 4.1.1
-// Nokia Core OS *
-// File renamed from strtsecurityeventobserver.cpp to ssmsecurityeventobserver.cpp as part of Core OS transfer.
 //
 
 
--- a/sysstatemgmt/systemstatereferenceplugins/clayer/src/ssmsecuritynotecontroller.cpp	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstatereferenceplugins/clayer/src/ssmsecuritynotecontroller.cpp	Fri Mar 19 09:58:42 2010 +0200
@@ -1,4 +1,4 @@
-// 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"
@@ -11,20 +11,7 @@
 // Contributors:
 //
 // Description:
-// Name        : strtsecuritynotecontroller.cpp
-// Part of     : System Startup / StrtSecObs
 // Implementation of CStrtSecurityNoteController class
-// Version     : %version: 1 % << Don't touch! Updated by Synergy at check-out.
-// This material, including documentation and any related computer
-// programs, is protected by copyright controlled by Nokia.  All
-// rights are reserved.  Copying, including reproducing, storing,
-// adapting or translating, any or all of this material requires the
-// prior written consent of Nokia.  This material also contains
-// confidential information which may not be disclosed to others
-// without the prior written consent of Nokia.
-// Template version: 4.1.1
-// Nokia Core OS *
-// File renamed from strtsecuritynotecontroller.cpp to ssmsecuritynotecontroller.cpp as part of Core OS transfer.
 //
 
 
@@ -33,6 +20,9 @@
 #include "ssmsecuritynotecontroller.h"
 #include "ssmsecuritychecknotifier.h"
 #include "ssmdebug.h"
+#include "ssmpanic.h"
+#include <ssm/ssmstatemanager.h>
+#include <ssm/startupreason.h>
 
 CStrtSecurityNoteController* CStrtSecurityNoteController::NewL()
     {
@@ -89,6 +79,36 @@
         SetActive();
         }
     }
+#ifdef _DEBUG
+TInt CStrtSecurityNoteController::RunError(TInt aError)
+#else
+TInt CStrtSecurityNoteController::RunError(TInt)
+#endif // _DEBUG
+    {
+    DEBUGPRINT2A("CStrtSecurityNoteController RunL completed with error %d", aError);
+#ifdef _DEBUG
+	PanicNow(KPanicSecurityNoteController, aError);
+#else
+    RSsmStateManager session;
+    TInt errorCode = session.Connect();
+    if ( KErrNone == errorCode )
+        {
+        TSsmStateTransition stateinfo( ESsmShutdown, KSsmAnySubState, EUnknownReset );
+        errorCode = session.RequestStateTransition( stateinfo );
+        if( KErrNone != errorCode )
+            {
+            PanicNow(KPanicSecurityNoteController, errorCode);
+            }
+        session.Close();
+        }
+	else
+		{
+        PanicNow(KPanicSecurityNoteController, errorCode);	
+		}
+#endif //_DEBUG
+
+    return KErrNone;
+    }
 
 CStrtSecurityNoteController::CStrtSecurityNoteController()
   : CActive( EPriorityStandard ),    
--- a/sysstatemgmt/systemstatereferenceplugins/clayer/src/ssmsimstatusobserver.cpp	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstatereferenceplugins/clayer/src/ssmsimstatusobserver.cpp	Fri Mar 19 09:58:42 2010 +0200
@@ -1,4 +1,4 @@
-// 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"
@@ -155,10 +155,16 @@
  * 
  * @internalComponent
  */
+#ifdef _DEBUG
 TInt CSsmSimStatusObserver::RunError(TInt aError)
+#else 
+TInt CSsmSimStatusObserver::RunError(TInt)
+#endif // _DEBUG
 	{
 	DEBUGPRINT2A("CSsmSimStatusObserver RunError received error: %d", aError);
-	return aError;
+	//Errors are thrown if SWP transitions are not allowed.
+	//So, handles such errors gracefully.
+	return KErrNone;
 	}
 
 /**
--- a/sysstatemgmt/systemstatereferenceplugins/clayer/src/strtsecnoterequestqueue.cpp	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstatereferenceplugins/clayer/src/strtsecnoterequestqueue.cpp	Fri Mar 19 09:58:42 2010 +0200
@@ -1,4 +1,4 @@
-// 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"
@@ -11,19 +11,7 @@
 // Contributors:
 //
 // Description:
-// Name        : strtsecnoterequestqueue.cpp
-// Part of     : System Startup / StrtSecObs
 // Implementation of CStrtSecNoteRequestQueue class
-// Version     : %version: 1 % << Don't touch! Updated by Synergy at check-out.
-// This material, including documentation and any related computer
-// programs, is protected by copyright controlled by Nokia.  All
-// rights are reserved.  Copying, including reproducing, storing,
-// adapting or translating, any or all of this material requires the
-// prior written consent of Nokia.  This material also contains
-// confidential information which may not be disclosed to others
-// without the prior written consent of Nokia.
-// Template version: 4.1.1
-// Nokia Core OS *
 //
 
 
--- a/sysstatemgmt/systemstatereferenceplugins/clayer/src/strtsecphaseobserver.cpp	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstatereferenceplugins/clayer/src/strtsecphaseobserver.cpp	Fri Mar 19 09:58:42 2010 +0200
@@ -1,4 +1,4 @@
-// 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"
@@ -11,19 +11,7 @@
 // Contributors:
 //
 // Description:
-// Name        : strtsecphaseobserver.cpp
-// Part of     : System Startup / StrtSecObs
 // Implementation of CStrtSecPhaseObserver class
-// Version     : %version: 1 % << Don't touch! Updated by Synergy at check-out.
-// This material, including documentation and any related computer
-// programs, is protected by copyright controlled by Nokia.  All
-// rights are reserved.  Copying, including reproducing, storing,
-// adapting or translating, any or all of this material requires the
-// prior written consent of Nokia.  This material also contains
-// confidential information which may not be disclosed to others
-// without the prior written consent of Nokia.
-// Template version: 4.1.1
-// Nokia Core OS *
 //
 
 
--- a/sysstatemgmt/systemstatereferenceplugins/custcmd/inc/cmddevicesecuritycheck.h	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstatereferenceplugins/custcmd/inc/cmddevicesecuritycheck.h	Fri Mar 19 09:58:42 2010 +0200
@@ -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"
@@ -12,20 +12,7 @@
 * Contributors:
 *
 * Description:
-* Name        : strtdevlockcheck.h
-* Part of     : System Startup / StrtDevLockPlg
 * Declaration of CStrtDevLockCheck class.
-* Version     : %version: 1 %
-* This material, including documentation and any related computer
-* programs, is protected by copyright controlled by Nokia.  All
-* rights are reserved.  Copying, including reproducing, storing,
-* adapting or translating, any or all of this material requires the
-* prior written consent of Nokia.  This material also contains
-* confidential information which may not be disclosed to others
-* without the prior written consent of Nokia.
-* Template version: 4.2
-* Nokia Core OS *
-* File renamed from strtdevlockcheck.h to cmddevicesecuritycheck.h as part of Core OS transfer.
 *
 */
 
--- a/sysstatemgmt/systemstatereferenceplugins/custcmd/inc/cmdsimsecuritycheck.h	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstatereferenceplugins/custcmd/inc/cmdsimsecuritycheck.h	Fri Mar 19 09:58:42 2010 +0200
@@ -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"
@@ -12,20 +12,7 @@
 * Contributors:
 *
 * Description:
-* Name        : strtsecuritychecktask.h
-* Part of     : System Startup / Starter
 * Declaration of CStrtSecurityCheckTask class
-* Version     : %version: ou1s60rt#5.1.1 %
-* This material, including documentation and any related computer
-* programs, is protected by copyright controlled by Nokia.  All
-* rights are reserved.  Copying, including reproducing, storing,
-* adapting or translating, any or all of this material requires the
-* prior written consent of Nokia.  This material also contains
-* confidential information which may not be disclosed to others
-* without the prior written consent of Nokia.
-* Template version: 4.0
-* Nokia Core OS *
-* File renamed from strtsecuritychecktask.h to cmdsimsecuritycheck.h as part of Core OS transfer.
 *
 */
 
--- a/sysstatemgmt/systemstatereferenceplugins/custcmd/inc/securitynoteobserver.h	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstatereferenceplugins/custcmd/inc/securitynoteobserver.h	Fri Mar 19 09:58:42 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2009 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"
@@ -12,21 +12,7 @@
 * Contributors:
 *
 * Description:
-* Name        : strtsecuritynoteobserver.h
-* Part of     : System Startup / Starter
-* Interface   : None
 * Declaration of CStrtSecurityNoteObserver class.
-* Version     : %version: ou1s60rt#4 %
-* This material, including documentation and any related computer
-* programs, is protected by copyright controlled by Nokia.  All
-* rights are reserved.  Copying, including reproducing, storing,
-* adapting or translating, any or all of this material requires the
-* prior written consent of Nokia.  This material also contains
-* confidential information which may not be disclosed to others
-* without the prior written consent of Nokia.
-* Template version: 4.0
-* Nokia Core OS *
-* File renamed from strtsecuritynoteobserver.h to securitynoteobserver.h as part of Core OS transfer.
 *
 */
 
--- a/sysstatemgmt/systemstatereferenceplugins/custcmd/inc/ssmrefcustomcmdcommon.h	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstatereferenceplugins/custcmd/inc/ssmrefcustomcmdcommon.h	Fri Mar 19 09:58:42 2010 +0200
@@ -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"
@@ -12,20 +12,7 @@
 * Contributors:
 *
 * Description:
-* Name        : strtsecuritychecktask.h
-* Part of     : System Startup / Starter
 * Declaration of CStrtSecurityCheckTask class
-* Version     : %version: ou1s60rt#5.1.1 %
-* This material, including documentation and any related computer
-* programs, is protected by copyright controlled by Nokia.  All
-* rights are reserved.  Copying, including reproducing, storing,
-* adapting or translating, any or all of this material requires the
-* prior written consent of Nokia.  This material also contains
-* confidential information which may not be disclosed to others
-* without the prior written consent of Nokia.
-* Template version: 4.0
-* Nokia Core OS *
-* File renamed from strtsecuritychecktask.h to ssmrefcustomcmdcommon.h as part of Core OS transfer.
 *
 */
 
--- a/sysstatemgmt/systemstatereferenceplugins/custcmd/inc/ssmsecuritychecknotifier.h	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstatereferenceplugins/custcmd/inc/ssmsecuritychecknotifier.h	Fri Mar 19 09:58:42 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2009 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"
@@ -12,21 +12,7 @@
 * Contributors:
 *
 * Description:
-* Name        : strtsecuritynote.h
-* Part of     : System Startup / Starter
-* Interface   : None
 * Declaration of CStrtSecurityNote class.
-* Version     : %version: ou1s60rt#4 %
-* This material, including documentation and any related computer
-* programs, is protected by copyright controlled by Nokia.  All
-* rights are reserved.  Copying, including reproducing, storing,
-* adapting or translating, any or all of this material requires the
-* prior written consent of Nokia.  This material also contains
-* confidential information which may not be disclosed to others
-* without the prior written consent of Nokia.
-* Template version: 4.0
-* Nokia Core OS *
-* File renamed from strtsecuritynote.h to ssmsecuritychecknotifier.h as part of Core OS transfer.
 *
 */
 
--- a/sysstatemgmt/systemstatereferenceplugins/custcmd/inc/swppolicy_simstatus.h	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstatereferenceplugins/custcmd/inc/swppolicy_simstatus.h	Fri Mar 19 09:58:42 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2009 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"
@@ -12,20 +12,7 @@
 * Contributors:
 *
 * Description:
-* Name        : strtsimstatusmgr.h
-* Part of     : System Startup / Starter
-* Interface   : None
 * Declaration of TStrtSimStatusMgr class.
-* Version     : %version: ou1s60rt#7 %
-* This material, including documentation and any related computer
-* programs, is protected by copyright controlled by Nokia.  All
-* rights are reserved.  Copying, including reproducing, storing,
-* adapting or translating, any or all of this material requires the
-* prior written consent of Nokia.  This material also contains
-* confidential information which may not be disclosed to others
-* without the prior written consent of Nokia.
-* Template version: 4.0
-* Nokia Core OS *
 *
 */
 
--- a/sysstatemgmt/systemstatereferenceplugins/custcmd/src/cmddevicesecuritycheck.cpp	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstatereferenceplugins/custcmd/src/cmddevicesecuritycheck.cpp	Fri Mar 19 09:58:42 2010 +0200
@@ -1,4 +1,4 @@
-// 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"
@@ -11,20 +11,7 @@
 // Contributors:
 //
 // Description:
-// Name        : strtdevlockcheck.cpp
-// Part of     : System Startup / StrtDevLockPlg
 // Implementation of CStrtDevLockCheck class.
-// Version     : %version: 1 %
-// This material, including documentation and any related computer
-// programs, is protected by copyright controlled by Nokia.  All
-// rights are reserved.  Copying, including reproducing, storing,
-// adapting or translating, any or all of this material requires the
-// prior written consent of Nokia.  This material also contains
-// confidential information which may not be disclosed to others
-// without the prior written consent of Nokia.
-// Template version: 4.1.1
-// Nokia Core OS *
-// File renamed from strtdevlockcheck.cpp to cmddevicesecuritycheck.cpp as part of Core OS transfer.
 //
 
 
--- a/sysstatemgmt/systemstatereferenceplugins/custcmd/src/cmdsimsecuritycheck.cpp	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstatereferenceplugins/custcmd/src/cmdsimsecuritycheck.cpp	Fri Mar 19 09:58:42 2010 +0200
@@ -1,4 +1,4 @@
-// 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"
@@ -11,20 +11,7 @@
 // Contributors:
 //
 // Description:
-// Name        : strtsecuritychecktask.cpp
-// Part of     : System Startup / Starter
 // Implementation of CStrtSecurityCheckTask class
-// Version     : %version: ou1s60rt#7.1.1 %
-// This material, including documentation and any related computer
-// programs, is protected by copyright controlled by Nokia.  All
-// rights are reserved.  Copying, including reproducing, storing,
-// adapting or translating, any or all of this material requires the
-// prior written consent of Nokia.  This material also contains
-// confidential information which may not be disclosed to others
-// without the prior written consent of Nokia.
-// Template version: 4.1
-// Nokia Core OS *
-// File renamed from strtsecuritychecktask.cpp to cmdsimsecuritycheck.cpp as part of Core OS transfer.
 //
 
 
--- a/sysstatemgmt/systemstatereferenceplugins/custcmd/src/securitynoteobserver.cpp	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstatereferenceplugins/custcmd/src/securitynoteobserver.cpp	Fri Mar 19 09:58:42 2010 +0200
@@ -1,4 +1,4 @@
-// Copyright (c) 2007-2009 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"
@@ -11,20 +11,7 @@
 // Contributors:
 //
 // Description:
-// Name        : strtsecuritynoteobserver.cpp
-// Part of     : System Startup / Starter
 // Implementation of CStrtSecurityNoteObserver class.
-// Version     : %version: 3 %
-// This material, including documentation and any related computer
-// programs, is protected by copyright controlled by Nokia.  All
-// rights are reserved.  Copying, including reproducing, storing,
-// adapting or translating, any or all of this material requires the
-// prior written consent of Nokia.  This material also contains
-// confidential information which may not be disclosed to others
-// without the prior written consent of Nokia.
-// Template version: 4.1
-// Nokia Core OS *
-// File renamed from strtsecuritynoteobserver.cpp to securitynoteobserver.cpp as part of Core OS transfer.
 //
 
 
--- a/sysstatemgmt/systemstatereferenceplugins/custcmd/src/ssmsecuritychecknotifier.cpp	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstatereferenceplugins/custcmd/src/ssmsecuritychecknotifier.cpp	Fri Mar 19 09:58:42 2010 +0200
@@ -1,4 +1,4 @@
-// Copyright (c) 2007-2009 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"
@@ -11,20 +11,7 @@
 // Contributors:
 //
 // Description:
-// Name        : strtsecuritynote.cpp
-// Part of     : System Startup / Starter
 // Implementation of CStrtSecurityNote class.
-// Version     : %version: 4 %
-// This material, including documentation and any related computer
-// programs, is protected by copyright controlled by Nokia.  All
-// rights are reserved.  Copying, including reproducing, storing,
-// adapting or translating, any or all of this material requires the
-// prior written consent of Nokia.  This material also contains
-// confidential information which may not be disclosed to others
-// without the prior written consent of Nokia.
-// Template version: 4.1
-// Nokia Core OS *
-// File renamed from strtsecuritynote.cpp to ssmsecuritychecknotifier.cpp as part of Core OS transfer.
 //
 
 
--- a/sysstatemgmt/systemstatereferenceplugins/custcmd/src/swppolicy_simstatus.cpp	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstatereferenceplugins/custcmd/src/swppolicy_simstatus.cpp	Fri Mar 19 09:58:42 2010 +0200
@@ -1,4 +1,4 @@
-// Copyright (c) 2007-2009 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"
@@ -11,19 +11,7 @@
 // Contributors:
 //
 // Description:
-// Name        : strtsimstatusmgr.cpp
-// Part of     : System Startup / Starter
 // Implementation of TStrtSimStatusMgr class.
-// Version     : %version: 7 %
-// This material, including documentation and any related computer
-// programs, is protected by copyright controlled by Nokia.  All
-// rights are reserved.  Copying, including reproducing, storing,
-// adapting or translating, any or all of this material requires the
-// prior written consent of Nokia.  This material also contains
-// confidential information which may not be disclosed to others
-// without the prior written consent of Nokia.
-// Template version: 4.1
-// Nokia Core OS *
 //
 
 
@@ -37,6 +25,7 @@
 
 #include "ssmuiproviderdll.h"
 #include "swppolicy_simstatus.h"
+#include "ssmdebug.h"
 
 #include <ssm/ssmswppolicy.h>
 #include <ssm/ssmstatemanager.h>
@@ -221,9 +210,20 @@
 	{
 	(void)aSwp;
 	(void)aSeverity;
+	(void)aError;
 	
 	TRequestStatus* rs = &aStatus;
+#if defined(_DEBUG)
+	if(KErrNone != aError)
+		{
+		DEBUGPRINT3A("ERROR: Request SwP change for SIM status (SwP key %d) completed with error %d", aSwp.Key(), aError);
+		}
+	//Complete the status with the error which inturn panics SSM server	
 	User::RequestComplete(rs, aError);
+#else // _DEBUG
+	//Completing the status with KErrNone to avoid panic in SSM server
+	User::RequestComplete(rs, KErrNone);
+#endif // _DEBUG
 	}
 
 void CSimStatuspolicy::HandleCleReturnValueCancel()
--- a/sysstatemgmt/systemstatereferenceplugins/localinc/ssmpanic.h	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstatereferenceplugins/localinc/ssmpanic.h	Fri Mar 19 09:58:42 2010 +0200
@@ -1,4 +1,4 @@
-// Copyright (c) 2007-2009 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"
@@ -48,6 +48,7 @@
 _LIT(KPanicSsmUiSpecific, "CSsmUiSpecific");
 _LIT(KPanicCustomCmdDeviceSecurityCheck, "CCustomCmdDeviceSecurityCheck");
 _LIT(KPanicSecurityCheckNotifier, "CSsmSecurityCheckNotifier");
+_LIT(KPanicSecurityNoteController, "CStrtSecurityNoteController");
 
 
 /** Defines all possible panic codes within System State Management component
--- a/sysstatemgmt/systemstatereferenceplugins/test/tclayer/group/tclayer_server.mmp	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstatereferenceplugins/test/tclayer/group/tclayer_server.mmp	Fri Mar 19 09:58:42 2010 +0200
@@ -1,4 +1,4 @@
-// Copyright (c) 2007-2009 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"
@@ -141,4 +141,8 @@
 //Needed for security event observer
 SOURCE			ssmsecuritychecknotifier.cpp
 
+//Needed for security note controller
+SOURCEPATH		../../../localsrc
+SOURCE			ssmpanic.cpp
+
 SMPSAFE
Binary file sysstatemgmt/systemstatereferenceplugins/test/tintcustcmd/group/101F8762.txt has changed
Binary file sysstatemgmt/systemstatereferenceplugins/test/tunitcustcmd/group/101F8762.txt has changed
--- a/sysstatemgmt/systemstatereferenceplugins/test/tunitcustcmd/inc/tcmd_step_publishstartupmode.h	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstatereferenceplugins/test/tunitcustcmd/inc/tcmd_step_publishstartupmode.h	Fri Mar 19 09:58:42 2010 +0200
@@ -25,12 +25,13 @@
 
 #include <test/testexecutestepbase.h>
 
-_LIT(KTCCustomCmdTestPublishStartupMode, "CCustomCmdTestPublishStartupMode");
+_LIT(KTestPublishStartupModeWithCap, "TestPublishStartupModeWithCap");
+_LIT(KTestPublishStartupModeWithoutCap,"TestPublishStartupModeWithoutCap");
 
 class CCustomCmdTestPublishStartupMode: public CTestStep
 	{
 public:
-	CCustomCmdTestPublishStartupMode();
+	CCustomCmdTestPublishStartupMode(const TDesC& aTestStepName);
 	~CCustomCmdTestPublishStartupMode();
 
 	//from CTestStep
@@ -48,6 +49,7 @@
     CActiveScheduler* iActiveScheduler;
     CAsyncCallBack* iAsyncStopScheduler;
     TRequestStatus iRequestStatus;
+    const TDesC& iTestStepName;
 	};
 
 #endif	// __TCMD_STEP_PUBLISHSTARTUPMODE_H__
--- a/sysstatemgmt/systemstatereferenceplugins/test/tunitcustcmd/scripts/ssrefpluginstest_custcmd_publishstartupmode.script	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstatereferenceplugins/test/tunitcustcmd/scripts/ssrefpluginstest_custcmd_publishstartupmode.script	Fri Mar 19 09:58:42 2010 +0200
@@ -19,11 +19,10 @@
 
 START_TESTCASE 			DEVSRVS-SSREFPLUGINS-CUSTCMD-0022
 //! @SYMTestCaseID 		DEVSRVS-SSREFPLUGINS-CUSTCMD-0022
-//! @SYMPREQ 			PREQ1871
 //! @SYMTestType		UT
 //! @SYMTestPriority		High
 //! @SYMTestStatus 		Implemented
-//! @SYMTestCaseDesc		Tests the behaviour of CCustomCmdPublishStartupMode.
+//! @SYMTestCaseDesc		Tests the behaviour of CCustomCmdPublishStartupMode with all the required capabilities (PowerMgmt,ProtServ & WriteDeviceData).
 //! 				Tests the cancel behaviour of CCustomCmdPublishStartupMode.
 //! @SYMTestActions		doTestCreateExecuteAndDestroyL() The test performs operations on a CCustomCmdPublishStartupMode object, namely calling the following methods:
 //! 					1.	NewL - Creating the object
@@ -37,6 +36,59 @@
 //! 					4.  	ExecuteCancel - Cancels the custom command
 //! 					5.  	Close - Closes the custom command
 //! @SYMTestExpectedResults 	Command should execute normally and should complete with KErrNone.
-RUN_TEST_STEP 100 tunitcustcmd_server CCustomCmdTestPublishStartupMode
+RUN_TEST_STEP 100 tunitcustcmd_server TestPublishStartupModeWithCap
 END_TESTCASE 			DEVSRVS-SSREFPLUGINS-CUSTCMD-0022
 
+RUN_PROGRAM 50 setcap.exe tunitcustcmd_server.exe 000024 tunitcustcmd_server_WithoutCap1.exe
+
+LOAD_SUITE tunitcustcmd_server_WithoutCap1
+
+START_TESTCASE 			DEVSRVS-SSREFPLUGINS-CUSTCMD-0032
+//! @SYMTestCaseID 		DEVSRVS-SSREFPLUGINS-CUSTCMD-0032
+//! @TaskID			bh1sosd4#32
+//! @SYMTestType		UT
+//! @SYMTestPriority		High
+//! @SYMTestStatus 		Implemented
+//! @SYMTestCaseDesc	Tests whether setting the Central Repository key 101f8762 fails without proper write capabilities (without ProtServ capability)	
+//! @SYMTestActions		doTestStepPreambleL() The test performs operations on a CRepository object, namely calling the following methods:
+//! 					1.	NewL - Creating the object
+//! 					2.	Set - Setting the Central Repository key
+//! @SYMTestExpectedResults 	Setting the Central Repository key 101f8762 should fail & complete with KErrPermissionDenied.
+RUN_TEST_STEP 100 tunitcustcmd_server_WithoutCap1 TestPublishStartupModeWithoutCap
+END_TESTCASE 			DEVSRVS-SSREFPLUGINS-CUSTCMD-0032
+
+RUN_PROGRAM 50 setcap.exe tunitcustcmd_server.exe 000120 tunitcustcmd_server_WithoutCap2.exe
+
+LOAD_SUITE tunitcustcmd_server_WithoutCap2
+
+START_TESTCASE 			DEVSRVS-SSREFPLUGINS-CUSTCMD-0033
+//! @SYMTestCaseID 		DEVSRVS-SSREFPLUGINS-CUSTCMD-0033
+//! @TaskID			bh1sosd4#32
+//! @SYMTestType		UT
+//! @SYMTestPriority		High
+//! @SYMTestStatus 		Implemented
+//! @SYMTestCaseDesc	Tests whether setting the Central repository key 101f8762 fails without write capabilities (without PowerMgmt capability)		
+//! @SYMTestActions		doTestStepPreambleL() The test performs operations on a CRepository object, namely calling the following methods:
+//! 					1.	NewL - Creating the object
+//! 					2.	Set - Setting the Central Repository key
+//! @SYMTestExpectedResults 	Setting the Central Repository key 101f8762 should fail & complete with KErrPermissionDenied.
+RUN_TEST_STEP 100 tunitcustcmd_server_WithoutCap2 TestPublishStartupModeWithoutCap
+END_TESTCASE 			DEVSRVS-SSREFPLUGINS-CUSTCMD-0033
+
+RUN_PROGRAM 50 setcap.exe tunitcustcmd_server.exe 000104 tunitcustcmd_server_WithoutCap3.exe
+
+LOAD_SUITE tunitcustcmd_server_WithoutCap3
+
+START_TESTCASE 			DEVSRVS-SSREFPLUGINS-CUSTCMD-0034
+//! @SYMTestCaseID 		DEVSRVS-SSREFPLUGINS-CUSTCMD-0034
+//! @TaskID			bh1sosd4#32
+//! @SYMTestType		UT
+//! @SYMTestPriority		High
+//! @SYMTestStatus 		Implemented
+//! @SYMTestCaseDesc	Tests whether setting the Central repository key 101f8762 fails without write capabilities (without WriteDeviceData capability)	
+//! @SYMTestActions		doTestStepPreambleL() The test performs operations on a CRepository object, namely calling the following methods:
+//! 					1.	NewL - Creating the object
+//! 					2.	Set - Setting the Central Repository key
+//! @SYMTestExpectedResults 	Setting the Central Repository key 101f8762 should fail & complete with KErrPermissionDenied.
+RUN_TEST_STEP 100 tunitcustcmd_server_WithoutCap3 TestPublishStartupModeWithoutCap
+END_TESTCASE 			DEVSRVS-SSREFPLUGINS-CUSTCMD-0034
\ No newline at end of file
--- a/sysstatemgmt/systemstatereferenceplugins/test/tunitcustcmd/src/tcmd_server.cpp	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstatereferenceplugins/test/tunitcustcmd/src/tcmd_server.cpp	Fri Mar 19 09:58:42 2010 +0200
@@ -126,10 +126,14 @@
 		{
 		testStep = new CCustomCmdTestCoopSysStateChange();
 		}
-	else if (aStepName == KTCCustomCmdTestPublishStartupMode)
+	else if (aStepName == KTestPublishStartupModeWithCap)
 		{
-		testStep = new CCustomCmdTestPublishStartupMode();
+		testStep = new CCustomCmdTestPublishStartupMode(KTestPublishStartupModeWithCap);
 		}
+	else if (aStepName == KTestPublishStartupModeWithoutCap)
+        {
+        testStep = new CCustomCmdTestPublishStartupMode(KTestPublishStartupModeWithoutCap);
+        }
 	else if (aStepName == KTCCustomCmdTestPublishSimOwnedAndChanged)
 	    {
 	    testStep = new CCustomCmdTestPublishSimOwnedAndChanged();
--- a/sysstatemgmt/systemstatereferenceplugins/test/tunitcustcmd/src/tcmd_step_publishstartupmode.cpp	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/systemstatereferenceplugins/test/tunitcustcmd/src/tcmd_step_publishstartupmode.cpp	Fri Mar 19 09:58:42 2010 +0200
@@ -32,6 +32,7 @@
 #include <ssm/startupdomainpskeys.h>
 #include <ssm/starterdomaincrkeys.h>
 #include <e32property.h>
+#include <e32cmn.h>
 #include <centralrepository.h>
 
 //Exe name which defines startup PS keys
@@ -44,12 +45,19 @@
     delete iAsyncStopScheduler;
 	}
 
-CCustomCmdTestPublishStartupMode::CCustomCmdTestPublishStartupMode()
+CCustomCmdTestPublishStartupMode::CCustomCmdTestPublishStartupMode(const TDesC& aTestStepName):iTestStepName(aTestStepName)
 	{
-	SetTestStepName(KTCCustomCmdTestPublishStartupMode);
+    if (iTestStepName == KTestPublishStartupModeWithCap)
+        {
+        SetTestStepName(KTestPublishStartupModeWithCap);
+        }
+    else
+        {
+        SetTestStepName(KTestPublishStartupModeWithoutCap);
+        }
 	}
 
-//
+
 static TInt CallBackL(TAny* aCCustomCmdTestPublishStartupMode)
     {
     //Call back function to stop active scheduler
@@ -74,32 +82,35 @@
 
 TVerdict CCustomCmdTestPublishStartupMode::doTestStepPreambleL()
 	{
-	INFO_PRINTF1(_L("doTestStepPreambleL"));
-	//Create and install active scheduler
-	iActiveScheduler = new(ELeave) CActiveScheduler;
-	CActiveScheduler::Install (iActiveScheduler);
-
-   //Needed for calling callback for stopping active scheduler
-    iAsyncStopScheduler = new(ELeave) CAsyncCallBack(CActive::EPriorityIdle);
-
-	INFO_PRINTF1(_L("Define global startup mode property"));
-
-    RProcess process;
-	//Start the test exe which defines startup related property keys
-	TInt err = process.Create(KExeToDefineStartUpPS, KStartUpPSKeys());
-	INFO_PRINTF2(_L("Define global startup mode property process created with %d"), err);
-	TEST(KErrNone == err);
-	User::LeaveIfError(err);
-	process.Resume();
-	
-	process.Rendezvous(iRequestStatus);
-	User::WaitForRequest(iRequestStatus);
-	TEST(KErrNone == iRequestStatus.Int());
-	
-	//Kill the define startup ps process
-	process.Kill(KErrNone);
-	process.Close();
-
+    INFO_PRINTF1(_L("doTestStepPreambleL"));
+    if (iTestStepName == KTestPublishStartupModeWithCap)
+        {
+        RProcess process;
+        CleanupClosePushL(process);
+        //Create and install active scheduler
+        iActiveScheduler = new(ELeave) CActiveScheduler;
+        CActiveScheduler::Install (iActiveScheduler);
+    
+        //Needed for calling callback for stopping active scheduler
+        iAsyncStopScheduler = new(ELeave) CAsyncCallBack(CActive::EPriorityIdle);
+    
+        INFO_PRINTF1(_L("Define global startup mode property"));
+    
+        //Start the test exe which defines startup related property keys
+        TInt err = process.Create(KExeToDefineStartUpPS, KStartUpPSKeys());
+        INFO_PRINTF2(_L("Define global startup mode property process created with %d"), err);
+        TEST(KErrNone == err);
+        User::LeaveIfError(err);
+        process.Resume();
+    
+        process.Rendezvous(iRequestStatus);
+        User::WaitForRequest(iRequestStatus);
+        TEST(KErrNone == iRequestStatus.Int());
+    
+        //Kill the define startup ps process
+        process.Kill(KErrNone);
+        CleanupStack::PopAndDestroy(&process);
+        }
 	return CTestStep::doTestStepPreambleL();
 	}
 
@@ -112,13 +123,30 @@
 	{
 	INFO_PRINTF1(_L("Entering test for publish startup mode custom command"));
 	__UHEAP_MARK;
-	
-	TRAPD(err, doTestCreateExecuteAndDestroyL());
-	TEST(err == KErrNone);
-	
-	TRAP(err, doTestFactoryCreateAndExecuteCancelL());
-	TEST(err == KErrNone);
-	
+	RProcess process(KCurrentProcessHandle);
+    if(!(process.HasCapability(ECapabilityPowerMgmt) && 
+       process.HasCapability(ECapabilityWriteDeviceData)&& 
+       process.HasCapability(ECapabilityProtServ)))
+		{
+		TUid KCentRepId = {0x101f8762}; 
+		CRepository* repository = NULL;
+		repository  = CRepository::NewL(KCentRepId);
+       
+		TInt ret = repository->Set(KStartupReason, ENormalStartup); 
+		delete repository;
+		INFO_PRINTF3(_L("Setting Central Repository key 101f8762 Return value = %d Expected value = %d"),ret, KErrPermissionDenied);
+		TEST(ret == KErrPermissionDenied);
+		}
+    else
+        {
+        TRAPD(err, doTestCreateExecuteAndDestroyL());
+        TEST(err == KErrNone);
+        
+        TRAP(err, doTestFactoryCreateAndExecuteCancelL());
+        TEST(err == KErrNone);
+        
+        
+        }
 	__UHEAP_MARKEND;
 	INFO_PRINTF1(_L("Leaving test for publish startup mode custom command"));
 	return TestStepResult();
@@ -138,8 +166,10 @@
     TUid KCentRepId = {0x101f8762}; 
     CRepository* repository = CRepository::NewL(KCentRepId);
     TInt ret = repository->Set(KStartupReason, ENormalStartup); 
-    delete repository;
-	
+    delete repository;  
+    INFO_PRINTF3(_L("Setting Central Repository key 101f8762 Return value = %d Expected value = %d"),ret, KErrNone);
+    TEST(ret == KErrNone);
+
     TInt startUpMode = -1;
     
     //Setting inital value of startUpMode as -1
--- a/sysstatemgmt/tsrc/public/basic/group/mt_rstartersession.mmp	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/tsrc/public/basic/group/mt_rstartersession.mmp	Fri Mar 19 09:58:42 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2006 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"
@@ -31,7 +31,7 @@
 
 USERINCLUDE     ../mt_rstartersession
 
-SYSTEMINCLUDE   /epoc32/include/digia/eunit
+SYSTEMINCLUDE    /epoc32/include/platform/digia/eunit
 
 OS_LAYER_SYSTEMINCLUDE
 
--- a/sysstatemgmt/tsrc/public/basic/mt_rstartersession/MT_RStarterSession.cpp	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/tsrc/public/basic/mt_rstartersession/MT_RStarterSession.cpp	Fri Mar 19 09:58:42 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2006 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"
@@ -162,45 +162,6 @@
     EUNIT_ASSERT_DESC( err == KErrNone, "Incorrect return value" );
     }
     
-void MT_RStarterSession::T_RStarterSession_AddItemInStartListLL(  )
-    {
-    TPtrC8 md5hash( KNullDesC8 );
-    TInt err = iRStarterSession.AddItemInStartListL(
-        KNullDesC,
-        EMonNone,
-        EExecutableType,
-        0,
-        md5hash );
-    EUNIT_PRINT( _L("AddItemInStartListL() err = %d"), err );
-    EUNIT_ASSERT_DESC( err == KErrPermissionDenied, "Incorrect return value. SID check has failed" );
-    }
-    
-void MT_RStarterSession::T_RStarterSession_AddItemInStartListL2L(  )
-    {
-    TInt err = iRStarterSession.AddItemInStartListL(
-        KNullDesC,
-        EMonNone,
-        EExecutableType,
-        0 );
-    EUNIT_PRINT( _L("AddItemInStartListL() err = %d"), err );
-    EUNIT_ASSERT_DESC( err == KErrPermissionDenied, "Incorrect return value. SID check has failed" );
-    }
-    
-void MT_RStarterSession::T_RStarterSession_RemoveItemFromStartListLL(  )
-    {
-    TInt err = iRStarterSession.RemoveItemFromStartListL( KNullDesC );
-    EUNIT_PRINT( _L("RemoveItemFromStartListL() err = %d"), err );
-    EUNIT_ASSERT_DESC( err == KErrPermissionDenied, "Incorrect return value. SID check has failed" );
-    }
-    
-void MT_RStarterSession::T_RStarterSession_SearchStartlistLL(  )
-    {
-    TInt err = iRStarterSession.SearchStartlistL( KNullDesC );
-    EUNIT_PRINT( _L("SearchStartlistL() err = %d"), err );
-    EUNIT_ASSERT_DESC( err == KErrPermissionDenied, "Incorrect return value. SID check has failed" );
-    }
-    
-
 //  TEST TABLE
 EUNIT_BEGIN_TEST_TABLE(
     MT_RStarterSession,
@@ -263,33 +224,6 @@
     "FUNCTIONALITY",
     SetupL, T_RStarterSession_EndSplashScreenL, Teardown)
     
-EUNIT_TEST(
-    "AddItemInStartListL - test9",
-    "RStarterSession",
-    "AddItemInStartListL - test9",
-    "FUNCTIONALITY",
-    SetupL, T_RStarterSession_AddItemInStartListLL, Teardown)
-    
-EUNIT_TEST(
-    "AddItemInStartListL - test10",
-    "RStarterSession",
-    "AddItemInStartListL - test10",
-    "FUNCTIONALITY",
-    SetupL, T_RStarterSession_AddItemInStartListL2L, Teardown)
-    
-EUNIT_TEST(
-    "RemoveItemFromStartListL - test11",
-    "RStarterSession",
-    "RemoveItemFromStartListL - test11",
-    "FUNCTIONALITY",
-    SetupL, T_RStarterSession_RemoveItemFromStartListLL, Teardown)
-    
-EUNIT_TEST(
-    "SearchStartlistL - test12",
-    "RStarterSession",
-    "SearchStartlistL - test12",
-    "FUNCTIONALITY",
-    SetupL, T_RStarterSession_SearchStartlistLL, Teardown)
 /*    
 EUNIT_TEST(
     "Shutdown - test3",
--- a/sysstatemgmt/tsrc/public/basic/mt_rstartersession/MT_RStarterSession.h	Tue Feb 02 00:53:00 2010 +0200
+++ b/sysstatemgmt/tsrc/public/basic/mt_rstartersession/MT_RStarterSession.h	Fri Mar 19 09:58:42 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2006 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"
@@ -70,10 +70,6 @@
         void T_RStarterSession_ActivateRfForEmergencyCallL();
         void T_RStarterSession_DeactivateRfAfterEmergencyCallL();
         void T_RStarterSession_EndSplashScreenL();
-        void T_RStarterSession_AddItemInStartListLL();
-        void T_RStarterSession_AddItemInStartListL2L();
-        void T_RStarterSession_RemoveItemFromStartListLL();
-        void T_RStarterSession_SearchStartlistLL();
 
     private:    // Data